ZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lmp4cGF0aC9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lmp4cGF0aC9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCA1MGY2N2JjLi42ZDFiODQ4IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5qeHBhdGgvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuanhwYXRoL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC04LDkgKzgsOSBAQAogQnVuZGxlLUxvY2FsaXphdGlvbjogcGx1Z2luDQogQnVuZGxlLVJlcXVpcmVkRXhlY3V0aW9uRW52aXJvbm1lbnQ6IEoyU0UtMS41DQogRXhwb3J0LVBhY2thZ2U6IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lmp4cGF0aCwNCi0gb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuanhwYXRoLmltcGwsDQorIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lmp4cGF0aC5pbXBsO3gtaW50ZXJuYWw6PXRydWUsDQogIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lmp4cGF0aC5xdWVyeSwNCi0gb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuanhwYXRoLnV0aWwNCisgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuanhwYXRoLnV0aWw7eC1pbnRlcm5hbDo9dHJ1ZQ0KIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUsDQogIG9yZy5lY2xpcHNlLmVtZi5lY29yZTtidW5kbGUtdmVyc2lvbj0iMi41LjAiO3Zpc2liaWxpdHk6PXJlZXhwb3J0LA0KICBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeTt2aXNpYmlsaXR5Oj1yZWV4cG9ydCwNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDEzZWUwODcuLmU2ZmZkNjEgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L01FVEEtSU5GL01BTklGRVNULk1GCkBAIC04LDggKzgsOSBAQAogQnVuZGxlLUxvY2FsaXphdGlvbjogcGx1Z2luDQogQnVuZGxlLVJlcXVpcmVkRXhlY3V0aW9uRW52aXJvbm1lbnQ6IEoyU0UtMS41DQogRXhwb3J0LVBhY2thZ2U6IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LA0KLSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5pbXBsLA0KKyBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5pbXBsO3gtaW50ZXJuYWw6PXRydWUsDQogIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnJ1bnRpbWUsDQorIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnJ1bnRpbWUuaW1wbDt4LWludGVybmFsOj10cnVlLA0KICBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5ydW50aW1lLnV0aWw7eC1mcmllbmRzOj0ib3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuZWRpdCIsDQogIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnV0aWw7eC1mcmllbmRzOj0ib3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuZWRpdCINCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuY2RvL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5jZG8vTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggNzYwZThkZS4uOTM3NjNiYSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5jZG8vTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5jZG8vTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTEzLDYgKzEzLDYgQEAKICBvcmcuZWNsaXBzZS5lbWYuZWNvcmUueG1pO2J1bmRsZS12ZXJzaW9uPSIyLjUuMCI7dmlzaWJpbGl0eTo9cmVleHBvcnQsDQogIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmE7YnVuZGxlLXZlcnNpb249IjAuNy4wIg0KIEJ1bmRsZS1BY3RpdmF0aW9uUG9saWN5OiBsYXp5DQotRXhwb3J0LVBhY2thZ2U6IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuY2RvLmltcGwsDQorRXhwb3J0LVBhY2thZ2U6IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuY2RvLmltcGw7eC1pbnRlcm5hbDo9dHJ1ZSwNCiAgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5jZG8ubWV0YSwNCi0gb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5jZG8udXRpbA0KKyBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmNkby51dGlsO3gtaW50ZXJuYWw6PXRydWUNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmNsYXNzaWNlb2JqZWN0L01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5jbGFzc2ljZW9iamVjdC9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCAyMmYzZWMwLi5mNzZjZDlhIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmNsYXNzaWNlb2JqZWN0L01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuY2xhc3NpY2VvYmplY3QvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTEzLDUgKzEzLDUgQEAKICBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhO2J1bmRsZS12ZXJzaW9uPSIwLjcuMCINCiBCdW5kbGUtQWN0aXZhdGlvblBvbGljeTogbGF6eQ0KIEV4cG9ydC1QYWNrYWdlOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmVtZi5jbGFzc2ljLA0KLSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmVtZi5jbGFzc2ljLmltcGwsDQotIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZW1mLmNsYXNzaWMudXRpbA0KKyBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmVtZi5jbGFzc2ljLmltcGw7eC1pbnRlcm5hbDo9dHJ1ZSwNCisgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5lbWYuY2xhc3NpYy51dGlsO3gtaW50ZXJuYWw6PXRydWUNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLm5vdXNhZ2VzLmNkby9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEubm91c2FnZXMuY2RvL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDE1OGI4ZGQuLmE1YThhMTkgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEubm91c2FnZXMuY2RvL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEubm91c2FnZXMuY2RvL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC03LDkgKzcsOSBAQAogQnVuZGxlLVZlbmRvcjogJXByb3ZpZGVyTmFtZQ0KIEJ1bmRsZS1Mb2NhbGl6YXRpb246IHBsdWdpbg0KIEJ1bmRsZS1SZXF1aXJlZEV4ZWN1dGlvbkVudmlyb25tZW50OiBKMlNFLTEuNQ0KLUV4cG9ydC1QYWNrYWdlOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLm5vdXNhZ2VzLmNkby5pbXBsLA0KK0V4cG9ydC1QYWNrYWdlOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLm5vdXNhZ2VzLmNkby5pbXBsO3gtaW50ZXJuYWw6PXRydWUsDQogIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEubm91c2FnZXMuY2RvLm1ldGEsDQotIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEubm91c2FnZXMuY2RvLnV0aWwNCisgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5ub3VzYWdlcy5jZG8udXRpbDt4LWludGVybmFsOj10cnVlDQogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZSwNCiAgb3JnLmVjbGlwc2UuZW1mLmVjb3JlO3Zpc2liaWxpdHk6PXJlZXhwb3J0LA0KICBvcmcuZWNsaXBzZS5lbWYuY2RvO3Zpc2liaWxpdHk6PXJlZXhwb3J0LA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEubm91c2FnZXMvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLm5vdXNhZ2VzL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDMzNzkwMzQuLjVmNzk5YjcgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEubm91c2FnZXMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5ub3VzYWdlcy9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtNyw5ICs3LDkgQEAKIEJ1bmRsZS1WZW5kb3I6ICVwcm92aWRlck5hbWUNCiBCdW5kbGUtTG9jYWxpemF0aW9uOiBwbHVnaW4NCiBCdW5kbGUtUmVxdWlyZWRFeGVjdXRpb25FbnZpcm9ubWVudDogSjJTRS0xLjUNCi1FeHBvcnQtUGFja2FnZTogb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5ub3VzYWdlcy5pbXBsLA0KK0V4cG9ydC1QYWNrYWdlOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLm5vdXNhZ2VzLmltcGw7eC1pbnRlcm5hbDo9dHJ1ZSwNCiAgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5ub3VzYWdlcy5tZXRhLA0KLSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLm5vdXNhZ2VzLnV0aWwNCisgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5ub3VzYWdlcy51dGlsO3gtaW50ZXJuYWw6PXRydWUNCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLA0KICBvcmcuZWNsaXBzZS5lbWYuZWNvcmU7dmlzaWJpbGl0eTo9cmVleHBvcnQsDQogIG9yZy5lY2xpcHNlLmVtZi5lY29yZS54bWk7dmlzaWJpbGl0eTo9cmVleHBvcnQsDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ub21nLmtkbS9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLm9tZy5rZG0vTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggMDg1YmRmZi4uZDIxNWVlNyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ub21nLmtkbS9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5vbWcua2RtL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC05LDQxICs5LDQxIEBACiBCdW5kbGUtUmVxdWlyZWRFeGVjdXRpb25FbnZpcm9ubWVudDogSjJTRS0xLjUNCiBFeHBvcnQtUGFja2FnZTogb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ub21nLmtkbSwNCiAgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ub21nLmtkbS5hY3Rpb24sDQotIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLm9tZy5rZG0uYWN0aW9uLmltcGwsDQotIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLm9tZy5rZG0uYWN0aW9uLnV0aWwsDQorIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLm9tZy5rZG0uYWN0aW9uLmltcGw7eC1pbnRlcm5hbDo9dHJ1ZSwNCisgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ub21nLmtkbS5hY3Rpb24udXRpbDt4LWludGVybmFsOj10cnVlLA0KICBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5vbWcua2RtLmJ1aWxkLA0KLSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5vbWcua2RtLmJ1aWxkLmltcGwsDQotIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLm9tZy5rZG0uYnVpbGQudXRpbCwNCisgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ub21nLmtkbS5idWlsZC5pbXBsO3gtaW50ZXJuYWw6PXRydWUsDQorIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLm9tZy5rZG0uYnVpbGQudXRpbDt4LWludGVybmFsOj10cnVlLA0KICBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5vbWcua2RtLmNvZGUsDQotIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLm9tZy5rZG0uY29kZS5pbXBsLA0KLSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5vbWcua2RtLmNvZGUudXRpbCwNCisgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ub21nLmtkbS5jb2RlLmltcGw7eC1pbnRlcm5hbDo9dHJ1ZSwNCisgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ub21nLmtkbS5jb2RlLnV0aWw7eC1pbnRlcm5hbDo9dHJ1ZSwNCiAgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ub21nLmtkbS5jb25jZXB0dWFsLA0KLSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5vbWcua2RtLmNvbmNlcHR1YWwuaW1wbCwNCi0gb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ub21nLmtkbS5jb25jZXB0dWFsLnV0aWwsDQorIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLm9tZy5rZG0uY29uY2VwdHVhbC5pbXBsO3gtaW50ZXJuYWw6PXRydWUsDQorIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLm9tZy5rZG0uY29uY2VwdHVhbC51dGlsO3gtaW50ZXJuYWw6PXRydWUsDQogIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLm9tZy5rZG0uY29yZSwNCi0gb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ub21nLmtkbS5jb3JlLmltcGwsDQotIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLm9tZy5rZG0uY29yZS51dGlsLA0KKyBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5vbWcua2RtLmNvcmUuaW1wbDt4LWludGVybmFsOj10cnVlLA0KKyBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5vbWcua2RtLmNvcmUudXRpbDt4LWludGVybmFsOj10cnVlLA0KICBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5vbWcua2RtLmRhdGEsDQotIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLm9tZy5rZG0uZGF0YS5pbXBsLA0KLSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5vbWcua2RtLmRhdGEudXRpbCwNCisgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ub21nLmtkbS5kYXRhLmltcGw7eC1pbnRlcm5hbDo9dHJ1ZSwNCisgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ub21nLmtkbS5kYXRhLnV0aWw7eC1pbnRlcm5hbDo9dHJ1ZSwNCiAgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ub21nLmtkbS5ldmVudCwNCi0gb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ub21nLmtkbS5ldmVudC5pbXBsLA0KLSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5vbWcua2RtLmV2ZW50LnV0aWwsDQorIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLm9tZy5rZG0uZXZlbnQuaW1wbDt4LWludGVybmFsOj10cnVlLA0KKyBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5vbWcua2RtLmV2ZW50LnV0aWw7eC1pbnRlcm5hbDo9dHJ1ZSwNCiAgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ub21nLmtkbS5rZG0sDQotIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLm9tZy5rZG0ua2RtLmltcGwsDQotIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLm9tZy5rZG0ua2RtLnV0aWwsDQorIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLm9tZy5rZG0ua2RtLmltcGw7eC1pbnRlcm5hbDo9dHJ1ZSwNCisgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ub21nLmtkbS5rZG0udXRpbDt4LWludGVybmFsOj10cnVlLA0KICBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5vbWcua2RtLnBsYXRmb3JtLA0KLSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5vbWcua2RtLnBsYXRmb3JtLmltcGwsDQotIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLm9tZy5rZG0ucGxhdGZvcm0udXRpbCwNCisgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ub21nLmtkbS5wbGF0Zm9ybS5pbXBsO3gtaW50ZXJuYWw6PXRydWUsDQorIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLm9tZy5rZG0ucGxhdGZvcm0udXRpbDt4LWludGVybmFsOj10cnVlLA0KICBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5vbWcua2RtLnNvdXJjZSwNCi0gb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ub21nLmtkbS5zb3VyY2UuaW1wbCwNCi0gb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ub21nLmtkbS5zb3VyY2UudXRpbCwNCisgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ub21nLmtkbS5zb3VyY2UuaW1wbDt4LWludGVybmFsOj10cnVlLA0KKyBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5vbWcua2RtLnNvdXJjZS51dGlsO3gtaW50ZXJuYWw6PXRydWUsDQogIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLm9tZy5rZG0uc3RydWN0dXJlLA0KLSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5vbWcua2RtLnN0cnVjdHVyZS5pbXBsLA0KLSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5vbWcua2RtLnN0cnVjdHVyZS51dGlsLA0KKyBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5vbWcua2RtLnN0cnVjdHVyZS5pbXBsO3gtaW50ZXJuYWw6PXRydWUsDQorIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLm9tZy5rZG0uc3RydWN0dXJlLnV0aWw7eC1pbnRlcm5hbDo9dHJ1ZSwNCiAgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ub21nLmtkbS51aSwNCi0gb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ub21nLmtkbS51aS5pbXBsLA0KLSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5vbWcua2RtLnVpLnV0aWwNCisgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ub21nLmtkbS51aS5pbXBsO3gtaW50ZXJuYWw6PXRydWUsDQorIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLm9tZy5rZG0udWkudXRpbDt4LWludGVybmFsOj10cnVlDQogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLmVtZi5lY29yZTt2aXNpYmlsaXR5Oj1yZWV4cG9ydCwNCiAgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnhtaQ0KIEJ1bmRsZS1BY3RpdmF0aW9uUG9saWN5OiBsYXp5DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ub21nLnNtbS9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLm9tZy5zbW0vTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggNzAzY2YzNy4uNmU3MTA2YSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ub21nLnNtbS9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5vbWcuc21tL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC04LDggKzgsOCBAQAogQnVuZGxlLUxvY2FsaXphdGlvbjogcGx1Z2luDQogQnVuZGxlLVJlcXVpcmVkRXhlY3V0aW9uRW52aXJvbm1lbnQ6IEoyU0UtMS41DQogRXhwb3J0LVBhY2thZ2U6IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLm9tZy5zbW0sDQotIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLm9tZy5zbW0uaW1wbCwNCi0gb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ub21nLnNtbS51dGlsDQorIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLm9tZy5zbW0uaW1wbDt4LWludGVybmFsOj10cnVlLA0KKyBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5vbWcuc21tLnV0aWw7eC1pbnRlcm5hbDo9dHJ1ZQ0KIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUsDQogIG9yZy5lY2xpcHNlLmVtZi5lY29yZTtidW5kbGUtdmVyc2lvbj0iMi41LjAiO3Zpc2liaWxpdHk6PXJlZXhwb3J0DQogQnVuZGxlLUFjdGl2YXRpb25Qb2xpY3k6IGxhenkNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby54bWwvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby54bWwvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggMzJmZjhkMi4uODNkNjBhNSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ueG1sL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnhtbC9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMTQsOCArMTQsOCBAQAogQnVuZGxlLUFjdGl2YXRpb25Qb2xpY3k6IGxhenkNCiBFeHBvcnQtUGFja2FnZTogb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ueG1sLA0KICBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby54bWwuZW1mLA0KLSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby54bWwuZW1mLmltcGwsDQotIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnhtbC5lbWYudXRpbCwNCi0gb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ueG1sLmludGVybmFsLnJlc291cmNlO3gtZnJpZW5kczo9Im9yZy5lY2xpcHNlLm1vZGlzY28ueG1sLmRpc2NvdmVyZXIiLA0KKyBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby54bWwuZW1mLmltcGw7eC1pbnRlcm5hbDo9dHJ1ZSwKKyBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby54bWwuZW1mLnV0aWw7eC1pbnRlcm5hbDo9dHJ1ZSwNCisgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ueG1sLmludGVybmFsLnJlc291cmNlO3gtZnJpZW5kczo9Im9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnhtbC5kaXNjb3ZlcmVyLG9yZy5lY2xpcHNlLm1vZGlzY28ueG1sLmRpc2NvdmVyZXIiLA0KICBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby54bWwucmVzb3VyY2UNCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby54bWwucGx1Z2luLlhtbEFjdGl2YXRvcg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uYXJjaGkudGVjaC50YXJnZXRwbGF0Zm9ybS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmFyY2hpLnRlY2gudGFyZ2V0cGxhdGZvcm0udGFyZ2V0IGIvb3JnLmVjbGlwc2UubW9kaXNjby5hcmNoaS50ZWNoLnRhcmdldHBsYXRmb3JtL29yZy5lY2xpcHNlLm1vZGlzY28uYXJjaGkudGVjaC50YXJnZXRwbGF0Zm9ybS50YXJnZXQKaW5kZXggZGZhODkyYS4uMzk4ZTNjNiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5hcmNoaS50ZWNoLnRhcmdldHBsYXRmb3JtL29yZy5lY2xpcHNlLm1vZGlzY28uYXJjaGkudGVjaC50YXJnZXRwbGF0Zm9ybS50YXJnZXQKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5hcmNoaS50ZWNoLnRhcmdldHBsYXRmb3JtL29yZy5lY2xpcHNlLm1vZGlzY28uYXJjaGkudGVjaC50YXJnZXRwbGF0Zm9ybS50YXJnZXQKQEAgLTEsNyArMSw3IEBACiA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ibm8iPz4NCiA8P3BkZSB2ZXJzaW9uPSIzLjYiPz4NCiANCi08dGFyZ2V0IG5hbWU9Im9yZy5lY2xpcHNlLm1vZGlzY28uYXJjaGkudGVjaC50YXJnZXRwbGF0Zm9ybSIgc2VxdWVuY2VOdW1iZXI9IjExIj4NCis8dGFyZ2V0IG5hbWU9Im9yZy5lY2xpcHNlLm1vZGlzY28uYXJjaGkudGVjaC50YXJnZXRwbGF0Zm9ybSIgc2VxdWVuY2VOdW1iZXI9IjE0Ij4NCiA8bG9jYXRpb25zPg0KIDxsb2NhdGlvbiBpbmNsdWRlQWxsUGxhdGZvcm1zPSJmYWxzZSIgaW5jbHVkZU1vZGU9InBsYW5uZXIiIGluY2x1ZGVTb3VyY2U9InRydWUiIHR5cGU9Ikluc3RhbGxhYmxlVW5pdCI+DQogPHVuaXQgaWQ9Im9yZy5lY2xpcHNlLm0ybS5hdGwuZmVhdHVyZS5ncm91cCIgdmVyc2lvbj0iMy4xLjAudjIwMTAwNjE1MDI0MCIvPg0KQEAgLTE5LDE2ICsxOSwxNyBAQAogPHVuaXQgaWQ9Im9yZy5hcGFjaGUubHVjZW5lIiB2ZXJzaW9uPSIxLjkuMS52MjAxMDA1MTgtMTE0MCIvPg0KIDx1bml0IGlkPSJvcmcuZWNsaXBzZS5lbWYuY2RvLnNlcnZlci5kYi5mZWF0dXJlLmdyb3VwIiB2ZXJzaW9uPSIzLjAuMC52MjAxMDA2MTQtMTY1NCIvPg0KIDx1bml0IGlkPSJvcmcuZWNsaXBzZS5lcXVpbm94LmV4ZWN1dGFibGUuZmVhdHVyZS5ncm91cCIgdmVyc2lvbj0iMy40LjAudjIwMTAwNTI0LTdNN0stRkloSWV6LWVnQmtvMTVINzMiLz4NCis8dW5pdCBpZD0ib3JnLmFwYWNoZS5jb21tb25zLmNsaSIgdmVyc2lvbj0iMS4wLjAudjIwMDgwNjA0LTE1MDAiLz4NCiA8cmVwb3NpdG9yeSBsb2NhdGlvbj0iaHR0cDovL2Rvd25sb2FkLmVjbGlwc2Uub3JnL3JlbGVhc2VzL2hlbGlvcy8yMDEwMDYyMzA5MDAvIi8+DQogPC9sb2NhdGlvbj4NCiA8bG9jYXRpb24gaW5jbHVkZUFsbFBsYXRmb3Jtcz0iZmFsc2UiIGluY2x1ZGVNb2RlPSJwbGFubmVyIiBpbmNsdWRlU291cmNlPSJ0cnVlIiB0eXBlPSJJbnN0YWxsYWJsZVVuaXQiPg0KIDx1bml0IGlkPSJvcmcuZWNsaXBzZS5lcHAucGFja2FnZS5tb2RlbGluZy5mZWF0dXJlLmZlYXR1cmUuZ3JvdXAiIHZlcnNpb249IjEuMy4wLjIwMTAwNjE3LTA1MjAiLz4NCiA8cmVwb3NpdG9yeSBsb2NhdGlvbj0iaHR0cDovL2Rvd25sb2FkLmVjbGlwc2Uub3JnL3RlY2hub2xvZ3kvZXBwL3BhY2thZ2VzL2hlbGlvcy8iLz4NCiA8L2xvY2F0aW9uPg0KLTxsb2NhdGlvbiBpbmNsdWRlQWxsUGxhdGZvcm1zPSJmYWxzZSIgaW5jbHVkZUNvbmZpZ3VyZVBoYXNlPSJmYWxzZSIgaW5jbHVkZU1vZGU9InBsYW5uZXIiIGluY2x1ZGVTb3VyY2U9InRydWUiIHR5cGU9Ikluc3RhbGxhYmxlVW5pdCI+DQotPHVuaXQgaWQ9Im9yZy5lY2xpcHNlLmVtZi5mYWNldC5zZGsuZmVhdHVyZS5mZWF0dXJlLmdyb3VwIiB2ZXJzaW9uPSIxLjEuMC4yMDE1MDgwNzE2NDQiLz4NCi08dW5pdCBpZD0ib3JnLmVjbGlwc2UuZW1mLmZhY2V0LnV0aWwudGVzdHMuZmVhdHVyZS5mZWF0dXJlLmdyb3VwIiB2ZXJzaW9uPSIxLjEuMC4yMDE1MDgwNzE2NDQiLz4NCi08cmVwb3NpdG9yeSBsb2NhdGlvbj0iaHR0cDovL2Rvd25sb2FkLmVjbGlwc2Uub3JnL2ZhY2V0L3VwZGF0ZXMvaW50ZWdyYXRpb24vIi8+DQorPGxvY2F0aW9uIGluY2x1ZGVBbGxQbGF0Zm9ybXM9ImZhbHNlIiBpbmNsdWRlQ29uZmlndXJlUGhhc2U9ImZhbHNlIiBpbmNsdWRlTW9kZT0icGxhbm5lciIgaW5jbHVkZVNvdXJjZT0idHJ1ZSIgdHlwZT0iSW5zdGFsbGFibGVVbml0Ij4KKzx1bml0IGlkPSJvcmcuZWNsaXBzZS5lbWYuZmFjZXQuc2RrLmZlYXR1cmUuZmVhdHVyZS5ncm91cCIgdmVyc2lvbj0iMS4wLjIuMjAxNjAxMTgxMzM1Ii8+DQorPHVuaXQgaWQ9Im9yZy5lY2xpcHNlLmVtZi5mYWNldC51dGlsLnRlc3RzLmZlYXR1cmUuZmVhdHVyZS5ncm91cCIgdmVyc2lvbj0iMS4wLjIuMjAxNjAxMTgxMzM1Ii8+DQorPHJlcG9zaXRvcnkgbG9jYXRpb249Imh0dHA6Ly9kb3dubG9hZC5lY2xpcHNlLm9yZy9mYWNldC91cGRhdGVzL3JlbGVhc2UvIi8+DQogPC9sb2NhdGlvbj4NCiA8bG9jYXRpb24gaW5jbHVkZUFsbFBsYXRmb3Jtcz0iZmFsc2UiIGluY2x1ZGVNb2RlPSJwbGFubmVyIiBpbmNsdWRlU291cmNlPSJ0cnVlIiB0eXBlPSJJbnN0YWxsYWJsZVVuaXQiPg0KIDx1bml0IGlkPSJvcmcuZWNsaXBzZS5zd3Rib3QuZm9ybXMuZmVhdHVyZS5ncm91cCIgdmVyc2lvbj0iMi4wLjUuMjAxMTEwMDNfMTc1NC0zNjc2YWM4LWRldi1lMzYiLz4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmRvYy5hcGkucmVwb3J0LmVjbGlwc2VwYWNrYWdlL29yZy5lY2xpcHNlLm1vZGlzY28uZG9jLmFwaS5yZXBvcnQuZWNsaXBzZXBhY2thZ2UucHJvZHVjdCBiL29yZy5lY2xpcHNlLm1vZGlzY28uZG9jLmFwaS5yZXBvcnQuZWNsaXBzZXBhY2thZ2Uvb3JnLmVjbGlwc2UubW9kaXNjby5kb2MuYXBpLnJlcG9ydC5lY2xpcHNlcGFja2FnZS5wcm9kdWN0CmluZGV4IDhlMjYzZTcuLjczMjFhN2YgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uZG9jLmFwaS5yZXBvcnQuZWNsaXBzZXBhY2thZ2Uvb3JnLmVjbGlwc2UubW9kaXNjby5kb2MuYXBpLnJlcG9ydC5lY2xpcHNlcGFja2FnZS5wcm9kdWN0CisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uZG9jLmFwaS5yZXBvcnQuZWNsaXBzZXBhY2thZ2Uvb3JnLmVjbGlwc2UubW9kaXNjby5kb2MuYXBpLnJlcG9ydC5lY2xpcHNlcGFja2FnZS5wcm9kdWN0CkBAIC0yMDYsNyArMjA2LDcgQEAKICAgICAgIDxmZWF0dXJlIGlkPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLnVzZWNhc2Uuc2ltcGxldHJhbnNmb3JtYXRpb25zY2hhaW4uZmVhdHVyZSIvPg0KICAgICAgIDxmZWF0dXJlIGlkPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLnV0aWxzLmNoYXJ0LmZlYXR1cmUiLz4NCiAgICAgICA8ZmVhdHVyZSBpZD0ib3JnLmVjbGlwc2UubW9kaXNjby54bWwuZmVhdHVyZSIvPg0KKyAgICAgIDxmZWF0dXJlIGlkPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLmVjbGlwc2UuZmVhdHVyZSIvPg0KICAgIDwvZmVhdHVyZXM+DQogDQotDQogPC9wcm9kdWN0Pg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uZG9jL21haW50b2MueG1sIGIvb3JnLmVjbGlwc2UubW9kaXNjby5kb2MvbWFpbnRvYy54bWwKaW5kZXggMWY3YmFmOS4uNjcxYjkzZCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5kb2MvbWFpbnRvYy54bWwKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5kb2MvbWFpbnRvYy54bWwKQEAgLTEsMzUgKzEsMzcgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQotPCEtLQ0KLUNvcHlyaWdodCAoYykgMjAxMCBNaWEtU29mdHdhcmUuDQotQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KLWFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KLXdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQotaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCi0NCi1Db250cmlidXRvcnM6DQotICAgIEZhYmllbiBHSVFVRUwgKE1pYS1Tb2Z0d2FyZSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCi0tLT4NCi08dG9jIGxhYmVsPSJNb0Rpc2NvIERvY3VtZW50YXRpb24iPg0KLSAgIDx0b3BpYyBsYWJlbD0iTW9EaXNjbyBVc2VyIEd1aWRlIj4NCi0JICAgPHRvcGljIGxhYmVsPSJJbmZyYXN0cnVjdHVyZSI+DQotCSAgICAgIDxhbmNob3IgaWQ9ImluZnJhc3RydWN0dXJlLm1haW4iLz4NCi0JICAgICAgPGFuY2hvciBpZD0iaW5mcmFzdHJ1Y3R1cmUub21nIi8+DQotCSAgIDwvdG9waWM+DQotCSAgIDx0b3BpYyBsYWJlbD0iVGVjaG5vbG9naWVzIj4NCi0JICAgICAgPGFuY2hvciBpZD0idGVjaG5vbG9naWVzLmFuY2hvciIvPg0KLQkgICA8L3RvcGljPg0KLQkgICA8dG9waWMgbGFiZWw9IlVzZWNhc2VzIj4NCi0JICAgICAgPGFuY2hvciBpZD0idXNlY2FzZXMuYW5jaG9yIi8+DQotCSAgIDwvdG9waWM+DQotCSAgIDx0b3BpYyBocmVmPSJqYXZhZG9jL2luZGV4Lmh0bWwiIGxhYmVsPSJBUEkgUmVmZXJlbmNlIi8+DQotCSAgIDx0b3BpYyBocmVmPSJtZWRpYXdpa2kvbmV3X2FuZF9ub3Rld29ydGh5Lmh0bWwiIGxhYmVsPSJOZXcgYW5kIE5vdGV3b3J0aHkiLz4NCi0gICA8L3RvcGljPg0KLSAgIDx0b3BpYyBsYWJlbD0iU2ltdWx0YW5lb3VzIFJlbGVhc2UgVHJhY2tlciBSZXF1aXJlZCBEb2N1bWVudHMiPg0KLQkJPGFuY2hvciBpZD0iYXBpLnJlcG9ydCIvPg0KLQkJPGFuY2hvciBpZD0idGVzdC5yZXBvcnQiLz4NCi0JCTxhbmNob3IgaWQ9Im1ldHJpYy5yZXBvcnQiLz4NCi0gICA8L3RvcGljPg0KLSAgIDx0b3BpYyBsYWJlbD0iQXJjaGl0ZWN0dXJlIGRvY3VtZW50YXRpb24iPg0KLQkJPGFuY2hvciBpZD0iYXJjaGkiLz4NCi0gICA8L3RvcGljPg0KLTwvdG9jPg0KKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTAsIDIwMTUgTWlhLVNvZnR3YXJlLgorQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscworYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCit3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAoraHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKworQ29udHJpYnV0b3JzOgorICAgIEZhYmllbiBHSVFVRUwgKE1pYS1Tb2Z0d2FyZSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KKyAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDc5NDIwIC0gTW92aW5nIHRoZSBBUEkgcG9saWN5IHdpa2kgcGFnZSB0byBnaXQuCistLT4KKzx0b2MgbGFiZWw9Ik1vRGlzY28gRG9jdW1lbnRhdGlvbiI+CisJPHRvcGljIGxhYmVsPSJNb0Rpc2NvIFVzZXIgR3VpZGUiPgorCQk8dG9waWMgbGFiZWw9IkluZnJhc3RydWN0dXJlIj4KKwkJCTxhbmNob3IgaWQ9ImluZnJhc3RydWN0dXJlLm1haW4iLz4KKwkJCTxhbmNob3IgaWQ9ImluZnJhc3RydWN0dXJlLm9tZyIvPgorCQk8L3RvcGljPgorCQk8dG9waWMgbGFiZWw9IlRlY2hub2xvZ2llcyI+CisJCQk8YW5jaG9yIGlkPSJ0ZWNobm9sb2dpZXMuYW5jaG9yIi8+CisJCTwvdG9waWM+CisJCTx0b3BpYyBsYWJlbD0iVXNlY2FzZXMiPgorCQkJPGFuY2hvciBpZD0idXNlY2FzZXMuYW5jaG9yIi8+CisJCTwvdG9waWM+CisJCTx0b3BpYyBocmVmPSJqYXZhZG9jL2luZGV4Lmh0bWwiIGxhYmVsPSJBUEkgUmVmZXJlbmNlIi8+CisJCTx0b3BpYyBocmVmPSJtZWRpYXdpa2kvbmV3X2FuZF9ub3Rld29ydGh5Lmh0bWwiIGxhYmVsPSJOZXcgYW5kIE5vdGV3b3J0aHkiLz4KKwk8L3RvcGljPgorCTx0b3BpYyBsYWJlbD0iU2ltdWx0YW5lb3VzIFJlbGVhc2UgVHJhY2tlciBSZXF1aXJlZCBEb2N1bWVudHMiPgorCQk8dG9waWMgaHJlZj0ibWVkaWF3aWtpL0FQSV9wb2xpY3kuaHRtbCIgbGFiZWw9IkFQSSBQb2xpY3kiLz4KKwkJPGFuY2hvciBpZD0iYXBpLnJlcG9ydCIvPgorCQk8YW5jaG9yIGlkPSJ0ZXN0LnJlcG9ydCIvPgorCQk8YW5jaG9yIGlkPSJtZXRyaWMucmVwb3J0Ii8+CisJPC90b3BpYz4KKwk8dG9waWMgbGFiZWw9IkFyY2hpdGVjdHVyZSBkb2N1bWVudGF0aW9uIj4KKwkJPGFuY2hvciBpZD0iYXJjaGkiLz4KKwk8L3RvcGljPgorPC90b2M+CmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmRvYy9tZWRpYXdpa2kvQVBJX3BvbGljeS5tZWRpYXdpa2kgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmRvYy9tZWRpYXdpa2kvQVBJX3BvbGljeS5tZWRpYXdpa2kKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzUzMTE4MgotLS0gL2Rldi9udWxsCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uZG9jL21lZGlhd2lraS9BUElfcG9saWN5Lm1lZGlhd2lraQpAQCAtMCwwICsxLDc3IEBACis9QVBJIFBvbGljeT0KKworVGhpcyBwb2xpY3kgZGVmaW5lcyBydWxlcyB3aGljaCBnaXZlIHNvbWUgZ3VhcmFudGVlcyB0byBhZG9wdGVycyBhYm91dCB0aGUgTW9EaXNjbyBBUEkgc3RhYmlsaXR5LgorCitXZSBjb25zaWRlciBNb0Rpc2NvIEFQSSBhcyB0aGUgdW5pb24gb2YgSmF2YSBBUEksIEVjbGlwc2UgRXh0ZW5zaW9uIHBvaW50cywgYW5kIGFsc28gTW9kZWxzLgorCitJbmRlZWQsIHNpbmNlIHRoZSBNb0Rpc2NvIHByb2plY3QgYWRkcmVzc2VzIE1vZGVsLURyaXZlbiBSZXZlcnNlIEVuZ2luZWVyaW5nLCBpdCBwcm9wb3NlcyB2YXJpb3VzIG1ldGFtb2RlbHMgZGVmaW5pdGlvbnMgYW5kIGNvbmZvcm1pbmcgbW9kZWxzIHRvIHN1cHBvcnQgdGhlIGVuZC11c2VyIHVzZSBjYXNlcy4gCisKKz09IERlY2xhcmVkIEFQSSAgPT0KKworRGVjbGFyZWQgQVBJIGlzIHB1YmxpYyBBUEkgdGhhdCBNb0Rpc2NvIGhhcyBjb21taXR0ZWQgdG8gc3VwcG9ydGluZyBmb3Igc2V2ZXJhbCByZWxlYXNlcy4gSXQgc2hvdWxkIGJlIGNsZWFuIGFuZCBjb250YWluIGFkZXF1YXRlIGphdmFkb2MuIERlY2xhcmVkIEFQSSBtYXkgZXZvbHZlIGluIHRoZSBmaXJzdCBmZXcgbWlsZXN0b25lcywgYnV0IGl0IG11c3QgYmUgZnJvemVuIGJ5IHRoZSByZWxlYXNlIEFQSSBmcmVlemUgZGF0ZSBhbmQgd2lsbCBub3QgY2hhbmdlIHRocm91Z2hvdXQgdGhlIHJlbWFpbmRlciBvZiB0aGUgcmVsZWFzZSBvciB0aGUgY29ycmVzcG9uZGluZyBtYWludGVuYW5jZSByZWxlYXNlcy4KKworSW4gZm9sbG93aW5nIHJlbGVhc2VzLCBBUEkgbWF5IHNvbWV0aW1lcyBiZSBkZXByZWNhdGVkIGR1ZSB0byB0aGUgbm9ybWFsIGV2b2x1dGlvbiBvZiBNb0Rpc2NvLiBEZXByZWNhdGlvbnMgbXVzdCBjb250YWluIGluZm9ybWF0aW9uIG9uIGEgbWlncmF0aW9uIHBhdGggZm9yIGV4aXN0aW5nIGFkb3B0ZXJzLiBEZXByZWNhdGVkIEFQSSBtYXkgbm90IGJlIHJlbW92ZWQgZm9yIGF0IGxlYXN0IDEgbWFqb3IgcmVsZWFzZSAoYW5kIHByZWZlcmFibHkgbG9uZ2VyKSwgYW5kIGFmdGVyIG5vdGlmeWluZyB0aGUgY29tbXVuaXR5LgorCitUaGUgdXNlciBtdXN0IG5vdCBpbXBsZW1lbnQgb3IgZXh0ZW5kIHRoZSBBUEkgZ2VuZXJhdGVkIGJ5IEVNRi4KKworPT0gUHJvdmlzaW9uYWwgQVBJICA9PQorCitQcm92aXNpb25hbCBBUEkgaXMgYSB3b3JrIGluIHByb2dyZXNzIHRvd2FyZHMgZnVsbHkgRGVjbGFyZWQgQVBJIGFuZCBjYW4gYmUgdXNlZCB3aGVuIGNvbW1pdHRlcnMgd2FudCB0byBnYXRoZXIgY29tbXVuaXR5IGZlZWRiYWNrIGJlZm9yZSBkZWNsYXJpbmcgQVBJLCBvciB3aGVuIHRoZXJlIGFyZSBrbm93biBwcm9ibGVtcyB3aXRoIGEgbmV3IEFQSSB0aGF0IGNhbm5vdCBiZSBhZGRyZXNzZWQgYnkgQVBJIGZyZWV6ZSBkYXRlLiBQcm92aXNpb25hbCBBUEkgc3RhdHVzIGlzIG1lYW50IHRvIGJlIGEgdGVtcG9yYXJ5IHN0YXRlIGFuZCBBUEkgc2hvdWxkIG5vdCByZW1haW4gcHJvdmlzaW9uYWwgZm9yIGFuIHVuZHVlIGxlbmd0aCBvZiB0aW1lLgorCitQcm92aXNpb25hbCBKYXZhIEFQSSBzaG91bGQgYmUgbWFya2VkIGF0IHRoZSBjbGFzcyBvciBtZW1iZXIgbGV2ZWwgd2l0aCB0aGUgZm9sbG93aW5nIGphdmFkb2MgY29tbWVudDoKKzxwcmU+LyoqIFByb3Zpc2lvbmFsIEFQSTogVGhpcyBjbGFzcy9pbnRlcmZhY2UgaXMgcGFydCBvZiBhbiBpbnRlcmltIEFQSQorKiB0aGF0IGlzIHN0aWxsIHVuZGVyIGRldmVsb3BtZW50IGFuZCBleHBlY3RlZCB0bworKiBjaGFuZ2UgYmVmb3JlIHJlYWNoaW5nIHN0YWJpbGl0eS4KKyovCis8L3ByZT4KK1Byb3Zpc2lvbmFsIE1vZGVsIEFQSSBzaG91bGQgYmUgbWFya2VkIGF0IHRoZSBlY29yZSBsZXZlbCB3aXRoIGEgbWV0YW1vZGVsIGlkZW50aWZpZXIgbWVudGlvbmluZyAiaW5jdWJhdGlvbiIgKGUuZy4gImh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9KYXZhLzAuMi5pbmN1YmF0aW9uL2phdmEiIGFzIG5zVVJJIGlkZW50aWZpZXIgb2YgYW4gZWNvcmUgZGVmaW5pdGlvbikuIEphdmEgbW9kZWwgQVBJLCBiZWNhdXNlIGl0IGlzIGdlbmVyYXRlZCBmcm9tIGVjb3JlIG1vZGVsLCBzaG91bGRuJ3QgaGF2ZSB0byBiZSBtYXJrZWQgYXMgcHJvdmlzaW9uYWwgYWNjb3JkaW5nbHkgdG8gdGhlIGVjb3JlIGRlZmluaXRpb24uCisKK1Byb3Zpc2lvbmFsIEV4dGVuc2lvbiBQb2ludCBBUEkgc2hvdWxkIGJlIG1hcmtlZCBhcyAiaW5jdWJhdGlvbiIgaW4gZXh0ZW5zaW9uIHBvaW50IG5hbWluZy4KKworPT0gRXhhbXBsZXMgQVBJICA9PQorCitUaGUgcHJvamVjdCBkZWxpdmVycyBzb21lIGV4YW1wbGVzIHBsdWdpbnMgZm9yIHZhcmlvdXMgTW9EaXNjbyBmZWF0dXJlcy4gSXQgaW5jbHVkZXMgc29tZSBtb2RlbHMgY29uZm9ybWluZyB0byBNb0Rpc2NvIGluZnJhc3RydWN0dXJlIGFuZCB0ZWNobm9sb2dpZXMgbGF5ZXJzLCBhbmQgc29tZSBKYXZhIEFQSS4gVGhvc2UgY29tcG9uZW50cyBtaWdodCBiZSB1c2VkIGFzIGEgc3RhcnRpbmcgcG9pbnQgZm9yIHRoZSBlbmQtdXNlciByZXZlcnNlIGVuZ2luZWVyaW5nIHByb2Nlc3MuIEJ1dCBFeGFtcGxlcyBBUEkgaXMgbm90IGFzIHN0YWJsZSBhcyBkZWNsYXJlZCBBUEkgYW5kIGlzIGV4cGVjdGVkIHRvIGNoYW5nZS4KKworQW55IHJlc291cmNlIGluY2x1ZGVkIGluIGEgcGx1Z2luIHdob3NlIG5hbWUgaW5kaWNhdGVzICdleGFtcGxlcycgc2hvdWxkIGJlIGNvbnNpZGVyZWQgb2YgSW50ZXJuYWwgQVBJIGtpbmQuCisKK1RoZSBleGFtcGxlcyBBUElzIGFyZSBub3Qgc3RhYmxlLiBUaGV5IGNhbiBjaGFuZ2Ugd2l0aG91dCBhbnkgbm90aWNlIChpbmNsdWRpbmcgaW4gYSBzZXJ2aWNlIHJlbGVhc2UpLgorCis9PSBUZXN0IEFQSSAgPT0KKworSW4gYWRkaXRpb24gdGhlIHByb2plY3QgZGVsaXZlcnMgc29tZSB0ZXN0cyBwbHVnaW5zIGZvciB2YXJpb3VzIE1vRGlzY28gZmVhdHVyZXMuIEl0IGFsc28gaW5jbHVkZXMgc29tZSBtb2RlbHMgYW5kIEphdmEgY2xhc3Nlcywgd2hpY2ggYXJlIG5vdCBhcyBzdGFibGUgYXMgZGVjbGFyZWQgQVBJLgorCitBbnkgcmVzb3VyY2UgaW5jbHVkZWQgaW4gYSBwbHVnaW4gd2hvc2UgbmFtZSBpbmRpY2F0ZXMgJ3Rlc3QnIHNob3VsZCBiZSBhbHNvIGNvbnNpZGVyZWQgb2YgSW50ZXJuYWwgQVBJIGtpbmQuCisKKz09IEludGVybmFsIFVzZSAgPT0KKworSW50ZXJuYWwgY29kZSBpcyBldmVyeXRoaW5nIGVsc2UuIE1vRGlzY28gcmVzZXJ2ZXMgdGhlIHJpZ2h0IHRvIGNoYW5nZSBpbnRlcm5hbCBjb2RlIGF0IGFueSB0aW1lIChpbmNsdWRpbmcgaW4gYSBzZXJ2aWNlIHJlbGVhc2UpLgorCitUaGUgaW50ZXJuYWwgcGFja2FnZXMgc2hvdWxkIGNvbnRhaW4gJ2ludGVybmFsJyBpbiB0aGUgcGFja2FnZSBuYW1lCitUaGUgaW50ZXJuYWwgcGFja2FnZXMgc2hvdWxkIG5vdCBhcHBlYXIgaW4gIkV4cG9ydGVkIFBhY2thZ2VzIiBpbiBtYW5pZmVzdCBmaWxlLiAnJ05vdGUgOiB3aXRoaW4gTW9EaXNjbyBjb21wb25lbnRzLCB4LWZyaWVuZHN8eC1pbnRlcm5hbCBjYW4gYmUgdXNlZCBpbiB0aGUgbWFuaWZlc3QgdG8gZ2l2ZSAnaW50ZXJuYWwnIGFjY2VzcyB0byBhbnkgcGx1Z2luIGZyb20gdGhlIHNhbWUgbGF5ZXIgdGhhdCByZXF1aXJlcyBpdCwgaW4gc3VjaCBhIGNhc2UgaXQgaXMgYWNjdXJhdGUgdG8gd3JpdGUgYSBBUEkucmVhZG1lLnR4dCBmaWxlIGF0IHRoZSB0b3AgbGV2ZWwgb2YgdGhlIHByb2plY3QgdG8ganVzdGlmeSB3aHkgb25lIG9mIGl0cyBpbnRlcm5hbCBwYWNrYWdlIGlzIGV4cG9zZWQuJycKKworSW50ZXJuYWwgZXh0ZW5zaW9uIHBvaW50cyBzaG91bGQgYmUgaW5kaWNhdGVkIGJ5ICdpbnRlcm5hbCcgaW4gdGhlIGV4dGVuc2lvbiBwb2ludCBuYW1lLgorCitJbnRlcm5hbCBtb2RlbCBBUEkgKHJhcmUpIHNob3VsZCBiZSBpbmRpY2F0ZWQgYnkgJ2ludGVybmFsJyBpbiB0aGUgaWRlbnRpZmllci4KKworSWYgYWRvcHRlcnMgcmVxdWlyZSB0aGUgdXNlIG9mIGludGVybmFsIGNvZGUgYW5kIGRvIG5vdCB3YW50IHRvIGJlIGNvbnRpbnVhbGx5IGJyb2tlbiwgdGhleSBzaG91bGQgb3BlbiBidWd6aWxsYSBlbmhhbmNlbWVudCByZXF1ZXN0cyBmb3IgQVBJLiBUaGVzZSBidWdzIHdpbGwgYmUgdHJpYWdlZCBhbmQgd2lsbCBoZWxwIGRyaXZlIHRoZSBjcmVhdGlvbiBvZiBuZXcgZGVjbGFyZWQgb3IgcHJvdmlzaW9uYWwgQVBJLgorCis9PSBEZXByZWNhdGVkIEFQSSBkZWNsYXJhdGlvbiA9PQorCitXaGVuIGFuIEFQSSBuZWVkIHRvIGJlIGRlY2xhcmVkIGRlcHJlY2F0ZWQsIHRoZSBjb250cmlidXRvciBoYXMgdG86CisqIEFkZCB0aGUgQERlcHJlY2F0ZWQgdGFnIGluIHRoZSBKYXZhIGNvZGUuCisqIE9wZW4gYSBidWc6CisqKiBoYXZpbmcgYSBzdW1tYXJ5IHN0YXJ0aW5nIHdpdGggW0RlcHJlY2F0ZWRdLAorKiogc3BlY2lmeWluZyBpbiB3aGljaCB2ZXJzaW9uIHRoZSBBUEkgd2lsbCBiZSByZW1vdmVkLgorKiBDb3B5IHRoZSBidWcgVVJMIGluIHRoZSBKYXZhIGNvZGUgb2YgdGhlIGRlcHJlY2F0ZWQgQVBJLgorKiBBZGQgaW4gdGhlIEphdmFkb2MgY29tbWVudCB1c2luZyB0aGUgQGRlcHJlY2F0ZWQgdGFnOgorKiogYW4gZXhwbGFuYXRpb24gb2Ygd2hhdCB0byBkbyB3aGVuIHdlIGFyZSB1c2luZyB0aGUgZGVwcmVjYXRlZCBBUEksCisqKiB0aGUgdmVyc2lvbiBudW1iZXIgb2YgdGhlIGRlcHJlY2F0aW9uLAorKiogdGhlIGJ1ZyBVUkwuCisKKzxmb250IHNpemU9Ii0yIj4KK0NvcHlyaWdodCAoYykgMjAxNSBNaWEtU29mdHdhcmUuCitBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCithcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKK3doaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CitodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbC4KKzwvZm9udD4KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uZWNsaXBzZS5mZWF0dXJlLy5wcm9qZWN0IGIvb3JnLmVjbGlwc2UubW9kaXNjby5lY2xpcHNlLmZlYXR1cmUvLnByb2plY3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2I2ZmJkOAotLS0gL2Rldi9udWxsCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uZWNsaXBzZS5mZWF0dXJlLy5wcm9qZWN0CkBAIC0wLDAgKzEsMjcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPCEtLQ0KKyAgICBDb3B5cmlnaHQgKGMpIDIwMTUgTWlhLVNvZnR3YXJlLg0KKyAgICBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQorICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KKyAgICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KKyAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KKyAgIA0KKyAgICBDb250cmlidXRvcnM6DQorICAgICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgwMTg5IC0gb3JnLmVjbGlwc2UubW9kaXNjby57bWFuaWZlc3QsZWNsaXBzZXBsdWdpbixwcm9wZXJ0aWVzfSogc2hvdWxkIGJlIGFkZGVkIGluIHRoZSB1cGRhdGVzaXRlDQorIC0tPg0KKzxwcm9qZWN0RGVzY3JpcHRpb24+DQorCTxuYW1lPm9yZy5lY2xpcHNlLm1vZGlzY28uZWNsaXBzZS5mZWF0dXJlPC9uYW1lPg0KKwk8Y29tbWVudD48L2NvbW1lbnQ+DQorCTxwcm9qZWN0cz4NCisJPC9wcm9qZWN0cz4NCisJPGJ1aWxkU3BlYz4NCisJCTxidWlsZENvbW1hbmQ+DQorCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLkZlYXR1cmVCdWlsZGVyPC9uYW1lPg0KKwkJCTxhcmd1bWVudHM+DQorCQkJPC9hcmd1bWVudHM+DQorCQk8L2J1aWxkQ29tbWFuZD4NCisJPC9idWlsZFNwZWM+DQorCTxuYXR1cmVzPg0KKwkJPG5hdHVyZT5vcmcuZWNsaXBzZS5wZGUuRmVhdHVyZU5hdHVyZTwvbmF0dXJlPg0KKwk8L25hdHVyZXM+DQorPC9wcm9qZWN0RGVzY3JpcHRpb24+DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5lY2xpcHNlLmZlYXR1cmUvYnVpbGQucHJvcGVydGllcyBiL29yZy5lY2xpcHNlLm1vZGlzY28uZWNsaXBzZS5mZWF0dXJlL2J1aWxkLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTUzZGVmYwotLS0gL2Rldi9udWxsCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uZWNsaXBzZS5mZWF0dXJlL2J1aWxkLnByb3BlcnRpZXMKQEAgLTAsMCArMSwxMyBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KKyMgQ29weXJpZ2h0IChjKSAyMDE1IE1pYS1Tb2Z0d2FyZS4NCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCisjIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KKyMgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCisjIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQorIw0KKyMgQ29udHJpYnV0b3JzOg0KKyMgICAgIEdyZWdvaXJlIER1cGUgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgwMTg5IC0gb3JnLmVjbGlwc2UubW9kaXNjby57bWFuaWZlc3QsZWNsaXBzZXBsdWdpbixwcm9wZXJ0aWVzfSogc2hvdWxkIGJlIGFkZGVkIGluIHRoZSB1cGRhdGVzaXRlDQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KKw0KK2Jpbi5pbmNsdWRlcyA9IGZlYXR1cmUueG1sLFwNCisgICAgICAgICAgICAgICBmZWF0dXJlLnByb3BlcnRpZXMNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmVjbGlwc2UuZmVhdHVyZS9mZWF0dXJlLnByb3BlcnRpZXMgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmVjbGlwc2UuZmVhdHVyZS9mZWF0dXJlLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjc4NWFmNwotLS0gL2Rldi9udWxsCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uZWNsaXBzZS5mZWF0dXJlL2ZlYXR1cmUucHJvcGVydGllcwpAQCAtMCwwICsxLDE1IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQorIyBDb3B5cmlnaHQgKGMpIDIwMTUgTWlhLVNvZnR3YXJlLg0KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KKyMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQorIyB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KKyMgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCisjDQorIyBDb250cmlidXRvcnM6DQorIyAgICAgR3JlZ29pcmUgRHVwZSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODAxODkgLSBvcmcuZWNsaXBzZS5tb2Rpc2NvLnttYW5pZmVzdCxlY2xpcHNlcGx1Z2luLHByb3BlcnRpZXN9KiBzaG91bGQgYmUgYWRkZWQgaW4gdGhlIHVwZGF0ZXNpdGUNCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQorDQorZmVhdHVyZU5hbWU9TW9EaXNjbyBFY2xpcHNlIFBsYXRmb3JtIERpc2NvdmVyeSBGZWF0dXJlDQorcHJvdmlkZXJOYW1lPUVjbGlwc2UgTW9kZWxpbmcgUHJvamVjdA0KK2Rlc2NyaXB0aW9uPU1vRGlzY28gaXMgYSBmcmFtZXdvcmsgZm9yIG1vZGVsIGRyaXZlbiByZXZlcnNlIGVuZ2luZWVyaW5nIGFuZCBcDQorc29mdHdhcmUgbW9kZXJuaXphdGlvbi4gVGhpcyBmZWF0dXJlIHByb3ZpZGVzIHRoZSBNb0Rpc2NvIGRpc2NvdmVyZXJzIGZvciBFY2xpcHNlIHBsYXRmb3JtLg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uZWNsaXBzZS5mZWF0dXJlL2ZlYXR1cmUueG1sIGIvb3JnLmVjbGlwc2UubW9kaXNjby5lY2xpcHNlLmZlYXR1cmUvZmVhdHVyZS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWM4MWQyNAotLS0gL2Rldi9udWxsCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uZWNsaXBzZS5mZWF0dXJlL2ZlYXR1cmUueG1sCkBAIC0wLDAgKzEsNjQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPCEtLQorICAgIENvcHlyaWdodCAoYykgMjAxNSBNaWEtU29mdHdhcmUuCisgICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscworICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICAgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CisgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAgIAorICAgIENvbnRyaWJ1dG9yczoKKyAgICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgwMTg5IC0gb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdCogYW5kIG9yZy5lY2xpcHNlLm1vZGlzY28uZWNsaXBzZXBsdWdpbiogc2hvdWxkIGJlIGFkZGVkIGluIHRoZSB1cGRhdGVzaXRlCisgLS0+DQorPGZlYXR1cmUNCisgICAgICBpZD0ib3JnLmVjbGlwc2UubW9kaXNjby5lY2xpcHNlLmZlYXR1cmUiDQorICAgICAgbGFiZWw9IiVmZWF0dXJlTmFtZSINCisgICAgICB2ZXJzaW9uPSIxLjAuMC5xdWFsaWZpZXIiDQorICAgICAgcHJvdmlkZXItbmFtZT0iJXByb3ZpZGVyTmFtZSINCisgICAgICBsaWNlbnNlLWZlYXR1cmU9Im9yZy5lY2xpcHNlLmxpY2Vuc2UiDQorICAgICAgbGljZW5zZS1mZWF0dXJlLXZlcnNpb249IjAuMC4wIj4NCisNCisgICA8ZGVzY3JpcHRpb24gdXJsPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vIj4NCisgICAgICAlZGVzY3JpcHRpb24NCisgICA8L2Rlc2NyaXB0aW9uPg0KKw0KKyAgIDxjb3B5cmlnaHQ+DQorICAgICAgQ29weXJpZ2h0IChjKSAyMDE1IE1pYS1Tb2Z0d2FyZS4KK0FsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKK2FyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UKK3YxLjAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKK2h0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQorICAgPC9jb3B5cmlnaHQ+DQorDQorICAgPGxpY2Vuc2UgdXJsPSIlbGljZW5zZVVSTCI+DQorICAgICAgJWxpY2Vuc2UNCisgICA8L2xpY2Vuc2U+DQorDQorICAgPHJlcXVpcmVzPg0KKyAgICAgIDxpbXBvcnQNCisgICAgICAgICBmZWF0dXJlPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZmVhdHVyZSINCisgICAgICAgICB2ZXJzaW9uPSIxLjAuMCINCisgICAgICAgICBtYXRjaD0iZ3JlYXRlck9yRXF1YWwiLz4NCisgICA8L3JlcXVpcmVzPg0KKw0KKyAgIDxwbHVnaW4NCisgICAgICAgICBpZD0ib3JnLmVjbGlwc2UubW9kaXNjby5lY2xpcHNlcGx1Z2luIg0KKyAgICAgICAgIGRvd25sb2FkLXNpemU9IjAiDQorICAgICAgICAgaW5zdGFsbC1zaXplPSIwIg0KKyAgICAgICAgIHZlcnNpb249IjAuMC4wIg0KKyAgICAgICAgIHVucGFjaz0iZmFsc2UiLz4NCisNCisgICA8cGx1Z2luDQorICAgICAgICAgaWQ9Im9yZy5lY2xpcHNlLm1vZGlzY28uZWNsaXBzZXBsdWdpbi5kaXNjb3ZlcmVyIg0KKyAgICAgICAgIGRvd25sb2FkLXNpemU9IjAiDQorICAgICAgICAgaW5zdGFsbC1zaXplPSIwIg0KKyAgICAgICAgIHZlcnNpb249IjAuMC4wIg0KKyAgICAgICAgIHVucGFjaz0iZmFsc2UiLz4NCisNCisgICA8cGx1Z2luDQorICAgICAgICAgaWQ9Im9yZy5lY2xpcHNlLm1vZGlzY28uZWNsaXBzZXBsdWdpbi5kaXNjb3ZlcmVyLnVpIg0KKyAgICAgICAgIGRvd25sb2FkLXNpemU9IjAiDQorICAgICAgICAgaW5zdGFsbC1zaXplPSIwIg0KKyAgICAgICAgIHZlcnNpb249IjAuMC4wIg0KKyAgICAgICAgIHVucGFjaz0iZmFsc2UiLz4NCisNCis8L2ZlYXR1cmU+DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5lY2xpcHNlcGx1Z2luL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby5lY2xpcHNlcGx1Z2luL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDFjZTZjOTkuLmViNGRkNzggMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uZWNsaXBzZXBsdWdpbi9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmVjbGlwc2VwbHVnaW4vTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTgsOCArOCw4IEBACiBCdW5kbGUtTG9jYWxpemF0aW9uOiBwbHVnaW4NCiBCdW5kbGUtUmVxdWlyZWRFeGVjdXRpb25FbnZpcm9ubWVudDogSjJTRS0xLjUNCiBFeHBvcnQtUGFja2FnZTogb3JnLmVjbGlwc2UubW9kaXNjby5lY2xpcHNlcGx1Z2luLA0KLSBvcmcuZWNsaXBzZS5tb2Rpc2NvLmVjbGlwc2VwbHVnaW4uaW1wbCwNCi0gb3JnLmVjbGlwc2UubW9kaXNjby5lY2xpcHNlcGx1Z2luLnV0aWwNCisgb3JnLmVjbGlwc2UubW9kaXNjby5lY2xpcHNlcGx1Z2luLmltcGw7eC1pbnRlcm5hbDo9dHJ1ZSwNCisgb3JnLmVjbGlwc2UubW9kaXNjby5lY2xpcHNlcGx1Z2luLnV0aWw7eC1pbnRlcm5hbDo9dHJ1ZQ0KIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUsDQogIG9yZy5lY2xpcHNlLmVtZi5lY29yZTt2aXNpYmlsaXR5Oj1yZWV4cG9ydCwNCiAgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YTt2aXNpYmlsaXR5Oj1yZWV4cG9ydCwNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWNvcmUuY29yZS9idWlsZC5wcm9wZXJ0aWVzIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVjb3JlLmNvcmUvYnVpbGQucHJvcGVydGllcwppbmRleCBlNzliYjIxLi4xMjY1MTUzIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWNvcmUuY29yZS9idWlsZC5wcm9wZXJ0aWVzCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lY29yZS5jb3JlL2J1aWxkLnByb3BlcnRpZXMKQEAgLTQsNSArNCw2IEBACiAgICAgICAgICAgICAgICAuLFwNCiAgICAgICAgICAgICAgICBwbHVnaW4ueG1sLFwNCiAgICAgICAgICAgICAgICBhYm91dC5odG1sLFwNCi0gICAgICAgICAgICAgICBjdXN0b20vDQorICAgICAgICAgICAgICAgY3VzdG9tLyxcDQorICAgICAgICAgICAgICAgZmFjZXQvDQogc3JjLmluY2x1ZGVzID0gYWJvdXQuaHRtbA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlLy5wbWQgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS8ucG1kCmluZGV4IDcyNmM2OGYuLmVmY2QyZGIgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlLy5wbWQKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUvLnBtZApAQCAtMSw5NDEgKzEsNyBAQAogPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KIDxwbWQ+Ci0gICAgPHVzZVByb2plY3RSdWxlU2V0PmZhbHNlPC91c2VQcm9qZWN0UnVsZVNldD4KLSAgICA8cnVsZVNldEZpbGU+LnJ1bGVzZXQ8L3J1bGVTZXRGaWxlPgotICAgIDxydWxlcz4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5Bdm9pZERlY2ltYWxMaXRlcmFsc0luQmlnRGVjaW1hbENvbnN0cnVjdG9yPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+QmFzaWMgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5Bdm9pZE11bHRpcGxlVW5hcnlPcGVyYXRvcnM8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5CYXNpYyBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkF2b2lkVGhyZWFkR3JvdXA8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5CYXNpYyBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkF2b2lkVXNpbmdIYXJkQ29kZWRJUDwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkJhc2ljIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+QXZvaWRVc2luZ09jdGFsVmFsdWVzPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+QmFzaWMgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5CaWdJbnRlZ2VySW5zdGFudGlhdGlvbjwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkJhc2ljIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+Qm9vbGVhbkluc3RhbnRpYXRpb248L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5CYXNpYyBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkJyb2tlbk51bGxDaGVjazwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkJhc2ljIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+Q2hlY2tSZXN1bHRTZXQ8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5CYXNpYyBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkNsYXNzQ2FzdEV4Y2VwdGlvbldpdGhUb0FycmF5PC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+QmFzaWMgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5Db2xsYXBzaWJsZUlmU3RhdGVtZW50czwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkJhc2ljIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+RG91YmxlQ2hlY2tlZExvY2tpbmc8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5CYXNpYyBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkVtcHR5Q2F0Y2hCbG9jazwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkJhc2ljIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+RW1wdHlGaW5hbGx5QmxvY2s8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5CYXNpYyBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkVtcHR5SWZTdG10PC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+QmFzaWMgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5FbXB0eUluaXRpYWxpemVyPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+QmFzaWMgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5FbXB0eVN0YXRlbWVudE5vdEluTG9vcDwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkJhc2ljIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+RW1wdHlTdGF0aWNJbml0aWFsaXplcjwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkJhc2ljIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+RW1wdHlTd2l0Y2hTdGF0ZW1lbnRzPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+QmFzaWMgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5FbXB0eVN5bmNocm9uaXplZEJsb2NrPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+QmFzaWMgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5FbXB0eVRyeUJsb2NrPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+QmFzaWMgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5FbXB0eVdoaWxlU3RtdDwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkJhc2ljIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+Rm9yTG9vcFNob3VsZEJlV2hpbGVMb29wPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+QmFzaWMgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5KdW1ibGVkSW5jcmVtZW50ZXI8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5CYXNpYyBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPk1pc3BsYWNlZE51bGxDaGVjazwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkJhc2ljIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+T3ZlcnJpZGVCb3RoRXF1YWxzQW5kSGFzaGNvZGU8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5CYXNpYyBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPlJldHVybkZyb21GaW5hbGx5QmxvY2s8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5CYXNpYyBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPlVuY29uZGl0aW9uYWxJZlN0YXRlbWVudDwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkJhc2ljIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+VW5uZWNlc3NhcnlDb252ZXJzaW9uVGVtcG9yYXJ5PC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+QmFzaWMgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5Vbm5lY2Vzc2FyeUZpbmFsTW9kaWZpZXI8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5CYXNpYyBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPlVubmVjZXNzYXJ5UmV0dXJuPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+QmFzaWMgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5VbnVzZWROdWxsQ2hlY2tJbkVxdWFsczwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkJhc2ljIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+VXNlbGVzc09wZXJhdGlvbk9uSW1tdXRhYmxlPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+QmFzaWMgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5Vc2VsZXNzT3ZlcnJpZGluZ01ldGhvZDwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkJhc2ljIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+Rm9yTG9vcHNNdXN0VXNlQnJhY2VzPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+QnJhY2VzIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+SWZFbHNlU3RtdHNNdXN0VXNlQnJhY2VzPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+QnJhY2VzIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+SWZTdG10c011c3RVc2VCcmFjZXM8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5CcmFjZXMgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5XaGlsZUxvb3BzTXVzdFVzZUJyYWNlczwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkJyYWNlcyBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkNsb25lVGhyb3dzQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb248L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5DbG9uZSBJbXBsZW1lbnRhdGlvbiBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPlByb3BlckNsb25lSW1wbGVtZW50YXRpb248L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5DbG9uZSBJbXBsZW1lbnRhdGlvbiBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkN5Y2xvbWF0aWNDb21wbGV4aXR5PC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+Q29kZSBTaXplIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+RXhjZXNzaXZlQ2xhc3NMZW5ndGg8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5Db2RlIFNpemUgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5FeGNlc3NpdmVNZXRob2RMZW5ndGg8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5Db2RlIFNpemUgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5FeGNlc3NpdmVQYXJhbWV0ZXJMaXN0PC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+Q29kZSBTaXplIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+RXhjZXNzaXZlUHVibGljQ291bnQ8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5Db2RlIFNpemUgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5OY3NzQ29uc3RydWN0b3JDb3VudDwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkNvZGUgU2l6ZSBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPk5jc3NNZXRob2RDb3VudDwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkNvZGUgU2l6ZSBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPk5jc3NUeXBlQ291bnQ8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5Db2RlIFNpemUgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5OUGF0aENvbXBsZXhpdHk8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5Db2RlIFNpemUgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5Ub29NYW55RmllbGRzPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+Q29kZSBTaXplIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+VG9vTWFueU1ldGhvZHM8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5Db2RlIFNpemUgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5Bc3NpZ25tZW50SW5PcGVyYW5kPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+Q29udHJvdmVyc2lhbCBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkF0TGVhc3RPbmVDb25zdHJ1Y3RvcjwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkNvbnRyb3ZlcnNpYWwgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5Bdm9pZEFjY2Vzc2liaWxpdHlBbHRlcmF0aW9uPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+Q29udHJvdmVyc2lhbCBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkF2b2lkRmluYWxMb2NhbFZhcmlhYmxlPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+Q29udHJvdmVyc2lhbCBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkF2b2lkVXNpbmdOYXRpdmVDb2RlPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+Q29udHJvdmVyc2lhbCBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkF2b2lkVXNpbmdTaG9ydFR5cGU8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5Db250cm92ZXJzaWFsIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+QXZvaWRVc2luZ1ZvbGF0aWxlPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+Q29udHJvdmVyc2lhbCBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkJvb2xlYW5JbnZlcnNpb248L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5Db250cm92ZXJzaWFsIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+Q2FsbFN1cGVySW5Db25zdHJ1Y3RvcjwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkNvbnRyb3ZlcnNpYWwgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5EYXRhZmxvd0Fub21hbHlBbmFseXNpczwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkNvbnRyb3ZlcnNpYWwgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5EZWZhdWx0UGFja2FnZTwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkNvbnRyb3ZlcnNpYWwgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5Eb05vdENhbGxHYXJiYWdlQ29sbGVjdGlvbkV4cGxpY2l0bHk8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5Db250cm92ZXJzaWFsIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+RG9udEltcG9ydFN1bjwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkNvbnRyb3ZlcnNpYWwgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5OdWxsQXNzaWdubWVudDwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkNvbnRyb3ZlcnNpYWwgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5Pbmx5T25lUmV0dXJuPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+Q29udHJvdmVyc2lhbCBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPlN1c3BpY2lvdXNPY3RhbEVzY2FwZTwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkNvbnRyb3ZlcnNpYWwgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5Vbm5lY2Vzc2FyeUNvbnN0cnVjdG9yPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+Q29udHJvdmVyc2lhbCBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPlVubmVjZXNzYXJ5UGFyZW50aGVzZXM8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5Db250cm92ZXJzaWFsIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+VW51c2VkTW9kaWZpZXI8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5Db250cm92ZXJzaWFsIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+Q291cGxpbmdCZXR3ZWVuT2JqZWN0czwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkNvdXBsaW5nIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+RXhjZXNzaXZlSW1wb3J0czwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkNvdXBsaW5nIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+QWJzdHJhY3RDbGFzc1dpdGhvdXRBYnN0cmFjdE1ldGhvZDwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkRlc2lnbiBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkFic3RyYWN0Q2xhc3NXaXRob3V0QW55TWV0aG9kPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+RGVzaWduIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+QWNjZXNzb3JDbGFzc0dlbmVyYXRpb248L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5EZXNpZ24gUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5Bc3NpZ25tZW50VG9Ob25GaW5hbFN0YXRpYzwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkRlc2lnbiBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkF2b2lkQ29uc3RhbnRzSW50ZXJmYWNlPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+RGVzaWduIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+QXZvaWREZWVwbHlOZXN0ZWRJZlN0bXRzPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+RGVzaWduIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+QXZvaWRJbnN0YW5jZW9mQ2hlY2tzSW5DYXRjaENsYXVzZTwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkRlc2lnbiBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkF2b2lkUHJvdGVjdGVkRmllbGRJbkZpbmFsQ2xhc3M8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5EZXNpZ24gUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5Bdm9pZFJlYXNzaWduaW5nUGFyYW1ldGVyczwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkRlc2lnbiBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkF2b2lkU3luY2hyb25pemVkQXRNZXRob2RMZXZlbDwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkRlc2lnbiBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkJhZENvbXBhcmlzb248L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5EZXNpZ24gUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5DbGFzc1dpdGhPbmx5UHJpdmF0ZUNvbnN0cnVjdG9yc1Nob3VsZEJlRmluYWw8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5EZXNpZ24gUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5DbG9zZVJlc291cmNlPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+RGVzaWduIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+Q29tcGFyZU9iamVjdHNXaXRoRXF1YWxzPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+RGVzaWduIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+Q29uZnVzaW5nVGVybmFyeTwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkRlc2lnbiBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkNvbnN0cnVjdG9yQ2FsbHNPdmVycmlkYWJsZU1ldGhvZDwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkRlc2lnbiBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkRlZmF1bHRMYWJlbE5vdExhc3RJblN3aXRjaFN0bXQ8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5EZXNpZ24gUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5FbXB0eU1ldGhvZEluQWJzdHJhY3RDbGFzc1Nob3VsZEJlQWJzdHJhY3Q8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5EZXNpZ24gUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5FcXVhbHNOdWxsPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+RGVzaWduIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+RmluYWxGaWVsZENvdWxkQmVTdGF0aWM8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5EZXNpZ24gUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5JZGVtcG90ZW50T3BlcmF0aW9uczwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkRlc2lnbiBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkltbXV0YWJsZUZpZWxkPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+RGVzaWduIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+SW5zdGFudGlhdGlvblRvR2V0Q2xhc3M8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5EZXNpZ24gUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5NaXNzaW5nQnJlYWtJblN3aXRjaDwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkRlc2lnbiBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPk1pc3NpbmdTdGF0aWNNZXRob2RJbk5vbkluc3RhbnRpYXRhYmxlQ2xhc3M8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5EZXNpZ24gUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5Ob25DYXNlTGFiZWxJblN3aXRjaFN0YXRlbWVudDwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkRlc2lnbiBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPk5vblN0YXRpY0luaXRpYWxpemVyPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+RGVzaWduIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+Tm9uVGhyZWFkU2FmZVNpbmdsZXRvbjwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkRlc2lnbiBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPk9wdGltaXphYmxlVG9BcnJheUNhbGw8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5EZXNpZ24gUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5Qb3NpdGlvbkxpdGVyYWxzRmlyc3RJbkNvbXBhcmlzb25zPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+RGVzaWduIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+UHJlc2VydmVTdGFja1RyYWNlPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+RGVzaWduIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+UmV0dXJuRW1wdHlBcnJheVJhdGhlclRoYW5OdWxsPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+RGVzaWduIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+U2ltcGxlRGF0ZUZvcm1hdE5lZWRzTG9jYWxlPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+RGVzaWduIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+U2ltcGxpZnlCb29sZWFuRXhwcmVzc2lvbnM8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5EZXNpZ24gUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5TaW1wbGlmeUJvb2xlYW5SZXR1cm5zPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+RGVzaWduIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+U2ltcGxpZnlDb25kaXRpb25hbDwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkRlc2lnbiBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPlNpbmd1bGFyRmllbGQ8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5EZXNpZ24gUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5Td2l0Y2hEZW5zaXR5PC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+RGVzaWduIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+U3dpdGNoU3RtdHNTaG91bGRIYXZlRGVmYXVsdDwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkRlc2lnbiBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPlRvb0Zld0JyYW5jaGVzRm9yQVN3aXRjaFN0YXRlbWVudDwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkRlc2lnbiBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPlVuY29tbWVudGVkRW1wdHlDb25zdHJ1Y3RvcjwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkRlc2lnbiBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPlVuY29tbWVudGVkRW1wdHlNZXRob2Q8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5EZXNpZ24gUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5Vbm5lY2Vzc2FyeUxvY2FsQmVmb3JlUmV0dXJuPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+RGVzaWduIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+VW5zeW5jaHJvbml6ZWRTdGF0aWNEYXRlRm9ybWF0dGVyPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+RGVzaWduIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+VXNlQ29sbGVjdGlvbklzRW1wdHk8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5EZXNpZ24gUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5Vc2VMb2NhbGVXaXRoQ2FzZUNvbnZlcnNpb25zPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+RGVzaWduIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+VXNlTm90aWZ5QWxsSW5zdGVhZE9mTm90aWZ5PC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+RGVzaWduIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+VXNlU2luZ2xldG9uPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+RGVzaWduIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+QXZvaWRDYWxsaW5nRmluYWxpemU8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5GaW5hbGl6ZXIgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5FbXB0eUZpbmFsaXplcjwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkZpbmFsaXplciBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkZpbmFsaXplRG9lc05vdENhbGxTdXBlckZpbmFsaXplPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+RmluYWxpemVyIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+RmluYWxpemVPbmx5Q2FsbHNTdXBlckZpbmFsaXplPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+RmluYWxpemVyIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+RmluYWxpemVPdmVybG9hZGVkPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+RmluYWxpemVyIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+RmluYWxpemVTaG91bGRCZVByb3RlY3RlZDwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkZpbmFsaXplciBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkRvbnRJbXBvcnRKYXZhTGFuZzwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkltcG9ydCBTdGF0ZW1lbnQgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5EdXBsaWNhdGVJbXBvcnRzPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+SW1wb3J0IFN0YXRlbWVudCBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkltcG9ydEZyb21TYW1lUGFja2FnZTwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkltcG9ydCBTdGF0ZW1lbnQgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5Ub29NYW55U3RhdGljSW1wb3J0czwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkltcG9ydCBTdGF0ZW1lbnQgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5Eb05vdENhbGxTeXN0ZW1FeGl0PC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+SjJFRSBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkRvTm90VXNlVGhyZWFkczwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkoyRUUgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5Mb2NhbEhvbWVOYW1pbmdDb252ZW50aW9uPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+SjJFRSBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkxvY2FsSW50ZXJmYWNlU2Vzc2lvbk5hbWluZ0NvbnZlbnRpb248L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5KMkVFIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+TURCQW5kU2Vzc2lvbkJlYW5OYW1pbmdDb252ZW50aW9uPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+SjJFRSBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPlJlbW90ZUludGVyZmFjZU5hbWluZ0NvbnZlbnRpb248L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5KMkVFIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+UmVtb3RlU2Vzc2lvbkludGVyZmFjZU5hbWluZ0NvbnZlbnRpb248L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5KMkVFIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+U3RhdGljRUpCRmllbGRTaG91bGRCZUZpbmFsPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+SjJFRSBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPlVzZVByb3BlckNsYXNzTG9hZGVyPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+SjJFRSBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPlByb3BlckxvZ2dlcjwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0Pkpha2FydGEgQ29tbW9ucyBMb2dnaW5nIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+VXNlQ29ycmVjdEV4Y2VwdGlvbkxvZ2dpbmc8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5KYWthcnRhIENvbW1vbnMgTG9nZ2luZyBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkF2b2lkUHJpbnRTdGFja1RyYWNlPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+SmF2YSBMb2dnaW5nIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+TG9nZ2VySXNOb3RTdGF0aWNGaW5hbDwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkphdmEgTG9nZ2luZyBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPk1vcmVUaGFuT25lTG9nZ2VyPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+SmF2YSBMb2dnaW5nIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+U3lzdGVtUHJpbnRsbjwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkphdmEgTG9nZ2luZyBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkJlYW5NZW1iZXJzU2hvdWxkU2VyaWFsaXplPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+SmF2YUJlYW4gUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5NaXNzaW5nU2VyaWFsVmVyc2lvblVJRDwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkphdmFCZWFuIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+SlVuaXRBc3NlcnRpb25zU2hvdWxkSW5jbHVkZU1lc3NhZ2U8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5KVW5pdCBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkpVbml0U3BlbGxpbmc8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5KVW5pdCBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkpVbml0U3RhdGljU3VpdGU8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5KVW5pdCBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkpVbml0VGVzdHNTaG91bGRJbmNsdWRlQXNzZXJ0PC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+SlVuaXQgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5TaW1wbGlmeUJvb2xlYW5Bc3NlcnRpb248L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5KVW5pdCBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPlRlc3RDbGFzc1dpdGhvdXRUZXN0Q2FzZXM8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5KVW5pdCBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPlVubmVjZXNzYXJ5Qm9vbGVhbkFzc2VydGlvbjwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkpVbml0IFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+VXNlQXNzZXJ0RXF1YWxzSW5zdGVhZE9mQXNzZXJ0VHJ1ZTwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PkpVbml0IFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+VXNlQXNzZXJ0TnVsbEluc3RlYWRPZkFzc2VydFRydWU8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5KVW5pdCBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPlVzZUFzc2VydFNhbWVJbnN0ZWFkT2ZBc3NlcnRUcnVlPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+SlVuaXQgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5Bdm9pZEFzc2VydEFzSWRlbnRpZmllcjwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0Pk1pZ3JhdGlvbiBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkF2b2lkRW51bUFzSWRlbnRpZmllcjwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0Pk1pZ3JhdGlvbiBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkJ5dGVJbnN0YW50aWF0aW9uPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+TWlncmF0aW9uIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+SW50ZWdlckluc3RhbnRpYXRpb248L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5NaWdyYXRpb24gUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5KVW5pdDRTdWl0ZXNTaG91bGRVc2VTdWl0ZUFubm90YXRpb248L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5NaWdyYXRpb24gUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5KVW5pdDRUZXN0U2hvdWxkVXNlQWZ0ZXJBbm5vdGF0aW9uPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+TWlncmF0aW9uIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+SlVuaXQ0VGVzdFNob3VsZFVzZUJlZm9yZUFubm90YXRpb248L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5NaWdyYXRpb24gUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5KVW5pdDRUZXN0U2hvdWxkVXNlVGVzdEFubm90YXRpb248L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5NaWdyYXRpb24gUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5KVW5pdFVzZUV4cGVjdGVkPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+TWlncmF0aW9uIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+TG9uZ0luc3RhbnRpYXRpb248L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5NaWdyYXRpb24gUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5SZXBsYWNlRW51bWVyYXRpb25XaXRoSXRlcmF0b3I8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5NaWdyYXRpb24gUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5SZXBsYWNlSGFzaHRhYmxlV2l0aE1hcDwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0Pk1pZ3JhdGlvbiBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPlJlcGxhY2VWZWN0b3JXaXRoTGlzdDwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0Pk1pZ3JhdGlvbiBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPlNob3J0SW5zdGFudGlhdGlvbjwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0Pk1pZ3JhdGlvbiBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkFic3RyYWN0TmFtaW5nPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+TmFtaW5nIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+QXZvaWREb2xsYXJTaWduczwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0Pk5hbWluZyBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkF2b2lkRmllbGROYW1lTWF0Y2hpbmdNZXRob2ROYW1lPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+TmFtaW5nIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+QXZvaWRGaWVsZE5hbWVNYXRjaGluZ1R5cGVOYW1lPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+TmFtaW5nIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+Qm9vbGVhbkdldE1ldGhvZE5hbWU8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5OYW1pbmcgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5DbGFzc05hbWluZ0NvbnZlbnRpb25zPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+TmFtaW5nIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+TG9uZ1ZhcmlhYmxlPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+TmFtaW5nIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+TWV0aG9kTmFtaW5nQ29udmVudGlvbnM8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5OYW1pbmcgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5NZXRob2RXaXRoU2FtZU5hbWVBc0VuY2xvc2luZ0NsYXNzPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+TmFtaW5nIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+TWlzbGVhZGluZ1ZhcmlhYmxlTmFtZTwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0Pk5hbWluZyBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPk5vUGFja2FnZTwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0Pk5hbWluZyBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPlBhY2thZ2VDYXNlPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+TmFtaW5nIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+U2hvcnRNZXRob2ROYW1lPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+TmFtaW5nIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+U2hvcnRWYXJpYWJsZTwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0Pk5hbWluZyBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPlN1c3BpY2lvdXNDb25zdGFudEZpZWxkTmFtZTwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0Pk5hbWluZyBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPlN1c3BpY2lvdXNFcXVhbHNNZXRob2ROYW1lPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+TmFtaW5nIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+U3VzcGljaW91c0hhc2hjb2RlTWV0aG9kTmFtZTwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0Pk5hbWluZyBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPlZhcmlhYmxlTmFtaW5nQ29udmVudGlvbnM8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5OYW1pbmcgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5BZGRFbXB0eVN0cmluZzwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0Pk9wdGltaXphdGlvbiBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkF2b2lkQXJyYXlMb29wczwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0Pk9wdGltaXphdGlvbiBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkF2b2lkSW5zdGFudGlhdGluZ09iamVjdHNJbkxvb3BzPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+T3B0aW1pemF0aW9uIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+TG9jYWxWYXJpYWJsZUNvdWxkQmVGaW5hbDwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0Pk9wdGltaXphdGlvbiBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPk1ldGhvZEFyZ3VtZW50Q291bGRCZUZpbmFsPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+T3B0aW1pemF0aW9uIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+U2ltcGxpZnlTdGFydHNXaXRoPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+T3B0aW1pemF0aW9uIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+VW5uZWNlc3NhcnlXcmFwcGVyT2JqZWN0Q3JlYXRpb248L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5PcHRpbWl6YXRpb24gUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5Vc2VBcnJheUxpc3RJbnN0ZWFkT2ZWZWN0b3I8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5PcHRpbWl6YXRpb24gUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5Vc2VBcnJheXNBc0xpc3Q8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5PcHRpbWl6YXRpb24gUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5Vc2VTdHJpbmdCdWZmZXJGb3JTdHJpbmdBcHBlbmRzPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+T3B0aW1pemF0aW9uIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+QXJyYXlJc1N0b3JlZERpcmVjdGx5PC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+U2VjdXJpdHkgQ29kZSBHdWlkZWxpbmVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+TWV0aG9kUmV0dXJuc0ludGVybmFsQXJyYXk8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5TZWN1cml0eSBDb2RlIEd1aWRlbGluZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5Bdm9pZENhdGNoaW5nTlBFPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+U3RyaWN0IEV4Y2VwdGlvbiBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkF2b2lkQ2F0Y2hpbmdUaHJvd2FibGU8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5TdHJpY3QgRXhjZXB0aW9uIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+QXZvaWRSZXRocm93aW5nRXhjZXB0aW9uPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+U3RyaWN0IEV4Y2VwdGlvbiBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkF2b2lkVGhyb3dpbmdOZXdJbnN0YW5jZU9mU2FtZUV4Y2VwdGlvbjwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PlN0cmljdCBFeGNlcHRpb24gUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5Bdm9pZFRocm93aW5nTnVsbFBvaW50ZXJFeGNlcHRpb248L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5TdHJpY3QgRXhjZXB0aW9uIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+QXZvaWRUaHJvd2luZ1Jhd0V4Y2VwdGlvblR5cGVzPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+U3RyaWN0IEV4Y2VwdGlvbiBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkRvTm90RXh0ZW5kSmF2YUxhbmdFcnJvcjwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PlN0cmljdCBFeGNlcHRpb24gUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5Eb05vdFRocm93RXhjZXB0aW9uSW5GaW5hbGx5PC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+U3RyaWN0IEV4Y2VwdGlvbiBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkV4Y2VwdGlvbkFzRmxvd0NvbnRyb2w8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5TdHJpY3QgRXhjZXB0aW9uIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+QXBwZW5kQ2hhcmFjdGVyV2l0aENoYXI8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5TdHJpbmcgYW5kIFN0cmluZ0J1ZmZlciBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkF2b2lkRHVwbGljYXRlTGl0ZXJhbHM8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5TdHJpbmcgYW5kIFN0cmluZ0J1ZmZlciBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkF2b2lkU3RyaW5nQnVmZmVyRmllbGQ8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5TdHJpbmcgYW5kIFN0cmluZ0J1ZmZlciBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkNvbnNlY3V0aXZlTGl0ZXJhbEFwcGVuZHM8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5TdHJpbmcgYW5kIFN0cmluZ0J1ZmZlciBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkluZWZmaWNpZW50RW1wdHlTdHJpbmdDaGVjazwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PlN0cmluZyBhbmQgU3RyaW5nQnVmZmVyIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+SW5lZmZpY2llbnRTdHJpbmdCdWZmZXJpbmc8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5TdHJpbmcgYW5kIFN0cmluZ0J1ZmZlciBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPkluc3VmZmljaWVudFN0cmluZ0J1ZmZlckRlY2xhcmF0aW9uPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+U3RyaW5nIGFuZCBTdHJpbmdCdWZmZXIgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5TdHJpbmdCdWZmZXJJbnN0YW50aWF0aW9uV2l0aENoYXI8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5TdHJpbmcgYW5kIFN0cmluZ0J1ZmZlciBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPlN0cmluZ0luc3RhbnRpYXRpb248L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5TdHJpbmcgYW5kIFN0cmluZ0J1ZmZlciBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPlN0cmluZ1RvU3RyaW5nPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+U3RyaW5nIGFuZCBTdHJpbmdCdWZmZXIgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5Vbm5lY2Vzc2FyeUNhc2VDaGFuZ2U8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5TdHJpbmcgYW5kIFN0cmluZ0J1ZmZlciBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPlVzZUVxdWFsc1RvQ29tcGFyZVN0cmluZ3M8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5TdHJpbmcgYW5kIFN0cmluZ0J1ZmZlciBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPlVzZUluZGV4T2ZDaGFyPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+U3RyaW5nIGFuZCBTdHJpbmdCdWZmZXIgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5Vc2VsZXNzU3RyaW5nVmFsdWVPZjwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PlN0cmluZyBhbmQgU3RyaW5nQnVmZmVyIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+VXNlU3RyaW5nQnVmZmVyTGVuZ3RoPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+U3RyaW5nIGFuZCBTdHJpbmdCdWZmZXIgUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5DbG9uZU1ldGhvZE11c3RJbXBsZW1lbnRDbG9uZWFibGU8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5UeXBlIFJlc29sdXRpb24gUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5Mb29zZUNvdXBsaW5nPC9uYW1lPgotICAgICAgICAgICAgPHJ1bGVzZXQ+VHlwZSBSZXNvbHV0aW9uIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+U2lnbmF0dXJlRGVjbGFyZVRocm93c0V4Y2VwdGlvbjwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PlR5cGUgUmVzb2x1dGlvbiBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPlVudXNlZEltcG9ydHM8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5UeXBlIFJlc29sdXRpb24gUnVsZXM8L3J1bGVzZXQ+Ci0gICAgICAgIDwvcnVsZT4KLSAgICAgICAgPHJ1bGU+Ci0gICAgICAgICAgICA8bmFtZT5VbnVzZWRGb3JtYWxQYXJhbWV0ZXI8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5VbnVzZWQgQ29kZSBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPlVudXNlZExvY2FsVmFyaWFibGU8L25hbWU+Ci0gICAgICAgICAgICA8cnVsZXNldD5VbnVzZWQgQ29kZSBSdWxlczwvcnVsZXNldD4KLSAgICAgICAgPC9ydWxlPgotICAgICAgICA8cnVsZT4KLSAgICAgICAgICAgIDxuYW1lPlVudXNlZFByaXZhdGVGaWVsZDwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PlVudXNlZCBDb2RlIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgICAgIDxydWxlPgotICAgICAgICAgICAgPG5hbWU+VW51c2VkUHJpdmF0ZU1ldGhvZDwvbmFtZT4KLSAgICAgICAgICAgIDxydWxlc2V0PlVudXNlZCBDb2RlIFJ1bGVzPC9ydWxlc2V0PgotICAgICAgICA8L3J1bGU+Ci0gICAgPC9ydWxlcz4KKyAgICA8dXNlUHJvamVjdFJ1bGVTZXQ+dHJ1ZTwvdXNlUHJvamVjdFJ1bGVTZXQ+CisgICAgPHJ1bGVTZXRGaWxlPi4uL29yZy5lY2xpcHNlLmVtZi5mYWNldC5hcmNoaS50ZWNoLnJ1bGVzL3BtZC9ydWxlc2V0LnhtbDwvcnVsZVNldEZpbGU+CiAgICAgPGluY2x1ZGVEZXJpdmVkRmlsZXM+ZmFsc2U8L2luY2x1ZGVEZXJpdmVkRmlsZXM+CiAgICAgPHZpb2xhdGlvbnNBc0Vycm9ycz50cnVlPC92aW9sYXRpb25zQXNFcnJvcnM+CiA8L3BtZD4KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlLy5wcm9qZWN0IGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUvLnByb2plY3QKaW5kZXggM2JlM2I1Zi4uNmE2ZWZhOCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUvLnByb2plY3QKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUvLnByb2plY3QKQEAgLTMwLDExICszMCwxNyBAQAogCQkJPGFyZ3VtZW50cz4NCiAJCQk8L2FyZ3VtZW50cz4NCiAJCTwvYnVpbGRDb21tYW5kPg0KKwkJPGJ1aWxkQ29tbWFuZD4NCisJCQk8bmFtZT5uZXQuc291cmNlZm9yZ2UucG1kLmVjbGlwc2UucGx1Z2luLnBtZEJ1aWxkZXI8L25hbWU+DQorCQkJPGFyZ3VtZW50cz4NCisJCQk8L2FyZ3VtZW50cz4NCisJCTwvYnVpbGRDb21tYW5kPg0KIAk8L2J1aWxkU3BlYz4NCiAJPG5hdHVyZXM+DQogCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmFjY2VsZW8uaWRlLnVpLmFjY2VsZW9OYXR1cmU8L25hdHVyZT4NCiAJCTxuYXR1cmU+b3JnLmVjbGlwc2UucGRlLlBsdWdpbk5hdHVyZTwvbmF0dXJlPg0KIAkJPG5hdHVyZT5vcmcuZWNsaXBzZS5qZHQuY29yZS5qYXZhbmF0dXJlPC9uYXR1cmU+DQogCQk8bmF0dXJlPm5ldC5zZi5lY2xpcHNlY3MuY29yZS5DaGVja3N0eWxlTmF0dXJlPC9uYXR1cmU+DQorCQk8bmF0dXJlPm5ldC5zb3VyY2Vmb3JnZS5wbWQuZWNsaXBzZS5wbHVnaW4ucG1kTmF0dXJlPC9uYXR1cmU+DQogCTwvbmF0dXJlcz4NCi08L3Byb2plY3REZXNjcmlwdGlvbj4NCis8L3Byb2plY3REZXNjcmlwdGlvbj4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY29yZS5yZXNvdXJjZXMucHJlZnMgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY29yZS5yZXNvdXJjZXMucHJlZnMKaW5kZXggNDgyNGI4MC4uMGQwMDY0NiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUvLnNldHRpbmdzL29yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLnByZWZzCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5wcmVmcwpAQCAtMSwyICsxLDMgQEAKIGVjbGlwc2UucHJlZmVyZW5jZXMudmVyc2lvbj0xDQorZW5jb2RpbmcvL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvY29yZS9pbnRlcm5hbC9tZXNzYWdlcy5wcm9wZXJ0aWVzPUlTTy04ODU5LTENCiBlbmNvZGluZy88cHJvamVjdD49VVRGLTgNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDU0ZTk0NTAuLjE5NGUzNTAgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0xOSw4ICsxOSwxNCBAQAogIG9yZy5lY2xpcHNlLmpkdC5jb3JlO2J1bmRsZS12ZXJzaW9uPSIzLjYuMCIsCiAgb3JnLmVjbGlwc2UubW9kaXNjby51dGlscy5jb3JlO2J1bmRsZS12ZXJzaW9uPSIwLjEwLjAiLAogIG9yZy5lY2xpcHNlLm1vZGlzY28udXRpbHMuY2hhcnQuYmlydC5jb3JlO2J1bmRsZS12ZXJzaW9uPSIwLjEwLjAiLAotIG9yZy5lY2xpcHNlLm1vZGlzY28udXRpbHMuY2hhcnQubWV0YW1vZGVsO2J1bmRsZS12ZXJzaW9uPSIwLjEwLjAiCisgb3JnLmVjbGlwc2UubW9kaXNjby51dGlscy5jaGFydC5tZXRhbW9kZWw7YnVuZGxlLXZlcnNpb249IjAuMTAuMCIsCisgb3JnLmFwYWNoZS5jb21tb25zLmNsaTtidW5kbGUtdmVyc2lvbj0iMS4wLjAiLAorIG9yZy5lY2xpcHNlLmVtZi5mYWNldC51dGlsLmNvcmU7YnVuZGxlLXZlcnNpb249IjEuMS4wIiwKKyBvcmcuZWNsaXBzZS5lbWYuY29tbW9uCiBCdW5kbGUtUmVxdWlyZWRFeGVjdXRpb25FbnZpcm9ubWVudDogSjJTRS0xLjUKIEJ1bmRsZS1BY3RpdmF0aW9uUG9saWN5OiBsYXp5Ci1FeHBvcnQtUGFja2FnZTogb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUuaW50ZXJuYWwuZXhwb3J0ZWQ7eC1mcmllbmRzOj0ib3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLnVpIgorRXhwb3J0LVBhY2thZ2U6IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlO3gtaW50ZXJuYWw6PXRydWUsCisgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUuaW50ZXJuYWwuZXhwb3J0ZWQ7eC1mcmllbmRzOj0ib3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLnVpIiwKKyBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS5pbnRlcm5hbC5yZXBvcnRpbmc7eC1pbnRlcm5hbDo9dHJ1ZSwKKyBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS5pbnRlcm5hbC5yZXBvcnRpbmcuaW50ZXJuYWw7eC1pbnRlcm5hbDo9dHJ1ZQogCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS9wbHVnaW4ueG1sIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUvcGx1Z2luLnhtbAppbmRleCA4NDM4OTMwLi5lYWE2YjExIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS9wbHVnaW4ueG1sCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlL3BsdWdpbi54bWwKQEAgLTEsMjEgKzEsNTcgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQotPD9lY2xpcHNlIHZlcnNpb249IjMuNCI/Pg0KLTxwbHVnaW4+DQotICAgPGV4dGVuc2lvbg0KLSAgICAgICAgIHBvaW50PSJvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5jb3JlLmRpc2NvdmVyZXIiPg0KLSAgICAgIDxkaXNjb3ZlcmVyDQotICAgICAgICAgICAgY2xhc3M9Im9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlLmludGVybmFsLmltcGwuRGlzY292ZXJlckJlbmNobWFya0Rpc2NvdmVyZXIiDQotICAgICAgICAgICAgaWQ9Im9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5hcGkuYmVuY2htYXJrZGlzY292ZXJlciI+DQotICAgICAgPC9kaXNjb3ZlcmVyPg0KLSAgIDwvZXh0ZW5zaW9uPg0KLSAgIDxleHRlbnNpb24NCi0gICAgICAgICBwb2ludD0ib3JnLmVjbGlwc2UuZW1mLmZhY2V0LnV0aWwuZW1mLmNvcmUuc2VyaWFsaXphdGlvbiI+DQotICAgICAgPHNlcmlhbGl6ZXINCi0gICAgICAgICAgICBjbGFzcz0ib3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUuaW50ZXJuYWwuYXBpLklQcm9qZWN0U2V0U2VyaWFsaXplciI+DQotICAgICAgPC9zZXJpYWxpemVyPg0KLSAgICAgIDxzZXJpYWxpemVyDQotICAgICAgICAgICAgY2xhc3M9Im9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlLmludGVybmFsLkRpc2NvdmVyZXJMaXN0U2VyaWFsaXplciI+DQotICAgICAgPC9zZXJpYWxpemVyPg0KLSAgIDwvZXh0ZW5zaW9uPg0KLQ0KLTwvcGx1Z2luPg0KKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8P2VjbGlwc2UgdmVyc2lvbj0iMy40Ij8+Cis8IS0tCisgQ29weXJpZ2h0IChjKSAyMDEyLCAyMDE1IE1pYS1Tb2Z0d2FyZS4KKyBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCisgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKKyBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorCisgQ29udHJpYnV0b3JzOgorICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODI2NTYgLSBpbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUgc2hvdWxkIGJlIHNwbGl0dGVkIHRvIHNlcGFyYXRlIEFjY2VsbyBkZXBlbmRlbmNpZXMKKyAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgyNjcyIC0gQmVuY2htYXJrIGNvbW1hbmQgbGluZSBpbnRlcmZhY2UgCistLT4KKzxwbHVnaW4+CisgICA8ZXh0ZW5zaW9uCisgICAgICAgICBwb2ludD0ib3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuY29yZS5kaXNjb3ZlcmVyIj4KKyAgICAgIDxkaXNjb3ZlcmVyCisgICAgICAgICAgICBjbGFzcz0ib3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUuaW50ZXJuYWwuaW1wbC5EaXNjb3ZlcmVyQmVuY2htYXJrRGlzY292ZXJlciIKKyAgICAgICAgICAgIGlkPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuYXBpLmJlbmNobWFya2Rpc2NvdmVyZXIiPgorICAgICAgPC9kaXNjb3ZlcmVyPgorICAgPC9leHRlbnNpb24+CisgICA8ZXh0ZW5zaW9uCisgICAgICAgICBpZD0iYmVuY2htYXJrIgorICAgICAgICAgbmFtZT0iYmVuY2htYXJrIgorICAgICAgICAgcG9pbnQ9Im9yZy5lY2xpcHNlLmNvcmUucnVudGltZS5hcHBsaWNhdGlvbnMiPgorICAgICAgPGFwcGxpY2F0aW9uCisgICAgICAgICAgICBjYXJkaW5hbGl0eT0ic2luZ2xldG9uLWdsb2JhbCIKKyAgICAgICAgICAgIHRocmVhZD0ibWFpbiIKKyAgICAgICAgICAgIHZpc2libGU9InRydWUiPgorICAgICAgICAgPHJ1bgorICAgICAgICAgICAgICAgY2xhc3M9Im9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlLmludGVybmFsLkFwcGxpY2F0aW9uIj4KKyAgICAgICAgIDwvcnVuPgorICAgICAgPC9hcHBsaWNhdGlvbj4KKyAgIDwvZXh0ZW5zaW9uPgorICAgPGV4dGVuc2lvbgorICAgICAgICAgaWQ9InhtaVRvSHRtbCIKKyAgICAgICAgIG5hbWU9InhtaVRvSHRtbCIKKyAgICAgICAgIHBvaW50PSJvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUuYXBwbGljYXRpb25zIj4KKyAgICAgIDxhcHBsaWNhdGlvbgorICAgICAgICAgICAgY2FyZGluYWxpdHk9InNpbmdsZXRvbi1nbG9iYWwiCisgICAgICAgICAgICB0aHJlYWQ9Im1haW4iCisgICAgICAgICAgICB2aXNpYmxlPSJ0cnVlIj4KKyAgICAgICAgIDxydW4KKyAgICAgICAgICAgICAgIGNsYXNzPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS5pbnRlcm5hbC5YbWlUb0h0bWxBcHBsaWNhdGlvbiI+CisgICAgICAgICA8L3J1bj4KKyAgICAgIDwvYXBwbGljYXRpb24+CisgICA8L2V4dGVuc2lvbj4KKyAgIDxleHRlbnNpb24KKyAgICAgICAgIHBvaW50PSJvcmcuZWNsaXBzZS5lbWYuZmFjZXQudXRpbC5lbWYuY29yZS5zZXJpYWxpemF0aW9uIj4KKyAgICAgIDxzZXJpYWxpemVyCisgICAgICAgICAgICBjbGFzcz0ib3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUuaW50ZXJuYWwuYXBpLklQcm9qZWN0U2V0U2VyaWFsaXplciI+CisgICAgICA8L3NlcmlhbGl6ZXI+CisgICAgICA8c2VyaWFsaXplcgorICAgICAgICAgICAgY2xhc3M9Im9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlLmludGVybmFsLkRpc2NvdmVyZXJMaXN0U2VyaWFsaXplciI+CisgICAgICA8L3NlcmlhbGl6ZXI+CisgICA8L2V4dGVuc2lvbj4KKzwvcGx1Z2luPgpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUvcG9tLnhzbCBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlL3BvbS54c2wKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDRkZTJkMwotLS0gL2Rldi9udWxsCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlL3BvbS54c2wKQEAgLTAsMCArMSwxMjcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPCEtLQ0KKyBDb3B5cmlnaHQgKGMpIDIwMTUgTWlhLVNvZnR3YXJlLg0KKyBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQorIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KKyB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KKyBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KKw0KKyBDb250cmlidXRvcnM6DQorICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODI2NTYgLSBpbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUgc2hvdWxkIGJlIHNwbGl0dGVkIHRvIHNlcGFyYXRlIEFjY2VsbyBkZXBlbmRlbmNpZXMNCistLT4NCis8eHNsOnN0eWxlc2hlZXQgdmVyc2lvbj0iMS4wIg0KKwl4bWxuczp4c2w9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvWFNML1RyYW5zZm9ybSIgeG1sbnM6ZXhzbD0iaHR0cDovL2V4c2x0Lm9yZy9jb21tb24iDQorCWV4dGVuc2lvbi1lbGVtZW50LXByZWZpeGVzPSJleHNsIiB4bWxuczptMj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIg0KKwl4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIj4NCisJPHhzbDpvdXRwdXQgaW5kZW50PSJ5ZXMiIC8+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+DQorCQkJCQkJCQk8amFycz4NCisJCQkJCQkJCQk8amFyPnAyLmVjbGlwc2UtcGx1Z2luOm9yZy5lY2xpcHNlLmVtZi5lY29yZTwvamFyPgorCQkJCQkJCQkJPGphcj5vcmcuZWNsaXBzZS5tZHQ6b3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3Zlcnk8L2phcj4NCisJCQkJCQkJCTwvamFycz4NCisJCQkJCQkJPC9hY2NlbGVvUHJvamVjdD4NCisJCQkJCQkJPHBhY2thZ2VzVG9SZWdpc3Rlcj4NCisJCQkJCQkJCTxwYWNrYWdlVG9SZWdpc3Rlcj5vcmcuZWNsaXBzZS5lbWYuZWNvcmUuRWNvcmVQYWNrYWdlPC9wYWNrYWdlVG9SZWdpc3Rlcj4NCisJCQkJCQkJCTxwYWNrYWdlVG9SZWdpc3Rlcj5vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5sYXVuY2guTGF1bmNoUGFja2FnZTwvcGFja2FnZVRvUmVnaXN0ZXI+DQorCQkJCQkJCQk8cGFja2FnZVRvUmVnaXN0ZXI+b3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuY2F0YWxvZy5DYXRhbG9nUGFja2FnZTwvcGFja2FnZVRvUmVnaXN0ZXI+DQorCQkJCQkJCQk8cGFja2FnZVRvUmVnaXN0ZXI+b3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuQmVuY2htYXJrUGFja2FnZTwvcGFja2FnZVRvUmVnaXN0ZXI+DQorCQkJCQkJCTwvcGFja2FnZXNUb1JlZ2lzdGVyPg0KKwkJCQkJCQk8dXJpSGFuZGxlcj5vcmcuZWNsaXBzZS5hY2NlbGVvLm1hdmVuLkFjY2VsZW9VUklIYW5kbGVyPC91cmlIYW5kbGVyPg0KKwkJCQkJCTwvY29uZmlndXJhdGlvbj4NCisJCQkJCTwvcGx1Z2luPg0KKwkJCQkJPHBsdWdpbj4NCisJCQkJCQk8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+DQorCQkJCQkJPGFydGlmYWN0SWQ+bWF2ZW4tcmVzb3VyY2VzLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisJCQkJCQk8dmVyc2lvbj4yLjQuMTwvdmVyc2lvbj4NCisJCQkJCQk8Y29uZmlndXJhdGlvbj4NCisJCQkJCQkJPGVuY29kaW5nPlVURi04PC9lbmNvZGluZz4NCisJCQkJCQk8L2NvbmZpZ3VyYXRpb24+DQorCQkJCQk8L3BsdWdpbj4NCisJCQkJPC9wbHVnaW5zPg0KKwkJCQk8eHNsOmNvcHktb2Ygc2VsZWN0PSIvL20yOnByb2plY3QvYnVpbGQvKltuYW1lKCkhPSdwbHVnaW5zJ10iLz4NCisJCQk8L2J1aWxkPg0KKwkJPC9wcm9qZWN0Pg0KKwk8L3hzbDp0ZW1wbGF0ZT4NCisNCisJPHhzbDp0ZW1wbGF0ZSBtYXRjaD0ibTI6KnxAKiI+DQorCQk8eHNsOmNvcHktb2Ygc2VsZWN0PSIuIiAvPg0KKwk8L3hzbDp0ZW1wbGF0ZT4NCisNCis8L3hzbDpzdHlsZXNoZWV0Pg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvY29yZS9JU2l6ZURpc2NvdmVyZXIuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvY29yZS9JU2l6ZURpc2NvdmVyZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMzRmNjdiCi0tLSAvZGV2L251bGwKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9jb3JlL0lTaXplRGlzY292ZXJlci5qYXZhCkBAIC0wLDAgKzEsMTkgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICogQ29weXJpZ2h0IChjKSAyMDE1MCBNaWEtU29mdHdhcmUuDQorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KKyAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQorICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCisgKg0KKyAqIENvbnRyaWJ1dG9yczoNCisgKiAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1TZnR3YXJlKSAtIEJ1ZyA0ODM0MDAgLSBbQmVuY2htYXJrXSBUaGUgaW5wdXQgc2l6ZSBzaG91bGQgYmUgY29tcHV0YWJsZSBieSB0aGUgZGlzY292ZXJlcg0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLyANCitwYWNrYWdlIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlOw0KKw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5JUHJvamVjdDsNCitpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuY29yZS5JRGlzY292ZXJlcjsNCisNCitwdWJsaWMgaW50ZXJmYWNlIElTaXplRGlzY292ZXJlciBleHRlbmRzIElEaXNjb3ZlcmVyPElQcm9qZWN0PiB7DQorCVN0cmluZyBnZXRVbml0KCk7DQorCWRvdWJsZSBnZXRTaXplKCk7DQorfQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvY29yZS9pbnRlcm5hbC9BcHBsaWNhdGlvbi5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9jb3JlL2ludGVybmFsL0FwcGxpY2F0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2JjZDU3OAotLS0gL2Rldi9udWxsCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvY29yZS9pbnRlcm5hbC9BcHBsaWNhdGlvbi5qYXZhCkBAIC0wLDAgKzEsMTcwIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAqIENvcHlyaWdodCAoYykgMjAxNSBNaWEtU29mdHdhcmUuDQorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KKyAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQorICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCisgKg0KKyAqIENvbnRyaWJ1dG9yczoNCisgKiAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgyNjcyIC0gQmVuY2htYXJrIGNvbW1hbmQgbGluZSBpbnRlcmZhY2UNCisgKiAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzNDAwIC0gW0JlbmNobWFya10gVGhlIGlucHV0IHNpemUgc2hvdWxkIGJlIGNvbXB1dGFibGUgYnkgdGhlIGRpc2NvdmVyZXINCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCitwYWNrYWdlIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlLmludGVybmFsOw0KKw0KK2ltcG9ydCBqYXZhLmlvLkZpbGU7DQorDQoraW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5jbGkuQ29tbWFuZExpbmU7DQoraW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5jbGkuQ29tbWFuZExpbmVQYXJzZXI7DQoraW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5jbGkuR251UGFyc2VyOw0KK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMuY2xpLk9wdGlvbnM7DQoraW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLklQcm9qZWN0Ow0KK2ltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5JUHJvamVjdERlc2NyaXB0aW9uOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5JUmVzb3VyY2U7DQoraW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLklXb3Jrc3BhY2U7DQoraW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLklXb3Jrc3BhY2VSb290Ow0KK2ltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5SZXNvdXJjZXNQbHVnaW47DQoraW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZS5Db3JlRXhjZXB0aW9uOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUuTnVsbFByb2dyZXNzTW9uaXRvcjsNCitpbXBvcnQgb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLlBhdGg7DQoraW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24udXRpbC5VUkk7DQoraW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5mYWNldC51dGlsLmNvcmUuRGVidWdVdGlsczsNCitpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmZhY2V0LnV0aWwuY29yZS5Mb2dnZXI7DQoraW1wb3J0IG9yZy5lY2xpcHNlLmVxdWlub3guYXBwLklBcHBsaWNhdGlvbjsNCitpbXBvcnQgb3JnLmVjbGlwc2UuZXF1aW5veC5hcHAuSUFwcGxpY2F0aW9uQ29udGV4dDsNCitpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUuaW50ZXJuYWwuZXhwb3J0ZWQuSURpc2NvdmVyZXJMaXN0Ow0KK2ltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS5pbnRlcm5hbC5leHBvcnRlZC5JRGlzY292ZXJlckxpc3RGYWN0b3J5Ow0KK2ltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS5pbnRlcm5hbC5leHBvcnRlZC5JUHJvamVjdFNldDsNCitpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUuaW50ZXJuYWwuZXhwb3J0ZWQuSVByb2plY3RTZXRGYWN0b3J5Ow0KK2ltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS5pbnRlcm5hbC5pbXBsLkRpc2NvdmVyZXJCZW5jaG1hcmtEaXNjb3ZlcmVyOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5CZW5jaG1hcmtGYWN0b3J5Ow0KK2ltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5EaXNjb3Zlcnk7DQorDQorcHVibGljIGNsYXNzIEFwcGxpY2F0aW9uIGltcGxlbWVudHMgSUFwcGxpY2F0aW9uIHsNCisNCisJcHVibGljIE9iamVjdCBzdGFydChmaW5hbCBJQXBwbGljYXRpb25Db250ZXh0IGNvbnRleHQpIHRocm93cyBFeGNlcHRpb24gew0KKwkJZmluYWwgU3RyaW5nW10gYXJncyA9ICgoU3RyaW5nW10pIGNvbnRleHQuZ2V0QXJndW1lbnRzKCkuZ2V0KA0KKwkJCQlJQXBwbGljYXRpb25Db250ZXh0LkFQUExJQ0FUSU9OX0FSR1MpKTsNCisJCS8vIGNyZWF0ZSBPcHRpb25zIG9iamVjdA0KKwkJZmluYWwgT3B0aW9ucyBvcHRpb25zID0gbmV3IE9wdGlvbnMoKTsNCisJCS8vIGFkZCB0IG9wdGlvbg0KKwkJb3B0aW9ucy5hZGRPcHRpb24oInIiLCB0cnVlLCBNZXNzYWdlcy5BcHBsaWNhdGlvbl9IdG1sX3JlcG9ydF9kaXIpOyAvLyROT04tTkxTLTEkDQorCQlvcHRpb25zLmFkZE9wdGlvbigiZCIsIHRydWUsIE1lc3NhZ2VzLkFwcGxpY2F0aW9uX0NvbW1hX3NlcF9kaXNjb3ZlcmVyX2xpc3QpOyAvLyROT04tTkxTLTEkDQorCQlvcHRpb25zLmdldE9wdGlvbigiZCIpLnNldFJlcXVpcmVkKHRydWUpOyAvLyROT04tTkxTLTEkDQorCQlvcHRpb25zLmFkZE9wdGlvbigiaSIsIHRydWUsIE1lc3NhZ2VzLkFwcGxpY2F0aW9uX25vX29mX2l0ZXJhdGlvbik7IC8vJE5PTi1OTFMtMSQNCisJCW9wdGlvbnMuYWRkT3B0aW9uKCJwIiwgdHJ1ZSwgTWVzc2FnZXMuQXBwbGljYXRpb25fQ29tbWFfc2VwX3Byb2plY3RfbGlzdCk7IC8vJE5PTi1OTFMtMSQNCisJCW9wdGlvbnMuYWRkT3B0aW9uKCJvIiwgdHJ1ZSwgTWVzc2FnZXMuQXBwbGljYXRpb25fWE1JX091dHB1dCk7IC8vJE5PTi1OTFMtMSQNCisJCW9wdGlvbnMuZ2V0T3B0aW9uKCJvIikuc2V0UmVxdWlyZWQodHJ1ZSk7IC8vJE5PTi1OTFMtMSQNCisJCW9wdGlvbnMuYWRkT3B0aW9uKCJlIiwgdHJ1ZSwgTWVzc2FnZXMuQXBwbGljYXRpb25fQ29tbWFfc2VwX2V4aXN0aW5nX3Byal9wYXRoKTsgLy8kTk9OLU5MUy0xJA0KKwkJb3B0aW9ucy5hZGRPcHRpb24oIm0iLCBmYWxzZSwgTWVzc2FnZXMuQXBwbGljYXRpb25fUmVjb3JkTWVtb3J5VXNlKTsgLy8kTk9OLU5MUy0xJA0KKwkJb3B0aW9ucy5hZGRPcHRpb24oIm4iLCB0cnVlLCBNZXNzYWdlcy5BcHBsaWNhdGlvbl9NZW1vcnlQb2xsaW5nSW50ZXJ2YWwpOyAvLyROT04tTkxTLTEkDQorCQlvcHRpb25zLmFkZE9wdGlvbigicyIsIHRydWUsICJTYW1wbGUgc2l6ZSBkaXNjb3ZlcmVyIik7IC8vJE5PTi1OTFMtMSQNCisJCW9wdGlvbnMuZ2V0T3B0aW9uKCJzIikuc2V0UmVxdWlyZWQodHJ1ZSk7IC8vJE5PTi1OTFMtMSQNCisJCWZpbmFsIENvbW1hbmRMaW5lUGFyc2VyIHBhcnNlciA9IG5ldyBHbnVQYXJzZXIoKTsNCisJCWZpbmFsIENvbW1hbmRMaW5lIGNtZCA9IHBhcnNlci5wYXJzZShvcHRpb25zLCBhcmdzKTsNCisJCWlmIChjbWQuaGFzT3B0aW9uKCdlJykpIHsNCisJCQlpbXBvcnRFeGlzdGluZ1ByaihjbWQuZ2V0T3B0aW9uVmFsdWUoJ2UnKS5zcGxpdCgiLCIpKTsgLy8kTk9OLU5MUy0xJA0KKwkJfQ0KKwkJZmluYWwgRGlzY292ZXJlckJlbmNobWFya0Rpc2NvdmVyZXIgZGlzY292ZXJlciA9IA0KKwkJCQluZXcgRGlzY292ZXJlckJlbmNobWFya0Rpc2NvdmVyZXIoKTsNCisJCWRpc2NvdmVyZXIuc2V0R2VuZXJhdGVIdG1sUmVwb3J0KGNtZC5oYXNPcHRpb24oJ3InKSk7DQorCQlmaW5hbCBJRGlzY292ZXJlckxpc3QgZGlzY29zID0gSURpc2NvdmVyZXJMaXN0RmFjdG9yeS5JTlNUQU5DRS5jcmVhdGVEaXNjb3ZlcmVyTGlzdCgpOw0KKwkJZm9yIChmaW5hbCBTdHJpbmcgZGlzY29JZCA6IGNtZC5nZXRPcHRpb25WYWx1ZSgnZCcpLnNwbGl0KCIsIikpIHsgLy8kTk9OLU5MUy0xJA0KKwkJCWZpbmFsIERpc2NvdmVyeSBkaXNjb3ZlcnkgPSBCZW5jaG1hcmtGYWN0b3J5LmVJTlNUQU5DRS5jcmVhdGVEaXNjb3ZlcnkoKTsNCisJCQlkaXNjb3Zlcnkuc2V0RGlzY292ZXJlcklkKGRpc2NvSWQpOw0KKwkJCWRpc2Nvcy5hZGQoZGlzY292ZXJ5KTsNCisJCX0NCisJCWRpc2NvdmVyZXIuc2V0RGlzY292ZXJlcnMoZGlzY29zKTsNCisJCWlmIChjbWQuaGFzT3B0aW9uKCdpJykpIHsNCisJCQlkaXNjb3ZlcmVyLnNldEl0ZXJhdGlvbnMoSW50ZWdlci5wYXJzZUludChjbWQuZ2V0T3B0aW9uVmFsdWUoJ2knKSkpOw0KKwkJfSBlbHNlIHsNCisJCQlkaXNjb3ZlcmVyLnNldEl0ZXJhdGlvbnMoMSk7DQorCQl9DQorCQlkaXNjb3ZlcmVyLnNldE1lYXN1cmVNZW1vcnlVc2UoY21kLmhhc09wdGlvbignbScpKTsNCisJCWlmIChjbWQuaGFzT3B0aW9uKCduJykpIHsNCisJCQlkaXNjb3ZlcmVyLnNldE1lbW9yeVBvbGxpbmdJbnRlcnZhbChJbnRlZ2VyLnBhcnNlSW50KGNtZC5nZXRPcHRpb25WYWx1ZSgnbicpKSk7DQorCQl9DQorCQlmaW5hbCBJUHJvamVjdFNldCBwcm9qZWN0U2V0ID0gSVByb2plY3RTZXRGYWN0b3J5LklOU1RBTkNFLmNyZWF0ZVByb2plY3RTZXQoKTsNCisJCWlmIChjbWQuaGFzT3B0aW9uKCdwJykpIHsNCisJCQlmaW5hbCBJV29ya3NwYWNlUm9vdCB3c1Jvb3QgPSBSZXNvdXJjZXNQbHVnaW4uZ2V0V29ya3NwYWNlKCkuZ2V0Um9vdCgpOw0KKwkJCWZvciAoZmluYWwgU3RyaW5nIHByb2plY3ROYW1lIDogY21kLmdldE9wdGlvblZhbHVlKCdwJykuc3BsaXQoIiwiKSkgeyAvLyROT04tTkxTLTEkDQorCQkJCWZpbmFsIElQcm9qZWN0IGlQcm9qZWN0ID0gd3NSb290LmdldFByb2plY3QocHJvamVjdE5hbWUpOw0KKwkJCQlwcm9qZWN0U2V0LmFkZChpUHJvamVjdCk7DQorCQkJfQ0KKwkJfSBlbHNlIHsNCisJCQlmaW5hbCBJV29ya3NwYWNlUm9vdCB3c1Jvb3QgPSBSZXNvdXJjZXNQbHVnaW4uZ2V0V29ya3NwYWNlKCkuZ2V0Um9vdCgpOw0KKwkJCWZvciAoZmluYWwgSVByb2plY3QgaVByb2plY3QgOiB3c1Jvb3QuZ2V0UHJvamVjdHMoKSkgew0KKwkJCQlwcm9qZWN0U2V0LmFkZChpUHJvamVjdCk7DQorCQkJfQ0KKwkJfQ0KKwkJZmluYWwgU3RyaW5nIGZpbGVQYXRoID0gY21kLmdldE9wdGlvblZhbHVlKCdvJyk7DQorCQlkaXNjb3ZlcmVyLnNldFRhcmdldFVSSShVUkkuY3JlYXRlRmlsZVVSSShmaWxlUGF0aCkpOw0KKwkJZGlzY292ZXJlci5zZXRTZXJpYWxpemVUYXJnZXQodHJ1ZSk7DQorCQlkaXNjb3ZlcmVyLnNldFNpemVEaXNjb3ZlcmVySWQoY21kLmdldE9wdGlvblZhbHVlKCdzJykpOw0KKwkJaWYgKGNtZC5oYXNPcHRpb24oJ3InKSkgew0KKwkJCWZpbmFsIFN0cmluZyBodG1sUGF0aCA9IGNtZC5nZXRPcHRpb25WYWx1ZSgncicpOw0KKwkJCWRpc2NvdmVyZXIuc2V0SHRtbFJlcG9ydExvY2F0aW9uKFVSSS5jcmVhdGVGaWxlVVJJKGh0bWxQYXRoKSk7DQorCQkJZGlzY292ZXJlci5zZXRHZW5lcmF0ZUh0bWxSZXBvcnQodHJ1ZSk7DQorCQl9IGVsc2Ugew0KKwkJCWRpc2NvdmVyZXIuc2V0R2VuZXJhdGVIdG1sUmVwb3J0KGZhbHNlKTsNCisJCX0NCisJCWRpc2NvdmVyZXIuZGlzY292ZXJCZW5jaG1hcmsocHJvamVjdFNldCwgbmV3IE51bGxQcm9ncmVzc01vbml0b3IoKSk7DQorCQlEZWJ1Z1V0aWxzLmRlYnVnKGRpc2NvdmVyZXIuZ2V0VGFyZ2V0VVJJKCkudG9TdHJpbmcoKSk7DQorCQlyZXR1cm4gbnVsbDsNCisJfQ0KKw0KKwlwcml2YXRlIHN0YXRpYyB2b2lkIGltcG9ydEV4aXN0aW5nUHJqKGZpbmFsIFN0cmluZ1tdIHByb2plY3RQYXJlbnRzKSB7DQorCQlmb3IgKGZpbmFsIFN0cmluZyBwcm9qZWN0UGFyZW50IDogcHJvamVjdFBhcmVudHMpIHsNCisJCQlpbXBvcnRFeGlzdGluZ1Byaihwcm9qZWN0UGFyZW50KTsNCisJCX0NCisJfQ0KKw0KKwlwcml2YXRlIHN0YXRpYyB2b2lkIGltcG9ydEV4aXN0aW5nUHJqKGZpbmFsIFN0cmluZyBwcm9qZWN0UGFyZW50KSB7DQorCQlmaW5hbCBGaWxlIHByalBhcmVudEZpbGUgPSBuZXcgRmlsZShwcm9qZWN0UGFyZW50KTsNCisJCWZvciAoZmluYWwgRmlsZSBjaGlsZCA6IHByalBhcmVudEZpbGUubGlzdEZpbGVzKCkpIHsNCisJCQlpZiAoY2hpbGQuaXNEaXJlY3RvcnkoKSkgew0KKwkJCQlmaW5hbCBGaWxlIGRvdFByaiA9IG5ldyBGaWxlKGNoaWxkLCAiLnByb2plY3QiKTsgLy8kTk9OLU5MUy0xJA0KKwkJCQlpZiAgKGRvdFByai5leGlzdHMoKSkgew0KKwkJCQkJaW1wb3J0RXhpc3RpbmdQcmooZG90UHJqKTsNCisJCQkJfQ0KKwkJCX0NCisJCX0NCisJfQ0KKw0KKwlwcml2YXRlIHN0YXRpYyB2b2lkIGltcG9ydEV4aXN0aW5nUHJqKGZpbmFsIEZpbGUgZG90UHJqKSB7DQorCQl0cnkgew0KKwkJCWZpbmFsIElXb3Jrc3BhY2Ugd29ya3NwYWNlID0gUmVzb3VyY2VzUGx1Z2luLmdldFdvcmtzcGFjZSgpOw0KKwkJCWZpbmFsIFBhdGggcHJvamVjdERlc2NyaXB0aW9uRmlsZSA9IG5ldyBQYXRoKA0KKwkJCQkJZG90UHJqLmdldEFic29sdXRlUGF0aCgpKTsNCisJCQlmaW5hbCBJUHJvamVjdERlc2NyaXB0aW9uIHByakRlc2MgPSB3b3Jrc3BhY2UNCisJCQkJCS5sb2FkUHJvamVjdERlc2NyaXB0aW9uKHByb2plY3REZXNjcmlwdGlvbkZpbGUpOw0KKwkJCWZpbmFsIElXb3Jrc3BhY2VSb290IHdzUm9vdCA9IHdvcmtzcGFjZS5nZXRSb290KCk7DQorCQkJZmluYWwgSVByb2plY3QgcHJvamVjdCA9IHdzUm9vdC5nZXRQcm9qZWN0KHByakRlc2MuZ2V0TmFtZSgpKTsNCisJCQlpZiAoIXByb2plY3QuZXhpc3RzKCkpIHsNCisJCQkJZmluYWwgU3RyaW5nIG1lc3NhZ2UgPSBTdHJpbmcuZm9ybWF0KCJDcmVhdGluZyB0aGUgcHJvamVjdCAnJXMnIiwgIC8vJE5PTi1OTFMtMSQNCisJCQkJCQlwcmpEZXNjLmdldE5hbWUoKSk7DQorCQkJCURlYnVnVXRpbHMuZGVidWcobWVzc2FnZSk7DQorCQkJCXByb2plY3QuY3JlYXRlKHByakRlc2MsIG5ldyBOdWxsUHJvZ3Jlc3NNb25pdG9yKCkpOw0KKwkJCX0NCisJCQlpZiAoIXByb2plY3QuaXNPcGVuKCkpIHsNCisJCQkJZmluYWwgU3RyaW5nIG1lc3NhZ2UgPSBTdHJpbmcuZm9ybWF0KCJPcGVuaW5nIHRoZSBwcm9qZWN0ICclcyciLCAgLy8kTk9OLU5MUy0xJA0KKwkJCQkJCXByakRlc2MuZ2V0TmFtZSgpKTsNCisJCQkJRGVidWdVdGlscy5kZWJ1ZyhtZXNzYWdlKTsNCisJCQkJcHJvamVjdC5vcGVuKG5ldyBOdWxsUHJvZ3Jlc3NNb25pdG9yKCkpOw0KKwkJCX0NCisJCQlmaW5hbCBTdHJpbmcgbWVzc2FnZSA9IFN0cmluZy5mb3JtYXQoIlJlZnJlc2hpbmcgdGhlIHByb2plY3QgJyVzJyIsICAvLyROT04tTkxTLTEkDQorCQkJCQlwcmpEZXNjLmdldE5hbWUoKSk7DQorCQkJRGVidWdVdGlscy5kZWJ1ZyhtZXNzYWdlKTsNCisJCQlwcm9qZWN0LnJlZnJlc2hMb2NhbChJUmVzb3VyY2UuREVQVEhfSU5GSU5JVEUsIA0KKwkJCQkJbmV3IE51bGxQcm9ncmVzc01vbml0b3IoKSk7DQorCQl9IGNhdGNoIChmaW5hbCBDb3JlRXhjZXB0aW9uIGUpIHsNCisJCQlmaW5hbCBTdHJpbmcgbWVzc2FnZSA9IFN0cmluZy5mb3JtYXQoDQorCQkJCQkiRmFpbGVkIHRvIGxvYWQgJyVzJyIsIGRvdFByai5nZXRBYnNvbHV0ZVBhdGgoKSk7IC8vJE5PTi1OTFMtMSQNCisJCQlMb2dnZXIubG9nRXJyb3IobWVzc2FnZSwgQWN0aXZhdG9yLmdldERlZmF1bHQoKSk7DQorCQl9DQorCX0NCisNCisJcHVibGljIHZvaWQgc3RvcCgpIHsNCisJCS8vTm90aGluZyB0byBkbw0KKwl9DQorDQorfQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvY29yZS9pbnRlcm5hbC9NYXRoVXRpbHMuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvY29yZS9pbnRlcm5hbC9NYXRoVXRpbHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNDUzMTY2Ci0tLSAvZGV2L251bGwKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9jb3JlL2ludGVybmFsL01hdGhVdGlscy5qYXZhCkBAIC0wLDAgKzEsNDUgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICogQ29weXJpZ2h0IChjKSAyMDE1IE1pYS1Tb2Z0d2FyZS4NCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQorICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCisgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KKyAqDQorICogQ29udHJpYnV0b3JzOg0KKyAqICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODM2MzkgLSBbQmVuY2htYXJrXSBJbmNvcnJlY3Qgc3RhbmRhcmQgZGVyaXZhdGlvbiBjb21wdXRhdGlvbg0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KK3BhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUuaW50ZXJuYWw7DQorDQoraW1wb3J0IGphdmEudXRpbC5MaXN0Ow0KKw0KK3B1YmxpYyBmaW5hbCBjbGFzcyBNYXRoVXRpbHMgew0KKw0KKwlwcml2YXRlIE1hdGhVdGlscygpIHsNCisJCS8vIE11c3Qgbm90IGJlIHVzZWQNCisJfQ0KKw0KKwlwdWJsaWMgc3RhdGljIDxUPiBkb3VibGUgYXZlcmFnZShmaW5hbCBMaXN0PFQ+IG9iamVjdHMsDQorCQkJZmluYWwgUmVzb2x2ZXI8VD4gcmVzb2x2ZXIpIHsNCisJCWxvbmcgc3VtID0gMDsNCisJCWZvciAoaW50IGkgPSAwOyBpIDwgb2JqZWN0cy5zaXplKCk7IGkrKykgew0KKwkJCXN1bSArPSByZXNvbHZlci5nZXRWYWx1ZShvYmplY3RzLmdldChpKSk7DQorCQl9DQorCQlyZXR1cm4gc3VtIC8gb2JqZWN0cy5zaXplKCk7DQorCX0NCisNCisJcHVibGljIHN0YXRpYyA8VD4gZG91YmxlIHN0YW5kYXJkRGV2aWF0aW9uKGZpbmFsIExpc3Q8VD4gb2JqZWN0cywNCisJCQlmaW5hbCBSZXNvbHZlcjxUPiByZXNvbHZlcikgew0KKwkJZmluYWwgZG91YmxlIGF2ZyA9IGF2ZXJhZ2Uob2JqZWN0cywgcmVzb2x2ZXIpOw0KKwkJZG91YmxlIHN1bSA9IDA7DQorCQlmb3IgKGludCBpID0gMDsgaSA8IG9iamVjdHMuc2l6ZSgpOyBpKyspIHsNCisJCQlmaW5hbCBkb3VibGUgdmFsdWUgPSByZXNvbHZlci5nZXRWYWx1ZShvYmplY3RzLmdldChpKSk7DQorCQkJZmluYWwgZG91YmxlIGRlbHRhID0gTWF0aC5hYnModmFsdWUgLSBhdmcpOw0KKwkJCXN1bSArPSBkZWx0YSAqICBkZWx0YTsgDQorCQl9DQorCQlyZXR1cm4gTWF0aC5zcXJ0KHN1bSAvIG9iamVjdHMuc2l6ZSgpKTsNCisJfQ0KKwkNCisJcHVibGljIGludGVyZmFjZSBSZXNvbHZlcjxUPiB7DQorCQlkb3VibGUgZ2V0VmFsdWUoVCBvYmplY3QpOw0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvY29yZS9pbnRlcm5hbC9NZXNzYWdlcy5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9jb3JlL2ludGVybmFsL01lc3NhZ2VzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzAzZTMyMgotLS0gL2Rldi9udWxsCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvY29yZS9pbnRlcm5hbC9NZXNzYWdlcy5qYXZhCkBAIC0wLDAgKzEsNTUgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICogQ29weXJpZ2h0IChjKSAyMDE1IE1pYS1Tb2Z0d2FyZS4NCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQorICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCisgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KKyAqDQorICogQ29udHJpYnV0b3JzOg0KKyAqICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODI2NzIgLSBCZW5jaG1hcmsgY29tbWFuZCBsaW5lIGludGVyZmFjZQ0KKyAqICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODMyOTIgLSBbQmVuY2htYXJrXSBsb25nIG11c3QgYmUgdXNlZCB0byBzdG9yZSBtZW1vcnkgdXNhZ2UNCisgKiAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzNDAwIC0gVGhlIGlucHV0IHNpemUgc2hvdWxkIGJlIGNvbXB1dGFibGUgYnkgdGhlIGRpc2NvdmVyZXINCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCitwYWNrYWdlIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlLmludGVybmFsOw0KKw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5vc2dpLnV0aWwuTkxTOw0KKw0KK3B1YmxpYyBjbGFzcyBNZXNzYWdlcyBleHRlbmRzIE5MUyB7DQorCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBCVU5ETEVfTkFNRSA9ICJvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS5pbnRlcm5hbC5tZXNzYWdlcyI7IC8vJE5PTi1OTFMtMSQNCisJcHVibGljIHN0YXRpYyBTdHJpbmcgQXBwbGljYXRpb25fQ29tbWFfc2VwX2Rpc2NvdmVyZXJfbGlzdDsNCisJcHVibGljIHN0YXRpYyBTdHJpbmcgQXBwbGljYXRpb25fQ29tbWFfc2VwX2V4aXN0aW5nX3Byal9wYXRoOw0KKwlwdWJsaWMgc3RhdGljIFN0cmluZyBBcHBsaWNhdGlvbl9Db21tYV9zZXBfcHJvamVjdF9saXN0Ow0KKwlwdWJsaWMgc3RhdGljIFN0cmluZyBBcHBsaWNhdGlvbl9IdG1sX3JlcG9ydF9kaXI7DQorCXB1YmxpYyBzdGF0aWMgU3RyaW5nIEFwcGxpY2F0aW9uX01lbW9yeVBvbGxpbmdJbnRlcnZhbDsNCisJcHVibGljIHN0YXRpYyBTdHJpbmcgQXBwbGljYXRpb25fbm9fb2ZfaXRlcmF0aW9uOw0KKwlwdWJsaWMgc3RhdGljIFN0cmluZyBBcHBsaWNhdGlvbl9SZWNvcmRNZW1vcnlVc2U7DQorCXB1YmxpYyBzdGF0aWMgU3RyaW5nIEFwcGxpY2F0aW9uX1hNSV9PdXRwdXQ7DQorCXB1YmxpYyBzdGF0aWMgU3RyaW5nIEJlbmNobWFya0NoYXJ0R2VuZXJhdGlvbl9BdmdUaW1lQnlQcmpTaXplRm9yOw0KKwlwdWJsaWMgc3RhdGljIFN0cmluZyBCZW5jaG1hcmtDaGFydEdlbmVyYXRpb25fQXZnVXNlZE1lbUJ5UHJqU2l6ZUZvcjsNCisJcHVibGljIHN0YXRpYyBTdHJpbmcgQmVuY2htYXJrQ2hhcnRHZW5lcmF0aW9uX0Rpc2NvVGltZTsNCisJcHVibGljIHN0YXRpYyBTdHJpbmcgQmVuY2htYXJrQ2hhcnRHZW5lcmF0aW9uX0Rpc2NvVGltZUJ5UHJqU2l6ZU92ZXJhbGw7DQorCXB1YmxpYyBzdGF0aWMgU3RyaW5nIEJlbmNobWFya0NoYXJ0R2VuZXJhdGlvbl9QcmpTaXplOw0KKwlwdWJsaWMgc3RhdGljIFN0cmluZyBCZW5jaG1hcmtDaGFydEdlbmVyYXRpb25fdGltZTsNCisJcHVibGljIHN0YXRpYyBTdHJpbmcgQmVuY2htYXJrQ2hhcnRHZW5lcmF0aW9uX1VzZWRNZW07DQorCXB1YmxpYyBzdGF0aWMgU3RyaW5nIEJlbmNobWFya0NoYXJ0R2VuZXJhdGlvbl9Vc2VkTWVtQnlQcmpTaXplOw0KKwlwdWJsaWMgc3RhdGljIFN0cmluZyBCZW5jaG1hcmtDaGFydEdlbmVyYXRpb25fVXNlZE1FbUJ5VGltZUZvck9uVGhlOw0KKwlwdWJsaWMgc3RhdGljIFN0cmluZyBEaXNjb3ZlcmVyQmVuY2htYXJrRGlzY292ZXJlcl9CZW5jaG1hcmtJbml0aWFsaXphdGlvblN1YlRhc2s7DQorCXB1YmxpYyBzdGF0aWMgU3RyaW5nIERpc2NvdmVyZXJCZW5jaG1hcmtEaXNjb3ZlcmVyX0JlbmNobWFya1Rhc2tOYW1lOw0KKwlwdWJsaWMgc3RhdGljIFN0cmluZyBEaXNjb3ZlcmVyQmVuY2htYXJrRGlzY292ZXJlcl9EaXNjb3ZlcnlJbml0aWFsaXphdGlvblN1YlRhc2s7DQorCXB1YmxpYyBzdGF0aWMgU3RyaW5nIERpc2NvdmVyZXJCZW5jaG1hcmtEaXNjb3ZlcmVyX0dlbmVyYXRpbmdCZW5jaG1hcmtSZXBvcnRTdWJUYXNrOw0KKwlwdWJsaWMgc3RhdGljIFN0cmluZyBEaXNjb3ZlcmVyQmVuY2htYXJrRGlzY292ZXJlcl9Qcm9qZWN0RGlzY292ZXJ5SXRlcmF0aW9uU3ViVGFzazsNCisJcHVibGljIHN0YXRpYyBTdHJpbmcgRGlzY292ZXJlckJlbmNobWFya0Rpc2NvdmVyZXJfUHJvamVjdEluaXRpYWxpemF0aW9uU3ViVGFzazsNCisJcHVibGljIHN0YXRpYyBTdHJpbmcgRGlzY292ZXJlckJlbmNobWFya0Rpc2NvdmVyZXJfU2F2aW5nQmVuY2htYXJrRGF0YVN1YlRhc2s7DQorCXB1YmxpYyBzdGF0aWMgU3RyaW5nIE1lbW9yeU1lYXN1cmVtZW50Sm9iX01lbW9yeU1lYXN1cmVFdmVyeU1zOw0KKwlwdWJsaWMgc3RhdGljIFN0cmluZyBYbWlUb0h0bWxBcHBsaWNhdGlvbl9NZWFzdXJlTWVtb3J5VXNlOw0KKwlwdWJsaWMgc3RhdGljIFN0cmluZyBYbWlUb0h0bWxBcHBsaWNhdGlvbl9UYXJnZXRfRm9sZGVyX1BhdGg7DQorCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFhtaVRvSHRtbEFwcGxpY2F0aW9uX1hNSV9maWxlX3BhdGg7DQorDQorCXN0YXRpYyB7DQorCQkvLyBpbml0aWFsaXplIHJlc291cmNlIGJ1bmRsZQ0KKwkJTkxTLmluaXRpYWxpemVNZXNzYWdlcyhCVU5ETEVfTkFNRSwgTWVzc2FnZXMuY2xhc3MpOw0KKwl9DQorDQorCXByaXZhdGUgTWVzc2FnZXMoKSB7DQorCX0NCit9DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9jb3JlL2ludGVybmFsL1htaVRvSHRtbEFwcGxpY2F0aW9uLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL2NvcmUvaW50ZXJuYWwvWG1pVG9IdG1sQXBwbGljYXRpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMDVkMTQ3Ci0tLSAvZGV2L251bGwKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9jb3JlL2ludGVybmFsL1htaVRvSHRtbEFwcGxpY2F0aW9uLmphdmEKQEAgLTAsMCArMSw1NCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKiBDb3B5cmlnaHQgKGMpIDIwMTUgTWlhLVNvZnR3YXJlLg0KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjANCisgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KKyAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQorICoNCisgKiBDb250cmlidXRvcnM6DQorICogICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MjY3MiAtIEJlbmNobWFyayBjb21tYW5kIGxpbmUgaW50ZXJmYWNlDQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorcGFja2FnZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS5pbnRlcm5hbDsNCisNCitpbXBvcnQgamF2YS5pby5GaWxlOw0KK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbnM7DQoraW1wb3J0IGphdmEudXRpbC5MaXN0Ow0KKw0KK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMuY2xpLkNvbW1hbmRMaW5lOw0KK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMuY2xpLkNvbW1hbmRMaW5lUGFyc2VyOw0KK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMuY2xpLkdudVBhcnNlcjsNCitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmNsaS5PcHRpb25zOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5lcXVpbm94LmFwcC5JQXBwbGljYXRpb247DQoraW1wb3J0IG9yZy5lY2xpcHNlLmVxdWlub3guYXBwLklBcHBsaWNhdGlvbkNvbnRleHQ7DQoraW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlLmludGVybmFsLmltcGwuUmVwb3J0VXRpbHM7DQorDQorcHVibGljIGNsYXNzIFhtaVRvSHRtbEFwcGxpY2F0aW9uIGltcGxlbWVudHMgSUFwcGxpY2F0aW9uIHsNCisNCisJcHVibGljIE9iamVjdCBzdGFydChmaW5hbCBJQXBwbGljYXRpb25Db250ZXh0IGNvbnRleHQpIHRocm93cyBFeGNlcHRpb24gew0KKwkJZmluYWwgU3RyaW5nW10gYXJncyA9ICgoU3RyaW5nW10pIGNvbnRleHQuZ2V0QXJndW1lbnRzKCkuZ2V0KA0KKwkJCQlJQXBwbGljYXRpb25Db250ZXh0LkFQUExJQ0FUSU9OX0FSR1MpKTsNCisJCS8vIGNyZWF0ZSBPcHRpb25zIG9iamVjdA0KKwkJZmluYWwgT3B0aW9ucyBvcHRpb25zID0gbmV3IE9wdGlvbnMoKTsNCisJCS8vIGFkZCB0IG9wdGlvbg0KKwkJb3B0aW9ucy5hZGRPcHRpb24oIngiLCB0cnVlLCBNZXNzYWdlcy5YbWlUb0h0bWxBcHBsaWNhdGlvbl9YTUlfZmlsZV9wYXRoKTsgLy8kTk9OLU5MUy0xJA0KKwkJb3B0aW9ucy5nZXRPcHRpb24oIngiKS5zZXRSZXF1aXJlZCh0cnVlKTsgLy8kTk9OLU5MUy0xJA0KKwkJb3B0aW9ucy5hZGRPcHRpb24oInQiLCB0cnVlLCBNZXNzYWdlcy5YbWlUb0h0bWxBcHBsaWNhdGlvbl9UYXJnZXRfRm9sZGVyX1BhdGgpOyAvLyROT04tTkxTLTEkDQorCQlvcHRpb25zLmdldE9wdGlvbigidCIpLnNldFJlcXVpcmVkKHRydWUpOyAvLyROT04tTkxTLTEkDQorCQlvcHRpb25zLmFkZE9wdGlvbigibSIsIGZhbHNlLCBNZXNzYWdlcy5YbWlUb0h0bWxBcHBsaWNhdGlvbl9NZWFzdXJlTWVtb3J5VXNlKTsgLy8kTk9OLU5MUy0xJA0KKwkJZmluYWwgQ29tbWFuZExpbmVQYXJzZXIgcGFyc2VyID0gbmV3IEdudVBhcnNlcigpOw0KKwkJZmluYWwgQ29tbWFuZExpbmUgY21kID0gcGFyc2VyLnBhcnNlKG9wdGlvbnMsIGFyZ3MpOw0KKwkJDQorCQlmaW5hbCBGaWxlIGJlbmNobWFya0ZpbGUgPSBuZXcgRmlsZShjbWQuZ2V0T3B0aW9uVmFsdWUoJ3gnKSk7DQorCQlmaW5hbCBGaWxlIHRhcmdldEZvbGRlciA9IG5ldyBGaWxlKGNtZC5nZXRPcHRpb25WYWx1ZSgndCcpKTsNCisJCUxpc3Q8PyBleHRlbmRzIE9iamVjdD4gYXJndW1lbnRzID0gQ29sbGVjdGlvbnMuZW1wdHlMaXN0KCk7DQorCQlib29sZWFuIG1lYXN1cmVNZW1vcnlVc2UgPSBjbWQuaGFzT3B0aW9uKCdtJyk7DQorCQlSZXBvcnRVdGlscy5nZW5lcmF0ZVJlcG9ydChiZW5jaG1hcmtGaWxlLCB0YXJnZXRGb2xkZXIsIGFyZ3VtZW50cywNCisJCQkJbWVhc3VyZU1lbW9yeVVzZSk7DQorCQlyZXR1cm4gbnVsbDsNCisJfQ0KKw0KKwlwdWJsaWMgdm9pZCBzdG9wKCkgew0KKwkJLy9Ob3RoaW5nIHRvIGRvDQorCX0NCisNCit9DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9jb3JlL2ludGVybmFsL2ltcGwvRGlzY292ZXJlckJlbmNobWFya0Rpc2NvdmVyZXIuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvY29yZS9pbnRlcm5hbC9pbXBsL0Rpc2NvdmVyZXJCZW5jaG1hcmtEaXNjb3ZlcmVyLmphdmEKaW5kZXggNDA3YjdlZS4uOGI4Zjc0YSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9jb3JlL2ludGVybmFsL2ltcGwvRGlzY292ZXJlckJlbmNobWFya0Rpc2NvdmVyZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL2NvcmUvaW50ZXJuYWwvaW1wbC9EaXNjb3ZlcmVyQmVuY2htYXJrRGlzY292ZXJlci5qYXZhCkBAIC0xLDg4NSArMSw5NzIgQEAKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQotICogQ29weXJpZ2h0IChjKSAyMDEyIElOUklBLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZQ0KLSAqIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZQ0KLSAqIFB1YmxpYyBMaWNlbnNlIHYxLjAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCi0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KLSAqIA0KLSAqIENvbnRyaWJ1dG9yczogR3VpbGxhdW1lIERvdXggLSBJTlJJQSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KLSAqIA0KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQotcGFja2FnZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS5pbnRlcm5hbC5pbXBsOw0KLQ0KLWltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkUmVhZGVyOw0KLWltcG9ydCBqYXZhLmlvLkZpbGVSZWFkZXI7DQotaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247DQotaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lkludm9jYXRpb25UYXJnZXRFeGNlcHRpb247DQotaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZDsNCi1pbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsNCi1pbXBvcnQgamF2YS51dGlsLkRhdGU7DQotaW1wb3J0IGphdmEudXRpbC5MaW5rZWRMaXN0Ow0KLWltcG9ydCBqYXZhLnV0aWwuTGlzdDsNCi0NCi1pbXBvcnQgb3JnLmVjbGlwc2UuY29yZS5maWxlc3lzdGVtLkVGUzsNCi1pbXBvcnQgb3JnLmVjbGlwc2UuY29yZS5maWxlc3lzdGVtLklGaWxlU3RvcmU7DQotaW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLklDb250YWluZXI7DQotaW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLklGaWxlOw0KLWltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5JRm9sZGVyOw0KLWltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5JUHJvamVjdDsNCi1pbXBvcnQgb3JnLmVjbGlwc2UuY29yZS5yZXNvdXJjZXMuSVJlc291cmNlOw0KLWltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5SZXNvdXJjZXNQbHVnaW47DQotaW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZS5Db3JlRXhjZXB0aW9uOw0KLWltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUuSVByb2dyZXNzTW9uaXRvcjsNCi1pbXBvcnQgb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLlBhdGg7DQotaW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZS5TdWJQcm9ncmVzc01vbml0b3I7DQotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24udXRpbC5UcmVlSXRlcmF0b3I7DQotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24udXRpbC5VUkk7DQotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FT2JqZWN0Ow0KLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUucmVzb3VyY2UuUmVzb3VyY2U7DQotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5yZXNvdXJjZS5SZXNvdXJjZVNldDsNCi1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnJlc291cmNlLmltcGwuUmVzb3VyY2VTZXRJbXBsOw0KLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUueG1pLmltcGwuWE1JUmVzb3VyY2VGYWN0b3J5SW1wbDsNCi1pbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuY29tbW9uLmNvcmUubG9nZ2luZy5Nb0Rpc2NvTG9nZ2VyOw0KLWltcG9ydCBvcmcuZWNsaXBzZS5qZHQuY29yZS5kb20uTW9kaWZpZXI7DQotaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlLmludGVybmFsLkFjdGl2YXRvcjsNCi1pbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUuaW50ZXJuYWwuYXBpLklEaXNjb3ZlcmVyQmVuY2htYXJrRGlzY292ZXJlcjsNCi1pbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUuaW50ZXJuYWwuYXBpLklEaXNjb3ZlcmVySUQ7DQotaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlLmludGVybmFsLmFwaS5JRXZlbnROb3RpZmllcjsNCi1pbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUuaW50ZXJuYWwuZXhwb3J0ZWQuSURpc2NvdmVyZXJMaXN0Ow0KLWltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS5pbnRlcm5hbC5leHBvcnRlZC5JUHJvamVjdFNldDsNCi1pbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUuaW50ZXJuYWwucmVwb3J0aW5nLkh0bWxSZXBvcnQ7DQotaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlLmludGVybmFsLnJlcG9ydGluZy5pbnRlcm5hbC5CZW5jaG1hcmtDaGFydEdlbmVyYXRpb247DQotaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLkJlbmNobWFyazsNCi1pbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuQmVuY2htYXJrRmFjdG9yeTsNCi1pbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuRGlzY292ZXJ5Ow0KLWltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5EaXNjb3ZlcnlJdGVyYXRpb247DQotaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLkVuZEV2ZW50Ow0KLWltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5FdmVudDsNCi1pbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuRXZlbnRUeXBlOw0KLWltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5GaWxlOw0KLWltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5NZW1vcnlNZWFzdXJlbWVudDsNCi1pbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuUHJvamVjdDsNCi1pbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuY2F0YWxvZy5DYXRhbG9nRmFjdG9yeTsNCi1pbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuY2F0YWxvZy5EaXNjb3ZlcmVyRGVzY3JpcHRpb247DQotaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmNhdGFsb2cuRGlzY292ZXJlclBhcmFtZXRlcjsNCi1pbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuY29yZS5BYnN0cmFjdE1vZGVsRGlzY292ZXJlcjsNCi1pbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuY29yZS5JRGlzY292ZXJlcjsNCi1pbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuY29yZS5JRGlzY292ZXJ5TWFuYWdlcjsNCi1pbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuY29yZS5hbm5vdGF0aW9ucy5QYXJhbWV0ZXI7DQotaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmNvcmUuZXhjZXB0aW9uLkRpc2NvdmVyeUV4Y2VwdGlvbjsNCi1pbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkubGF1bmNoLkxhdW5jaENvbmZpZ3VyYXRpb247DQotaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmxhdW5jaC5MYXVuY2hGYWN0b3J5Ow0KLWltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5sYXVuY2guUGFyYW1ldGVyVmFsdWU7DQotaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28udXRpbHMuY29yZS5pbnRlcm5hbC5leHBvcnRlZC5TeXN0ZW1JbmZvOw0KLQ0KLS8qKg0KLSAqIE1haW4gZW50cnkgcG9pbnQgZm9yIHRoZSBkaXNjb3ZlcmVyIG9mIGJlbmNobWFyaw0KLSAqIEBhdXRob3IgR3VpbGxhdW1lIERvdXgNCi0gKg0KLSAqLw0KLXB1YmxpYyBjbGFzcyBEaXNjb3ZlcmVyQmVuY2htYXJrRGlzY292ZXJlciBleHRlbmRzIEFic3RyYWN0TW9kZWxEaXNjb3ZlcmVyPElQcm9qZWN0U2V0Pg0KLWltcGxlbWVudHMgSURpc2NvdmVyZXJCZW5jaG1hcmtEaXNjb3ZlcmVyIHsNCi0NCi0JLyoqDQotCSAqIFByaXZhdGUgaW50ZWdlciBjb25zdGFudHMNCi0JICovDQotCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBaRVJPID0gMDsNCi0JDQotCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBUV08gPSAyOw0KLQkNCi0JcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNJWCA9IDY7DQotDQotCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFSUdIVCA9IDg7DQotDQotCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBURU4gPSAxMDsNCi0NCi0JDQotCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBTQVZFX09QRVJBVElPTiA9ICJTYXZlT3BlcmF0aW9uIjsNCi0NCi0JcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElOVEVSVkFMID0gMTAwMDsNCi0NCi0JcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1TSU5TRUMgPSAxMDAwOw0KLQ0KLQlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09ERV9FWFRFTlNJT04gPSAiamF2YSI7DQotDQotCXB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIElEID0gIm9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlLmFwaS5iZW5jaG1hcmtkaXNjb3ZlcmVyIjsNCi0NCi0JcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBCWVRFUEVSTUIgPSAxMDI0ICogMTAyNDsNCi0NCi0JcHJpdmF0ZSBJRGlzY292ZXJlcklEIGRpc2NvdmVyZXJJRDsNCi0JcHJpdmF0ZSBpbnQgaXRlcmF0aW9uczsNCi0JcHJpdmF0ZSBib29sZWFuIG1lYXN1cmVNZW1vcnlVc2U7DQotCXByaXZhdGUgaW50IG1lbW9yeVBvbGxpbmdJbnRlcnZhbDsNCi0JcHJpdmF0ZSBib29sZWFuIGdlbmVyYXRlSHRtbFJlcG9ydDsNCi0JcHJpdmF0ZSBVUkkgaHRtbFJlcG9ydExvY2F0aW9uOw0KLQ0KLQlwcml2YXRlIEV2ZW50QW5kTWVtb3J5UmVjb3JkZXIgcmVjb3JkZXI7DQotCXByaXZhdGUgTGlzdDxNZW1vcnlNZWFzdXJlbWVudD4gbWVtb3J5TWVhc3VyZW1lbnRzOw0KLQlwcml2YXRlIExpc3Q8RXZlbnQ+IGV2ZW50czsNCi0NCi0JcHJpdmF0ZSBSZXNvdXJjZVNldCByU2V0Ow0KLQ0KLQ0KLQlwdWJsaWMgRGlzY292ZXJlckJlbmNobWFya0Rpc2NvdmVyZXIoKSB7DQotCQlzdXBlcigpOw0KLQkJdGhpcy5kaXNjb3ZlcmVySUQgPSBuZXcgRGlzY292ZXJlcklEKElEKTsNCi0JCXRoaXMubWVtb3J5UG9sbGluZ0ludGVydmFsID0gMDsNCi0JCXRoaXMubWVtb3J5TWVhc3VyZW1lbnRzID0gbmV3IExpbmtlZExpc3Q8TWVtb3J5TWVhc3VyZW1lbnQ+KCk7DQotCQl0aGlzLmV2ZW50cyA9IG5ldyBMaW5rZWRMaXN0PEV2ZW50PigpOw0KLQkJdGhpcy5yU2V0ID0gbmV3IFJlc291cmNlU2V0SW1wbCgpOw0KLQkJdGhpcy5yU2V0LmdldFJlc291cmNlRmFjdG9yeVJlZ2lzdHJ5KCkuZ2V0RXh0ZW5zaW9uVG9GYWN0b3J5TWFwKCkucHV0KCJ4bWkiLCANCi0JCQkJbmV3IFhNSVJlc291cmNlRmFjdG9yeUltcGwoKSk7DQotCQl0aGlzLml0ZXJhdGlvbnMgPSAxOw0KLQl9DQotDQotCS8qKg0KLQkgKiBQYXJhbWV0ZXIgZm9yIGdldHRpbmcgdGhlIGRpY292ZXJlcnMNCi0JICovDQotCXByaXZhdGUgSURpc2NvdmVyZXJMaXN0IGRpc2NvdmVyZXJzOw0KLQ0KLQ0KLQlwcm90ZWN0ZWQgSURpc2NvdmVyZXJMaXN0IGdldERpc2NvdmVyZXJzKCkgew0KLQkJcmV0dXJuIHRoaXMuZGlzY292ZXJlcnM7DQotCX0NCi0NCi0JLyoqDQotCSAqIFNldHRlciBmb3IgdGhlIGxpc3Qgb2YgZGlzY292ZXJlcnMsIGFubm90YXRlZCB3aXRoIEBQYXJhbWV0ZXIgc2V0IGJ5IHRoZSBVSQ0KLQkgKiBAcGFyYW0gZGlzY29zOiB0aGUgbGlzdCBvZiBkaXNjb3ZlcmVycw0KLQkgKi8NCi0JQFBhcmFtZXRlcihuYW1lID0gIkRJU0NPVkVSRVJfTElTVCIsIGRlc2NyaXB0aW9uID0gIlRoZSBsaXN0IG9mIGRpc2NvdmVyZXJzLiIsIHJlcXVpcmVzSW5wdXRWYWx1ZSA9IHRydWUpDQotCXB1YmxpYyB2b2lkIHNldERpc2NvdmVyZXJzKGZpbmFsIElEaXNjb3ZlcmVyTGlzdCBkaXNjb3MpIHsNCi0JCXRoaXMuZGlzY292ZXJlcnMgPSBkaXNjb3M7DQotCX0NCi0NCi0NCi0JLyoqDQotCSAqIE1ldGhvZCBsYXVuY2hpbmcgdGhlIGRpc2NvdmVyeSBwcm9jZXNzIG9uIGFsbCB0aGUgZGlzY292ZXJlcnMgWCBhbGwgdGhlIHByb2plY3RzDQotCSAqIEBwYXJhbSBwcm9qZWN0cyB0aGUgc2V0IG9mIHByb2plY3RzIHRvIGRpc2NvdmVyDQotCSAqIEBwYXJhbSBwcm9ncmVzc01vbml0b3INCi0JICogQHJldHVybiBUaGUgYmVuY2htYXJrIG1vZGVsIGNvbmZvcm1zIHRvIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrDQotCSAqIEB0aHJvd3MgRGlzY292ZXJ5RXhjZXB0aW9uDQotCSAqLw0KLQlwdWJsaWMgUmVzb3VyY2UgZGlzY292ZXJCZW5jaG1hcmsoZmluYWwgSVByb2plY3RTZXQgcHJvamVjdHMsIGZpbmFsIElQcm9ncmVzc01vbml0b3IgcHJvZ3Jlc3NNb25pdG9yKSB0aHJvd3MgRGlzY292ZXJ5RXhjZXB0aW9uIHsNCi0JCXByb2dyZXNzTW9uaXRvci5iZWdpblRhc2soIkJlbmNobWFyayBEaXNjb3ZlcnkiLCBURU4pOw0KLQkJcHJvZ3Jlc3NNb25pdG9yLnN1YlRhc2soIkJlbmNobWFyayBpbml0aWFsaXphdGlvbiIpOw0KLQkJQmVuY2htYXJrIGJlbmNobWFyazsNCi0JCWJlbmNobWFyayA9IGJlbmNobWFya0luaXQoKTsNCi0JCXByb2dyZXNzTW9uaXRvci53b3JrZWQoVFdPKTsNCi0JCXRoaXMucmVjb3JkZXIgPSAgbmV3IEV2ZW50QW5kTWVtb3J5UmVjb3JkZXIodGhpcy5tZWFzdXJlTWVtb3J5VXNlLCB0aGlzLm1lbW9yeVBvbGxpbmdJbnRlcnZhbCk7DQotDQotCQlmb3IgKElQcm9qZWN0IHByb2plY3QgOiBwcm9qZWN0cy5zb3J0QnlTaXplKCkuZ2V0UHJvamVjdHMoKSkgew0KLQkJCXByb2dyZXNzTW9uaXRvci5zdWJUYXNrKCJwcm9qZWN0IGluaXRpYWxpemF0aW9uIik7DQotCQkJUHJvamVjdCBwcm9qID0gY3JlYXRlQmVuY2htYXJrUHJvamVjdEFuZEZpbGVzKHByb2plY3QpOw0KLQkJCWJlbmNobWFyay5nZXRQcm9qZWN0cygpLmFkZChwcm9qKTsNCi0NCi0JCQlmb3IgKERpc2NvdmVyeSBkaXNjb1RlbXAgOiB0aGlzLmRpc2NvdmVyZXJzKSB7DQotCQkJCXByb2dyZXNzTW9uaXRvci5zdWJUYXNrKCJEaXNjb3ZlcnkgaW5pdGlhbGl6YXRpb24iKTsNCi0JCQkJRGlzY292ZXJ5IGRpc2NvID0gQmVuY2htYXJrRmFjdG9yeS5lSU5TVEFOQ0UuY3JlYXRlRGlzY292ZXJ5KCk7DQotCQkJCVN0cmluZyBkaXNjb3ZlcmVySWQgPSBkaXNjb1RlbXAuZ2V0RGlzY292ZXJlcklkKCk7DQotCQkJCUFic3RyYWN0TW9kZWxEaXNjb3ZlcmVyPElQcm9qZWN0PiBkaXNjb3ZlcmVyID0gKEFic3RyYWN0TW9kZWxEaXNjb3ZlcmVyPElQcm9qZWN0PikgSURpc2NvdmVyeU1hbmFnZXIuSU5TVEFOQ0UuY3JlYXRlRGlzY292ZXJlckltcGwoZGlzY292ZXJlcklkKTsNCi0JCQkJYmVuY2htYXJrLmdldERpc2NvdmVyaWVzKCkuYWRkKGRpc2NvKTsNCi0JCQkJcHJlRGlzY292ZXJ5RGlzY29Jbml0KHByb2osIGRpc2NvLCBkaXNjb1RlbXAsIChBYnN0cmFjdE1vZGVsRGlzY292ZXJlcjxJUHJvamVjdD4pIGRpc2NvdmVyZXIsIGRpc2NvdmVyZXJJZCk7DQotCQkJCXNldExhdW5jaFBhcmFtZXRlcihkaXNjbywgZGlzY292ZXJlcik7DQotCQkJCVN0cmluZyBzZXJpYWxpemF0aW9uTG9jYXRpb247DQotCQkJCWlmIChkaXNjb3ZlcmVyLmdldFRhcmdldFVSSSgpICE9IG51bGwpIHsNCi0JCQkJCXNlcmlhbGl6YXRpb25Mb2NhdGlvbiA9IGRpc2NvdmVyZXIuZ2V0VGFyZ2V0VVJJKCkudHJpbUZpbGVFeHRlbnNpb24oKS50b1BsYXRmb3JtU3RyaW5nKGZhbHNlKTsNCi0JCQkJfSBlbHNlIHsNCi0JCQkJCXNlcmlhbGl6YXRpb25Mb2NhdGlvbiA9IHRoaXMuZ2V0VGFyZ2V0VVJJKCkudHJpbUZpbGVFeHRlbnNpb24oKS50b1BsYXRmb3JtU3RyaW5nKGZhbHNlKTsNCi0JCQkJfQ0KLQkJCQlmb3IgKGludCBpID0gMTsgaSA8PSB0aGlzLml0ZXJhdGlvbnM7ICBpKyspIHsNCi0JCQkJCVVSSSByZXN1bHRTZXJpYWxpemF0aW9uTG9jYXRpb24gPSAgVVJJLmNyZWF0ZVVSSShzZXJpYWxpemF0aW9uTG9jYXRpb24pOw0KLQkJCQkJZGlzY292ZXJlci5zZXRUYXJnZXRVUkkocmVzdWx0U2VyaWFsaXphdGlvbkxvY2F0aW9uLmFwcGVuZFNlZ21lbnQoZGlzY28uZ2V0RGlzY292ZXJlcklkKCkgKyAiXyIgKyBwcm9qLmdldE5hbWUoKSArICJfaXRlcmF0aW9uXyIgKyBTdHJpbmcudmFsdWVPZihpKSArICIueG1pIikpOw0KLQkJCQkJYm9vbGVhbiBmYWlsdXJlID0gZmFsc2U7DQotCQkJCQlTdHJpbmdCdWlsZGVyIGRpc2NvdmVyeUVycm9ycyA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7DQotCQkJCQl0aGlzLnJlY29yZGVyLnJlc2V0KCk7DQotCQkJCQlpZiAoSUV2ZW50Tm90aWZpZXIuY2xhc3MuaXNJbnN0YW5jZShkaXNjb3ZlcmVyKSkgew0KLQkJCQkJCSgoSUV2ZW50Tm90aWZpZXIpIGRpc2NvdmVyZXIpLmFkZExpc3RlbmVyKHRoaXMucmVjb3JkZXIpOw0KLQkJCQkJfQ0KLQ0KLQkJCQkJcHJvZ3Jlc3NNb25pdG9yLnN1YlRhc2soIlByb2plY3QgZGlzY292ZXJ5OiBpdGVyYXRpb24gIiArIFN0cmluZy52YWx1ZU9mKGdldEl0ZXJhdGlvbnMoKSkpOw0KLQkJCQkJdGhpcy5yZWNvcmRlci5zdGFydCgpOw0KLQ0KLQkJCQkJdHJ5IHsNCi0JCQkJCQlpZiAoZGlzY292ZXJlci5pc0FwcGxpY2FibGVUbyhwcm9qZWN0KSkgew0KLQkJCQkJCQlJUHJvZ3Jlc3NNb25pdG9yIHN1YlByb2dyZXNzTW9uaXRvciA9IG5ldyBTdWJQcm9ncmVzc01vbml0b3IocHJvZ3Jlc3NNb25pdG9yLCBFSUdIVCk7DQotCQkJCQkJCWRpc2NvdmVyZXIuZGlzY292ZXJFbGVtZW50KHByb2plY3QsIHN1YlByb2dyZXNzTW9uaXRvcik7DQotCQkJCQkJfSBlbHNlIHsNCi0JCQkJCQkJTW9EaXNjb0xvZ2dlci5sb2dXYXJuaW5nKCJEaXNjb3ZlcmVyICIgKyBkaXNjb3ZlcmVySWQgKyAiIGlzIG5vdCBhcHBsaWNhYmxlIG9uIHByb2plY3QgIiArIHByb2plY3QuZ2V0TmFtZSgpLA0KLQkJCQkJCQkJCW9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlLmludGVybmFsLkFjdGl2YXRvci5nZXREZWZhdWx0KCkpOw0KLQkJCQkJCX0NCi0JCQkJCX0gY2F0Y2ggKERpc2NvdmVyeUV4Y2VwdGlvbiBlKSB7DQotCQkJCQkJZmFpbHVyZSA9IHRydWU7DQotCQkJCQkJZGlzY292ZXJ5RXJyb3JzLmFwcGVuZChlLmdldFN0YWNrVHJhY2UoKS50b1N0cmluZygpKTsNCi0JCQkJCQlNb0Rpc2NvTG9nZ2VyLmxvZ0Vycm9yKGUsDQotCQkJCQkJCQkiQmVuY2htYXJrIG9mIGRpc2NvdmVyZXIgIiArIGRpc2NvdmVyZXJJZCArICIgZmFpbHMgb24gcHJvamVjdCIgKyBwcm9qZWN0LmdldE5hbWUoKSwgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUuaW50ZXJuYWwuQWN0aXZhdG9yLmdldERlZmF1bHQoKSk7IC8vJE5PTi1OTFMtMSQNCi0JCQkJCX0gY2F0Y2ggKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7DQotCQkJCQkJZmFpbHVyZSA9IHRydWU7DQotCQkJCQkJZGlzY292ZXJ5RXJyb3JzLmFwcGVuZChlLmdldFN0YWNrVHJhY2UoKS50b1N0cmluZygpKTsNCi0JCQkJCQlNb0Rpc2NvTG9nZ2VyLmxvZ0Vycm9yKGUsDQotCQkJCQkJCQkiQmVuY2htYXJrIG9mIGRpc2NvdmVyZXIgIiArIGRpc2NvdmVyZXJJZCArICIgZmFpbHMgb24gcHJvamVjdCIgKyBwcm9qZWN0LmdldE5hbWUoKSwgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUuaW50ZXJuYWwuQWN0aXZhdG9yLmdldERlZmF1bHQoKSk7IC8vJE5PTi1OTFMtMSQNCi0JCQkJCX0NCi0JCQkJCXRoaXMucmVjb3JkZXIuc3RvcCgpOw0KLQkJCQkJdGhpcy5ldmVudHMuYWRkQWxsKHRoaXMucmVjb3JkZXIuZ2V0RXZlbnRzKCkpOw0KLQkJCQkJdGhpcy5ldmVudHMuYWRkQWxsKHRoaXMucmVjb3JkZXIuZ2V0TWVtb3J5TWVhc3VyZW1lbnRzKCkpOw0KLQkJCQkJdGhpcy5tZW1vcnlNZWFzdXJlbWVudHMuYWRkQWxsKHRoaXMucmVjb3JkZXIuZ2V0TWVtb3J5TWVhc3VyZW1lbnRzKCkpOw0KLQkJCQkJaWYgKElFdmVudE5vdGlmaWVyLmNsYXNzLmlzSW5zdGFuY2UoZGlzY292ZXJlcikpIHsNCi0JCQkJCQkoKElFdmVudE5vdGlmaWVyKSBkaXNjb3ZlcmVyKS5yZW1vdmVMaXN0ZW5lcih0aGlzLnJlY29yZGVyKTsNCi0JCQkJCX0NCi0JCQkJCURpc2NvdmVyeUl0ZXJhdGlvbiBkaXNjb3ZlcnlJdGVyYXRpb24gPSBjcmVhdGVEaXNjb3ZlcnlJdGVyYXRpb24odGhpcy5yZWNvcmRlcik7DQotCQkJCQlpZiAoZmFpbHVyZSkgew0KLQkJCQkJCWRpc2NvdmVyeUl0ZXJhdGlvbi5zZXREaXNjb3ZlcnlFcnJvcnMoZGlzY292ZXJ5RXJyb3JzLnRvU3RyaW5nKCkpOw0KLQkJCQkJfQ0KLQkJCQkJZGlzY28uZ2V0SXRlcmF0aW9ucygpLmFkZChkaXNjb3ZlcnlJdGVyYXRpb24pOw0KLQ0KLQkJCQl9DQotDQotCQkJCXBvc3REaXNjb3ZlcnlEaXNjb0luaXQoZGlzY28sIGRpc2NvdmVyZXIpOw0KLQkJCQlpZiAodGhpcy5pc1RhcmdldFNlcmlhbGl6YXRpb25DaG9zZW4oKSkgew0KLQkJCQkJdHJ5IHsNCi0JCQkJCQlzYXZlVGFyZ2V0TW9kZWwoYmVuY2htYXJrKTsNCi0JCQkJCX0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsNCi0JCQkJCQlNb0Rpc2NvTG9nZ2VyLmxvZ0Vycm9yKGUsDQotCQkJCQkJCQkiSW50ZXJtZWRpYXRlIG1vZGVsIHNhdmUgZmFpbCIsIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlLmludGVybmFsLkFjdGl2YXRvci5nZXREZWZhdWx0KCkpOyAvLyROT04tTkxTLTEkDQotCQkJCQl9DQotCQkJCX0NCi0JCQl9DQotCQl9DQotCQliZW5jaG1hcmsuc2V0SnZtTWF4SGVhcEluTWlCKGNvbXB1dGVNYXhNZW1vcnlVc2FnZSgpKTsNCi0JCXRyeSB7DQotCQkJaWYgKHRoaXMuaXNUYXJnZXRTZXJpYWxpemF0aW9uQ2hvc2VuKCkpIHsNCi0JCQkJcHJvZ3Jlc3NNb25pdG9yLnN1YlRhc2soIlNhdmUgYmVuY2htYXJrIG1vZGVsIik7DQotCQkJCXNhdmVUYXJnZXRNb2RlbChiZW5jaG1hcmspOw0KLQkJCQlwcm9ncmVzc01vbml0b3Iud29ya2VkKGdldEl0ZXJhdGlvbnMoKSAqIHByb2plY3RzLmdldFByb2plY3RzKCkuc2l6ZSgpICogdGhpcy5kaXNjb3ZlcmVycy5nZXREaXNjb3ZlcmVycygpLnNpemUoKSk7IC8vMSppdGVyYXRpb24qZGlzY292ZXJpZXMqcHJvamVjdHMgZm9yIGRpc2NvIGluaXQgb24gMjAqaXRlcmF0aW9uKmRpc2NvdmVyaWVzKnByb2plY3RzDQotCQkJfQ0KLQkJCWlmIChpc0dlbmVyYXRlSHRtbFJlcG9ydCgpKSB7DQotCQkJCXByb2dyZXNzTW9uaXRvci5zdWJUYXNrKCJHZW5lcmF0ZSBiZW5jaG1hcmsgcmVwb3J0Iik7DQotCQkJCUlQcm9ncmVzc01vbml0b3Igc3ViUHJvZ3Jlc3NNID0gbmV3IFN1YlByb2dyZXNzTW9uaXRvcihwcm9ncmVzc01vbml0b3IsIFNJWCk7DQotCQkJCWdlbmVyYXRlSHRtbFJlcG9ydChzdWJQcm9ncmVzc00sIGJlbmNobWFyayk7DQotCQkJCXByb2dyZXNzTW9uaXRvci53b3JrZWQoMiAqIGdldEl0ZXJhdGlvbnMoKSAqIHByb2plY3RzLmdldFByb2plY3RzKCkuc2l6ZSgpICogdGhpcy5kaXNjb3ZlcmVycy5nZXREaXNjb3ZlcmVycygpLnNpemUoKSk7IC8vMippdGVyYXRpb24qZGlzY292ZXJpZXMqcHJvamVjdHMgZm9yIGRpc2NvIGluaXQgb24gMjAqaXRlcmF0aW9uKmRpc2NvdmVyaWVzKnByb2plY3RzDQotCQkJfQ0KLQkJfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgew0KLQkJCU1vRGlzY29Mb2dnZXIubG9nRXJyb3IoZSwNCi0JCQkJCSJSZXBvcnQgZ2VuZXJhdGlvbiBmYWlsIiwgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUuaW50ZXJuYWwuQWN0aXZhdG9yLmdldERlZmF1bHQoKSk7IC8vJE5PTi1OTFMtMSQNCi0JCX0gY2F0Y2ggKENvcmVFeGNlcHRpb24gZSkgew0KLQkJCU1vRGlzY29Mb2dnZXIubG9nRXJyb3IoZSwNCi0JCQkJCSJSZXBvcnQgZ2VuZXJhdGlvbiBmYWlsIiwgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUuaW50ZXJuYWwuQWN0aXZhdG9yLmdldERlZmF1bHQoKSk7IC8vJE5PTi1OTFMtMSQNCi0JCX0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7DQotCQkJTW9EaXNjb0xvZ2dlci5sb2dFcnJvcihlLA0KLQkJCQkJIlJlcG9ydCBnZW5lcmF0aW9uIGZhaWwiLCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS5pbnRlcm5hbC5BY3RpdmF0b3IuZ2V0RGVmYXVsdCgpKTsgLy8kTk9OLU5MUy0xJA0KLQkJfQ0KLQ0KLQ0KLQkJcHJvZ3Jlc3NNb25pdG9yLmRvbmUoKTsNCi0JCXJldHVybiBiZW5jaG1hcmsuZVJlc291cmNlKCk7DQotCX0NCi0NCi0JLyoqDQotCSAqIENvbXB1dGUgdGhlIHNpemUgb2YgdGhlIG1vZGVsIGluIHBhcmFtZXRlciAoaW4gbnVtYmVyIG9mIG1vZGVsIGVsZW1lbnRzKQ0KLQkgKiBAcGFyYW0gdGFyZ2V0TW9kZWwNCi0JICogQHJldHVybiB0aGUgbnVtYmVyIG9mIG1vZGVsIGVsZW1lbnRzDQotCSAqLw0KLQlwcml2YXRlIGxvbmcgY29tcHV0ZVNpemUoZmluYWwgUmVzb3VyY2UgdGFyZ2V0TW9kZWwpIHsNCi0JCWxvbmcgc2l6ZSA9IDA7DQotCQlpZiAodGFyZ2V0TW9kZWwgIT0gbnVsbCkgew0KLQkJCWZvciAoVHJlZUl0ZXJhdG9yPEVPYmplY3Q+IGl0ZXJhdG9yID0gdGFyZ2V0TW9kZWwuZ2V0QWxsQ29udGVudHMoKTsgaXRlcmF0b3IuaGFzTmV4dCgpOykgew0KLQkJCQlpdGVyYXRvci5uZXh0KCk7DQotCQkJCXNpemUrKzsNCi0JCQl9DQotCQl9IGVsc2Ugew0KLQkJCU1vRGlzY29Mb2dnZXIubG9nV2FybmluZygiVW5hYmxlIHRvIGNvbXB1dGUgdGhlIG51bWJlciBvZiBlbGVtZW50IG9mIGFuIHVuZXhpc3RpbmcgbW9kZWwiLCBBY3RpdmF0b3IuZ2V0RGVmYXVsdCgpKTsNCi0JCX0NCi0JCXJldHVybiBzaXplOw0KLQl9DQotDQotCS8qKg0KLQkgKiBsYXVuY2ggdGhlIGdlbmVyYXRpb24gb2YgdGhlIEhUTUwgcmVwb3J0IGFuZCB0aGUgY2hhcnRzIGZvciB0aGUgYmVuY2htYXJrIG1vZGVsIGluIHBhcmFtZXRlcg0KLQkgKiBAcGFyYW0gcHJvZ3Jlc3NNb25pdG9yDQotCSAqIEBwYXJhbSBiZW5jaG1hcmsNCi0JICogQHRocm93cyBFeGNlcHRpb24NCi0JICovDQotCXByaXZhdGUgdm9pZCBnZW5lcmF0ZUh0bWxSZXBvcnQoZmluYWwgSVByb2dyZXNzTW9uaXRvciBwcm9ncmVzc01vbml0b3IsDQotCQkJZmluYWwgQmVuY2htYXJrIGJlbmNobWFyaykgdGhyb3dzIEV4Y2VwdGlvbiB7DQotCQkvL0dldCB0aGUgb3V0cHV0IGZvbGRlcg0KLQkJVVJJIHRhcmdldFVSSSA9IG51bGw7DQotCQlpZiAodGhpcy5nZXRIdG1sUmVwb3J0TG9jYXRpb24oKSAhPSBudWxsKSB7DQotCQkJdGFyZ2V0VVJJID0gdGhpcy5nZXRIdG1sUmVwb3J0TG9jYXRpb24oKTsNCi0JCX0gZWxzZSB7DQotCQkJdGFyZ2V0VVJJID0gdGhpcy5nZXRUYXJnZXRVUkkoKTsNCi0JCX0NCi0JCWlmICh0YXJnZXRVUkkgPT0gbnVsbCkgew0KLQkJCU1vRGlzY29Mb2dnZXIubG9nV2FybmluZygiVGhlIEhUTUxfUkVQT1JUX0xPQ0FUSU9OIG9yIHRoZSBUQVJHRVRfVVJJIHBhcmFtZXRlciBzaG91bGQgbm90IGJlIG51bGwiLCBBY3RpdmF0b3IuZ2V0RGVmYXVsdCgpKTsNCi0JCQlyZXR1cm47DQotCQl9DQotCQlJQ29udGFpbmVyIGxvY2F0aW9uID0gUmVzb3VyY2VzUGx1Z2luLmdldFdvcmtzcGFjZSgpLmdldFJvb3QoKS5nZXRGaWxlKG5ldyBQYXRoKHRhcmdldFVSSS5wYXRoKCkucmVwbGFjZSgiL3Jlc291cmNlIiwgIiIpKSkuZ2V0UGFyZW50KCk7DQotCQlTdHJpbmcgbG9jYXRpb25TdHJpbmcgPSAiIjsNCi0JCWlmICh0YXJnZXRVUkkgPT0gdGhpcy5nZXRUYXJnZXRVUkkoKSkgew0KLQkJCWxvY2F0aW9uU3RyaW5nID0gUmVzb3VyY2VzUGx1Z2luLmdldFdvcmtzcGFjZSgpLmdldFJvb3QoKS5nZXRMb2NhdGlvbigpLnRvU3RyaW5nKCkgDQotCQkJCQkrIHRhcmdldFVSSS50cmltU2VnbWVudHMoMSkudG9TdHJpbmcoKS5yZXBsYWNlKCJwbGF0Zm9ybTovcmVzb3VyY2UiLCAiIikgKyAiL0hUTUxSZXBvcnQiOw0KLQkJfSBlbHNlIHsNCi0JCQlsb2NhdGlvblN0cmluZyA9IFJlc291cmNlc1BsdWdpbi5nZXRXb3Jrc3BhY2UoKS5nZXRSb290KCkuZ2V0TG9jYXRpb24oKS50b1N0cmluZygpIA0KLQkJCQkJKyB0YXJnZXRVUkkudG9TdHJpbmcoKS5yZXBsYWNlKCJwbGF0Zm9ybTovcmVzb3VyY2UiLCAiIik7DQotCQl9DQotCQlqYXZhLm5ldC5VUkkgdXJpID0gamF2YS5uZXQuVVJJLmNyZWF0ZShsb2NhdGlvblN0cmluZyk7DQotCQlqYXZhLmlvLkZpbGUgZmlsZSA9IG5ldyBqYXZhLmlvLkZpbGUodXJpLnRvU3RyaW5nKCkpOw0KLQ0KLQkJQXJyYXlMaXN0PE9iamVjdD4gYXJndW1lbnRzID0gbmV3IEFycmF5TGlzdDxPYmplY3Q+KCk7DQotCQkvL0dlbmVyYXRpb24gb2YgdGhlIEhUTUwgcmVwb3J0DQotCQl0cnkgew0KLQkJCUh0bWxSZXBvcnQgcmVwb3J0ID0gbmV3IEh0bWxSZXBvcnQoYmVuY2htYXJrLCBmaWxlLCBhcmd1bWVudHMpOw0KLQkJCXJlcG9ydC5kb0dlbmVyYXRlKG51bGwpOw0KLQkJfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsNCi0JCQlNb0Rpc2NvTG9nZ2VyLmxvZ1dhcm5pbmcoZSwgIkFjY2VsZW8gZXhjZXB0aW9uIiwgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUuaW50ZXJuYWwuQWN0aXZhdG9yLmdldERlZmF1bHQoKSk7DQotCQl9DQotCQkvL0dlbmVyYXRpb24gb2YgdGhlIGNoYXJ0cw0KLQkJQmVuY2htYXJrQ2hhcnRHZW5lcmF0aW9uIGNoYXJ0R2VuZXJhdG9yID0gbmV3IEJlbmNobWFya0NoYXJ0R2VuZXJhdGlvbihmaWxlLCB0aGlzLm1lYXN1cmVNZW1vcnlVc2UpOw0KLQkJY2hhcnRHZW5lcmF0b3IuZ2VuZXJhdGVBbGwoYmVuY2htYXJrKTsNCi0NCi0JCWxvY2F0aW9uLnJlZnJlc2hMb2NhbChJUmVzb3VyY2UuREVQVEhfSU5GSU5JVEUsIHByb2dyZXNzTW9uaXRvcik7DQotCX0NCi0NCi0JLyoqDQotCSAqIFNldCB0aGUgbGF1bmNoIHBhcmFtZXRlcnMgb2YgdGhlIHtAbGluayBBYnN0cmFjdE1vZGVsRGlzY292ZXJlcn0gaW4gcGFyYW1ldGVyIHdpdGggdGhlIGNvbnRlbnQgb2YgdGhlIHtAbGluayBEaXNjb3Zlcnl9IGVsZW1lbnQNCi0JICogQHBhcmFtIGRpc2NvIHtAbGluayBEaXNjb3Zlcnl9DQotCSAqIEBwYXJhbSBkaXNjb3ZlcmVyIHtAbGluayBBYnN0cmFjdE1vZGVsRGlzY292ZXJlcn0gKEFic3RyYWN0TW9kZWxEaXNjb3ZlcmVyPElQcm9qZWN0PikNCi0JICovDQotCXByaXZhdGUgdm9pZCBzZXRMYXVuY2hQYXJhbWV0ZXIoZmluYWwgRGlzY292ZXJ5IGRpc2NvLCANCi0JCQlmaW5hbCBBYnN0cmFjdE1vZGVsRGlzY292ZXJlcjxJUHJvamVjdD4gZGlzY292ZXJlcikgew0KLQkJaWYgKGRpc2NvLmdldERpc2NvdmVyZXJMYXVuY2hDb25maWd1cmF0aW9uKCkgIT0gbnVsbCkgew0KLQkJCWZvciAoUGFyYW1ldGVyVmFsdWUgcHYgOiBkaXNjby5nZXREaXNjb3ZlcmVyTGF1bmNoQ29uZmlndXJhdGlvbigpLmdldFBhcmFtZXRlclZhbHVlcygpKSB7DQotCQkJCURpc2NvdmVyZXJQYXJhbWV0ZXIgcGFyYW1ldGVyID0gcHYuZ2V0UGFyYW1ldGVyKCk7DQotCQkJCU9iamVjdCB2YWx1ZSA9IHB2LmdldFZhbHVlKCk7DQotCQkJCWlmICh2YWx1ZSAhPSBudWxsKSB7DQotCQkJCQl0cnkgew0KLQkJCQkJCWlmIChwYXJhbWV0ZXIuZ2V0U2V0dGVyKCkgPT0gbnVsbCkgew0KLQkJCQkJCQlwYXJhbWV0ZXIuc2V0U2V0dGVyKGZpbmRTZXR0ZXIoZGlzY292ZXJlci5nZXRDbGFzcygpLCBwYXJhbWV0ZXIuZ2V0SWQoKSkpOw0KLQkJCQkJCX0NCi0JCQkJCQl0aGlzLnNldFZhbHVlKHBhcmFtZXRlciwgZGlzY292ZXJlciwgdmFsdWUpOw0KLQkJCQkJfSBjYXRjaCAoRGlzY292ZXJ5RXhjZXB0aW9uIGUpIHsNCi0JCQkJCQlNb0Rpc2NvTG9nZ2VyLmxvZ1dhcm5pbmcoZSwgZS5nZXRNZXNzYWdlKCksIEFjdGl2YXRvci5nZXREZWZhdWx0KCkpOw0KLQkJCQkJfQ0KLQ0KLQkJCQl9DQotCQkJfQ0KLQkJfQ0KLQl9DQotDQotCS8qKg0KLQkgKiBGaW5kIHRoZSBzZXR0ZXIgb2YgaWRlbnRpZmllciBpZCBpbiB0aGUgY2xhc3MgY2xhenoNCi0JICogdXNlIGphdmEgcmVmbGV4aW9uDQotCSAqIEBwYXJhbSBjbGF6eg0KLQkgKiBAcGFyYW0gaWQNCi0JICogQHJldHVybiB0aGUgc2V0dGVyDQotCSAqLw0KLQlwcml2YXRlIE1ldGhvZCBmaW5kU2V0dGVyKGZpbmFsIENsYXNzPD8gZXh0ZW5kcyBBYnN0cmFjdE1vZGVsRGlzY292ZXJlcj4gY2xhenosDQotCQkJZmluYWwgU3RyaW5nIGlkKSB7DQotCQlmb3IgKE1ldGhvZCBtZXRob2QgOiBjbGF6ei5nZXRNZXRob2RzKCkpIHsNCi0JCQlpZiAobWV0aG9kLmlzQW5ub3RhdGlvblByZXNlbnQoUGFyYW1ldGVyLmNsYXNzKSkgew0KLQkJCQlQYXJhbWV0ZXIgcCA9IG1ldGhvZC5nZXRBbm5vdGF0aW9uKFBhcmFtZXRlci5jbGFzcyk7DQotCQkJCWlmIChwLm5hbWUoKS5lcXVhbHMoaWQpKSB7DQotCQkJCQlpZiAobWV0aG9kLmdldFJldHVyblR5cGUoKS5lcXVhbHModm9pZC5jbGFzcykpIHsNCi0JCQkJCQlyZXR1cm4gbWV0aG9kOw0KLQkJCQkJfQ0KLQkJCQl9DQotCQkJfQ0KLQkJfQ0KLQkJcmV0dXJuIG51bGw7DQotCX0NCi0NCi0NCi0JLyoqDQotCSAqIG1ldGhvZCB0byBzZXQgdGhlIHZhbHVlcyBvZiBwYXJhbWV0ZXJzOiBleHRyYWN0ZWQgZnJvbSBEaXNjb3ZlcnlNYW5hZ2VyIChvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5jb3JlLmludGVybmFsKQ0KLQkgKiBAcGFyYW0gcGFyYW1ldGVyDQotCSAqIEBwYXJhbSBkaXNjb3ZlcmVyDQotCSAqIEBwYXJhbSBwYXJhbWV0ZXJWYWx1ZQ0KLQkgKiBAdGhyb3dzIERpc2NvdmVyeUV4Y2VwdGlvbg0KLQkgKi8NCi0JLyoNCi0JICogKG5vbi1KYXZhZG9jKQ0KLQkgKiANCi0JICogQHNlZQ0KLQkgKiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5jb3JlLmNhdGFsb2cuSURpc2NvdmVyeU1hbmFnZXIjc2V0VmFsdWUNCi0JICogKG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmNhdGFsb2cuRGlzY292ZXJlclBhcmFtZXRlciwNCi0JICogb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuY29yZS5JRGlzY292ZXJlciwgamF2YS5sYW5nLk9iamVjdCkNCi0JICovDQotCXByaXZhdGUgdm9pZCBzZXRWYWx1ZShmaW5hbCBEaXNjb3ZlcmVyUGFyYW1ldGVyIHBhcmFtZXRlciwgZmluYWwgSURpc2NvdmVyZXI8Pz4gZGlzY292ZXJlciwNCi0JCQlmaW5hbCBPYmplY3QgcGFyYW1ldGVyVmFsdWUpIHRocm93cyBEaXNjb3ZlcnlFeGNlcHRpb24gew0KLQkJdHJ5IHsNCi0JCQlpZiAocGFyYW1ldGVyLmdldEZpZWxkKCkgIT0gbnVsbA0KLQkJCQkJJiYgTW9kaWZpZXIuaXNQdWJsaWMocGFyYW1ldGVyLmdldEZpZWxkKCkuZ2V0TW9kaWZpZXJzKCkpKSB7DQotCQkJCXBhcmFtZXRlci5nZXRGaWVsZCgpLnNldChkaXNjb3ZlcmVyLCBwYXJhbWV0ZXJWYWx1ZSk7DQotCQkJfSBlbHNlIGlmIChwYXJhbWV0ZXIuZ2V0U2V0dGVyKCkgIT0gbnVsbA0KLQkJCQkJJiYgTW9kaWZpZXIuaXNQdWJsaWMocGFyYW1ldGVyLmdldFNldHRlcigpLmdldE1vZGlmaWVycygpKSkgew0KLQkJCQlwYXJhbWV0ZXIuZ2V0U2V0dGVyKCkuaW52b2tlKGRpc2NvdmVyZXIsIHBhcmFtZXRlclZhbHVlKTsNCi0JCQl9IGVsc2Ugew0KLQkJCQl0aHJvdyBuZXcgRGlzY292ZXJ5RXhjZXB0aW9uKGRpc2NvdmVyZXIuZ2V0Q2xhc3MoKQ0KLQkJCQkJCSsgIiBkaXNjb3ZlcmVyIGRvZXMgbm90IGltcGxlbWVudCBwdWJsaWMgd3JpdGUgYWNjZXNzIHRvIHRoZSBwYXJhbWV0ZXIgIiAvLyROT04tTkxTLTEkDQotCQkJCQkJKyBwYXJhbWV0ZXIuZ2V0SWQoKSk7DQotCQkJfQ0KLQkJfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsNCi0JCQl0aHJvdyBuZXcgRGlzY292ZXJ5RXhjZXB0aW9uKCJJbGxlZ2FsIHBhcmFtZXRlciB2YWx1ZSBmb3IgIiAvLyROT04tTkxTLTEkDQotCQkJCQkrIHBhcmFtZXRlci5nZXRJZCgpICsgIiA6ICIgKyBwYXJhbWV0ZXJWYWx1ZSwgZSk7IC8vJE5PTi1OTFMtMSQNCi0JCX0gY2F0Y2ggKElsbGVnYWxBY2Nlc3NFeGNlcHRpb24gZSkgew0KLQkJCXRocm93IG5ldyBEaXNjb3ZlcnlFeGNlcHRpb24oIklsbGVnYWwgcGFyYW1ldGVyIHZhbHVlIGZvciAiIC8vJE5PTi1OTFMtMSQNCi0JCQkJCSsgcGFyYW1ldGVyLmdldElkKCkgKyAiIDogIiArIHBhcmFtZXRlclZhbHVlLCBlKTsgLy8kTk9OLU5MUy0xJA0KLQkJfSBjYXRjaCAoSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbiBlKSB7DQotCQkJdGhyb3cgbmV3IERpc2NvdmVyeUV4Y2VwdGlvbigiSWxsZWdhbCBwYXJhbWV0ZXIgdmFsdWUgZm9yICIgLy8kTk9OLU5MUy0xJA0KLQkJCQkJKyBwYXJhbWV0ZXIuZ2V0SWQoKSArICIgOiAiICsgcGFyYW1ldGVyVmFsdWUsIGUpOyAvLyROT04tTkxTLTEkDQotCQl9DQotDQotCX0NCi0NCi0JLyoqDQotCSAqIFNhdmUgdGhlIGJlbmNobWFyayBtb2RlbCBpbiBhbiBYTUkgZmlsZQ0KLQkgKiBAcGFyYW0gYmVuY2htYXJrDQotCSAqIEB0aHJvd3MgSU9FeGNlcHRpb24NCi0JICovDQotCXByaXZhdGUgdm9pZCBzYXZlVGFyZ2V0TW9kZWwoZmluYWwgQmVuY2htYXJrIGJlbmNobWFyaykgdGhyb3dzIElPRXhjZXB0aW9uIHsNCi0JCWlmICgodGhpcy5nZXRUYXJnZXRVUkkoKSA9PSBudWxsKSAmJiAodGhpcy5nZXRUYXJnZXRNb2RlbCgpID09IG51bGwpKSB7DQotCQkJTW9EaXNjb0xvZ2dlci5sb2dXYXJuaW5nKCJUaGUgcGFyYW1ldGVyIFRBUkdFVF9VUkkgc2hvdWxkIG5vdCBiZSBlbXB0eSIsIEFjdGl2YXRvci5nZXREZWZhdWx0KCkpOw0KLQkJCXJldHVybjsNCi0JCX0JCQ0KLQkJaWYgKGJlbmNobWFyay5lUmVzb3VyY2UoKSA9PSBudWxsKSB7DQotDQotCQkJUmVzb3VyY2UgcmVzID0gbnVsbDsNCi0JCQlpZiAoZ2V0VGFyZ2V0TW9kZWwoKSA9PSBudWxsKSB7DQotCQkJCXJlcyA9IHRoaXMuclNldC5jcmVhdGVSZXNvdXJjZShnZXRUYXJnZXRVUkkoKSk7DQotCQkJfSBlbHNlIHsNCi0JCQkJcmVzID0gdGhpcy5yU2V0LmNyZWF0ZVJlc291cmNlKGdldFRhcmdldE1vZGVsKCkuZ2V0VVJJKCkpOw0KLQkJCX0NCi0JCQlyZXMuZ2V0Q29udGVudHMoKS5hZGQoYmVuY2htYXJrKTsNCi0JCQlMaXN0PEV2ZW50PiBldmVudHNMaXN0ID0gbmV3IEFycmF5TGlzdDxFdmVudD4oKTsNCi0JCQlMaXN0PEV2ZW50VHlwZT4gZXZlbnRUeXBlTGlzdCA9IG5ldyBBcnJheUxpc3Q8RXZlbnRUeXBlPigpOw0KLQkJCWZvciAoRGlzY292ZXJ5IGQgOiBiZW5jaG1hcmsuZ2V0RGlzY292ZXJpZXMoKSkgew0KLQkJCQlmb3IgKERpc2NvdmVyeUl0ZXJhdGlvbiBpIDogZC5nZXRJdGVyYXRpb25zKCkpIHsNCi0JCQkJCWZvciAoRXZlbnQgZXZlbnQgOiBpLmdldEV2ZW50cygpKSB7DQotCQkJCQkJZXZlbnRzTGlzdC5hZGQoZXZlbnQpOw0KLQkJCQkJCWV2ZW50VHlwZUxpc3QuYWRkKGV2ZW50LmdldEV2ZW50VHlwZSgpKTsNCi0JCQkJCX0NCi0JCQkJfQ0KLQkJCX0NCi0vLwkJCXJlcy5nZXRDb250ZW50cygpLmFkZEFsbChldmVudHNMaXN0KTsNCi0JCQlyZXMuZ2V0Q29udGVudHMoKS5hZGRBbGwoZXZlbnRUeXBlTGlzdCk7DQotCQkJdGhpcy5zZXRUYXJnZXRNb2RlbChyZXMpOw0KLQkJfQ0KLQ0KLQkJdGhpcy5zYXZlVGFyZ2V0TW9kZWwoKTsNCi0JfQ0KLQ0KLQkvKioNCi0JICogQ29tcHV0ZSB0aGUgbWF4aW11bSBhbW91bnQgb2YgbWVtb3J5IHVzZWQgaW4gdGhlIGRpc2NvdmVyeQ0KLQkgKiBAcmV0dXJuIG1heCBtZW1vcnkgdXNlZA0KLQkgKi8NCi0JcHJpdmF0ZSBsb25nIGNvbXB1dGVNYXhNZW1vcnlVc2FnZSgpIHsNCi0JCWxvbmcgbWF4ID0gMDsNCi0JCWZvciAoTWVtb3J5TWVhc3VyZW1lbnQgbWVhc3VyZSA6IHRoaXMubWVtb3J5TWVhc3VyZW1lbnRzKSB7DQotCQkJaWYgKG1heCA8IG1lYXN1cmUuZ2V0TWVtb3J5VXNlZCgpKSB7DQotCQkJCW1heCA9IG1lYXN1cmUuZ2V0TWVtb3J5VXNlZCgpOw0KLQkJCX0NCi0JCX0NCi0JCXJldHVybiBtYXg7DQotCX0NCi0NCi0JLyoqDQotCSAqIEluaXRpYWxpemUgdGhlIGJlbmNobWFyayBtb2RlbCBlbGVtZW50IHdpdGggc3lzdGVtIGluZm9ybWF0aW9uDQotCSAqIEByZXR1cm4gdGhlIG1vZGVsIGVsZW1lbnQNCi0JICovDQotCXByaXZhdGUgQmVuY2htYXJrIGJlbmNobWFya0luaXQoKSB7DQotDQotCQlCZW5jaG1hcmsgYmVuY2htYXJrID0gQmVuY2htYXJrRmFjdG9yeS5lSU5TVEFOQ0UuY3JlYXRlQmVuY2htYXJrKCk7DQotCQl0cnkgew0KLQkJCVN5c3RlbUluZm8gc3lzSW5mbyA9IFN5c3RlbUluZm8uZ2V0SW5zdGFuY2UoKTsNCi0JCQliZW5jaG1hcmsuc2V0SnZtTWF4SGVhcEluTWlCKFJ1bnRpbWUuZ2V0UnVudGltZSgpLm1heE1lbW9yeSgpIC8gQllURVBFUk1CKTsNCi0JCQliZW5jaG1hcmsuc2V0UHJvY2Vzc29yTmFtZShzeXNJbmZvLmdldFByb2NOYW1lKCkpOw0KLQkJCWJlbmNobWFyay5zZXRQcm9jZXNzb3JEZXNjcmlwdGlvbihzeXNJbmZvLmdldFByb2NEZXNjcmlwdGlvbigpKTsNCi0JCQliZW5jaG1hcmsuc2V0UHJvY2Vzc29yQ291bnQoc3lzSW5mby5nZXRuUHJvY2Vzc29ycygpKTsNCi0JCQliZW5jaG1hcmsuc2V0UHJvY2Vzc29yQ2FjaGVTaXplKHN5c0luZm8uZ2V0UHJvY0NhY2hlU2l6ZSgpKTsNCi0JCQliZW5jaG1hcmsuc2V0U3lzdGVtTWVtb3J5KHN5c0luZm8uZ2V0TWVtb3J5KCkpOw0KLQkJCWJlbmNobWFyay5zZXRPc05hbWUoc3lzSW5mby5nZXRPc05hbWUoKSk7DQotCQkJYmVuY2htYXJrLnNldE9zVmVyc2lvbihzeXNJbmZvLmdldE9zVmVyc2lvbigpKTsNCi0JCQliZW5jaG1hcmsuc2V0T3NBcmNoaXRlY3R1cmUoc3lzSW5mby5nZXRBcmNoKCkpOw0KLQkJfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgew0KLQkJCU1vRGlzY29Mb2dnZXIubG9nRXJyb3IoZSwNCi0JCQkJCSJDb3VsZCBub3QgZ2V0IHN5c3RlbSBpbmZvcm1hdGlvbiBmb3IgYmVuY2htYXJrIiwgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUuaW50ZXJuYWwuQWN0aXZhdG9yLmdldERlZmF1bHQoKSk7IC8vJE5PTi1OTFMtMSQNCi0JCX0NCi0JCXJldHVybiBiZW5jaG1hcms7DQotCX0NCi0NCi0JLyoqDQotCSAqIEluaXRpYWxpemUgdGhlIGRpc2NvdmVyeSBtb2RlbCBlbGVtZW50IGJlZm9yZSBsYXVuY2hpbiB0aGUgYXNzb2NpYXRlZCBkaXNjb3ZlcmVyDQotCSAqIEBwYXJhbSBwcm9qIHRoZSBtb2RlbCBlbGVtZW50IGZvciBwcm9qZWN0IHRoYXQgd2lsbCBiZSBkaXNjb3ZlcmVkDQotCSAqIEBwYXJhbSBkaXNjbyB0aGUgbW9kZWwgZWxlbWVudCB0byBpbml0aWFsaXplDQotCSAqIEBwYXJhbSBkaXNjb1QgdGhlIG1vZGVsIGVsZW1lbnQgcmVwcmVzZW50aW5nIHRoZSBpbmZvcm1hdGlvbiBjb25jZXJuaW5nIHRoZSBkaXNjb3ZlcnkgaW4gdGhlIGxhdW5jaCBjb25maWd1cmF0aW9uDQotCSAqIEBwYXJhbSBkaXNjb3ZlcmVyIHRoZSByZWFsIGRpc2NvdmVyZXIge0BsaW5rIEFic3RyYWN0TW9kZWxEaXNjb3ZlcmVyfQ0KLQkgKiBAcGFyYW0gZGlzY292ZXJlcklkIHRoZSBkaXNjb3ZlcmVyIGlkDQotCSAqLw0KLQlwcml2YXRlIHZvaWQgcHJlRGlzY292ZXJ5RGlzY29Jbml0KGZpbmFsIFByb2plY3QgcHJvaiwgZmluYWwgRGlzY292ZXJ5IGRpc2NvLCBmaW5hbCBEaXNjb3ZlcnkgZGlzY29ULCBmaW5hbCBBYnN0cmFjdE1vZGVsRGlzY292ZXJlcjxJUHJvamVjdD4gZGlzY292ZXJlciwgZmluYWwgU3RyaW5nIGRpc2NvdmVyZXJJZCkgew0KLQkJZGlzY28uc2V0UHJvamVjdChwcm9qKTsNCi0JCWRpc2NvLnNldE5hbWUoZGlzY292ZXJlci50b1N0cmluZygpKTsNCi0JCWRpc2NvLnNldERpc2NvdmVyZXJDbGFzc05hbWUoZGlzY292ZXJlci5nZXRDbGFzcygpLmdldE5hbWUoKSk7DQotCQlkaXNjby5zZXREaXNjb3ZlcmVySWQoZGlzY292ZXJlcklkKTsNCi0JCURpc2NvdmVyZXJEZXNjcmlwdGlvbiBkZCA9IENhdGFsb2dGYWN0b3J5LmVJTlNUQU5DRS5jcmVhdGVEaXNjb3ZlcmVyRGVzY3JpcHRpb24oKTsJCQ0KLQkJaWYgKGRpc2NvVC5nZXREaXNjb3ZlcmVyTGF1bmNoQ29uZmlndXJhdGlvbigpICE9IG51bGwpIHsNCi0JCQlMYXVuY2hDb25maWd1cmF0aW9uIGxjID0gTGF1bmNoRmFjdG9yeS5lSU5TVEFOQ0UuY3JlYXRlTGF1bmNoQ29uZmlndXJhdGlvbigpOw0KLQkJCWxjLnNldFNvdXJjZShwcm9qLmdldE5hbWUoKSk7DQotCQkJbGMuc2V0RGlzY292ZXJlcihkZCk7DQotCQkJbGMuc2V0T3Blbk1vZGVsQWZ0ZXJEaXNjb3ZlcnkoZGlzY29ULmdldERpc2NvdmVyZXJMYXVuY2hDb25maWd1cmF0aW9uKCkuaXNPcGVuTW9kZWxBZnRlckRpc2NvdmVyeSgpKTsNCi0JCQlmb3IgKFBhcmFtZXRlclZhbHVlIHB2IDogZGlzY29ULmdldERpc2NvdmVyZXJMYXVuY2hDb25maWd1cmF0aW9uKCkuZ2V0UGFyYW1ldGVyVmFsdWVzKCkpIHsNCi0JCQkJUGFyYW1ldGVyVmFsdWUgbmV3UHYgPSBMYXVuY2hGYWN0b3J5LmVJTlNUQU5DRS5jcmVhdGVQYXJhbWV0ZXJWYWx1ZSgpOw0KLQkJCQluZXdQdi5zZXRWYWx1ZShwdi5nZXRWYWx1ZSgpKTsNCi0NCi0JCQkJRGlzY292ZXJlclBhcmFtZXRlciBwYXJhbSA9IENhdGFsb2dGYWN0b3J5LmVJTlNUQU5DRS5jcmVhdGVEaXNjb3ZlcmVyUGFyYW1ldGVyKCk7DQotCQkJCXBhcmFtLnNldERlc2NyaXB0aW9uKHB2LmdldFBhcmFtZXRlcigpLmdldERlc2NyaXB0aW9uKCkpOw0KLQkJCQlwYXJhbS5zZXREaXJlY3Rpb24ocHYuZ2V0UGFyYW1ldGVyKCkuZ2V0RGlyZWN0aW9uKCkpOw0KLQkJCQlwYXJhbS5zZXREaXNjb3ZlcmVyKGRkKTsNCi0JCQkJcGFyYW0uc2V0RmllbGQocHYuZ2V0UGFyYW1ldGVyKCkuZ2V0RmllbGQoKSk7DQotCQkJCXBhcmFtLnNldEdldHRlcihwdi5nZXRQYXJhbWV0ZXIoKS5nZXRHZXR0ZXIoKSk7DQotCQkJCXBhcmFtLnNldElkKHB2LmdldFBhcmFtZXRlcigpLmdldElkKCkpOw0KLQkJCQlwYXJhbS5zZXRJbml0aWFsaXplcihwdi5nZXRQYXJhbWV0ZXIoKS5nZXRJbml0aWFsaXplcigpKTsNCi0JCQkJcGFyYW0uc2V0UmVxdWlyZWRJbnB1dChwdi5nZXRQYXJhbWV0ZXIoKS5pc1JlcXVpcmVkSW5wdXQoKSk7DQotCQkJCXBhcmFtLnNldFNldHRlcihwdi5nZXRQYXJhbWV0ZXIoKS5nZXRTZXR0ZXIoKSk7DQotCQkJCXBhcmFtLnNldFR5cGUocHYuZ2V0UGFyYW1ldGVyKCkuZ2V0VHlwZSgpKTsNCi0NCi0JCQkJbmV3UHYuc2V0UGFyYW1ldGVyKHBhcmFtKTsNCi0JCQkJbGMuZ2V0UGFyYW1ldGVyVmFsdWVzKCkuYWRkKG5ld1B2KTsNCi0JCQl9DQotCQkJZGlzY28uc2V0RGlzY292ZXJlckxhdW5jaENvbmZpZ3VyYXRpb24obGMpOw0KLQkJfQ0KLQkJaWYgKGRpc2NvVC5nZXRDb3B5T2ZEaXNjb3ZlcmVyRGVzY3JpcHRpb24oKSA9PSBudWxsKSB7DQotCQkJZGQuc2V0SWQoZGlzY28uZ2V0RGlzY292ZXJlcklkKCkpOw0KLQkJCWRkLnNldFNvdXJjZVR5cGUocHJvai5nZXRDbGFzcygpKTsNCi0JCQlkZC5zZXRJbXBsZW1lbnRhdGlvblR5cGUoZGlzY292ZXJlci5nZXRDbGFzcygpKTsNCi0JCX0gZWxzZSB7DQotCQkJZGQuc2V0SWQoZGlzY29ULmdldENvcHlPZkRpc2NvdmVyZXJEZXNjcmlwdGlvbigpLmdldElkKCkpOw0KLQkJCWRkLnNldEltcGxlbWVudGF0aW9uQnVuZGxlKGRpc2NvVC5nZXRDb3B5T2ZEaXNjb3ZlcmVyRGVzY3JpcHRpb24oKS5nZXRJbXBsZW1lbnRhdGlvbkJ1bmRsZSgpKTsNCi0JCQlkZC5zZXRJbXBsZW1lbnRhdGlvblR5cGUoZGlzY29ULmdldENvcHlPZkRpc2NvdmVyZXJEZXNjcmlwdGlvbigpLmdldEltcGxlbWVudGF0aW9uVHlwZSgpKTsNCi0JCQlkZC5zZXRTb3VyY2VUeXBlKGRpc2NvVC5nZXRDb3B5T2ZEaXNjb3ZlcmVyRGVzY3JpcHRpb24oKS5nZXRTb3VyY2VUeXBlKCkpOw0KLQkJfQ0KLQkJZGlzY28uc2V0Q29weU9mRGlzY292ZXJlckRlc2NyaXB0aW9uKGRkKTsNCi0JfQ0KLQ0KLQkvKioNCi0JICogRmluYWxpemF0aW9uIG9mIHRoZSBpbml0aWFsaXphdGlvbiBvZiB0aGUgZGlzY292ZXJ5IG1vZGVsIGVsZW1lbnQgYWZ0ZXIgdGhlIGVmZmVjdGl2ZSBkaXNjb3ZlcnkNCi0JICogQHBhcmFtIGRpc2NvDQotCSAqIEBwYXJhbSBkaXNjb3ZlcmVyDQotCSAqLw0KLQlwcml2YXRlIHZvaWQgcG9zdERpc2NvdmVyeURpc2NvSW5pdChmaW5hbCBEaXNjb3ZlcnkgZGlzY28sIGZpbmFsIEFic3RyYWN0TW9kZWxEaXNjb3ZlcmVyPElQcm9qZWN0PiBkaXNjb3ZlcmVyKSB7DQotCQlkb3VibGUgdG90YWxEaXNjb3ZlcnlUaW1lID0gMDsNCi0JCWRvdWJsZSB0b3RhbFNhdmVUaW1lID0gMDsNCi0JCWlmICh0aGlzLml0ZXJhdGlvbnMgPiAwKSB7DQotCQkJZG91YmxlIG1heERpc2NvID0gMDsNCi0JCQlkb3VibGUgbWF4U2F2ZSA9IDA7DQotCQkJZG91YmxlIG1pbkRpc2NvID0gZGlzY28uZ2V0SXRlcmF0aW9ucygpLmdldCgwKS5nZXREaXNjb3ZlcnlUaW1lSW5TZWNvbmRzKCk7DQotCQkJZG91YmxlIG1pblNhdmUgPSBkaXNjby5nZXRJdGVyYXRpb25zKCkuZ2V0KDApLmdldFNhdmVUaW1lSW5TZWNvbmRzKCk7DQotCQkJZm9yIChEaXNjb3ZlcnlJdGVyYXRpb24gaXRlciA6IGRpc2NvLmdldEl0ZXJhdGlvbnMoKSkgew0KLQkJCQl0b3RhbFNhdmVUaW1lICs9IGl0ZXIuZ2V0U2F2ZVRpbWVJblNlY29uZHMoKTsNCi0JCQkJdG90YWxEaXNjb3ZlcnlUaW1lICs9IGl0ZXIuZ2V0RGlzY292ZXJ5VGltZUluU2Vjb25kcygpOw0KLQkJCQlpZiAoaXRlci5nZXREaXNjb3ZlcnlUaW1lSW5TZWNvbmRzKCkgPiBtYXhEaXNjbykgew0KLQkJCQkJbWF4RGlzY28gPSBpdGVyLmdldERpc2NvdmVyeVRpbWVJblNlY29uZHMoKTsNCi0JCQkJfQ0KLQkJCQlpZiAoaXRlci5nZXRTYXZlVGltZUluU2Vjb25kcygpID4gbWF4U2F2ZSkgew0KLQkJCQkJbWF4U2F2ZSA9IGl0ZXIuZ2V0U2F2ZVRpbWVJblNlY29uZHMoKTsNCi0JCQkJfQ0KLQkJCQlpZiAoaXRlci5nZXREaXNjb3ZlcnlUaW1lSW5TZWNvbmRzKCkgPCBtaW5EaXNjbykgew0KLQkJCQkJbWluRGlzY28gPSBpdGVyLmdldERpc2NvdmVyeVRpbWVJblNlY29uZHMoKTsNCi0JCQkJfQ0KLQkJCQlpZiAoaXRlci5nZXRTYXZlVGltZUluU2Vjb25kcygpIDwgbWluU2F2ZSkgew0KLQkJCQkJbWluU2F2ZSA9IGl0ZXIuZ2V0U2F2ZVRpbWVJblNlY29uZHMoKTsNCi0JCQkJfQ0KLQkJCX0NCi0JCQlkaXNjby5zZXREaXNjb3ZlcnlUaW1lQXZlcmFnZUluU2Vjb25kcyh0b3RhbERpc2NvdmVyeVRpbWUgLyB0aGlzLml0ZXJhdGlvbnMpOw0KLQkJCWRpc2NvLnNldFNhdmVUaW1lQXZlcmFnZUluU2Vjb25kcyh0b3RhbFNhdmVUaW1lIC8gdGhpcy5pdGVyYXRpb25zKTsNCi0JCQlkaXNjby5zZXRFeGVjdXRpb25UaW1lU3RhbmRhcmREZXZpYXRpb24obWF4RGlzY28gLSBtaW5EaXNjbyk7DQotCQkJZGlzY28uc2V0U2F2ZVRpbWVTdGFuZGFyZERldmlhdGlvbihtYXhTYXZlIC0gbWluU2F2ZSk7DQotDQotCQkJZGlzY28uc2V0TnVtYmVyT2ZNb2RlbEVsZW1lbnRzKGNvbXB1dGVTaXplKGRpc2NvdmVyZXIuZ2V0VGFyZ2V0TW9kZWwoKSkpOw0KLQ0KLQkJCUlGaWxlU3RvcmUgZmlsZVN0b3JlOw0KLQkJCXRyeSB7DQotCQkJCVVSSSB0YXJnZXRVUkkgPSBkaXNjb3ZlcmVyLmdldFRhcmdldFVSSSgpOw0KLQkJCQlTdHJpbmcgbG9jYXRpb25TdHJpbmcgPSAiZmlsZTovLyIgKyBSZXNvdXJjZXNQbHVnaW4uZ2V0V29ya3NwYWNlKCkuZ2V0Um9vdCgpLmdldExvY2F0aW9uKCkudG9TdHJpbmcoKSArIHRhcmdldFVSSS50b1N0cmluZygpOw0KLQkJCQlqYXZhLm5ldC5VUkkgdXJpID0gamF2YS5uZXQuVVJJLmNyZWF0ZShsb2NhdGlvblN0cmluZyk7DQotCQkJCWZpbGVTdG9yZSA9IEVGUy5nZXRTdG9yZSh1cmkpOw0KLQkJCQlkaXNjby5zZXRYbWlTaXplSW5CeXRlcyhmaWxlU3RvcmUuZmV0Y2hJbmZvKCkuZ2V0TGVuZ3RoKCkpOw0KLQkJCX0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7DQotCQkJCU1vRGlzY29Mb2dnZXIubG9nRXJyb3IoZSwNCi0JCQkJCQkiQ291bGQgbm90IGdldCBvdXRwdXQgbW9kZWwgc2l6ZS4iLCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS5pbnRlcm5hbC5BY3RpdmF0b3IuZ2V0RGVmYXVsdCgpKTsgLy8kTk9OLU5MUy0xJA0KLQkJCX0NCi0NCi0JCX0NCi0JfQ0KLQ0KLQkvKioNCi0JICogSW5pdGlhbGl6ZSBhIHtAbGluayBEaXNjb3ZlcnlJdGVyYXRpb259IGFmdGVyIHRoZSBkaXNjb3ZlcnkgdXNpbmcgdGhlIGV2ZW50IGFuZCBtZW1vcnkgcmVjb3JkZXINCi0JICogQHBhcmFtIHJlYyB7QGxpbmsgRXZlbnRBbmRNZW1vcnlSZWNvcmRlcn0NCi0JICogQHJldHVybiB0aGUgaW5pdGlhbGl6ZWQgZGlzY292ZXJ5IGl0ZXJhdGlvbg0KLQkgKi8NCi0JcHJpdmF0ZSBEaXNjb3ZlcnlJdGVyYXRpb24gY3JlYXRlRGlzY292ZXJ5SXRlcmF0aW9uKGZpbmFsIEV2ZW50QW5kTWVtb3J5UmVjb3JkZXIgcmVjKSB7DQotCQlEaXNjb3ZlcnlJdGVyYXRpb24gZGlzY29JdGVyID0gQmVuY2htYXJrRmFjdG9yeS5lSU5TVEFOQ0UuY3JlYXRlRGlzY292ZXJ5SXRlcmF0aW9uKCk7DQotCQlkaXNjb0l0ZXIuc2V0RGlzY292ZXJ5RGF0ZShuZXcgRGF0ZSgpKTsNCi0JCWRpc2NvSXRlci5zZXRNYXhVc2VkTWVtb3J5SW5CeXRlcyhyZWMuZ2V0TWF4TWVtb3J5VXNlZCgpKTsNCi0JCWRpc2NvSXRlci5nZXRFdmVudHMoKS5hZGRBbGwocmVjLmdldEV2ZW50cygpKTsNCi0JCWRpc2NvSXRlci5zZXREaXNjb3ZlcnlUaW1lSW5TZWNvbmRzKChyZWMuZ2V0U3RvcFRpbWUoKSAtIHJlYy5nZXRTdGFydFRpbWUoKSkgLyBNU0lOU0VDKTsNCi0JCWZvciAoRXZlbnQgZXZlbnQgOiByZWMuZ2V0RXZlbnRzKCkpIHsNCi0JCQlpZiAoZXZlbnQgaW5zdGFuY2VvZiBFbmRFdmVudCkgew0KLQkJCQlpZiAoZXZlbnQuZ2V0RXZlbnRUeXBlKCkuZ2V0TmFtZSgpLmVxdWFscyhTQVZFX09QRVJBVElPTikpIHsNCi0JCQkJCWRvdWJsZSBzYXZlVGltZSA9IGV2ZW50LmdldFRpbWUoKSAtICgoRW5kRXZlbnQpIGV2ZW50KS5nZXRCZWdpbm5pbmcoKS5nZXRUaW1lKCk7DQotCQkJCQlkaXNjb0l0ZXIuc2V0U2F2ZVRpbWVJblNlY29uZHMoc2F2ZVRpbWUgLyBNU0lOU0VDKTsNCi0JCQkJCWRpc2NvSXRlci5zZXREaXNjb3ZlcnlUaW1lSW5TZWNvbmRzKGRpc2NvSXRlci5nZXREaXNjb3ZlcnlUaW1lSW5TZWNvbmRzKCkgLSBkaXNjb0l0ZXIuZ2V0U2F2ZVRpbWVJblNlY29uZHMoKSk7DQotCQkJCX0NCi0JCQl9DQotCQl9DQotCQlkaXNjb0l0ZXIuZ2V0TWVtb3J5TWVhc3VyZW1lbnRzKCkuYWRkQWxsKHJlYy5nZXRNZW1vcnlNZWFzdXJlbWVudHMoKSk7CQkJDQotCQlyZXR1cm4gZGlzY29JdGVyOw0KLQl9DQotDQotCS8qKg0KLQkgKiBDcmVhdGUgdGhlIG1vZGVsIGVsZW1lbnRzIGZvciB0aGUgcHJvamVjdHMgYW5kIGNvbmFpdG5lZCBmaWxlcyB0byBkaXNjb3Zlcg0KLQkgKiBAcGFyYW0gcHJvamVjdCB0aGUgcmVhbCBwcm9qZWN0IHtAbGluayBJUHJvamVjdH0NCi0JICogQHJldHVybiB0aGUgcHJvamVjdCBtb2RlbCBlbGVtZW50IHtAbGluayBQcm9qZWN0fQ0KLQkgKi8NCi0JcHJpdmF0ZSBQcm9qZWN0IGNyZWF0ZUJlbmNobWFya1Byb2plY3RBbmRGaWxlcyhmaW5hbCBJUHJvamVjdCBwcm9qZWN0KSB7DQotCQlQcm9qZWN0IHByb2ogPSBCZW5jaG1hcmtGYWN0b3J5LmVJTlNUQU5DRS5jcmVhdGVQcm9qZWN0KCk7DQotCQlwcm9qLnNldE5hbWUocHJvamVjdC5nZXROYW1lKCkpOw0KLQkJdHJ5IHsNCi0JCQlmb3IgKElSZXNvdXJjZSByZXMgOiBwcm9qZWN0Lm1lbWJlcnMoKSkgew0KLQkJCQlpZiAocmVzIGluc3RhbmNlb2YgSUZvbGRlcikgew0KLQkJCQkJcHJvai5nZXRGaWxlcygpLmFkZEFsbChjcmVhdGVGaWxlcygoSUZvbGRlcikgcmVzLCBuZXcgTGlua2VkTGlzdDxGaWxlPigpKSk7DQotCQkJCX0gZWxzZSB7DQotCQkJCQlpZiAocmVzIGluc3RhbmNlb2YgSUZpbGUpIHsNCi0JCQkJCQlGaWxlIGYgPSBjcmVhdGVGaWxlKHJlcyk7DQotCQkJCQkJcHJvai5nZXRGaWxlcygpLmFkZChmKTsNCi0JCQkJCX0NCi0JCQkJfQ0KLQkJCX0NCi0JCQlpZiAocHJvai5nZXRGaWxlcygpLmlzRW1wdHkoKSkgew0KLQkJCQlwcm9qLnNldEF2ZXJhZ2VGaWxlU2l6ZUluQnl0ZXMoMCk7DQotCQkJCXByb2ouc2V0VG90YWxTaXplSW5CeXRlcygwKTsNCi0JCQkJcHJvai5zZXRBdmVyYWdlTGluZXNQZXJGaWxlKDApOw0KLQkJCQlwcm9qLnNldFRvdGFsTGluZXMoMCk7DQotCQkJfSBlbHNlIHsNCi0JCQkJbG9uZyB0b3RhbExpbmVTaXplID0gMDsNCi0JCQkJbG9uZyB0b3RhbEJ5dGVTaXplID0gMDsNCi0JCQkJZm9yIChGaWxlIGYgOiBwcm9qLmdldEZpbGVzKCkpIHsNCi0JCQkJCXRvdGFsTGluZVNpemUgKz0gZi5nZXRMaW5lcygpOw0KLQkJCQkJdG90YWxCeXRlU2l6ZSArPSBmLmdldFNpemVJbkJ5dGVzKCk7DQotCQkJCX0NCi0JCQkJcHJvai5zZXRBdmVyYWdlRmlsZVNpemVJbkJ5dGVzKHRvdGFsQnl0ZVNpemUgLyBwcm9qLmdldEZpbGVzKCkuc2l6ZSgpKTsNCi0JCQkJcHJvai5zZXRUb3RhbFNpemVJbkJ5dGVzKHRvdGFsQnl0ZVNpemUpOw0KLQkJCQlwcm9qLnNldEF2ZXJhZ2VMaW5lc1BlckZpbGUodG90YWxMaW5lU2l6ZSAvIGdldE51bWJlck9mU291cmNlQ29kZUZpbGVzKHByb2opKTsNCi0JCQkJcHJvai5zZXRUb3RhbExpbmVzKHRvdGFsTGluZVNpemUpOw0KLQkJCX0NCi0JCX0gY2F0Y2ggKENvcmVFeGNlcHRpb24gZSkgew0KLQkJCU1vRGlzY29Mb2dnZXIubG9nRXJyb3IoZSwNCi0JCQkJCSJDb3VsZCBub3QgZ2V0IG1lbWJlcnMgb2YgcHJvamVjdCIsIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlLmludGVybmFsLkFjdGl2YXRvci5nZXREZWZhdWx0KCkpOyAvLyROT04tTkxTLTEkDQotCQl9DQotCQlyZXR1cm4gcHJvajsNCi0JfQ0KLQ0KLQkvKioNCi0JICogQ291bnQgdGhlIG51bWJlciBvZiBsaW5lcyBpcyBzb3VyY2UgZmlsZXMuDQotCSAqIFRoZSBzb3VyY2UgZmlsZXMgYXJlIGlkZW50aWZpZWQgYXMgaGF2aW5nIHRoZSB2YWx1ZSBvZiB0aGUgQ09ERV9FWFRFTlNJT04gY29uc3RhbnQgYXMgZXh0ZW5zaW9uDQotCSAqIEBwYXJhbSBwcm9qIHRoZSBwcm9qZWN0IHRvIGNvbXB1dGUgdGhlIG51bWJlciBvZiBsaW5lcw0KLQkgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgbGluZXMNCi0JICovDQotCXByaXZhdGUgbG9uZyBnZXROdW1iZXJPZlNvdXJjZUNvZGVGaWxlcyhmaW5hbCBQcm9qZWN0IHByb2opIHsNCi0JCWludCBudW1iZXIgPSAwOw0KLQkJZm9yIChGaWxlIGZpbGUgOiBwcm9qLmdldEZpbGVzKCkpIHsNCi0JCQkvL29ubHkgZmlsZXMgaGF2aW5nIENPREVfRVhURU5TSU9OIGFzIGV4dGVuc2lvbiBhcmUgbWVhc3VyZWQNCi0JCQlpZiAoZmlsZS5nZXRMaW5lcygpID09IDApIHsNCi0JCQkJbnVtYmVyKys7DQotCQkJfQ0KLQkJfQ0KLQkJcmV0dXJuIG51bWJlcjsNCi0JfQ0KLQ0KLQkvKioNCi0JICogSW5pdGlhbGl6ZSB0aGUgZmlsZXMgbW9kZWwgZWxlbWVudHMge0BsaW5rIEZpbGV9IGNvbnRhaW5lZCBpbiBhIGZvbGRlciB7QGxpbmsgSUZvbGRlcn0gdG8gZGlzY292ZXIuDQotCSAqIFJlY3Vyc2l2ZSBtZXRob2QsIHNob3VsZCBiZSBjYWxsZWQgaW5pdGlhbGx5IG9uIHRoZSBwcm9qZWN0IHRvIGRpc2NvdmVyDQotCSAqIEBwYXJhbSBmb2xkZXIgDQotCSAqIEBwYXJhbSBmaWxlcw0KLQkgKiBAcmV0dXJuIHRoZSBsaXN0IG9mIGluaXRpYWxpemVkIGZpbGVzIHtAbGluayBGaWxlfQ0KLQkgKiBAdGhyb3dzIENvcmVFeGNlcHRpb24NCi0JICovDQotCXByaXZhdGUgTGlzdDxGaWxlPiBjcmVhdGVGaWxlcyhmaW5hbCBJRm9sZGVyIGZvbGRlciwgZmluYWwgTGlzdDxGaWxlPiBmaWxlcykgdGhyb3dzIENvcmVFeGNlcHRpb24gew0KLQkJZm9yIChJUmVzb3VyY2UgcmVzIDogZm9sZGVyLm1lbWJlcnMoKSkgew0KLQkJCWlmIChyZXMgaW5zdGFuY2VvZiBJRm9sZGVyKSB7DQotCQkJCWZpbGVzLmFkZEFsbChjcmVhdGVGaWxlcygoSUZvbGRlcikgcmVzLCBuZXcgTGlua2VkTGlzdDxGaWxlPigpKSk7DQotCQkJfSBlbHNlIHsNCi0JCQkJaWYgKHJlcyBpbnN0YW5jZW9mIElGaWxlKSB7DQotCQkJCQlGaWxlIGYgPSBjcmVhdGVGaWxlKHJlcyk7DQotCQkJCQlmaWxlcy5hZGQoZik7DQotCQkJCX0NCi0JCQl9DQotCQl9DQotCQlyZXR1cm4gZmlsZXM7DQotCX0NCi0NCi0JLyoqDQotCSAqIEluaXRpYWxpemUgYSBmaWxlIG1vZGVsIGVsZW1lbnQge0BsaW5rIEZpbGV9IGZyb20gYW4gZWNsaXBzZSByZXNvdXJjZSB7QGxpbmsgSVJlc291cmNlfQ0KLQkgKiBAcGFyYW0gcmVzIHRoZSByZXNvdXJjZQ0KLQkgKiBAcmV0dXJuIHRoZSBpbml0aWFsaXplZCBmaWxlDQotCSAqIEB0aHJvd3MgQ29yZUV4Y2VwdGlvbg0KLQkgKi8NCi0JcHJpdmF0ZSBGaWxlIGNyZWF0ZUZpbGUoZmluYWwgSVJlc291cmNlIHJlcykgdGhyb3dzIENvcmVFeGNlcHRpb24gew0KLQkJSUZpbGVTdG9yZSBmaWxlU3RvcmUgPSBFRlMuZ2V0U3RvcmUocmVzLmdldExvY2F0aW9uVVJJKCkpOw0KLQkJRmlsZSBmID0gQmVuY2htYXJrRmFjdG9yeS5lSU5TVEFOQ0UuY3JlYXRlRmlsZSgpOw0KLQkJZi5zZXRTaXplSW5CeXRlcyhmaWxlU3RvcmUuZmV0Y2hJbmZvKCkuZ2V0TGVuZ3RoKCkpOw0KLQkJZi5zZXRGaWxlcGF0aChyZXMuZ2V0RnVsbFBhdGgoKS50b1N0cmluZygpKTsNCi0JCWYuc2V0TGluZXMoZ2V0TGluZU51bWJlcihyZXMpKTsNCi0JCXJldHVybiBmOw0KLQl9DQotDQotCS8qKg0KLQkgKiBDb21wdXRlIHRoZSBudW1iZXIgb2YgbGluZXMgaW4gYSBmaWxlIGhhdmluZyBhcyBleHRlbnNpb24gdGhlIHZhbHVlIG9mIHRoZSBDT0RFX0VYVEVOU0lPTiBjb25zdGFudC4NCi0JICogQHBhcmFtIHJlcyB0aGUgZmlsZSB0byBjb21wdXRlIHRoZSBudW1iZXIgb2YgbGluZXMNCi0JICogQHJldHVybiB0aGUgbnVtYmVyIG9mIGxpbmUgaWYgc291cmNlIGZpbGUgMCBvdGhlcndpc2UNCi0JICovDQotCXByaXZhdGUgbG9uZyBnZXRMaW5lTnVtYmVyKGZpbmFsIElSZXNvdXJjZSByZXMpIHsNCi0JCWludCBsaW5lcyA9IDA7DQotCQlpZiAocmVzID09IG51bGwpIHsNCi0JCQlNb0Rpc2NvTG9nZ2VyLmxvZ1dhcm5pbmcoIlVuYWJsZSB0byBjb21wdXRlIHRoZSBudW1iZXIgb2YgbGluZXMgb2YgYW4gdW5leGlzdGluZyBmaWxlIiwgQWN0aXZhdG9yLmdldERlZmF1bHQoKSk7DQotCQl9IGVsc2Ugew0KLQkJCWlmIChyZXMuZ2V0RmlsZUV4dGVuc2lvbigpICE9IG51bGwpIHsNCi0JCQkJaWYgKHJlcy5nZXRGaWxlRXh0ZW5zaW9uKCkuZW5kc1dpdGgoQ09ERV9FWFRFTlNJT04pKSB7DQotCQkJCQl0cnkgew0KLQkJCQkJCWphdmEuaW8uRmlsZSBmID0gbmV3IGphdmEuaW8uRmlsZShSZXNvdXJjZXNQbHVnaW4uZ2V0V29ya3NwYWNlKCkuZ2V0Um9vdCgpLmdldExvY2F0aW9uKCkudG9TdHJpbmcoKSArIHJlcy5nZXRGdWxsUGF0aCgpLnRvU3RyaW5nKCkpOw0KLQkJCQkJCUJ1ZmZlcmVkUmVhZGVyIGJyID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKG5ldyBGaWxlUmVhZGVyKGYpKTsNCi0JCQkJCQlmb3IgKGxpbmVzID0gMDsgYnIucmVhZExpbmUoKSAhPSBudWxsOyBsaW5lcysrKTsNCi0JCQkJCQlici5jbG9zZSgpOw0KLQkJCQkJfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgew0KLQkJCQkJCU1vRGlzY29Mb2dnZXIubG9nV2FybmluZyhlLCAidW5hYmxlIHRvIGNvdW50IHRoZSBudW1iZXIgb2YgbGluZXMgb2YgIiArIHJlcy5nZXROYW1lKCksIEFjdGl2YXRvci5nZXREZWZhdWx0KCkpOyANCi0JCQkJCX0gY2F0Y2ggKE51bGxQb2ludGVyRXhjZXB0aW9uIGUpIHsNCi0JCQkJCQlNb0Rpc2NvTG9nZ2VyLmxvZ1dhcm5pbmcoZSwgInVuYWJsZSB0byBjb3VudCB0aGUgbnVtYmVyIG9mIGxpbmVzIG9mICIgKyByZXMuZ2V0TmFtZSgpLCBBY3RpdmF0b3IuZ2V0RGVmYXVsdCgpKTsNCi0JCQkJCX0NCi0JCQkJfQ0KLQkJCX0NCi0JCX0NCi0JCXJldHVybiBsaW5lczsNCi0JfQ0KLQ0KLQkvKioNCi0JICogQHNlZSBBYnN0cmFjdE1vZGVsRGlzY292ZXJlciNpc0FwcGxpY2FibGVUbyhPYmplY3QpDQotCSAqLw0KLQlwdWJsaWMgYm9vbGVhbiBpc0FwcGxpY2FibGVUbyhmaW5hbCBJUHJvamVjdFNldCBzb3VyY2VzKSB7DQotCQlib29sZWFuIHJlc3VsdCA9IHRydWU7DQotCQlmb3IgKElQcm9qZWN0IHNvdXJjZSA6IHNvdXJjZXMuZ2V0UHJvamVjdHMoKSkgew0KLQkJCXJlc3VsdCA9IHJlc3VsdCAmJiBzb3VyY2UuZ2V0UHJvamVjdCgpLmlzQWNjZXNzaWJsZSgpOw0KLQkJfQ0KLQkJcmV0dXJuIHJlc3VsdDsNCi0JfQ0KLQ0KLQkvKioNCi0JICogTGF1bmNoIHRoZSBkaXNjb3ZlcnkgYnkgY2FsbGluZyB7QGxpbmsgRGlzY292ZXJlckJlbmNobWFya0Rpc2NvdmVyZXIjZGlzY292ZXJCZW5jaG1hcmsoSVByb2plY3RTZXQsIElQcm9ncmVzc01vbml0b3IpfQ0KLQkgKiBAc2VlIEFic3RyYWN0TW9kZWxEaXNjb3ZlcmVyI2Rpc2NvdmVyRWxlbWVudChPYmplY3QsIElQcm9ncmVzc01vbml0b3IpDQotCSAqLw0KLQlAT3ZlcnJpZGUNCi0JcHJvdGVjdGVkIHZvaWQgYmFzaWNEaXNjb3ZlckVsZW1lbnQoZmluYWwgSVByb2plY3RTZXQgc291cmNlcywgZmluYWwgSVByb2dyZXNzTW9uaXRvciBtb25pdG9yKQ0KLQkJCXRocm93cyBEaXNjb3ZlcnlFeGNlcHRpb24gew0KLQkJdGhpcy5kaXNjb3ZlckJlbmNobWFyayhzb3VyY2VzLCBtb25pdG9yKTsNCi0JfQ0KLQ0KLQlwdWJsaWMgRXZlbnRBbmRNZW1vcnlSZWNvcmRlciBnZXRSZWNvcmRlcigpIHsNCi0JCXJldHVybiB0aGlzLnJlY29yZGVyOw0KLQl9DQotDQotDQotCXB1YmxpYyB2b2lkIHNldFJlY29yZGVycyhmaW5hbCBFdmVudEFuZE1lbW9yeVJlY29yZGVyIHJlYykgew0KLQkJdGhpcy5yZWNvcmRlciA9IHJlYzsNCi0JfQ0KLQ0KLQlwdWJsaWMgdm9pZCBzZXREaXNjb3ZlcmVySUQoZmluYWwgSURpc2NvdmVyZXJJRCBkaXNjb0lkKSB7DQotCQl0aGlzLmRpc2NvdmVyZXJJRCA9IGRpc2NvSWQ7DQotCX0NCi0NCi0JLyoqDQotCSAqIFNldHRlciBmb3IgdGhlIG51bWJlciBvZiBpdGVyYXRpb25zLCBhbm5vdGF0ZWQgd2l0aCBAUGFyYW1ldGVyIHNldCBieSB0aGUgVUkNCi0JICogQHBhcmFtIGl0IG51bWJlciBvZiBpdGVyYXRpb25zDQotCSAqLw0KLQlAUGFyYW1ldGVyKG5hbWUgPSAiTlVNQkVSX09GX0lURVJBVElPTlMiLCBkZXNjcmlwdGlvbiA9ICJUaGUgbnVtYmVyIG9mIGl0ZXJhdGlvbnMgdG8gZG8uIiwgcmVxdWlyZXNJbnB1dFZhbHVlID0gdHJ1ZSkNCi0JcHVibGljIHZvaWQgc2V0SXRlcmF0aW9ucyhmaW5hbCBpbnQgaXQpIHsNCi0JCXRoaXMuaXRlcmF0aW9ucyA9IGl0Ow0KLQl9DQotDQotCS8qKg0KLQkgKiBTZXR0ZXIgZm9yIG1lbW9yeSB1c2FnZSBtZWFzdXJlLCBhbm5vdGF0ZWQgd2l0aCBAUGFyYW1ldGVyIHNldCBieSB0aGUgVUkNCi0JICogQHBhcmFtIG1lYXN1cmUgdHJ1ZSBpZiB0aGUgbWVtb3J5IG5lZWQgdG8gYmUgbWVhc3VyZWQNCi0JICovDQotCUBQYXJhbWV0ZXIobmFtZSA9ICJNRUFTVVJFX01FTU9SWV9VU0FHRSIsIGRlc2NyaXB0aW9uID0gIlRlbGxzIGlmIHRoZSBtZW1vcnkgdXNhZ2Ugc2hvdWxkIGJlIG1lYXN1cmVkIG9yIG5vdC4iLCByZXF1aXJlc0lucHV0VmFsdWUgPSB0cnVlKQ0KLQlwdWJsaWMgdm9pZCBzZXRNZWFzdXJlTWVtb3J5VXNlKGZpbmFsIGJvb2xlYW4gbWVhc3VyZSkgew0KLQkJdGhpcy5tZWFzdXJlTWVtb3J5VXNlID0gbWVhc3VyZTsNCi0JCWlmICh0aGlzLm1lYXN1cmVNZW1vcnlVc2UpIHsgLy9wdXR0aW5nIGEgZGVmYXVsdCB2YWx1ZSBpbiBjYXNlIG9mIGJhZCBpbml0aWFsaXphdGlvbg0KLQkJCWlmICh0aGlzLm1lbW9yeVBvbGxpbmdJbnRlcnZhbCA9PSBaRVJPKSB7DQotCQkJCXRoaXMubWVtb3J5UG9sbGluZ0ludGVydmFsID0gSU5URVJWQUw7DQotCQkJfQ0KLQkJfQ0KLQl9DQotDQotCS8qKg0KLQkgKiBTZXR0ZXIgZm9yIHRoZSBtZW1vcnkgcG9sbGluZyBpbnRlcnZhbCwgYW5ub3RhdGVkIHdpdGggQFBhcmFtZXRlciBzZXQgYnkgdGhlIFVJDQotCSAqIEBwYXJhbSBtZW1vcnlJbnRlcnZhbCBtZW1vcnkgcG9sbGluZyBpbnRlcnZhbCBpbiBtaWxsaXNlY29uZHMNCi0JICovDQotCUBQYXJhbWV0ZXIobmFtZSA9ICJNRU1PUllfUE9MTElOR19JTlRFUlZBTCIsIGRlc2NyaXB0aW9uID0gIlRoZSB0aW1lIGludGVydmFsIGJldHdlZW4gdG8gbWVtb3J5IG1lYXN1cmVtZW50IChkZWZhdWx0IHZhbHVlIGlzIDEgc2VjKSIsIHJlcXVpcmVzSW5wdXRWYWx1ZSA9IGZhbHNlKQ0KLQlwdWJsaWMgdm9pZCBzZXRNZW1vcnlQb2xsaW5nSW50ZXJ2YWwoZmluYWwgaW50IG1lbW9yeUludGVydmFsKSB7DQotCQl0aGlzLm1lbW9yeVBvbGxpbmdJbnRlcnZhbCA9IG1lbW9yeUludGVydmFsOw0KLQl9DQotDQotCS8qKg0KLQkgKiBTZXR0ZXIgZm9yIHRoZSBnZW5lcmF0aW9uIG9mIGFuIEhUTUwgcmVwb3J0LCBhbm5vdGF0ZWQgd2l0aCBAUGFyYW1ldGVyIHNldCBieSB0aGUgVUkNCi0JICogQHBhcmFtIGdlbmVyYXRlIHRydWUgaWYgYW4gSFRNTCByZXBvcnQgaXMgd2FudGVkDQotCSAqLw0KLQlAUGFyYW1ldGVyKG5hbWUgPSAiR0VORVJBVEVfSFRNTF9SRVBPUlQiLCBkZXNjcmlwdGlvbiA9ICJUZWxscyBpZiBhIGh0bWwgcmVwb3J0IHNob3VsZCBiZSBnZW5lcmF0ZWQuIiwgcmVxdWlyZXNJbnB1dFZhbHVlID0gdHJ1ZSkNCi0JcHVibGljIHZvaWQgc2V0R2VuZXJhdGVIdG1sUmVwb3J0KGZpbmFsIGJvb2xlYW4gZ2VuZXJhdGUpIHsNCi0JCXRoaXMuZ2VuZXJhdGVIdG1sUmVwb3J0ID0gZ2VuZXJhdGU7DQotCX0NCi0NCi0JLyoqDQotCSAqIFNldHRlciBmb3IgdGhlIG91dHB1dCBtb2RlbCBVUkksIGFubm90YXRlZCBzZXQgYnkgdGhlIFVJDQotCSAqIEBwYXJhbSB0aGUgb3V0cHV0IG1vZGVsIFVSSQ0KLQkgKi8NCi0JcHVibGljIHZvaWQgc2V0VGFyZ2V0VVJJKGZpbmFsIG9yZy5lY2xpcHNlLmVtZi5jb21tb24udXRpbC5VUkkgdGFyZ2V0VVJJKSB7DQotCQlzdXBlci5zZXRUYXJnZXRVUkkodGFyZ2V0VVJJKTsNCi0JCXN1cGVyLnNldFRhcmdldE1vZGVsKHRoaXMuclNldC5jcmVhdGVSZXNvdXJjZSh0YXJnZXRVUkkpKTsNCi0JfQ0KLQ0KLQlAUGFyYW1ldGVyKG5hbWUgPSAiVEFSR0VUX1VSSSIpDQotCXB1YmxpYyBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLnV0aWwuVVJJIGdldFRhcmdldFVSSSgpIHsNCi0JCXJldHVybiBzdXBlci5nZXRUYXJnZXRVUkkoKTsNCi0JfQ0KLQ0KLQlwdWJsaWMgSURpc2NvdmVyZXJJRCBnZXREaXNjb3ZlcmVySUQoKSB7DQotCQlyZXR1cm4gdGhpcy5kaXNjb3ZlcmVySUQ7DQotCX0NCi0NCi0NCi0JcHVibGljIGludCBnZXRJdGVyYXRpb25zKCkgew0KLQkJcmV0dXJuIHRoaXMuaXRlcmF0aW9uczsNCi0JfQ0KLQ0KLQlwdWJsaWMgYm9vbGVhbiBpc01lYXN1cmVNZW1vcnlVc2UoKSB7DQotCQlyZXR1cm4gdGhpcy5tZWFzdXJlTWVtb3J5VXNlOw0KLQl9DQotDQotCXB1YmxpYyBpbnQgZ2V0TWVtb3J5UG9sbGluZ0ludGVydmFsKCkgew0KLQkJcmV0dXJuIHRoaXMubWVtb3J5UG9sbGluZ0ludGVydmFsOw0KLQl9DQotDQotCXB1YmxpYyBib29sZWFuIGlzR2VuZXJhdGVIdG1sUmVwb3J0KCkgew0KLQkJcmV0dXJuIHRoaXMuZ2VuZXJhdGVIdG1sUmVwb3J0Ow0KLQl9DQotDQotCS8qKg0KLQkgKiBAcmV0dXJuIHRoZSBodG1sUmVwb3J0TG9jYXRpb24NCi0JICovDQotCXB1YmxpYyBVUkkgZ2V0SHRtbFJlcG9ydExvY2F0aW9uKCkgew0KLQkJcmV0dXJuIHRoaXMuaHRtbFJlcG9ydExvY2F0aW9uOw0KLQl9DQotDQotCS8qKg0KLQkgKiBBbGxvdyB0aGUgc2VsZWN0aW9uIG9mIHRoZSBIVE1MIHJlcG9ydCBsb2NhdGlvbg0KLQkgKiBAcGFyYW0gaHRtbFJlcG9ydExvY2F0aW9uIHRoZSBodG1sUmVwb3J0TG9jYXRpb24gdG8gc2V0DQotCSAqLw0KLQlAUGFyYW1ldGVyKG5hbWUgPSAiSFRNTF9SRVBPUlRfTE9DQVRJT04iLCBkZXNjcmlwdGlvbiA9ICJUZWxscyB0aGUgbG9jYXRpb24gb2YgdGhlIEhUTUwgcmVwb3J0LCBzaG91bGQgYmUgc2V0IGlmIEdFTkVSQVRFX0hUTUxfUkVQT1JUIGlzIHRydWUiLCByZXF1aXJlc0lucHV0VmFsdWUgPSBmYWxzZSkNCi0JcHVibGljIHZvaWQgc2V0SHRtbFJlcG9ydExvY2F0aW9uKGZpbmFsIFVSSSBodG1sUmVwb3J0TG9jYXRpb25QYXJhbSkgew0KLQkJdGhpcy5odG1sUmVwb3J0TG9jYXRpb24gPSBodG1sUmVwb3J0TG9jYXRpb25QYXJhbTsNCi0JfQ0KLQ0KLX0NCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChjKSAyMDEyLCAyMDE1IElOUklBLCBhbmQgTWlhLVNvZnR3YXJlLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscworICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAorICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqCisgKiBDb250cmlidXRvcnM6CisgKiAgICBHdWlsbGF1bWUgRG91eCAoSU5SSUEpIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCisgKiAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgyNjcyIC0gQmVuY2htYXJrIGNvbW1hbmQgbGluZSBpbnRlcmZhY2UKKyAqICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODI4NTcgLSBEaXNjb3ZlcmVyIEJlbmNobWFyayBSZXBvcnQgOiB3cm9uZyBuYW1lc3BhY2VzCisgKiAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzMjkyIC0gW0JlbmNobWFya10gbG9uZyBtdXN0IGJlIHVzZWQgdG8gc3RvcmUgbWVtb3J5IHVzYWdlCisgKiAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzNDAwIC0gW0JlbmNobWFya10gVGhlIGlucHV0IHNpemUgc2hvdWxkIGJlIGNvbXB1dGFibGUgYnkgdGhlIGRpc2NvdmVyZXIKKyAqICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODM2MzkgLSBbQmVuY2htYXJrXSBJbmNvcnJlY3Qgc3RhbmRhcmQgZGVyaXZhdGlvbiBjb21wdXRhdGlvbgorICogICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4ODAyMCAtIGNvbXB1dGVTaXplIGJlbmNobWFyayBlcnJvciBtZXNzYWdlIG5vdCBwcmVjaXNlIGVub3VnaAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3BhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUuaW50ZXJuYWwuaW1wbDsKKworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRSZWFkZXI7CitpbXBvcnQgamF2YS5pby5GaWxlUmVhZGVyOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC5NZXRob2Q7CitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTGlua2VkTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworCitpbXBvcnQgb3JnLmVjbGlwc2UuY29yZS5maWxlc3lzdGVtLkVGUzsKK2ltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLmZpbGVzeXN0ZW0uSUZpbGVTdG9yZTsKK2ltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5JQ29udGFpbmVyOworaW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLklGaWxlOworaW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLklGb2xkZXI7CitpbXBvcnQgb3JnLmVjbGlwc2UuY29yZS5yZXNvdXJjZXMuSVByb2plY3Q7CitpbXBvcnQgb3JnLmVjbGlwc2UuY29yZS5yZXNvdXJjZXMuSVJlc291cmNlOworaW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLklXb3Jrc3BhY2U7CitpbXBvcnQgb3JnLmVjbGlwc2UuY29yZS5yZXNvdXJjZXMuSVdvcmtzcGFjZVJvb3Q7CitpbXBvcnQgb3JnLmVjbGlwc2UuY29yZS5yZXNvdXJjZXMuUmVzb3VyY2VzUGx1Z2luOworaW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZS5Db3JlRXhjZXB0aW9uOworaW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZS5JUGF0aDsKK2ltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUuSVByb2dyZXNzTW9uaXRvcjsKK2ltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUuTnVsbFByb2dyZXNzTW9uaXRvcjsKK2ltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUuUGF0aDsKK2ltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUuU3ViUHJvZ3Jlc3NNb25pdG9yOworaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24udXRpbC5UcmVlSXRlcmF0b3I7CitpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi51dGlsLlVSSTsKK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRU9iamVjdDsKK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUucmVzb3VyY2UuUmVzb3VyY2U7CitpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnJlc291cmNlLlJlc291cmNlLkZhY3RvcnkuUmVnaXN0cnk7CitpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnJlc291cmNlLlJlc291cmNlU2V0OworaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5yZXNvdXJjZS5pbXBsLlJlc291cmNlU2V0SW1wbDsKK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUueG1pLmltcGwuWE1JUmVzb3VyY2VGYWN0b3J5SW1wbDsKK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZmFjZXQudXRpbC5jb3JlLkxvZ2dlcjsKK2ltcG9ydCBvcmcuZWNsaXBzZS5qZHQuY29yZS5kb20uTW9kaWZpZXI7CitpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUuSVNpemVEaXNjb3ZlcmVyOworaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlLmludGVybmFsLkFjdGl2YXRvcjsKK2ltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS5pbnRlcm5hbC5NYXRoVXRpbHM7CitpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUuaW50ZXJuYWwuTWVzc2FnZXM7CitpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUuaW50ZXJuYWwuYXBpLklEaXNjb3ZlcmVyQmVuY2htYXJrRGlzY292ZXJlcjsKK2ltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS5pbnRlcm5hbC5hcGkuSURpc2NvdmVyZXJJRDsKK2ltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS5pbnRlcm5hbC5hcGkuSUV2ZW50Tm90aWZpZXI7CitpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUuaW50ZXJuYWwuZXhwb3J0ZWQuSURpc2NvdmVyZXJMaXN0OworaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlLmludGVybmFsLmV4cG9ydGVkLklQcm9qZWN0U2V0OworaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLkJlbmNobWFyazsKK2ltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5CZW5jaG1hcmtGYWN0b3J5OworaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLkRpc2NvdmVyeTsKK2ltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5EaXNjb3ZlcnlJdGVyYXRpb247CitpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuRW5kRXZlbnQ7CitpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuRXZlbnQ7CitpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuRXZlbnRUeXBlOworaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLkZpbGU7CitpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuTWVtb3J5TWVhc3VyZW1lbnQ7CitpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuUHJvamVjdDsKK2ltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5jYXRhbG9nLkNhdGFsb2dGYWN0b3J5OworaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmNhdGFsb2cuRGlzY292ZXJlckRlc2NyaXB0aW9uOworaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmNhdGFsb2cuRGlzY292ZXJlclBhcmFtZXRlcjsKK2ltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5jb3JlLkFic3RyYWN0TW9kZWxEaXNjb3ZlcmVyOworaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmNvcmUuSURpc2NvdmVyZXI7CitpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuY29yZS5JRGlzY292ZXJ5TWFuYWdlcjsKK2ltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5jb3JlLmFubm90YXRpb25zLlBhcmFtZXRlcjsKK2ltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5jb3JlLmV4Y2VwdGlvbi5EaXNjb3ZlcnlFeGNlcHRpb247CitpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkubGF1bmNoLkxhdW5jaENvbmZpZ3VyYXRpb247CitpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkubGF1bmNoLkxhdW5jaEZhY3Rvcnk7CitpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkubGF1bmNoLlBhcmFtZXRlclZhbHVlOworaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28udXRpbHMuY29yZS5pbnRlcm5hbC5leHBvcnRlZC5TeXN0ZW1JbmZvOworaW1wb3J0IG9yZy5lY2xpcHNlLm9zZ2kudXRpbC5OTFM7CisKKy8qKgorICogTWFpbiBlbnRyeSBwb2ludCBmb3IgdGhlIGRpc2NvdmVyZXIgb2YgYmVuY2htYXJrCisgKiBAYXV0aG9yIEd1aWxsYXVtZSBEb3V4CisgKgorICovCitwdWJsaWMgY2xhc3MgRGlzY292ZXJlckJlbmNobWFya0Rpc2NvdmVyZXIgZXh0ZW5kcyBBYnN0cmFjdE1vZGVsRGlzY292ZXJlcjxJUHJvamVjdFNldD4KKwkJaW1wbGVtZW50cyBJRGlzY292ZXJlckJlbmNobWFya0Rpc2NvdmVyZXIgeworCisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFNBVkVfT1BFUkFUSU9OID0gIlNhdmVPcGVyYXRpb24iOyAvLyROT04tTkxTLTEkCisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElOVEVSVkFMID0gMTAwMDsKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTVNJTlNFQyA9IDEwMDA7CisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIENPREVfRVhURU5TSU9OID0gImphdmEiOyAvLyROT04tTkxTLTEkCisJcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgSUQgPSAib3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUuYXBpLmJlbmNobWFya2Rpc2NvdmVyZXIiOyAvLyROT04tTkxTLTEkCisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBCWVRFUEVSTUIgPSAxMDI0ICogMTAyNDsKKworCXByaXZhdGUgSURpc2NvdmVyZXJJRCBkaXNjb3ZlcmVySUQ7CisJcHJpdmF0ZSBpbnQgaXRlcmF0aW9uczsKKwlwcml2YXRlIGJvb2xlYW4gbWVhc3VyZU1lbW9yeVVzZTsKKwlwcml2YXRlIGludCBtZW1Qb2xsSW50ZXJ2YWw7CisJcHJpdmF0ZSBib29sZWFuIGdlbmVyYXRlSHRtbDsKKwlwcml2YXRlIFVSSSBodG1sUmVwb3J0TG9jOworCXByaXZhdGUgZmluYWwgTGlzdDxNZW1vcnlNZWFzdXJlbWVudD4gbWVtTWVhc3VyZW1lbnRzOworCXByaXZhdGUgZmluYWwgTGlzdDxFdmVudD4gZXZlbnRzOworCXByaXZhdGUgZmluYWwgUmVzb3VyY2VTZXQgclNldDsKKwlwcml2YXRlIEV2ZW50QW5kTWVtb3J5UmVjb3JkZXIgcmVjb3JkZXI7CisJcHJpdmF0ZSBJRGlzY292ZXJlckxpc3QgZGlzY292ZXJlcnM7CisJcHJpdmF0ZSBTdHJpbmcgc2l6ZURpc2NvdmVyZXJJZDsKKworCXB1YmxpYyBEaXNjb3ZlcmVyQmVuY2htYXJrRGlzY292ZXJlcigpIHsKKwkJc3VwZXIoKTsKKwkJdGhpcy5kaXNjb3ZlcmVySUQgPSBuZXcgRGlzY292ZXJlcklEKElEKTsKKwkJdGhpcy5tZW1Qb2xsSW50ZXJ2YWwgPSAwOworCQl0aGlzLm1lbU1lYXN1cmVtZW50cyA9IG5ldyBMaW5rZWRMaXN0PE1lbW9yeU1lYXN1cmVtZW50PigpOworCQl0aGlzLmV2ZW50cyA9IG5ldyBMaW5rZWRMaXN0PEV2ZW50PigpOworCQl0aGlzLnJTZXQgPSBuZXcgUmVzb3VyY2VTZXRJbXBsKCk7CisJCWZpbmFsIFJlZ2lzdHJ5IHJGYWN0b3J5UmVnaXN0cnkgPQorCQkJCXRoaXMuclNldC5nZXRSZXNvdXJjZUZhY3RvcnlSZWdpc3RyeSgpOworCQlmaW5hbCBNYXA8U3RyaW5nLCBPYmplY3Q+IGV4dFRvRmFjdG9yeU1hcCA9CisJCQkJckZhY3RvcnlSZWdpc3RyeS5nZXRFeHRlbnNpb25Ub0ZhY3RvcnlNYXAoKTsKKwkJZXh0VG9GYWN0b3J5TWFwLnB1dCgieG1pIiwgbmV3IFhNSVJlc291cmNlRmFjdG9yeUltcGwoKSk7IC8vJE5PTi1OTFMtMSQKKwkJdGhpcy5pdGVyYXRpb25zID0gMTsKKwl9CisKKwlwcm90ZWN0ZWQgSURpc2NvdmVyZXJMaXN0IGdldERpc2NvdmVyZXJzKCkgeworCQlyZXR1cm4gdGhpcy5kaXNjb3ZlcmVyczsKKwl9CisKKwkvKioKKwkgKiBTZXR0ZXIgZm9yIHRoZSBsaXN0IG9mIGRpc2NvdmVyZXJzLCBhbm5vdGF0ZWQgd2l0aCBAUGFyYW1ldGVyIHNldCBieSB0aGUgVUkKKwkgKiBAcGFyYW0gZGlzY29zOiB0aGUgbGlzdCBvZiBkaXNjb3ZlcmVycworCSAqLworCUBQYXJhbWV0ZXIobmFtZSA9ICJESVNDT1ZFUkVSX0xJU1QiLCBkZXNjcmlwdGlvbiA9ICJUaGUgbGlzdCBvZiBkaXNjb3ZlcmVycy4iLCByZXF1aXJlc0lucHV0VmFsdWUgPSB0cnVlKQorCXB1YmxpYyB2b2lkIHNldERpc2NvdmVyZXJzKGZpbmFsIElEaXNjb3ZlcmVyTGlzdCBkaXNjb3MpIHsKKwkJdGhpcy5kaXNjb3ZlcmVycyA9IGRpc2NvczsKKwl9CisKKwkvKioKKwkgKiBNZXRob2QgbGF1bmNoaW5nIHRoZSBkaXNjb3ZlcnkgcHJvY2VzcyBvbiBhbGwgdGhlIGRpc2NvdmVyZXJzIFggYWxsIHRoZSBwcm9qZWN0cworCSAqIEBwYXJhbSBwcm9qZWN0cyB0aGUgc2V0IG9mIHByb2plY3RzIHRvIGRpc2NvdmVyCisJICogQHBhcmFtIHByb2dyZXNzTW9uaXRvcgorCSAqIEByZXR1cm4gVGhlIGJlbmNobWFyayBtb2RlbCBjb25mb3JtcyB0byBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyaworCSAqIEB0aHJvd3MgRGlzY292ZXJ5RXhjZXB0aW9uCisJICovCisJcHVibGljIFJlc291cmNlIGRpc2NvdmVyQmVuY2htYXJrKGZpbmFsIElQcm9qZWN0U2V0IHByb2plY3RzLAorCQkJZmluYWwgSVByb2dyZXNzTW9uaXRvciBwcm9ncmVzc01vbml0b3IpIHRocm93cyBEaXNjb3ZlcnlFeGNlcHRpb24geworCQl0aGlzLnJlY29yZGVyID0KKwkJCQluZXcgRXZlbnRBbmRNZW1vcnlSZWNvcmRlcih0aGlzLm1lYXN1cmVNZW1vcnlVc2UsCisJCQkJdGhpcy5tZW1Qb2xsSW50ZXJ2YWwpOworCQlmaW5hbCBpbnQgbmJEaXNjb1RvRG8gPSBnZXRJdGVyYXRpb25zKCkgKiBwcm9qZWN0cy5nZXRQcm9qZWN0cygpLnNpemUoKQorCQkJCSogdGhpcy5kaXNjb3ZlcmVycy5nZXREaXNjb3ZlcmVycygpLnNpemUoKTsKKwkJcHJvZ3Jlc3NNb25pdG9yLmJlZ2luVGFzaygKKwkJCQlNZXNzYWdlcy5EaXNjb3ZlcmVyQmVuY2htYXJrRGlzY292ZXJlcl9CZW5jaG1hcmtUYXNrTmFtZSwKKwkJCQluYkRpc2NvVG9Ebyk7CisJCWZpbmFsIEJlbmNobWFyayBiZW5jaG1hcmsgPSBiZW5jaG1hcmtJbml0KHByb2dyZXNzTW9uaXRvcik7CisJCWZvciAoSVByb2plY3QgcHJvamVjdCA6IHByb2plY3RzLnNvcnRCeVNpemUoKS5nZXRQcm9qZWN0cygpKSB7CisJCQlmaW5hbCBQcm9qZWN0IHByb2plY3REZXNjID0gY3JlYXRlUHJvamVjdERlc2NyaXB0aW9uKHByb2plY3QsCisJCQkJCWJlbmNobWFyaywgcHJvZ3Jlc3NNb25pdG9yKTsKKwkJCWZvciAoRGlzY292ZXJ5IGRpc2NvdmVyeSA6IHRoaXMuZGlzY292ZXJlcnMpIHsKKwkJCQlwcm9ncmVzc01vbml0b3Iuc3ViVGFzaygKKwkJCQkJCU1lc3NhZ2VzLkRpc2NvdmVyZXJCZW5jaG1hcmtEaXNjb3ZlcmVyX0Rpc2NvdmVyeUluaXRpYWxpemF0aW9uU3ViVGFzayk7CisJCQkJZmluYWwgU3RyaW5nIGRpc2NvdmVyZXJJZCA9IGRpc2NvdmVyeS5nZXREaXNjb3ZlcmVySWQoKTsKKwkJCQlmaW5hbCBEaXNjb3ZlcnkgZGlzY28gPSBjcmVhdGVEaXNjb3ZlcnkocHJvamVjdERlc2MsCisJCQkJCQlkaXNjb3ZlcnksIGJlbmNobWFyayk7CisJCQkJQWJzdHJhY3RNb2RlbERpc2NvdmVyZXI8SVByb2plY3Q+IGRpc2NvdmVyZXIgPSBudWxsOworCQkJCWZvciAoaW50IGkgPSAxOyBpIDw9IHRoaXMuaXRlcmF0aW9uczsgIGkrKykgeworCQkJCQlkaXNjb3ZlcmVyID0gcHJlZm9ybUl0ZXJhdGlvbihwcm9ncmVzc01vbml0b3IsIGJlbmNobWFyaywKKwkJCQkJCQlwcm9qZWN0LCBkaXNjb3ZlcmVySWQsIGRpc2NvLCBpKTsKKwkJCQl9CisJCQkJcG9zdERpc2NvdmVyeURpc2NvSW5pdChkaXNjbywgZGlzY292ZXJlcik7CisJCQl9CisJCX0KKwkJYmVuY2htYXJrLnNldEp2bU1heEhlYXBJbk1pQihjb21wdXRlTWF4TWVtb3J5VXNhZ2UoKSk7CisJCXNhdmUoYmVuY2htYXJrLCBwcm9ncmVzc01vbml0b3IpOworCQlwcm9ncmVzc01vbml0b3Iud29ya2VkKG5iRGlzY29Ub0RvKTsKKwkJaWYgKGlzR2VuZXJhdGVIdG1sUmVwb3J0KCkpIHsKKwkJCXNhZmVHZW5lcmF0ZUh0bWxSZXBvcnQocHJvZ3Jlc3NNb25pdG9yLCBiZW5jaG1hcmspOworCQl9CisJCXByb2dyZXNzTW9uaXRvci5kb25lKCk7CisJCXJldHVybiBiZW5jaG1hcmsuZVJlc291cmNlKCk7CisJfQorCisJcHJpdmF0ZSBBYnN0cmFjdE1vZGVsRGlzY292ZXJlcjxJUHJvamVjdD4gcHJlZm9ybUl0ZXJhdGlvbigKKwkJCWZpbmFsIElQcm9ncmVzc01vbml0b3IgcHJvZ3Jlc3NNb25pdG9yLCBmaW5hbCBCZW5jaG1hcmsgYmVuY2htYXJrLAorCQkJZmluYWwgSVByb2plY3QgcHJvamVjdCwgZmluYWwgU3RyaW5nIGRpc2NvdmVyZXJJZCwKKwkJCWZpbmFsIERpc2NvdmVyeSBkaXNjbywgZmluYWwgaW50IGl0ZXJhdGlvbikgeworCQlmaW5hbCBBYnN0cmFjdE1vZGVsRGlzY292ZXJlcjxJUHJvamVjdD4gZGlzY292ZXJlciA9IChBYnN0cmFjdE1vZGVsRGlzY292ZXJlcjxJUHJvamVjdD4pCisJCQkJSURpc2NvdmVyeU1hbmFnZXIuSU5TVEFOQ0UuY3JlYXRlRGlzY292ZXJlckltcGwoZGlzY292ZXJlcklkKTsKKwkJZmluYWwgVVJJIHNlcmlhbGl6YXRpb25Mb2MgPSBnZXRTZXJpYWxpemF0aW9uTG9jKGRpc2NvdmVyZXIpOworCQlwcm9ncmVzc01vbml0b3Iuc3ViVGFzayhOTFMuYmluZCgKKwkJCQlNZXNzYWdlcy5EaXNjb3ZlcmVyQmVuY2htYXJrRGlzY292ZXJlcl9Qcm9qZWN0RGlzY292ZXJ5SXRlcmF0aW9uU3ViVGFzaywKKwkJCQlTdHJpbmcudmFsdWVPZihnZXRJdGVyYXRpb25zKCkpKSk7CisJCWZpbmFsIFN0cmluZyBzdWZmaXggPSBTdHJpbmcuZm9ybWF0KCIlc18lc19pJXMueG1pIiwgLy8kTk9OLU5MUy0xJAorCQkJCWRpc2NvLmdldERpc2NvdmVyZXJJZCgpLCBwcm9qZWN0LmdldE5hbWUoKSwKKwkJCQlTdHJpbmcudmFsdWVPZihpdGVyYXRpb24pKTsKKwkJZmluYWwgVVJJIHVyaSA9IHNlcmlhbGl6YXRpb25Mb2MuYXBwZW5kU2VnbWVudChzdWZmaXgpOworCQlkaXNjb3ZlcmVyLnNldFRhcmdldFVSSSh1cmkpOworCQlib29sZWFuIGZhaWx1cmUgPSBmYWxzZTsKKwkJZmluYWwgU3RyaW5nQnVpbGRlciBkaXNjb3ZlcnlFcnJvcnMgPSBuZXcgU3RyaW5nQnVpbGRlcigpOworCQl0aGlzLnJlY29yZGVyLnJlc2V0KCk7CisJCWlmIChJRXZlbnROb3RpZmllci5jbGFzcy5pc0luc3RhbmNlKGRpc2NvdmVyZXIpKSB7CisJCQkoKElFdmVudE5vdGlmaWVyKSBkaXNjb3ZlcmVyKS5hZGRMaXN0ZW5lcih0aGlzLnJlY29yZGVyKTsKKwkJfQorCQl0aGlzLnJlY29yZGVyLnN0YXJ0KCk7CisJCXRyeSB7CisJCQlpZiAoZGlzY292ZXJlci5pc0FwcGxpY2FibGVUbyhwcm9qZWN0KSkgeworCQkJCWZpbmFsIElQcm9ncmVzc01vbml0b3Igc3ViUHJvZ3Jlc3NNID0KKwkJCQkJCW5ldyBTdWJQcm9ncmVzc01vbml0b3IocHJvZ3Jlc3NNb25pdG9yLCAwKTsKKwkJCQlkaXNjb3ZlcmVyLmRpc2NvdmVyRWxlbWVudChwcm9qZWN0LCBzdWJQcm9ncmVzc00pOworCQkJfSBlbHNlIHsKKwkJCQlmaW5hbCBTdHJpbmcgbWVzc2FnZSA9IFN0cmluZy5mb3JtYXQoCisJCQkJCQkiRGlzY292ZXJlciAnJXMnIGlzIG5vdCBhcHBsaWNhYmxlIG9uIHByb2plY3QgJyVzJy4iLCAvLyROT04tTkxTLTEkCisJCQkJCQlkaXNjb3ZlcmVySWQsIHByb2plY3QuZ2V0TmFtZSgpKTsKKwkJCQlMb2dnZXIubG9nRXJyb3IobWVzc2FnZSwgQWN0aXZhdG9yLmdldERlZmF1bHQoKSk7CisJCQl9CisJCX0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisJCQlmYWlsdXJlID0gdHJ1ZTsKKwkJCWRpc2NvdmVyeUVycm9ycy5hcHBlbmQoZS5nZXRTdGFja1RyYWNlKCkudG9TdHJpbmcoKSk7CisJCQlmaW5hbCBTdHJpbmcgbWVzc2FnZSA9IFN0cmluZy5mb3JtYXQoCisJCQkJCSJCZW5jaG1hcmsgb2YgZGlzY292ZXJlciAlcyBmYWlscyBvbiBwcm9qZWN0ICclcyciLCAvLyROT04tTkxTLTEkCisJCQkJCWRpc2NvdmVyZXJJZCwgcHJvamVjdC5nZXROYW1lKCkpOworCQkJTG9nZ2VyLmxvZ0Vycm9yKGUsIG1lc3NhZ2UsIEFjdGl2YXRvci5nZXREZWZhdWx0KCkpOworCQl9CisJCXRoaXMucmVjb3JkZXIuc3RvcCgpOworCQl0aGlzLmV2ZW50cy5hZGRBbGwodGhpcy5yZWNvcmRlci5nZXRFdmVudHMoKSk7CisJCXRoaXMuZXZlbnRzLmFkZEFsbCh0aGlzLnJlY29yZGVyLmdldE1lbW9yeU1lYXN1cmVtZW50cygpKTsKKwkJdGhpcy5tZW1NZWFzdXJlbWVudHMuYWRkQWxsKHRoaXMucmVjb3JkZXIuZ2V0TWVtb3J5TWVhc3VyZW1lbnRzKCkpOworCQlpZiAoSUV2ZW50Tm90aWZpZXIuY2xhc3MuaXNJbnN0YW5jZShkaXNjb3ZlcmVyKSkgeworCQkJKChJRXZlbnROb3RpZmllcikgZGlzY292ZXJlcikucmVtb3ZlTGlzdGVuZXIodGhpcy5yZWNvcmRlcik7CisJCX0KKwkJZmluYWwgRGlzY292ZXJ5SXRlcmF0aW9uIGl0ZXJhdGlvbkRlc2MgPQorCQkJCWNyZWF0ZURpc2NvdmVyeUl0ZXJhdGlvbih0aGlzLnJlY29yZGVyKTsKKwkJaWYgKGZhaWx1cmUpIHsKKwkJCWl0ZXJhdGlvbkRlc2Muc2V0RGlzY292ZXJ5RXJyb3JzKAorCQkJCQlkaXNjb3ZlcnlFcnJvcnMudG9TdHJpbmcoKSk7CisJCX0KKwkJZGlzY28uZ2V0SXRlcmF0aW9ucygpLmFkZChpdGVyYXRpb25EZXNjKTsKKwkJc2F2ZShiZW5jaG1hcmssIHByb2dyZXNzTW9uaXRvcik7CisJCXByb2dyZXNzTW9uaXRvci53b3JrZWQoMSk7CisJCXJldHVybiBkaXNjb3ZlcmVyOworCX0KKworCXByaXZhdGUgVVJJIGdldFNlcmlhbGl6YXRpb25Mb2MoZmluYWwgQWJzdHJhY3RNb2RlbERpc2NvdmVyZXI8SVByb2plY3Q+IGRpc2NvdmVyZXIpIHsKKwkJVVJJIHJlc3VsdDsKKwkJaWYgKGRpc2NvdmVyZXIuZ2V0VGFyZ2V0VVJJKCkgPT0gbnVsbCkgeworCQkJcmVzdWx0ID0gYmFzaWNHZXRTZXJpYWxpemF0aW9uTG9jKHRoaXMpOworCQl9IGVsc2UgeworCQkJcmVzdWx0ID0gYmFzaWNHZXRTZXJpYWxpemF0aW9uTG9jKGRpc2NvdmVyZXIpOworCQl9CisJCXJldHVybiByZXN1bHQ7CisJfQorCisJcHJpdmF0ZSBQcm9qZWN0IGNyZWF0ZVByb2plY3REZXNjcmlwdGlvbihmaW5hbCBJUHJvamVjdCBwcm9qZWN0LAorCQkJZmluYWwgQmVuY2htYXJrIGJlbmNobWFyaywgZmluYWwgSVByb2dyZXNzTW9uaXRvciBwcm9ncmVzc01vbml0b3IpCisJCQkJCXRocm93cyBEaXNjb3ZlcnlFeGNlcHRpb24geworCQlwcm9ncmVzc01vbml0b3Iuc3ViVGFzaygKKwkJCQlNZXNzYWdlcy5EaXNjb3ZlcmVyQmVuY2htYXJrRGlzY292ZXJlcl9Qcm9qZWN0SW5pdGlhbGl6YXRpb25TdWJUYXNrKTsKKwkJZmluYWwgSVNpemVEaXNjb3ZlcmVyIGRpc2NvdmVyZXIgPSAoSVNpemVEaXNjb3ZlcmVyKQorCQkJCUlEaXNjb3ZlcnlNYW5hZ2VyLklOU1RBTkNFLmNyZWF0ZURpc2NvdmVyZXJJbXBsKHRoaXMuc2l6ZURpc2NvdmVyZXJJZCk7CisJCWZpbmFsIFByb2plY3QgcHJvakRlc2MgPSBCZW5jaG1hcmtGYWN0b3J5LmVJTlNUQU5DRS5jcmVhdGVQcm9qZWN0KCk7CisJCWRpc2NvdmVyZXIuZGlzY292ZXJFbGVtZW50KHByb2plY3QsIG5ldyBOdWxsUHJvZ3Jlc3NNb25pdG9yKCkpOworCQlmaW5hbCBkb3VibGUgcHJqU2l6ZSA9IGRpc2NvdmVyZXIuZ2V0U2l6ZSgpOworCQlwcm9qRGVzYy5zZXRJbnB1dFNpemUocHJqU2l6ZSk7CisJCWZpbmFsIFN0cmluZyBwcmpVbml0ID0gZGlzY292ZXJlci5nZXRVbml0KCk7CisJCXByb2pEZXNjLnNldElucHV0U2l6ZVVuaXQocHJqVW5pdCk7CisJCXByb2pEZXNjLnNldE5hbWUocHJvamVjdC5nZXROYW1lKCkpOworCQliZW5jaG1hcmsuZ2V0UHJvamVjdHMoKS5hZGQocHJvakRlc2MpOworCQlyZXR1cm4gcHJvakRlc2M7CisJfQorCisJcHJpdmF0ZSB2b2lkIHNhdmUoZmluYWwgQmVuY2htYXJrIGJlbmNobWFyaywKKwkJCWZpbmFsIElQcm9ncmVzc01vbml0b3IgcHJvZ3Jlc3NNb25pdG9yKSB7CisJCWlmICh0aGlzLmlzVGFyZ2V0U2VyaWFsaXphdGlvbkNob3NlbigpKSB7CisJCQl0cnkgeworCQkJCXByb2dyZXNzTW9uaXRvci5zdWJUYXNrKAorCQkJCQkJTWVzc2FnZXMuRGlzY292ZXJlckJlbmNobWFya0Rpc2NvdmVyZXJfU2F2aW5nQmVuY2htYXJrRGF0YVN1YlRhc2spOworCQkJCXNhdmVUYXJnZXRNb2RlbChiZW5jaG1hcmspOworCQkJfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworCQkJCUxvZ2dlci5sb2dFcnJvcihlLCAiRmFpbGVkIHRvIHNhdmUgdGhlIGJlbmNobWFyayBtb2RlbC4iLCAvLyROT04tTkxTLTEkCisJCQkJCQlBY3RpdmF0b3IuZ2V0RGVmYXVsdCgpKTsKKwkJCX0KKwkJfQorCX0KKworCXByaXZhdGUgc3RhdGljIFVSSSBiYXNpY0dldFNlcmlhbGl6YXRpb25Mb2MoCisJCQlmaW5hbCBBYnN0cmFjdE1vZGVsRGlzY292ZXJlcjw/PiBkaXNjb3ZlcmVyKSB7CisJCWZpbmFsIFVSSSB0YXJnZXRVUkkgPSBkaXNjb3ZlcmVyLmdldFRhcmdldFVSSSgpOworCQlyZXR1cm4gdGFyZ2V0VVJJLnRyaW1GaWxlRXh0ZW5zaW9uKCk7CisJfQorCisJLyoqCisJICogQ29tcHV0ZSB0aGUgc2l6ZSBvZiB0aGUgbW9kZWwgaW4gcGFyYW1ldGVyIChpbiBudW1iZXIgb2YgbW9kZWwgZWxlbWVudHMpCisJICogQHBhcmFtIGRpc2NvdmVyZXIuZ2V0VGFyZ2V0TW9kZWwoKQorCSAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBtb2RlbCBlbGVtZW50cworCSAqLworCXByaXZhdGUgc3RhdGljIGxvbmcgY29tcHV0ZVNpemUoZmluYWwgQWJzdHJhY3RNb2RlbERpc2NvdmVyZXI8SVByb2plY3Q+IGRpc2NvdmVyZXIpIHsKKwkJbG9uZyBzaXplID0gMDsKKwkJZmluYWwgUmVzb3VyY2UgdGFyZ2V0TW9kZWwgPSBkaXNjb3ZlcmVyLmdldFRhcmdldE1vZGVsKCk7CisJCWlmICh0YXJnZXRNb2RlbCA9PSBudWxsKSB7CisJCQlmaW5hbCBTdHJpbmcgbWVzc2FnZSA9IFN0cmluZy5mb3JtYXQoCisJCQkJCSJVbmFibGUgdG8gY29tcHV0ZSB0aGUgbnVtYmVyIG9mIGVsZW1lbnQgb2YgYW4gdW5leGlzdGluZyBtb2RlbCBmb3IgdGhlIGRpc2NvdmVyZXIgJyVzJyIsIC8vJE5PTi1OTFMtMSQKKwkJCQkJZGlzY292ZXJlci5nZXRDbGFzcygpLmdldE5hbWUoKSk7CisJCQlMb2dnZXIubG9nV2FybmluZyhtZXNzYWdlLCBBY3RpdmF0b3IuZ2V0RGVmYXVsdCgpKTsKKwkJfSBlbHNlIHsKKwkJCWZpbmFsIFRyZWVJdGVyYXRvcjxFT2JqZWN0PiBhbGxDb250ZW50cyA9IHRhcmdldE1vZGVsLmdldEFsbENvbnRlbnRzKCk7CisJCQlmb3IgKGZpbmFsIFRyZWVJdGVyYXRvcjxFT2JqZWN0PiBpdGVyYXRvciA9IGFsbENvbnRlbnRzOworCQkJCQlpdGVyYXRvci5oYXNOZXh0KCk7KSB7CisJCQkJaXRlcmF0b3IubmV4dCgpOworCQkJCXNpemUrKzsKKwkJCX0KKwkJfQorCQlyZXR1cm4gc2l6ZTsKKwl9CisKKwlwcml2YXRlIHZvaWQgc2FmZUdlbmVyYXRlSHRtbFJlcG9ydChmaW5hbCBJUHJvZ3Jlc3NNb25pdG9yIHByb2dyZXNzTW9uaXRvciwgZmluYWwgQmVuY2htYXJrIGJlbmNobWFyaykgeworCQl0cnkgeworCQkJCisJCQlnZW5lcmF0ZUh0bWxSZXBvcnQocHJvZ3Jlc3NNb25pdG9yLCBiZW5jaG1hcmspOworCQl9IGNhdGNoIChFeGNlcHRpb24gZSkgeworCQkJTG9nZ2VyLmxvZ0Vycm9yKGUsICJSZXBvcnQgZ2VuZXJhdGlvbiBmYWlsIiwgQWN0aXZhdG9yLmdldERlZmF1bHQoKSk7IC8vJE5PTi1OTFMtMSQKKwkJfQorCX0KKworCS8qKgorCSAqIGxhdW5jaCB0aGUgZ2VuZXJhdGlvbiBvZiB0aGUgSFRNTCByZXBvcnQgYW5kIHRoZSBjaGFydHMgZm9yIHRoZSBiZW5jaG1hcmsgbW9kZWwgaW4gcGFyYW1ldGVyCisJICogQHBhcmFtIHBhcmVudE1vbml0b3IKKwkgKiBAcGFyYW0gYmVuY2htYXJrCisJICogQHRocm93cyBSZXBvcnRVdGlsc0V4Y2VwdGlvbiAKKwkgKiBAdGhyb3dzIENvcmVFeGNlcHRpb24gCisJICovCisJcHJpdmF0ZSB2b2lkIGdlbmVyYXRlSHRtbFJlcG9ydChmaW5hbCBJUHJvZ3Jlc3NNb25pdG9yIHBhcmVudE1vbml0b3IsCisJCQlmaW5hbCBCZW5jaG1hcmsgYmVuY2htYXJrKSB0aHJvd3MgUmVwb3J0VXRpbHNFeGNlcHRpb24sIENvcmVFeGNlcHRpb24geworCQlwYXJlbnRNb25pdG9yLnN1YlRhc2soCisJCQkJTWVzc2FnZXMuRGlzY292ZXJlckJlbmNobWFya0Rpc2NvdmVyZXJfR2VuZXJhdGluZ0JlbmNobWFya1JlcG9ydFN1YlRhc2spOworCQlmaW5hbCBJUHJvZ3Jlc3NNb25pdG9yIHByb2dyZXNzTW9uaXRvciA9CisJCQkJbmV3IFN1YlByb2dyZXNzTW9uaXRvcihwYXJlbnRNb25pdG9yLCAwKTsKKwkJLy9HZXQgdGhlIG91dHB1dCBmb2xkZXIKKwkJVVJJIHRhcmdldFVSSSA9IG51bGw7CisJCWlmICh0aGlzLmdldEh0bWxSZXBvcnRMb2NhdGlvbigpID09IG51bGwpIHsKKwkJCXRhcmdldFVSSSA9IHRoaXMuZ2V0VGFyZ2V0VVJJKCk7CisJCX0gZWxzZSB7CisJCQl0YXJnZXRVUkkgPSB0aGlzLmdldEh0bWxSZXBvcnRMb2NhdGlvbigpOworCQl9CisJCWlmICh0YXJnZXRVUkkgPT0gbnVsbCkgeworCQkJTG9nZ2VyLmxvZ1dhcm5pbmcoCisJCQkJCSJUaGUgSFRNTF9SRVBPUlRfTE9DQVRJT04gb3IgdGhlIFRBUkdFVF9VUkkgcGFyYW1ldGVyIHNob3VsZCBub3QgYmUgbnVsbCIsIC8vJE5PTi1OTFMtMSQKKwkJCQkJQWN0aXZhdG9yLmdldERlZmF1bHQoKSk7CisJCQlyZXR1cm47CisJCX0KKwkJZmluYWwgSVdvcmtzcGFjZSB3b3Jrc3BhY2UgPSBSZXNvdXJjZXNQbHVnaW4uZ2V0V29ya3NwYWNlKCk7CisJCWZpbmFsIElXb3Jrc3BhY2VSb290IHdzUm9vdCA9IHdvcmtzcGFjZS5nZXRSb290KCk7CisJCWphdmEuaW8uRmlsZSBmaWxlID0gbnVsbDsKKwkJSUZpbGUgaUZpbGUgPSBudWxsOworCQlmaW5hbCBTdHJpbmcgdGFyZ2V0VXJpU3RyID0gdGFyZ2V0VVJJLnRvU3RyaW5nKCk7CisJCWlmICh0YXJnZXRVUkkuaXNQbGF0Zm9ybVJlc291cmNlKCkpIHsKKwkJCWZpbmFsIFN0cmluZyBwYXRoU3RyID0KKwkJCQkJdGFyZ2V0VXJpU3RyLnJlcGxhY2VBbGwoInBsYXRmb3JtOi9yZXNvdXJjZSIsICIiKTsgLy8kTk9OLU5MUy0xJC8vJE5PTi1OTFMtMiQKKwkJCWlGaWxlID0gd3NSb290LmdldEZpbGUobmV3IFBhdGgocGF0aFN0cikpOworCQkJaUZpbGUuZ2V0TG9jYXRpb24oKS50b0ZpbGUoKTsKKwkJfSBlbHNlIGlmICh0YXJnZXRVUkkuaXNGaWxlKCkpIHsKKwkJCWZpbGUgPSBuZXcgamF2YS5pby5GaWxlKGphdmEubmV0LlVSSS5jcmVhdGUodGFyZ2V0VXJpU3RyKSk7CisJCX0gZWxzZSB7CisJCQlmaW5hbCBTdHJpbmcgbWVzc2FnZSA9IFN0cmluZy5mb3JtYXQoCisJCQkJCSJUaGUgZm9sbG93aW5nIHRhcmdldCBVUkkgJyVzJyBpcyBub3QgbWFuYWdlZC4gJ3BsYXRmb3JtOi9yZXNvdXJjZScgb3IgJ2ZpbGU6LycgYXJlIGV4cGVjdGVkLiIsIC8vJE5PTi1OTFMtMSQKKwkJCQkJdGFyZ2V0VVJJLnRvU3RyaW5nKCkpOworCQkJdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbihtZXNzYWdlKTsKKwkJfQorCQlmaW5hbCBBcnJheUxpc3Q8T2JqZWN0PiBhcmd1bWVudHMgPSBuZXcgQXJyYXlMaXN0PE9iamVjdD4oKTsKKwkJLy9HZW5lcmF0aW9uIG9mIHRoZSBIVE1MIHJlcG9ydAorCQlSZXBvcnRVdGlscy5nZW5lcmF0ZVJlcG9ydChiZW5jaG1hcmssIGZpbGUsIGFyZ3VtZW50cywgdGhpcy5tZWFzdXJlTWVtb3J5VXNlKTsKKwkJaWYgKGlGaWxlICE9IG51bGwpIHsKKwkJCWZpbmFsIElDb250YWluZXIgbG9jYXRpb24gPSBpRmlsZS5nZXRQYXJlbnQoKTsKKwkJCWxvY2F0aW9uLnJlZnJlc2hMb2NhbChJUmVzb3VyY2UuREVQVEhfSU5GSU5JVEUsIHByb2dyZXNzTW9uaXRvcik7CisJCX0KKwl9CisKKwkvKioKKwkgKiBTZXQgdGhlIGxhdW5jaCBwYXJhbWV0ZXJzIG9mIHRoZSB7QGxpbmsgQWJzdHJhY3RNb2RlbERpc2NvdmVyZXJ9IGluIHBhcmFtZXRlciB3aXRoIHRoZSBjb250ZW50IG9mIHRoZSB7QGxpbmsgRGlzY292ZXJ5fSBlbGVtZW50CisJICogQHBhcmFtIGRpc2NvIHtAbGluayBEaXNjb3Zlcnl9CisJICogQHBhcmFtIGRpc2NvdmVyZXIge0BsaW5rIEFic3RyYWN0TW9kZWxEaXNjb3ZlcmVyfSAoQWJzdHJhY3RNb2RlbERpc2NvdmVyZXI8SVByb2plY3Q+KQorCSAqLworCXByaXZhdGUgdm9pZCBzZXRMYXVuY2hQYXJhbWV0ZXIoZmluYWwgRGlzY292ZXJ5IGRpc2NvLAorCQkJZmluYWwgQWJzdHJhY3RNb2RlbERpc2NvdmVyZXI8SVByb2plY3Q+IGRpc2NvdmVyZXIpIHsKKwkJZmluYWwgTGF1bmNoQ29uZmlndXJhdGlvbiBsYXVuY2hDb25maWcgPQorCQkJCWRpc2NvLmdldERpc2NvdmVyZXJMYXVuY2hDb25maWd1cmF0aW9uKCk7CisJCWlmIChsYXVuY2hDb25maWcgIT0gbnVsbCkgeworCQkJZm9yIChQYXJhbWV0ZXJWYWx1ZSBwdiA6IGxhdW5jaENvbmZpZy5nZXRQYXJhbWV0ZXJWYWx1ZXMoKSkgeworCQkJCWZpbmFsIERpc2NvdmVyZXJQYXJhbWV0ZXIgcGFyYW1ldGVyID0gcHYuZ2V0UGFyYW1ldGVyKCk7CisJCQkJZmluYWwgT2JqZWN0IHZhbHVlID0gcHYuZ2V0VmFsdWUoKTsKKwkJCQlpZiAodmFsdWUgIT0gbnVsbCkgeworCQkJCQl0cnkgeworCQkJCQkJaWYgKHBhcmFtZXRlci5nZXRTZXR0ZXIoKSA9PSBudWxsKSB7CisJCQkJCQkJZmluYWwgTWV0aG9kIHNldHRlciA9IGZpbmRTZXR0ZXIoCisJCQkJCQkJCQlkaXNjb3ZlcmVyLmdldENsYXNzKCksIHBhcmFtZXRlci5nZXRJZCgpKTsKKwkJCQkJCQlwYXJhbWV0ZXIuc2V0U2V0dGVyKHNldHRlcik7CisJCQkJCQl9CisJCQkJCQl0aGlzLnNldFZhbHVlKHBhcmFtZXRlciwgZGlzY292ZXJlciwgdmFsdWUpOworCQkJCQl9IGNhdGNoIChEaXNjb3ZlcnlFeGNlcHRpb24gZSkgeworCQkJCQkJTG9nZ2VyLmxvZ1dhcm5pbmcoZSwgQWN0aXZhdG9yLmdldERlZmF1bHQoKSk7CisJCQkJCX0KKwkJCQl9CisJCQl9CisJCX0KKwl9CisKKwkvKioKKwkgKiBGaW5kIHRoZSBzZXR0ZXIgb2YgaWRlbnRpZmllciBpZCBpbiB0aGUgY2xhc3MgY2xhenoKKwkgKiB1c2UgamF2YSByZWZsZXhpb24KKwkgKiBAcGFyYW0gY2xhenoKKwkgKiBAcGFyYW0gcGFyYW1JZAorCSAqIEByZXR1cm4gdGhlIHNldHRlcgorCSAqLworCXByaXZhdGUgc3RhdGljIE1ldGhvZCBmaW5kU2V0dGVyKAorCQkJZmluYWwgQ2xhc3M8PyBleHRlbmRzIEFic3RyYWN0TW9kZWxEaXNjb3ZlcmVyPiBjbGF6eiwKKwkJCWZpbmFsIFN0cmluZyBwYXJhbUlkKSB7CisJCU1ldGhvZCByZXN1bHQgPSBudWxsOworCQlmb3IgKE1ldGhvZCBtZXRob2QgOiBjbGF6ei5nZXRNZXRob2RzKCkpIHsKKwkJCWlmIChtZXRob2QuaXNBbm5vdGF0aW9uUHJlc2VudChQYXJhbWV0ZXIuY2xhc3MpKSB7CisJCQkJZmluYWwgUGFyYW1ldGVyIHBhcmFtID0gbWV0aG9kLmdldEFubm90YXRpb24oUGFyYW1ldGVyLmNsYXNzKTsKKwkJCQlpZiAocGFyYW0ubmFtZSgpLmVxdWFscyhwYXJhbUlkKSAKKwkJCQkJCSYmIG1ldGhvZC5nZXRSZXR1cm5UeXBlKCkuZXF1YWxzKHZvaWQuY2xhc3MpKSB7CisJCQkJCXJlc3VsdCA9IG1ldGhvZDsKKwkJCQl9CisJCQl9CisJCX0KKwkJcmV0dXJuIHJlc3VsdDsKKwl9CisKKwkvKioKKwkgKiBtZXRob2QgdG8gc2V0IHRoZSB2YWx1ZXMgb2YgcGFyYW1ldGVyczogZXh0cmFjdGVkIGZyb20gRGlzY292ZXJ5TWFuYWdlcgorCSAqIChvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5jb3JlLmludGVybmFsKQorCSAqCisJICogQHBhcmFtIHBhcmFtZXRlcgorCSAqIEBwYXJhbSBkaXNjb3ZlcmVyCisJICogQHBhcmFtIHBhcmFtZXRlclZhbHVlCisJICogQHRocm93cyBEaXNjb3ZlcnlFeGNlcHRpb24KKwkgKi8KKwlwcml2YXRlIHN0YXRpYyB2b2lkIHNldFZhbHVlKGZpbmFsIERpc2NvdmVyZXJQYXJhbWV0ZXIgcGFyYW1ldGVyLAorCQkJZmluYWwgSURpc2NvdmVyZXI8Pz4gZGlzY292ZXJlciwKKwkJCWZpbmFsIE9iamVjdCBwYXJhbWV0ZXJWYWx1ZSkgdGhyb3dzIERpc2NvdmVyeUV4Y2VwdGlvbiB7CisJCXRyeSB7CisJCQlpZiAocGFyYW1ldGVyLmdldEZpZWxkKCkgIT0gbnVsbAorCQkJCQkmJiBNb2RpZmllci5pc1B1YmxpYyhwYXJhbWV0ZXIuZ2V0RmllbGQoKS5nZXRNb2RpZmllcnMoKSkpIHsKKwkJCQlwYXJhbWV0ZXIuZ2V0RmllbGQoKS5zZXQoZGlzY292ZXJlciwgcGFyYW1ldGVyVmFsdWUpOworCQkJfSBlbHNlIGlmIChwYXJhbWV0ZXIuZ2V0U2V0dGVyKCkgIT0gbnVsbAorCQkJCQkmJiBNb2RpZmllci5pc1B1YmxpYyhwYXJhbWV0ZXIuZ2V0U2V0dGVyKCkuZ2V0TW9kaWZpZXJzKCkpKSB7CisJCQkJcGFyYW1ldGVyLmdldFNldHRlcigpLmludm9rZShkaXNjb3ZlcmVyLCBwYXJhbWV0ZXJWYWx1ZSk7CisJCQl9IGVsc2UgeworCQkJCWZpbmFsIFN0cmluZyBtZXNzYWdlID0gU3RyaW5nLmZvcm1hdCgKKwkJCQkJCSJUaGUgZGlzY292ZXJlciAnJXMnIGRvZXMgbm90IGltcGxlbWVudCBwdWJsaWMgd3JpdGUgYWNjZXNzIHRvIHRoZSBwYXJhbWV0ZXIgJyVzJyIsIC8vJE5PTi1OTFMtMSQKKwkJCQkJCWRpc2NvdmVyZXIuZ2V0Q2xhc3MoKSwKKwkJCQkJCXBhcmFtZXRlci5nZXRJZCgpKTsKKwkJCQl0aHJvdyBuZXcgRGlzY292ZXJ5RXhjZXB0aW9uKG1lc3NhZ2UpOworCQkJfQorCQl9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworCQkJb25JbnZva2VFeGNlcHRpb24ocGFyYW1ldGVyLCBwYXJhbWV0ZXJWYWx1ZSwgZSk7CisJCX0gY2F0Y2ggKElsbGVnYWxBY2Nlc3NFeGNlcHRpb24gZSkgeworCQkJb25JbnZva2VFeGNlcHRpb24ocGFyYW1ldGVyLCBwYXJhbWV0ZXJWYWx1ZSwgZSk7CisJCX0gY2F0Y2ggKEludm9jYXRpb25UYXJnZXRFeGNlcHRpb24gZSkgeworCQkJb25JbnZva2VFeGNlcHRpb24ocGFyYW1ldGVyLCBwYXJhbWV0ZXJWYWx1ZSwgZSk7CisJCX0KKwl9CisKKwlwcml2YXRlIHN0YXRpYyB2b2lkIG9uSW52b2tlRXhjZXB0aW9uKGZpbmFsIERpc2NvdmVyZXJQYXJhbWV0ZXIgcGFyYW1ldGVyLAorCQkJZmluYWwgT2JqZWN0IHBhcmFtZXRlclZhbHVlLCBmaW5hbCBFeGNlcHRpb24gZXhjZXB0aW9uKQorCQkJCQl0aHJvd3MgRGlzY292ZXJ5RXhjZXB0aW9uIHsKKwkJZmluYWwgU3RyaW5nIG1lc3NhZ2UgPSBTdHJpbmcuZm9ybWF0KAorCQkJCSJJbGxlZ2FsIHBhcmFtZXRlciB2YWx1ZSBmb3IgJyVzJyA6ICVzIiwgLy8kTk9OLU5MUy0xJAorCQkJCXBhcmFtZXRlci5nZXRJZCgpLCBwYXJhbWV0ZXJWYWx1ZSk7CisJCXRocm93IG5ldyBEaXNjb3ZlcnlFeGNlcHRpb24obWVzc2FnZSwgZXhjZXB0aW9uKTsKKwl9CisKKwkvKioKKwkgKiBTYXZlIHRoZSBiZW5jaG1hcmsgbW9kZWwgaW4gYW4gWE1JIGZpbGUKKwkgKiBAcGFyYW0gYmVuY2htYXJrCisJICogQHRocm93cyBJT0V4Y2VwdGlvbgorCSAqLworCXByaXZhdGUgdm9pZCBzYXZlVGFyZ2V0TW9kZWwoZmluYWwgQmVuY2htYXJrIGJlbmNobWFyaykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKwkJaWYgKCh0aGlzLmdldFRhcmdldFVSSSgpID09IG51bGwpICYmICh0aGlzLmdldFRhcmdldE1vZGVsKCkgPT0gbnVsbCkpIHsKKwkJCUxvZ2dlci5sb2dXYXJuaW5nKCJUaGUgcGFyYW1ldGVyIFRBUkdFVF9VUkkgc2hvdWxkIG5vdCBiZSBlbXB0eSIsIC8vJE5PTi1OTFMtMSQKKwkJCQkJQWN0aXZhdG9yLmdldERlZmF1bHQoKSk7CisJCQlyZXR1cm47CisJCX0KKwkJUmVzb3VyY2UgcmVzb3VyY2UgPSBiZW5jaG1hcmsuZVJlc291cmNlKCk7CisJCWlmIChyZXNvdXJjZSA9PSBudWxsKSB7CisJCQlVUkkgcmVzb3VyY2VVcmk7CisJCQlpZiAoZ2V0VGFyZ2V0TW9kZWwoKSA9PSBudWxsKSB7CisJCQkJcmVzb3VyY2VVcmkgPSBnZXRUYXJnZXRVUkkoKTsKKwkJCX0gZWxzZSB7CisJCQkJcmVzb3VyY2VVcmkgPSBnZXRUYXJnZXRNb2RlbCgpLmdldFVSSSgpOworCQkJfQorCQkJcmVzb3VyY2UgPSB0aGlzLnJTZXQuY3JlYXRlUmVzb3VyY2UocmVzb3VyY2VVcmkpOworCQkJcmVzb3VyY2UuZ2V0Q29udGVudHMoKS5hZGQoYmVuY2htYXJrKTsKKwkJfQorCQlmaW5hbCBMaXN0PEV2ZW50PiBldmVudHNMaXN0ID0gbmV3IEFycmF5TGlzdDxFdmVudD4oKTsKKwkJZmluYWwgTGlzdDxFdmVudFR5cGU+IGV2ZW50VHlwZUxpc3QgPSBuZXcgQXJyYXlMaXN0PEV2ZW50VHlwZT4oKTsKKwkJZm9yIChEaXNjb3ZlcnkgZGlzY292ZXJ5IDogYmVuY2htYXJrLmdldERpc2NvdmVyaWVzKCkpIHsKKwkJCWZvciAoRGlzY292ZXJ5SXRlcmF0aW9uIGl0ZXJhdGlvbiA6IGRpc2NvdmVyeS5nZXRJdGVyYXRpb25zKCkpIHsKKwkJCQlmb3IgKEV2ZW50IGV2ZW50IDogaXRlcmF0aW9uLmdldEV2ZW50cygpKSB7CisJCQkJCWV2ZW50c0xpc3QuYWRkKGV2ZW50KTsKKwkJCQkJZXZlbnRUeXBlTGlzdC5hZGQoZXZlbnQuZ2V0RXZlbnRUeXBlKCkpOworCQkJCX0KKwkJCX0KKwkJfQorCQlyZXNvdXJjZS5nZXRDb250ZW50cygpLmFkZEFsbChldmVudFR5cGVMaXN0KTsKKwkJdGhpcy5zZXRUYXJnZXRNb2RlbChyZXNvdXJjZSk7CisJCXRoaXMuc2F2ZVRhcmdldE1vZGVsKCk7CisJfQorCisJLyoqCisJICogQ29tcHV0ZSB0aGUgbWF4aW11bSBhbW91bnQgb2YgbWVtb3J5IHVzZWQgaW4gdGhlIGRpc2NvdmVyeQorCSAqIEByZXR1cm4gbWF4IG1lbW9yeSB1c2VkCisJICovCisJcHJpdmF0ZSBsb25nIGNvbXB1dGVNYXhNZW1vcnlVc2FnZSgpIHsKKwkJbG9uZyBtYXggPSAwOworCQlmb3IgKE1lbW9yeU1lYXN1cmVtZW50IG1lYXN1cmUgOiB0aGlzLm1lbU1lYXN1cmVtZW50cykgeworCQkJaWYgKG1heCA8IG1lYXN1cmUuZ2V0TWVtb3J5VXNlZCgpKSB7CisJCQkJbWF4ID0gbWVhc3VyZS5nZXRNZW1vcnlVc2VkKCk7CisJCQl9CisJCX0KKwkJcmV0dXJuIG1heDsKKwl9CisKKwkvKioKKwkgKiBJbml0aWFsaXplIHRoZSBiZW5jaG1hcmsgbW9kZWwgZWxlbWVudCB3aXRoIHN5c3RlbSBpbmZvcm1hdGlvbgorCSAqIEByZXR1cm4gdGhlIG1vZGVsIGVsZW1lbnQKKwkgKi8KKwlwcml2YXRlIHN0YXRpYyBCZW5jaG1hcmsgYmVuY2htYXJrSW5pdChmaW5hbCBJUHJvZ3Jlc3NNb25pdG9yIHByb2dyZXNzTW9uaXRvcikgeworCQlwcm9ncmVzc01vbml0b3Iuc3ViVGFzaygKKwkJCQlNZXNzYWdlcy5EaXNjb3ZlcmVyQmVuY2htYXJrRGlzY292ZXJlcl9CZW5jaG1hcmtJbml0aWFsaXphdGlvblN1YlRhc2spOworCQlmaW5hbCBCZW5jaG1hcmsgYmVuY2htYXJrID0gQmVuY2htYXJrRmFjdG9yeS5lSU5TVEFOQ0UuY3JlYXRlQmVuY2htYXJrKCk7CisJCXRyeSB7CisJCQlmaW5hbCBTeXN0ZW1JbmZvIHN5c0luZm8gPSBTeXN0ZW1JbmZvLmdldEluc3RhbmNlKCk7CisJCQliZW5jaG1hcmsuc2V0SnZtTWF4SGVhcEluTWlCKFJ1bnRpbWUuZ2V0UnVudGltZSgpLm1heE1lbW9yeSgpIC8gQllURVBFUk1CKTsKKwkJCWJlbmNobWFyay5zZXRQcm9jZXNzb3JOYW1lKHN5c0luZm8uZ2V0UHJvY05hbWUoKSk7CisJCQliZW5jaG1hcmsuc2V0UHJvY2Vzc29yRGVzY3JpcHRpb24oc3lzSW5mby5nZXRQcm9jRGVzY3JpcHRpb24oKSk7CisJCQliZW5jaG1hcmsuc2V0UHJvY2Vzc29yQ291bnQoc3lzSW5mby5nZXRuUHJvY2Vzc29ycygpKTsKKwkJCWJlbmNobWFyay5zZXRQcm9jZXNzb3JDYWNoZVNpemUoc3lzSW5mby5nZXRQcm9jQ2FjaGVTaXplKCkpOworCQkJYmVuY2htYXJrLnNldFN5c3RlbU1lbW9yeShzeXNJbmZvLmdldE1lbW9yeSgpKTsKKwkJCWJlbmNobWFyay5zZXRPc05hbWUoc3lzSW5mby5nZXRPc05hbWUoKSk7CisJCQliZW5jaG1hcmsuc2V0T3NWZXJzaW9uKHN5c0luZm8uZ2V0T3NWZXJzaW9uKCkpOworCQkJYmVuY2htYXJrLnNldE9zQXJjaGl0ZWN0dXJlKHN5c0luZm8uZ2V0QXJjaCgpKTsKKwkJfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworCQkJTG9nZ2VyLmxvZ0Vycm9yKGUsCisJCQkJCSJDb3VsZCBub3QgZ2V0IHN5c3RlbSBpbmZvcm1hdGlvbiBmb3IgYmVuY2htYXJrIiwgLy8kTk9OLU5MUy0xJAorCQkJCQlBY3RpdmF0b3IuZ2V0RGVmYXVsdCgpKTsKKwkJfQorCQlyZXR1cm4gYmVuY2htYXJrOworCX0KKworCS8qKgorCSAqIEluaXRpYWxpemUgdGhlIGRpc2NvdmVyeSBtb2RlbCBlbGVtZW50IGJlZm9yZSBsYXVuY2hpbmcgdGhlIGFzc29jaWF0ZWQKKwkgKiBkaXNjb3ZlcmVyCisJICoKKwkgKiBAcGFyYW0gcHJvamVjdERlc2MKKwkgKiAgICAgICAgICAgIHRoZSBtb2RlbCBlbGVtZW50IGZvciBwcm9qZWN0IHRoYXQgd2lsbCBiZSBkaXNjb3ZlcmVkCisJICogQHBhcmFtIGRpc2NvCisJICogICAgICAgICAgICB0aGUgbW9kZWwgZWxlbWVudCB0byBpbml0aWFsaXplCisJICogQHBhcmFtIGRpc2NvdmVyeQorCSAqICAgICAgICAgICAgdGhlIG1vZGVsIGVsZW1lbnQgcmVwcmVzZW50aW5nIHRoZSBpbmZvcm1hdGlvbiBjb25jZXJuaW5nIHRoZQorCSAqICAgICAgICAgICAgZGlzY292ZXJ5IGluIHRoZSBsYXVuY2ggY29uZmlndXJhdGlvbgorCSAqIEBwYXJhbSBkaXNjb3ZlcmVyCisJICogICAgICAgICAgICB0aGUgcmVhbCBkaXNjb3ZlcmVyIHtAbGluayBBYnN0cmFjdE1vZGVsRGlzY292ZXJlcn0KKwkgKiBAcGFyYW0gYmVuY2htYXJrIAorCSAqIEBwYXJhbSBkaXNjb3ZlcmVySWQKKwkgKiAgICAgICAgICAgIHRoZSBkaXNjb3ZlcmVyIGlkCisJICogQHRocm93cyBEaXNjb3ZlcnlFeGNlcHRpb24gCisJICovCisJcHJpdmF0ZSBEaXNjb3ZlcnkgY3JlYXRlRGlzY292ZXJ5KGZpbmFsIFByb2plY3QgcHJvamVjdERlc2MsCisJCQlmaW5hbCBEaXNjb3ZlcnkgZGlzY292ZXJ5LCBmaW5hbCBCZW5jaG1hcmsgYmVuY2htYXJrKQorCQkJdGhyb3dzIERpc2NvdmVyeUV4Y2VwdGlvbiB7CisJCWZpbmFsIFN0cmluZyBkaXNjb3ZlcmVySWQgPSBkaXNjb3ZlcnkuZ2V0RGlzY292ZXJlcklkKCk7CisJCWZpbmFsIEFic3RyYWN0TW9kZWxEaXNjb3ZlcmVyPElQcm9qZWN0PiBkaXNjb3ZlcmVyID0KKwkJCQkoQWJzdHJhY3RNb2RlbERpc2NvdmVyZXI8SVByb2plY3Q+KQorCQkJCUlEaXNjb3ZlcnlNYW5hZ2VyLklOU1RBTkNFLmNyZWF0ZURpc2NvdmVyZXJJbXBsKGRpc2NvdmVyZXJJZCk7CisJCWlmIChkaXNjb3ZlcmVyID09IG51bGwpIHsKKwkJCWZpbmFsIFN0cmluZyBtZXNzYWdlID0gU3RyaW5nLmZvcm1hdCgiVGhlIGRpc2NvdmVyZXIgJyVzJyBkb2VzIG5vdCBleGlzdHMuIiwgZGlzY292ZXJlcklkKTsKKwkJCXRocm93IG5ldyBEaXNjb3ZlcnlFeGNlcHRpb24obWVzc2FnZSk7CisJCX0KKwkJZmluYWwgRGlzY292ZXJ5IGRpc2NvID0gQmVuY2htYXJrRmFjdG9yeS5lSU5TVEFOQ0UuY3JlYXRlRGlzY292ZXJ5KCk7CisJCWRpc2NvLnNldFByb2plY3QocHJvamVjdERlc2MpOworCQlkaXNjby5zZXROYW1lKGRpc2NvdmVyZXIudG9TdHJpbmcoKSk7CisJCWRpc2NvLnNldERpc2NvdmVyZXJDbGFzc05hbWUoZGlzY292ZXJlci5nZXRDbGFzcygpLmdldE5hbWUoKSk7CisJCWRpc2NvLnNldERpc2NvdmVyZXJJZChkaXNjb3ZlcmVySWQpOworCQlmaW5hbCBEaXNjb3ZlcmVyRGVzY3JpcHRpb24gZGlzY29EZXNjID0KKwkJCQlDYXRhbG9nRmFjdG9yeS5lSU5TVEFOQ0UuY3JlYXRlRGlzY292ZXJlckRlc2NyaXB0aW9uKCk7CisJCWZpbmFsIExhdW5jaENvbmZpZ3VyYXRpb24gZGlzY29MYXVuY2hDb25maWcgPQorCQkJCWRpc2NvdmVyeS5nZXREaXNjb3ZlcmVyTGF1bmNoQ29uZmlndXJhdGlvbigpOworCQlpZiAoZGlzY29MYXVuY2hDb25maWcgIT0gbnVsbCkgeworCQkJZmluYWwgTGF1bmNoQ29uZmlndXJhdGlvbiBsYXVuY2hDb25maWcgPQorCQkJCQlMYXVuY2hGYWN0b3J5LmVJTlNUQU5DRS5jcmVhdGVMYXVuY2hDb25maWd1cmF0aW9uKCk7CisJCQlsYXVuY2hDb25maWcuc2V0U291cmNlKHByb2plY3REZXNjLmdldE5hbWUoKSk7CisJCQlsYXVuY2hDb25maWcuc2V0RGlzY292ZXJlcihkaXNjb0Rlc2MpOworCQkJbGF1bmNoQ29uZmlnLnNldE9wZW5Nb2RlbEFmdGVyRGlzY292ZXJ5KAorCQkJCQlkaXNjb0xhdW5jaENvbmZpZy5pc09wZW5Nb2RlbEFmdGVyRGlzY292ZXJ5KCkpOworCQkJZm9yIChQYXJhbWV0ZXJWYWx1ZSBwYXJhbVZhbHVlIDogZGlzY29MYXVuY2hDb25maWcuZ2V0UGFyYW1ldGVyVmFsdWVzKCkpIHsKKwkJCQlmaW5hbCBQYXJhbWV0ZXJWYWx1ZSBuZXdQYXJhbVZhbHVlID0KKwkJCQkJCUxhdW5jaEZhY3RvcnkuZUlOU1RBTkNFLmNyZWF0ZVBhcmFtZXRlclZhbHVlKCk7CisJCQkJbmV3UGFyYW1WYWx1ZS5zZXRWYWx1ZShwYXJhbVZhbHVlLmdldFZhbHVlKCkpOworCQkJCWZpbmFsIERpc2NvdmVyZXJQYXJhbWV0ZXIgcGFyYW0gPQorCQkJCQkJQ2F0YWxvZ0ZhY3RvcnkuZUlOU1RBTkNFLmNyZWF0ZURpc2NvdmVyZXJQYXJhbWV0ZXIoKTsKKwkJCQlwYXJhbS5zZXREZXNjcmlwdGlvbihwYXJhbVZhbHVlLmdldFBhcmFtZXRlcigpLmdldERlc2NyaXB0aW9uKCkpOworCQkJCXBhcmFtLnNldERpcmVjdGlvbihwYXJhbVZhbHVlLmdldFBhcmFtZXRlcigpLmdldERpcmVjdGlvbigpKTsKKwkJCQlwYXJhbS5zZXREaXNjb3ZlcmVyKGRpc2NvRGVzYyk7CisJCQkJcGFyYW0uc2V0RmllbGQocGFyYW1WYWx1ZS5nZXRQYXJhbWV0ZXIoKS5nZXRGaWVsZCgpKTsKKwkJCQlwYXJhbS5zZXRHZXR0ZXIocGFyYW1WYWx1ZS5nZXRQYXJhbWV0ZXIoKS5nZXRHZXR0ZXIoKSk7CisJCQkJcGFyYW0uc2V0SWQocGFyYW1WYWx1ZS5nZXRQYXJhbWV0ZXIoKS5nZXRJZCgpKTsKKwkJCQlwYXJhbS5zZXRJbml0aWFsaXplcihwYXJhbVZhbHVlLmdldFBhcmFtZXRlcigpLmdldEluaXRpYWxpemVyKCkpOworCQkJCXBhcmFtLnNldFJlcXVpcmVkSW5wdXQocGFyYW1WYWx1ZS5nZXRQYXJhbWV0ZXIoKS5pc1JlcXVpcmVkSW5wdXQoKSk7CisJCQkJcGFyYW0uc2V0U2V0dGVyKHBhcmFtVmFsdWUuZ2V0UGFyYW1ldGVyKCkuZ2V0U2V0dGVyKCkpOworCQkJCXBhcmFtLnNldFR5cGUocGFyYW1WYWx1ZS5nZXRQYXJhbWV0ZXIoKS5nZXRUeXBlKCkpOworCQkJCW5ld1BhcmFtVmFsdWUuc2V0UGFyYW1ldGVyKHBhcmFtKTsKKwkJCQlsYXVuY2hDb25maWcuZ2V0UGFyYW1ldGVyVmFsdWVzKCkuYWRkKG5ld1BhcmFtVmFsdWUpOworCQkJfQorCQkJZGlzY28uc2V0RGlzY292ZXJlckxhdW5jaENvbmZpZ3VyYXRpb24obGF1bmNoQ29uZmlnKTsKKwkJfQorCQlpZiAoZGlzY292ZXJ5LmdldENvcHlPZkRpc2NvdmVyZXJEZXNjcmlwdGlvbigpID09IG51bGwpIHsKKwkJCWRpc2NvRGVzYy5zZXRJZChkaXNjby5nZXREaXNjb3ZlcmVySWQoKSk7CisJCQlkaXNjb0Rlc2Muc2V0U291cmNlVHlwZShwcm9qZWN0RGVzYy5nZXRDbGFzcygpKTsKKwkJCWRpc2NvRGVzYy5zZXRJbXBsZW1lbnRhdGlvblR5cGUoZGlzY292ZXJlci5nZXRDbGFzcygpKTsKKwkJfSBlbHNlIHsKKwkJCWRpc2NvRGVzYy5zZXRJZChkaXNjb3ZlcnkuZ2V0Q29weU9mRGlzY292ZXJlckRlc2NyaXB0aW9uKCkuZ2V0SWQoKSk7CisJCQlkaXNjb0Rlc2Muc2V0SW1wbGVtZW50YXRpb25CdW5kbGUoZGlzY292ZXJ5LmdldENvcHlPZkRpc2NvdmVyZXJEZXNjcmlwdGlvbigpLmdldEltcGxlbWVudGF0aW9uQnVuZGxlKCkpOworCQkJZGlzY29EZXNjLnNldEltcGxlbWVudGF0aW9uVHlwZShkaXNjb3ZlcnkuZ2V0Q29weU9mRGlzY292ZXJlckRlc2NyaXB0aW9uKCkuZ2V0SW1wbGVtZW50YXRpb25UeXBlKCkpOworCQkJZGlzY29EZXNjLnNldFNvdXJjZVR5cGUoZGlzY292ZXJ5LmdldENvcHlPZkRpc2NvdmVyZXJEZXNjcmlwdGlvbigpLmdldFNvdXJjZVR5cGUoKSk7CisJCX0KKwkJZGlzY28uc2V0Q29weU9mRGlzY292ZXJlckRlc2NyaXB0aW9uKGRpc2NvRGVzYyk7CisJCWJlbmNobWFyay5nZXREaXNjb3ZlcmllcygpLmFkZChkaXNjbyk7CisJCXNldExhdW5jaFBhcmFtZXRlcihkaXNjbywgZGlzY292ZXJlcik7CisJCXJldHVybiBkaXNjbzsKKwl9CisKKwkvKioKKwkgKiBGaW5hbGl6YXRpb24gb2YgdGhlIGluaXRpYWxpemF0aW9uIG9mIHRoZSBkaXNjb3ZlcnkgbW9kZWwgZWxlbWVudCBhZnRlciB0aGUgZWZmZWN0aXZlIGRpc2NvdmVyeQorCSAqIEBwYXJhbSBkaXNjbworCSAqIEBwYXJhbSBkaXNjb3ZlcmVyCisJICovCisJcHJpdmF0ZSB2b2lkIHBvc3REaXNjb3ZlcnlEaXNjb0luaXQoZmluYWwgRGlzY292ZXJ5IGRpc2NvLAorCQkJZmluYWwgQWJzdHJhY3RNb2RlbERpc2NvdmVyZXI8SVByb2plY3Q+IGRpc2NvdmVyZXIpIHsKKwkJaWYgKHRoaXMuaXRlcmF0aW9ucyA+IDApIHsKKwkJCWZpbmFsIE1hdGhVdGlscy5SZXNvbHZlcjxEaXNjb3ZlcnlJdGVyYXRpb24+IGRpc2NvVGltZVJlc29sdmVyID0gCisJCQkJCW5ldyBNYXRoVXRpbHMuUmVzb2x2ZXI8RGlzY292ZXJ5SXRlcmF0aW9uPigpIHsKKwkJCQlwdWJsaWMgZG91YmxlIGdldFZhbHVlKGZpbmFsIERpc2NvdmVyeUl0ZXJhdGlvbiBvYmplY3QpIHsKKwkJCQkJcmV0dXJuIG9iamVjdC5nZXREaXNjb3ZlcnlUaW1lSW5TZWNvbmRzKCk7CisJCQkJfQorCQkJfTsKKwkJCWRpc2NvLnNldERpc2NvdmVyeVRpbWVBdmVyYWdlSW5TZWNvbmRzKE1hdGhVdGlscy5hdmVyYWdlKAorCQkJCQlkaXNjby5nZXRJdGVyYXRpb25zKCksIGRpc2NvVGltZVJlc29sdmVyKSk7CisJCQlkaXNjby5zZXRFeGVjdXRpb25UaW1lU3RhbmRhcmREZXZpYXRpb24oTWF0aFV0aWxzLnN0YW5kYXJkRGV2aWF0aW9uKAorCQkJCQlkaXNjby5nZXRJdGVyYXRpb25zKCksIGRpc2NvVGltZVJlc29sdmVyKSk7CisJCQlmaW5hbCBNYXRoVXRpbHMuUmVzb2x2ZXI8RGlzY292ZXJ5SXRlcmF0aW9uPiBzYXZlVGltZVJlc29sdmVyID0gCisJCQkJCW5ldyBNYXRoVXRpbHMuUmVzb2x2ZXI8RGlzY292ZXJ5SXRlcmF0aW9uPigpIHsKKwkJCQlwdWJsaWMgZG91YmxlIGdldFZhbHVlKGZpbmFsIERpc2NvdmVyeUl0ZXJhdGlvbiBvYmplY3QpIHsKKwkJCQkJcmV0dXJuIG9iamVjdC5nZXRTYXZlVGltZUluU2Vjb25kcygpOworCQkJCX0KKwkJCX07CisJCQlkaXNjby5zZXRTYXZlVGltZUF2ZXJhZ2VJblNlY29uZHMoTWF0aFV0aWxzLmF2ZXJhZ2UoCisJCQkJCWRpc2NvLmdldEl0ZXJhdGlvbnMoKSwgc2F2ZVRpbWVSZXNvbHZlcikpOworCQkJZGlzY28uc2V0U2F2ZVRpbWVTdGFuZGFyZERldmlhdGlvbihNYXRoVXRpbHMuc3RhbmRhcmREZXZpYXRpb24oCisJCQkJCWRpc2NvLmdldEl0ZXJhdGlvbnMoKSwgc2F2ZVRpbWVSZXNvbHZlcikpOworCQkJZGlzY28uc2V0TnVtYmVyT2ZNb2RlbEVsZW1lbnRzKGNvbXB1dGVTaXplKGRpc2NvdmVyZXIpKTsKKwkJCUlGaWxlU3RvcmUgZmlsZVN0b3JlOworCQkJZmluYWwgVVJJIHRhcmdldFVSSSA9IGRpc2NvdmVyZXIuZ2V0VGFyZ2V0VVJJKCk7CisJCQlmaW5hbCBTdHJpbmcgdGFyZ2V0VXJpU3RyID0gdGFyZ2V0VVJJLnRvU3RyaW5nKCk7CisJCQl0cnkgeworCQkJCWZpbmFsIElXb3Jrc3BhY2Ugd29ya3NwYWNlID0gUmVzb3VyY2VzUGx1Z2luLmdldFdvcmtzcGFjZSgpOworCQkJCWZpbmFsIElXb3Jrc3BhY2VSb290IHdzUm9vdCA9IHdvcmtzcGFjZS5nZXRSb290KCk7CisJCQkJZmluYWwgSVBhdGggd3NMb2MgPSB3c1Jvb3QuZ2V0TG9jYXRpb24oKTsKKwkJCQlmaW5hbCBTdHJpbmcgd3NMb2NTdHIgPSB3c0xvYy50b1N0cmluZygpOworCQkJCWZpbmFsIFN0cmluZyBsb2NhdGlvblN0cmluZyA9ICJmaWxlOi8vIiArIHdzTG9jU3RyICsgdGFyZ2V0VXJpU3RyOyAvLyROT04tTkxTLTEkCisJCQkJZmluYWwgamF2YS5uZXQuVVJJIHVyaSA9IGphdmEubmV0LlVSSS5jcmVhdGUobG9jYXRpb25TdHJpbmcpOworCQkJCWZpbGVTdG9yZSA9IEVGUy5nZXRTdG9yZSh1cmkpOworCQkJCWRpc2NvLnNldFhtaVNpemVJbkJ5dGVzKGZpbGVTdG9yZS5mZXRjaEluZm8oKS5nZXRMZW5ndGgoKSk7CisJCQl9IGNhdGNoIChFeGNlcHRpb24gZSkgeworCQkJCWZpbmFsIFN0cmluZyBtZXNzYWdlID0gU3RyaW5nLmZvcm1hdCgKKwkJCQkJCSJDb3VsZCBub3QgZ2V0IG91dHB1dCBtb2RlbCBzaXplICglcykuIiwgdGFyZ2V0VXJpU3RyKTsgLy8kTk9OLU5MUy0xJAorCQkJCUxvZ2dlci5sb2dFcnJvcihlLCBtZXNzYWdlLCBBY3RpdmF0b3IuZ2V0RGVmYXVsdCgpKTsKKwkJCX0KKwkJfQorCX0KKworCS8qKgorCSAqIEluaXRpYWxpemUgYSB7QGxpbmsgRGlzY292ZXJ5SXRlcmF0aW9ufSBhZnRlciB0aGUgZGlzY292ZXJ5IHVzaW5nIHRoZSBldmVudCBhbmQgbWVtb3J5IHJlY29yZGVyCisJICogQHBhcmFtIHJlY29yZWRlciB7QGxpbmsgRXZlbnRBbmRNZW1vcnlSZWNvcmRlcn0KKwkgKiBAcmV0dXJuIHRoZSBpbml0aWFsaXplZCBkaXNjb3ZlcnkgaXRlcmF0aW9uCisJICovCisJcHJpdmF0ZSBzdGF0aWMgRGlzY292ZXJ5SXRlcmF0aW9uIGNyZWF0ZURpc2NvdmVyeUl0ZXJhdGlvbigKKwkJCWZpbmFsIEV2ZW50QW5kTWVtb3J5UmVjb3JkZXIgcmVjb3JlZGVyKSB7CisJCWZpbmFsIERpc2NvdmVyeUl0ZXJhdGlvbiBkaXNjb0l0ZXIgPQorCQkJCUJlbmNobWFya0ZhY3RvcnkuZUlOU1RBTkNFLmNyZWF0ZURpc2NvdmVyeUl0ZXJhdGlvbigpOworCQlkaXNjb0l0ZXIuc2V0RGlzY292ZXJ5RGF0ZShuZXcgRGF0ZSgpKTsKKwkJZGlzY29JdGVyLnNldE1heFVzZWRNZW1vcnlJbkJ5dGVzKHJlY29yZWRlci5nZXRNYXhNZW1vcnlVc2VkKCkpOworCQlkaXNjb0l0ZXIuZ2V0RXZlbnRzKCkuYWRkQWxsKHJlY29yZWRlci5nZXRFdmVudHMoKSk7CisJCWRpc2NvSXRlci5zZXREaXNjb3ZlcnlUaW1lSW5TZWNvbmRzKChyZWNvcmVkZXIuZ2V0U3RvcFRpbWUoKSAtIHJlY29yZWRlci5nZXRTdGFydFRpbWUoKSkgLyBNU0lOU0VDKTsKKwkJZm9yIChFdmVudCBldmVudCA6IHJlY29yZWRlci5nZXRFdmVudHMoKSkgeworCQkJaWYgKGV2ZW50IGluc3RhbmNlb2YgRW5kRXZlbnQKKwkJCQkJJiYgZXZlbnQuZ2V0RXZlbnRUeXBlKCkuZ2V0TmFtZSgpLmVxdWFscyhTQVZFX09QRVJBVElPTikpIHsKKwkJCQlmaW5hbCBkb3VibGUgc2F2ZVRpbWUgPSBldmVudC5nZXRUaW1lKCkgCisJCQkJCQktICgoRW5kRXZlbnQpIGV2ZW50KS5nZXRCZWdpbm5pbmcoKS5nZXRUaW1lKCk7CisJCQkJZGlzY29JdGVyLnNldFNhdmVUaW1lSW5TZWNvbmRzKHNhdmVUaW1lIC8gTVNJTlNFQyk7CisJCQkJZGlzY29JdGVyLnNldERpc2NvdmVyeVRpbWVJblNlY29uZHMoZGlzY29JdGVyLmdldERpc2NvdmVyeVRpbWVJblNlY29uZHMoKSAtIGRpc2NvSXRlci5nZXRTYXZlVGltZUluU2Vjb25kcygpKTsKKwkJCX0KKwkJfQorCQlkaXNjb0l0ZXIuZ2V0TWVtb3J5TWVhc3VyZW1lbnRzKCkuYWRkQWxsKHJlY29yZWRlci5nZXRNZW1vcnlNZWFzdXJlbWVudHMoKSk7CisJCXJldHVybiBkaXNjb0l0ZXI7CisJfQorCisJLyoqCisJICogQ3JlYXRlIHRoZSBtb2RlbCBlbGVtZW50cyBmb3IgdGhlIHByb2plY3RzIGFuZCBjb25haXRuZWQgZmlsZXMgdG8gZGlzY292ZXIKKwkgKiBAcGFyYW0gcHJvamVjdCB0aGUgcmVhbCBwcm9qZWN0IHtAbGluayBJUHJvamVjdH0KKwkgKiBAcmV0dXJuIHRoZSBwcm9qZWN0IG1vZGVsIGVsZW1lbnQge0BsaW5rIFByb2plY3R9CisJICovCisJcHJpdmF0ZSBQcm9qZWN0IGNyZWF0ZUJlbmNobWFya1Byb2plY3RBbmRGaWxlcyhmaW5hbCBJUHJvamVjdCBwcm9qZWN0KSB7CisJCWZpbmFsIFByb2plY3QgcHJvaiA9IEJlbmNobWFya0ZhY3RvcnkuZUlOU1RBTkNFLmNyZWF0ZVByb2plY3QoKTsKKwkJcHJvai5zZXROYW1lKHByb2plY3QuZ2V0TmFtZSgpKTsKKwkJdHJ5IHsKKwkJCWZvciAoSVJlc291cmNlIHJlcyA6IHByb2plY3QubWVtYmVycygpKSB7CisJCQkJaWYgKHJlcyBpbnN0YW5jZW9mIElGb2xkZXIpIHsKKwkJCQkJZmluYWwgTGlzdDxGaWxlPiBmaWxlcyA9IGNyZWF0ZUZpbGVzKChJRm9sZGVyKSByZXMsIG5ldyBMaW5rZWRMaXN0PEZpbGU+KCkpOworCQkJCQlwcm9qLmdldEZpbGVzKCkuYWRkQWxsKGZpbGVzKTsKKwkJCQl9IGVsc2UgeworCQkJCQlpZiAocmVzIGluc3RhbmNlb2YgSUZpbGUpIHsKKwkJCQkJCWZpbmFsIEZpbGUgZmlsZSA9IGNyZWF0ZUZpbGUocmVzKTsKKwkJCQkJCXByb2ouZ2V0RmlsZXMoKS5hZGQoZmlsZSk7CisJCQkJCX0KKwkJCQl9CisJCQl9CisJCQlpZiAocHJvai5nZXRGaWxlcygpLmlzRW1wdHkoKSkgeworCQkJCXByb2ouc2V0QXZlcmFnZUZpbGVTaXplSW5CeXRlcygwKTsKKwkJCQlwcm9qLnNldFRvdGFsU2l6ZUluQnl0ZXMoMCk7CisJCQkJcHJvai5zZXRBdmVyYWdlTGluZXNQZXJGaWxlKDApOworCQkJCXByb2ouc2V0VG90YWxMaW5lcygwKTsKKwkJCX0gZWxzZSB7CisJCQkJbG9uZyB0b3RhbExpbmVTaXplID0gMDsKKwkJCQlsb25nIHRvdGFsQnl0ZVNpemUgPSAwOworCQkJCWZvciAoRmlsZSBmIDogcHJvai5nZXRGaWxlcygpKSB7CisJCQkJCXRvdGFsTGluZVNpemUgKz0gZi5nZXRMaW5lcygpOworCQkJCQl0b3RhbEJ5dGVTaXplICs9IGYuZ2V0U2l6ZUluQnl0ZXMoKTsKKwkJCQl9CisJCQkJcHJvai5zZXRBdmVyYWdlRmlsZVNpemVJbkJ5dGVzKHRvdGFsQnl0ZVNpemUgLyBwcm9qLmdldEZpbGVzKCkuc2l6ZSgpKTsKKwkJCQlwcm9qLnNldFRvdGFsU2l6ZUluQnl0ZXModG90YWxCeXRlU2l6ZSk7CisJCQkJcHJvai5zZXRBdmVyYWdlTGluZXNQZXJGaWxlKHRvdGFsTGluZVNpemUgLyBnZXROdW1iZXJPZlNvdXJjZUNvZGVGaWxlcyhwcm9qKSk7CisJCQkJcHJvai5zZXRUb3RhbExpbmVzKHRvdGFsTGluZVNpemUpOworCQkJfQorCQl9IGNhdGNoIChDb3JlRXhjZXB0aW9uIGUpIHsKKwkJCWZpbmFsIFN0cmluZyBtZXNzYWdlID0gU3RyaW5nLmZvcm1hdCgKKwkJCQkJIkNvdWxkIG5vdCBnZXQgbWVtYmVycyBvZiB0aGUgcHJvamVjdCAnJXMnLiIsIC8vJE5PTi1OTFMtMSQKKwkJCQkJcHJvamVjdC5nZXROYW1lKCkpOworCQkJTG9nZ2VyLmxvZ0Vycm9yKGUsCisJCQkJCW1lc3NhZ2UsIEFjdGl2YXRvci5nZXREZWZhdWx0KCkpOworCQl9CisJCXJldHVybiBwcm9qOworCX0KKworCS8qKgorCSAqIENvdW50IHRoZSBudW1iZXIgb2YgbGluZXMgaXMgc291cmNlIGZpbGVzLgorCSAqIFRoZSBzb3VyY2UgZmlsZXMgYXJlIGlkZW50aWZpZWQgYXMgaGF2aW5nIHRoZSB2YWx1ZSBvZiB0aGUgQ09ERV9FWFRFTlNJT04gY29uc3RhbnQgYXMgZXh0ZW5zaW9uCisJICogQHBhcmFtIHByb2ogdGhlIHByb2plY3QgdG8gY29tcHV0ZSB0aGUgbnVtYmVyIG9mIGxpbmVzCisJICogQHJldHVybiB0aGUgbnVtYmVyIG9mIGxpbmVzCisJICovCisJcHJpdmF0ZSBzdGF0aWMgbG9uZyBnZXROdW1iZXJPZlNvdXJjZUNvZGVGaWxlcyhmaW5hbCBQcm9qZWN0IHByb2opIHsKKwkJaW50IG51bWJlciA9IDA7CisJCWZvciAoRmlsZSBmaWxlIDogcHJvai5nZXRGaWxlcygpKSB7CisJCQkvL29ubHkgZmlsZXMgaGF2aW5nIENPREVfRVhURU5TSU9OIGFzIGV4dGVuc2lvbiBhcmUgbWVhc3VyZWQKKwkJCWlmIChmaWxlLmdldExpbmVzKCkgPT0gMCkgeworCQkJCW51bWJlcisrOworCQkJfQorCQl9CisJCXJldHVybiBudW1iZXI7CisJfQorCisJLyoqCisJICogSW5pdGlhbGl6ZSB0aGUgZmlsZXMgbW9kZWwgZWxlbWVudHMge0BsaW5rIEZpbGV9IGNvbnRhaW5lZCBpbiBhIGZvbGRlciB7QGxpbmsgSUZvbGRlcn0gdG8gZGlzY292ZXIuCisJICogUmVjdXJzaXZlIG1ldGhvZCwgc2hvdWxkIGJlIGNhbGxlZCBpbml0aWFsbHkgb24gdGhlIHByb2plY3QgdG8gZGlzY292ZXIKKwkgKiBAcGFyYW0gZm9sZGVyCisJICogQHBhcmFtIGZpbGVzCisJICogQHJldHVybiB0aGUgbGlzdCBvZiBpbml0aWFsaXplZCBmaWxlcyB7QGxpbmsgRmlsZX0KKwkgKiBAdGhyb3dzIENvcmVFeGNlcHRpb24KKwkgKi8KKwlwcml2YXRlIExpc3Q8RmlsZT4gY3JlYXRlRmlsZXMoZmluYWwgSUZvbGRlciBmb2xkZXIsIGZpbmFsIExpc3Q8RmlsZT4gZmlsZXMpIHRocm93cyBDb3JlRXhjZXB0aW9uIHsKKwkJZm9yIChJUmVzb3VyY2UgcmVzIDogZm9sZGVyLm1lbWJlcnMoKSkgeworCQkJaWYgKHJlcyBpbnN0YW5jZW9mIElGb2xkZXIpIHsKKwkJCQlmaW5hbCBMaXN0PEZpbGU+IG5ld0ZpbGVzID0gCisJCQkJCQljcmVhdGVGaWxlcygoSUZvbGRlcikgcmVzLCBuZXcgTGlua2VkTGlzdDxGaWxlPigpKTsKKwkJCQlmaWxlcy5hZGRBbGwobmV3RmlsZXMpOworCQkJfSBlbHNlIHsKKwkJCQlpZiAocmVzIGluc3RhbmNlb2YgSUZpbGUpIHsKKwkJCQkJZmluYWwgRmlsZSBmaWxlID0gY3JlYXRlRmlsZShyZXMpOworCQkJCQlmaWxlcy5hZGQoZmlsZSk7CisJCQkJfQorCQkJfQorCQl9CisJCXJldHVybiBmaWxlczsKKwl9CisKKwkvKioKKwkgKiBJbml0aWFsaXplIGEgZmlsZSBtb2RlbCBlbGVtZW50IHtAbGluayBGaWxlfSBmcm9tIGFuIGVjbGlwc2UgcmVzb3VyY2Uge0BsaW5rIElSZXNvdXJjZX0KKwkgKiBAcGFyYW0gcmVzIHRoZSByZXNvdXJjZQorCSAqIEByZXR1cm4gdGhlIGluaXRpYWxpemVkIGZpbGUKKwkgKiBAdGhyb3dzIENvcmVFeGNlcHRpb24KKwkgKi8KKwlwcml2YXRlIHN0YXRpYyBGaWxlIGNyZWF0ZUZpbGUoZmluYWwgSVJlc291cmNlIHJlcykgdGhyb3dzIENvcmVFeGNlcHRpb24geworCQlmaW5hbCBJRmlsZVN0b3JlIGZpbGVTdG9yZSA9IEVGUy5nZXRTdG9yZShyZXMuZ2V0TG9jYXRpb25VUkkoKSk7CisJCWZpbmFsIEZpbGUgZmlsZSA9IEJlbmNobWFya0ZhY3RvcnkuZUlOU1RBTkNFLmNyZWF0ZUZpbGUoKTsKKwkJZmlsZS5zZXRTaXplSW5CeXRlcyhmaWxlU3RvcmUuZmV0Y2hJbmZvKCkuZ2V0TGVuZ3RoKCkpOworCQlmaWxlLnNldEZpbGVwYXRoKHJlcy5nZXRGdWxsUGF0aCgpLnRvU3RyaW5nKCkpOworCQlmaWxlLnNldExpbmVzKGdldExpbmVOdW1iZXIocmVzKSk7CisJCXJldHVybiBmaWxlOworCX0KKworCS8qKgorCSAqIENvbXB1dGUgdGhlIG51bWJlciBvZiBsaW5lcyBpbiBhIGZpbGUgaGF2aW5nIGFzIGV4dGVuc2lvbiB0aGUgdmFsdWUgb2YgdGhlIENPREVfRVhURU5TSU9OIGNvbnN0YW50LgorCSAqIEBwYXJhbSByZXMgdGhlIGZpbGUgdG8gY29tcHV0ZSB0aGUgbnVtYmVyIG9mIGxpbmVzCisJICogQHJldHVybiB0aGUgbnVtYmVyIG9mIGxpbmUgaWYgc291cmNlIGZpbGUgMCBvdGhlcndpc2UKKwkgKi8KKwlwcml2YXRlIHN0YXRpYyBsb25nIGdldExpbmVOdW1iZXIoZmluYWwgSVJlc291cmNlIHJlcykgeworCQlpbnQgbGluZXMgPSAwOworCQlpZiAocmVzID09IG51bGwpIHsKKwkJCUxvZ2dlci5sb2dXYXJuaW5nKAorCQkJCQkiVW5hYmxlIHRvIGNvbXB1dGUgdGhlIG51bWJlciBvZiBsaW5lcyBvZiBhbiB1bmV4aXN0aW5nIGZpbGUiLCAvLyROT04tTkxTLTEkCisJCQkJCUFjdGl2YXRvci5nZXREZWZhdWx0KCkpOworCQl9IGVsc2UgeworCQkJaWYgKHJlcy5nZXRGaWxlRXh0ZW5zaW9uKCkgIT0gbnVsbAorCQkJCQkmJiByZXMuZ2V0RmlsZUV4dGVuc2lvbigpLmVuZHNXaXRoKENPREVfRVhURU5TSU9OKSkgeworCQkJCXRyeSB7CisJCQkJCWZpbmFsIGphdmEuaW8uRmlsZSBmaWxlID0gcmVzLmdldExvY2F0aW9uKCkudG9GaWxlKCk7CisJCQkJCWZpbmFsIEJ1ZmZlcmVkUmVhZGVyIGJSZWFkZXIgPSBuZXcgQnVmZmVyZWRSZWFkZXIoCisJCQkJCQkJbmV3IEZpbGVSZWFkZXIoZmlsZSkpOworCQkJCQlmb3IgKGxpbmVzID0gMDsgYlJlYWRlci5yZWFkTGluZSgpICE9IG51bGw7IGxpbmVzKyspOworCQkJCQliUmVhZGVyLmNsb3NlKCk7CisJCQkJfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKwkJCQkJZmluYWwgU3RyaW5nIG1lc3NhZ2UgPSBTdHJpbmcuZm9ybWF0KAorCQkJCQkJCSJDb3VudGluZyB0aGUgbnVtYmVyIG9mIGxpbmVzIGlzICclcycgZmFpbGVkICIsICAvLyROT04tTkxTLTEkCisJCQkJCQkJcmVzLmdldE5hbWUoKSk7CisJCQkJCUxvZ2dlci5sb2dXYXJuaW5nKGUsIG1lc3NhZ2UsIEFjdGl2YXRvci5nZXREZWZhdWx0KCkpOworCQkJCX0KKwkJCX0KKwkJfQorCQlyZXR1cm4gbGluZXM7CisJfQorCisJLyoqCisJICogQHNlZSBBYnN0cmFjdE1vZGVsRGlzY292ZXJlciNpc0FwcGxpY2FibGVUbyhPYmplY3QpCisJICovCisJcHVibGljIGJvb2xlYW4gaXNBcHBsaWNhYmxlVG8oZmluYWwgSVByb2plY3RTZXQgc291cmNlcykgeworCQlib29sZWFuIHJlc3VsdCA9IHRydWU7CisJCWZvciAoSVByb2plY3Qgc291cmNlIDogc291cmNlcy5nZXRQcm9qZWN0cygpKSB7CisJCQlyZXN1bHQgPSByZXN1bHQgJiYgc291cmNlLmdldFByb2plY3QoKS5pc0FjY2Vzc2libGUoKTsKKwkJfQorCQlyZXR1cm4gcmVzdWx0OworCX0KKworCS8qKgorCSAqIExhdW5jaCB0aGUgZGlzY292ZXJ5IGJ5IGNhbGxpbmcge0BsaW5rIERpc2NvdmVyZXJCZW5jaG1hcmtEaXNjb3ZlcmVyI2Rpc2NvdmVyQmVuY2htYXJrKElQcm9qZWN0U2V0LCBJUHJvZ3Jlc3NNb25pdG9yKX0KKwkgKiBAc2VlIEFic3RyYWN0TW9kZWxEaXNjb3ZlcmVyI2Rpc2NvdmVyRWxlbWVudChPYmplY3QsIElQcm9ncmVzc01vbml0b3IpCisJICovCisJQE92ZXJyaWRlCisJcHJvdGVjdGVkIHZvaWQgYmFzaWNEaXNjb3ZlckVsZW1lbnQoZmluYWwgSVByb2plY3RTZXQgc291cmNlcywgZmluYWwgSVByb2dyZXNzTW9uaXRvciBtb25pdG9yKQorCQkJdGhyb3dzIERpc2NvdmVyeUV4Y2VwdGlvbiB7CisJCXRoaXMuZGlzY292ZXJCZW5jaG1hcmsoc291cmNlcywgbW9uaXRvcik7CisJfQorCisJcHVibGljIHZvaWQgc2V0RGlzY292ZXJlcklEKGZpbmFsIElEaXNjb3ZlcmVySUQgZGlzY29JZCkgeworCQl0aGlzLmRpc2NvdmVyZXJJRCA9IGRpc2NvSWQ7CisJfQorCisJcHVibGljIHZvaWQgc2V0U2l6ZURpc2NvdmVyZXJJZChmaW5hbCBTdHJpbmcgc2l6ZURpc2NvdmVyZXJJZCkgeworCQl0aGlzLnNpemVEaXNjb3ZlcmVySWQgPSBzaXplRGlzY292ZXJlcklkOworCX0KKworCS8qKgorCSAqIFNldHRlciBmb3IgdGhlIG51bWJlciBvZiBpdGVyYXRpb25zLCBhbm5vdGF0ZWQgd2l0aCBAUGFyYW1ldGVyIHNldCBieSB0aGUgVUkKKwkgKiBAcGFyYW0gaXQgbnVtYmVyIG9mIGl0ZXJhdGlvbnMKKwkgKi8KKwlAUGFyYW1ldGVyKG5hbWUgPSAiTlVNQkVSX09GX0lURVJBVElPTlMiLCBkZXNjcmlwdGlvbiA9ICJUaGUgbnVtYmVyIG9mIGl0ZXJhdGlvbnMgdG8gZG8uIiwgcmVxdWlyZXNJbnB1dFZhbHVlID0gdHJ1ZSkKKwlwdWJsaWMgdm9pZCBzZXRJdGVyYXRpb25zKGZpbmFsIGludCBpdCkgeworCQl0aGlzLml0ZXJhdGlvbnMgPSBpdDsKKwl9CisKKwkvKioKKwkgKiBTZXR0ZXIgZm9yIG1lbW9yeSB1c2FnZSBtZWFzdXJlLCBhbm5vdGF0ZWQgd2l0aCBAUGFyYW1ldGVyIHNldCBieSB0aGUgVUkKKwkgKiBAcGFyYW0gbWVhc3VyZSB0cnVlIGlmIHRoZSBtZW1vcnkgbmVlZCB0byBiZSBtZWFzdXJlZAorCSAqLworCUBQYXJhbWV0ZXIobmFtZSA9ICJNRUFTVVJFX01FTU9SWV9VU0FHRSIsIGRlc2NyaXB0aW9uID0gIlRlbGxzIGlmIHRoZSBtZW1vcnkgdXNhZ2Ugc2hvdWxkIGJlIG1lYXN1cmVkIG9yIG5vdC4iLCByZXF1aXJlc0lucHV0VmFsdWUgPSB0cnVlKQorCXB1YmxpYyB2b2lkIHNldE1lYXN1cmVNZW1vcnlVc2UoZmluYWwgYm9vbGVhbiBtZWFzdXJlKSB7CisJCXRoaXMubWVhc3VyZU1lbW9yeVVzZSA9IG1lYXN1cmU7CisJCWlmICh0aGlzLm1lYXN1cmVNZW1vcnlVc2UgJiYgdGhpcy5tZW1Qb2xsSW50ZXJ2YWwgPT0gMCkgeworCQkJdGhpcy5tZW1Qb2xsSW50ZXJ2YWwgPSBJTlRFUlZBTDsKKwkJfQorCX0KKworCS8qKgorCSAqIFNldHRlciBmb3IgdGhlIG1lbW9yeSBwb2xsaW5nIGludGVydmFsLCBhbm5vdGF0ZWQgd2l0aCBAUGFyYW1ldGVyIHNldCBieSB0aGUgVUkKKwkgKiBAcGFyYW0gbWVtb3J5SW50ZXJ2YWwgbWVtb3J5IHBvbGxpbmcgaW50ZXJ2YWwgaW4gbWlsbGlzZWNvbmRzCisJICovCisJQFBhcmFtZXRlcihuYW1lID0gIk1FTU9SWV9QT0xMSU5HX0lOVEVSVkFMIiwgZGVzY3JpcHRpb24gPSAiVGhlIHRpbWUgaW50ZXJ2YWwgYmV0d2VlbiB0byBtZW1vcnkgbWVhc3VyZW1lbnQgKGRlZmF1bHQgdmFsdWUgaXMgMSBzZWMpIiwgcmVxdWlyZXNJbnB1dFZhbHVlID0gZmFsc2UpCisJcHVibGljIHZvaWQgc2V0TWVtb3J5UG9sbGluZ0ludGVydmFsKGZpbmFsIGludCBtZW1vcnlJbnRlcnZhbCkgeworCQl0aGlzLm1lbVBvbGxJbnRlcnZhbCA9IG1lbW9yeUludGVydmFsOworCX0KKworCS8qKgorCSAqIFNldHRlciBmb3IgdGhlIGdlbmVyYXRpb24gb2YgYW4gSFRNTCByZXBvcnQsIGFubm90YXRlZCB3aXRoIEBQYXJhbWV0ZXIgc2V0IGJ5IHRoZSBVSQorCSAqIEBwYXJhbSBnZW5lcmF0ZSB0cnVlIGlmIGFuIEhUTUwgcmVwb3J0IGlzIHdhbnRlZAorCSAqLworCUBQYXJhbWV0ZXIobmFtZSA9ICJHRU5FUkFURV9IVE1MX1JFUE9SVCIsIGRlc2NyaXB0aW9uID0gIlRlbGxzIGlmIGEgaHRtbCByZXBvcnQgc2hvdWxkIGJlIGdlbmVyYXRlZC4iLCByZXF1aXJlc0lucHV0VmFsdWUgPSB0cnVlKQorCXB1YmxpYyB2b2lkIHNldEdlbmVyYXRlSHRtbFJlcG9ydChmaW5hbCBib29sZWFuIGdlbmVyYXRlKSB7CisJCXRoaXMuZ2VuZXJhdGVIdG1sID0gZ2VuZXJhdGU7CisJfQorCisJLyoqCisJICogU2V0dGVyIGZvciB0aGUgb3V0cHV0IG1vZGVsIFVSSSwgYW5ub3RhdGVkIHNldCBieSB0aGUgVUkKKwkgKiBAcGFyYW0gdGhlIG91dHB1dCBtb2RlbCBVUkkKKwkgKi8KKwlAT3ZlcnJpZGUKKwlwdWJsaWMgdm9pZCBzZXRUYXJnZXRVUkkoZmluYWwgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi51dGlsLlVSSSB0YXJnZXRVUkkpIHsKKwkJc3VwZXIuc2V0VGFyZ2V0VVJJKHRhcmdldFVSSSk7CisJCXN1cGVyLnNldFRhcmdldE1vZGVsKHRoaXMuclNldC5jcmVhdGVSZXNvdXJjZSh0YXJnZXRVUkkpKTsKKwl9CisKKwlAT3ZlcnJpZGUKKwlAUGFyYW1ldGVyKG5hbWUgPSAiVEFSR0VUX1VSSSIpCisJcHVibGljIG9yZy5lY2xpcHNlLmVtZi5jb21tb24udXRpbC5VUkkgZ2V0VGFyZ2V0VVJJKCkgeworCQlyZXR1cm4gc3VwZXIuZ2V0VGFyZ2V0VVJJKCk7CisJfQorCisJcHVibGljIElEaXNjb3ZlcmVySUQgZ2V0RGlzY292ZXJlcklEKCkgeworCQlyZXR1cm4gdGhpcy5kaXNjb3ZlcmVySUQ7CisJfQorCisKKwlwdWJsaWMgaW50IGdldEl0ZXJhdGlvbnMoKSB7CisJCXJldHVybiB0aGlzLml0ZXJhdGlvbnM7CisJfQorCisJcHVibGljIGJvb2xlYW4gaXNNZWFzdXJlTWVtb3J5VXNlKCkgeworCQlyZXR1cm4gdGhpcy5tZWFzdXJlTWVtb3J5VXNlOworCX0KKworCXB1YmxpYyBpbnQgZ2V0TWVtb3J5UG9sbGluZ0ludGVydmFsKCkgeworCQlyZXR1cm4gdGhpcy5tZW1Qb2xsSW50ZXJ2YWw7CisJfQorCisJcHVibGljIGJvb2xlYW4gaXNHZW5lcmF0ZUh0bWxSZXBvcnQoKSB7CisJCXJldHVybiB0aGlzLmdlbmVyYXRlSHRtbDsKKwl9CisKKwkvKioKKwkgKiBAcmV0dXJuIHRoZSBodG1sUmVwb3J0TG9jYXRpb24KKwkgKi8KKwlwdWJsaWMgVVJJIGdldEh0bWxSZXBvcnRMb2NhdGlvbigpIHsKKwkJcmV0dXJuIHRoaXMuaHRtbFJlcG9ydExvYzsKKwl9CisKKwkvKioKKwkgKiBBbGxvdyB0aGUgc2VsZWN0aW9uIG9mIHRoZSBIVE1MIHJlcG9ydCBsb2NhdGlvbgorCSAqIEBwYXJhbSBodG1sUmVwb3J0TG9jIHRoZSBodG1sUmVwb3J0TG9jYXRpb24gdG8gc2V0CisJICovCisJQFBhcmFtZXRlcihuYW1lID0gIkhUTUxfUkVQT1JUX0xPQ0FUSU9OIiwgCisJCQlkZXNjcmlwdGlvbiA9ICJUZWxscyB0aGUgbG9jYXRpb24gb2YgdGhlIEhUTUwgcmVwb3J0LCBzaG91bGQgYmUgc2V0IGlmIEdFTkVSQVRFX0hUTUxfUkVQT1JUIGlzIHRydWUiLAorCQkJcmVxdWlyZXNJbnB1dFZhbHVlID0gZmFsc2UpCisJcHVibGljIHZvaWQgc2V0SHRtbFJlcG9ydExvY2F0aW9uKGZpbmFsIFVSSSBodG1sUmVwb3J0VXJpKSB7CisJCXRoaXMuaHRtbFJlcG9ydExvYyA9IGh0bWxSZXBvcnRVcmk7CisJfQorCit9CmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL2NvcmUvaW50ZXJuYWwvaW1wbC9FdmVudEFuZE1lbW9yeVJlY29yZGVyLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL2NvcmUvaW50ZXJuYWwvaW1wbC9FdmVudEFuZE1lbW9yeVJlY29yZGVyLmphdmEKaW5kZXggYmU3ZWVlZC4uYjFlMWI2ZiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9jb3JlL2ludGVybmFsL2ltcGwvRXZlbnRBbmRNZW1vcnlSZWNvcmRlci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvY29yZS9pbnRlcm5hbC9pbXBsL0V2ZW50QW5kTWVtb3J5UmVjb3JkZXIuamF2YQpAQCAtMSwxMSArMSwxMyBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTIgSU5SSUEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlDQotICogYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlDQotICogUHVibGljIExpY2Vuc2UgdjEuMCB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KKyAqIENvcHlyaWdodCAoYykgMjAxMiwgMjAxNSBJTlJJQSBhbmQgTWlhLVNvZnR3YXJlDQorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZSANCisgKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAgd2hpY2ggDQorICogYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCiAgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KICAqIA0KLSAqIENvbnRyaWJ1dG9yczogR3VpbGxhdW1lIERvdXggLSBJTlJJQSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KLSAqIA0KKyAqIENvbnRyaWJ1dG9yczoNCisgKiAgICAgR3VpbGxhdW1lIERvdXggKElOUklBKSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KKyAqICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzMjkyIC0gW0JlbmNobWFya10gbG9uZyBtdXN0IGJlIHVzZWQgdG8gc3RvcmUgbWVtb3J5IHVzYWdlDQogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCiANCiBwYWNrYWdlIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlLmludGVybmFsLmltcGw7DQpAQCAtMjksNyArMzEsNyBAQAogCQ0KIAlwcml2YXRlIGxvbmcgc3RhcnRUaW1lOw0KIAlwcml2YXRlIGxvbmcgc3RvcFRpbWU7DQotCXByaXZhdGUgaW50IG1heE1lbW9yeVVzZWQ7DQorCXByaXZhdGUgbG9uZyBtYXhNZW1vcnlVc2VkOw0KIAlwcml2YXRlIGJvb2xlYW4gbWVhc3VyZU1lbW9yeVVzZTsNCiAJDQogCXByaXZhdGUgTGlzdDxNZW1vcnlNZWFzdXJlbWVudD4gbWVtb3J5TWVhc3VyZW1lbnRzOw0KQEAgLTEwMCw3ICsxMDIsNyBAQAogCSAqIE1heCBtZW1vcnkgdXNlZCBnZXR0ZXIgDQogCSAqIEByZXR1cm4gdGhlIG1heCBtZW1vcnkgdXNlZA0KIAkgKi8NCi0JcHVibGljIGludCBnZXRNYXhNZW1vcnlVc2VkKCkgew0KKwlwdWJsaWMgbG9uZyBnZXRNYXhNZW1vcnlVc2VkKCkgew0KIAkJcmV0dXJuIHRoaXMubWF4TWVtb3J5VXNlZDsNCiAJfQ0KIA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvY29yZS9pbnRlcm5hbC9pbXBsL01lbW9yeU1lYXN1cmVtZW50Sm9iLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL2NvcmUvaW50ZXJuYWwvaW1wbC9NZW1vcnlNZWFzdXJlbWVudEpvYi5qYXZhCmluZGV4IDYwODAzNzYuLmQ1ZDFhNzMgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvY29yZS9pbnRlcm5hbC9pbXBsL01lbW9yeU1lYXN1cmVtZW50Sm9iLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9jb3JlL2ludGVybmFsL2ltcGwvTWVtb3J5TWVhc3VyZW1lbnRKb2IuamF2YQpAQCAtMSwxMDMgKzEsMTIyIEBACi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLSAqIENvcHlyaWdodCAoYykgMjAxMiBJTlJJQS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUNCi0gKiBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UNCi0gKiBQdWJsaWMgTGljZW5zZSB2MS4wIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCi0gKiANCi0gKiBDb250cmlidXRvcnM6IEd1aWxsYXVtZSBEb3V4IC0gSU5SSUEgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCi0gKiANCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KLQ0KLXBhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUuaW50ZXJuYWwuaW1wbDsNCi0NCi1pbXBvcnQgamF2YS51dGlsLkxpbmtlZExpc3Q7DQotaW1wb3J0IGphdmEudXRpbC5MaXN0Ow0KLQ0KLWltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLmludGVybmFsLmpvYnMuSm9iU3RhdHVzOw0KLWltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUuSVByb2dyZXNzTW9uaXRvcjsNCi1pbXBvcnQgb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLklTdGF0dXM7DQotaW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZS5qb2JzLkpvYjsNCi1pbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuQmVuY2htYXJrRmFjdG9yeTsNCi1pbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuRXZlbnRUeXBlOw0KLWltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5NZW1vcnlNZWFzdXJlbWVudDsNCi0NCi0vKioNCi0gKiBUaGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIGpvYiBtZWFzdXJpbmcgdGhlIG1lbW9yeSBjb25zdW1wdGlvbg0KLSAqIEBhdXRob3IgR3VpbGxhdW1lIERvdXgNCi0gKg0KLSAqLw0KLXB1YmxpYyBjbGFzcyBNZW1vcnlNZWFzdXJlbWVudEpvYiBleHRlbmRzIEpvYiB7DQotDQotCXByaXZhdGUgaW50IG1lbW9yeVBvbGxpbmdJbnRlcnZhbDsNCi0JcHJpdmF0ZSBMaXN0PE1lbW9yeU1lYXN1cmVtZW50PiBtZWFzdXJlczsNCi0JcHJpdmF0ZSBsb25nIGpvYlN0YXJ0VGltZTsNCi0JDQotCXByaXZhdGUgRXZlbnRUeXBlIGV2ZW50VHlwZTsNCi0JDQotCS8qKg0KLQkgKiBDb25zdHJ1Y3Rvcg0KLQkgKiBAcGFyYW0gbmFtZTogdGhlIG5hbWUgb2YgdGhlIGpvYg0KLQkgKiBAcGFyYW0gaW50ZXJ2YWw6IHRoZSB0aW1lIGludGVydmFsIGJldHdlZW4gdHdvIG1lYXN1cmUgaW4gbWlsbGlzZWNvbmRzIA0KLQkgKi8NCi0JcHVibGljIE1lbW9yeU1lYXN1cmVtZW50Sm9iKGZpbmFsIFN0cmluZyBuYW1lLCBmaW5hbCBpbnQgaW50ZXJ2YWwpIHsNCi0JCXN1cGVyKG5hbWUpOw0KLQkJdGhpcy5tZW1vcnlQb2xsaW5nSW50ZXJ2YWwgPSBpbnRlcnZhbDsNCi0JCXRoaXMubWVhc3VyZXMgPSBuZXcgTGlua2VkTGlzdDxNZW1vcnlNZWFzdXJlbWVudD4oKTsNCi0JCXRoaXMuam9iU3RhcnRUaW1lID0gMDsNCi0JCXRoaXMuZXZlbnRUeXBlID0gQmVuY2htYXJrRmFjdG9yeS5lSU5TVEFOQ0UuY3JlYXRlRXZlbnRUeXBlKCk7DQotCQl0aGlzLmV2ZW50VHlwZS5zZXROYW1lKCJwZXJpb2RpY01lbW9yeU1lYXN1cmUiKTsNCi0JfQ0KLQkNCi0JLyoqDQotCSAqIFJlLWluaXRpYWxpemUgdGhlIG1lbW9yeSBtZWFzdXJlbWVudCBqb2INCi0JICogQHJldHVybiB0aGlzIGpvYg0KLQkgKi8NCi0JcHVibGljIE1lbW9yeU1lYXN1cmVtZW50Sm9iIHJlc2V0KCkgew0KLQkJdGhpcy5tZWFzdXJlcyA9IG5ldyBMaW5rZWRMaXN0PE1lbW9yeU1lYXN1cmVtZW50PigpOw0KLQkJcmV0dXJuIHRoaXM7DQotCX0NCi0JDQotCS8qKg0KLQkgKiBTZXR0ZXIgZm9yIHRoZSBzdGFydGluZyB0aW1lDQotCSAqIEBwYXJhbSBzOiB0aGUgc3RhcnRpbmcgdGltZSBpbiBtaWxsaXNlY29uZHMNCi0JICovDQotCXB1YmxpYyB2b2lkIHNldEpvYlN0YXJ0VGltZShmaW5hbCBsb25nIHMpIHsNCi0JCXRoaXMuam9iU3RhcnRUaW1lID0gczsNCi0JfQ0KLQkNCi0JLyoqDQotCSAqIEdldHRlciBmb3IgdGhlIHBvbGxpbmcgaW50ZXJ2YWwNCi0JICogQHJldHVybiB0aGUgaW50ZXJ2YWwNCi0JICovDQotCXB1YmxpYyBpbnQgZ2V0TWVtb3J5UG9sbGluZ0ludGVydmFsKCkgew0KLQkJcmV0dXJuIHRoaXMubWVtb3J5UG9sbGluZ0ludGVydmFsOw0KLQl9DQotDQotCS8qKg0KLQkgKiBHZXR0ZXIgZm9yIHRoZSBsaXN0IG9mIG1lYXN1cmVzDQotCSAqIEByZXR1cm4gdGhlIGxpc3Qgb2YgbWVhc3VyZXMNCi0JICovDQotCXB1YmxpYyBMaXN0PE1lbW9yeU1lYXN1cmVtZW50PiBnZXRNZWFzdXJlcygpIHsNCi0JCXJldHVybiB0aGlzLm1lYXN1cmVzOw0KLQl9DQotDQotCS8qKg0KLQkgKiBUaGUgcnVuIG1ldGhvZCBvZiB0aGUgam9iDQotCSAqLw0KLQkvL1RPRE8gY2hlY2sgdGhhdCB0aGUgbG9uZyBpcyBub3QgdG9vIGJpZyBmb3IgYW4gaW50DQotCXByb3RlY3RlZCBJU3RhdHVzIHJ1bihmaW5hbCBJUHJvZ3Jlc3NNb25pdG9yIG1vbml0b3IpIHsNCi0JCUlTdGF0dXMgcmVzdWx0ID0gbmV3IEpvYlN0YXR1cyhJU3RhdHVzLk9LLCB0aGlzLCAiTWVtb3J5IG1lYXN1cmVkIGV2ZXJ5ICIgKyB0aGlzLm1lbW9yeVBvbGxpbmdJbnRlcnZhbCArICIgbXMuIik7DQotCQlTeXN0ZW0uZ2MoKTsNCi0JCWZpbmFsIGxvbmcgbWVtID0gUnVudGltZS5nZXRSdW50aW1lKCkudG90YWxNZW1vcnkoKSAtIFJ1bnRpbWUuZ2V0UnVudGltZSgpLmZyZWVNZW1vcnkoKTsNCi0JCQ0KLQkJTWVtb3J5TWVhc3VyZW1lbnQgbWVtb3J5TWVhc3VyZSA9IEJlbmNobWFya0ZhY3RvcnkuZUlOU1RBTkNFLmNyZWF0ZU1lbW9yeU1lYXN1cmVtZW50KCk7DQotCQltZW1vcnlNZWFzdXJlLnNldFRpbWUoU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkgLSB0aGlzLmpvYlN0YXJ0VGltZSk7DQotCQltZW1vcnlNZWFzdXJlLnNldE1lbW9yeVVzZWQoKGludCkgbWVtKTsNCi0JCW1lbW9yeU1lYXN1cmUuc2V0RXZlbnRUeXBlKHRoaXMuZXZlbnRUeXBlKTsNCi0JCQ0KLQkJdGhpcy5tZWFzdXJlcy5hZGQobWVtb3J5TWVhc3VyZSk7DQotCQlzY2hlZHVsZSh0aGlzLm1lbW9yeVBvbGxpbmdJbnRlcnZhbCk7DQotCQlyZXR1cm4gcmVzdWx0Ow0KLQl9DQotDQotfQ0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIsIDIwMTUgSU5SSUEgYW5kIE1pYS1Tb2Z0d2FyZS4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUKKyAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMCB3aGljaAorICogYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKKyAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKgorICogQ29udHJpYnV0b3JzOgorICogICAgIEd1aWxsYXVtZSBEb3V4IChJTlJJQSkgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KKyAqICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgyNjcyIC0gQmVuY2htYXJrIGNvbW1hbmQgbGluZSBpbnRlcmZhY2UKKyAqICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzMjkyIC0gW0JlbmNobWFya10gbG9uZyBtdXN0IGJlIHVzZWQgdG8gc3RvcmUgbWVtb3J5IHVzYWdlCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitwYWNrYWdlIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlLmludGVybmFsLmltcGw7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlua2VkTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKKworaW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZS5JUHJvZ3Jlc3NNb25pdG9yOworaW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZS5JU3RhdHVzOworaW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZS5TdGF0dXM7CitpbXBvcnQgb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLmpvYnMuSm9iOworaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlLmludGVybmFsLkFjdGl2YXRvcjsKK2ltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS5pbnRlcm5hbC5NZXNzYWdlczsKK2ltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5CZW5jaG1hcmtGYWN0b3J5OworaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLkV2ZW50VHlwZTsKK2ltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5NZW1vcnlNZWFzdXJlbWVudDsKK2ltcG9ydCBvcmcuZWNsaXBzZS5vc2dpLnV0aWwuTkxTOworaW1wb3J0IG9yZy5vc2dpLmZyYW1ld29yay5CdW5kbGU7CisKKy8qKgorICogVGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBqb2IgbWVhc3VyaW5nIHRoZSBtZW1vcnkgY29uc3VtcHRpb24KKyAqIEBhdXRob3IgR3VpbGxhdW1lIERvdXgKKyAqCisgKi8KK3B1YmxpYyBjbGFzcyBNZW1vcnlNZWFzdXJlbWVudEpvYiBleHRlbmRzIEpvYiB7CisKKwlwcml2YXRlIGludCBtZW1vcnlQb2xsaW5nSW50ZXJ2YWw7CisJcHJpdmF0ZSBMaXN0PE1lbW9yeU1lYXN1cmVtZW50PiBtZWFzdXJlczsKKwlwcml2YXRlIGxvbmcgam9iU3RhcnRUaW1lOworCXByaXZhdGUgRXZlbnRUeXBlIGV2ZW50VHlwZTsKKworCS8qKgorCSAqIENvbnN0cnVjdG9yCisJICogQHBhcmFtIG5hbWU6IHRoZSBuYW1lIG9mIHRoZSBqb2IKKwkgKiBAcGFyYW0gaW50ZXJ2YWw6IHRoZSB0aW1lIGludGVydmFsIGJldHdlZW4gdHdvIG1lYXN1cmUgaW4gbWlsbGlzZWNvbmRzCisJICovCisJcHVibGljIE1lbW9yeU1lYXN1cmVtZW50Sm9iKGZpbmFsIFN0cmluZyBuYW1lLCBmaW5hbCBpbnQgaW50ZXJ2YWwpIHsKKwkJc3VwZXIobmFtZSk7CisJCXRoaXMubWVtb3J5UG9sbGluZ0ludGVydmFsID0gaW50ZXJ2YWw7CisJCXRoaXMubWVhc3VyZXMgPSBuZXcgTGlua2VkTGlzdDxNZW1vcnlNZWFzdXJlbWVudD4oKTsKKwkJdGhpcy5qb2JTdGFydFRpbWUgPSAwOworCQl0aGlzLmV2ZW50VHlwZSA9IEJlbmNobWFya0ZhY3RvcnkuZUlOU1RBTkNFLmNyZWF0ZUV2ZW50VHlwZSgpOworCQl0aGlzLmV2ZW50VHlwZS5zZXROYW1lKCJwZXJpb2RpY01lbW9yeU1lYXN1cmUiKTsKKwl9CisKKwkvKioKKwkgKiBSZS1pbml0aWFsaXplIHRoZSBtZW1vcnkgbWVhc3VyZW1lbnQgam9iCisJICogQHJldHVybiB0aGlzIGpvYgorCSAqLworCXB1YmxpYyBNZW1vcnlNZWFzdXJlbWVudEpvYiByZXNldCgpIHsKKwkJdGhpcy5tZWFzdXJlcyA9IG5ldyBMaW5rZWRMaXN0PE1lbW9yeU1lYXN1cmVtZW50PigpOworCQlyZXR1cm4gdGhpczsKKwl9CisKKwkvKioKKwkgKiBTZXR0ZXIgZm9yIHRoZSBzdGFydGluZyB0aW1lCisJICogQHBhcmFtIHM6IHRoZSBzdGFydGluZyB0aW1lIGluIG1pbGxpc2Vjb25kcworCSAqLworCXB1YmxpYyB2b2lkIHNldEpvYlN0YXJ0VGltZShmaW5hbCBsb25nIHMpIHsKKwkJdGhpcy5qb2JTdGFydFRpbWUgPSBzOworCX0KKworCS8qKgorCSAqIEdldHRlciBmb3IgdGhlIHBvbGxpbmcgaW50ZXJ2YWwKKwkgKiBAcmV0dXJuIHRoZSBpbnRlcnZhbAorCSAqLworCXB1YmxpYyBpbnQgZ2V0TWVtb3J5UG9sbGluZ0ludGVydmFsKCkgeworCQlyZXR1cm4gdGhpcy5tZW1vcnlQb2xsaW5nSW50ZXJ2YWw7CisJfQorCisJLyoqCisJICogR2V0dGVyIGZvciB0aGUgbGlzdCBvZiBtZWFzdXJlcworCSAqIEByZXR1cm4gdGhlIGxpc3Qgb2YgbWVhc3VyZXMKKwkgKi8KKwlwdWJsaWMgTGlzdDxNZW1vcnlNZWFzdXJlbWVudD4gZ2V0TWVhc3VyZXMoKSB7CisJCXJldHVybiB0aGlzLm1lYXN1cmVzOworCX0KKworCS8qKgorCSAqIFRoZSBydW4gbWV0aG9kIG9mIHRoZSBqb2IKKwkgKi8KKwlAU3VwcHJlc3NXYXJuaW5ncygiUE1ELkRvTm90Q2FsbEdhcmJhZ2VDb2xsZWN0aW9uRXhwbGljaXRseSIpCisJLyoKKwkgKiBAU3VwcHJlc3NXYXJuaW5ncygiUE1ELkRvTm90Q2FsbEdhcmJhZ2VDb2xsZWN0aW9uRXhwbGljaXRseSIpOiBnZHVwZT4gV2UKKwkgKiByZWFsbHkgd2FudCB0byBjYWxsIHRoZSBnYXJiYWdlIGNvbGxlY3RvciB0byBpbXByb3ZlIHRoZSBtZW1vcnkKKwkgKiBtZWFzdXJlbWVudC4KKwkgKi8KKwlwcm90ZWN0ZWQgSVN0YXR1cyBydW4oZmluYWwgSVByb2dyZXNzTW9uaXRvciBtb25pdG9yKSB7CisJCWZpbmFsIFN0cmluZyBtZXNzYWdlID0gTkxTLmJpbmQoCisJCQkJTWVzc2FnZXMuTWVtb3J5TWVhc3VyZW1lbnRKb2JfTWVtb3J5TWVhc3VyZUV2ZXJ5TXMsCisJCQkJSW50ZWdlci50b1N0cmluZyh0aGlzLm1lbW9yeVBvbGxpbmdJbnRlcnZhbCkpOworCQlmaW5hbCBTdHJpbmcgcGx1Z2luSWQgPSBnZXRQbHVnaW5JZCgpOworCQlmaW5hbCBJU3RhdHVzIHJlc3VsdCA9IG5ldyBTdGF0dXMoSVN0YXR1cy5PSywgcGx1Z2luSWQsIG1lc3NhZ2UpOworCQlTeXN0ZW0uZ2MoKTsKKwkJZmluYWwgUnVudGltZSBydW50aW1lID0gUnVudGltZS5nZXRSdW50aW1lKCk7CisJCWZpbmFsIGxvbmcgbWVtID0gcnVudGltZS50b3RhbE1lbW9yeSgpIC0gcnVudGltZS5mcmVlTWVtb3J5KCk7CisJCWZpbmFsIE1lbW9yeU1lYXN1cmVtZW50IG1lbW9yeU1lYXN1cmUgPQorCQkJCUJlbmNobWFya0ZhY3RvcnkuZUlOU1RBTkNFLmNyZWF0ZU1lbW9yeU1lYXN1cmVtZW50KCk7CisJCW1lbW9yeU1lYXN1cmUuc2V0VGltZShTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSAtIHRoaXMuam9iU3RhcnRUaW1lKTsKKwkJbWVtb3J5TWVhc3VyZS5zZXRNZW1vcnlVc2VkKG1lbSk7CisJCW1lbW9yeU1lYXN1cmUuc2V0RXZlbnRUeXBlKHRoaXMuZXZlbnRUeXBlKTsKKwkJdGhpcy5tZWFzdXJlcy5hZGQobWVtb3J5TWVhc3VyZSk7CisJCXNjaGVkdWxlKHRoaXMubWVtb3J5UG9sbGluZ0ludGVydmFsKTsKKwkJcmV0dXJuIHJlc3VsdDsKKwl9CisKKwlwcml2YXRlIHN0YXRpYyBTdHJpbmcgZ2V0UGx1Z2luSWQoKSB7CisJCWZpbmFsIEJ1bmRsZSBidW5kbGUgPSBBY3RpdmF0b3IuZ2V0RGVmYXVsdCgpLmdldEJ1bmRsZSgpOworCQlyZXR1cm4gYnVuZGxlLmdldFN5bWJvbGljTmFtZSgpOworCX0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL2NvcmUvaW50ZXJuYWwvaW1wbC9SZXBvcnRVdGlscy5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9jb3JlL2ludGVybmFsL2ltcGwvUmVwb3J0VXRpbHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NGFjM2YwCi0tLSAvZGV2L251bGwKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9jb3JlL2ludGVybmFsL2ltcGwvUmVwb3J0VXRpbHMuamF2YQpAQCAtMCwwICsxLDg3IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAqIENvcHlyaWdodCAoYykgMjAxMiwgMjAxNSBJTlJJQSwgYW5kIE1pYS1Tb2Z0d2FyZS4NCisgKiANCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZQ0KKyAqIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZQ0KKyAqIFB1YmxpYyBMaWNlbnNlIHYxLjAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCisgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KKyAqIA0KKyAqIENvbnRyaWJ1dG9yczoNCisgKiAgICBHdWlsbGF1bWUgRG91eCAoSU5SSUEpIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uDQorICogICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MjY3MiAtIEJlbmNobWFyayBjb21tYW5kIGxpbmUgaW50ZXJmYWNlDQorICogICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4Mjg1NyAtIERpc2NvdmVyZXIgQmVuY2htYXJrIFJlcG9ydCA6IHdyb25nIG5hbWVzcGFjZXMNCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KK3BhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUuaW50ZXJuYWwuaW1wbDsNCisNCitpbXBvcnQgamF2YS5pby5GaWxlOw0KK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0Ow0KK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsNCisNCitpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi51dGlsLlVSSTsNCitpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVPYmplY3Q7DQoraW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5yZXNvdXJjZS5SZXNvdXJjZTsNCitpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnJlc291cmNlLlJlc291cmNlU2V0Ow0KK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUucmVzb3VyY2UuaW1wbC5SZXNvdXJjZVNldEltcGw7DQoraW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlLmludGVybmFsLnJlcG9ydGluZy5IdG1sUmVwb3J0Ow0KK2ltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS5pbnRlcm5hbC5yZXBvcnRpbmcuaW50ZXJuYWwuQmVuY2htYXJrQ2hhcnRHZW5lcmF0aW9uOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5CZW5jaG1hcms7DQorDQorcHVibGljIGZpbmFsIGNsYXNzIFJlcG9ydFV0aWxzIHsNCisNCisJcHJpdmF0ZSBSZXBvcnRVdGlscygpIHsNCisJCS8vIE11c3Qgbm90IGJlIHVzZWQNCisJfQ0KKwkNCisJcHVibGljIHN0YXRpYyB2b2lkIGdlbmVyYXRlUmVwb3J0KGZpbmFsIEJlbmNobWFyayBiZW5jaG1hcmssDQorCQkJZmluYWwgRmlsZSB0YXJnZXRGb2xkZXIsIGZpbmFsIExpc3Q8PyBleHRlbmRzIE9iamVjdD4gYXJndW1lbnRzLCANCisJCQlmaW5hbCBib29sZWFuIG1lYXN1cmVNZW1vcnlVc2UpIHRocm93cyBSZXBvcnRVdGlsc0V4Y2VwdGlvbiB7DQorCQl0cnkgew0KKwkJCS8vIEdlbmVyYXRpb24gb2YgdGhlIEhUTUwgcmVwb3J0DQorCQkJZmluYWwgSHRtbFJlcG9ydCByZXBvcnQgPSBuZXcgSHRtbFJlcG9ydChiZW5jaG1hcmssIHRhcmdldEZvbGRlciwgYXJndW1lbnRzKTsNCisJCQlyZXBvcnQuZG9HZW5lcmF0ZShudWxsKTsNCisJCQkvLyBHZW5lcmF0aW9uIG9mIHRoZSBjaGFydHMNCisJCQlmaW5hbCBCZW5jaG1hcmtDaGFydEdlbmVyYXRpb24gY2hhcnRHZW5lcmF0b3IgPSANCisJCQkJCW5ldyBCZW5jaG1hcmtDaGFydEdlbmVyYXRpb24odGFyZ2V0Rm9sZGVyLCBtZWFzdXJlTWVtb3J5VXNlKTsNCisJCQljaGFydEdlbmVyYXRvci5nZW5lcmF0ZUFsbChiZW5jaG1hcmspOw0KKwkJfSBjYXRjaCAoZmluYWwgRXhjZXB0aW9uIGUpIHsNCisJCQl0aHJvdyBuZXcgUmVwb3J0VXRpbHNFeGNlcHRpb24oZSk7DQorCQl9DQorCX0NCisJDQorCXB1YmxpYyBzdGF0aWMgdm9pZCBnZW5lcmF0ZVJlcG9ydChmaW5hbCBVUkkgYmVuY2htYXJrVXJpLCBmaW5hbCBGaWxlIHRhcmdldEZvbGRlciwNCisJCQlmaW5hbCBMaXN0PD8gZXh0ZW5kcyBPYmplY3Q+IGFyZ3VtZW50cywgDQorCQkJZmluYWwgYm9vbGVhbiBtZWFzdXJlTWVtb3J5VXNlKSB0aHJvd3MgUmVwb3J0VXRpbHNFeGNlcHRpb24gew0KKwkJZmluYWwgUmVzb3VyY2VTZXQgcmVzb3VyY2VTZXQgPSBuZXcgUmVzb3VyY2VTZXRJbXBsKCk7DQorCQlmaW5hbCBSZXNvdXJjZSByZXNvdXJjZSA9IHJlc291cmNlU2V0LmdldFJlc291cmNlKGJlbmNobWFya1VyaSwgdHJ1ZSk7DQorCQlmaW5hbCBMaXN0PEJlbmNobWFyaz4gYmVuY2htYXJrcyA9IG5ldyBBcnJheUxpc3Q8QmVuY2htYXJrPigpOw0KKwkJZm9yIChFT2JqZWN0IHJvb3QgOiByZXNvdXJjZS5nZXRDb250ZW50cygpKSB7DQorCQkJaWYgKHJvb3QgaW5zdGFuY2VvZiBCZW5jaG1hcmspIHsNCisJCQkJZmluYWwgQmVuY2htYXJrIGJlbmNobWFyayA9IChCZW5jaG1hcmspIHJvb3Q7DQorCQkJCWJlbmNobWFya3MuYWRkKGJlbmNobWFyayk7DQorCQkJfQ0KKwkJfQ0KKwkJaWYgKGJlbmNobWFya3MuaXNFbXB0eSgpKSB7DQorCQkJZmluYWwgU3RyaW5nIG1lc3NhZ2UgPSBTdHJpbmcuZm9ybWF0KA0KKwkJCQkJIlRoZSByZXNvdXJjZSAnJyBkb2VuJ3QgY29udGFpbnMgYW55IEJlbmNobWFyayBpbnN0YW5jZXMgYXQgaXRzIHJvb3QuIiwgLy8kTk9OLU5MUy0xJA0KKwkJCQkJYmVuY2htYXJrVXJpLnRvU3RyaW5nKCkpOw0KKwkJCXRocm93IG5ldyBSZXBvcnRVdGlsc0V4Y2VwdGlvbihtZXNzYWdlKTsNCisJCX0NCisJCWlmIChiZW5jaG1hcmtzLnNpemUoKSA9PSAxKSB7DQorCQkJZ2VuZXJhdGVSZXBvcnQoYmVuY2htYXJrcy5nZXQoMCksIHRhcmdldEZvbGRlciwgYXJndW1lbnRzLA0KKwkJCQkJbWVhc3VyZU1lbW9yeVVzZSk7DQorCQl9IGVsc2Ugew0KKwkJCWZvciAoQmVuY2htYXJrIGJlbmNobWFyayA6IGJlbmNobWFya3MpIHsNCisJCQkJZ2VuZXJhdGVSZXBvcnQoYmVuY2htYXJrLCB0YXJnZXRGb2xkZXIsIGFyZ3VtZW50cywgDQorCQkJCQkJbWVhc3VyZU1lbW9yeVVzZSk7DQorCQkJfQ0KKwkJfQ0KKwl9DQorCQ0KKwlwdWJsaWMgc3RhdGljIHZvaWQgZ2VuZXJhdGVSZXBvcnQoZmluYWwgRmlsZSBiZW5jaG1hcmtGaWxlLCBmaW5hbCBGaWxlIHRhcmdldEZvbGRlciwNCisJCQlmaW5hbCBMaXN0PD8gZXh0ZW5kcyBPYmplY3Q+IGFyZ3VtZW50cywgDQorCQkJZmluYWwgYm9vbGVhbiBtZWFzdXJlTWVtb3J5VXNlKSB0aHJvd3MgUmVwb3J0VXRpbHNFeGNlcHRpb24gew0KKwkJZmluYWwgVVJJIHVyaSA9IFVSSS5jcmVhdGVGaWxlVVJJKGJlbmNobWFya0ZpbGUuZ2V0QWJzb2x1dGVQYXRoKCkpOw0KKwkJZ2VuZXJhdGVSZXBvcnQodXJpLCB0YXJnZXRGb2xkZXIsIGFyZ3VtZW50cywgbWVhc3VyZU1lbW9yeVVzZSk7DQorCX0NCisNCit9DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9jb3JlL2ludGVybmFsL2ltcGwvUmVwb3J0VXRpbHNFeGNlcHRpb24uamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvY29yZS9pbnRlcm5hbC9pbXBsL1JlcG9ydFV0aWxzRXhjZXB0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTk1NTZiOAotLS0gL2Rldi9udWxsCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvY29yZS9pbnRlcm5hbC9pbXBsL1JlcG9ydFV0aWxzRXhjZXB0aW9uLmphdmEKQEAgLTAsMCArMSwzMyBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKiBDb3B5cmlnaHQgKGMpIDIwMTUgTWlhLVNvZnR3YXJlLg0KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjANCisgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KKyAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQorICoNCisgKiBDb250cmlidXRvcnM6DQorICogICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MjY3MiAtIEJlbmNobWFyayBjb21tYW5kIGxpbmUgaW50ZXJmYWNlDQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorcGFja2FnZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS5pbnRlcm5hbC5pbXBsOw0KKw0KK3B1YmxpYyBjbGFzcyBSZXBvcnRVdGlsc0V4Y2VwdGlvbiBleHRlbmRzIEV4Y2VwdGlvbiB7DQorDQorCXByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IC05MTg3Nzc0MDExMjM1MDA1MDY4TDsNCisNCisJcHVibGljIFJlcG9ydFV0aWxzRXhjZXB0aW9uKCkgew0KKwkJc3VwZXIoKTsNCisJfQ0KKw0KKwlwdWJsaWMgUmVwb3J0VXRpbHNFeGNlcHRpb24oZmluYWwgU3RyaW5nIG1lc3NhZ2UpIHsNCisJCXN1cGVyKG1lc3NhZ2UpOw0KKwl9DQorDQorCXB1YmxpYyBSZXBvcnRVdGlsc0V4Y2VwdGlvbihmaW5hbCBUaHJvd2FibGUgY2F1c2UpIHsNCisJCXN1cGVyKGNhdXNlKTsNCisJfQ0KKw0KKwlwdWJsaWMgUmVwb3J0VXRpbHNFeGNlcHRpb24oZmluYWwgU3RyaW5nIG1lc3NhZ2UsIGZpbmFsIFRocm93YWJsZSBjYXVzZSkgew0KKwkJc3VwZXIobWVzc2FnZSwgY2F1c2UpOw0KKwl9DQorDQorfQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvY29yZS9pbnRlcm5hbC9tZXNzYWdlcy5wcm9wZXJ0aWVzIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9jb3JlL2ludGVybmFsL21lc3NhZ2VzLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjQ1M2MyYQotLS0gL2Rldi9udWxsCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvY29yZS9pbnRlcm5hbC9tZXNzYWdlcy5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsMzggQEAKKyMgQ29weXJpZ2h0IChjKSAyMDE1IE1pYS1Tb2Z0d2FyZS4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscworIyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyMgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKKyMgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMKKyMgQ29udHJpYnV0b3JzOgorIyAgICBHculnb2lyZSBEdXDpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MjY3MiAtIEJlbmNobWFyayBjb21tYW5kIGxpbmUgaW50ZXJmYWNlCisjICAgIEdy6WdvaXJlIER1cOkgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzMjkyIC0gW0JlbmNobWFya10gbG9uZyBtdXN0IGJlIHVzZWQgdG8gc3RvcmUgbWVtb3J5IHVzYWdlCisjICAgIEdy6WdvaXJlIER1cOkgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzNDAwIC0gW0JlbmNobWFya10gVGhlIGlucHV0IHNpemUgc2hvdWxkIGJlIGNvbXB1dGFibGUgYnkgdGhlIGRpc2NvdmVyZXIKK0FwcGxpY2F0aW9uX0NvbW1hX3NlcF9kaXNjb3ZlcmVyX2xpc3Q9Q29tbWEgc2VwYXJhdGVkIGRpc2NvdmVyZXIgbGlzdAorQXBwbGljYXRpb25fQ29tbWFfc2VwX2V4aXN0aW5nX3Byal9wYXRoPUNvbW1hIHNlcGFyYXRlZCBleGlzdGluZyBwcm9qZWN0IHBhcmVudCBkaXJlY3RvcnkgT1MgcGF0aHMgdG8gaW1wb3J0CitBcHBsaWNhdGlvbl9Db21tYV9zZXBfcHJvamVjdF9saXN0PUNvbW1hIHNlcGFyYXRlZCBwcm9qZWN0IGxpc3QKK0FwcGxpY2F0aW9uX0h0bWxfcmVwb3J0X2Rpcj1IVE1MIHJlcG9ydCBkaXJlY3RvcnkKK0FwcGxpY2F0aW9uX01lbW9yeVBvbGxpbmdJbnRlcnZhbD1NZW1vcnkgcG9sbGluZyBpbnRlcnZhbCAobXMpCitBcHBsaWNhdGlvbl9ub19vZl9pdGVyYXRpb249TnVtYmVyIG9mIGl0ZXJhdGlvbgorQXBwbGljYXRpb25fUmVjb3JkTWVtb3J5VXNlPVJlY29yZCBtZW1vcnkgdXNlCitBcHBsaWNhdGlvbl9YTUlfT3V0cHV0PVhNSSBvdXRwdXQKK0JlbmNobWFya0NoYXJ0R2VuZXJhdGlvbl9BdmdUaW1lQnlQcmpTaXplRm9yPUF2ZXJhZ2UgdGltZSBieSBwcm9qZWN0IHNpemUgZm9yIHswfQorQmVuY2htYXJrQ2hhcnRHZW5lcmF0aW9uX0F2Z1VzZWRNZW1CeVByalNpemVGb3I9QXZlcmFnZSB1c2VkIG1lbW9yeSBieSBwcm9qZWN0IHNpemUgZm9yIHswfQorQmVuY2htYXJrQ2hhcnRHZW5lcmF0aW9uX0Rpc2NvVGltZT1EaXNjb3ZlcnkgVGltZQorQmVuY2htYXJrQ2hhcnRHZW5lcmF0aW9uX0Rpc2NvVGltZUJ5UHJqU2l6ZU92ZXJhbGw9RGlzY292ZXJ5IHRpbWUgYnkgcHJvamVjdCBzaXplIG92ZXJhbGwKK0JlbmNobWFya0NoYXJ0R2VuZXJhdGlvbl9QcmpTaXplPXByb2plY3Qgc2l6ZQorQmVuY2htYXJrQ2hhcnRHZW5lcmF0aW9uX3RpbWU9dGltZQorQmVuY2htYXJrQ2hhcnRHZW5lcmF0aW9uX1VzZWRNZW09VXNlZCBNZW1vcnkKK0JlbmNobWFya0NoYXJ0R2VuZXJhdGlvbl9Vc2VkTWVtQnlQcmpTaXplPVVzZWQgbWVtb3J5IGJ5IHByb2plY3Qgc2l6ZSBvdmVyYWxsCitCZW5jaG1hcmtDaGFydEdlbmVyYXRpb25fVXNlZE1FbUJ5VGltZUZvck9uVGhlPVVzZWQgbWVtb3J5IGJ5IHRpbWUgZm9yIHswfSBvbiB7MX0gdGhlIHsyfQorRGlzY292ZXJlckJlbmNobWFya0Rpc2NvdmVyZXJfQmVuY2htYXJrSW5pdGlhbGl6YXRpb25TdWJUYXNrPUJlbmNobWFyayBpbml0aWFsaXphdGlvbgorRGlzY292ZXJlckJlbmNobWFya0Rpc2NvdmVyZXJfQmVuY2htYXJrVGFza05hbWU9QmVuY2htYXJrIERpc2NvdmVyeQorRGlzY292ZXJlckJlbmNobWFya0Rpc2NvdmVyZXJfRGlzY292ZXJ5SW5pdGlhbGl6YXRpb25TdWJUYXNrPURpc2NvdmVyeSBpbml0aWFsaXphdGlvbgorRGlzY292ZXJlckJlbmNobWFya0Rpc2NvdmVyZXJfR2VuZXJhdGluZ0JlbmNobWFya1JlcG9ydFN1YlRhc2s9R2VuZXJhdGluZyBiZW5jaG1hcmsgcmVwb3J0CitEaXNjb3ZlcmVyQmVuY2htYXJrRGlzY292ZXJlcl9Qcm9qZWN0RGlzY292ZXJ5SXRlcmF0aW9uU3ViVGFzaz1Qcm9qZWN0IGRpc2NvdmVyeTogaXRlcmF0aW9uIHswfQorRGlzY292ZXJlckJlbmNobWFya0Rpc2NvdmVyZXJfUHJvamVjdEluaXRpYWxpemF0aW9uU3ViVGFzaz1Qcm9qZWN0IGluaXRpYWxpemF0aW9uCitEaXNjb3ZlcmVyQmVuY2htYXJrRGlzY292ZXJlcl9TYXZpbmdCZW5jaG1hcmtEYXRhU3ViVGFzaz1TYXZpbmcgYmVuY2htYXJrIGRhdGEKK01lbW9yeU1lYXN1cmVtZW50Sm9iX01lbW9yeU1lYXN1cmVFdmVyeU1zPU1lbW9yeSBtZWFzdXJlZCBldmVyeSB7MH0gbXMuCitYbWlUb0h0bWxBcHBsaWNhdGlvbl9NZWFzdXJlTWVtb3J5VXNlPU1lYXN1cmUgbWVtb3J5IHVzZSAodHJ1ZXxmYWxzZSkKK1htaVRvSHRtbEFwcGxpY2F0aW9uX1RhcmdldF9Gb2xkZXJfUGF0aD1UYXJnZXQgZm9sZGVyIHBhdGgKK1htaVRvSHRtbEFwcGxpY2F0aW9uX1hNSV9maWxlX3BhdGg9WE1JIGZpbGUgcGF0aApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9jb3JlL2ludGVybmFsL3JlcG9ydGluZy9IdG1sUmVwb3J0LmVtdGwgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL2NvcmUvaW50ZXJuYWwvcmVwb3J0aW5nL0h0bWxSZXBvcnQuZW10bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTJiYzA4Ni4uMDAwMDAwMAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL2NvcmUvaW50ZXJuYWwvcmVwb3J0aW5nL0h0bWxSZXBvcnQuZW10bAorKysgL2Rldi9udWxsCkBAIC0xLDcwMDEgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCi08eG1pOlhNSSB4bWk6dmVyc2lvbj0iMi4wIiB4bWxuczp4bWk9Imh0dHA6Ly93d3cub21nLm9yZy9YTUkiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zOmVjb3JlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIiB4bWxuczptdGw9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvYWNjZWxlby9tdGwvMy4wIiB4bWxuczpvY2wuZWNvcmU9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL0Vjb3JlIj4NCi0gIDxtdGw6TW9kdWxlIG5hbWU9Ikh0bWxSZXBvcnQiIG5zVVJJPSJvcmc6OmVjbGlwc2U6Om1vZGlzY286OmluZnJhOjpkaXNjb3Zlcnk6OmJlbmNobWFyazo6cmVwb3J0aW5nOjpIdG1sUmVwb3J0IiBzdGFydEhlYWRlclBvc2l0aW9uPSIyOSIgZW5kSGVhZGVyUG9zaXRpb249IjI3MyI+DQotICAgIDxpbnB1dD4NCi0gICAgICA8dGFrZXNUeXBlc0Zyb20gaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLyIvPg0KLSAgICA8L2lucHV0Pg0KLSAgICA8aW5wdXQ+DQotICAgICAgPHRha2VzVHlwZXNGcm9tIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9EaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vZGlzY292ZXJ5L2xhdW5jaCMvL2NhdGFsb2ciLz4NCi0gICAgPC9pbnB1dD4NCi0gICAgPGlucHV0Pg0KLSAgICAgIDx0YWtlc1R5cGVzRnJvbSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vRGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2Rpc2NvdmVyeS9sYXVuY2gjLy9sYXVuY2giLz4NCi0gICAgPC9pbnB1dD4NCi0gICAgPG93bmVkTW9kdWxlRWxlbWVudCB4c2k6dHlwZT0ibXRsOlF1ZXJ5IiBuYW1lPSJtYXhFeGVjdXRpb25UaW1lIiB2aXNpYmlsaXR5PSJQdWJsaWMiPg0KLSAgICAgIDxwYXJhbWV0ZXIgbmFtZT0iaXRlcmF0aW9ucyIgZVR5cGU9Ii8zL1NldChEaXNjb3ZlcnlJdGVyYXRpb24pIi8+DQotICAgICAgPGV4cHJlc3Npb24geHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIiByZWZlcnJlZE9wZXJhdGlvbj0iLzEvT2NsQW55X0NsYXNzL2ludm9rZSI+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpBbnlUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvT2NsQW55Ii8+DQotICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9InNlbGYiIGVUeXBlPSIvMy9TZXQoRGlzY292ZXJ5SXRlcmF0aW9uKSIgcmVmZXJyZWRWYXJpYWJsZT0iLzUiLz4NCi0gICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0ib3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLnJlcG9ydGluZy5pbnRlcm5hbC5SZXBvcnRpbmdVdGlsaXRpZXMiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSJtYXhFeGVjdXRpb25UaW1lKGphdmEudXRpbC5Db2xsZWN0aW9uKSI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpDb2xsZWN0aW9uTGl0ZXJhbEV4cCIgZVR5cGU9Ii8zL1NlcXVlbmNlKFNldChEaXNjb3ZlcnlJdGVyYXRpb24pKSIga2luZD0iU2VxdWVuY2UiPg0KLSAgICAgICAgICA8cGFydCB4c2k6dHlwZT0ib2NsLmVjb3JlOkNvbGxlY3Rpb25JdGVtIiBlVHlwZT0iLzMvU2V0KERpc2NvdmVyeUl0ZXJhdGlvbikiPg0KLSAgICAgICAgICAgIDxpdGVtIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9Iml0ZXJhdGlvbnMiIGVUeXBlPSIvMy9TZXQoRGlzY292ZXJ5SXRlcmF0aW9uKSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvbWF4RXhlY3V0aW9uVGltZS9pdGVyYXRpb25zIi8+DQotICAgICAgICAgIDwvcGFydD4NCi0gICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgPC9leHByZXNzaW9uPg0KLSAgICAgIDx0eXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgPC9vd25lZE1vZHVsZUVsZW1lbnQ+DQotICAgIDxvd25lZE1vZHVsZUVsZW1lbnQgeHNpOnR5cGU9Im10bDpRdWVyeSIgbmFtZT0ibWF4U2F2ZVRpbWUiIHZpc2liaWxpdHk9IlB1YmxpYyI+DQotICAgICAgPHBhcmFtZXRlciBuYW1lPSJpdGVyYXRpb25zIiBlVHlwZT0iLzMvU2V0KERpc2NvdmVyeUl0ZXJhdGlvbikiLz4NCi0gICAgICA8ZXhwcmVzc2lvbiB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiIHJlZmVycmVkT3BlcmF0aW9uPSIvMS9PY2xBbnlfQ2xhc3MvaW52b2tlIj4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOkFueVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9PY2xBbnkiLz4NCi0gICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0ic2VsZiIgZVR5cGU9Ii8zL1NldChEaXNjb3ZlcnlJdGVyYXRpb24pIiByZWZlcnJlZFZhcmlhYmxlPSIvOCIvPg0KLSAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsucmVwb3J0aW5nLmludGVybmFsLlJlcG9ydGluZ1V0aWxpdGllcyI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9Im1heFNhdmVUaW1lKGphdmEudXRpbC5Db2xsZWN0aW9uKSI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpDb2xsZWN0aW9uTGl0ZXJhbEV4cCIgZVR5cGU9Ii8zL1NlcXVlbmNlKFNldChEaXNjb3ZlcnlJdGVyYXRpb24pKSIga2luZD0iU2VxdWVuY2UiPg0KLSAgICAgICAgICA8cGFydCB4c2k6dHlwZT0ib2NsLmVjb3JlOkNvbGxlY3Rpb25JdGVtIiBlVHlwZT0iLzMvU2V0KERpc2NvdmVyeUl0ZXJhdGlvbikiPg0KLSAgICAgICAgICAgIDxpdGVtIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9Iml0ZXJhdGlvbnMiIGVUeXBlPSIvMy9TZXQoRGlzY292ZXJ5SXRlcmF0aW9uKSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvbWF4U2F2ZVRpbWUvaXRlcmF0aW9ucyIvPg0KLSAgICAgICAgICA8L3BhcnQ+DQotICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgIDwvZXhwcmVzc2lvbj4NCi0gICAgICA8dHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgIDwvb3duZWRNb2R1bGVFbGVtZW50Pg0KLSAgICA8b3duZWRNb2R1bGVFbGVtZW50IHhzaTp0eXBlPSJtdGw6UXVlcnkiIG5hbWU9InNpemVXaXRoVW5pdCIgdmlzaWJpbGl0eT0iUHVibGljIj4NCi0gICAgICA8cGFyYW1ldGVyIG5hbWU9InZhbHVlIj4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgPC9wYXJhbWV0ZXI+DQotICAgICAgPGV4cHJlc3Npb24geHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIiByZWZlcnJlZE9wZXJhdGlvbj0iLzEvT2NsQW55X0NsYXNzL2ludm9rZSI+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpBbnlUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvT2NsQW55Ii8+DQotICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9InNlbGYiIHJlZmVycmVkVmFyaWFibGU9Ii8xMSI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0ib3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLnJlcG9ydGluZy5pbnRlcm5hbC5SZXBvcnRpbmdVdGlsaXRpZXMiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSJzaXplV2l0aFVuaXQoamF2YS5sYW5nLkRvdWJsZSkiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6Q29sbGVjdGlvbkxpdGVyYWxFeHAiIGVUeXBlPSIvMy9TZXF1ZW5jZShSZWFsKSIga2luZD0iU2VxdWVuY2UiPg0KLSAgICAgICAgICA8cGFydCB4c2k6dHlwZT0ib2NsLmVjb3JlOkNvbGxlY3Rpb25JdGVtIj4NCi0gICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgIDxpdGVtIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9InZhbHVlIiByZWZlcnJlZFZhcmlhYmxlPSIvMC9zaXplV2l0aFVuaXQvdmFsdWUiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICA8L2l0ZW0+DQotICAgICAgICAgIDwvcGFydD4NCi0gICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgPC9leHByZXNzaW9uPg0KLSAgICAgIDx0eXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICA8L293bmVkTW9kdWxlRWxlbWVudD4NCi0gICAgPG93bmVkTW9kdWxlRWxlbWVudCB4c2k6dHlwZT0ibXRsOlF1ZXJ5IiBuYW1lPSJ0aW1lV2l0aFVuaXQiIHZpc2liaWxpdHk9IlB1YmxpYyI+DQotICAgICAgPHBhcmFtZXRlciBuYW1lPSJ2YWx1ZSI+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgIDwvcGFyYW1ldGVyPg0KLSAgICAgIDxleHByZXNzaW9uIHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCIgcmVmZXJyZWRPcGVyYXRpb249Ii8xL09jbEFueV9DbGFzcy9pbnZva2UiPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6QW55VHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09jbEFueSIvPg0KLSAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJzZWxmIiByZWZlcnJlZFZhcmlhYmxlPSIvMTQiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9Im9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5yZXBvcnRpbmcuaW50ZXJuYWwuUmVwb3J0aW5nVXRpbGl0aWVzIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0idGltZVdpdGhVbml0KGphdmEubGFuZy5Eb3VibGUpIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOkNvbGxlY3Rpb25MaXRlcmFsRXhwIiBlVHlwZT0iLzMvU2VxdWVuY2UoUmVhbCkiIGtpbmQ9IlNlcXVlbmNlIj4NCi0gICAgICAgICAgPHBhcnQgeHNpOnR5cGU9Im9jbC5lY29yZTpDb2xsZWN0aW9uSXRlbSI+DQotICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICA8aXRlbSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJ2YWx1ZSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvdGltZVdpdGhVbml0L3ZhbHVlIj4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgPC9pdGVtPg0KLSAgICAgICAgICA8L3BhcnQ+DQotICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgIDwvZXhwcmVzc2lvbj4NCi0gICAgICA8dHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgPC9vd25lZE1vZHVsZUVsZW1lbnQ+DQotICAgIDxvd25lZE1vZHVsZUVsZW1lbnQgeHNpOnR5cGU9Im10bDpUZW1wbGF0ZSIgbmFtZT0iSHRtbFJlcG9ydCIgdmlzaWJpbGl0eT0iUHVibGljIiBtYWluPSJ0cnVlIj4NCi0gICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJiN4OTsmI3hBOyIvPg0KLSAgICAgIDxib2R5IHhzaTp0eXBlPSJtdGw6RmlsZUJsb2NrIiBvcGVuTW9kZT0iT3ZlcldyaXRlIj4NCi0gICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImI3g5OyZsdDshRE9DVFlQRSBodG1sIFBVQkxJQyAmcXVvdDstLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiZxdW90OyYjeEE7JnF1b3Q7aHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCZxdW90Oz4mI3hBOyZsdDtodG1sPiYjeEE7Jmx0O2hlYWQ+JiN4QTsmI3hBOyZsdDtzdHlsZSB0eXBlPSZxdW90O3RleHQvY3NzJnF1b3Q7PiYjeEE7ICAuZ3JhcGggeyYjeEE7ICAgIGJhY2tncm91bmQtY29sb3I6ICNFMEUwRTA7JiN4QTsgICAgYm9yZGVyOiBzb2xpZCAxcHggYmxhY2s7JiN4QTsgIH0mI3hBOyAgLmdyYXBoIHRkIHsmI3hBOyAgICBmb250LWZhbWlseTogdmVyZGFuYSwgYXJpYWwsIHNhbnMgc2VyaWY7JiN4QTsgIH0mI3hBOyAgLmJhciB7JiN4QTsgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7JiN4QTsgICAgdGV4dC1hbGlnbjogcmlnaHQ7JiN4QTsgICAgYm9yZGVyOiBzb2xpZCAxcHggYmxhY2s7JiN4QTsgICAgd2lkdGg6IDQwMHB4OyYjeEE7ICB9JiN4QTsgIC5iYXIgZGl2IHsgJiN4QTsgICAgYmFja2dyb3VuZC1jb2xvcjogI0EwQTBGRjsmI3hBOyAgICB0ZXh0LWFsaWduOiByaWdodDsmI3hBOyAgICBmbG9hdDogbGVmdDsmI3hBOyAgICBoZWlnaHQ6IDIwcHg7JiN4QTsgIH0mI3hBOyAgYm9keSB7JiN4QTsgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7JiN4QTsgIH0mI3hBOyAgdGQgeyYjeEE7ICAgIHRleHQtYWxpZ246IGNlbnRlcjsmI3hBOyAgfSYjeEE7Jmx0Oy9zdHlsZT4mI3hBOyYjeEE7Jmx0O3RpdGxlPk1vRGlzY28gSmF2YSBEaXNjb3ZlciBCZW5jaG1hcmsmbHQ7L3RpdGxlPiYjeEE7Jmx0Oy9oZWFkPiYjeEE7JiN4QTsmbHQ7Ym9keT4mI3hBOyYjeEE7JiN4QTsmI3hBOyZsdDtoMj5TeXN0ZW0gSW5mb3JtYXRpb24mbHQ7L2gyPiYjeEE7ICAmbHQ7dGFibGUgYm9yZGVyPSZxdW90OzEmcXVvdDsgY2VsbHBhZGRpbmc9JnF1b3Q7MiZxdW90OyBjZWxsc3BhY2luZz0mcXVvdDswJnF1b3Q7PiYjeEE7ICAgICZsdDt0cj4mI3hBOyAgICAgICAmbHQ7dGg+T1MgbmFtZSZsdDsvdGg+JiN4QTsgICAgICAgJmx0O3RkPiIvPg0KLSAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iYiIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9iIj4NCi0gICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9CZW5jaG1hcmsiLz4NCi0gICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0JlbmNobWFyay9vc05hbWUiLz4NCi0gICAgICAgIDwvYm9keT4NCi0gICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7L3RkPiYjeEE7ICAgICZsdDsvdHI+JiN4QTsgICAgICAgJiN4QTsgICAgJmx0O3RyPiYjeEE7ICAgICAgICZsdDt0aD5PUyB2ZXJzaW9uJmx0Oy90aD4mI3hBOyAgICAgICAmbHQ7dGQ+Ii8+DQotICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJiIiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L2IiPg0KLSAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0JlbmNobWFyayIvPg0KLSAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vQmVuY2htYXJrL29zVmVyc2lvbiIvPg0KLSAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDsvdGQ+JiN4QTsgICAgJmx0Oy90cj4mI3hBOyAgICAgICAmI3hBOyAgICAmbHQ7dHI+JiN4QTsgICAgICAgJmx0O3RoPk9TIGFyY2hpdGVjdHVyZSZsdDsvdGg+JiN4QTsgICAgICAgJmx0O3RkPiIvPg0KLSAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iYiIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9iIj4NCi0gICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9CZW5jaG1hcmsiLz4NCi0gICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0JlbmNobWFyay9vc0FyY2hpdGVjdHVyZSIvPg0KLSAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDsvdGQ+JiN4QTsgICAgJmx0Oy90cj4mI3hBOyAgICAgICAmI3hBOyAgICAmbHQ7dHI+JiN4QTsgICAgICAgJmx0O3RoPk51bWJlciBvZiBwcm9jZXNzb3IgY29yZXMmbHQ7L3RoPiYjeEE7ICAgICAgICZsdDt0ZD4iLz4NCi0gICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXIiLz4NCi0gICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJiIiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L2IiPg0KLSAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0JlbmNobWFyayIvPg0KLSAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vQmVuY2htYXJrL3Byb2Nlc3NvckNvdW50Ii8+DQotICAgICAgICA8L2JvZHk+DQotICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0Oy90ZD4mI3hBOyAgICAmbHQ7L3RyPiYjeEE7JiN4QTsgICAgJmx0O3RyPiYjeEE7ICAgICAgICZsdDt0aD5Qcm9jZXNzb3IgbmFtZSZsdDsvdGg+JiN4QTsgICAgICAgJmx0O3RkPiIvPg0KLSAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iYiIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9iIj4NCi0gICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9CZW5jaG1hcmsiLz4NCi0gICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0JlbmNobWFyay9wcm9jZXNzb3JOYW1lIi8+DQotICAgICAgICA8L2JvZHk+DQotICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0Oy90ZD4mI3hBOyAgICAmbHQ7L3RyPiYjeEE7JiN4QTsgICAgJmx0O3RyPiYjeEE7ICAgICAgICZsdDt0aD5Qcm9jZXNzb3IgZGVzY3JpcHRpb24mbHQ7L3RoPiYjeEE7ICAgICAgICZsdDt0ZD4iLz4NCi0gICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImIiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvYiI+DQotICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vQmVuY2htYXJrIi8+DQotICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9CZW5jaG1hcmsvcHJvY2Vzc29yRGVzY3JpcHRpb24iLz4NCi0gICAgICAgIDwvYm9keT4NCi0gICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7L3RkPiYjeEE7ICAgICZsdDsvdHI+JiN4QTsmI3hBOyAgICAmbHQ7dHI+JiN4QTsgICAgICAgJmx0O3RoPlByb2Nlc3NvciBjYWNoZSBzaXplJmx0Oy90aD4mI3hBOyAgICAgICAmbHQ7dGQ+Ii8+DQotICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJiIiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L2IiPg0KLSAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0JlbmNobWFyayIvPg0KLSAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vQmVuY2htYXJrL3Byb2Nlc3NvckNhY2hlU2l6ZSIvPg0KLSAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDsvdGQ+JiN4QTsgICAgJmx0Oy90cj4mI3hBOyYjeEE7ICAgICZsdDt0cj4mI3hBOyAgICAgICAmbHQ7dGg+U3lzdGVtIG1lbW9yeSZsdDsvdGg+JiN4QTsgICAgICAgJmx0O3RkPiIvPg0KLSAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iYiIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9iIj4NCi0gICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9CZW5jaG1hcmsiLz4NCi0gICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0JlbmNobWFyay9zeXN0ZW1NZW1vcnkiLz4NCi0gICAgICAgIDwvYm9keT4NCi0gICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7L3RkPiYjeEE7ICAgICZsdDsvdHI+JiN4QTsgICZsdDsvdGFibGU+JiN4QTsmI3hBOyYjeEE7Jmx0O2gyPkV4ZWN1dGlvbiB0aW1lIGJ5IHByb2plY3Qgc2l6ZSZsdDsvaDI+JiN4QTsmI3hBOyZsdDtpbWcgc3JjPSZxdW90O0Rpc2NvdmVyeVRpbWVCeVByb2plY3RTaXplT3ZlcmFsbC5wbmcmcXVvdDsvPiYjeEE7JiN4QTsmI3hBOyIvPg0KLSAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpJZkJsb2NrIj4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDtoMj5NZW1vcnkgdXNlIHRpbWUgYnkgcHJvamVjdCBzaXplJmx0Oy9oMj4mI3hBOyYjeEE7Jmx0O2ltZyBzcmM9JnF1b3Q7bWVtb3J5QnlQcm9qZWN0U2l6ZU92ZXJhbGwucG5nJnF1b3Q7Lz4mI3hBOyYjeEE7Ii8+DQotICAgICAgICAgIDxpZkV4cHIgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvQm9vbGVhbiIvPg0KLSAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXIiLz4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5SXRlcmF0aW9uIi8+DQotICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiIGVUeXBlPSIvMy9PcmRlcmVkU2V0KERpc2NvdmVyeUl0ZXJhdGlvbikiPg0KLSAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCIgZVR5cGU9Ii8zL09yZGVyZWRTZXQoRGlzY292ZXJ5KSI+DQotICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iYiIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9iIj4NCi0gICAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9CZW5jaG1hcmsiLz4NCi0gICAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0JlbmNobWFyay9kaXNjb3ZlcmllcyIvPg0KLSAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9PcmRlcmVkU2V0KFQpX0NsYXNzL2ZpcnN0Ii8+DQotICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5L2l0ZXJhdGlvbnMiLz4NCi0gICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09yZGVyZWRTZXQoVClfQ2xhc3MvZmlyc3QiLz4NCi0gICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5SXRlcmF0aW9uL21heFVzZWRNZW1vcnlJbkJ5dGVzIi8+DQotICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6SW50ZWdlckxpdGVyYWxFeHAiIGludGVnZXJTeW1ib2w9IjAiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXIiLz4NCi0gICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXJfQ2xhc3MvJTNDJTNFIi8+DQotICAgICAgICAgIDwvaWZFeHByPg0KLSAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiYjeEE7JiN4QTsmbHQ7aDI+UmVzdWx0cyBPdmVydmlldyZsdDsvaDI+JiN4QTsmI3hBOyAgJmx0O3RhYmxlIGJvcmRlcj0mcXVvdDsxJnF1b3Q7IGNlbGxwYWRkaW5nPSZxdW90OzImcXVvdDsgY2VsbHNwYWNpbmc9JnF1b3Q7MCZxdW90Oz4mI3hBOyAgICAmbHQ7dHI+JiN4QTsgICAgICAgJmx0O3RoPlByb2plY3QmbHQ7L3RoPiYjeEE7JiN4OTsgICAmbHQ7dGg+RGlzY292ZXJlciZsdDsvdGg+JiN4QTsgICAgICAgJmx0O3RoPkF2ZXJhZ2UgZGlzY292ZXJ5IHRpbWUmbHQ7L3RoPiYjeEE7ICAgICAgICZsdDt0aD5BdmVyYWdlIHNhdmUgdGltZSZsdDsvdGg+JiN4QTsgICAgICAgJmx0O3RoPk51bWJlciBvZiBtb2RlbCBlbGVtZW50cyZsdDsvdGg+JiN4QTsgICAgICAgJmx0O3RoPlRvdGFsIHNpemUmbHQ7L3RoPiYjeEE7ICAgICAgICZsdDt0aD5BdmVyYWdlIGZpbGUgc2l6ZSZsdDsvdGg+JiN4QTsgICAgICAgJmx0O3RoPlRvdGFsIGxpbmVzJmx0Oy90aD4mI3hBOyAgICAgICAmbHQ7dGg+QXZlcmFnZSBsaW5lcyBwZXIgZmlsZSZsdDsvdGg+JiN4QTsgICAgICAgJmx0O3RoPlhNSSBzaXplJmx0Oy90aD4mI3hBOyAgICAgJmx0Oy90cj4mI3hBOyIvPg0KLSAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpGb3JCbG9jayI+DQotICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSIgICAgICAgJiN4OTsgICZsdDt0cj4mI3hBOyAgICAgICAgICAgICZsdDt0ZD4mbHQ7YSBocmVmPSZxdW90O1JlcG9ydC8iLz4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlIi8+DQotICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvcHJvamVjdCIvPg0KLSAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlL25hbWUiLz4NCi0gICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iLmh0bWwmcXVvdDs+Ii8+DQotICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9SZXNvdXJjZSIvPg0KLSAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5L3Byb2plY3QiLz4NCi0gICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9SZXNvdXJjZS9uYW1lIi8+DQotICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDsvYT4mbHQ7L3RkPiYjeEE7JiN4OTsmI3g5OyYjeDk7Jmx0O3RkPiZsdDthIGhyZWY9JnF1b3Q7UmVwb3J0LyIvPg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiIHJlZmVycmVkT3BlcmF0aW9uPSIvMS9TdHJpbmdfQ2xhc3MvKyI+DQotICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5L2Rpc2NvdmVyZXJJZCIvPg0KLSAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUmVzb3VyY2UiLz4NCi0gICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5L3Byb2plY3QiLz4NCi0gICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUmVzb3VyY2UvbmFtZSIvPg0KLSAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9Ii5odG1sJnF1b3Q7PiIvPg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeS9kaXNjb3ZlcmVySWQiLz4NCi0gICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0Oy9hPiZsdDsvdGQ+JiN4QTsgICAgICAgICAgICAmbHQ7dGQ+Ii8+DQotICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJtdGw6UXVlcnlJbnZvY2F0aW9uIiBkZWZpbml0aW9uPSIvMC90aW1lV2l0aFVuaXQiPg0KLSAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UmVhbExpdGVyYWxFeHAiIHJlYWxTeW1ib2w9IjAuMCI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeS9kaXNjb3ZlcnlUaW1lQXZlcmFnZUluU2Vjb25kcyIvPg0KLSAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWxfQ2xhc3MvKyIvPg0KLSAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiAoJmFtcDtzaWdtYTsgPSAiLz4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpRdWVyeUludm9jYXRpb24iIGRlZmluaXRpb249Ii8wL3RpbWVXaXRoVW5pdCI+DQotICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpSZWFsTGl0ZXJhbEV4cCIgcmVhbFN5bWJvbD0iMC4wIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5L2V4ZWN1dGlvblRpbWVTdGFuZGFyZERldmlhdGlvbiIvPg0KLSAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWxfQ2xhc3MvKyIvPg0KLSAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9InMpJmx0Oy90ZD4mI3hBOyAgICAgICAgICAgICZsdDt0ZD4iLz4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpRdWVyeUludm9jYXRpb24iIGRlZmluaXRpb249Ii8wL3RpbWVXaXRoVW5pdCI+DQotICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpSZWFsTGl0ZXJhbEV4cCIgcmVhbFN5bWJvbD0iMC4wIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5L3NhdmVUaW1lQXZlcmFnZUluU2Vjb25kcyIvPg0KLSAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWxfQ2xhc3MvKyIvPg0KLSAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiAoJmFtcDtzaWdtYTsgPSAiLz4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpRdWVyeUludm9jYXRpb24iIGRlZmluaXRpb249Ii8wL3RpbWVXaXRoVW5pdCI+DQotICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpSZWFsTGl0ZXJhbEV4cCIgcmVhbFN5bWJvbD0iMC4wIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5L3NhdmVUaW1lU3RhbmRhcmREZXZpYXRpb24iLz4NCi0gICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsX0NsYXNzLysiLz4NCi0gICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSJzKSZsdDsvdGQ+JiN4QTsgICAgICAgICAgICAmbHQ7dGQ+Ii8+DQotICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeS9udW1iZXJPZk1vZGVsRWxlbWVudHMiLz4NCi0gICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0Oy90ZD4mI3hBOyAgICAgICAgICAgICZsdDt0ZD4iLz4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpRdWVyeUludm9jYXRpb24iIGRlZmluaXRpb249Ii8wL3NpemVXaXRoVW5pdCI+DQotICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpSZWFsTGl0ZXJhbEV4cCIgcmVhbFN5bWJvbD0iMC4wIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXIiLz4NCi0gICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Byb2plY3QiLz4NCi0gICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlIi8+DQotICAgICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvcHJvamVjdCIvPg0KLSAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlR5cGVFeHAiIGVUeXBlPSIvNDEvUHJvamVjdCI+DQotICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUHJvamVjdCIvPg0KLSAgICAgICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvT2NsQW55X0NsYXNzL29jbEFzVHlwZSIvPg0KLSAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUmVzb3VyY2UvdG90YWxTaXplSW5CeXRlcyIvPg0KLSAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWxfQ2xhc3MvKyIvPg0KLSAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDsvdGQ+JiN4QTsgICAgICAgICAgICAmbHQ7dGQ+Ii8+DQotICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJtdGw6UXVlcnlJbnZvY2F0aW9uIiBkZWZpbml0aW9uPSIvMC9zaXplV2l0aFVuaXQiPg0KLSAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UmVhbExpdGVyYWxFeHAiIHJlYWxTeW1ib2w9IjAuMCI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9JbnRlZ2VyIi8+DQotICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9Qcm9qZWN0Ii8+DQotICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9SZXNvdXJjZSIvPg0KLSAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5L3Byb2plY3QiLz4NCi0gICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpUeXBlRXhwIiBlVHlwZT0iLzQxL1Byb2plY3QiPg0KLSAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Byb2plY3QiLz4NCi0gICAgICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09jbEFueV9DbGFzcy9vY2xBc1R5cGUiLz4NCi0gICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Byb2plY3QvYXZlcmFnZUZpbGVTaXplSW5CeXRlcyIvPg0KLSAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWxfQ2xhc3MvKyIvPg0KLSAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDsvdGQ+JiN4QTsgICAgICAgICAgICAmbHQ7dGQ+Ii8+DQotICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Byb2plY3QiLz4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9SZXNvdXJjZSIvPg0KLSAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvcHJvamVjdCIvPg0KLSAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpUeXBlRXhwIiBlVHlwZT0iLzQxL1Byb2plY3QiPg0KLSAgICAgICAgICAgICAgICA8cmVmZXJyZWRUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUHJvamVjdCIvPg0KLSAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09jbEFueV9DbGFzcy9vY2xBc1R5cGUiLz4NCi0gICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9Qcm9qZWN0L3RvdGFsTGluZXMiLz4NCi0gICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0Oy90ZD4mI3hBOyAgICAgICAgICAgICZsdDt0ZD4iLz4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9JbnRlZ2VyIi8+DQotICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUHJvamVjdCIvPg0KLSAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlIi8+DQotICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeS9wcm9qZWN0Ii8+DQotICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlR5cGVFeHAiIGVUeXBlPSIvNDEvUHJvamVjdCI+DQotICAgICAgICAgICAgICAgIDxyZWZlcnJlZFR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9Qcm9qZWN0Ii8+DQotICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvT2NsQW55X0NsYXNzL29jbEFzVHlwZSIvPg0KLSAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Byb2plY3QvYXZlcmFnZUxpbmVzUGVyRmlsZSIvPg0KLSAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7L3RkPiYjeEE7ICAgICAgICAgICAgJmx0O3RkPiIvPg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ibXRsOlF1ZXJ5SW52b2NhdGlvbiIgZGVmaW5pdGlvbj0iLzAvc2l6ZVdpdGhVbml0Ij4NCi0gICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlJlYWxMaXRlcmFsRXhwIiByZWFsU3ltYm9sPSIwLjAiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkveG1pU2l6ZUluQnl0ZXMiLz4NCi0gICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsX0NsYXNzLysiLz4NCi0gICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7L3RkPiYjeEE7ICAgICAgICAgJmx0Oy90cj4mI3hBOyIvPg0KLSAgICAgICAgICA8bG9vcFZhcmlhYmxlIG5hbWU9ImRpc2NvdmVyeSI+DQotICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgIDwvbG9vcFZhcmlhYmxlPg0KLSAgICAgICAgICA8aXRlclNldCB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCIgZVR5cGU9Ii8zL09yZGVyZWRTZXQoRGlzY292ZXJ5KSI+DQotICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJiIiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L2IiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vQmVuY2htYXJrIi8+DQotICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vQmVuY2htYXJrL2Rpc2NvdmVyaWVzIi8+DQotICAgICAgICAgIDwvaXRlclNldD4NCi0gICAgICAgIDwvYm9keT4NCi0gICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSIgICZsdDsvdGFibGU+JiN4QTsmI3hBOyIvPg0KLSAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpJZkJsb2NrIj4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDtoMj5FeGVjdXRpb24gdGltZXMgcGVyIGl0ZXJhdGlvbiZsdDsvaDI+JiN4QTsmI3hBOyIvPg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ibXRsOkZvckJsb2NrIj4NCi0gICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0O2gzPiIvPg0KLSAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9SZXNvdXJjZSIvPg0KLSAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEvZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeS9wcm9qZWN0Ii8+DQotICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlL25hbWUiLz4NCi0gICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiB3aXRoICZsdDthIGhyZWY9JnF1b3Q7UmVwb3J0LyIvPg0KLSAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCIgcmVmZXJyZWRPcGVyYXRpb249Ii8xL1N0cmluZ19DbGFzcy8rIj4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMS9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5L2Rpc2NvdmVyZXJJZCIvPg0KLSAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlIi8+DQotICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4xL2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvcHJvamVjdCIvPg0KLSAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUmVzb3VyY2UvbmFtZSIvPg0KLSAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9Ii5odG1sJnF1b3Q7PiIvPg0KLSAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMS9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5L2Rpc2NvdmVyZXJJZCIvPg0KLSAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0Oy9hPiZsdDsvaDM+JiN4QTsiLz4NCi0gICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ibXRsOkxldEJsb2NrIj4NCi0gICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImI3hBOyZsdDt0YWJsZSB3aWR0aD0mcXVvdDs2MDAmcXVvdDsgY2xhc3M9JnF1b3Q7Z3JhcGgmcXVvdDsgY2VsbHNwYWNpbmc9JnF1b3Q7NiZxdW90OyBjZWxscGFkZGluZz0mcXVvdDswJnF1b3Q7PiYjeEE7ICAmbHQ7dHI+JiN4QTsgICAgJmx0O3RoPml0ZXJhdGlvbiZsdDsvdGg+Jmx0O3RoPnJlbGF0aXZlIGV4ZWN1dGlvbiB0aW1lJmx0Oy90aD4mbHQ7dGg+dGltZSZsdDsvdGg+JiN4QTsgICZsdDsvdHI+JiN4QTsmI3hBOyIvPg0KLSAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpGb3JCbG9jayI+DQotICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSIgICAgJmx0O3RyPiYjeEE7ICAgICAgJmx0O3RkPiIvPg0KLSAgICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJpIiByZWZlcnJlZFZhcmlhYmxlPSIvNjMiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9JbnRlZ2VyIi8+DQotICAgICAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9Ii8iLz4NCi0gICAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiIGVUeXBlPSIvMy9PcmRlcmVkU2V0KERpc2NvdmVyeUl0ZXJhdGlvbikiPg0KLSAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4xL2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvaXRlcmF0aW9ucyIvPg0KLSAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09yZGVyZWRTZXQoVClfQ2xhc3Mvc2l6ZSIvPg0KLSAgICAgICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7L3RkPiZsdDt0ZCBjbGFzcz0mcXVvdDtiYXImcXVvdDs+Jmx0O2RpdiBzdHlsZT0mcXVvdDt3aWR0aDogIi8+DQotICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5SXRlcmF0aW9uIiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMS9AYm9keS43L0Bib2R5LjEvZGlzY292ZXJ5SXRlcmF0aW9uIj4NCi0gICAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnlJdGVyYXRpb24iLz4NCi0gICAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeUl0ZXJhdGlvbi9kaXNjb3ZlcnlUaW1lSW5TZWNvbmRzIi8+DQotICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJtYXhFeGVjdXRpb25UaW1lIiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMS9AYm9keS43L21heEV4ZWN1dGlvblRpbWUiPg0KLSAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWxfQ2xhc3MvJTJGIi8+DQotICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6UmVhbExpdGVyYWxFeHAiIHJlYWxTeW1ib2w9IjEwMC4wIj4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsX0NsYXNzLyoiLz4NCi0gICAgICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJSZxdW90Oz4mbHQ7L2Rpdj4mbHQ7L3RkPiZsdDt0ZD4iLz4NCi0gICAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpRdWVyeUludm9jYXRpb24iIGRlZmluaXRpb249Ii8wL3RpbWVXaXRoVW5pdCI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpSZWFsTGl0ZXJhbEV4cCIgcmVhbFN5bWJvbD0iMC4wIj4NCi0gICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnlJdGVyYXRpb24iIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4xL0Bib2R5LjcvQGJvZHkuMS9kaXNjb3ZlcnlJdGVyYXRpb24iPg0KLSAgICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeUl0ZXJhdGlvbiIvPg0KLSAgICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5SXRlcmF0aW9uL2Rpc2NvdmVyeVRpbWVJblNlY29uZHMiLz4NCi0gICAgICAgICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsX0NsYXNzLysiLz4NCi0gICAgICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7L3RkPiYjeEE7ICAgICZsdDsvdHI+JiN4QTsiLz4NCi0gICAgICAgICAgICAgICAgPGxvb3BWYXJpYWJsZSBuYW1lPSJkaXNjb3ZlcnlJdGVyYXRpb24iPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeUl0ZXJhdGlvbiIvPg0KLSAgICAgICAgICAgICAgICA8L2xvb3BWYXJpYWJsZT4NCi0gICAgICAgICAgICAgICAgPGl0ZXJTZXQgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiIGVUeXBlPSIvMy9PcmRlcmVkU2V0KERpc2NvdmVyeUl0ZXJhdGlvbikiPg0KLSAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMS9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5L2l0ZXJhdGlvbnMiLz4NCi0gICAgICAgICAgICAgICAgPC9pdGVyU2V0Pg0KLSAgICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDsvdGFibGU+JiN4QTsmI3hBOyIvPg0KLSAgICAgICAgICAgICAgPGxldFZhcmlhYmxlIG5hbWU9Im1heEV4ZWN1dGlvblRpbWUiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICA8aW5pdEV4cHJlc3Npb24geHNpOnR5cGU9Im10bDpRdWVyeUludm9jYXRpb24iIGRlZmluaXRpb249Ii8wL21heEV4ZWN1dGlvblRpbWUiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIiBlVHlwZT0iLzMvT3JkZXJlZFNldChEaXNjb3ZlcnlJdGVyYXRpb24pIj4NCi0gICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMS9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5L2l0ZXJhdGlvbnMiLz4NCi0gICAgICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgICA8L2luaXRFeHByZXNzaW9uPg0KLSAgICAgICAgICAgICAgPC9sZXRWYXJpYWJsZT4NCi0gICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgPGxvb3BWYXJpYWJsZSBuYW1lPSJkaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgPC9sb29wVmFyaWFibGU+DQotICAgICAgICAgICAgPGl0ZXJTZXQgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiIGVUeXBlPSIvMy9PcmRlcmVkU2V0KERpc2NvdmVyeSkiPg0KLSAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJiIiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L2IiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9CZW5jaG1hcmsiLz4NCi0gICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vQmVuY2htYXJrL2Rpc2NvdmVyaWVzIi8+DQotICAgICAgICAgICAgPC9pdGVyU2V0Pg0KLSAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImI3hBOyZsdDtoMj5TYXZlIHRpbWVzIHBlciBpdGVyYXRpb24mbHQ7L2gyPiYjeEE7JiN4QTsiLz4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpGb3JCbG9jayI+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDtoMz4iLz4NCi0gICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUmVzb3VyY2UiLz4NCi0gICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4zL2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvcHJvamVjdCIvPg0KLSAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9SZXNvdXJjZS9uYW1lIi8+DQotICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSIgd2l0aCAmbHQ7YSBocmVmPSZxdW90O1JlcG9ydC8iLz4NCi0gICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiIHJlZmVycmVkT3BlcmF0aW9uPSIvMS9TdHJpbmdfQ2xhc3MvKyI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjMvZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeS9kaXNjb3ZlcmVySWQiLz4NCi0gICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9SZXNvdXJjZSIvPg0KLSAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMy9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5L3Byb2plY3QiLz4NCi0gICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlL25hbWUiLz4NCi0gICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSIuaHRtbCZxdW90Oz4iLz4NCi0gICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjMvZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeS9kaXNjb3ZlcmVySWQiLz4NCi0gICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDsvYT4mbHQ7L2gzPiYjeEE7Ii8+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpMZXRCbG9jayI+DQotICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJiN4QTsmbHQ7dGFibGUgd2lkdGg9JnF1b3Q7NjAwJnF1b3Q7IGNsYXNzPSZxdW90O2dyYXBoJnF1b3Q7IGNlbGxzcGFjaW5nPSZxdW90OzYmcXVvdDsgY2VsbHBhZGRpbmc9JnF1b3Q7MCZxdW90Oz4mI3hBOyAgJmx0O3RyPiYjeEE7ICAgICZsdDt0aD5pdGVyYXRpb24mbHQ7L3RoPiZsdDt0aD5yZWxhdGl2ZSBzYXZlIHRpbWUmbHQ7L3RoPiZsdDt0aD50aW1lKHMpJmx0Oy90aD4mI3hBOyAgJmx0Oy90cj4mI3hBOyYjeEE7Ii8+DQotICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ibXRsOkZvckJsb2NrIj4NCi0gICAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiAgICAmbHQ7dHI+JiN4QTsgICAgICAmbHQ7dGQ+Ii8+DQotICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImkiIHJlZmVycmVkVmFyaWFibGU9Ii83OSI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXIiLz4NCi0gICAgICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iLyIvPg0KLSAgICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9JbnRlZ2VyIi8+DQotICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCIgZVR5cGU9Ii8zL09yZGVyZWRTZXQoRGlzY292ZXJ5SXRlcmF0aW9uKSI+DQotICAgICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjMvZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeS9pdGVyYXRpb25zIi8+DQotICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvT3JkZXJlZFNldChUKV9DbGFzcy9zaXplIi8+DQotICAgICAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDsvdGQ+Jmx0O3RkIGNsYXNzPSZxdW90O2JhciZxdW90Oz4mbHQ7ZGl2IHN0eWxlPSZxdW90O3dpZHRoOiAiLz4NCi0gICAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnlJdGVyYXRpb24iIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4zL0Bib2R5LjcvQGJvZHkuMS9kaXNjb3ZlcnlJdGVyYXRpb24iPg0KLSAgICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeUl0ZXJhdGlvbiIvPg0KLSAgICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5SXRlcmF0aW9uL3NhdmVUaW1lSW5TZWNvbmRzIi8+DQotICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJtYXhTYXZlVGltZSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjMvQGJvZHkuNy9tYXhTYXZlVGltZSI+DQotICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbF9DbGFzcy8lMkYiLz4NCi0gICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpSZWFsTGl0ZXJhbEV4cCIgcmVhbFN5bWJvbD0iMTAwLjAiPg0KLSAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWxfQ2xhc3MvKiIvPg0KLSAgICAgICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSIlJnF1b3Q7PiZsdDsvZGl2PiZsdDsvdGQ+Jmx0O3RkPiIvPg0KLSAgICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ibXRsOlF1ZXJ5SW52b2NhdGlvbiIgZGVmaW5pdGlvbj0iLzAvdGltZVdpdGhVbml0Ij4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlJlYWxMaXRlcmFsRXhwIiByZWFsU3ltYm9sPSIwLjAiPg0KLSAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeUl0ZXJhdGlvbiIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjMvQGJvZHkuNy9AYm9keS4xL2Rpc2NvdmVyeUl0ZXJhdGlvbiI+DQotICAgICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5SXRlcmF0aW9uIi8+DQotICAgICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnlJdGVyYXRpb24vc2F2ZVRpbWVJblNlY29uZHMiLz4NCi0gICAgICAgICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsX0NsYXNzLysiLz4NCi0gICAgICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7L3RkPiYjeEE7ICAgICZsdDsvdHI+JiN4QTsiLz4NCi0gICAgICAgICAgICAgICAgPGxvb3BWYXJpYWJsZSBuYW1lPSJkaXNjb3ZlcnlJdGVyYXRpb24iPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeUl0ZXJhdGlvbiIvPg0KLSAgICAgICAgICAgICAgICA8L2xvb3BWYXJpYWJsZT4NCi0gICAgICAgICAgICAgICAgPGl0ZXJTZXQgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiIGVUeXBlPSIvMy9PcmRlcmVkU2V0KERpc2NvdmVyeUl0ZXJhdGlvbikiPg0KLSAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMy9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5L2l0ZXJhdGlvbnMiLz4NCi0gICAgICAgICAgICAgICAgPC9pdGVyU2V0Pg0KLSAgICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDsvdGFibGU+JiN4QTsmI3hBOyIvPg0KLSAgICAgICAgICAgICAgPGxldFZhcmlhYmxlIG5hbWU9Im1heFNhdmVUaW1lIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgPGluaXRFeHByZXNzaW9uIHhzaTp0eXBlPSJtdGw6UXVlcnlJbnZvY2F0aW9uIiBkZWZpbml0aW9uPSIvMC9tYXhTYXZlVGltZSI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiIGVUeXBlPSIvMy9PcmRlcmVkU2V0KERpc2NvdmVyeUl0ZXJhdGlvbikiPg0KLSAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4zL2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvaXRlcmF0aW9ucyIvPg0KLSAgICAgICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgICAgIDwvaW5pdEV4cHJlc3Npb24+DQotICAgICAgICAgICAgICA8L2xldFZhcmlhYmxlPg0KLSAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICA8bG9vcFZhcmlhYmxlIG5hbWU9ImRpc2NvdmVyeSI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICA8L2xvb3BWYXJpYWJsZT4NCi0gICAgICAgICAgICA8aXRlclNldCB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCIgZVR5cGU9Ii8zL09yZGVyZWRTZXQoRGlzY292ZXJ5KSI+DQotICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImIiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvYiI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0JlbmNobWFyayIvPg0KLSAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9CZW5jaG1hcmsvZGlzY292ZXJpZXMiLz4NCi0gICAgICAgICAgICA8L2l0ZXJTZXQ+DQotICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiYjeEE7JiN4QTsiLz4NCi0gICAgICAgICAgPGlmRXhwciB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9Cb29sZWFuIi8+DQotICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXIiLz4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiIGVUeXBlPSIvMy9PcmRlcmVkU2V0KERpc2NvdmVyeUl0ZXJhdGlvbikiPg0KLSAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCIgZVR5cGU9Ii8zL09yZGVyZWRTZXQoRGlzY292ZXJ5KSI+DQotICAgICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImIiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvYiI+DQotICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0JlbmNobWFyayIvPg0KLSAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9CZW5jaG1hcmsvZGlzY292ZXJpZXMiLz4NCi0gICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9PcmRlcmVkU2V0KFQpX0NsYXNzL2ZpcnN0Ii8+DQotICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvaXRlcmF0aW9ucyIvPg0KLSAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9PcmRlcmVkU2V0KFQpX0NsYXNzL3NpemUiLz4NCi0gICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpJbnRlZ2VyTGl0ZXJhbEV4cCIgaW50ZWdlclN5bWJvbD0iMSI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlcl9DbGFzcy8lM0UiLz4NCi0gICAgICAgICAgPC9pZkV4cHI+DQotICAgICAgICA8L2JvZHk+DQotICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJiN4QTsmbHQ7cC8+JiN4QTsmbHQ7aHIvPiYjeEE7Jmx0O2ZvbnQgc2l6ZT0mcXVvdDstMSZxdW90Oz4mbHQ7aT5UaGlzIHJlcG9ydCBoYXMgYmVlbiBnZW5lcmF0ZWQgd2l0aCAmbHQ7YSBocmVmPSZxdW90O2h0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby8mcXVvdDs+TW9EaXNjbyZsdDsvYT4gSmF2YSBEaXNjb3ZlcmVyIEJlbmNobWFyay4mbHQ7L2k+Jmx0Oy9mb250PiYjeEE7Jmx0Oy9ib2R5PiZsdDsvaHRtbD4mI3hBOyIvPg0KLSAgICAgICAgPGZpbGVVcmwgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9ImRpc2NvdmVyeVJlcG9ydC5odG1sIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPC9maWxlVXJsPg0KLSAgICAgICAgPGNoYXJzZXQgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IlVURi04Ij4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPC9jaGFyc2V0Pg0KLSAgICAgIDwvYm9keT4NCi0gICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJiN4QTsmI3hBOyYjeEE7Ii8+DQotICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpGb3JCbG9jayI+DQotICAgICAgICA8Ym9keSB4c2k6dHlwZT0ibXRsOkZpbGVCbG9jayIgb3Blbk1vZGU9Ik92ZXJXcml0ZSI+DQotICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImI3g5OyZsdDshRE9DVFlQRSBodG1sIFBVQkxJQyAmcXVvdDstLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiZxdW90OyYjeEE7JnF1b3Q7aHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCZxdW90Oz4mI3hBOyZsdDtodG1sPiYjeEE7Jmx0O2hlYWQ+JiN4QTsmI3hBOyZsdDtzdHlsZSB0eXBlPSZxdW90O3RleHQvY3NzJnF1b3Q7PiYjeEE7ICAuZ3JhcGggeyYjeEE7ICAgIGJhY2tncm91bmQtY29sb3I6ICNFMEUwRTA7JiN4QTsgICAgYm9yZGVyOiBzb2xpZCAxcHggYmxhY2s7JiN4QTsgIH0mI3hBOyAgLmdyYXBoIHRkIHsmI3hBOyAgICBmb250LWZhbWlseTogdmVyZGFuYSwgYXJpYWwsIHNhbnMgc2VyaWY7JiN4QTsgIH0mI3hBOyAgLmJhciB7JiN4QTsgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7JiN4QTsgICAgdGV4dC1hbGlnbjogcmlnaHQ7JiN4QTsgICAgYm9yZGVyOiBzb2xpZCAxcHggYmxhY2s7JiN4QTsgICAgd2lkdGg6IDQwMHB4OyYjeEE7ICB9JiN4QTsgIC5iYXIgZGl2IHsgJiN4QTsgICAgYmFja2dyb3VuZC1jb2xvcjogI0EwQTBGRjsmI3hBOyAgICB0ZXh0LWFsaWduOiByaWdodDsmI3hBOyAgICBmbG9hdDogbGVmdDsmI3hBOyAgICBoZWlnaHQ6IDIwcHg7JiN4QTsgIH0mI3hBOyAgYm9keSB7JiN4QTsgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7JiN4QTsgIH0mI3hBOyAgdGQgeyYjeEE7ICAgIHRleHQtYWxpZ246IGNlbnRlcjsmI3hBOyAgfSYjeEE7Jmx0Oy9zdHlsZT4mI3hBOyYjeEE7Jmx0O3RpdGxlPiIvPg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeS9uYW1lIi8+DQotICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDsvdGl0bGU+JiN4QTsmbHQ7L2hlYWQ+JiN4QTsmI3hBOyZsdDtib2R5PiYjeEE7JiN4QTsmbHQ7aDE+Ii8+DQotICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5L25hbWUiLz4NCi0gICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0Oy9oMT4mI3hBOyZsdDtoMj5HZW5lcmFsIGRpc2NvdmVyeSBpbmZvcm1hdGlvbiZsdDsvaDI+JiN4QTsmbHQ7Yj5uYW1lJmx0Oy9iPjogIi8+DQotICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5L25hbWUiLz4NCi0gICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0O2JyLz4mI3hBOyZsdDtiPmRpc2NvdmVyZXImbHQ7L2I+OiAiLz4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvZGlzY292ZXJlcklkIi8+DQotICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiAoIi8+DQotICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5L2Rpc2NvdmVyZXJDbGFzc05hbWUiLz4NCi0gICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iKSZsdDtici8+JiN4QTsmbHQ7Yj5hdmVyYWdlIGRpc2NvdmVyeSB0aW1lIGluIHNlY29uZHMmbHQ7L2I+OiAiLz4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpRdWVyeUludm9jYXRpb24iIGRlZmluaXRpb249Ii8wL3RpbWVXaXRoVW5pdCI+DQotICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpSZWFsTGl0ZXJhbEV4cCIgcmVhbFN5bWJvbD0iMC4wIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5L2Rpc2NvdmVyeVRpbWVBdmVyYWdlSW5TZWNvbmRzIi8+DQotICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbF9DbGFzcy8rIi8+DQotICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0O2JyLz4mI3hBOyZsdDtiPmF2ZXJhZ2Ugc2F2ZSB0aW1lIGluIHNlY29uZHMmbHQ7L2I+OiAiLz4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpRdWVyeUludm9jYXRpb24iIGRlZmluaXRpb249Ii8wL3RpbWVXaXRoVW5pdCI+DQotICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpSZWFsTGl0ZXJhbEV4cCIgcmVhbFN5bWJvbD0iMC4wIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5L3NhdmVUaW1lQXZlcmFnZUluU2Vjb25kcyIvPg0KLSAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWxfQ2xhc3MvKyIvPg0KLSAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDtici8+JiN4QTsmbHQ7Yj5leGVjdXRpb24gdGltZSBzdGFuZGFyZCBkZXZpYXRpb24mbHQ7L2I+OiAiLz4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpRdWVyeUludm9jYXRpb24iIGRlZmluaXRpb249Ii8wL3RpbWVXaXRoVW5pdCI+DQotICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpSZWFsTGl0ZXJhbEV4cCIgcmVhbFN5bWJvbD0iMC4wIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5L2V4ZWN1dGlvblRpbWVTdGFuZGFyZERldmlhdGlvbiIvPg0KLSAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWxfQ2xhc3MvKyIvPg0KLSAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDtici8+JiN4QTsmbHQ7Yj5zYXZlIHRpbWUgc3RhbmRhcmQgZGV2aWF0aW9uJmx0Oy9iPjogIi8+DQotICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJtdGw6UXVlcnlJbnZvY2F0aW9uIiBkZWZpbml0aW9uPSIvMC90aW1lV2l0aFVuaXQiPg0KLSAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UmVhbExpdGVyYWxFeHAiIHJlYWxTeW1ib2w9IjAuMCI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeS9zYXZlVGltZVN0YW5kYXJkRGV2aWF0aW9uIi8+DQotICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbF9DbGFzcy8rIi8+DQotICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0O2JyLz4mI3hBOyZsdDtiPm51bWJlciBvZiBtb2RlbCBlbGVtZW50cyZsdDsvYj46ICIvPg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXIiLz4NCi0gICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvbnVtYmVyT2ZNb2RlbEVsZW1lbnRzIi8+DQotICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDtici8+JiN4QTsmbHQ7Yj5zaXplIG9mIHRoZSB4bWkgZmlsZSBpbiBieXRlcyZsdDsvYj46ICIvPg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ibXRsOlF1ZXJ5SW52b2NhdGlvbiIgZGVmaW5pdGlvbj0iLzAvc2l6ZVdpdGhVbml0Ij4NCi0gICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlJlYWxMaXRlcmFsRXhwIiByZWFsU3ltYm9sPSIwLjAiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkveG1pU2l6ZUluQnl0ZXMiLz4NCi0gICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsX0NsYXNzLysiLz4NCi0gICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7YnIvPiYjeEE7JiN4QTsmbHQ7aDM+UHJvamVjdCBpbmZvcm1hdGlvbiZsdDsvaDM+JiN4QTsmbHQ7Yj5Qcm9qZWN0IG5hbWUmbHQ7L2I+OiAmbHQ7YSBocmVmPSZxdW90OyIvPg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUmVzb3VyY2UiLz4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeS9wcm9qZWN0Ii8+DQotICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUmVzb3VyY2UvbmFtZSIvPg0KLSAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSIuaHRtbCZxdW90Oz4iLz4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlIi8+DQotICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvcHJvamVjdCIvPg0KLSAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlL25hbWUiLz4NCi0gICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0Oy9hPiZsdDtici8+JiN4QTsmbHQ7Yj50b3RhbCBudW1iZXIgb2YgbGluZXMmbHQ7L2I+OiAiLz4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9JbnRlZ2VyIi8+DQotICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUHJvamVjdCIvPg0KLSAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlIi8+DQotICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeS9wcm9qZWN0Ii8+DQotICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlR5cGVFeHAiIGVUeXBlPSIvNDEvUHJvamVjdCI+DQotICAgICAgICAgICAgICAgIDxyZWZlcnJlZFR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9Qcm9qZWN0Ii8+DQotICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvT2NsQW55X0NsYXNzL29jbEFzVHlwZSIvPg0KLSAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Byb2plY3QvdG90YWxMaW5lcyIvPg0KLSAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7YnIvPiYjeEE7Jmx0O2I+YXZlcmFnZSBudW1iZXIgb2YgbGluZXMgcGVyIGZpbGVzJmx0Oy9iPjogIi8+DQotICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Byb2plY3QiLz4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9SZXNvdXJjZSIvPg0KLSAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvcHJvamVjdCIvPg0KLSAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpUeXBlRXhwIiBlVHlwZT0iLzQxL1Byb2plY3QiPg0KLSAgICAgICAgICAgICAgICA8cmVmZXJyZWRUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUHJvamVjdCIvPg0KLSAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09jbEFueV9DbGFzcy9vY2xBc1R5cGUiLz4NCi0gICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9Qcm9qZWN0L2F2ZXJhZ2VMaW5lc1BlckZpbGUiLz4NCi0gICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0O2JyLz4mI3hBOyZsdDtiPmF2ZXJhZ2UgZmlsZSBzaXplIGluIGJ5dGVzJmx0Oy9iPjogIi8+DQotICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJtdGw6UXVlcnlJbnZvY2F0aW9uIiBkZWZpbml0aW9uPSIvMC9zaXplV2l0aFVuaXQiPg0KLSAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UmVhbExpdGVyYWxFeHAiIHJlYWxTeW1ib2w9IjAuMCI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9JbnRlZ2VyIi8+DQotICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9Qcm9qZWN0Ii8+DQotICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9SZXNvdXJjZSIvPg0KLSAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5L3Byb2plY3QiLz4NCi0gICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpUeXBlRXhwIiBlVHlwZT0iLzQxL1Byb2plY3QiPg0KLSAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Byb2plY3QiLz4NCi0gICAgICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09jbEFueV9DbGFzcy9vY2xBc1R5cGUiLz4NCi0gICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Byb2plY3QvYXZlcmFnZUZpbGVTaXplSW5CeXRlcyIvPg0KLSAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWxfQ2xhc3MvKyIvPg0KLSAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDtici8+JiN4QTsmbHQ7Yj50b3RhbCBzaXplIGluIGJ5dGVzJmx0Oy9iPjogIi8+DQotICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJtdGw6UXVlcnlJbnZvY2F0aW9uIiBkZWZpbml0aW9uPSIvMC9zaXplV2l0aFVuaXQiPg0KLSAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UmVhbExpdGVyYWxFeHAiIHJlYWxTeW1ib2w9IjAuMCI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9JbnRlZ2VyIi8+DQotICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlIi8+DQotICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5L3Byb2plY3QiLz4NCi0gICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlL3RvdGFsU2l6ZUluQnl0ZXMiLz4NCi0gICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsX0NsYXNzLysiLz4NCi0gICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7YnIvPiYjeEE7JiN4QTsmbHQ7aW1nIHNyYz0mcXVvdDsuLi9EaXNjb3ZlcnlUaW1lQnlQcm9qZWN0U2l6ZSIvPg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeS9kaXNjb3ZlcmVySWQiLz4NCi0gICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iLnBuZyZxdW90Oy8+JiN4QTsiLz4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpJZkJsb2NrIj4NCi0gICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0O2ltZyBzcmM9JnF1b3Q7Li4vbWVtb3J5QnlQcm9qZWN0U2l6ZSIvPg0KLSAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeS9kaXNjb3ZlcmVySWQiLz4NCi0gICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9Ii5wbmcmcXVvdDsvPiYjeEE7Ii8+DQotICAgICAgICAgICAgPGlmRXhwciB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0Jvb2xlYW4iLz4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5SXRlcmF0aW9uIi8+DQotICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCIgZVR5cGU9Ii8zL09yZGVyZWRTZXQoRGlzY292ZXJ5SXRlcmF0aW9uKSI+DQotICAgICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvaXRlcmF0aW9ucyIvPg0KLSAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09yZGVyZWRTZXQoVClfQ2xhc3MvZmlyc3QiLz4NCi0gICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeUl0ZXJhdGlvbi9tYXhVc2VkTWVtb3J5SW5CeXRlcyIvPg0KLSAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpJbnRlZ2VyTGl0ZXJhbEV4cCIgaW50ZWdlclN5bWJvbD0iMCI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9JbnRlZ2VyIi8+DQotICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlcl9DbGFzcy8lM0MlM0UiLz4NCi0gICAgICAgICAgICA8L2lmRXhwcj4NCi0gICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJiN4QTsiLz4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpJZkJsb2NrIj4NCi0gICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ibXRsOkZvckJsb2NrIj4NCi0gICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7aDI+aXRlcmF0aW9uICIvPg0KLSAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iaSIgcmVmZXJyZWRWYXJpYWJsZT0iLzEyNSI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9JbnRlZ2VyIi8+DQotICAgICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0Oy9oMj4mI3hBOyZsdDtiPmRhdGUmbHQ7L2I+OiAiLz4NCi0gICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFRGF0YVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRGF0ZSIvPg0KLSAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9Iml0ZXJhdGlvbiIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzkvQGJvZHkuMC9pdGVyYXRpb24iPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeUl0ZXJhdGlvbiIvPg0KLSAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5SXRlcmF0aW9uL2Rpc2NvdmVyeURhdGUiLz4NCi0gICAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7YnIvPiYjeEE7Jmx0O2I+c2F2ZSB0aW1lJmx0Oy9iPjogIi8+DQotICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ibXRsOlF1ZXJ5SW52b2NhdGlvbiIgZGVmaW5pdGlvbj0iLzAvdGltZVdpdGhVbml0Ij4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpSZWFsTGl0ZXJhbEV4cCIgcmVhbFN5bWJvbD0iMC4wIj4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9Iml0ZXJhdGlvbiIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzkvQGJvZHkuMC9pdGVyYXRpb24iPg0KLSAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnlJdGVyYXRpb24iLz4NCi0gICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5SXRlcmF0aW9uL3NhdmVUaW1lSW5TZWNvbmRzIi8+DQotICAgICAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsX0NsYXNzLysiLz4NCi0gICAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7YnIvPiYjeEE7Jmx0O2I+ZGlzY292ZXJ5IHRpbWUmbHQ7L2I+OiAiLz4NCi0gICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJtdGw6UXVlcnlJbnZvY2F0aW9uIiBkZWZpbml0aW9uPSIvMC90aW1lV2l0aFVuaXQiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlJlYWxMaXRlcmFsRXhwIiByZWFsU3ltYm9sPSIwLjAiPg0KLSAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iaXRlcmF0aW9uIiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4zOS9AYm9keS4wL2l0ZXJhdGlvbiI+DQotICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeUl0ZXJhdGlvbiIvPg0KLSAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnlJdGVyYXRpb24vZGlzY292ZXJ5VGltZUluU2Vjb25kcyIvPg0KLSAgICAgICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbF9DbGFzcy8rIi8+DQotICAgICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0O2JyLz4mI3hBOyZsdDtiPm1heCB1c2VkIG1lbW9yeSZsdDsvYj46ICIvPg0KLSAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpRdWVyeUludm9jYXRpb24iIGRlZmluaXRpb249Ii8wL3NpemVXaXRoVW5pdCI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UmVhbExpdGVyYWxFeHAiIHJlYWxTeW1ib2w9IjAuMCI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJpdGVyYXRpb24iIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjM5L0Bib2R5LjAvaXRlcmF0aW9uIj4NCi0gICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5SXRlcmF0aW9uIi8+DQotICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeUl0ZXJhdGlvbi9tYXhVc2VkTWVtb3J5SW5CeXRlcyIvPg0KLSAgICAgICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbF9DbGFzcy8rIi8+DQotICAgICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0O2JyLz4mI3hBOyYjeEE7Ii8+DQotICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ibXRsOklmQmxvY2siPg0KLSAgICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0O2ltZyBzcmM9JnF1b3Q7Li4vbWVtb3J5QnlUaW1lIi8+DQotICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5L2Rpc2NvdmVyZXJJZCIvPg0KLSAgICAgICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSJfIi8+DQotICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCIgcmVmZXJyZWRPcGVyYXRpb249Ii8xL1N0cmluZ19DbGFzcy9yZXBsYWNlQWxsIj4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiIHJlZmVycmVkT3BlcmF0aW9uPSIvMS9TdHJpbmdfQ2xhc3MvcmVwbGFjZUFsbCI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCIgcmVmZXJyZWRPcGVyYXRpb249Ii8xL09jbEFueV9DbGFzcy90b1N0cmluZyI+DQotICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFRGF0YVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRGF0ZSIvPg0KLSAgICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iaXRlcmF0aW9uIiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4zOS9AYm9keS4wL2l0ZXJhdGlvbiI+DQotICAgICAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnlJdGVyYXRpb24iLz4NCi0gICAgICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnlJdGVyYXRpb24vZGlzY292ZXJ5RGF0ZSIvPg0KLSAgICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSIgIj4NCi0gICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iXyI+DQotICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSI6Ij4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iLSI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iLnBuZyZxdW90Oy8+JiN4QTsiLz4NCi0gICAgICAgICAgICAgICAgPGlmRXhwciB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9Cb29sZWFuIi8+DQotICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnlJdGVyYXRpb24iLz4NCi0gICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCIgZVR5cGU9Ii8zL09yZGVyZWRTZXQoRGlzY292ZXJ5SXRlcmF0aW9uKSI+DQotICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5L2l0ZXJhdGlvbnMiLz4NCi0gICAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09yZGVyZWRTZXQoVClfQ2xhc3MvZmlyc3QiLz4NCi0gICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5SXRlcmF0aW9uL21heFVzZWRNZW1vcnlJbkJ5dGVzIi8+DQotICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6SW50ZWdlckxpdGVyYWxFeHAiIGludGVnZXJTeW1ib2w9IjAiPg0KLSAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXIiLz4NCi0gICAgICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXJfQ2xhc3MvJTNDJTNFIi8+DQotICAgICAgICAgICAgICAgIDwvaWZFeHByPg0KLSAgICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiYjeEE7Ii8+DQotICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ibXRsOklmQmxvY2siPg0KLSAgICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0O2ZvbnQgY29sb3I9JnF1b3Q7cmVkJnF1b3Q7PiYjeEE7Jmx0O2gzPmRpc2NvdmVyeSBlcnJvcnMmbHQ7L2gzPiYjeEE7Ii8+DQotICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJtdGw6Rm9yQmxvY2siPg0KLSAgICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImVycm9yIiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4zOS9AYm9keS4wL0Bib2R5LjEzL0Bib2R5LjEvZXJyb3IuMSI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7YnIvPiYjeEE7Jmx0Oy9mb250PiYjeEE7Ii8+DQotICAgICAgICAgICAgICAgICAgPGxvb3BWYXJpYWJsZSBuYW1lPSJlcnJvciI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICAgICAgPC9sb29wVmFyaWFibGU+DQotICAgICAgICAgICAgICAgICAgPGl0ZXJTZXQgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJpdGVyYXRpb24iIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjM5L0Bib2R5LjAvaXRlcmF0aW9uIj4NCi0gICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5SXRlcmF0aW9uIi8+DQotICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeUl0ZXJhdGlvbi9kaXNjb3ZlcnlFcnJvcnMiLz4NCi0gICAgICAgICAgICAgICAgICA8L2l0ZXJTZXQ+DQotICAgICAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICAgICAgPGlmRXhwciB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9Cb29sZWFuIi8+DQotICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0Jvb2xlYW4iLz4NCi0gICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iaXRlcmF0aW9uIiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4zOS9AYm9keS4wL2l0ZXJhdGlvbiI+DQotICAgICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5SXRlcmF0aW9uIi8+DQotICAgICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnlJdGVyYXRpb24vZGlzY292ZXJ5RXJyb3JzIi8+DQotICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZ19DbGFzcy9vY2xJc1VuZGVmaW5lZCIvPg0KLSAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0Jvb2xlYW5fQ2xhc3Mvbm90Ii8+DQotICAgICAgICAgICAgICAgIDwvaWZFeHByPg0KLSAgICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgICAgPGxvb3BWYXJpYWJsZSBuYW1lPSJpdGVyYXRpb24iPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnlJdGVyYXRpb24iLz4NCi0gICAgICAgICAgICAgIDwvbG9vcFZhcmlhYmxlPg0KLSAgICAgICAgICAgICAgPGl0ZXJTZXQgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiIGVUeXBlPSIvMy9PcmRlcmVkU2V0KERpc2NvdmVyeUl0ZXJhdGlvbikiPg0KLSAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvaXRlcmF0aW9ucyIvPg0KLSAgICAgICAgICAgICAgPC9pdGVyU2V0Pg0KLSAgICAgICAgICAgICAgPGVhY2ggeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDtoci8+Ij4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgICAgPC9lYWNoPg0KLSAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICA8aWZFeHByIHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvQm9vbGVhbiIvPg0KLSAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIiBlVHlwZT0iLzMvT3JkZXJlZFNldChEaXNjb3ZlcnlJdGVyYXRpb24pIj4NCi0gICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvaXRlcmF0aW9ucyIvPg0KLSAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvT3JkZXJlZFNldChUKV9DbGFzcy9zaXplIi8+DQotICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOkludGVnZXJMaXRlcmFsRXhwIiBpbnRlZ2VyU3ltYm9sPSIxIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXIiLz4NCi0gICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9JbnRlZ2VyX0NsYXNzLyUzRSIvPg0KLSAgICAgICAgICAgIDwvaWZFeHByPg0KLSAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImI3hBOyYjeEE7JiN4QTsmI3hBOyZsdDtwLz4mI3hBOyZsdDtoci8+JiN4QTsmbHQ7Zm9udCBzaXplPSZxdW90Oy0xJnF1b3Q7PiZsdDtpPlRoaXMgcmVwb3J0IGhhcyBiZWVuIGdlbmVyYXRlZCB3aXRoICZsdDthIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvLyZxdW90Oz5Nb0Rpc2NvJmx0Oy9hPiBKYXZhIERpc2NvdmVyZXIgQmVuY2htYXJrLiZsdDsvaT4mbHQ7L2ZvbnQ+JiN4QTsmbHQ7L2JvZHk+Jmx0Oy9odG1sPiYjeEE7Ii8+DQotICAgICAgICAgIDxmaWxlVXJsIHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCIgcmVmZXJyZWRPcGVyYXRpb249Ii8xL1N0cmluZ19DbGFzcy8rIj4NCi0gICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiIHJlZmVycmVkT3BlcmF0aW9uPSIvMS9TdHJpbmdfQ2xhc3MvKyI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCIgcmVmZXJyZWRPcGVyYXRpb249Ii8xL1N0cmluZ19DbGFzcy8rIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSJSZXBvcnQvIj4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvZGlzY292ZXJlcklkIi8+DQotICAgICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUmVzb3VyY2UiLz4NCi0gICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvcHJvamVjdCIvPg0KLSAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUmVzb3VyY2UvbmFtZSIvPg0KLSAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9Ii5odG1sIj4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICA8L2ZpbGVVcmw+DQotICAgICAgICAgIDxjaGFyc2V0IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSJVVEYtOCI+DQotICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICA8L2NoYXJzZXQ+DQotICAgICAgICA8L2JvZHk+DQotICAgICAgICA8bG9vcFZhcmlhYmxlIG5hbWU9ImRpc2NvdmVyeSI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgPC9sb29wVmFyaWFibGU+DQotICAgICAgICA8aXRlclNldCB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCIgZVR5cGU9Ii8zL09yZGVyZWRTZXQoRGlzY292ZXJ5KSI+DQotICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iYiIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9iIj4NCi0gICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9CZW5jaG1hcmsiLz4NCi0gICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0JlbmNobWFyay9kaXNjb3ZlcmllcyIvPg0KLSAgICAgICAgPC9pdGVyU2V0Pg0KLSAgICAgIDwvYm9keT4NCi0gICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJiN4QTsmI3hBOyIvPg0KLSAgICAgIDxib2R5IHhzaTp0eXBlPSJtdGw6Rm9yQmxvY2siPg0KLSAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpGaWxlQmxvY2siIG9wZW5Nb2RlPSJPdmVyV3JpdGUiPg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJiN4OTsmbHQ7IURPQ1RZUEUgaHRtbCBQVUJMSUMgJnF1b3Q7LS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4mcXVvdDsmI3hBOyZxdW90O2h0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQmcXVvdDs+JiN4QTsmbHQ7aHRtbD4mI3hBOyZsdDtoZWFkPiYjeEE7JiN4QTsmbHQ7c3R5bGUgdHlwZT0mcXVvdDt0ZXh0L2NzcyZxdW90Oz4mI3hBOyAgLmdyYXBoIHsmI3hBOyAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTBFMEUwOyYjeEE7ICAgIGJvcmRlcjogc29saWQgMXB4IGJsYWNrOyYjeEE7ICB9JiN4QTsgIC5ncmFwaCB0ZCB7JiN4QTsgICAgZm9udC1mYW1pbHk6IHZlcmRhbmEsIGFyaWFsLCBzYW5zIHNlcmlmOyYjeEE7ICB9JiN4QTsgIC5iYXIgeyYjeEE7ICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyYjeEE7ICAgIHRleHQtYWxpZ246IHJpZ2h0OyYjeEE7ICAgIGJvcmRlcjogc29saWQgMXB4IGJsYWNrOyYjeEE7ICAgIHdpZHRoOiA0MDBweDsmI3hBOyAgfSYjeEE7ICAuYmFyIGRpdiB7ICYjeEE7ICAgIGJhY2tncm91bmQtY29sb3I6ICNBMEEwRkY7JiN4QTsgICAgdGV4dC1hbGlnbjogcmlnaHQ7JiN4QTsgICAgZmxvYXQ6IGxlZnQ7JiN4QTsgICAgaGVpZ2h0OiAyMHB4OyYjeEE7ICB9JiN4QTsgIGJvZHkgeyYjeEE7ICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyYjeEE7ICB9JiN4QTsgIHRkIHsmI3hBOyAgICB0ZXh0LWFsaWduOiBjZW50ZXI7JiN4QTsgIH0mI3hBOyZsdDsvc3R5bGU+JiN4QTsmI3hBOyZsdDt0aXRsZT4iLz4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9Qcm9qZWN0Ii8+DQotICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9InByb2plY3QiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9wcm9qZWN0Ij4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUmVzb3VyY2UiLz4NCi0gICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6VHlwZUV4cCIgZVR5cGU9Ii80MS9Qcm9qZWN0Ij4NCi0gICAgICAgICAgICAgICAgPHJlZmVycmVkVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Byb2plY3QiLz4NCi0gICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9PY2xBbnlfQ2xhc3Mvb2NsQXNUeXBlIi8+DQotICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUmVzb3VyY2UvbmFtZSIvPg0KLSAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7L3RpdGxlPiYjeEE7Jmx0Oy9oZWFkPiYjeEE7JiN4QTsmbHQ7Ym9keT4mI3hBOyYjeEE7Jmx0O2gxPiIvPg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Byb2plY3QiLz4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0icHJvamVjdCIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS41L3Byb2plY3QiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9SZXNvdXJjZSIvPg0KLSAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpUeXBlRXhwIiBlVHlwZT0iLzQxL1Byb2plY3QiPg0KLSAgICAgICAgICAgICAgICA8cmVmZXJyZWRUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUHJvamVjdCIvPg0KLSAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09jbEFueV9DbGFzcy9vY2xBc1R5cGUiLz4NCi0gICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9SZXNvdXJjZS9uYW1lIi8+DQotICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDsvaDE+JiN4QTsmI3hBOyZsdDtoMj5Qcm9qZWN0IGluZm9ybWF0aW9uJmx0Oy9oMj4mI3hBOyZsdDtiPlByb2plY3QgbmFtZSZsdDsvYj46ICZsdDthIGhyZWY9JnF1b3Q7UmVwb3J0LyIvPg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Byb2plY3QiLz4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0icHJvamVjdCIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS41L3Byb2plY3QiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9SZXNvdXJjZSIvPg0KLSAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpUeXBlRXhwIiBlVHlwZT0iLzQxL1Byb2plY3QiPg0KLSAgICAgICAgICAgICAgICA8cmVmZXJyZWRUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUHJvamVjdCIvPg0KLSAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09jbEFueV9DbGFzcy9vY2xBc1R5cGUiLz4NCi0gICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9SZXNvdXJjZS9uYW1lIi8+DQotICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9Ii5odG1sJnF1b3Q7PiIvPg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Byb2plY3QiLz4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0icHJvamVjdCIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS41L3Byb2plY3QiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9SZXNvdXJjZSIvPg0KLSAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpUeXBlRXhwIiBlVHlwZT0iLzQxL1Byb2plY3QiPg0KLSAgICAgICAgICAgICAgICA8cmVmZXJyZWRUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUHJvamVjdCIvPg0KLSAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09jbEFueV9DbGFzcy9vY2xBc1R5cGUiLz4NCi0gICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9SZXNvdXJjZS9uYW1lIi8+DQotICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDsvYT4mbHQ7YnIvPiYjeEE7Jmx0O2I+dG90YWwgbnVtYmVyIG9mIGxpbmVzJmx0Oy9iPjogIi8+DQotICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Byb2plY3QiLz4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0icHJvamVjdCIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS41L3Byb2plY3QiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9SZXNvdXJjZSIvPg0KLSAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpUeXBlRXhwIiBlVHlwZT0iLzQxL1Byb2plY3QiPg0KLSAgICAgICAgICAgICAgICA8cmVmZXJyZWRUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUHJvamVjdCIvPg0KLSAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09jbEFueV9DbGFzcy9vY2xBc1R5cGUiLz4NCi0gICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9Qcm9qZWN0L3RvdGFsTGluZXMiLz4NCi0gICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0O2JyLz4mI3hBOyZsdDtiPmF2ZXJhZ2UgbnVtYmVyIG9mIGxpbmVzIHBlciBmaWxlcyZsdDsvYj46ICIvPg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXIiLz4NCi0gICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9Qcm9qZWN0Ii8+DQotICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9InByb2plY3QiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9wcm9qZWN0Ij4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUmVzb3VyY2UiLz4NCi0gICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6VHlwZUV4cCIgZVR5cGU9Ii80MS9Qcm9qZWN0Ij4NCi0gICAgICAgICAgICAgICAgPHJlZmVycmVkVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Byb2plY3QiLz4NCi0gICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9PY2xBbnlfQ2xhc3Mvb2NsQXNUeXBlIi8+DQotICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUHJvamVjdC9hdmVyYWdlTGluZXNQZXJGaWxlIi8+DQotICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDtici8+JiN4QTsmbHQ7Yj5hdmVyYWdlIGZpbGUgc2l6ZSBpbiBieXRlcyZsdDsvYj46ICIvPg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ibXRsOlF1ZXJ5SW52b2NhdGlvbiIgZGVmaW5pdGlvbj0iLzAvc2l6ZVdpdGhVbml0Ij4NCi0gICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlJlYWxMaXRlcmFsRXhwIiByZWFsU3ltYm9sPSIwLjAiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUHJvamVjdCIvPg0KLSAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0icHJvamVjdCIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS41L3Byb2plY3QiPg0KLSAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUmVzb3VyY2UiLz4NCi0gICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpUeXBlRXhwIiBlVHlwZT0iLzQxL1Byb2plY3QiPg0KLSAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Byb2plY3QiLz4NCi0gICAgICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09jbEFueV9DbGFzcy9vY2xBc1R5cGUiLz4NCi0gICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Byb2plY3QvYXZlcmFnZUZpbGVTaXplSW5CeXRlcyIvPg0KLSAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWxfQ2xhc3MvKyIvPg0KLSAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDtici8+JiN4QTsmbHQ7Yj50b3RhbCBzaXplIGluIGJ5dGVzJmx0Oy9iPjogIi8+DQotICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJtdGw6UXVlcnlJbnZvY2F0aW9uIiBkZWZpbml0aW9uPSIvMC9zaXplV2l0aFVuaXQiPg0KLSAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UmVhbExpdGVyYWxFeHAiIHJlYWxTeW1ib2w9IjAuMCI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9JbnRlZ2VyIi8+DQotICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0icHJvamVjdCIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS41L3Byb2plY3QiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlIi8+DQotICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9SZXNvdXJjZS90b3RhbFNpemVJbkJ5dGVzIi8+DQotICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbF9DbGFzcy8rIi8+DQotICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0O2JyLz4mI3hBOyYjeEE7Jmx0O2gyPkRpc2NvdmVyaWVzIG9uIHRoZSBwcm9qZWN0Jmx0Oy9oMj4mI3hBOyYjeEE7Jmx0O2gzPlJlc3VsdHMgT3ZlcnZpZXcmbHQ7L2gzPiYjeEE7JiN4QTsgICZsdDt0YWJsZSBib3JkZXI9JnF1b3Q7MSZxdW90OyBjZWxscGFkZGluZz0mcXVvdDsyJnF1b3Q7IGNlbGxzcGFjaW5nPSZxdW90OzAmcXVvdDs+JiN4QTsgICAgJmx0O3RyPiYjeEE7ICAgICAgICZsdDt0aD5Qcm9qZWN0Jmx0Oy90aD4mI3hBOyYjeDk7ICAgJmx0O3RoPkRpc2NvdmVyZXImbHQ7L3RoPiYjeEE7ICAgICAgICZsdDt0aD5BdmVyYWdlIGRpc2NvdmVyeSB0aW1lJmx0Oy90aD4mI3hBOyAgICAgICAmbHQ7dGg+QXZlcmFnZSBzYXZlIHRpbWUmbHQ7L3RoPiYjeEE7ICAgICAgICZsdDt0aD5OdW1iZXIgb2YgbW9kZWwgZWxlbWVudHMmbHQ7L3RoPiYjeEE7ICAgICAgICZsdDt0aD5Ub3RhbCBzaXplJmx0Oy90aD4mI3hBOyAgICAgICAmbHQ7dGg+QXZlcmFnZSBmaWxlIHNpemUmbHQ7L3RoPiYjeEE7ICAgICAgICZsdDt0aD5Ub3RhbCBsaW5lcyZsdDsvdGg+JiN4QTsgICAgICAgJmx0O3RoPkF2ZXJhZ2UgbGluZXMgcGVyIGZpbGUmbHQ7L3RoPiYjeEE7ICAgICAgICZsdDt0aD5YTUkgc2l6ZSZsdDsvdGg+JiN4QTsgICAgICZsdDsvdHI+JiN4QTsmI3hBOyIvPg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ibXRsOkZvckJsb2NrIj4NCi0gICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ibXRsOklmQmxvY2siPg0KLSAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiAgICAgICAmI3g5OyAgJmx0O3RyPiYjeEE7ICAgICAgICAgICAgJmx0O3RkPiZsdDthIGhyZWY9JnF1b3Q7Ii8+DQotICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUmVzb3VyY2UiLz4NCi0gICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeS9wcm9qZWN0Ii8+DQotICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9SZXNvdXJjZS9uYW1lIi8+DQotICAgICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iLmh0bWwmcXVvdDs+Ii8+DQotICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUmVzb3VyY2UiLz4NCi0gICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeS9wcm9qZWN0Ii8+DQotICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9SZXNvdXJjZS9uYW1lIi8+DQotICAgICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0Oy9hPiZsdDsvdGQ+JiN4QTsmI3g5OyYjeDk7JiN4OTsmbHQ7dGQ+Jmx0O2EgaHJlZj0mcXVvdDsiLz4NCi0gICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCIgcmVmZXJyZWRPcGVyYXRpb249Ii8xL1N0cmluZ19DbGFzcy8rIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE3L2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvZGlzY292ZXJlcklkIi8+DQotICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlIi8+DQotICAgICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeS9wcm9qZWN0Ii8+DQotICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUmVzb3VyY2UvbmFtZSIvPg0KLSAgICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9Ii5odG1sJnF1b3Q7PiIvPg0KLSAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xNy9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5L2Rpc2NvdmVyZXJJZCIvPg0KLSAgICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDsvYT4mbHQ7L3RkPiYjeEE7ICAgICAgICAgICAgJmx0O3RkPiIvPg0KLSAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpRdWVyeUludm9jYXRpb24iIGRlZmluaXRpb249Ii8wL3RpbWVXaXRoVW5pdCI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UmVhbExpdGVyYWxFeHAiIHJlYWxTeW1ib2w9IjAuMCI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE3L2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvZGlzY292ZXJ5VGltZUF2ZXJhZ2VJblNlY29uZHMiLz4NCi0gICAgICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWxfQ2xhc3MvKyIvPg0KLSAgICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiAoJmFtcDtzaWdtYTsgPSAiLz4NCi0gICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJtdGw6UXVlcnlJbnZvY2F0aW9uIiBkZWZpbml0aW9uPSIvMC90aW1lV2l0aFVuaXQiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlJlYWxMaXRlcmFsRXhwIiByZWFsU3ltYm9sPSIwLjAiPg0KLSAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xNy9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5L2V4ZWN1dGlvblRpbWVTdGFuZGFyZERldmlhdGlvbiIvPg0KLSAgICAgICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbF9DbGFzcy8rIi8+DQotICAgICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0icykmbHQ7L3RkPiYjeEE7ICAgICAgICAgICAgJmx0O3RkPiIvPg0KLSAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpRdWVyeUludm9jYXRpb24iIGRlZmluaXRpb249Ii8wL3RpbWVXaXRoVW5pdCI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UmVhbExpdGVyYWxFeHAiIHJlYWxTeW1ib2w9IjAuMCI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE3L2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3Zlcnkvc2F2ZVRpbWVBdmVyYWdlSW5TZWNvbmRzIi8+DQotICAgICAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsX0NsYXNzLysiLz4NCi0gICAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSIgKCZhbXA7c2lnbWE7ID0gIi8+DQotICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ibXRsOlF1ZXJ5SW52b2NhdGlvbiIgZGVmaW5pdGlvbj0iLzAvdGltZVdpdGhVbml0Ij4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpSZWFsTGl0ZXJhbEV4cCIgcmVhbFN5bWJvbD0iMC4wIj4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeS9zYXZlVGltZVN0YW5kYXJkRGV2aWF0aW9uIi8+DQotICAgICAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsX0NsYXNzLysiLz4NCi0gICAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSJzKSZsdDsvdGQ+JiN4QTsgICAgICAgICAgICAmbHQ7dGQ+Ii8+DQotICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9JbnRlZ2VyIi8+DQotICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xNy9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5L251bWJlck9mTW9kZWxFbGVtZW50cyIvPg0KLSAgICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDsvdGQ+JiN4QTsgICAgICAgICAgICAmbHQ7dGQ+Ii8+DQotICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ibXRsOlF1ZXJ5SW52b2NhdGlvbiIgZGVmaW5pdGlvbj0iLzAvc2l6ZVdpdGhVbml0Ij4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpSZWFsTGl0ZXJhbEV4cCIgcmVhbFN5bWJvbD0iMC4wIj4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9JbnRlZ2VyIi8+DQotICAgICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Byb2plY3QiLz4NCi0gICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUmVzb3VyY2UiLz4NCi0gICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeS9wcm9qZWN0Ii8+DQotICAgICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpUeXBlRXhwIiBlVHlwZT0iLzQxL1Byb2plY3QiPg0KLSAgICAgICAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9Qcm9qZWN0Ii8+DQotICAgICAgICAgICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09jbEFueV9DbGFzcy9vY2xBc1R5cGUiLz4NCi0gICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUmVzb3VyY2UvdG90YWxTaXplSW5CeXRlcyIvPg0KLSAgICAgICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbF9DbGFzcy8rIi8+DQotICAgICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0Oy90ZD4mI3hBOyAgICAgICAgICAgICZsdDt0ZD4iLz4NCi0gICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJtdGw6UXVlcnlJbnZvY2F0aW9uIiBkZWZpbml0aW9uPSIvMC9zaXplV2l0aFVuaXQiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlJlYWxMaXRlcmFsRXhwIiByZWFsU3ltYm9sPSIwLjAiPg0KLSAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXIiLz4NCi0gICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUHJvamVjdCIvPg0KLSAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9SZXNvdXJjZSIvPg0KLSAgICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xNy9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5L3Byb2plY3QiLz4NCi0gICAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlR5cGVFeHAiIGVUeXBlPSIvNDEvUHJvamVjdCI+DQotICAgICAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Byb2plY3QiLz4NCi0gICAgICAgICAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvT2NsQW55X0NsYXNzL29jbEFzVHlwZSIvPg0KLSAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9Qcm9qZWN0L2F2ZXJhZ2VGaWxlU2l6ZUluQnl0ZXMiLz4NCi0gICAgICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWxfQ2xhc3MvKyIvPg0KLSAgICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDsvdGQ+JiN4QTsgICAgICAgICAgICAmbHQ7dGQ+Ii8+DQotICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9JbnRlZ2VyIi8+DQotICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9Qcm9qZWN0Ii8+DQotICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9SZXNvdXJjZSIvPg0KLSAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE3L2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvcHJvamVjdCIvPg0KLSAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlR5cGVFeHAiIGVUeXBlPSIvNDEvUHJvamVjdCI+DQotICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUHJvamVjdCIvPg0KLSAgICAgICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvT2NsQW55X0NsYXNzL29jbEFzVHlwZSIvPg0KLSAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUHJvamVjdC90b3RhbExpbmVzIi8+DQotICAgICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0Oy90ZD4mI3hBOyAgICAgICAgICAgICZsdDt0ZD4iLz4NCi0gICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXIiLz4NCi0gICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Byb2plY3QiLz4NCi0gICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlIi8+DQotICAgICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeS9wcm9qZWN0Ii8+DQotICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6VHlwZUV4cCIgZVR5cGU9Ii80MS9Qcm9qZWN0Ij4NCi0gICAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9Qcm9qZWN0Ii8+DQotICAgICAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9PY2xBbnlfQ2xhc3Mvb2NsQXNUeXBlIi8+DQotICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9Qcm9qZWN0L2F2ZXJhZ2VMaW5lc1BlckZpbGUiLz4NCi0gICAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7L3RkPiYjeEE7ICAgICAgICAgICAgJmx0O3RkPiIvPg0KLSAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpRdWVyeUludm9jYXRpb24iIGRlZmluaXRpb249Ii8wL3NpemVXaXRoVW5pdCI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UmVhbExpdGVyYWxFeHAiIHJlYWxTeW1ib2w9IjAuMCI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE3L2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkveG1pU2l6ZUluQnl0ZXMiLz4NCi0gICAgICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWxfQ2xhc3MvKyIvPg0KLSAgICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDsvdGQ+JiN4QTsgICAgICAgICAmbHQ7L3RyPiYjeEE7Ii8+DQotICAgICAgICAgICAgICA8aWZFeHByIHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9Cb29sZWFuIi8+DQotICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlIi8+DQotICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE3L2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvcHJvamVjdCIvPg0KLSAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9InByb2plY3QiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9wcm9qZWN0Ij4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9SZXNvdXJjZSIvPg0KLSAgICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9PY2xBbnlfQ2xhc3MvPSIvPg0KLSAgICAgICAgICAgICAgPC9pZkV4cHI+DQotICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgIDxsb29wVmFyaWFibGUgbmFtZT0iZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgIDwvbG9vcFZhcmlhYmxlPg0KLSAgICAgICAgICAgIDxpdGVyU2V0IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIiBlVHlwZT0iLzMvT3JkZXJlZFNldChEaXNjb3ZlcnkpIj4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iYiIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9iIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vQmVuY2htYXJrIi8+DQotICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0JlbmNobWFyay9kaXNjb3ZlcmllcyIvPg0KLSAgICAgICAgICAgIDwvaXRlclNldD4NCi0gICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iICAmbHQ7L3RhYmxlPiYjeEE7JiN4QTsmbHQ7aDM+RGV0YWlsZWQgSW5mb3JtYXRpb24mbHQ7L2gzPiYjeEE7JiN4QTsiLz4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpGb3JCbG9jayI+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpJZkJsb2NrIj4NCi0gICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJtdGw6SWZCbG9jayI+DQotICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImI3g5OyYjeDk7JiN4OTsmbHQ7aDQ+RXhlY3V0aW9uIHRpbWVzIHBlciBpdGVyYXRpb24mbHQ7L2g0PiYjeEE7JiN4QTsmI3g5OyYjeDk7JiN4OTsmbHQ7aDU+Jmx0O2EgaHJlZj0mcXVvdDsiLz4NCi0gICAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlIi8+DQotICAgICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTkvZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeS9wcm9qZWN0Ii8+DQotICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUmVzb3VyY2UvbmFtZSIvPg0KLSAgICAgICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSIuaHRtbCZxdW90Oz4iLz4NCi0gICAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlIi8+DQotICAgICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTkvZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeS9wcm9qZWN0Ii8+DQotICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUmVzb3VyY2UvbmFtZSIvPg0KLSAgICAgICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7L2E+IHdpdGggJmx0O2EgaHJlZj0mcXVvdDsiLz4NCi0gICAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIiByZWZlcnJlZE9wZXJhdGlvbj0iLzEvU3RyaW5nX0NsYXNzLysiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xOS9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5L2Rpc2NvdmVyZXJJZCIvPg0KLSAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUmVzb3VyY2UiLz4NCi0gICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE5L2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvcHJvamVjdCIvPg0KLSAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9SZXNvdXJjZS9uYW1lIi8+DQotICAgICAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iLmh0bWwmcXVvdDs+Ii8+DQotICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE5L2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvZGlzY292ZXJlcklkIi8+DQotICAgICAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDsvYT4mbHQ7L2g1PiYjeEE7Ii8+DQotICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJtdGw6TGV0QmxvY2siPg0KLSAgICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImI3hBOyYjeDk7JiN4OTsmI3g5OyZsdDt0YWJsZSB3aWR0aD0mcXVvdDs2MDAmcXVvdDsgY2xhc3M9JnF1b3Q7Z3JhcGgmcXVvdDsgY2VsbHNwYWNpbmc9JnF1b3Q7NiZxdW90OyBjZWxscGFkZGluZz0mcXVvdDswJnF1b3Q7PiYjeEE7ICYjeDk7JiN4OTsmI3g5OyZsdDt0cj4mI3hBOyAgICYjeDk7JiN4OTsmI3g5OyYjeDk7ICZsdDt0aD5pdGVyYXRpb24mbHQ7L3RoPiZsdDt0aD5yZWxhdGl2ZSBleGVjdXRpb24gdGltZSZsdDsvdGg+Jmx0O3RoPnRpbWUmbHQ7L3RoPiYjeEE7ICYjeDk7JiN4OTsmI3g5OyZsdDsvdHI+JiN4QTsmI3hBOyIvPg0KLSAgICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJtdGw6Rm9yQmxvY2siPg0KLSAgICAgICAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiYjeDk7JiN4OTsmI3g5OyZsdDt0cj4mI3hBOyAgICAgJiN4OTsmI3g5OyYjeDk7ICZsdDt0ZD4iLz4NCi0gICAgICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImkiIHJlZmVycmVkVmFyaWFibGU9Ii8xNzUiPg0KLSAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgICAgICAgICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9Ii8iLz4NCi0gICAgICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9JbnRlZ2VyIi8+DQotICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiIGVUeXBlPSIvMy9PcmRlcmVkU2V0KERpc2NvdmVyeUl0ZXJhdGlvbikiPg0KLSAgICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xOS9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5L2l0ZXJhdGlvbnMiLz4NCi0gICAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09yZGVyZWRTZXQoVClfQ2xhc3Mvc2l6ZSIvPg0KLSAgICAgICAgICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDsvdGQ+Jmx0O3RkIGNsYXNzPSZxdW90O2JhciZxdW90Oz4mbHQ7ZGl2IHN0eWxlPSZxdW90O3dpZHRoOiAiLz4NCi0gICAgICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5SXRlcmF0aW9uIiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xOS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuOS9AYm9keS4xL2Rpc2NvdmVyeUl0ZXJhdGlvbiI+DQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeUl0ZXJhdGlvbiIvPg0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnlJdGVyYXRpb24vZGlzY292ZXJ5VGltZUluU2Vjb25kcyIvPg0KLSAgICAgICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJtYXhFeGVjdXRpb25UaW1lIiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xOS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuOS9tYXhFeGVjdXRpb25UaW1lIj4NCi0gICAgICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsX0NsYXNzLyUyRiIvPg0KLSAgICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6UmVhbExpdGVyYWxFeHAiIHJlYWxTeW1ib2w9IjEwMC4wIj4NCi0gICAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsX0NsYXNzLyoiLz4NCi0gICAgICAgICAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSIlJnF1b3Q7PiZsdDsvZGl2PiZsdDsvdGQ+Jmx0O3RkPiIvPg0KLSAgICAgICAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpRdWVyeUludm9jYXRpb24iIGRlZmluaXRpb249Ii8wL3RpbWVXaXRoVW5pdCI+DQotICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UmVhbExpdGVyYWxFeHAiIHJlYWxTeW1ib2w9IjAuMCI+DQotICAgICAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnlJdGVyYXRpb24iIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE5L0Bib2R5LjAvQGJvZHkuMC9AYm9keS45L0Bib2R5LjEvZGlzY292ZXJ5SXRlcmF0aW9uIj4NCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5SXRlcmF0aW9uIi8+DQotICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeUl0ZXJhdGlvbi9kaXNjb3ZlcnlUaW1lSW5TZWNvbmRzIi8+DQotICAgICAgICAgICAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsX0NsYXNzLysiLz4NCi0gICAgICAgICAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7L3RkPiYjeEE7ICAgICYjeDk7JiN4OTsmbHQ7L3RyPiYjeEE7Ii8+DQotICAgICAgICAgICAgICAgICAgICA8bG9vcFZhcmlhYmxlIG5hbWU9ImRpc2NvdmVyeUl0ZXJhdGlvbiI+DQotICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeUl0ZXJhdGlvbiIvPg0KLSAgICAgICAgICAgICAgICAgICAgPC9sb29wVmFyaWFibGU+DQotICAgICAgICAgICAgICAgICAgICA8aXRlclNldCB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCIgZVR5cGU9Ii8zL09yZGVyZWRTZXQoRGlzY292ZXJ5SXRlcmF0aW9uKSI+DQotICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xOS9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5L2l0ZXJhdGlvbnMiLz4NCi0gICAgICAgICAgICAgICAgICAgIDwvaXRlclNldD4NCi0gICAgICAgICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiYjeDk7JiN4OTsmI3g5OyZsdDsvdGFibGU+JiN4QTsmI3hBOyIvPg0KLSAgICAgICAgICAgICAgICAgIDxsZXRWYXJpYWJsZSBuYW1lPSJtYXhFeGVjdXRpb25UaW1lIj4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICAgICAgICA8aW5pdEV4cHJlc3Npb24geHNpOnR5cGU9Im10bDpRdWVyeUludm9jYXRpb24iIGRlZmluaXRpb249Ii8wL21heEV4ZWN1dGlvblRpbWUiPg0KLSAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiIGVUeXBlPSIvMy9PcmRlcmVkU2V0KERpc2NvdmVyeUl0ZXJhdGlvbikiPg0KLSAgICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xOS9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5L2l0ZXJhdGlvbnMiLz4NCi0gICAgICAgICAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgICAgICAgIDwvaW5pdEV4cHJlc3Npb24+DQotICAgICAgICAgICAgICAgICAgPC9sZXRWYXJpYWJsZT4NCi0gICAgICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgICAgICA8aWZFeHByIHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0Jvb2xlYW4iLz4NCi0gICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCIgZVR5cGU9Ii8zL09yZGVyZWRTZXQoRGlzY292ZXJ5SXRlcmF0aW9uKSI+DQotICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xOS9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5L2l0ZXJhdGlvbnMiLz4NCi0gICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvT3JkZXJlZFNldChUKV9DbGFzcy9zaXplIi8+DQotICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6SW50ZWdlckxpdGVyYWxFeHAiIGludGVnZXJTeW1ib2w9IjEiPg0KLSAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXIiLz4NCi0gICAgICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXJfQ2xhc3MvJTNFIi8+DQotICAgICAgICAgICAgICAgIDwvaWZFeHByPg0KLSAgICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgICAgPGlmRXhwciB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvQm9vbGVhbiIvPg0KLSAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9SZXNvdXJjZSIvPg0KLSAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xOS9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5L3Byb2plY3QiLz4NCi0gICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJwcm9qZWN0IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvcHJvamVjdCI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUmVzb3VyY2UiLz4NCi0gICAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvT2NsQW55X0NsYXNzLz0iLz4NCi0gICAgICAgICAgICAgIDwvaWZFeHByPg0KLSAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICA8bG9vcFZhcmlhYmxlIG5hbWU9ImRpc2NvdmVyeSI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICA8L2xvb3BWYXJpYWJsZT4NCi0gICAgICAgICAgICA8aXRlclNldCB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCIgZVR5cGU9Ii8zL09yZGVyZWRTZXQoRGlzY292ZXJ5KSI+DQotICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImIiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvYiI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0JlbmNobWFyayIvPg0KLSAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9CZW5jaG1hcmsvZGlzY292ZXJpZXMiLz4NCi0gICAgICAgICAgICA8L2l0ZXJTZXQ+DQotICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiYjeEE7JiN4QTsiLz4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpGb3JCbG9jayI+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpJZkJsb2NrIj4NCi0gICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJtdGw6SWZCbG9jayI+DQotICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImI3g5OyYjeDk7Jmx0O2g0PlNhdmUgdGltZXMgcGVyIGl0ZXJhdGlvbiZsdDsvaDQ+JiN4QTsmI3hBOyYjeDk7JiN4OTsmbHQ7aDU+Jmx0O2EgaHJlZj0mcXVvdDsiLz4NCi0gICAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlIi8+DQotICAgICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjEvZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeS9wcm9qZWN0Ii8+DQotICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUmVzb3VyY2UvbmFtZSIvPg0KLSAgICAgICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSIuaHRtbCZxdW90Oz4iLz4NCi0gICAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlIi8+DQotICAgICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjEvZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeS9wcm9qZWN0Ii8+DQotICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUmVzb3VyY2UvbmFtZSIvPg0KLSAgICAgICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7L2E+IHdpdGggJmx0O2EgaHJlZj0mcXVvdDsiLz4NCi0gICAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIiByZWZlcnJlZE9wZXJhdGlvbj0iLzEvU3RyaW5nX0NsYXNzLysiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMS9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5L2Rpc2NvdmVyZXJJZCIvPg0KLSAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUmVzb3VyY2UiLz4NCi0gICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIxL2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvcHJvamVjdCIvPg0KLSAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9SZXNvdXJjZS9uYW1lIi8+DQotICAgICAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iLmh0bWwmcXVvdDs+Ii8+DQotICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIxL2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvZGlzY292ZXJlcklkIi8+DQotICAgICAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDsvYT4mbHQ7L2g1PiYjeEE7Ii8+DQotICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJtdGw6TGV0QmxvY2siPg0KLSAgICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImI3hBOyYjeDk7JiN4OTsmbHQ7dGFibGUgd2lkdGg9JnF1b3Q7NjAwJnF1b3Q7IGNsYXNzPSZxdW90O2dyYXBoJnF1b3Q7IGNlbGxzcGFjaW5nPSZxdW90OzYmcXVvdDsgY2VsbHBhZGRpbmc9JnF1b3Q7MCZxdW90Oz4mI3hBOyAgJiN4OTsmI3g5OyZsdDt0cj4mI3hBOyAgICAmI3g5OyYjeDk7Jmx0O3RoPml0ZXJhdGlvbiZsdDsvdGg+Jmx0O3RoPnJlbGF0aXZlIHNhdmUgdGltZSZsdDsvdGg+Jmx0O3RoPnRpbWUocykmbHQ7L3RoPiYjeEE7ICAmI3g5OyYjeDk7Jmx0Oy90cj4mI3hBOyYjeEE7Ii8+DQotICAgICAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpGb3JCbG9jayI+DQotICAgICAgICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iICAgICYjeDk7JiN4OTsmbHQ7dHI+JiN4QTsgICAgICAmI3g5OyYjeDk7JiN4OTsmbHQ7dGQ+Ii8+DQotICAgICAgICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJpIiByZWZlcnJlZFZhcmlhYmxlPSIvMTk0Ij4NCi0gICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXIiLz4NCi0gICAgICAgICAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSIvIi8+DQotICAgICAgICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIiBlVHlwZT0iLzMvT3JkZXJlZFNldChEaXNjb3ZlcnlJdGVyYXRpb24pIj4NCi0gICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjEvZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeS9pdGVyYXRpb25zIi8+DQotICAgICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9PcmRlcmVkU2V0KFQpX0NsYXNzL3NpemUiLz4NCi0gICAgICAgICAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7L3RkPiZsdDt0ZCBjbGFzcz0mcXVvdDtiYXImcXVvdDs+Jmx0O2RpdiBzdHlsZT0mcXVvdDt3aWR0aDogIi8+DQotICAgICAgICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeUl0ZXJhdGlvbiIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjEvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjkvQGJvZHkuMS9kaXNjb3ZlcnlJdGVyYXRpb24iPg0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnlJdGVyYXRpb24iLz4NCi0gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5SXRlcmF0aW9uL3NhdmVUaW1lSW5TZWNvbmRzIi8+DQotICAgICAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9Im1heFNhdmVUaW1lIiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuOS9tYXhTYXZlVGltZSI+DQotICAgICAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbF9DbGFzcy8lMkYiLz4NCi0gICAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlJlYWxMaXRlcmFsRXhwIiByZWFsU3ltYm9sPSIxMDAuMCI+DQotICAgICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbF9DbGFzcy8qIi8+DQotICAgICAgICAgICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJSZxdW90Oz4mbHQ7L2Rpdj4mbHQ7L3RkPiZsdDt0ZD4iLz4NCi0gICAgICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJtdGw6UXVlcnlJbnZvY2F0aW9uIiBkZWZpbml0aW9uPSIvMC90aW1lV2l0aFVuaXQiPg0KLSAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlJlYWxMaXRlcmFsRXhwIiByZWFsU3ltYm9sPSIwLjAiPg0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5SXRlcmF0aW9uIiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuOS9AYm9keS4xL2Rpc2NvdmVyeUl0ZXJhdGlvbiI+DQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeUl0ZXJhdGlvbiIvPg0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnlJdGVyYXRpb24vc2F2ZVRpbWVJblNlY29uZHMiLz4NCi0gICAgICAgICAgICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWxfQ2xhc3MvKyIvPg0KLSAgICAgICAgICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDsvdGQ+JiN4QTsgICAgJiN4OTsmI3g5OyZsdDsvdHI+JiN4QTsiLz4NCi0gICAgICAgICAgICAgICAgICAgIDxsb29wVmFyaWFibGUgbmFtZT0iZGlzY292ZXJ5SXRlcmF0aW9uIj4NCi0gICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5SXRlcmF0aW9uIi8+DQotICAgICAgICAgICAgICAgICAgICA8L2xvb3BWYXJpYWJsZT4NCi0gICAgICAgICAgICAgICAgICAgIDxpdGVyU2V0IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIiBlVHlwZT0iLzMvT3JkZXJlZFNldChEaXNjb3ZlcnlJdGVyYXRpb24pIj4NCi0gICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIxL2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvaXRlcmF0aW9ucyIvPg0KLSAgICAgICAgICAgICAgICAgICAgPC9pdGVyU2V0Pg0KLSAgICAgICAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJiN4OTsmI3g5OyZsdDsvdGFibGU+JiN4QTsmI3hBOyIvPg0KLSAgICAgICAgICAgICAgICAgIDxsZXRWYXJpYWJsZSBuYW1lPSJtYXhTYXZlVGltZSI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICAgICAgPGluaXRFeHByZXNzaW9uIHhzaTp0eXBlPSJtdGw6UXVlcnlJbnZvY2F0aW9uIiBkZWZpbml0aW9uPSIvMC9tYXhTYXZlVGltZSI+DQotICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCIgZVR5cGU9Ii8zL09yZGVyZWRTZXQoRGlzY292ZXJ5SXRlcmF0aW9uKSI+DQotICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIxL2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvaXRlcmF0aW9ucyIvPg0KLSAgICAgICAgICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgICAgICAgPC9pbml0RXhwcmVzc2lvbj4NCi0gICAgICAgICAgICAgICAgICA8L2xldFZhcmlhYmxlPg0KLSAgICAgICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgICAgIDxpZkV4cHIgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvQm9vbGVhbiIvPg0KLSAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9JbnRlZ2VyIi8+DQotICAgICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIiBlVHlwZT0iLzMvT3JkZXJlZFNldChEaXNjb3ZlcnlJdGVyYXRpb24pIj4NCi0gICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIxL2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvaXRlcmF0aW9ucyIvPg0KLSAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9PcmRlcmVkU2V0KFQpX0NsYXNzL3NpemUiLz4NCi0gICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpJbnRlZ2VyTGl0ZXJhbEV4cCIgaW50ZWdlclN5bWJvbD0iMSI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgICAgICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlcl9DbGFzcy8lM0UiLz4NCi0gICAgICAgICAgICAgICAgPC9pZkV4cHI+DQotICAgICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgICA8aWZFeHByIHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9Cb29sZWFuIi8+DQotICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlIi8+DQotICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIxL2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvcHJvamVjdCIvPg0KLSAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9InByb2plY3QiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9wcm9qZWN0Ij4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9SZXNvdXJjZSIvPg0KLSAgICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9PY2xBbnlfQ2xhc3MvPSIvPg0KLSAgICAgICAgICAgICAgPC9pZkV4cHI+DQotICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgIDxsb29wVmFyaWFibGUgbmFtZT0iZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgIDwvbG9vcFZhcmlhYmxlPg0KLSAgICAgICAgICAgIDxpdGVyU2V0IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIiBlVHlwZT0iLzMvT3JkZXJlZFNldChEaXNjb3ZlcnkpIj4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iYiIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9iIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vQmVuY2htYXJrIi8+DQotICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0JlbmNobWFyay9kaXNjb3ZlcmllcyIvPg0KLSAgICAgICAgICAgIDwvaXRlclNldD4NCi0gICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJiN4QTsiLz4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpGb3JCbG9jayI+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpJZkJsb2NrIj4NCi0gICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJtdGw6Rm9yQmxvY2siPg0KLSAgICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ibXRsOklmQmxvY2siPg0KLSAgICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImI3g5OyYjeDk7JiN4OTsmI3g5OyZsdDtmb250IGNvbG9yPSZxdW90O3JlZCZxdW90Oz4mI3hBOyYjeDk7JiN4OTsmI3g5OyYjeDk7Jmx0O2gyPmRpc2NvdmVyeSBlcnJvcnMgZm9yICZsdDthIGhyZWY9JnF1b3Q7Ii8+DQotICAgICAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIiByZWZlcnJlZE9wZXJhdGlvbj0iLzEvU3RyaW5nX0NsYXNzLysiPg0KLSAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIzL2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvZGlzY292ZXJlcklkIi8+DQotICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUmVzb3VyY2UiLz4NCi0gICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjMvZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeS9wcm9qZWN0Ii8+DQotICAgICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9SZXNvdXJjZS9uYW1lIi8+DQotICAgICAgICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iLmh0bWwmcXVvdDs+Ii8+DQotICAgICAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIzL2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvZGlzY292ZXJlcklkIi8+DQotICAgICAgICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7L2E+IG9uICZsdDthIGhyZWY9JnF1b3Q7Ii8+DQotICAgICAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlIi8+DQotICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMy9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5L3Byb2plY3QiLz4NCi0gICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUmVzb3VyY2UvbmFtZSIvPg0KLSAgICAgICAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iLmh0bWwmcXVvdDs+Ii8+DQotICAgICAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlIi8+DQotICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMy9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5L3Byb2plY3QiLz4NCi0gICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUmVzb3VyY2UvbmFtZSIvPg0KLSAgICAgICAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0Oy9hPjombHQ7L2gyPiYjeEE7Ii8+DQotICAgICAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpGb3JCbG9jayI+DQotICAgICAgICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJiN4OTsmI3g5OyYjeDk7JiN4OTsmI3g5OyIvPg0KLSAgICAgICAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZXJyb3IiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIzL0Bib2R5LjAvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjkvZXJyb3IuMSI+DQotICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7YnIvPiYjeEE7JiN4OTsmI3g5OyYjeDk7JiN4OTsmI3g5OyZsdDsvZm9udD4mI3hBOyIvPg0KLSAgICAgICAgICAgICAgICAgICAgPGxvb3BWYXJpYWJsZSBuYW1lPSJlcnJvciI+DQotICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgICAgICAgIDwvbG9vcFZhcmlhYmxlPg0KLSAgICAgICAgICAgICAgICAgICAgPGl0ZXJTZXQgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iaXRlcmF0aW9uIiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMy9AYm9keS4wL0Bib2R5LjAvaXRlcmF0aW9uIj4NCi0gICAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnlJdGVyYXRpb24iLz4NCi0gICAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeUl0ZXJhdGlvbi9kaXNjb3ZlcnlFcnJvcnMiLz4NCi0gICAgICAgICAgICAgICAgICAgIDwvaXRlclNldD4NCi0gICAgICAgICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgICAgICAgPGlmRXhwciB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0Jvb2xlYW4iLz4NCi0gICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0Jvb2xlYW4iLz4NCi0gICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iaXRlcmF0aW9uIiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMy9AYm9keS4wL0Bib2R5LjAvaXRlcmF0aW9uIj4NCi0gICAgICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeUl0ZXJhdGlvbiIvPg0KLSAgICAgICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeUl0ZXJhdGlvbi9kaXNjb3ZlcnlFcnJvcnMiLz4NCi0gICAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZ19DbGFzcy9vY2xJc1VuZGVmaW5lZCIvPg0KLSAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9Cb29sZWFuX0NsYXNzL25vdCIvPg0KLSAgICAgICAgICAgICAgICAgIDwvaWZFeHByPg0KLSAgICAgICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgICAgIDxsb29wVmFyaWFibGUgbmFtZT0iaXRlcmF0aW9uIj4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnlJdGVyYXRpb24iLz4NCi0gICAgICAgICAgICAgICAgPC9sb29wVmFyaWFibGU+DQotICAgICAgICAgICAgICAgIDxpdGVyU2V0IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIiBlVHlwZT0iLzMvT3JkZXJlZFNldChEaXNjb3ZlcnlJdGVyYXRpb24pIj4NCi0gICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjMvZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeS9pdGVyYXRpb25zIi8+DQotICAgICAgICAgICAgICAgIDwvaXRlclNldD4NCi0gICAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICAgIDxpZkV4cHIgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0Jvb2xlYW4iLz4NCi0gICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUmVzb3VyY2UiLz4NCi0gICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjMvZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeS9wcm9qZWN0Ii8+DQotICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0icHJvamVjdCIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS41L3Byb2plY3QiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlIi8+DQotICAgICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09jbEFueV9DbGFzcy89Ii8+DQotICAgICAgICAgICAgICA8L2lmRXhwcj4NCi0gICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgPGxvb3BWYXJpYWJsZSBuYW1lPSJkaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgPC9sb29wVmFyaWFibGU+DQotICAgICAgICAgICAgPGl0ZXJTZXQgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiIGVUeXBlPSIvMy9PcmRlcmVkU2V0KERpc2NvdmVyeSkiPg0KLSAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJiIiByZWZlcnJlZFZhcmlhYmxlPSIvMC9IdG1sUmVwb3J0L2IiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9CZW5jaG1hcmsiLz4NCi0gICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vQmVuY2htYXJrL2Rpc2NvdmVyaWVzIi8+DQotICAgICAgICAgICAgPC9pdGVyU2V0Pg0KLSAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImI3hBOyZsdDtwLz4mI3hBOyZsdDtoci8+JiN4QTsmbHQ7Zm9udCBzaXplPSZxdW90Oy0xJnF1b3Q7PiZsdDtpPlRoaXMgcmVwb3J0IGhhcyBiZWVuIGdlbmVyYXRlZCB3aXRoICZsdDthIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvLyZxdW90Oz5Nb0Rpc2NvJmx0Oy9hPiBKYXZhIERpc2NvdmVyZXIgQmVuY2htYXJrLiZsdDsvaT4mbHQ7L2ZvbnQ+JiN4QTsmbHQ7L2JvZHk+Jmx0Oy9odG1sPiYjeEE7Ii8+DQotICAgICAgICAgIDxmaWxlVXJsIHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCIgcmVmZXJyZWRPcGVyYXRpb249Ii8xL1N0cmluZ19DbGFzcy8rIj4NCi0gICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiIHJlZmVycmVkT3BlcmF0aW9uPSIvMS9TdHJpbmdfQ2xhc3MvKyI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSJSZXBvcnQvIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0icHJvamVjdCIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvSHRtbFJlcG9ydC9AYm9keS41L3Byb2plY3QiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlIi8+DQotICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9SZXNvdXJjZS9uYW1lIi8+DQotICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iLmh0bWwiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgIDwvZmlsZVVybD4NCi0gICAgICAgICAgPGNoYXJzZXQgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IlVURi04Ij4NCi0gICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgIDwvY2hhcnNldD4NCi0gICAgICAgIDwvYm9keT4NCi0gICAgICAgIDxsb29wVmFyaWFibGUgbmFtZT0icHJvamVjdCI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlIi8+DQotICAgICAgICA8L2xvb3BWYXJpYWJsZT4NCi0gICAgICAgIDxpdGVyU2V0IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIiBlVHlwZT0iLzMvT3JkZXJlZFNldChSZXNvdXJjZSkiPg0KLSAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImIiIHJlZmVycmVkVmFyaWFibGU9Ii8wL0h0bWxSZXBvcnQvYiI+DQotICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vQmVuY2htYXJrIi8+DQotICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9CZW5jaG1hcmsvcHJvamVjdHMiLz4NCi0gICAgICAgIDwvaXRlclNldD4NCi0gICAgICA8L2JvZHk+DQotICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiYjeEE7Ii8+DQotICAgICAgPHBhcmFtZXRlciBuYW1lPSJiIj4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0JlbmNobWFyayIvPg0KLSAgICAgIDwvcGFyYW1ldGVyPg0KLSAgICA8L293bmVkTW9kdWxlRWxlbWVudD4NCi0gIDwvbXRsOk1vZHVsZT4NCi0gIDxlY29yZTpFUGFja2FnZSBuYW1lPSJhZGRpdGlvbnMiPg0KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlN0cmluZ19DbGFzcyI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL09DTCI+DQotICAgICAgICA8cmVmZXJlbmNlcyBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9InJlcGxhY2VBbGwiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCBub24tc3RhbmRhcmQiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJzdWJzdHJpbmciPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9InJlcGxhY2VtZW50Ij4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPC9lUGFyYW1ldGVycz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSIrIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwgbm9uLXN0YW5kYXJkIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0ib3RoZXIiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpBbnlUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvT2NsQW55Ii8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDwvZUNsYXNzaWZpZXJzPg0KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkludGVnZXJfQ2xhc3MiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9PQ0wiPg0KLSAgICAgICAgPHJlZmVyZW5jZXMgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXIiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPC9lQ2xhc3NpZmllcnM+DQotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iUmVhbF9DbGFzcyI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL09DTCI+DQotICAgICAgICA8cmVmZXJlbmNlcyBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8L2VDbGFzc2lmaWVycz4NCi0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJFT2JqZWN0X0NsYXNzIj4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvT0NMIj4NCi0gICAgICAgIDxyZWZlcmVuY2VzIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FT2JqZWN0Ii8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9Im1heEV4ZWN1dGlvblRpbWUiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL09DTCI+DQotICAgICAgICAgIDxjb250ZW50cyB4c2k6dHlwZT0ib2NsLmVjb3JlOkNvbnN0cmFpbnQiLz4NCi0gICAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCIgcmVmZXJlbmNlcz0iLzAvbWF4RXhlY3V0aW9uVGltZSIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJpdGVyYXRpb25zIiBlVHlwZT0iLzMvU2V0KERpc2NvdmVyeUl0ZXJhdGlvbikiLz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJtYXhTYXZlVGltZSI+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvT0NMIj4NCi0gICAgICAgICAgPGNvbnRlbnRzIHhzaTp0eXBlPSJvY2wuZWNvcmU6Q29uc3RyYWludCIvPg0KLSAgICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iTVRMIiByZWZlcmVuY2VzPSIvMC9tYXhTYXZlVGltZSIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJpdGVyYXRpb25zIiBlVHlwZT0iLzMvU2V0KERpc2NvdmVyeUl0ZXJhdGlvbikiLz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJzaXplV2l0aFVuaXQiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL09DTCI+DQotICAgICAgICAgIDxjb250ZW50cyB4c2k6dHlwZT0ib2NsLmVjb3JlOkNvbnN0cmFpbnQiLz4NCi0gICAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCIgcmVmZXJlbmNlcz0iLzAvc2l6ZVdpdGhVbml0Ii8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0idmFsdWUiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgPC9lUGFyYW1ldGVycz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJ0aW1lV2l0aFVuaXQiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL09DTCI+DQotICAgICAgICAgIDxjb250ZW50cyB4c2k6dHlwZT0ib2NsLmVjb3JlOkNvbnN0cmFpbnQiLz4NCi0gICAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCIgcmVmZXJlbmNlcz0iLzAvdGltZVdpdGhVbml0Ii8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0idmFsdWUiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgPC9lUGFyYW1ldGVycz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJIdG1sUmVwb3J0Ij4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9PQ0wiPg0KLSAgICAgICAgICA8Y29udGVudHMgeHNpOnR5cGU9Im9jbC5lY29yZTpDb25zdHJhaW50Ii8+DQotICAgICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJiIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vQmVuY2htYXJrIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDwvZUNsYXNzaWZpZXJzPg0KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9Ik9jbEFueV9DbGFzcyI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL09DTCI+DQotICAgICAgICA8cmVmZXJlbmNlcyBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvT2NsQW55Ii8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9InRvU3RyaW5nIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwgbm9uLXN0YW5kYXJkIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iaW52b2tlIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwgbm9uLXN0YW5kYXJkIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpBbnlUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvT2NsQW55Ii8+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0iY2xhc3MiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9Im1ldGhvZCI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0iYXJndW1lbnRzIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6U2VxdWVuY2VUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2FjY2VsZW8vbXRsLzMuMC9tdGxub25zdGRsaWIuZWNvcmUjLy9TZXF1ZW5jZShPY2xBbnkpIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDwvZUNsYXNzaWZpZXJzPg0KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkNvbGxlY3Rpb24oVClfQ2xhc3MiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9PQ0wiPg0KLSAgICAgICAgPHJlZmVyZW5jZXMgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0NvbGxlY3Rpb24oVCkiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPC9lQ2xhc3NpZmllcnM+DQotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iU2VxdWVuY2UoVClfQ2xhc3MiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9PQ0wiPg0KLSAgICAgICAgPHJlZmVyZW5jZXMgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1NlcXVlbmNlKFQpIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDwvZUNsYXNzaWZpZXJzPg0KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9Ik9yZGVyZWRTZXQoVClfQ2xhc3MiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9PQ0wiPg0KLSAgICAgICAgPHJlZmVyZW5jZXMgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09yZGVyZWRTZXQoVCkiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPC9lQ2xhc3NpZmllcnM+DQotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iU2V0KERpc2NvdmVyeUl0ZXJhdGlvbilfQ2xhc3MiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9PQ0wiIHJlZmVyZW5jZXM9Ii8zL1NldChEaXNjb3ZlcnlJdGVyYXRpb24pIi8+DQotICAgIDwvZUNsYXNzaWZpZXJzPg0KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkJlbmNobWFya19DbGFzcyI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL09DTCI+DQotICAgICAgICA8cmVmZXJlbmNlcyBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0JlbmNobWFyayIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8L2VDbGFzc2lmaWVycz4NCi0gIDwvZWNvcmU6RVBhY2thZ2U+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VPYmplY3QiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPGVjb3JlOkVQYWNrYWdlIG5hbWU9ImNvbGxlY3Rpb25zIj4NCi0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0ib2NsLmVjb3JlOlNldFR5cGUiIG5hbWU9IlNldChEaXNjb3ZlcnlJdGVyYXRpb24pIiBpbnN0YW5jZUNsYXNzTmFtZT0iamF2YS51dGlsLlNldCI+DQotICAgICAgPGVsZW1lbnRUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5SXRlcmF0aW9uIi8+DQotICAgIDwvZUNsYXNzaWZpZXJzPg0KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJvY2wuZWNvcmU6U2VxdWVuY2VUeXBlIiBuYW1lPSJTZXF1ZW5jZShTZXQoRGlzY292ZXJ5SXRlcmF0aW9uKSkiIGluc3RhbmNlQ2xhc3NOYW1lPSJqYXZhLnV0aWwuTGlzdCIgZWxlbWVudFR5cGU9Ii8zL1NldChEaXNjb3ZlcnlJdGVyYXRpb24pIi8+DQotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9Im9jbC5lY29yZTpTZXF1ZW5jZVR5cGUiIG5hbWU9IlNlcXVlbmNlKE9jbEFueSkiIGluc3RhbmNlQ2xhc3NOYW1lPSJqYXZhLnV0aWwuTGlzdCI+DQotICAgICAgPGVsZW1lbnRUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6QW55VHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09jbEFueSIvPg0KLSAgICA8L2VDbGFzc2lmaWVycz4NCi0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0ib2NsLmVjb3JlOlNlcXVlbmNlVHlwZSIgbmFtZT0iU2VxdWVuY2UoUmVhbCkiIGluc3RhbmNlQ2xhc3NOYW1lPSJqYXZhLnV0aWwuTGlzdCI+DQotICAgICAgPGVsZW1lbnRUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgPC9lQ2xhc3NpZmllcnM+DQotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9Im9jbC5lY29yZTpPcmRlcmVkU2V0VHlwZSIgbmFtZT0iT3JkZXJlZFNldChEaXNjb3ZlcnkpIiBpbnN0YW5jZUNsYXNzTmFtZT0iamF2YS51dGlsLkxpbmtlZEhhc2hTZXQiPg0KLSAgICAgIDxlbGVtZW50VHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICA8L2VDbGFzc2lmaWVycz4NCi0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0ib2NsLmVjb3JlOk9yZGVyZWRTZXRUeXBlIiBuYW1lPSJPcmRlcmVkU2V0KERpc2NvdmVyeUl0ZXJhdGlvbikiIGluc3RhbmNlQ2xhc3NOYW1lPSJqYXZhLnV0aWwuTGlua2VkSGFzaFNldCI+DQotICAgICAgPGVsZW1lbnRUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5SXRlcmF0aW9uIi8+DQotICAgIDwvZUNsYXNzaWZpZXJzPg0KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJvY2wuZWNvcmU6T3JkZXJlZFNldFR5cGUiIG5hbWU9Ik9yZGVyZWRTZXQoUmVzb3VyY2UpIiBpbnN0YW5jZUNsYXNzTmFtZT0iamF2YS51dGlsLkxpbmtlZEhhc2hTZXQiPg0KLSAgICAgIDxlbGVtZW50VHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlIi8+DQotICAgIDwvZUNsYXNzaWZpZXJzPg0KLSAgPC9lY29yZTpFUGFja2FnZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiIgZVR5cGU9Ii8zL1NldChEaXNjb3ZlcnlJdGVyYXRpb24pIi8+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiIGVUeXBlPSIvMy9TZXQoRGlzY292ZXJ5SXRlcmF0aW9uKSIvPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FT2JqZWN0Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiIgZVR5cGU9Ii8zL1NldChEaXNjb3ZlcnlJdGVyYXRpb24pIi8+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiIGVUeXBlPSIvMy9TZXQoRGlzY292ZXJ5SXRlcmF0aW9uKSIvPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FT2JqZWN0Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRU9iamVjdCIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VPYmplY3QiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vQmVuY2htYXJrIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vQmVuY2htYXJrIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0JlbmNobWFyayIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9CZW5jaG1hcmsiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vQmVuY2htYXJrIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0JlbmNobWFyayIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9CZW5jaG1hcmsiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vQmVuY2htYXJrIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0JlbmNobWFyayIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9CZW5jaG1hcmsiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vQmVuY2htYXJrIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0JlbmNobWFyayIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9CZW5jaG1hcmsiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vQmVuY2htYXJrIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8ZWNvcmU6RVBhY2thZ2UgbmFtZT0idHlwZXMiPg0KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJvY2wuZWNvcmU6VHlwZVR5cGUiIG5hbWU9IlByb2plY3QiPg0KLSAgICAgIDxyZWZlcnJlZFR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9Qcm9qZWN0Ii8+DQotICAgIDwvZUNsYXNzaWZpZXJzPg0KLSAgPC9lY29yZTpFUGFja2FnZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vQmVuY2htYXJrIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0iaSI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9JbnRlZ2VyIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0JlbmNobWFyayIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9CZW5jaG1hcmsiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5SXRlcmF0aW9uIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeUl0ZXJhdGlvbiIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnlJdGVyYXRpb24iLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5SXRlcmF0aW9uIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeUl0ZXJhdGlvbiIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJpIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXIiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vQmVuY2htYXJrIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0iaSI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9JbnRlZ2VyIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0JlbmNobWFyayIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnlJdGVyYXRpb24iLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5SXRlcmF0aW9uIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeUl0ZXJhdGlvbiIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnlJdGVyYXRpb24iLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5SXRlcmF0aW9uIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9ImkiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9CZW5jaG1hcmsiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJpIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXIiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vQmVuY2htYXJrIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5SXRlcmF0aW9uIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeUl0ZXJhdGlvbiIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnlJdGVyYXRpb24iLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5SXRlcmF0aW9uIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeUl0ZXJhdGlvbiIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnlJdGVyYXRpb24iLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5SXRlcmF0aW9uIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeUl0ZXJhdGlvbiIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnlJdGVyYXRpb24iLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5SXRlcmF0aW9uIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeUl0ZXJhdGlvbiIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5SXRlcmF0aW9uIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0iaSI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9JbnRlZ2VyIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9ImkiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9CZW5jaG1hcmsiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJpIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXIiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vQmVuY2htYXJrIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL1Jlc291cmNlIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9SZXNvdXJjZSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9ImkiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9SZXNvdXJjZSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnlJdGVyYXRpb24iLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5SXRlcmF0aW9uIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeUl0ZXJhdGlvbiIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnlJdGVyYXRpb24iLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5SXRlcmF0aW9uIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9ImkiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9SZXNvdXJjZSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9ImkiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9SZXNvdXJjZSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnlJdGVyYXRpb24iLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5SXRlcmF0aW9uIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeUl0ZXJhdGlvbiIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnlJdGVyYXRpb24iLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5SXRlcmF0aW9uIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9ImkiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9SZXNvdXJjZSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9ImkiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9SZXNvdXJjZSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnlJdGVyYXRpb24iLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5SXRlcmF0aW9uIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeUl0ZXJhdGlvbiIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnlJdGVyYXRpb24iLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vRGlzY292ZXJ5SXRlcmF0aW9uIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeUl0ZXJhdGlvbiIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnlJdGVyYXRpb24iLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyayMvL0Rpc2NvdmVyeUl0ZXJhdGlvbiIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9ImkiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJpIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXIiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vUmVzb3VyY2UiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJpIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXIiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrIy8vQmVuY2htYXJrIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0iaSI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9JbnRlZ2VyIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRU9iamVjdCIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8ZWNvcmU6RUFubm90YXRpb24gc291cmNlPSJwb3NpdGlvbnMiPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjAiIHJlZmVyZW5jZXM9Ii8wL21heEV4ZWN1dGlvblRpbWUiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyNzciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjUxNSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjQiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMSIgcmVmZXJlbmNlcz0iLzAvbWF4RXhlY3V0aW9uVGltZS9pdGVyYXRpb25zIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzA5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzNDUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI0Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjIiIHJlZmVyZW5jZXM9Ii8wL21heEV4ZWN1dGlvblRpbWUvQGV4cHJlc3Npb24iPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzNTYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjUxMyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMyIgcmVmZXJlbmNlcz0iLzAvbWF4RXhlY3V0aW9uVGltZS9AZXhwcmVzc2lvbi9zZWxmIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iLTEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ii0xIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40IiByZWZlcmVuY2VzPSIvMC9tYXhFeGVjdXRpb25UaW1lL0BleHByZXNzaW9uL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzYzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0NDgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjUiIHJlZmVyZW5jZXM9Ii8wL21heEV4ZWN1dGlvblRpbWUvQGV4cHJlc3Npb24vQGFyZ3VtZW50LjEiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0NTAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQ5MCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNiIgcmVmZXJlbmNlcz0iLzAvbWF4RXhlY3V0aW9uVGltZS9AZXhwcmVzc2lvbi9AYXJndW1lbnQuMiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQ5MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNTEyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43IiByZWZlcmVuY2VzPSIvMC9tYXhFeGVjdXRpb25UaW1lL0BleHByZXNzaW9uL0Bhcmd1bWVudC4yL0BwYXJ0LjAvaXRlcmF0aW9ucyI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjUwMSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNTExIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy44IiByZWZlcmVuY2VzPSIvMC9tYXhTYXZlVGltZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjUxNiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNzQ0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iNSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy45IiByZWZlcmVuY2VzPSIvMC9tYXhTYXZlVGltZS9pdGVyYXRpb25zIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTQzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1NzkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI1Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEwIiByZWZlcmVuY2VzPSIvMC9tYXhTYXZlVGltZS9AZXhwcmVzc2lvbiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjU5MCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNzQyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMSIgcmVmZXJlbmNlcz0iLzAvbWF4U2F2ZVRpbWUvQGV4cHJlc3Npb24vc2VsZiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ii0xIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSItMSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTIiIHJlZmVyZW5jZXM9Ii8wL21heFNhdmVUaW1lL0BleHByZXNzaW9uL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTk3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2ODIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEzIiByZWZlcmVuY2VzPSIvMC9tYXhTYXZlVGltZS9AZXhwcmVzc2lvbi9AYXJndW1lbnQuMSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjY4NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNzE5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNCIgcmVmZXJlbmNlcz0iLzAvbWF4U2F2ZVRpbWUvQGV4cHJlc3Npb24vQGFyZ3VtZW50LjIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3MjEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijc0MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTUiIHJlZmVyZW5jZXM9Ii8wL21heFNhdmVUaW1lL0BleHByZXNzaW9uL0Bhcmd1bWVudC4yL0BwYXJ0LjAvaXRlcmF0aW9ucyI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjczMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNzQwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNiIgcmVmZXJlbmNlcz0iLzAvc2l6ZVdpdGhVbml0Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNzQ1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI5NDQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI2Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE3IiByZWZlcmVuY2VzPSIvMC9zaXplV2l0aFVuaXQvdmFsdWUiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3NzMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijc4NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjYiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTgiIHJlZmVyZW5jZXM9Ii8wL3NpemVXaXRoVW5pdC9AZXhwcmVzc2lvbiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijc5OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iOTQyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xOSIgcmVmZXJlbmNlcz0iLzAvc2l6ZVdpdGhVbml0L0BleHByZXNzaW9uL3NlbGYiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSItMSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iLTEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjIwIiByZWZlcmVuY2VzPSIvMC9zaXplV2l0aFVuaXQvQGV4cHJlc3Npb24vQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI4MDUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijg5MCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjEiIHJlZmVyZW5jZXM9Ii8wL3NpemVXaXRoVW5pdC9AZXhwcmVzc2lvbi9AYXJndW1lbnQuMSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijg5MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iOTI0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yMiIgcmVmZXJlbmNlcz0iLzAvc2l6ZVdpdGhVbml0L0BleHByZXNzaW9uL0Bhcmd1bWVudC4yIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iOTI2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI5NDEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjIzIiByZWZlcmVuY2VzPSIvMC9zaXplV2l0aFVuaXQvQGV4cHJlc3Npb24vQGFyZ3VtZW50LjIvQHBhcnQuMC92YWx1ZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjkzNSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iOTQwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yNCIgcmVmZXJlbmNlcz0iLzAvdGltZVdpdGhVbml0Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iOTQ1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMTQ0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iNyIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yNSIgcmVmZXJlbmNlcz0iLzAvdGltZVdpdGhVbml0L3ZhbHVlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iOTczIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI5ODUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI3Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI2IiByZWZlcmVuY2VzPSIvMC90aW1lV2l0aFVuaXQvQGV4cHJlc3Npb24iPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI5OTgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjExNDIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI3IiByZWZlcmVuY2VzPSIvMC90aW1lV2l0aFVuaXQvQGV4cHJlc3Npb24vc2VsZiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ii0xIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSItMSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjgiIHJlZmVyZW5jZXM9Ii8wL3RpbWVXaXRoVW5pdC9AZXhwcmVzc2lvbi9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEwMDUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEwOTAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI5IiByZWZlcmVuY2VzPSIvMC90aW1lV2l0aFVuaXQvQGV4cHJlc3Npb24vQGFyZ3VtZW50LjEiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMDkyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMTI0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zMCIgcmVmZXJlbmNlcz0iLzAvdGltZVdpdGhVbml0L0BleHByZXNzaW9uL0Bhcmd1bWVudC4yIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTEyNiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTE0MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzEiIHJlZmVyZW5jZXM9Ii8wL3RpbWVXaXRoVW5pdC9AZXhwcmVzc2lvbi9AYXJndW1lbnQuMi9AcGFydC4wL3ZhbHVlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTEzNSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTE0MCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzIiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMTQ2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNTM0NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjkiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzMiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjExOTAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjExOTIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zNCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTIxMiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNjM3OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjEyIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjM1IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEyNjAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjIwNTciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxMyIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zNiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjEiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyMDU4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyMDY2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zNyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjEvYiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjIwNTgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjIwNTkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjM4IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjIwNjgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjIxMzkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI1NyIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zOSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjMiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyMTQwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyMTUxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40MCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjMvYiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjIxNDAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjIxNDEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQxIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuNCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjIxNTMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjIyMjkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI2MiIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40MiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjUiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyMjMwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyMjQ2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40MyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjUvYiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjIyMzAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjIyMzEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQ0IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuNiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjIyNDgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjIzMzQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI2NyIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40NSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjciPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyMzM1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyMzUxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40NiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjcvYiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjIzMzUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjIzMzYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQ3IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuOCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjIzNTMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjI0MjEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI3MiIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40OCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyNDIyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyNDM3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40OSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjkvYiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjI0MjIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjI0MjMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjUwIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyNDM5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyNTE0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iNzciLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTEiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjI1MTUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjI1MzciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjUyIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTEvYiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjI1MTUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjI1MTYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjUzIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyNTM5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyNjEzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iODIiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTQiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMyI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjI2MTQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjI2MzQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjU1IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTMvYiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjI2MTQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjI2MTUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjU2IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTQiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyNjM2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyNzAzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iODciLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTciIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xNSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjI3MDQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjI3MTgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjU4IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTUvYiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjI3MDQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjI3MDUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjU5IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTYiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyNzIwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyODQzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iOTIiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjAiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xNyI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjI4NDMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjMwMDkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxMDIiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjEiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xNy9AYm9keS4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMjkxNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzAwNCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjEwMyIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42MiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE3L0BpZkV4cHIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyODQ3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyOTE1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42MyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE3L0BpZkV4cHIvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjI4NDgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjI5MTEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjY0IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTcvQGlmRXhwci9Ac291cmNlL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyODQ4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyODkwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42NSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE3L0BpZkV4cHIvQHNvdXJjZS9Ac291cmNlL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyODQ4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyODgxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42NiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE3L0BpZkV4cHIvQHNvdXJjZS9Ac291cmNlL0Bzb3VyY2UvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjI4NDgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjI4NzAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjY3IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTcvQGlmRXhwci9Ac291cmNlL0Bzb3VyY2UvQHNvdXJjZS9Ac291cmNlL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyODQ4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyODYxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42OCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE3L0BpZkV4cHIvQHNvdXJjZS9Ac291cmNlL0Bzb3VyY2UvQHNvdXJjZS9Ac291cmNlL2IiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyODQ4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyODQ5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42OSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE3L0BpZkV4cHIvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyOTEzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyOTE0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43MCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE4Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzAxMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzQyNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjEwOCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43MSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzQzMiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDUyMyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjEyNSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43MiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0Bib2R5LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzNDc5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzNTI2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTI2Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjczIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjM1MjciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjM1NDkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjc0IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMS9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzUyNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzU0NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNzUiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4xL0Bzb3VyY2UvZGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzUyNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzUzNiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNzYiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4yIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzU1MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzU1OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjEyNyIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43NyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0Bib2R5LjMiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzNTU5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzNTgxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43OCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0Bib2R5LjMvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjM1NTkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjM1NzYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjc5IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMy9Ac291cmNlL2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjM1NTkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjM1NjgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjgwIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuNCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjM1ODMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjM2MTYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxMjciLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuODEiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS41Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzYxNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzY2MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuODIiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS41L0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzNjE3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzNjM5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy44MyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0Bib2R5LjUvQHNvdXJjZS9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzNjE3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzNjI2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy44NCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0Bib2R5LjUvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzNjQwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzNjYyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy44NSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0Bib2R5LjUvQGFyZ3VtZW50LjAvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjM2NDAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjM2NTciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjg2IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuNS9AYXJndW1lbnQuMC9Ac291cmNlL2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjM2NDAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjM2NDkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjg3IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuNiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjM2NjQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjM2NzEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxMjgiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuODgiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS43Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzY3MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzY5NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuODkiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS43L2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjM2NzIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjM2ODEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjkwIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuOCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjM2OTYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjM3MjIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxMjgiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuOTEiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS45Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzcyMyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzc4MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuOTIiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS45L0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzczNiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzc4MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuOTMiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS45L0Bhcmd1bWVudC4wL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzNzM2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzNzM5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy45NCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0Bib2R5LjkvQGFyZ3VtZW50LjAvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzNzQyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzNzgxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy45NSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0Bib2R5LjkvQGFyZ3VtZW50LjAvQGFyZ3VtZW50LjAvZGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzc0MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzc1MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuOTYiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4xMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjM3ODQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjM3OTYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxMjkiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuOTciIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4xMSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjM3OTciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjM4NTciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjk4IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMTEvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzODEwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzODU2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy45OSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0Bib2R5LjExL0Bhcmd1bWVudC4wL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzODEwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzODEzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMDAiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4xMS9AYXJndW1lbnQuMC9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjM4MTYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjM4NTYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEwMSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0Bib2R5LjExL0Bhcmd1bWVudC4wL0Bhcmd1bWVudC4wL2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjM4MTYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjM4MjUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEwMiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0Bib2R5LjEyIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzg1OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzg4MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjEyOSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMDMiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4xMyI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjM4ODQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjM5MzgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEwNCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0Bib2R5LjEzL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzg5NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzkzNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTA1IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMTMvQGFyZ3VtZW50LjAvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjM4OTciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjM5MDAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEwNiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0Bib2R5LjEzL0Bhcmd1bWVudC4wL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzkwMyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzkzNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTA3IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMTMvQGFyZ3VtZW50LjAvQGFyZ3VtZW50LjAvZGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzkwMyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzkxMiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTA4IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMTQiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzOTQwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzOTUyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTMwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEwOSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0Bib2R5LjE1Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzk1MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDAwOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTEwIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMTUvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzOTY2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0MDA3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMTEiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4xNS9AYXJndW1lbnQuMC9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzk2NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzk2OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTEyIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMTUvQGFyZ3VtZW50LjAvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzOTcyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0MDA3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMTMiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4xNS9AYXJndW1lbnQuMC9AYXJndW1lbnQuMC9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzOTcyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzOTgxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMTQiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4xNiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQwMTAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQwMzQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxMzAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTE1IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMTciPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0MDM1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0MDY2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMTYiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4xNy9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0MDM1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0MDQ0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMTciIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4xOCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQwNjgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQwOTAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxMzEiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTE4IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMTkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0MDkxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0MTY0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMTkiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4xOS9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQxMDQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQxNjMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEyMCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0Bib2R5LjE5L0Bhcmd1bWVudC4wL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0MTA0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0MTA3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMjEiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4xOS9AYXJndW1lbnQuMC9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQxMTAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQxNjMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEyMiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0Bib2R5LjE5L0Bhcmd1bWVudC4wL0Bhcmd1bWVudC4wL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0MTEwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0MTQ2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMjMiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4xOS9AYXJndW1lbnQuMC9AYXJndW1lbnQuMC9Ac291cmNlL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0MTEwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0MTI3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMjQiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4xOS9AYXJndW1lbnQuMC9AYXJndW1lbnQuMC9Ac291cmNlL0Bzb3VyY2UvZGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDExMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDExOSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTI1IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMTkvQGFyZ3VtZW50LjAvQGFyZ3VtZW50LjAvQHNvdXJjZS9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQxMzgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQxNDUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEyNiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0Bib2R5LjIwIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDE2NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDE4OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjEzMiIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMjciIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4yMSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQxODkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQyNjgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEyOCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0Bib2R5LjIxL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDIwMiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDI2NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTI5IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMjEvQGFyZ3VtZW50LjAvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQyMDIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQyMDUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEzMCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0Bib2R5LjIxL0Bhcmd1bWVudC4wL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDIwOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDI2NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTMxIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMjEvQGFyZ3VtZW50LjAvQGFyZ3VtZW50LjAvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQyMDgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQyNDQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEzMiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0Bib2R5LjIxL0Bhcmd1bWVudC4wL0Bhcmd1bWVudC4wL0Bzb3VyY2UvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQyMDgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQyMjUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEzMyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0Bib2R5LjIxL0Bhcmd1bWVudC4wL0Bhcmd1bWVudC4wL0Bzb3VyY2UvQHNvdXJjZS9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0MjA4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0MjE3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMzQiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4yMS9AYXJndW1lbnQuMC9AYXJndW1lbnQuMC9Ac291cmNlL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDIzNiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDI0MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTM1IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMjIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0MjcwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0MjkyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTMzIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEzNiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0Bib2R5LjIzIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDI5MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDM0MCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTM3IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMjMvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQyOTMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQzMjkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEzOCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0Bib2R5LjIzL0Bzb3VyY2UvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQyOTMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQzMTAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEzOSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0Bib2R5LjIzL0Bzb3VyY2UvQHNvdXJjZS9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0MjkzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0MzAyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNDAiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4yMy9Ac291cmNlL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDMyMSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDMyOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTQxIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMjQiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0MzQyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0MzY0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTM0Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE0MiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0Bib2R5LjI1Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDM2NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDQyMSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTQzIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMjUvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQzNjUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQ0MDEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE0NCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0Bib2R5LjI1L0Bzb3VyY2UvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQzNjUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQzODIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE0NSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0Bib2R5LjI1L0Bzb3VyY2UvQHNvdXJjZS9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0MzY1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0Mzc0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNDYiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4yNS9Ac291cmNlL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDM5MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDQwMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTQ3IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMjYiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0NDIzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0NDQ1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTM1Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE0OCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0Bib2R5LjI3Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDQ0NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDQ4OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTQ5IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMjcvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0NDU5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0NDg4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNTAiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4yNy9AYXJndW1lbnQuMC9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDQ1OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDQ2MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTUxIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMjcvQGFyZ3VtZW50LjAvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0NDY0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0NDg4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNTIiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4yNy9AYXJndW1lbnQuMC9AYXJndW1lbnQuMC9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0NDY0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0NDczIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNTMiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4yOCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQ0OTEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQ1MTIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxMzYiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTU0IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvZGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzQzOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzQ1OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjEyNSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNTUiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AaXRlclNldCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjM0NjIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjM0NzUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE1NiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0BpdGVyU2V0L2IiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzNDYyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzNDYzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNTciIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQ1MjQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQ1MzYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxMzkiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTU4IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0NTM2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2MTk3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTQxIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE1OSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0NTg5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0NjI5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTQyIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE2MCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0NjI5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1NDA0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTQ0Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE2MSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEvQGJvZHkuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQ2NzYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQ2ODAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxNDUiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTYyIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMS9AYm9keS4xIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDY4MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDcwMyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTYzIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMS9AYm9keS4xL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0NjgxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0Njk4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNjQiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4xL0Bib2R5LjEvQHNvdXJjZS9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0NjgxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0NjkwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNjUiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4xL0Bib2R5LjIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0NzA1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0NzI3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTQ1Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE2NiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEvQGJvZHkuMyI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQ3MjgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQ3NzMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE2NyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEvQGJvZHkuMy9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDcyOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDc1MCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTY4IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMS9AYm9keS4zL0Bzb3VyY2UvZGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDcyOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDczNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTY5IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMS9AYm9keS4zL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDc1MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDc3MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTcwIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMS9AYm9keS4zL0Bhcmd1bWVudC4wL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0NzUxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0NzY4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNzEiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4xL0Bib2R5LjMvQGFyZ3VtZW50LjAvQHNvdXJjZS9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0NzUxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0NzYwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNzIiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4xL0Bib2R5LjQiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0Nzc1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0NzgyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTQ1Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE3MyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEvQGJvZHkuNSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQ3ODMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQ4MDUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE3NCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEvQGJvZHkuNS9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0NzgzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0NzkyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNzUiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4xL0Bib2R5LjYiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0ODA3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0ODE3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTQ1Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE3NiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEvQGJvZHkuNyI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQ4MTciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjUzOTciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxNDYiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTc3IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMS9AYm9keS43L0Bib2R5LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0ODg4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1MDM5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTQ3Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE3OCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEvQGJvZHkuNy9AYm9keS4xIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTAzOSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNTM4MCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjE1MyIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNzkiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4xL0Bib2R5LjcvQGJvZHkuMS9AYm9keS4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTExMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNTEyOSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjE1NCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xODAiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4xL0Bib2R5LjcvQGJvZHkuMS9pIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTEzMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNTEzMSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTgxIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMS9AYm9keS43L0Bib2R5LjEvQGJvZHkuMiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjUxMzMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjUxMzQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxNTUiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTgyIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMS9AYm9keS43L0Bib2R5LjEvQGJvZHkuMyI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjUxMzUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjUxNjMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE4MyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEvQGJvZHkuNy9AYm9keS4xL0Bib2R5LjMvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjUxMzUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjUxNTUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE4NCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEvQGJvZHkuNy9AYm9keS4xL0Bib2R5LjMvQHNvdXJjZS9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1MTM1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1MTQ0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xODUiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4xL0Bib2R5LjcvQGJvZHkuMS9AYm9keS40Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTE2NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNTIwNSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjE1NSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xODYiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4xL0Bib2R5LjcvQGJvZHkuMS9AYm9keS41Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTIwNiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNTI3NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTg3IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMS9AYm9keS43L0Bib2R5LjEvQGJvZHkuNS9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTIwNiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNTI2NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTg4IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMS9AYm9keS43L0Bib2R5LjEvQGJvZHkuNS9Ac291cmNlL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1MjA2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1MjQ3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xODkiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4xL0Bib2R5LjcvQGJvZHkuMS9AYm9keS41L0Bzb3VyY2UvQHNvdXJjZS9kaXNjb3ZlcnlJdGVyYXRpb24iPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1MjA2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1MjI0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xOTAiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4xL0Bib2R5LjcvQGJvZHkuMS9AYm9keS41L0Bzb3VyY2UvbWF4RXhlY3V0aW9uVGltZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjUyNTAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjUyNjYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE5MSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEvQGJvZHkuNy9AYm9keS4xL0Bib2R5LjUvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1MjY5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1Mjc0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xOTIiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4xL0Bib2R5LjcvQGJvZHkuMS9AYm9keS42Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTI3NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNTI5NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjE1NSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xOTMiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4xL0Bib2R5LjcvQGJvZHkuMS9AYm9keS43Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTI5NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNTM1NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTk0IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMS9AYm9keS43L0Bib2R5LjEvQGJvZHkuNy9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjUzMDgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjUzNTUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE5NSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEvQGJvZHkuNy9AYm9keS4xL0Bib2R5LjcvQGFyZ3VtZW50LjAvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjUzMDgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjUzMTEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE5NiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEvQGJvZHkuNy9AYm9keS4xL0Bib2R5LjcvQGFyZ3VtZW50LjAvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1MzE0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1MzU1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xOTciIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4xL0Bib2R5LjcvQGJvZHkuMS9AYm9keS43L0Bhcmd1bWVudC4wL0Bhcmd1bWVudC4wL2Rpc2NvdmVyeUl0ZXJhdGlvbiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjUzMTQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjUzMzIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE5OCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEvQGJvZHkuNy9AYm9keS4xL0Bib2R5LjgiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1MzU4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1Mzc0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTU1Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE5OSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEvQGJvZHkuNy9AYm9keS4xL2Rpc2NvdmVyeUl0ZXJhdGlvbiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjUwNDUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjUwODQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxNTMiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjAwIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMS9AYm9keS43L0Bib2R5LjEvQGl0ZXJTZXQiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1MDg3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1MTA3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yMDEiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4xL0Bib2R5LjcvQGJvZHkuMS9AaXRlclNldC9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1MDg3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1MDk2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yMDIiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4xL0Bib2R5LjcvQGJvZHkuMiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjUzODEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjUzOTEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxNTgiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjAzIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMS9AYm9keS43L21heEV4ZWN1dGlvblRpbWUiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0ODIyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0ODg2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTQ2Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjIwNCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEvQGJvZHkuNy9tYXhFeGVjdXRpb25UaW1lL0Bpbml0RXhwcmVzc2lvbiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQ4NDkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQ4ODciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjIwNSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEvQGJvZHkuNy9tYXhFeGVjdXRpb25UaW1lL0Bpbml0RXhwcmVzc2lvbi9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQ4NjYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQ4ODYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjIwNiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEvQGJvZHkuNy9tYXhFeGVjdXRpb25UaW1lL0Bpbml0RXhwcmVzc2lvbi9AYXJndW1lbnQuMC9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0ODY2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0ODc1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yMDciIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4xL2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQ2MzUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQ2NTYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxNDQiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjA4IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMS9AaXRlclNldCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQ2NTkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQ2NzIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjIwOSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEvQGl0ZXJTZXQvYiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQ2NTkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQ2NjAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjIxMCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1NDA1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1NDQxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTYyIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjIxMSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjMiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1NDQxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2MTg5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTY1Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjIxMiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjMvQGJvZHkuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjU0ODgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjU0OTIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxNjYiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjEzIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMy9AYm9keS4xIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTQ5MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNTUxNSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjE0IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMy9AYm9keS4xL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1NDkzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1NTEwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yMTUiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4zL0Bib2R5LjEvQHNvdXJjZS9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1NDkzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1NTAyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yMTYiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4zL0Bib2R5LjIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1NTE3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1NTM5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTY2Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjIxNyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjMvQGJvZHkuMyI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjU1NDAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjU1ODUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjIxOCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjMvQGJvZHkuMy9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTU0MCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNTU2MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjE5IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMy9AYm9keS4zL0Bzb3VyY2UvZGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTU0MCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNTU0OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjIwIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMy9AYm9keS4zL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTU2MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNTU4NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjIxIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMy9AYm9keS4zL0Bhcmd1bWVudC4wL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1NTYzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1NTgwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yMjIiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4zL0Bib2R5LjMvQGFyZ3VtZW50LjAvQHNvdXJjZS9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1NTYzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1NTcyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yMjMiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4zL0Bib2R5LjQiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1NTg3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1NTk0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTY2Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjIyNCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjMvQGJvZHkuNSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjU1OTUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjU2MTciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjIyNSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjMvQGJvZHkuNS9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1NTk1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1NjA0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yMjYiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4zL0Bib2R5LjYiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1NjE5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1NjI5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTY2Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjIyNyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjMvQGJvZHkuNyI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjU2MjkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjYxODIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxNjciLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjI4IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMy9AYm9keS43L0Bib2R5LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1NjkwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1ODM5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTY4Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjIyOSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjMvQGJvZHkuNy9AYm9keS4xIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTgzOSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNjE2NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjE3NCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yMzAiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4zL0Bib2R5LjcvQGJvZHkuMS9AYm9keS4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTkxMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNTkyOSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjE3NSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yMzEiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4zL0Bib2R5LjcvQGJvZHkuMS9pIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTkzMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNTkzMSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjMyIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMy9AYm9keS43L0Bib2R5LjEvQGJvZHkuMiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjU5MzMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjU5MzQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxNzYiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjMzIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMy9AYm9keS43L0Bib2R5LjEvQGJvZHkuMyI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjU5MzUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjU5NjMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjIzNCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjMvQGJvZHkuNy9AYm9keS4xL0Bib2R5LjMvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjU5MzUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjU5NTUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjIzNSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjMvQGJvZHkuNy9AYm9keS4xL0Bib2R5LjMvQHNvdXJjZS9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1OTM1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1OTQ0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yMzYiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4zL0Bib2R5LjcvQGJvZHkuMS9AYm9keS40Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTk2NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNjAwNSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjE3NiIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yMzciIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4zL0Bib2R5LjcvQGJvZHkuMS9AYm9keS41Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNjAwNiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNjA2NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjM4IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMy9AYm9keS43L0Bib2R5LjEvQGJvZHkuNS9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNjAwNiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNjA1NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjM5IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMy9AYm9keS43L0Bib2R5LjEvQGJvZHkuNS9Ac291cmNlL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI2MDA2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2MDQyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yNDAiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4zL0Bib2R5LjcvQGJvZHkuMS9AYm9keS41L0Bzb3VyY2UvQHNvdXJjZS9kaXNjb3ZlcnlJdGVyYXRpb24iPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI2MDA2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2MDI0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yNDEiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4zL0Bib2R5LjcvQGJvZHkuMS9AYm9keS41L0Bzb3VyY2UvbWF4U2F2ZVRpbWUiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI2MDQ1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2MDU2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yNDIiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4zL0Bib2R5LjcvQGJvZHkuMS9AYm9keS41L0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNjA1OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNjA2NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjQzIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMy9AYm9keS43L0Bib2R5LjEvQGJvZHkuNiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjYwNjYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjYwODQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxNzYiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjQ0IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMy9AYm9keS43L0Bib2R5LjEvQGJvZHkuNyI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjYwODUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjYxNDEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI0NSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjMvQGJvZHkuNy9AYm9keS4xL0Bib2R5LjcvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI2MDk4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2MTQwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yNDYiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4zL0Bib2R5LjcvQGJvZHkuMS9AYm9keS43L0Bhcmd1bWVudC4wL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI2MDk4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2MTAxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yNDciIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4zL0Bib2R5LjcvQGJvZHkuMS9AYm9keS43L0Bhcmd1bWVudC4wL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNjEwNCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNjE0MCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjQ4IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMy9AYm9keS43L0Bib2R5LjEvQGJvZHkuNy9AYXJndW1lbnQuMC9AYXJndW1lbnQuMC9kaXNjb3ZlcnlJdGVyYXRpb24iPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI2MTA0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2MTIyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yNDkiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4zL0Bib2R5LjcvQGJvZHkuMS9AYm9keS44Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNjE0MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNjE1OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjE3NiIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yNTAiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4zL0Bib2R5LjcvQGJvZHkuMS9kaXNjb3ZlcnlJdGVyYXRpb24iPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1ODQ1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1ODg0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTc0Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI1MSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjMvQGJvZHkuNy9AYm9keS4xL0BpdGVyU2V0Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTg4NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNTkwNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjUyIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMy9AYm9keS43L0Bib2R5LjEvQGl0ZXJTZXQvZGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTg4NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNTg5NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjUzIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMy9AYm9keS43L0Bib2R5LjIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI2MTY2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2MTc2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTc5Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI1NCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjMvQGJvZHkuNy9tYXhTYXZlVGltZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjU2MzQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjU2ODgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxNjciLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjU1IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMy9AYm9keS43L21heFNhdmVUaW1lL0Bpbml0RXhwcmVzc2lvbiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjU2NTYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjU2ODkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI1NiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjMvQGJvZHkuNy9tYXhTYXZlVGltZS9AaW5pdEV4cHJlc3Npb24vQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1NjY4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1Njg4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yNTciIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4zL0Bib2R5LjcvbWF4U2F2ZVRpbWUvQGluaXRFeHByZXNzaW9uL0Bhcmd1bWVudC4wL2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjU2NjgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjU2NzciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI1OCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjMvZGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTQ0NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNTQ2OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjE2NSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yNTkiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4zL0BpdGVyU2V0Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTQ3MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNTQ4NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjYwIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMy9AaXRlclNldC9iIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTQ3MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNTQ3MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjYxIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuNCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjYxOTAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjYxOTIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxODMiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjYyIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGlmRXhwciI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQ1NDAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQ1ODciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI2MyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0BpZkV4cHIvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQ1NDEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQ1ODIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI2NCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0BpZkV4cHIvQHNvdXJjZS9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDU0MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDU3NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjY1IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGlmRXhwci9Ac291cmNlL0Bzb3VyY2UvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQ1NDEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQ1NjMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI2NiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0BpZkV4cHIvQHNvdXJjZS9Ac291cmNlL0Bzb3VyY2UvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQ1NDEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQ1NTQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI2NyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0BpZkV4cHIvQHNvdXJjZS9Ac291cmNlL0Bzb3VyY2UvQHNvdXJjZS9iIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDU0MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDU0MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjY4IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGlmRXhwci9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQ1ODUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQ1ODYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI2OSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIyIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNjE5OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNjM3MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjE4NiIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yNzAiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMS9AZmlsZVVybCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEyMTkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEyNDEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI3MSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4xL0BjaGFyc2V0Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTI1MCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTI1NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjcyIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI2MzgwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2MzgzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTkyIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI3MyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNjM4MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iOTcxNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjE5NSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yNzQiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNjQzMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iOTcxMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjE5NiIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yNzUiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI2NTE5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3MTMyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTk3Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI3NiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjcxMzMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjcxNDciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI3NyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMS9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3MTMzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3MTQyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yNzgiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3MTQ5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3MTc5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMjMwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI3OSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMyI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjcxODAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjcxOTQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI4MCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMy9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3MTgwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3MTg5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yODEiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjQiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3MTk2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3MjU0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMjM1Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI4MiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuNSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjcyNTUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjcyNjkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI4MyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuNS9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3MjU1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3MjY0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yODQiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjYiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3MjcxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3Mjk2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMjM3Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI4NSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuNyI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjcyOTciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjczMTkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI4NiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuNy9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3Mjk3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3MzA2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yODciIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjgiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3MzIxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3MzIzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMjM4Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI4OCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuOSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjczMjQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjczNTMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI4OSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuOS9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3MzI0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3MzMzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yOTAiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjEwIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNzM1NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNzQwNCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjIzOCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yOTEiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjExIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNzQwNSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNzQ2NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjkyIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4xMS9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijc0MTgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijc0NjMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI5MyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMTEvQGFyZ3VtZW50LjAvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijc0MTgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijc0MjEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI5NCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMTEvQGFyZ3VtZW50LjAvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3NDI0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3NDYzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yOTUiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjExL0Bhcmd1bWVudC4wL0Bhcmd1bWVudC4wL2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijc0MjQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijc0MzMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI5NiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMTIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3NDY2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3NTA5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMjM5Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI5NyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMTMiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3NTEwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3NTY0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yOTgiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjEzL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNzUyMyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNzU2MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjk5IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4xMy9AYXJndW1lbnQuMC9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNzUyMyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNzUyNiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzAwIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4xMy9AYXJndW1lbnQuMC9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijc1MjkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijc1NjMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjMwMSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMTMvQGFyZ3VtZW50LjAvQGFyZ3VtZW50LjAvZGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNzUyOSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNzUzOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzAyIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4xNCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijc1NjYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijc2MTQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIyNDAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzAzIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4xNSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijc2MTUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijc2NzUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjMwNCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMTUvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3NjI4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3Njc0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zMDUiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjE1L0Bhcmd1bWVudC4wL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3NjI4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3NjMxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zMDYiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjE1L0Bhcmd1bWVudC4wL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNzYzNCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNzY3NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzA3IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4xNS9AYXJndW1lbnQuMC9AYXJndW1lbnQuMC9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3NjM0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3NjQzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zMDgiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjE2Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNzY3NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNzcyMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjI0MSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zMDkiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjE3Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNzcyMSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNzc3NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzEwIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4xNy9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijc3MzQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijc3NzUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjMxMSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMTcvQGFyZ3VtZW50LjAvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijc3MzQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijc3MzciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjMxMiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMTcvQGFyZ3VtZW50LjAvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3NzQwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3Nzc1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zMTMiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjE3L0Bhcmd1bWVudC4wL0Bhcmd1bWVudC4wL2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijc3NDAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijc3NDkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjMxNCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMTgiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3Nzc4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3ODE3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMjQyIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjMxNSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMTkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3ODE4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3ODQ5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zMTYiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjE5L2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijc4MTgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijc4MjciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjMxNyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3ODUxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3ODk1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMjQzIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjMxOCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMjEiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3ODk2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3OTQwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zMTkiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjIxL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNzkwOSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNzkzOSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzIwIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4yMS9AYXJndW1lbnQuMC9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNzkwOSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNzkxMiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzIxIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4yMS9AYXJndW1lbnQuMC9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijc5MTUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijc5MzkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjMyMiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMjEvQGFyZ3VtZW50LjAvQGFyZ3VtZW50LjAvZGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNzkxNSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNzkyNCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzIzIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4yMiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijc5NDIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjgwMDgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIyNDQiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzI0IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4yMyI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjgwMDkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjgwMzEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjMyNSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMjMvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjgwMDkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjgwMjYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjMyNiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMjMvQHNvdXJjZS9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI4MDA5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI4MDE4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zMjciIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjI0Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iODAzMyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iODA0MCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjI0NyIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zMjgiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjI1Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iODA0MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iODA2MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzI5IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4yNS9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iODA0MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iODA1OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzMwIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4yNS9Ac291cmNlL2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjgwNDEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjgwNTAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjMzMSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMjYiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI4MDY1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI4MTA1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMjQ3Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjMzMiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMjciPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI4MTA2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI4MTUzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zMzMiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjI3L0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI4MTA2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI4MTQyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zMzQiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjI3L0Bzb3VyY2UvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjgxMDYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjgxMjMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjMzNSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMjcvQHNvdXJjZS9Ac291cmNlL2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjgxMDYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjgxMTUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjMzNiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMjcvQHNvdXJjZS9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjgxMzQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjgxNDEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjMzNyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMjgiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI4MTU1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI4MjAzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMjQ4Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjMzOCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMjkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI4MjA0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI4MjYwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zMzkiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjI5L0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI4MjA0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI4MjQwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zNDAiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjI5L0Bzb3VyY2UvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjgyMDQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjgyMjEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjM0MSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMjkvQHNvdXJjZS9Ac291cmNlL2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjgyMDQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjgyMTMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjM0MiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMjkvQHNvdXJjZS9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjgyMzIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjgyMzkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjM0MyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI4MjYyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI4MzAzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMjQ5Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjM0NCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzEiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI4MzA0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI4MzgzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zNDUiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjMxL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iODMxNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iODM4MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzQ2IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4zMS9AYXJndW1lbnQuMC9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iODMxNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iODMyMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzQ3IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4zMS9AYXJndW1lbnQuMC9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjgzMjMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjgzODIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjM0OCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzEvQGFyZ3VtZW50LjAvQGFyZ3VtZW50LjAvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjgzMjMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjgzNTkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjM0OSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzEvQGFyZ3VtZW50LjAvQGFyZ3VtZW50LjAvQHNvdXJjZS9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iODMyMyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iODM0MCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzUwIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4zMS9AYXJndW1lbnQuMC9AYXJndW1lbnQuMC9Ac291cmNlL0Bzb3VyY2UvZGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iODMyMyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iODMzMiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzUxIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4zMS9AYXJndW1lbnQuMC9AYXJndW1lbnQuMC9Ac291cmNlL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iODM1MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iODM1OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzUyIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4zMiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjgzODUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijg0MTkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIyNTAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzUzIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4zMyI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijg0MjAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijg0NzQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjM1NCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzMvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI4NDMzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI4NDczIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zNTUiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjMzL0Bhcmd1bWVudC4wL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI4NDMzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI4NDM2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zNTYiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjMzL0Bhcmd1bWVudC4wL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iODQzOSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iODQ3MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzU3IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4zMy9AYXJndW1lbnQuMC9AYXJndW1lbnQuMC9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iODQzOSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iODQ1NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzU4IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4zMy9AYXJndW1lbnQuMC9AYXJndW1lbnQuMC9Ac291cmNlL2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijg0MzkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijg0NDgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjM1OSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzQiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI4NDc2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI4NTIyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMjUxIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjM2MCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzUiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI4NTIzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI4NTQ1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zNjEiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjM1L2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijg1MjMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijg1MzIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjM2MiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzYiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI4NTQ3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI4NTU1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMjUzIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjM2MyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzciPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI4NTU1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI4Njg2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMjU0Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjM2NCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzcvQGJvZHkuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijg2MTYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijg2NDgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIyNTUiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzY1IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4zNy9AYm9keS4xIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iODY0OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iODY3MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzY2IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4zNy9AYm9keS4xL2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijg2NDkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijg2NTgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjM2NyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzcvQGJvZHkuMiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijg2NzMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijg2ODEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIyNTUiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzY4IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4zNy9AaWZFeHByIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iODU1OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iODYxNCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzY5IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4zNy9AaWZFeHByL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI4NTYwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI4NjEwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zNzAiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjM3L0BpZkV4cHIvQHNvdXJjZS9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iODU2MCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iODU4OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzcxIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4zNy9AaWZFeHByL0Bzb3VyY2UvQHNvdXJjZS9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iODU2MCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iODU4MCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzcyIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4zNy9AaWZFeHByL0Bzb3VyY2UvQHNvdXJjZS9Ac291cmNlL2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijg1NjAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijg1NjkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjM3MyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzcvQGlmRXhwci9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijg2MTIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijg2MTMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjM3NCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzgiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI4Njg3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI4Njg4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMjU3Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjM3NSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI4Njg4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI5NTI1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMjU4Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjM3NiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzkvQGJvZHkuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijg3MjgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijk1MTkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIyNTkiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzc3IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4zOS9AYm9keS4wL0Bib2R5LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI4ODEwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI4ODI0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMjYwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjM3OCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzkvQGJvZHkuMC9pIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iODgyNSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iODgyNiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzc5IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4zOS9AYm9keS4wL0Bib2R5LjIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI4ODI4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI4ODQ3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMjYwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjM4MCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzkvQGJvZHkuMC9AYm9keS4zIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iODg0OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iODg3MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzgxIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4zOS9AYm9keS4wL0Bib2R5LjMvaXRlcmF0aW9uIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iODg0OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iODg1NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzgyIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4zOS9AYm9keS4wL0Bib2R5LjQiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI4ODczIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI4ODk3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMjYxIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjM4MyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzkvQGJvZHkuMC9AYm9keS41Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iODg5OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iODk0NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzg0IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4zOS9AYm9keS4wL0Bib2R5LjUvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI4OTExIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI4OTQ0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zODUiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjM5L0Bib2R5LjAvQGJvZHkuNS9AYXJndW1lbnQuMC9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iODkxMSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iODkxNCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzg2IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4zOS9AYm9keS4wL0Bib2R5LjUvQGFyZ3VtZW50LjAvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI4OTE3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI4OTQ0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zODciIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjM5L0Bib2R5LjAvQGJvZHkuNS9AYXJndW1lbnQuMC9AYXJndW1lbnQuMC9pdGVyYXRpb24iPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI4OTE3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI4OTI2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zODgiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjM5L0Bib2R5LjAvQGJvZHkuNiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijg5NDciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijg5NzYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIyNjIiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzg5IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4zOS9AYm9keS4wL0Bib2R5LjciPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI4OTc3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI5MDI5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zOTAiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjM5L0Bib2R5LjAvQGJvZHkuNy9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijg5OTAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjkwMjgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjM5MSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzkvQGJvZHkuMC9AYm9keS43L0Bhcmd1bWVudC4wL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI4OTkwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI4OTkzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zOTIiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjM5L0Bib2R5LjAvQGJvZHkuNy9AYXJndW1lbnQuMC9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijg5OTYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjkwMjgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjM5MyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzkvQGJvZHkuMC9AYm9keS43L0Bhcmd1bWVudC4wL0Bhcmd1bWVudC4wL2l0ZXJhdGlvbiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijg5OTYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjkwMDUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjM5NCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzkvQGJvZHkuMC9AYm9keS44Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iOTAzMSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iOTA2MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjI2MyIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zOTUiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjM5L0Bib2R5LjAvQGJvZHkuOSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjkwNjIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjkxMTIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjM5NiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzkvQGJvZHkuMC9AYm9keS45L0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iOTA3NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iOTExMSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzk3IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4zOS9AYm9keS4wL0Bib2R5LjkvQGFyZ3VtZW50LjAvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjkwNzUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjkwNzgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjM5OCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzkvQGJvZHkuMC9AYm9keS45L0Bhcmd1bWVudC4wL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iOTA4MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iOTExMSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzk5IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4zOS9AYm9keS4wL0Bib2R5LjkvQGFyZ3VtZW50LjAvQGFyZ3VtZW50LjAvaXRlcmF0aW9uIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iOTA4MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iOTA5MCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNDAwIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4zOS9AYm9keS4wL0Bib2R5LjEwIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iOTExNCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iOTEyMSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjI2NCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40MDEiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjM5L0Bib2R5LjAvQGJvZHkuMTEiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI5MTIxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI5MzI1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMjY2Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQwMiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzkvQGJvZHkuMC9AYm9keS4xMS9AYm9keS4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iOTE4MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iOTIwNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjI2NyIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40MDMiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjM5L0Bib2R5LjAvQGJvZHkuMTEvQGJvZHkuMSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjkyMDgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjkyMzAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQwNCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzkvQGJvZHkuMC9AYm9keS4xMS9AYm9keS4xL2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjkyMDgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjkyMTciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQwNSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzkvQGJvZHkuMC9AYm9keS4xMS9AYm9keS4yIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iOTIzMiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iOTIzMyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjI2NyIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40MDYiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjM5L0Bib2R5LjAvQGJvZHkuMTEvQGJvZHkuMyI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjkyMzQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjkzMTAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQwNyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzkvQGJvZHkuMC9AYm9keS4xMS9AYm9keS4zL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI5MjM0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI5Mjg5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40MDgiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjM5L0Bib2R5LjAvQGJvZHkuMTEvQGJvZHkuMy9Ac291cmNlL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI5MjM0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI5MjY4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40MDkiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjM5L0Bib2R5LjAvQGJvZHkuMTEvQGJvZHkuMy9Ac291cmNlL0Bzb3VyY2UvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjkyMzQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjkyNTciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQxMCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzkvQGJvZHkuMC9AYm9keS4xMS9AYm9keS4zL0Bzb3VyY2UvQHNvdXJjZS9Ac291cmNlL2l0ZXJhdGlvbiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjkyMzQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjkyNDMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQxMSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzkvQGJvZHkuMC9AYm9keS4xMS9AYm9keS4zL0Bzb3VyY2UvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI5MjgwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI5MjgzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40MTIiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjM5L0Bib2R5LjAvQGJvZHkuMTEvQGJvZHkuMy9Ac291cmNlL0Bhcmd1bWVudC4xIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iOTI4NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iOTI4OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNDEzIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4zOS9AYm9keS4wL0Bib2R5LjExL0Bib2R5LjMvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI5MzAxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI5MzA0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40MTQiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjM5L0Bib2R5LjAvQGJvZHkuMTEvQGJvZHkuMy9AYXJndW1lbnQuMSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjkzMDYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjkzMDkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQxNSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzkvQGJvZHkuMC9AYm9keS4xMS9AYm9keS40Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iOTMxMiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iOTMyMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjI2NyIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40MTYiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjM5L0Bib2R5LjAvQGJvZHkuMTEvQGlmRXhwciI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjkxMjUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjkxODAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQxNyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzkvQGJvZHkuMC9AYm9keS4xMS9AaWZFeHByL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI5MTI2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI5MTc2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40MTgiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjM5L0Bib2R5LjAvQGJvZHkuMTEvQGlmRXhwci9Ac291cmNlL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI5MTI2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI5MTU1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40MTkiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjM5L0Bib2R5LjAvQGJvZHkuMTEvQGlmRXhwci9Ac291cmNlL0Bzb3VyY2UvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjkxMjYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjkxNDYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQyMCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzkvQGJvZHkuMC9AYm9keS4xMS9AaWZFeHByL0Bzb3VyY2UvQHNvdXJjZS9Ac291cmNlL2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjkxMjYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjkxMzUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQyMSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzkvQGJvZHkuMC9AYm9keS4xMS9AaWZFeHByL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iOTE3OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iOTE3OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNDIyIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4zOS9AYm9keS4wL0Bib2R5LjEyIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iOTMyNiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iOTMyNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjI2OSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40MjMiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjM5L0Bib2R5LjAvQGJvZHkuMTMiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI5MzI3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI5NTEyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMjcwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQyNCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzkvQGJvZHkuMC9AYm9keS4xMy9AYm9keS4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iOTM4MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iOTQyNiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjI3MSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40MjUiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjM5L0Bib2R5LjAvQGJvZHkuMTMvQGJvZHkuMSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijk0MjYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijk1MDYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIyNzMiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNDI2IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4zOS9AYm9keS4wL0Bib2R5LjEzL0Bib2R5LjEvZXJyb3IiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI5NDc5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI5NDg0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40MjciIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjM5L0Bib2R5LjAvQGJvZHkuMTMvQGJvZHkuMS9AYm9keS4xIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iOTQ4NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iOTUwMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjI3NCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40MjgiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjM5L0Bib2R5LjAvQGJvZHkuMTMvQGJvZHkuMS9lcnJvci4xIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iOTQzMiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iOTQ0NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjI3MyIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40MjkiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjM5L0Bib2R5LjAvQGJvZHkuMTMvQGJvZHkuMS9AaXRlclNldCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijk0NDkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijk0NzQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQzMCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzkvQGJvZHkuMC9AYm9keS4xMy9AYm9keS4xL0BpdGVyU2V0L2l0ZXJhdGlvbiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijk0NDkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijk0NTgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQzMSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzkvQGJvZHkuMC9AYm9keS4xMy9AaWZFeHByIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iOTMzMSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iOTM3OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNDMyIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4zOS9AYm9keS4wL0Bib2R5LjEzL0BpZkV4cHIvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjkzMzYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjkzNzgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQzMyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzkvQGJvZHkuMC9AYm9keS4xMy9AaWZFeHByL0Bzb3VyY2UvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjkzMzYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjkzNjEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQzNCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGJvZHkuMzkvQGJvZHkuMC9AYm9keS4xMy9AaWZFeHByL0Bzb3VyY2UvQHNvdXJjZS9pdGVyYXRpb24iPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI5MzM2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI5MzQ1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40MzUiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjM5L0Bib2R5LjAvaXRlcmF0aW9uIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iODczNCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iODc2NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjI1OSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40MzYiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjM5L0Bib2R5LjAvQGl0ZXJTZXQiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI4NzY3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI4Nzg3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40MzciIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjM5L0Bib2R5LjAvQGl0ZXJTZXQvZGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iODc2NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iODc3NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNDM4IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4zOS9AYm9keS4wL0BlYWNoIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iODgwMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iODgwNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNDM5IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4zOS9AaWZFeHByIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iODY5MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iODcyNiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNDQwIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4zOS9AaWZFeHByL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI4NjkzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI4NzIxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40NDEiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjM5L0BpZkV4cHIvQHNvdXJjZS9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iODY5MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iODcxMyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNDQyIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AYm9keS4zOS9AaWZFeHByL0Bzb3VyY2UvQHNvdXJjZS9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI4NjkzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI4NzAyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40NDMiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjM5L0BpZkV4cHIvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI4NzI0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI4NzI1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40NDQiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0Bib2R5LjQwIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iOTUyNiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iOTcwMyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjI4MCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40NDUiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0BmaWxlVXJsIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNjQzNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNjUwMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNDQ2IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AZmlsZVVybC9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNjQzNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNjQ5MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNDQ3IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AZmlsZVVybC9Ac291cmNlL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI2NDM3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2NDY5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40NDgiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0BmaWxlVXJsL0Bzb3VyY2UvQHNvdXJjZS9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNjQzNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNjQ0NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNDQ5IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvQGJvZHkuMC9AZmlsZVVybC9Ac291cmNlL0Bzb3VyY2UvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI2NDQ3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2NDY5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40NTAiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0BmaWxlVXJsL0Bzb3VyY2UvQHNvdXJjZS9AYXJndW1lbnQuMC9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI2NDQ3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2NDU2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40NTEiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0BmaWxlVXJsL0Bzb3VyY2UvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI2NDcwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2NDkyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40NTIiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0BmaWxlVXJsL0Bzb3VyY2UvQGFyZ3VtZW50LjAvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjY0NzAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjY0ODciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQ1MyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGZpbGVVcmwvQHNvdXJjZS9AYXJndW1lbnQuMC9Ac291cmNlL2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjY0NzAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjY0NzkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQ1NCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0Bib2R5LjAvQGZpbGVVcmwvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI2NDkzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2NTAwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40NTUiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AYm9keS4wL0BjaGFyc2V0Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNjUwOSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNjUxNiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNDU2IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjMvZGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNjM4OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNjQxMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjE5NSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40NTciIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuMy9AaXRlclNldCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjY0MTMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjY0MjYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQ1OCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS4zL0BpdGVyU2V0L2IiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI2NDEzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2NDE0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40NTkiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijk3MTgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijk3MjAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIyOTAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNDYwIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI5NzIwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNTMzMyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjI5MiIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40NjEiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iOTc2MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTUzMjYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIyOTMiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNDYyIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iOTgxNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTA0MzAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIyOTQiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNDYzIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTA0MzEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEwNDYyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40NjQiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjEvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEwNDMxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMDQ1NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNDY1IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xL0Bzb3VyY2UvcHJvamVjdCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEwNDMxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMDQzOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNDY2IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xL0Bzb3VyY2UvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMDQ0OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTA0NTYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQ2NyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEwNDY0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMDQ5NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjMyNyIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40NjgiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjMiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMDQ5NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTA1MjYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQ2OSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMy9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTA0OTUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEwNTIxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40NzAiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjMvQHNvdXJjZS9wcm9qZWN0Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTA0OTUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEwNTAyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40NzEiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjMvQHNvdXJjZS9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEwNTEzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMDUyMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNDcyIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS40Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTA1MjgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEwNjAxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMzMyIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQ3MyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuNSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEwNjAyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMDYzMyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNDc0IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS41L0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMDYwMiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTA2MjgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQ3NSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuNS9Ac291cmNlL3Byb2plY3QiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMDYwMiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTA2MDkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQ3NiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuNS9Ac291cmNlL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTA2MjAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEwNjI3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40NzciIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjYiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMDYzNSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTA2NDIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIzMzUiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNDc4IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS43Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTA2NDMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEwNjc0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40NzkiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjcvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEwNjQzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMDY2OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNDgwIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS43L0Bzb3VyY2UvcHJvamVjdCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEwNjQzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMDY1MCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNDgxIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS43L0Bzb3VyY2UvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMDY2MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTA2NjgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQ4MiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuOCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEwNjc2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMDcxNiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjMzNSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40ODMiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMDcxNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTA3NTQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQ4NCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuOS9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTA3MTciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEwNzQzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40ODUiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjkvQHNvdXJjZS9wcm9qZWN0Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTA3MTciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEwNzI0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40ODYiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjkvQHNvdXJjZS9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEwNzM1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMDc0MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNDg3IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEwNzU2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMDgwNCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjMzNiIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40ODgiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjExIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTA4MDUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEwODUxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40ODkiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjExL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMDgwNSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTA4MzEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQ5MCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTEvQHNvdXJjZS9wcm9qZWN0Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTA4MDUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEwODEyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40OTEiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjExL0Bzb3VyY2UvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMDgyMyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTA4MzAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQ5MiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMDg1MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTA4OTQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIzMzciLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNDkzIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xMyI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEwODk1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMDk2NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNDk0IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xMy9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEwOTA4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMDk2MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNDk1IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xMy9AYXJndW1lbnQuMC9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTA5MDgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEwOTExIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40OTYiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjEzL0Bhcmd1bWVudC4wL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTA5MTQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEwOTYzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40OTciIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjEzL0Bhcmd1bWVudC4wL0Bhcmd1bWVudC4wL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMDkxNCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTA5NDAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQ5OCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTMvQGFyZ3VtZW50LjAvQGFyZ3VtZW50LjAvQHNvdXJjZS9wcm9qZWN0Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTA5MTQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEwOTIxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40OTkiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjEzL0Bhcmd1bWVudC4wL0Bhcmd1bWVudC4wL0Bzb3VyY2UvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMDkzMiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTA5MzkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjUwMCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTQiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMDk2NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTEwMDAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIzMzgiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTAxIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xNSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjExMDAxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMTA0NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTAyIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xNS9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjExMDE0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMTA0NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTAzIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xNS9AYXJndW1lbnQuMC9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTEwMTQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjExMDE3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41MDQiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE1L0Bhcmd1bWVudC4wL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTEwMjAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjExMDQ0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41MDUiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE1L0Bhcmd1bWVudC4wL0Bhcmd1bWVudC4wL3Byb2plY3QiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMTAyMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTEwMjciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjUwNiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTYiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMTA0NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTE1MDciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIzMzkiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTA3IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xNyI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjExNTA3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMjYxOSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjM1OSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41MDgiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE3L0Bib2R5LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMTU1NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTI2MTIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIzNjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTA5IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMTU4NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTE2MjciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIzNjEiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTEwIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjEiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMTYyOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTE2NTAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjUxMSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS4xL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMTYyOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTE2NDUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjUxMiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS4xL0Bzb3VyY2UvZGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTE2MjgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjExNjM3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41MTMiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuMiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjExNjUyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMTY1OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjM2MiIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41MTQiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuMyI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjExNjYwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMTY4MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTE1IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjMvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjExNjYwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMTY3NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTE2IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjMvQHNvdXJjZS9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMTY2MCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTE2NjkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjUxNyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS40Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTE2ODQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjExNzEwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMzYyIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjUxOCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS41Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTE3MTEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjExNzU2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41MTkiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuNS9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTE3MTEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjExNzMzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41MjAiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuNS9Ac291cmNlL2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjExNzExIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMTcyMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTIxIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjUvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMTczNCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTE3NTYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjUyMiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS41L0Bhcmd1bWVudC4wL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMTczNCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTE3NTEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjUyMyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS41L0Bhcmd1bWVudC4wL0Bzb3VyY2UvZGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTE3MzQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjExNzQzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41MjQiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuNiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjExNzU4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMTc2NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjM2MyIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41MjUiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuNyI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjExNzY2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMTc4OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTI2IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjcvZGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTE3NjYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjExNzc1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41MjciIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuOCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjExNzkwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMTgxNiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjM2MyIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41MjgiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuOSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjExODE3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMTg3NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTI5IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjkvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMTgzMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTE4NzUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjUzMCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS45L0Bhcmd1bWVudC4wL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMTgzMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTE4MzMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjUzMSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS45L0Bhcmd1bWVudC4wL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTE4MzYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjExODc1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41MzIiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuOS9AYXJndW1lbnQuMC9AYXJndW1lbnQuMC9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMTgzNiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTE4NDUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjUzMyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS4xMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjExODc4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMTg5MCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjM2NCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41MzQiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuMTEiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMTg5MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTE5NTEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjUzNSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS4xMS9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjExOTA0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMTk1MCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTM2IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjExL0Bhcmd1bWVudC4wL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMTkwNCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTE5MDciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjUzNyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS4xMS9AYXJndW1lbnQuMC9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjExOTEwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMTk1MCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTM4IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjExL0Bhcmd1bWVudC4wL0Bhcmd1bWVudC4wL2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjExOTEwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMTkxOSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTM5IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjEyIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTE5NTMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjExOTc3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMzY0Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjU0MCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS4xMyI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjExOTc4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMjAzMiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTQxIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjEzL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTE5OTEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEyMDMxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41NDIiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuMTMvQGFyZ3VtZW50LjAvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjExOTkxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMTk5NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTQzIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjEzL0Bhcmd1bWVudC4wL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTE5OTciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEyMDMxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41NDQiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuMTMvQGFyZ3VtZW50LjAvQGFyZ3VtZW50LjAvZGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTE5OTciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEyMDA2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41NDUiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuMTQiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjAzNCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTIwNDYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIzNjUiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTQ2IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjE1Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTIwNDciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEyMTAyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41NDciIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuMTUvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjA2MCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTIxMDEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjU0OCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS4xNS9AYXJndW1lbnQuMC9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTIwNjAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEyMDYzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41NDkiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuMTUvQGFyZ3VtZW50LjAvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjA2NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTIxMDEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjU1MCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS4xNS9AYXJndW1lbnQuMC9AYXJndW1lbnQuMC9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjA2NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTIwNzUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjU1MSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS4xNiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEyMTA0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMjEyOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjM2NSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41NTIiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuMTciPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjEyOSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTIxNjAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjU1MyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS4xNy9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjEyOSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTIxMzgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjU1NCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS4xOCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEyMTYyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMjE4NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjM2NiIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41NTUiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuMTkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjE4NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTIyNTgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjU1NiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS4xOS9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEyMTk4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMjI1NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTU3IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjE5L0Bhcmd1bWVudC4wL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjE5OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTIyMDEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjU1OCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS4xOS9AYXJndW1lbnQuMC9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEyMjA0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMjI1NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTU5IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjE5L0Bhcmd1bWVudC4wL0Bhcmd1bWVudC4wL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjIwNCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTIyNDAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjU2MCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS4xOS9AYXJndW1lbnQuMC9AYXJndW1lbnQuMC9Ac291cmNlL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjIwNCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTIyMjEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjU2MSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS4xOS9AYXJndW1lbnQuMC9AYXJndW1lbnQuMC9Ac291cmNlL0Bzb3VyY2UvZGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTIyMDQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEyMjEzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41NjIiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuMTkvQGFyZ3VtZW50LjAvQGFyZ3VtZW50LjAvQHNvdXJjZS9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEyMjMyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMjIzOSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTYzIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjIwIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTIyNjAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEyMjgyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMzY3Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjU2NCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS4yMSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEyMjgzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMjM2MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTY1IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjIxL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTIyOTYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEyMzYxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41NjYiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuMjEvQGFyZ3VtZW50LjAvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEyMjk2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMjI5OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTY3IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjIxL0Bhcmd1bWVudC4wL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTIzMDIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEyMzYxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41NjgiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuMjEvQGFyZ3VtZW50LjAvQGFyZ3VtZW50LjAvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEyMzAyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMjMzOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTY5IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjIxL0Bhcmd1bWVudC4wL0Bhcmd1bWVudC4wL0Bzb3VyY2UvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEyMzAyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMjMxOSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTcwIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjIxL0Bhcmd1bWVudC4wL0Bhcmd1bWVudC4wL0Bzb3VyY2UvQHNvdXJjZS9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjMwMiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTIzMTEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjU3MSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS4yMS9AYXJndW1lbnQuMC9AYXJndW1lbnQuMC9Ac291cmNlL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTIzMzAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEyMzM3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41NzIiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuMjIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjM2NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTIzODYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIzNjgiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTczIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjIzIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTIzODciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEyNDM0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41NzQiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuMjMvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEyMzg3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMjQyMyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTc1IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjIzL0Bzb3VyY2UvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEyMzg3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMjQwNCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTc2IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjIzL0Bzb3VyY2UvQHNvdXJjZS9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjM4NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTIzOTYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjU3NyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS4yMy9Ac291cmNlL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTI0MTUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEyNDIyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41NzgiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuMjQiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjQzNiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTI0NTgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIzNjkiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTc5IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjI1Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTI0NTkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEyNTE1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41ODAiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuMjUvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEyNDU5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMjQ5NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTgxIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjI1L0Bzb3VyY2UvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEyNDU5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMjQ3NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTgyIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjI1L0Bzb3VyY2UvQHNvdXJjZS9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjQ1OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTI0NjgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjU4MyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS4yNS9Ac291cmNlL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTI0ODciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEyNDk0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41ODQiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuMjYiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjUxNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTI1MzkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIzNzAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTg1IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjI3Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTI1NDAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEyNTgzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41ODYiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuMjcvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjU1MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTI1ODIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjU4NyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS4yNy9AYXJndW1lbnQuMC9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTI1NTMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEyNTU2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41ODgiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuMjcvQGFyZ3VtZW50LjAvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjU1OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTI1ODIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjU4OSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS4yNy9AYXJndW1lbnQuMC9AYXJndW1lbnQuMC9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjU1OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTI1NjciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjU5MCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS4yOCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEyNTg1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMjYwNiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjM3MSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41OTEiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE3L0Bib2R5LjAvQGlmRXhwciI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjExNTU4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMTU4NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTkyIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xNy9AYm9keS4wL0BpZkV4cHIvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjExNTU5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMTU3NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTkzIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xNy9AYm9keS4wL0BpZkV4cHIvQHNvdXJjZS9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMTU1OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTE1NjgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjU5NCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvQGJvZHkuMC9AaWZFeHByL3Byb2plY3QiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMTU3NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTE1ODQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjU5NSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvZGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTE1MTMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjExNTM0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMzU5Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjU5NiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvQGl0ZXJTZXQiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMTUzNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTE1NTAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjU5NyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTcvQGl0ZXJTZXQvYiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjExNTM3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMTUzOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTk4IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xOCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEyNjIwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMjY2MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjM3NSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41OTkiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTI2NjMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEzNjQyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMzc5Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjYwMCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTkvQGJvZHkuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEyNzEwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMzYzNSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjM4MCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42MDEiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE5L0Bib2R5LjAvQGJvZHkuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEyNzQ1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMzYyOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjM4MSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42MDIiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE5L0Bib2R5LjAvQGJvZHkuMC9AYm9keS4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTI3ODUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEyODQ0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMzgyIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjYwMyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTkvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjEiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjg0NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTI4NjciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjYwNCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTkvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjEvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEyODQ1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMjg2MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjA1IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xOS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuMS9Ac291cmNlL2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEyODQ1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMjg1NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjA2IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xOS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuMiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEyODY5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMjg3NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjM4NCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42MDciIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE5L0Bib2R5LjAvQGJvZHkuMC9AYm9keS4zIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTI4NzciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEyODk5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42MDgiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE5L0Bib2R5LjAvQGJvZHkuMC9AYm9keS4zL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjg3NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTI4OTQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjYwOSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTkvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjMvQHNvdXJjZS9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjg3NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTI4ODYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjYxMCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTkvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjQiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjkwMSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTI5MjAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIzODQiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjExIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xOS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuNSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEyOTIxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMjk2NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjEyIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xOS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuNS9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTI5MjEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEyOTQzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42MTMiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE5L0Bib2R5LjAvQGJvZHkuMC9AYm9keS41L0Bzb3VyY2UvZGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTI5MjEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEyOTMwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42MTQiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE5L0Bib2R5LjAvQGJvZHkuMC9AYm9keS41L0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTI5NDQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEyOTY2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42MTUiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE5L0Bib2R5LjAvQGJvZHkuMC9AYm9keS41L0Bhcmd1bWVudC4wL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjk0NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTI5NjEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjYxNiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTkvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjUvQGFyZ3VtZW50LjAvQHNvdXJjZS9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjk0NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTI5NTMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjYxNyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTkvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjYiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjk2OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTI5NzUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIzODQiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjE4IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xOS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuNyI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEyOTc2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMjk5OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjE5IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xOS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuNy9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjk3NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTI5ODUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjYyMCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTkvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjgiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMzAwMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTMwMTAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIzODQiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjIxIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xOS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuOSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEzMDEzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMzYyMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjM4NSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42MjIiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE5L0Bib2R5LjAvQGJvZHkuMC9AYm9keS45L0Bib2R5LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMzA4NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTMyNDYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIzODYiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjIzIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xOS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuOS9AYm9keS4xIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTMyNDkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEzNTk3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMzkyIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjYyNCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTkvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjkvQGJvZHkuMS9AYm9keS4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTMzMjAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEzMzQxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMzkzIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjYyNSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTkvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjkvQGJvZHkuMS9pIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTMzNDIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEzMzQzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42MjYiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE5L0Bib2R5LjAvQGJvZHkuMC9AYm9keS45L0Bib2R5LjEvQGJvZHkuMiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEzMzQ1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMzM0NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjM5NCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42MjciIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE5L0Bib2R5LjAvQGJvZHkuMC9AYm9keS45L0Bib2R5LjEvQGJvZHkuMyI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEzMzQ3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMzM3NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjI4IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xOS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuOS9AYm9keS4xL0Bib2R5LjMvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEzMzQ3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMzM2NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjI5IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xOS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuOS9AYm9keS4xL0Bib2R5LjMvQHNvdXJjZS9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMzM0NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTMzNTYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjYzMCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTkvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjkvQGJvZHkuMS9AYm9keS40Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTMzNzciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEzNDE3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMzk0Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjYzMSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTkvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjkvQGJvZHkuMS9AYm9keS41Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTM0MTgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEzNDg2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42MzIiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE5L0Bib2R5LjAvQGJvZHkuMC9AYm9keS45L0Bib2R5LjEvQGJvZHkuNS9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTM0MTgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEzNDc4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42MzMiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE5L0Bib2R5LjAvQGJvZHkuMC9AYm9keS45L0Bib2R5LjEvQGJvZHkuNS9Ac291cmNlL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMzQxOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTM0NTkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjYzNCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTkvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjkvQGJvZHkuMS9AYm9keS41L0Bzb3VyY2UvQHNvdXJjZS9kaXNjb3ZlcnlJdGVyYXRpb24iPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMzQxOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTM0MzYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjYzNSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTkvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjkvQGJvZHkuMS9AYm9keS41L0Bzb3VyY2UvbWF4RXhlY3V0aW9uVGltZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEzNDYyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMzQ3OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjM2IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xOS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuOS9AYm9keS4xL0Bib2R5LjUvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMzQ4MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTM0ODYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjYzNyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTkvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjkvQGJvZHkuMS9AYm9keS42Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTM0ODgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEzNTA2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMzk0Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjYzOCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTkvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjkvQGJvZHkuMS9AYm9keS43Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTM1MDciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEzNTY4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42MzkiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE5L0Bib2R5LjAvQGJvZHkuMC9AYm9keS45L0Bib2R5LjEvQGJvZHkuNy9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEzNTIwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMzU2NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjQwIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xOS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuOS9AYm9keS4xL0Bib2R5LjcvQGFyZ3VtZW50LjAvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEzNTIwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMzUyMyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjQxIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xOS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuOS9AYm9keS4xL0Bib2R5LjcvQGFyZ3VtZW50LjAvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMzUyNiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTM1NjciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjY0MiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTkvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjkvQGJvZHkuMS9AYm9keS43L0Bhcmd1bWVudC4wL0Bhcmd1bWVudC4wL2Rpc2NvdmVyeUl0ZXJhdGlvbiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEzNTI2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMzU0NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjQzIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xOS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuOS9AYm9keS4xL0Bib2R5LjgiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMzU3MCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTM1ODgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIzOTQiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjQ0IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xOS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuOS9AYm9keS4xL2Rpc2NvdmVyeUl0ZXJhdGlvbiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEzMjU1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMzI5NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjM5MiIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42NDUiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE5L0Bib2R5LjAvQGJvZHkuMC9AYm9keS45L0Bib2R5LjEvQGl0ZXJTZXQiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMzI5NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTMzMTciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjY0NiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTkvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjkvQGJvZHkuMS9AaXRlclNldC9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMzI5NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTMzMDYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjY0NyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTkvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjkvQGJvZHkuMiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEzNTk4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMzYxMSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjM5NyIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42NDgiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE5L0Bib2R5LjAvQGJvZHkuMC9AYm9keS45L21heEV4ZWN1dGlvblRpbWUiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMzAxOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTMwODIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIzODUiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjQ5IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xOS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuOS9tYXhFeGVjdXRpb25UaW1lL0Bpbml0RXhwcmVzc2lvbiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEzMDQ1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMzA4MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjUwIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xOS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuOS9tYXhFeGVjdXRpb25UaW1lL0Bpbml0RXhwcmVzc2lvbi9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEzMDYyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMzA4MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjUxIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xOS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuOS9tYXhFeGVjdXRpb25UaW1lL0Bpbml0RXhwcmVzc2lvbi9AYXJndW1lbnQuMC9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMzA2MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTMwNzEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjY1MiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTkvQGJvZHkuMC9AYm9keS4wL0BpZkV4cHIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjc0OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTI3ODMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjY1MyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTkvQGJvZHkuMC9AYm9keS4wL0BpZkV4cHIvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEyNzUwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMjc3OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjU0IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xOS9AYm9keS4wL0Bib2R5LjAvQGlmRXhwci9Ac291cmNlL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjc1MCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTI3NzAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjY1NSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTkvQGJvZHkuMC9AYm9keS4wL0BpZkV4cHIvQHNvdXJjZS9Ac291cmNlL2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEyNzUwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMjc1OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjU2IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xOS9AYm9keS4wL0Bib2R5LjAvQGlmRXhwci9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEyNzgxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMjc4MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjU3IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4xOS9AYm9keS4wL0BpZkV4cHIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjcxNCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTI3NDEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjY1OCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTkvQGJvZHkuMC9AaWZFeHByL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjcxNSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTI3MzIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjY1OSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMTkvQGJvZHkuMC9AaWZFeHByL0Bzb3VyY2UvZGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTI3MTUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEyNzI0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42NjAiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE5L0Bib2R5LjAvQGlmRXhwci9wcm9qZWN0Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTI3MzMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEyNzQwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42NjEiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE5L2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEyNjY5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMjY5MCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjM3OSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42NjIiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE5L0BpdGVyU2V0Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTI2OTMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEyNzA2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42NjMiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjE5L0BpdGVyU2V0L2IiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjY5MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTI2OTQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjY2NCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMzY0MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTM2NDUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI0MDMiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjY1IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEzNjQ1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNDU4NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjQwNSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42NjYiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIxL0Bib2R5LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMzY5MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTQ1NzgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI0MDYiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjY3IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMS9AYm9keS4wL0Bib2R5LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMzcyNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTQ1NzEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI0MDciLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjY4IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEzNzY3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMzgxOSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjQwOCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42NjkiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIxL0Bib2R5LjAvQGJvZHkuMC9AYm9keS4xIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTM4MjAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEzODQyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42NzAiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIxL0Bib2R5LjAvQGJvZHkuMC9AYm9keS4xL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMzgyMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTM4MzciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjY3MSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjEvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjEvQHNvdXJjZS9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMzgyMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTM4MjkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjY3MiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjEvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMzg0NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTM4NTEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI0MTAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjczIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuMyI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEzODUyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMzg3NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjc0IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuMy9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTM4NTIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEzODY5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42NzUiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIxL0Bib2R5LjAvQGJvZHkuMC9AYm9keS4zL0Bzb3VyY2UvZGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTM4NTIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEzODYxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42NzYiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIxL0Bib2R5LjAvQGJvZHkuMC9AYm9keS40Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTM4NzYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEzODk1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iNDEwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjY3NyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjEvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjUiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMzg5NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTM5NDEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjY3OCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjEvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjUvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEzODk2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMzkxOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjc5IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuNS9Ac291cmNlL2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEzODk2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMzkwNSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjgwIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuNS9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEzOTE5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMzk0MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjgxIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuNS9AYXJndW1lbnQuMC9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTM5MTkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEzOTM2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42ODIiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIxL0Bib2R5LjAvQGJvZHkuMC9AYm9keS41L0Bhcmd1bWVudC4wL0Bzb3VyY2UvZGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTM5MTkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEzOTI4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42ODMiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIxL0Bib2R5LjAvQGJvZHkuMC9AYm9keS42Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTM5NDMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEzOTUwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iNDEwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjY4NCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjEvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjciPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMzk1MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTM5NzMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjY4NSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjEvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjcvZGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTM5NTEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEzOTYwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42ODYiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIxL0Bib2R5LjAvQGJvZHkuMC9AYm9keS44Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTM5NzUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEzOTg1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iNDEwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjY4NyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjEvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMzk4NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTQ1NjMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI0MTEiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjg4IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuOS9AYm9keS4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTQwNDgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjE0MjA1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iNDEyIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjY4OSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjEvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjkvQGJvZHkuMSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjE0MjA3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNDU0MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjQxOCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42OTAiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIxL0Bib2R5LjAvQGJvZHkuMC9AYm9keS45L0Bib2R5LjEvQGJvZHkuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjE0Mjc4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNDMwMiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjQxOSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42OTEiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIxL0Bib2R5LjAvQGJvZHkuMC9AYm9keS45L0Bib2R5LjEvaSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjE0MzAzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNDMwNCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjkyIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuOS9AYm9keS4xL0Bib2R5LjIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNDMwNiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTQzMDciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI0MjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjkzIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuOS9AYm9keS4xL0Bib2R5LjMiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNDMwOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTQzMzYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjY5NCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjEvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjkvQGJvZHkuMS9AYm9keS4zL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNDMwOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTQzMjgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjY5NSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjEvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjkvQGJvZHkuMS9AYm9keS4zL0Bzb3VyY2UvZGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTQzMDgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjE0MzE3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42OTYiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIxL0Bib2R5LjAvQGJvZHkuMC9AYm9keS45L0Bib2R5LjEvQGJvZHkuNCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjE0MzM4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNDM3OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjQyMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42OTciIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIxL0Bib2R5LjAvQGJvZHkuMC9AYm9keS45L0Bib2R5LjEvQGJvZHkuNSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjE0Mzc5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNDQzNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjk4IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuOS9AYm9keS4xL0Bib2R5LjUvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjE0Mzc5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNDQyOSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjk5IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuOS9AYm9keS4xL0Bib2R5LjUvQHNvdXJjZS9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTQzNzkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjE0NDE1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43MDAiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIxL0Bib2R5LjAvQGJvZHkuMC9AYm9keS45L0Bib2R5LjEvQGJvZHkuNS9Ac291cmNlL0Bzb3VyY2UvZGlzY292ZXJ5SXRlcmF0aW9uIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTQzNzkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjE0Mzk3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43MDEiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIxL0Bib2R5LjAvQGJvZHkuMC9AYm9keS45L0Bib2R5LjEvQGJvZHkuNS9Ac291cmNlL21heFNhdmVUaW1lIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTQ0MTgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjE0NDI5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43MDIiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIxL0Bib2R5LjAvQGJvZHkuMC9AYm9keS45L0Bib2R5LjEvQGJvZHkuNS9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjE0NDMyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNDQzNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNzAzIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuOS9AYm9keS4xL0Bib2R5LjYiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNDQzOSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTQ0NTciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI0MjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNzA0IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuOS9AYm9keS4xL0Bib2R5LjciPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNDQ1OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTQ1MTQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjcwNSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjEvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjkvQGJvZHkuMS9AYm9keS43L0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTQ0NzEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjE0NTEzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43MDYiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIxL0Bib2R5LjAvQGJvZHkuMC9AYm9keS45L0Bib2R5LjEvQGJvZHkuNy9AYXJndW1lbnQuMC9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTQ0NzEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjE0NDc0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43MDciIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIxL0Bib2R5LjAvQGJvZHkuMC9AYm9keS45L0Bib2R5LjEvQGJvZHkuNy9AYXJndW1lbnQuMC9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjE0NDc3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNDUxMyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNzA4IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuOS9AYm9keS4xL0Bib2R5LjcvQGFyZ3VtZW50LjAvQGFyZ3VtZW50LjAvZGlzY292ZXJ5SXRlcmF0aW9uIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTQ0NzciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjE0NDk1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43MDkiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIxL0Bib2R5LjAvQGJvZHkuMC9AYm9keS45L0Bib2R5LjEvQGJvZHkuOCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjE0NTE2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNDUzNCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjQyMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43MTAiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIxL0Bib2R5LjAvQGJvZHkuMC9AYm9keS45L0Bib2R5LjEvZGlzY292ZXJ5SXRlcmF0aW9uIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTQyMTMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjE0MjUyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iNDE4Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjcxMSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjEvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjkvQGJvZHkuMS9AaXRlclNldCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjE0MjU1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNDI3NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNzEyIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuOS9AYm9keS4xL0BpdGVyU2V0L2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjE0MjU1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNDI2NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNzEzIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuOS9AYm9keS4yIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTQ1NDMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjE0NTU1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iNDIzIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjcxNCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjEvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjkvbWF4U2F2ZVRpbWUiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMzk5MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTQwNDYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI0MTEiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNzE1IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMS9AYm9keS4wL0Bib2R5LjAvQGJvZHkuOS9tYXhTYXZlVGltZS9AaW5pdEV4cHJlc3Npb24iPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNDAxNCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTQwNDciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjcxNiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjEvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjkvbWF4U2F2ZVRpbWUvQGluaXRFeHByZXNzaW9uL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTQwMjYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjE0MDQ2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43MTciIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIxL0Bib2R5LjAvQGJvZHkuMC9AYm9keS45L21heFNhdmVUaW1lL0Bpbml0RXhwcmVzc2lvbi9AYXJndW1lbnQuMC9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNDAyNiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTQwMzUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjcxOCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjEvQGJvZHkuMC9AYm9keS4wL0BpZkV4cHIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMzczMSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTM3NjUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjcxOSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjEvQGJvZHkuMC9AYm9keS4wL0BpZkV4cHIvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEzNzMyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMzc2MCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNzIwIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMS9AYm9keS4wL0Bib2R5LjAvQGlmRXhwci9Ac291cmNlL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMzczMiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTM3NTIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjcyMSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjEvQGJvZHkuMC9AYm9keS4wL0BpZkV4cHIvQHNvdXJjZS9Ac291cmNlL2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEzNzMyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMzc0MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNzIyIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMS9AYm9keS4wL0Bib2R5LjAvQGlmRXhwci9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEzNzYzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMzc2NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNzIzIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMS9AYm9keS4wL0BpZkV4cHIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMzY5NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTM3MjMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjcyNCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjEvQGJvZHkuMC9AaWZFeHByL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMzY5NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTM3MTQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjcyNSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjEvQGJvZHkuMC9AaWZFeHByL0Bzb3VyY2UvZGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTM2OTciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEzNzA2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43MjYiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIxL0Bib2R5LjAvQGlmRXhwci9wcm9qZWN0Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTM3MTUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEzNzIyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43MjciIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIxL2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEzNjUxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMzY3MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjQwNSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43MjgiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIxL0BpdGVyU2V0Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTM2NzUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEzNjg4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43MjkiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIxL0BpdGVyU2V0L2IiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMzY3NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTM2NzYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjczMCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNDU4NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTQ1ODciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI0MjkiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNzMxIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMyI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjE0NTg3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNTE0NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjQzMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43MzIiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIzL0Bib2R5LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNDYzNCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTUxMzciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI0MzEiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNzMzIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMy9AYm9keS4wL0Bib2R5LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNDY2OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTUxMzAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI0MzIiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNzM0IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMy9AYm9keS4wL0Bib2R5LjAvQGJvZHkuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjE0NzM0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNTEyMSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjQzMyIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43MzUiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIzL0Bib2R5LjAvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNDc4OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTQ4NDkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI0MzQiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNzM2IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMy9AYm9keS4wL0Bib2R5LjAvQGJvZHkuMC9AYm9keS4xIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTQ4NTAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjE0ODk1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43MzciIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIzL0Bib2R5LjAvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjEvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjE0ODUwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNDg3MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNzM4IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMy9AYm9keS4wL0Bib2R5LjAvQGJvZHkuMC9AYm9keS4xL0Bzb3VyY2UvZGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTQ4NTAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjE0ODU5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43MzkiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIzL0Bib2R5LjAvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjEvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNDg3MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTQ4OTUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjc0MCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjMvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjAvQGJvZHkuMS9AYXJndW1lbnQuMC9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTQ4NzMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjE0ODkwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43NDEiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIzL0Bib2R5LjAvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjEvQGFyZ3VtZW50LjAvQHNvdXJjZS9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNDg3MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTQ4ODIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjc0MiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjMvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjAvQGJvZHkuMiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjE0ODk3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNDkwNCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjQzNSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43NDMiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIzL0Bib2R5LjAvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjMiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNDkwNSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTQ5MjciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjc0NCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjMvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjAvQGJvZHkuMy9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNDkwNSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTQ5MTQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjc0NSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjMvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjAvQGJvZHkuNCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjE0OTI5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNDk0NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjQzNSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43NDYiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIzL0Bib2R5LjAvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjUiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNDk0NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTQ5NjkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjc0NyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjMvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjAvQGJvZHkuNS9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTQ5NDciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjE0OTY0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43NDgiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIzL0Bib2R5LjAvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjUvQHNvdXJjZS9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNDk0NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTQ5NTYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjc0OSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjMvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjAvQGJvZHkuNiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjE0OTcxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNDk3OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjQzNSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43NTAiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIzL0Bib2R5LjAvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjciPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNDk3OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTUwMDEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjc1MSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjMvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjAvQGJvZHkuNy9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTQ5NzkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjE0OTk2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43NTIiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIzL0Bib2R5LjAvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjcvQHNvdXJjZS9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNDk3OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTQ5ODgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjc1MyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjMvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjAvQGJvZHkuOCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjE1MDAzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNTAxNCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjQzNSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43NTQiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIzL0Bib2R5LjAvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNTAxOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTUxMTIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI0MzYiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNzU1IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMy9AYm9keS4wL0Bib2R5LjAvQGJvZHkuMC9AYm9keS45L0Bib2R5LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNTA3MCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTUwNzUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI0MzciLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNzU2IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMy9AYm9keS4wL0Bib2R5LjAvQGJvZHkuMC9AYm9keS45L2Vycm9yIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTUwNzYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjE1MDgxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43NTciIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIzL0Bib2R5LjAvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjkvQGJvZHkuMiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjE1MDgzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNTEwMiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjQzNyIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43NTgiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIzL0Bib2R5LjAvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjkvZXJyb3IuMSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjE1MDI0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNTAzOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjQzNiIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43NTkiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIzL0Bib2R5LjAvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjkvQGl0ZXJTZXQiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNTA0MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTUwNjYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjc2MCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjMvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjAvQGJvZHkuOS9AaXRlclNldC9pdGVyYXRpb24iPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNTA0MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTUwNTAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjc2MSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjMvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjAvQGlmRXhwciI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjE0NzM4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNDc4NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNzYyIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMy9AYm9keS4wL0Bib2R5LjAvQGJvZHkuMC9AaWZFeHByL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNDc0MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTQ3ODUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjc2MyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjMvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjAvQGlmRXhwci9Ac291cmNlL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNDc0MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTQ3NjgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjc2NCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjMvQGJvZHkuMC9AYm9keS4wL0Bib2R5LjAvQGlmRXhwci9Ac291cmNlL0Bzb3VyY2UvaXRlcmF0aW9uIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTQ3NDMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjE0NzUyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43NjUiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIzL0Bib2R5LjAvQGJvZHkuMC9pdGVyYXRpb24iPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNDY3NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTQ3MDUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI0MzIiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNzY2IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMy9AYm9keS4wL0Bib2R5LjAvQGl0ZXJTZXQiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNDcwOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTQ3MjgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjc2NyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjMvQGJvZHkuMC9AYm9keS4wL0BpdGVyU2V0L2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjE0NzA4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNDcxNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNzY4IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AYm9keS4yMy9AYm9keS4wL0BpZkV4cHIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNDYzOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTQ2NjUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjc2OSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjMvQGJvZHkuMC9AaWZFeHByL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNDYzOSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTQ2NTYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjc3MCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjMvQGJvZHkuMC9AaWZFeHByL0Bzb3VyY2UvZGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTQ2MzkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjE0NjQ4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43NzEiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIzL0Bib2R5LjAvQGlmRXhwci9wcm9qZWN0Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTQ2NTciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjE0NjY0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43NzIiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIzL2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjE0NTkzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNDYxNCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjQzMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43NzMiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIzL0BpdGVyU2V0Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTQ2MTciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjE0NjMwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43NzQiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0Bib2R5LjIzL0BpdGVyU2V0L2IiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNDYxNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTQ2MTgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjc3NSIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGJvZHkuMjQiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNTE0NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTUzMTkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI0NDQiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNzc2IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AZmlsZVVybCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijk3NjgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijk3OTgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjc3NyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGZpbGVVcmwvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijk3NjgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijk3OTAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjc3OCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0Bib2R5LjAvQGZpbGVVcmwvQHNvdXJjZS9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iOTc2OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iOTc3NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNzc5IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AZmlsZVVybC9Ac291cmNlL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iOTc3OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iOTc5MCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNzgwIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AZmlsZVVybC9Ac291cmNlL0Bhcmd1bWVudC4wL3Byb2plY3QiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI5Nzc4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI5Nzg1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43ODEiIHJlZmVyZW5jZXM9Ii8wL0h0bWxSZXBvcnQvQGJvZHkuNS9AYm9keS4wL0BmaWxlVXJsL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iOTc5MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iOTc5OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNzgyIiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGJvZHkuMC9AY2hhcnNldCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijk4MDciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijk4MTQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjc4MyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L3Byb2plY3QiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI5NzI2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI5NzQ0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMjkyIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjc4NCIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS41L0BpdGVyU2V0Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iOTc0NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iOTc1NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNzg1IiByZWZlcmVuY2VzPSIvMC9IdG1sUmVwb3J0L0Bib2R5LjUvQGl0ZXJTZXQvYiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijk3NDciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijk3NDgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjc4NiIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9AYm9keS42Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTUzMzQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjE1MzM1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iNDUxIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjc4NyIgcmVmZXJlbmNlcz0iLzAvSHRtbFJlcG9ydC9iIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTE3NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTE4NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjkiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICA8L2Vjb3JlOkVBbm5vdGF0aW9uPg0KLTwveG1pOlhNST4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL2NvcmUvaW50ZXJuYWwvcmVwb3J0aW5nL0h0bWxSZXBvcnQuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvY29yZS9pbnRlcm5hbC9yZXBvcnRpbmcvSHRtbFJlcG9ydC5qYXZhCmluZGV4IDc5YzliODkuLjkzZTM5MDUgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvY29yZS9pbnRlcm5hbC9yZXBvcnRpbmcvSHRtbFJlcG9ydC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvY29yZS9pbnRlcm5hbC9yZXBvcnRpbmcvSHRtbFJlcG9ydC5qYXZhCkBAIC0xLDUgKzEsNSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMSBPYmVvLgorICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDE1IE9iZW8gYW5kIE1pYS1Tb2Z0d2FyZS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKICAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKQEAgLTcsNyArNyw5IEBACiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0gKiAgICAgR3VpbGxhdW1lIERvdXggLSBJTlJJQQorICogICAgIEd1aWxsYXVtZSBEb3V4IChJTlJJQSkKKyAqICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgyNjcyIC0gQmVuY2htYXJrIGNvbW1hbmQgbGluZSBpbnRlcmZhY2UKKyAqICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgyODU3IC0gRGlzY292ZXJlciBCZW5jaG1hcmsgUmVwb3J0IDogd3JvbmcgbmFtZXNwYWNlcwogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBwYWNrYWdlIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlLmludGVybmFsLnJlcG9ydGluZzsKIApAQCAtMzYsNyArMzgsNyBAQAogICAgICAqCiAgICAgICogQGdlbmVyYXRlZAogICAgICAqLwotICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIE1PRFVMRV9GSUxFX05BTUUgPSAiL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9yZXBvcnRpbmcvSHRtbFJlcG9ydCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgTU9EVUxFX0ZJTEVfTkFNRSA9ICIvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL2NvcmUvaW50ZXJuYWwvcmVwb3J0aW5nL0h0bWxSZXBvcnQiOwogICAgIAogICAgIC8qKgogICAgICAqIFRoZSBuYW1lIG9mIHRoZSB0ZW1wbGF0ZXMgdGhhdCBhcmUgdG8gYmUgZ2VuZXJhdGVkLgpAQCAtMTMwLDYgKzEzMiwxMyBAQAogICAgICAgICAgICAgICAgIExpc3Q8U3RyaW5nPiBhcmd1bWVudHMgPSBuZXcgQXJyYXlMaXN0PFN0cmluZz4oKTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIElmIHlvdSB3YW50IHRvIGNoYW5nZSB0aGUgY29udGVudCBvZiB0aGlzIG1ldGhvZCwgZG8gTk9UIGZvcmdldCB0byBjaGFuZ2UgdGhlICJAZ2VuZXJhdGVkIgorICAgICAgICAgICAgICAgICAqIHRhZyBpbiB0aGUgSmF2YWRvYyBvZiB0aGlzIG1ldGhvZCB0byAiQGdlbmVyYXRlZCBOT1QiLiBXaXRob3V0IHRoaXMgbmV3IHRhZywgYW55IGNvbXBpbGF0aW9uCisgICAgICAgICAgICAgICAgICogb2YgdGhlIEFjY2VsZW8gbW9kdWxlIHdpdGggdGhlIG1haW4gdGVtcGxhdGUgdGhhdCBoYXMgY2F1c2VkIHRoZSBjcmVhdGlvbiBvZiB0aGlzIGNsYXNzIHdpbGwKKyAgICAgICAgICAgICAgICAgKiByZXZlcnQgeW91ciBtb2RpZmljYXRpb25zLgorICAgICAgICAgICAgICAgICAqLworCisgICAgICAgICAgICAgICAgLyoKICAgICAgICAgICAgICAgICAgKiBBZGQgaW4gdGhpcyBsaXN0IGFsbCB0aGUgYXJndW1lbnRzIHVzZWQgYnkgdGhlIHN0YXJ0aW5nIHBvaW50IG9mIHRoZSBnZW5lcmF0aW9uCiAgICAgICAgICAgICAgICAgICogSWYgeW91ciBtYWluIHRlbXBsYXRlIGlzIGNhbGxlZCBvbiBhbiBlbGVtZW50IG9mIHlvdXIgbW9kZWwgYW5kIGEgU3RyaW5nLCB5b3UgY2FuCiAgICAgICAgICAgICAgICAgICogYWRkIGluICJhcmd1bWVudHMiIHRoaXMgIlN0cmluZyIgYXR0cmlidXRlLgpAQCAtMTM5LDE0ICsxNDgsMTIgQEAKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAvKgogICAgICAgICAgICAgICAgICAqIEFkZCB0aGUgcHJvcGVydGllcyBmcm9tIHRoZSBsYXVuY2ggYXJndW1lbnRzLgotICAgICAgICAgICAgICAgICAqIElmIHlvdSB3YW50IHRvIHByb2dyYW1tYXRpY2FsbHkgYWRkIG5ldyBhcmd1bWVudHMsIGFkZCB0aGVtIGluICJwcm9wZXJ0aWVzRmlsZXMiCisgICAgICAgICAgICAgICAgICogSWYgeW91IHdhbnQgdG8gcHJvZ3JhbW1hdGljYWxseSBhZGQgbmV3IHByb3BlcnRpZXMsIGFkZCB0aGVtIGluICJwcm9wZXJ0aWVzRmlsZXMiCiAgICAgICAgICAgICAgICAgICogWW91IGNhbiBhZGQgdGhlIGFic29sdXRlIHBhdGggb2YgYSBwcm9wZXJ0aWVzIGZpbGVzLCBvciBldmVuIGEgcHJvamVjdCByZWxhdGl2ZSBwYXRoLgogICAgICAgICAgICAgICAgICAqIElmIHlvdSB3YW50IHRvIGFkZCBhbm90aGVyICJwcm90b2NvbCIgZm9yIHlvdXIgcHJvcGVydGllcyBmaWxlcywgcGxlYXNlIG92ZXJyaWRlIAogICAgICAgICAgICAgICAgICAqICJnZXRQcm9wZXJ0aWVzTG9hZGVyU2VydmljZShBY2NlbGVvU2VydmljZSkiIGluIG9yZGVyIHRvIHJldHVybiBhIG5ldyBwcm9wZXJ0eSBsb2FkZXIuCi0gICAgICAgICAgICAgICAgICogVGhlIGJhc2ljIHByb3BlcnRpZXMgbG9hZGVyIHdpbGwgbG9vayBmb3IgcHJvcGVydGllcyBpbiB0aGUgY3VycmVudCBwcm9qZWN0IGlmIHRoZSBwYXRoCi0gICAgICAgICAgICAgICAgICogb2YgdGhlIHByb3BlcnRpZXMgZmlsZSBpcyBsaWtlIHRoaXMgInBhY2thZ2VhLnBhY2thZ2ViLnBhY2thZ2VjLmRlZmF1bHQiIGZvciBhIHByb3BlcnRpZXMKLSAgICAgICAgICAgICAgICAgKiBmaWxlIG5hbWVkIGRlZmF1bHQucHJvcGVydGllcywgb3IgaWYgdGhlIHBhdGggaXMgYW4gYWJzb2x1dGUgcGF0aC4gV2l0aCBhIG5ldyBwcm9wZXJ0eQotICAgICAgICAgICAgICAgICAqIGxvYWRlciB5b3UgY291bGQgZm9yIGV4YW1wbGUsIGxvb2sgZm9yIHByb3BlcnRpZXMgZmlsZXMgaW4gYSBidW5kbGUuCisgICAgICAgICAgICAgICAgICogVGhlIGJlaGF2aW9yIG9mIHRoZSBwcm9wZXJ0aWVzIGxvYWRlciBzZXJ2aWNlIGlzIGV4cGxhaW5lZCBpbiB0aGUgQWNjZWxlbyBkb2N1bWVudGF0aW9uCisgICAgICAgICAgICAgICAgICogKEhlbHAgLT4gSGVscCBDb250ZW50cykuCiAgICAgICAgICAgICAgICAgICovCiAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAyOyBpIDwgYXJncy5sZW5ndGg7IGkrKykgewpAQCAtMTgzLDYgKzE5MCwxMSBAQAogCiAgICAgICAgIC8vb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnV0aWwuRWNvcmVVdGlsLnJlc29sdmVBbGwobW9kZWwpOwogCisgICAgICAgIC8qCisgICAgICAgICAqIElmIHlvdSB3YW50IHRvIGNoZWNrIGZvciBwb3RlbnRpYWwgZXJyb3JzIGluIHlvdXIgbW9kZWxzIGJlZm9yZSB0aGUgbGF1bmNoIG9mIHRoZSBnZW5lcmF0aW9uLCB5b3UKKyAgICAgICAgICogdXNlIHRoZSBjb2RlIGJlbG93LgorICAgICAgICAgKi8KKwogICAgICAgICAvL2lmIChtb2RlbCAhPSBudWxsICYmIG1vZGVsLmVSZXNvdXJjZSgpICE9IG51bGwpIHsKICAgICAgICAgLy8gICAgTGlzdDxvcmcuZWNsaXBzZS5lbWYuZWNvcmUucmVzb3VyY2UuUmVzb3VyY2UuRGlhZ25vc3RpYz4gZXJyb3JzID0gbW9kZWwuZVJlc291cmNlKCkuZ2V0RXJyb3JzKCk7CiAgICAgICAgIC8vICAgIGZvciAob3JnLmVjbGlwc2UuZW1mLmVjb3JlLnJlc291cmNlLlJlc291cmNlLkRpYWdub3N0aWMgZGlhZ25vc3RpYyA6IGVycm9ycykgewpAQCAtMjYxLDEzICsyNzMsMzggQEAKICAgICBAT3ZlcnJpZGUKICAgICBwdWJsaWMgTGlzdDxTdHJpbmc+IGdldFByb3BlcnRpZXMoKSB7CiAgICAgICAgIC8qCisgICAgICAgICAqIElmIHlvdSB3YW50IHRvIGNoYW5nZSB0aGUgY29udGVudCBvZiB0aGlzIG1ldGhvZCwgZG8gTk9UIGZvcmdldCB0byBjaGFuZ2UgdGhlICJAZ2VuZXJhdGVkIgorICAgICAgICAgKiB0YWcgaW4gdGhlIEphdmFkb2Mgb2YgdGhpcyBtZXRob2QgdG8gIkBnZW5lcmF0ZWQgTk9UIi4gV2l0aG91dCB0aGlzIG5ldyB0YWcsIGFueSBjb21waWxhdGlvbgorICAgICAgICAgKiBvZiB0aGUgQWNjZWxlbyBtb2R1bGUgd2l0aCB0aGUgbWFpbiB0ZW1wbGF0ZSB0aGF0IGhhcyBjYXVzZWQgdGhlIGNyZWF0aW9uIG9mIHRoaXMgY2xhc3Mgd2lsbAorICAgICAgICAgKiByZXZlcnQgeW91ciBtb2RpZmljYXRpb25zLgorICAgICAgICAgKi8KKworICAgICAgICAvKgogICAgICAgICAgKiBUT0RPIGlmIHlvdXIgZ2VuZXJhdGlvbiBtb2R1bGUgcmVxdWlyZXMgYWNjZXNzIHRvIHByb3BlcnRpZXMgZmlsZXMsIGFkZCB0aGVpciBxdWFsaWZpZWQgcGF0aCB0byB0aGUgbGlzdCBoZXJlLgotICAgICAgICAgKiBQcm9wZXJ0aWVzIGZpbGVzIGFyZSBleHBlY3RlZCB0byBiZSBpbiBzb3VyY2UgZm9sZGVycywgYW5kIHRoZSBwYXRoIGhlcmUgdG8gYmUgdGhlIHF1YWxpZmllZCBwYXRoIGFzIGlmIHJlZmVycmluZwotICAgICAgICAgKiB0byBhIEphdmEgY2xhc3MuIEZvciBleGFtcGxlLCBpZiB5b3UgaGF2ZSBhIGZpbGUgbmFtZWQgIm1lc3NhZ2VzLnByb3BlcnRpZXMiIGluIHBhY2thZ2UgIm9yZy5lY2xpcHNlLmFjY2VsZW8uc2FtcGxlIiwKLSAgICAgICAgICogdGhlIHBhdGggdGhhdCBuZWVkcyBiZSBhZGRlZCB0byB0aGlzIGxpc3QgaXMgIm9yZy5lY2xpcHNlLmFjY2VsZW8uc2FtcGxlLm1lc3NhZ2VzIi4gSWYgeW91IHdhbnQgdG8gY2hhbmdlIHRoZSBjb250ZW50Ci0gICAgICAgICAqIG9mIHRoaXMgbWV0aG9kLCBkbyBOT1QgZm9yZ2V0IHRvIGNoYW5nZSB0aGUgIkBnZW5lcmF0ZWQiIHRhZyBpbiB0aGUgSmF2YWRvYyBvZiB0aGlzIG1ldGhvZCB0byAiQGdlbmVyYXRlZCBOT1QiLgotICAgICAgICAgKiBXaXRob3V0IHRoaXMgbmV3IHRhZywgYW55IGNvbXBpbGF0aW9uIG9mIHRoZSBBY2NlbGVvIG1vZHVsZSB3aXRoIHRoZSBtYWluIHRlbXBsYXRlIHRoYXQgaGFzIGNhdXNlZCB0aGUgY3JlYXRpb24gb2YgCi0gICAgICAgICAqIHRoaXMgY2xhc3Mgd2lsbCByZXZlcnQgeW91ciBtb2RpZmljYXRpb25zLgorICAgICAgICAgKiAKKyAgICAgICAgICogUHJvcGVydGllcyBmaWxlcyBjYW4gYmUgbG9jYXRlZCBpbiBhbiBFY2xpcHNlIHBsdWctaW4gb3IgaW4gdGhlIGZpbGUgc3lzdGVtIChhbGwgQWNjZWxlbyBwcm9qZWN0cyBhcmUgRWNsaXBzZQorICAgICAgICAgKiBwbHVnLWluKS4gSW4gb3JkZXIgdG8gdXNlIHByb3BlcnRpZXMgZmlsZXMgbG9jYXRlZCBpbiBhbiBFY2xpcHNlIHBsdWdpbiwgeW91IG5lZWQgdG8gYWRkIHRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0aWVzCisgICAgICAgICAqIGZpbGVzIHRvIHRoZSAicHJvcGVydGllc0ZpbGVzIiBsaXN0OgorICAgICAgICAgKiAKKyAgICAgICAgICogZmluYWwgU3RyaW5nIHByZWZpeCA9ICJwbGF0Zm9ybTovcGx1Z2luLyI7CisgICAgICAgICAqIGZpbmFsIFN0cmluZyBwbHVnaW5OYW1lID0gIm9yZy5lY2xpcHNlLmFjY2VsZW8ubW9kdWxlLnNhbXBsZSI7CisgICAgICAgICAqIGZpbmFsIFN0cmluZyBwYWNrYWdlUGF0aCA9ICIvb3JnL2VjbGlwc2UvYWNjZWxlby9tb2R1bGUvc2FtcGxlL3Byb3BlcnRpZXMvIjsKKyAgICAgICAgICogZmluYWwgU3RyaW5nIGZpbGVOYW1lID0gImRlZmF1bHQucHJvcGVydGllcyI7CisgICAgICAgICAqIHByb3BlcnRpZXNGaWxlcy5hZGQocHJlZml4ICsgcGx1Z2luTmFtZSArIHBhY2thZ2VQYXRoICsgZmlsZU5hbWUpOworICAgICAgICAgKiAKKyAgICAgICAgICogV2l0aCB0aGlzIG1lY2hhbmlzbSwgeW91IGNhbiBsb2FkIHByb3BlcnRpZXMgZmlsZXMgZnJvbSB5b3VyIHBsdWdpbiBvciBmcm9tIGFub3RoZXIgcGx1Z2luLgorICAgICAgICAgKiAKKyAgICAgICAgICogWW91IG1heSB3YW50IHRvIGxvYWQgcHJvcGVydGllcyBmaWxlcyBmcm9tIHRoZSBmaWxlIHN5c3RlbSwgZm9yIHRoYXQgeW91IG5lZWQgdG8gYWRkIHRoZSBhYnNvbHV0ZSBwYXRoIG9mIHRoZSBmaWxlOgorICAgICAgICAgKiAKKyAgICAgICAgICogcHJvcGVydGllc0ZpbGVzLmFkZCgiQzpcVXNlcnNcTXlOYW1lXE15RmlsZS5wcm9wZXJ0aWVzIik7CisgICAgICAgICAqIAorICAgICAgICAgKiBJZiB5b3Ugd2FudCB0byBsZXQgeW91ciB1c2VycyBhZGQgcHJvcGVydGllcyBmaWxlcyBsb2NhdGVkIGluIHRoZSBzYW1lIGZvbGRlciBhcyB0aGUgbW9kZWw6CisgICAgICAgICAqCisgICAgICAgICAqIGlmIChFTUZQbHVnaW4uSVNfRUNMSVBTRV9SVU5OSU5HICYmIG1vZGVsICE9IG51bGwgJiYgbW9kZWwuZVJlc291cmNlKCkgIT0gbnVsbCkgeyAKKyAgICAgICAgICogICAgIHByb3BlcnRpZXNGaWxlcy5hZGRBbGwoQWNjZWxlb0VuZ2luZVV0aWxzLmdldFByb3BlcnRpZXNGaWxlc05lYXJNb2RlbChtb2RlbC5lUmVzb3VyY2UoKSkpOworICAgICAgICAgKiB9CisgICAgICAgICAqIAorICAgICAgICAgKiBUbyBsZWFybiBtb3JlIGFib3V0IFByb3BlcnRpZXMgRmlsZXMsIGhhdmUgYSBsb29rIGF0IHRoZSBBY2NlbGVvIGRvY3VtZW50YXRpb24gKEhlbHAgLT4gSGVscCBDb250ZW50cykuCiAgICAgICAgICAqLwogICAgICAgICByZXR1cm4gcHJvcGVydGllc0ZpbGVzOwogICAgIH0KQEAgLTI4MCw2ICszMTcsOSBAQAogICAgICAqIEBnZW5lcmF0ZWQKICAgICAgKiBAc2luY2UgMy4xCiAgICAgICovCisgICAgLyoKKyAgICBAT3ZlcnJpZGUKKyAgICAqLwogICAgIHB1YmxpYyB2b2lkIGFkZFByb3BlcnRpZXNGaWxlKFN0cmluZyBwcm9wZXJ0aWVzRmlsZSkgewogICAgICAgICB0aGlzLnByb3BlcnRpZXNGaWxlcy5hZGQocHJvcGVydGllc0ZpbGUpOwogICAgIH0KQEAgLTMwNSwzNSArMzQ1LDQyIEBACiAgICAgQE92ZXJyaWRlCiAgICAgcHVibGljIHZvaWQgcmVnaXN0ZXJQYWNrYWdlcyhSZXNvdXJjZVNldCByZXNvdXJjZVNldCkgewogICAgICAgICBzdXBlci5yZWdpc3RlclBhY2thZ2VzKHJlc291cmNlU2V0KTsKLSAgICAgICAgLy9nZHVwZT4gVGhlIG1ldGhvZCBpc0luV29ya3NwYWNlKCkgZG9lcyBub3QgZXhpc3RzIGluIEhlbGlvcy4gVGhpcyBhdm9pZAotICAgICAgICAvLyB0byBiZSBpbnN0YWxsIE1vRGlzY28gb24gYW4gSGVsaW9zLiBUaGUgY29kZSBnZW5lcmF0b3IgaXMgbm90IHVzZWQgaW4gYQotICAgICAgICAvLyB3b3Jrc3BhY2UgY29udGV4dCA6IHdlIGRvIG5vdCBuZWVkIGV4cGxpY2l0IGxvYWQgb2YgdGhlIG1ldGEtbW9kZWxzCi0gICAgICAgIC8vIFRoYXQgd2h5IEkndmUgY29tbWVudGVkIHRoZSBmb2xsb3dpbmcgbGluZXMuCiAgICAgICAgIC8qCisgICAgICAgICAqIElmIHlvdSB3YW50IHRvIGNoYW5nZSB0aGUgY29udGVudCBvZiB0aGlzIG1ldGhvZCwgZG8gTk9UIGZvcmdldCB0byBjaGFuZ2UgdGhlICJAZ2VuZXJhdGVkIgorICAgICAgICAgKiB0YWcgaW4gdGhlIEphdmFkb2Mgb2YgdGhpcyBtZXRob2QgdG8gIkBnZW5lcmF0ZWQgTk9UIi4gV2l0aG91dCB0aGlzIG5ldyB0YWcsIGFueSBjb21waWxhdGlvbgorICAgICAgICAgKiBvZiB0aGUgQWNjZWxlbyBtb2R1bGUgd2l0aCB0aGUgbWFpbiB0ZW1wbGF0ZSB0aGF0IGhhcyBjYXVzZWQgdGhlIGNyZWF0aW9uIG9mIHRoaXMgY2xhc3Mgd2lsbAorICAgICAgICAgKiByZXZlcnQgeW91ciBtb2RpZmljYXRpb25zLgorICAgICAgICAgKi8KICAgICAgICAgaWYgKCFpc0luV29ya3NwYWNlKG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmNhdGFsb2cuQ2F0YWxvZ1BhY2thZ2UuY2xhc3MpKSB7CiAgICAgICAgICAgICByZXNvdXJjZVNldC5nZXRQYWNrYWdlUmVnaXN0cnkoKS5wdXQob3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuY2F0YWxvZy5DYXRhbG9nUGFja2FnZS5lSU5TVEFOQ0UuZ2V0TnNVUkkoKSwgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuY2F0YWxvZy5DYXRhbG9nUGFja2FnZS5lSU5TVEFOQ0UpOwogICAgICAgICB9CiAgICAgICAgIGlmICghaXNJbldvcmtzcGFjZShvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5sYXVuY2guTGF1bmNoUGFja2FnZS5jbGFzcykpIHsKICAgICAgICAgICAgIHJlc291cmNlU2V0LmdldFBhY2thZ2VSZWdpc3RyeSgpLnB1dChvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5sYXVuY2guTGF1bmNoUGFja2FnZS5lSU5TVEFOQ0UuZ2V0TnNVUkkoKSwgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkubGF1bmNoLkxhdW5jaFBhY2thZ2UuZUlOU1RBTkNFKTsKICAgICAgICAgfQotICAgICAgICAqLworICAgICAgICAKICAgICAgICAgLyoKLSAgICAgICAgICogVE9ETyBJZiB5b3UgbmVlZCBhZGRpdGlvbmFsIHBhY2thZ2UgcmVnaXN0cmF0aW9ucywgeW91IGNhbiByZWdpc3RlciB0aGVtIGhlcmUuIFRoZSBmb2xsb3dpbmcgbGluZQotICAgICAgICAgKiAoaW4gY29tbWVudCkgaXMgYW4gZXhhbXBsZSBvZiB0aGUgcGFja2FnZSByZWdpc3RyYXRpb24gZm9yIFVNTC4gSWYgeW91IHdhbnQgdG8gY2hhbmdlIHRoZSBjb250ZW50Ci0gICAgICAgICAqIG9mIHRoaXMgbWV0aG9kLCBkbyBOT1QgZm9yZ2V0IHRvIGNoYW5nZSB0aGUgIkBnZW5lcmF0ZWQiIHRhZyBpbiB0aGUgSmF2YWRvYyBvZiB0aGlzIG1ldGhvZCB0bwotICAgICAgICAgKiAiQGdlbmVyYXRlZCBOT1QiLiBXaXRob3V0IHRoaXMgbmV3IHRhZywgYW55IGNvbXBpbGF0aW9uIG9mIHRoZSBBY2NlbGVvIG1vZHVsZSB3aXRoIHRoZSBtYWluIHRlbXBsYXRlCi0gICAgICAgICAqIHRoYXQgaGFzIGNhdXNlZCB0aGUgY3JlYXRpb24gb2YgdGhpcyBjbGFzcyB3aWxsIHJldmVydCB5b3VyIG1vZGlmaWNhdGlvbnMuIFlvdSBjYW4gdXNlIHRoZSBtZXRob2QKLSAgICAgICAgICogImlzSW5Xb3Jrc3BhY2UoQ2xhc3MgYykiIHRvIGNoZWNrIGlmIHRoZSBwYWNrYWdlIHRoYXQgeW91IGFyZSBhYm91dCB0byByZWdpc3RlciBpcyBpbiB0aGUgd29ya3NwYWNlLgotICAgICAgICAgKiBUbyByZWdpc3RlciBhIHBhY2thZ2UgcHJvcGVybHksIHBsZWFzZSBmb2xsb3cgdGhlIGZvbGxvd2luZyBjb252ZW50aW9uczoKKyAgICAgICAgICogSWYgeW91IG5lZWQgYWRkaXRpb25hbCBwYWNrYWdlIHJlZ2lzdHJhdGlvbnMsIHlvdSBjYW4gcmVnaXN0ZXIgdGhlbSBoZXJlLiBUaGUgZm9sbG93aW5nIGxpbmUKKyAgICAgICAgICogKGluIGNvbW1lbnQpIGlzIGFuIGV4YW1wbGUgb2YgdGhlIHBhY2thZ2UgcmVnaXN0cmF0aW9uIGZvciBVTUwuCiAgICAgICAgICAqIAorICAgICAgICAgKiBZb3UgY2FuIHVzZSB0aGUgbWV0aG9kICAiaXNJbldvcmtzcGFjZShDbGFzcyBjKSIgdG8gY2hlY2sgaWYgdGhlIHBhY2thZ2UgdGhhdCB5b3UgYXJlIGFib3V0IHRvCisgICAgICAgICAqIHJlZ2lzdGVyIGlzIGluIHRoZSB3b3Jrc3BhY2UuCisgICAgICAgICAqIAorICAgICAgICAgKiBUbyByZWdpc3RlciBhIHBhY2thZ2UgcHJvcGVybHksIHBsZWFzZSBmb2xsb3cgdGhlIGZvbGxvd2luZyBjb252ZW50aW9uczoKKyAgICAgICAgICoKKyAgICAgICAgICogSWYgdGhlIHBhY2thZ2UgaXMgbG9jYXRlZCBpbiBhbm90aGVyIHBsdWctaW4sIGFscmVhZHkgaW5zdGFsbGVkIGluIEVjbGlwc2UuIFRoZSBmb2xsb3dpbmcgY29udGVudCBzaG91bGQKKyAgICAgICAgICogaGF2ZSBiZWVuIGdlbmVyYXRlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoaXMgbWV0aG9kLiBEbyBub3QgcmVnaXN0ZXIgdGhlIHBhY2thZ2UgdXNpbmcgdGhpcyBtZWNoYW5pc20gaWYKKyAgICAgICAgICogdGhlIG1ldGFtb2RlbCBpcyBsb2NhdGVkIGluIHRoZSB3b3Jrc3BhY2UuCisgICAgICAgICAqICAKICAgICAgICAgICogaWYgKCFpc0luV29ya3NwYWNlKFVNTFBhY2thZ2UuY2xhc3MpKSB7CiAgICAgICAgICAqICAgICAvLyBUaGUgbm9ybWFsIHBhY2thZ2UgcmVnaXN0cmF0aW9uIGlmIHlvdXIgbWV0YW1vZGVsIGlzIGluIGEgcGx1Z2luLgogICAgICAgICAgKiAgICAgcmVzb3VyY2VTZXQuZ2V0UGFja2FnZVJlZ2lzdHJ5KCkucHV0KFVNTFBhY2thZ2UuZU5TX1VSSSwgVU1MUGFja2FnZS5lSU5TVEFOQ0UpOwotICAgICAgICAgKiB9IGVsc2UgewotICAgICAgICAgKiAgICAgLy8gVGhlIHBhY2thZ2UgcmVnaXN0cmF0aW9uIHRoYXQgd2lsbCBiZSB1c2VkIGlmIHRoZSBtZXRhbW9kZWwgaXMgbm90IGRlcGxveWVkIGluIGEgcGx1Z2luLgotICAgICAgICAgKiAgICAgLy8gVGhpcyBzaG91bGQgYmUgdXNlZCBpZiB5b3VyIG1ldGFtb2RlbCBpcyBpbiB5b3VyIHdvcmtzcGFjZSBhbmQgaWYgeW91IGFyZSB1c2luZyBiaW5hcnkgcmVzb3VyY2Ugc2VyaWFsaXphdGlvbi4KLSAgICAgICAgICogICAgIHJlc291cmNlU2V0LmdldFBhY2thZ2VSZWdpc3RyeSgpLnB1dCgiL215cHJvamVjdC9teWZvbGRlci9teXN1YmZvbGRlci9NeVVNTE1ldGFtb2RlbC5lY29yZSIsIFVNTFBhY2thZ2UuZUlOU1RBTkNFKTsKICAgICAgICAgICogfQorICAgICAgICAgKiAKKyAgICAgICAgICogSWYgdGhlIHBhY2thZ2UgaXMgbG9jYXRlZCBpbiBhbm90aGVyIHByb2plY3QgaW4geW91ciB3b3Jrc3BhY2UsIHRoZSBwbHVnaW4gY29udGFpbmluZyB0aGUgcGFja2FnZSBoYXMgbm90CisgICAgICAgICAqIGJlZW4gcmVnaXN0ZXIgYnkgRU1GIGFuZCBBY2NlbGVvIHNob3VsZCByZWdpc3RlciBpdCBhdXRvbWF0aWNhbGx5LiBJZiB5b3Ugd2FudCB0byB1c2UgdGhlIGdlbmVyYXRvciBpbgorICAgICAgICAgKiBzdGFuZCBhbG9uZSwgdGhlIHJlZ3VsYXIgcmVnaXN0cmF0aW9uIChzZWVuIGEgY291cGxlIGxpbmVzIGJlZm9yZSkgaXMgbmVlZGVkLgorICAgICAgICAgKiAKKyAgICAgICAgICogVG8gbGVhcm4gbW9yZSBhYm91dCBQYWNrYWdlIFJlZ2lzdHJhdGlvbiwgaGF2ZSBhIGxvb2sgYXQgdGhlIEFjY2VsZW8gZG9jdW1lbnRhdGlvbiAoSGVscCAtPiBIZWxwIENvbnRlbnRzKS4KICAgICAgICAgICovCiAgICAgfQogCkBAIC0zNDgsMTEgKzM5NSwxOSBAQAogICAgIHB1YmxpYyB2b2lkIHJlZ2lzdGVyUmVzb3VyY2VGYWN0b3JpZXMoUmVzb3VyY2VTZXQgcmVzb3VyY2VTZXQpIHsKICAgICAgICAgc3VwZXIucmVnaXN0ZXJSZXNvdXJjZUZhY3RvcmllcyhyZXNvdXJjZVNldCk7CiAgICAgICAgIC8qCisgICAgICAgICAqIElmIHlvdSB3YW50IHRvIGNoYW5nZSB0aGUgY29udGVudCBvZiB0aGlzIG1ldGhvZCwgZG8gTk9UIGZvcmdldCB0byBjaGFuZ2UgdGhlICJAZ2VuZXJhdGVkIgorICAgICAgICAgKiB0YWcgaW4gdGhlIEphdmFkb2Mgb2YgdGhpcyBtZXRob2QgdG8gIkBnZW5lcmF0ZWQgTk9UIi4gV2l0aG91dCB0aGlzIG5ldyB0YWcsIGFueSBjb21waWxhdGlvbgorICAgICAgICAgKiBvZiB0aGUgQWNjZWxlbyBtb2R1bGUgd2l0aCB0aGUgbWFpbiB0ZW1wbGF0ZSB0aGF0IGhhcyBjYXVzZWQgdGhlIGNyZWF0aW9uIG9mIHRoaXMgY2xhc3Mgd2lsbAorICAgICAgICAgKiByZXZlcnQgeW91ciBtb2RpZmljYXRpb25zLgorICAgICAgICAgKi8KKyAgICAgICAgCisgICAgICAgIC8qCiAgICAgICAgICAqIFRPRE8gSWYgeW91IG5lZWQgYWRkaXRpb25hbCByZXNvdXJjZSBmYWN0b3JpZXMgcmVnaXN0cmF0aW9ucywgeW91IGNhbiByZWdpc3RlciB0aGVtIGhlcmUuIHRoZSBmb2xsb3dpbmcgbGluZQotICAgICAgICAgKiAoaW4gY29tbWVudCkgaXMgYW4gZXhhbXBsZSBvZiB0aGUgcmVzb3VyY2UgZmFjdG9yeSByZWdpc3RyYXRpb24gZm9yIFVNTC4gSWYgeW91IHdhbnQgdG8gY2hhbmdlIHRoZSBjb250ZW50Ci0gICAgICAgICAqIG9mIHRoaXMgbWV0aG9kLCBkbyBOT1QgZm9yZ2V0IHRvIGNoYW5nZSB0aGUgIkBnZW5lcmF0ZWQiIHRhZyBpbiB0aGUgSmF2YWRvYyBvZiB0aGlzIG1ldGhvZCB0byAiQGdlbmVyYXRlZCBOT1QiLgotICAgICAgICAgKiBXaXRob3V0IHRoaXMgbmV3IHRhZywgYW55IGNvbXBpbGF0aW9uIG9mIHRoZSBBY2NlbGVvIG1vZHVsZSB3aXRoIHRoZSBtYWluIHRlbXBsYXRlIHRoYXQgaGFzIGNhdXNlZCB0aGUgY3JlYXRpb24KLSAgICAgICAgICogb2YgdGhpcyBjbGFzcyB3aWxsIHJldmVydCB5b3VyIG1vZGlmaWNhdGlvbnMuIAorICAgICAgICAgKiAoaW4gY29tbWVudCkgaXMgYW4gZXhhbXBsZSBvZiB0aGUgcmVzb3VyY2UgZmFjdG9yeSByZWdpc3RyYXRpb24gZm9yIFVNTC4KKyAgICAgICAgICoKKyAgICAgICAgICogSWYgeW91IHdhbnQgdG8gdXNlIHRoZSBnZW5lcmF0b3IgaW4gc3RhbmQgYWxvbmUsIHRoZSByZXNvdXJjZSBmYWN0b3J5IHJlZ2lzdHJhdGlvbiB3aWxsIGJlIHJlcXVpcmVkLgorICAgICAgICAgKiAgCisgICAgICAgICAqIFRvIGxlYXJuIG1vcmUgYWJvdXQgdGhlIHJlZ2lzdHJhdGlvbiBvZiBSZXNvdXJjZSBGYWN0b3JpZXMsIGhhdmUgYSBsb29rIGF0IHRoZSBBY2NlbGVvIGRvY3VtZW50YXRpb24gKEhlbHAgLT4gSGVscCBDb250ZW50cykuIAogICAgICAgICAgKi8gCiAgICAgICAgIAogICAgICAgICAvLyByZXNvdXJjZVNldC5nZXRSZXNvdXJjZUZhY3RvcnlSZWdpc3RyeSgpLmdldEV4dGVuc2lvblRvRmFjdG9yeU1hcCgpLnB1dChVTUxSZXNvdXJjZS5GSUxFX0VYVEVOU0lPTiwgVU1MUmVzb3VyY2UuRmFjdG9yeS5JTlNUQU5DRSk7CmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL2NvcmUvaW50ZXJuYWwvcmVwb3J0aW5nL0h0bWxSZXBvcnQubXRsIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9jb3JlL2ludGVybmFsL3JlcG9ydGluZy9IdG1sUmVwb3J0Lm10bAppbmRleCAxZGQ1YjYwLi4wOWM3MzYyIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL2NvcmUvaW50ZXJuYWwvcmVwb3J0aW5nL0h0bWxSZXBvcnQubXRsCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvY29yZS9pbnRlcm5hbC9yZXBvcnRpbmcvSHRtbFJlcG9ydC5tdGwKQEAgLTEsMTQ4ICsxLDExMCBAQAogW2NvbW1lbnQgZW5jb2RpbmcgPSBVVEYtOCAvXQogW2NvbW1lbnQgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxMiBJTlJJQS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUKLSAqIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZQotICogUHVibGljIExpY2Vuc2UgdjEuMCB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAorICogQ29weXJpZ2h0IChjKSAyMDEyLCAyMDE1IElOUklBLCBhbmQgTWlhLVNvZnR3YXJlLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZQorICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wIHdoaWNoIAorICogYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKICAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCiAgKiAKLSAqIENvbnRyaWJ1dG9yczogR3VpbGxhdW1lIERvdXggLSBJTlJJQSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICogCisgKiBDb250cmlidXRvcnM6CisgKiAgICBHdWlsbGF1bWUgRG91eCAoSU5SSUEpIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCisgKiAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgyNjcyIC0gQmVuY2htYXJrIGNvbW1hbmQgbGluZSBpbnRlcmZhY2UKKyAqICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODI4NTcgLSBEaXNjb3ZlcmVyIEJlbmNobWFyayBSZXBvcnQgOiB3cm9uZyBuYW1lc3BhY2VzCisgKiAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzNDAwIC0gVGhlIGlucHV0IHNpemUgc2hvdWxkIGJlIGNvbXB1dGFibGUgYnkgdGhlIGRpc2NvdmVyZXIKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovIC9dCi1bbW9kdWxlIEh0bWxSZXBvcnQoJ2h0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vYmVuY2htYXJrJywnaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9kaXNjb3ZlcnkvY2F0YWxvZycsJ2h0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9EaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vZGlzY292ZXJ5L2xhdW5jaCcpL10KK1ttb2R1bGUgSHRtbFJlcG9ydCgKKwknaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvMC4xMS5pbmN1YmF0aW9uL2ludGVybmFsL2JlbmNobWFyaycsCisJJ2h0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9EaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vZGlzY292ZXJ5L2NhdGFsb2cnLAorCSdodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vRGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2Rpc2NvdmVyeS9sYXVuY2gnKQorL10KIAotW3F1ZXJ5IHB1YmxpYyBtYXhFeGVjdXRpb25UaW1lIChpdGVyYXRpb25zIDogU2V0KERpc2NvdmVyeUl0ZXJhdGlvbikpIDogUmVhbCA9IGludm9rZSgnb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLnJlcG9ydGluZy5pbnRlcm5hbC5SZXBvcnRpbmdVdGlsaXRpZXMnLCAnbWF4RXhlY3V0aW9uVGltZShqYXZhLnV0aWwuQ29sbGVjdGlvbiknLCBTZXF1ZW5jZXtpdGVyYXRpb25zfSkvXQotW3F1ZXJ5IHB1YmxpYyBtYXhTYXZlVGltZSAoaXRlcmF0aW9ucyA6IFNldChEaXNjb3ZlcnlJdGVyYXRpb24pKSA6IFJlYWwgPSBpbnZva2UoJ29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5yZXBvcnRpbmcuaW50ZXJuYWwuUmVwb3J0aW5nVXRpbGl0aWVzJywgJ21heFNhdmVUaW1lKGphdmEudXRpbC5Db2xsZWN0aW9uKScsIFNlcXVlbmNle2l0ZXJhdGlvbnN9KS9dCi1bcXVlcnkgcHVibGljIHNpemVXaXRoVW5pdCAodmFsdWUgOiBSZWFsKSA6IFN0cmluZyA9IGludm9rZSgnb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLnJlcG9ydGluZy5pbnRlcm5hbC5SZXBvcnRpbmdVdGlsaXRpZXMnLCAnc2l6ZVdpdGhVbml0KGphdmEubGFuZy5Eb3VibGUpJywgU2VxdWVuY2V7dmFsdWV9KS9dCi1bcXVlcnkgcHVibGljIHRpbWVXaXRoVW5pdCAodmFsdWUgOiBSZWFsKSA6IFN0cmluZyA9IGludm9rZSgnb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLnJlcG9ydGluZy5pbnRlcm5hbC5SZXBvcnRpbmdVdGlsaXRpZXMnLCAndGltZVdpdGhVbml0KGphdmEubGFuZy5Eb3VibGUpJywgU2VxdWVuY2V7dmFsdWV9KS9dCitbcXVlcnkgcHVibGljIG1heEV4ZWN1dGlvblRpbWUgKGl0ZXJhdGlvbnMgOiBTZXQoRGlzY292ZXJ5SXRlcmF0aW9uKSkgOiBSZWFsID0gaW52b2tlKCdvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS5pbnRlcm5hbC5yZXBvcnRpbmcuaW50ZXJuYWwuUmVwb3J0aW5nVXRpbGl0aWVzJywgJ21heEV4ZWN1dGlvblRpbWUoamF2YS51dGlsLkNvbGxlY3Rpb24pJywgU2VxdWVuY2V7aXRlcmF0aW9uc30pL10KK1txdWVyeSBwdWJsaWMgbWF4U2F2ZVRpbWUgKGl0ZXJhdGlvbnMgOiBTZXQoRGlzY292ZXJ5SXRlcmF0aW9uKSkgOiBSZWFsID0gaW52b2tlKCdvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS5pbnRlcm5hbC5yZXBvcnRpbmcuaW50ZXJuYWwuUmVwb3J0aW5nVXRpbGl0aWVzJywgJ21heFNhdmVUaW1lKGphdmEudXRpbC5Db2xsZWN0aW9uKScsIFNlcXVlbmNle2l0ZXJhdGlvbnN9KS9dCitbcXVlcnkgcHVibGljIHNpemVXaXRoVW5pdCAodmFsdWUgOiBSZWFsKSA6IFN0cmluZyA9IGludm9rZSgnb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUuaW50ZXJuYWwucmVwb3J0aW5nLmludGVybmFsLlJlcG9ydGluZ1V0aWxpdGllcycsICdzaXplV2l0aFVuaXQoamF2YS5sYW5nLkRvdWJsZSknLCBTZXF1ZW5jZXt2YWx1ZX0pL10KK1txdWVyeSBwdWJsaWMgdGltZVdpdGhVbml0ICh2YWx1ZSA6IFJlYWwpIDogU3RyaW5nID0gaW52b2tlKCdvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS5pbnRlcm5hbC5yZXBvcnRpbmcuaW50ZXJuYWwuUmVwb3J0aW5nVXRpbGl0aWVzJywgJ3RpbWVXaXRoVW5pdChqYXZhLmxhbmcuRG91YmxlKScsIFNlcXVlbmNle3ZhbHVlfSkvXQorW3F1ZXJ5IHB1YmxpYyBpbmRleE9mIChsaXN0IDogU2VxdWVuY2UoT2NsQW55KSwgb2JqZWN0IDogT2NsQW55KSA6IEludGVnZXIgPSAKKwlpbnZva2UoCisJCSdvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS5pbnRlcm5hbC5yZXBvcnRpbmcuaW50ZXJuYWwuUmVwb3J0aW5nVXRpbGl0aWVzJywKKwkJJ2luZGV4T2YoamF2YS51dGlsLkxpc3QsIGphdmEubGFuZy5PYmplY3QpJywgU2VxdWVuY2V7bGlzdCwgb2JqZWN0fSkvXQogCiBbdGVtcGxhdGUgcHVibGljIEh0bWxSZXBvcnQoYiA6IEJlbmNobWFyayldCi0JCi0JW2NvbW1lbnQgQG1haW4gL10KLQlbZmlsZSAoJ2Rpc2NvdmVyeVJlcG9ydC5odG1sJywgZmFsc2UsICdVVEYtOCcpXQotCTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iCi0iaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Ci08aHRtbD4KLTxoZWFkPgorW2NvbW1lbnQgQG1haW4gL10KK1tyZXBvcnRJbmRleChiKS9dCitbZm9yIChkaXNjb3ZlcnkgOiBEaXNjb3ZlcnkgfCBiLmRpc2NvdmVyaWVzKSBdCitbZGlzY292ZXJlclJlcG9ydChkaXNjb3ZlcnkpL10KK1svZm9yXQorW2ZvciAoZGlzY292ZXJ5IDogRGlzY292ZXJ5IHwgYi5kaXNjb3ZlcmllcykgXQorCVtkaXNjb3ZlcnlSZXBvcnQoZGlzY292ZXJ5KS9dCitbL2Zvcl0KK1tmb3IgKHByb2plY3QgOiBQcm9qZWN0IHwgYi5wcm9qZWN0cykgXQorCVtwcm9qZWN0UmVwb3J0KHByb2plY3QsIGIpL10KK1svZm9yXQorWy90ZW1wbGF0ZV0KIAotPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KLSAgLmdyYXBoIHsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTBFMEUwOwotICAgIGJvcmRlcjogc29saWQgMXB4IGJsYWNrOwotICB9Ci0gIC5ncmFwaCB0ZCB7Ci0gICAgZm9udC1mYW1pbHk6IHZlcmRhbmEsIGFyaWFsLCBzYW5zIHNlcmlmOwotICB9Ci0gIC5iYXIgewotICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwotICAgIHRleHQtYWxpZ246IHJpZ2h0OwotICAgIGJvcmRlcjogc29saWQgMXB4IGJsYWNrOwotICAgIHdpZHRoOiA0MDBweDsKLSAgfQotICAuYmFyIGRpdiB7IAotICAgIGJhY2tncm91bmQtY29sb3I6ICNBMEEwRkY7Ci0gICAgdGV4dC1hbGlnbjogcmlnaHQ7Ci0gICAgZmxvYXQ6IGxlZnQ7Ci0gICAgaGVpZ2h0OiAyMHB4OwotICB9Ci0gIGJvZHkgewotICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwotICB9Ci0gIHRkIHsKLSAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Ci0gIH0KLTwvc3R5bGU+Ci0KLTx0aXRsZT5Nb0Rpc2NvIEphdmEgRGlzY292ZXIgQmVuY2htYXJrPC90aXRsZT4KLTwvaGVhZD4KLQotPGJvZHk+Ci0KLQotCitbdGVtcGxhdGUgcHJpdmF0ZSByZXBvcnRJbmRleChiIDogQmVuY2htYXJrKV0KK1tmaWxlICgnZGlzY292ZXJ5UmVwb3J0Lmh0bWwnLCBmYWxzZSwgJ1VURi04JyldCitbaGVhZCgnTW9EaXNjbyBKYXZhIERpc2NvdmVyIEJlbmNobWFyaycpL10KIDxoMj5TeXN0ZW0gSW5mb3JtYXRpb248L2gyPgogICA8dGFibGUgYm9yZGVyPSIxIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiPgogICAgIDx0cj4KICAgICAgICA8dGg+T1MgbmFtZTwvdGg+CiAgICAgICAgPHRkPltiLm9zTmFtZS9dPC90ZD4KICAgICA8L3RyPgotICAgICAgIAogICAgIDx0cj4KICAgICAgICA8dGg+T1MgdmVyc2lvbjwvdGg+CiAgICAgICAgPHRkPltiLm9zVmVyc2lvbi9dPC90ZD4KICAgICA8L3RyPgotICAgICAgIAogICAgIDx0cj4KICAgICAgICA8dGg+T1MgYXJjaGl0ZWN0dXJlPC90aD4KICAgICAgICA8dGQ+W2Iub3NBcmNoaXRlY3R1cmUvXTwvdGQ+CiAgICAgPC90cj4KLSAgICAgICAKICAgICA8dHI+CiAgICAgICAgPHRoPk51bWJlciBvZiBwcm9jZXNzb3IgY29yZXM8L3RoPgogICAgICAgIDx0ZD5bYi5wcm9jZXNzb3JDb3VudC9dPC90ZD4KICAgICA8L3RyPgotCiAgICAgPHRyPgogICAgICAgIDx0aD5Qcm9jZXNzb3IgbmFtZTwvdGg+CiAgICAgICAgPHRkPltiLnByb2Nlc3Nvck5hbWUvXTwvdGQ+CiAgICAgPC90cj4KLQogICAgIDx0cj4KICAgICAgICA8dGg+UHJvY2Vzc29yIGRlc2NyaXB0aW9uPC90aD4KICAgICAgICA8dGQ+W2IucHJvY2Vzc29yRGVzY3JpcHRpb24vXTwvdGQ+CiAgICAgPC90cj4KLQogICAgIDx0cj4KICAgICAgICA8dGg+UHJvY2Vzc29yIGNhY2hlIHNpemU8L3RoPgogICAgICAgIDx0ZD5bYi5wcm9jZXNzb3JDYWNoZVNpemUvXTwvdGQ+CiAgICAgPC90cj4KLQogICAgIDx0cj4KICAgICAgICA8dGg+U3lzdGVtIG1lbW9yeTwvdGg+CiAgICAgICAgPHRkPltiLnN5c3RlbU1lbW9yeS9dPC90ZD4KICAgICA8L3RyPgogICA8L3RhYmxlPgotCi0KIDxoMj5FeGVjdXRpb24gdGltZSBieSBwcm9qZWN0IHNpemU8L2gyPgotCiA8aW1nIHNyYz0iRGlzY292ZXJ5VGltZUJ5UHJvamVjdFNpemVPdmVyYWxsLnBuZyIvPgotCi0KIFtpZiAoYi5kaXNjb3Zlcmllcy0+Zmlyc3QoKS5pdGVyYXRpb25zLT5maXJzdCgpLm1heFVzZWRNZW1vcnlJbkJ5dGVzPD4wKV0KIDxoMj5NZW1vcnkgdXNlIHRpbWUgYnkgcHJvamVjdCBzaXplPC9oMj4KLQogPGltZyBzcmM9Im1lbW9yeUJ5UHJvamVjdFNpemVPdmVyYWxsLnBuZyIvPgotCiBbL2lmXQotCi0KIDxoMj5SZXN1bHRzIE92ZXJ2aWV3PC9oMj4KLQogICA8dGFibGUgYm9yZGVyPSIxIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiPgogICAgIDx0cj4KICAgICAgICA8dGg+UHJvamVjdDwvdGg+Ci0JICAgPHRoPkRpc2NvdmVyZXI8L3RoPgorICAgICAgIDx0aD5EaXNjb3ZlcmVyPC90aD4KKyAgICAgICA8dGg+RGlzY292ZXJpZXM8L3RoPgorICAgICAgIDx0aD5Qcm9qZWN0IHNpemU8L3RoPgogICAgICAgIDx0aD5BdmVyYWdlIGRpc2NvdmVyeSB0aW1lPC90aD4KICAgICAgICA8dGg+QXZlcmFnZSBzYXZlIHRpbWU8L3RoPgogICAgICAgIDx0aD5OdW1iZXIgb2YgbW9kZWwgZWxlbWVudHM8L3RoPgotICAgICAgIDx0aD5Ub3RhbCBzaXplPC90aD4KLSAgICAgICA8dGg+QXZlcmFnZSBmaWxlIHNpemU8L3RoPgotICAgICAgIDx0aD5Ub3RhbCBsaW5lczwvdGg+Ci0gICAgICAgPHRoPkF2ZXJhZ2UgbGluZXMgcGVyIGZpbGU8L3RoPgotICAgICAgIDx0aD5YTUkgc2l6ZTwvdGg+CiAgICAgIDwvdHI+CiAgICAgIFtmb3IgKGRpc2NvdmVyeSA6IERpc2NvdmVyeSB8IGIuZGlzY292ZXJpZXMpIF0KLSAgICAgICAJICA8dHI+CisgICAgICAgICAgPHRyPgogICAgICAgICAgICAgPHRkPjxhIGhyZWY9IlJlcG9ydC9bZGlzY292ZXJ5LnByb2plY3QubmFtZS9dLmh0bWwiPltkaXNjb3ZlcnkucHJvamVjdC5uYW1lL108L2E+PC90ZD4KLQkJCTx0ZD48YSBocmVmPSJSZXBvcnQvW2Rpc2NvdmVyeS5kaXNjb3ZlcmVySWQrZGlzY292ZXJ5LnByb2plY3QubmFtZS9dLmh0bWwiPltkaXNjb3ZlcnkuZGlzY292ZXJlcklkL108L2E+PC90ZD4KKyAgICAgICAgICAgIDx0ZD48YSBocmVmPSJSZXBvcnQvW2Rpc2NvdmVyeS5kaXNjb3ZlcmVySWQvXS5odG1sIj5bZGlzY292ZXJ5LmRpc2NvdmVyZXJJZC9dPC9hPjwvdGQ+CisgICAgICAgICAgICAJCQk8dGQ+PGEgaHJlZj0iUmVwb3J0L1tkaXNjb3ZlcnkucHJvamVjdC5uYW1lKycvJytkaXNjb3ZlcnkuZGlzY292ZXJlcklkL10uaHRtbCI+RGlzY292ZXJpZXM8L2E+PC90ZD4KKyAgICAgICAgICAgIDx0ZD5bZGlzY292ZXJ5LnByb2plY3Qub2NsQXNUeXBlKFByb2plY3QpLmlucHV0U2l6ZS9dW2Rpc2NvdmVyeS5wcm9qZWN0Lm9jbEFzVHlwZShQcm9qZWN0KS5pbnB1dFNpemVVbml0L108L3RkPgogICAgICAgICAgICAgPHRkPlt0aW1lV2l0aFVuaXQoMC4wICsgZGlzY292ZXJ5LmRpc2NvdmVyeVRpbWVBdmVyYWdlSW5TZWNvbmRzKS9dICgmc2lnbWE7ID0gW3RpbWVXaXRoVW5pdCgwLjAgKyBkaXNjb3ZlcnkuZXhlY3V0aW9uVGltZVN0YW5kYXJkRGV2aWF0aW9uKS9dcyk8L3RkPgogICAgICAgICAgICAgPHRkPlt0aW1lV2l0aFVuaXQoMC4wICsgZGlzY292ZXJ5LnNhdmVUaW1lQXZlcmFnZUluU2Vjb25kcykvXSAoJnNpZ21hOyA9IFt0aW1lV2l0aFVuaXQoMC4wICsgZGlzY292ZXJ5LnNhdmVUaW1lU3RhbmRhcmREZXZpYXRpb24pL11zKTwvdGQ+CiAgICAgICAgICAgICA8dGQ+W2Rpc2NvdmVyeS5udW1iZXJPZk1vZGVsRWxlbWVudHMvXTwvdGQ+Ci0gICAgICAgICAgICA8dGQ+W3NpemVXaXRoVW5pdCgwLjAgKyBkaXNjb3ZlcnkucHJvamVjdC5vY2xBc1R5cGUoUHJvamVjdCkudG90YWxTaXplSW5CeXRlcykvXTwvdGQ+Ci0gICAgICAgICAgICA8dGQ+W3NpemVXaXRoVW5pdCgwLjAgKyBkaXNjb3ZlcnkucHJvamVjdC5vY2xBc1R5cGUoUHJvamVjdCkuYXZlcmFnZUZpbGVTaXplSW5CeXRlcykvXTwvdGQ+Ci0gICAgICAgICAgICA8dGQ+W2Rpc2NvdmVyeS5wcm9qZWN0Lm9jbEFzVHlwZShQcm9qZWN0KS50b3RhbExpbmVzL108L3RkPgotICAgICAgICAgICAgPHRkPltkaXNjb3ZlcnkucHJvamVjdC5vY2xBc1R5cGUoUHJvamVjdCkuYXZlcmFnZUxpbmVzUGVyRmlsZS9dPC90ZD4KLSAgICAgICAgICAgIDx0ZD5bc2l6ZVdpdGhVbml0KDAuMCArZGlzY292ZXJ5LnhtaVNpemVJbkJ5dGVzKS9dPC90ZD4KICAgICAgICAgIDwvdHI+CiAgICAgIFsvZm9yXQogICA8L3RhYmxlPgpAQCAtMTcwLDc4ICsxMzIsMzIgQEAKIFsvZm9yXQogCiA8aDI+U2F2ZSB0aW1lcyBwZXIgaXRlcmF0aW9uPC9oMj4KLQogW2ZvciAoZGlzY292ZXJ5IDogRGlzY292ZXJ5IHwgYi5kaXNjb3ZlcmllcykgXQogPGgzPltkaXNjb3ZlcnkucHJvamVjdC5uYW1lL10gd2l0aCA8YSBocmVmPSJSZXBvcnQvW2Rpc2NvdmVyeS5kaXNjb3ZlcmVySWQrZGlzY292ZXJ5LnByb2plY3QubmFtZS9dLmh0bWwiPltkaXNjb3ZlcnkuZGlzY292ZXJlcklkL108L2E+PC9oMz4KIFtsZXQgbWF4U2F2ZVRpbWUgOiBSZWFsID0gbWF4U2F2ZVRpbWUoZGlzY292ZXJ5Lml0ZXJhdGlvbnMpXQotCiA8dGFibGUgd2lkdGg9IjYwMCIgY2xhc3M9ImdyYXBoIiBjZWxsc3BhY2luZz0iNiIgY2VsbHBhZGRpbmc9IjAiPgogICA8dHI+CiAgICAgPHRoPml0ZXJhdGlvbjwvdGg+PHRoPnJlbGF0aXZlIHNhdmUgdGltZTwvdGg+PHRoPnRpbWUocyk8L3RoPgogICA8L3RyPgotCiBbZm9yIChkaXNjb3ZlcnlJdGVyYXRpb24gOiBEaXNjb3ZlcnlJdGVyYXRpb24gfCBkaXNjb3ZlcnkuaXRlcmF0aW9ucyldCiAgICAgPHRyPgogICAgICAgPHRkPltpL10vW2Rpc2NvdmVyeS5pdGVyYXRpb25zLT5zaXplKCkvXTwvdGQ+PHRkIGNsYXNzPSJiYXIiPjxkaXYgc3R5bGU9IndpZHRoOiBbZGlzY292ZXJ5SXRlcmF0aW9uLnNhdmVUaW1lSW5TZWNvbmRzIC8gbWF4U2F2ZVRpbWUgKiAxMDAuMC9dJSI+PC9kaXY+PC90ZD48dGQ+W3RpbWVXaXRoVW5pdCgwLjAgKyBkaXNjb3ZlcnlJdGVyYXRpb24uc2F2ZVRpbWVJblNlY29uZHMpL108L3RkPgogICAgIDwvdHI+CiBbL2Zvcl0KIDwvdGFibGU+Ci0KIFsvbGV0XQogWy9mb3JdCi0KLQogWy9pZl0KLQogPHAvPgogPGhyLz4KIDxmb250IHNpemU9Ii0xIj48aT5UaGlzIHJlcG9ydCBoYXMgYmVlbiBnZW5lcmF0ZWQgd2l0aCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vIj5Nb0Rpc2NvPC9hPiBKYXZhIERpc2NvdmVyZXIgQmVuY2htYXJrLjwvaT48L2ZvbnQ+CiA8L2JvZHk+PC9odG1sPgogWy9maWxlXQorWy90ZW1wbGF0ZV0KIAotCi0KLVtmb3IgKGRpc2NvdmVyeSA6IERpc2NvdmVyeSB8IGIuZGlzY292ZXJpZXMpIF0KLVtmaWxlICgnUmVwb3J0LycrZGlzY292ZXJ5LmRpc2NvdmVyZXJJZCtkaXNjb3ZlcnkucHJvamVjdC5uYW1lKycuaHRtbCcsIGZhbHNlLCAnVVRGLTgnKV0KLQk8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIgotImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgotPGh0bWw+Ci08aGVhZD4KLQotPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KLSAgLmdyYXBoIHsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTBFMEUwOwotICAgIGJvcmRlcjogc29saWQgMXB4IGJsYWNrOwotICB9Ci0gIC5ncmFwaCB0ZCB7Ci0gICAgZm9udC1mYW1pbHk6IHZlcmRhbmEsIGFyaWFsLCBzYW5zIHNlcmlmOwotICB9Ci0gIC5iYXIgewotICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwotICAgIHRleHQtYWxpZ246IHJpZ2h0OwotICAgIGJvcmRlcjogc29saWQgMXB4IGJsYWNrOwotICAgIHdpZHRoOiA0MDBweDsKLSAgfQotICAuYmFyIGRpdiB7IAotICAgIGJhY2tncm91bmQtY29sb3I6ICNBMEEwRkY7Ci0gICAgdGV4dC1hbGlnbjogcmlnaHQ7Ci0gICAgZmxvYXQ6IGxlZnQ7Ci0gICAgaGVpZ2h0OiAyMHB4OwotICB9Ci0gIGJvZHkgewotICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwotICB9Ci0gIHRkIHsKLSAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Ci0gIH0KLTwvc3R5bGU+Ci0KLTx0aXRsZT5bZGlzY292ZXJ5Lm5hbWUvXTwvdGl0bGU+Ci08L2hlYWQ+Ci0KLTxib2R5PgotCi08aDE+W2Rpc2NvdmVyeS5uYW1lL108L2gxPgorW3RlbXBsYXRlIHB1YmxpYyBkaXNjb3ZlcnlSZXBvcnQoZGlzY292ZXJ5IDogRGlzY292ZXJ5KV0KK1tmaWxlICgnUmVwb3J0LycrZGlzY292ZXJ5LnByb2plY3QubmFtZSsnLycrZGlzY292ZXJ5LmRpc2NvdmVyZXJJZCsnLmh0bWwnLCBmYWxzZSwgJ1VURi04JyldCitbaGVhZChkaXNjb3ZlcnkubmFtZSsnIG9uICcrZGlzY292ZXJ5LnByb2plY3QubmFtZSkvXQogPGgyPkdlbmVyYWwgZGlzY292ZXJ5IGluZm9ybWF0aW9uPC9oMj4KIDxiPm5hbWU8L2I+OiBbZGlzY292ZXJ5Lm5hbWUvXTxici8+CiA8Yj5kaXNjb3ZlcmVyPC9iPjogW2Rpc2NvdmVyeS5kaXNjb3ZlcmVySWQvXSAoW2Rpc2NvdmVyeS5kaXNjb3ZlcmVyQ2xhc3NOYW1lL10pPGJyLz4KQEAgLTI1MSw5NCArMTY3LDM3IEBACiA8Yj5zYXZlIHRpbWUgc3RhbmRhcmQgZGV2aWF0aW9uPC9iPjogW3RpbWVXaXRoVW5pdCgwLjAgKyBkaXNjb3Zlcnkuc2F2ZVRpbWVTdGFuZGFyZERldmlhdGlvbikvXTxici8+CiA8Yj5udW1iZXIgb2YgbW9kZWwgZWxlbWVudHM8L2I+OiBbZGlzY292ZXJ5Lm51bWJlck9mTW9kZWxFbGVtZW50cy9dPGJyLz4KIDxiPnNpemUgb2YgdGhlIHhtaSBmaWxlIGluIGJ5dGVzPC9iPjogW3NpemVXaXRoVW5pdCgwLjAgKyBkaXNjb3ZlcnkueG1pU2l6ZUluQnl0ZXMpL108YnIvPgotCiA8aDM+UHJvamVjdCBpbmZvcm1hdGlvbjwvaDM+CiA8Yj5Qcm9qZWN0IG5hbWU8L2I+OiA8YSBocmVmPSJbZGlzY292ZXJ5LnByb2plY3QubmFtZS9dLmh0bWwiPltkaXNjb3ZlcnkucHJvamVjdC5uYW1lL108L2E+PGJyLz4KIDxiPnRvdGFsIG51bWJlciBvZiBsaW5lczwvYj46IFtkaXNjb3ZlcnkucHJvamVjdC5vY2xBc1R5cGUoUHJvamVjdCkudG90YWxMaW5lcy9dPGJyLz4KIDxiPmF2ZXJhZ2UgbnVtYmVyIG9mIGxpbmVzIHBlciBmaWxlczwvYj46IFtkaXNjb3ZlcnkucHJvamVjdC5vY2xBc1R5cGUoUHJvamVjdCkuYXZlcmFnZUxpbmVzUGVyRmlsZS9dPGJyLz4KIDxiPmF2ZXJhZ2UgZmlsZSBzaXplIGluIGJ5dGVzPC9iPjogW3NpemVXaXRoVW5pdCgwLjAgKyBkaXNjb3ZlcnkucHJvamVjdC5vY2xBc1R5cGUoUHJvamVjdCkuYXZlcmFnZUZpbGVTaXplSW5CeXRlcykvXTxici8+CiA8Yj50b3RhbCBzaXplIGluIGJ5dGVzPC9iPjogW3NpemVXaXRoVW5pdCgwLjAgKyBkaXNjb3ZlcnkucHJvamVjdC50b3RhbFNpemVJbkJ5dGVzKS9dPGJyLz4KLQotPGltZyBzcmM9Ii4uL0Rpc2NvdmVyeVRpbWVCeVByb2plY3RTaXplW2Rpc2NvdmVyeS5kaXNjb3ZlcmVySWQvXS5wbmciLz4KLVtpZiAoZGlzY292ZXJ5Lml0ZXJhdGlvbnMtPmZpcnN0KCkubWF4VXNlZE1lbW9yeUluQnl0ZXM8PjApXQotPGltZyBzcmM9Ii4uL21lbW9yeUJ5UHJvamVjdFNpemVbZGlzY292ZXJ5LmRpc2NvdmVyZXJJZC9dLnBuZyIvPgotWy9pZl0KLQotW2lmIChkaXNjb3ZlcnkuaXRlcmF0aW9ucy0+c2l6ZSgpID4gMSldCi1bZm9yIChpdGVyYXRpb24gOiBEaXNjb3ZlcnlJdGVyYXRpb24gfCBkaXNjb3ZlcnkuaXRlcmF0aW9ucykgc2VwYXJhdG9yICgnPGhyLz4nKV0KLTxoMj5pdGVyYXRpb24gW2kvXTwvaDI+Ci08Yj5kYXRlPC9iPjogW2l0ZXJhdGlvbi5kaXNjb3ZlcnlEYXRlL108YnIvPgotPGI+c2F2ZSB0aW1lPC9iPjogW3RpbWVXaXRoVW5pdCgwLjAgKyBpdGVyYXRpb24uc2F2ZVRpbWVJblNlY29uZHMpL108YnIvPgotPGI+ZGlzY292ZXJ5IHRpbWU8L2I+OiBbdGltZVdpdGhVbml0KDAuMCArIGl0ZXJhdGlvbi5kaXNjb3ZlcnlUaW1lSW5TZWNvbmRzKS9dPGJyLz4KLTxiPm1heCB1c2VkIG1lbW9yeTwvYj46IFtzaXplV2l0aFVuaXQoMC4wICsgaXRlcmF0aW9uLm1heFVzZWRNZW1vcnlJbkJ5dGVzKS9dPGJyLz4KLQotW2lmIChkaXNjb3ZlcnkuaXRlcmF0aW9ucy0+Zmlyc3QoKS5tYXhVc2VkTWVtb3J5SW5CeXRlczw+MCldCi08aW1nIHNyYz0iLi4vbWVtb3J5QnlUaW1lW2Rpc2NvdmVyeS5kaXNjb3ZlcmVySWQvXV9baXRlcmF0aW9uLmRpc2NvdmVyeURhdGUudG9TdHJpbmcoKS5yZXBsYWNlQWxsKCcgJywgJ18nKS5yZXBsYWNlQWxsKCc6JywgJy0nKS9dLnBuZyIvPgotWy9pZl0KLQotW2lmIChub3QgaXRlcmF0aW9uLmRpc2NvdmVyeUVycm9ycy5vY2xJc1VuZGVmaW5lZCgpKV0KLTxmb250IGNvbG9yPSJyZWQiPgotPGgzPmRpc2NvdmVyeSBlcnJvcnM8L2gzPgotW2ZvciAoZXJyb3IgOiBTdHJpbmcgfCBpdGVyYXRpb24uZGlzY292ZXJ5RXJyb3JzKSBdCi1bZXJyb3IvXTxici8+Ci08L2ZvbnQ+Ci1bL2Zvcl0KLVsvaWZdCi1bL2Zvcl0KLVsvaWZdCi0KLQotCi0KLTxwLz4KKwlbZm9yIChpdGVyYXRpb24gOiBEaXNjb3ZlcnlJdGVyYXRpb24gfCBkaXNjb3ZlcnkuaXRlcmF0aW9ucykgc2VwYXJhdG9yICgnPGhyLz4nKV0KKwk8aDI+aXRlcmF0aW9uIFtpL108L2gyPgorCTxiPmRhdGU8L2I+OiBbaXRlcmF0aW9uLmRpc2NvdmVyeURhdGUvXTxici8+CisJPGI+c2F2ZSB0aW1lPC9iPjogW3RpbWVXaXRoVW5pdCgwLjAgKyBpdGVyYXRpb24uc2F2ZVRpbWVJblNlY29uZHMpL108YnIvPgorCTxiPmRpc2NvdmVyeSB0aW1lPC9iPjogW3RpbWVXaXRoVW5pdCgwLjAgKyBpdGVyYXRpb24uZGlzY292ZXJ5VGltZUluU2Vjb25kcykvXTxici8+CisJPGI+bWF4IHVzZWQgbWVtb3J5PC9iPjogW3NpemVXaXRoVW5pdCgwLjAgKyBpdGVyYXRpb24ubWF4VXNlZE1lbW9yeUluQnl0ZXMpL108YnIvPgorCTxpbWcgc3JjPSJbZGlzY292ZXJ5LmRpc2NvdmVyZXJJZC9dL21lbW9yeUJ5VGltZS1baW5kZXhPZihkaXNjb3ZlcnkuaXRlcmF0aW9ucy0+YXNTZXF1ZW5jZSgpLGl0ZXJhdGlvbikvXS5wbmciLz4KKwkJW2lmIChub3QgaXRlcmF0aW9uLmRpc2NvdmVyeUVycm9ycy5vY2xJc1VuZGVmaW5lZCgpKV0KKwkJPGZvbnQgY29sb3I9InJlZCI+CisJCTxoMz5kaXNjb3ZlcnkgZXJyb3JzPC9oMz4KKwkJCVtmb3IgKGVycm9yIDogU3RyaW5nIHwgaXRlcmF0aW9uLmRpc2NvdmVyeUVycm9ycykgXQorCQkJW2Vycm9yL108YnIvPgorCQkJPC9mb250PgorCQkJWy9mb3JdCisJCVsvaWZdCisJWy9mb3JdCiA8aHIvPgogPGZvbnQgc2l6ZT0iLTEiPjxpPlRoaXMgcmVwb3J0IGhhcyBiZWVuIGdlbmVyYXRlZCB3aXRoIDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby8iPk1vRGlzY288L2E+IEphdmEgRGlzY292ZXJlciBCZW5jaG1hcmsuPC9pPjwvZm9udD4KIDwvYm9keT48L2h0bWw+CiBbL2ZpbGVdCi1bL2Zvcl0KK1svdGVtcGxhdGVdCiAKLQotW2ZvciAocHJvamVjdCA6IFJlc291cmNlIHwgYi5wcm9qZWN0cykgXQorW3RlbXBsYXRlIHByaXZhdGUgcHJvamVjdFJlcG9ydChwcm9qZWN0IDogUHJvamVjdCwgYiA6IEJlbmNobWFyayldCiBbZmlsZSAoJ1JlcG9ydC8nK3Byb2plY3QubmFtZSsnLmh0bWwnLCBmYWxzZSwgJ1VURi04JyldCi0JPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKLSJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KLTxodG1sPgotPGhlYWQ+Ci0KLTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Ci0gIC5ncmFwaCB7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogI0UwRTBFMDsKLSAgICBib3JkZXI6IHNvbGlkIDFweCBibGFjazsKLSAgfQotICAuZ3JhcGggdGQgewotICAgIGZvbnQtZmFtaWx5OiB2ZXJkYW5hLCBhcmlhbCwgc2FucyBzZXJpZjsKLSAgfQotICAuYmFyIHsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKLSAgICB0ZXh0LWFsaWduOiByaWdodDsKLSAgICBib3JkZXI6IHNvbGlkIDFweCBibGFjazsKLSAgICB3aWR0aDogNDAwcHg7Ci0gIH0KLSAgLmJhciBkaXYgeyAKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjQTBBMEZGOwotICAgIHRleHQtYWxpZ246IHJpZ2h0OwotICAgIGZsb2F0OiBsZWZ0OwotICAgIGhlaWdodDogMjBweDsKLSAgfQotICBib2R5IHsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKLSAgfQotICB0ZCB7Ci0gICAgdGV4dC1hbGlnbjogY2VudGVyOwotICB9Ci08L3N0eWxlPgotCi08dGl0bGU+W3Byb2plY3Qub2NsQXNUeXBlKFByb2plY3QpLm5hbWUvXTwvdGl0bGU+Ci08L2hlYWQ+Ci0KLTxib2R5PgotCi08aDE+W3Byb2plY3Qub2NsQXNUeXBlKFByb2plY3QpLm5hbWUvXTwvaDE+CitbaGVhZChwcm9qZWN0Lm9jbEFzVHlwZShQcm9qZWN0KS5uYW1lKS9dCiAKIDxoMj5Qcm9qZWN0IGluZm9ybWF0aW9uPC9oMj4KIDxiPlByb2plY3QgbmFtZTwvYj46IDxhIGhyZWY9IlJlcG9ydC9bcHJvamVjdC5vY2xBc1R5cGUoUHJvamVjdCkubmFtZS9dLmh0bWwiPltwcm9qZWN0Lm9jbEFzVHlwZShQcm9qZWN0KS5uYW1lL108L2E+PGJyLz4KQEAgLTM0NiwxMSArMjA1LDggQEAKIDxiPmF2ZXJhZ2UgbnVtYmVyIG9mIGxpbmVzIHBlciBmaWxlczwvYj46IFtwcm9qZWN0Lm9jbEFzVHlwZShQcm9qZWN0KS5hdmVyYWdlTGluZXNQZXJGaWxlL108YnIvPgogPGI+YXZlcmFnZSBmaWxlIHNpemUgaW4gYnl0ZXM8L2I+OiBbc2l6ZVdpdGhVbml0KDAuMCArIHByb2plY3Qub2NsQXNUeXBlKFByb2plY3QpLmF2ZXJhZ2VGaWxlU2l6ZUluQnl0ZXMpL108YnIvPgogPGI+dG90YWwgc2l6ZSBpbiBieXRlczwvYj46IFtzaXplV2l0aFVuaXQoMC4wICsgcHJvamVjdC50b3RhbFNpemVJbkJ5dGVzKS9dPGJyLz4KLQogPGgyPkRpc2NvdmVyaWVzIG9uIHRoZSBwcm9qZWN0PC9oMj4KLQogPGgzPlJlc3VsdHMgT3ZlcnZpZXc8L2gzPgotCiAgIDx0YWJsZSBib3JkZXI9IjEiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCI+CiAgICAgPHRyPgogICAgICAgIDx0aD5Qcm9qZWN0PC90aD4KQEAgLTM2NCwxMiArMjIwLDExIEBACiAgICAgICAgPHRoPkF2ZXJhZ2UgbGluZXMgcGVyIGZpbGU8L3RoPgogICAgICAgIDx0aD5YTUkgc2l6ZTwvdGg+CiAgICAgIDwvdHI+Ci0KIFtmb3IgKGRpc2NvdmVyeSA6IERpc2NvdmVyeSB8IGIuZGlzY292ZXJpZXMpXQogCVtpZiAoZGlzY292ZXJ5LnByb2plY3Q9cHJvamVjdCldCiAgICAgICAgCSAgPHRyPgogICAgICAgICAgICAgPHRkPjxhIGhyZWY9IltkaXNjb3ZlcnkucHJvamVjdC5uYW1lL10uaHRtbCI+W2Rpc2NvdmVyeS5wcm9qZWN0Lm5hbWUvXTwvYT48L3RkPgotCQkJPHRkPjxhIGhyZWY9IltkaXNjb3ZlcnkuZGlzY292ZXJlcklkK2Rpc2NvdmVyeS5wcm9qZWN0Lm5hbWUvXS5odG1sIj5bZGlzY292ZXJ5LmRpc2NvdmVyZXJJZC9dPC9hPjwvdGQ+CisJCQk8dGQ+PGEgaHJlZj0iW2Rpc2NvdmVyeS5wcm9qZWN0Lm5hbWUrJy8nK2Rpc2NvdmVyeS5kaXNjb3ZlcmVySWQvXS5odG1sIj5bZGlzY292ZXJ5LmRpc2NvdmVyZXJJZC9dPC9hPjwvdGQ+CiAgICAgICAgICAgICA8dGQ+W3RpbWVXaXRoVW5pdCgwLjAgKyBkaXNjb3ZlcnkuZGlzY292ZXJ5VGltZUF2ZXJhZ2VJblNlY29uZHMpL10gKCZzaWdtYTsgPSBbdGltZVdpdGhVbml0KDAuMCArIGRpc2NvdmVyeS5leGVjdXRpb25UaW1lU3RhbmRhcmREZXZpYXRpb24pL11zKTwvdGQ+CiAgICAgICAgICAgICA8dGQ+W3RpbWVXaXRoVW5pdCgwLjAgKyBkaXNjb3Zlcnkuc2F2ZVRpbWVBdmVyYWdlSW5TZWNvbmRzKS9dICgmc2lnbWE7ID0gW3RpbWVXaXRoVW5pdCgwLjAgKyBkaXNjb3Zlcnkuc2F2ZVRpbWVTdGFuZGFyZERldmlhdGlvbikvXXMpPC90ZD4KICAgICAgICAgICAgIDx0ZD5bZGlzY292ZXJ5Lm51bWJlck9mTW9kZWxFbGVtZW50cy9dPC90ZD4KQEAgLTM4Miw5ICsyMzcsNyBAQAogCVsvaWZdCiBbL2Zvcl0KICAgPC90YWJsZT4KLQogPGgzPkRldGFpbGVkIEluZm9ybWF0aW9uPC9oMz4KLQogW2ZvciAoZGlzY292ZXJ5IDogRGlzY292ZXJ5IHwgYi5kaXNjb3ZlcmllcyldCiAJW2lmIChkaXNjb3ZlcnkucHJvamVjdD1wcm9qZWN0KV0KIAkJW2lmIChkaXNjb3ZlcnkuaXRlcmF0aW9ucy0+c2l6ZSgpID4gMSldCkBAIC00MDAsOCArMjUzLDggQEAKIAogCQkJW2ZvciAoZGlzY292ZXJ5SXRlcmF0aW9uIDogRGlzY292ZXJ5SXRlcmF0aW9uIHwgZGlzY292ZXJ5Lml0ZXJhdGlvbnMpXQogCQkJPHRyPgotICAgICAJCQkgPHRkPltpL10vW2Rpc2NvdmVyeS5pdGVyYXRpb25zLT5zaXplKCkvXTwvdGQ+PHRkIGNsYXNzPSJiYXIiPjxkaXYgc3R5bGU9IndpZHRoOiBbZGlzY292ZXJ5SXRlcmF0aW9uLmRpc2NvdmVyeVRpbWVJblNlY29uZHMgLyBtYXhFeGVjdXRpb25UaW1lICogMTAwLjAvXSUiPjwvZGl2PjwvdGQ+PHRkPlt0aW1lV2l0aFVuaXQoMC4wICsgZGlzY292ZXJ5SXRlcmF0aW9uLmRpc2NvdmVyeVRpbWVJblNlY29uZHMpL108L3RkPgotICAgIAkJPC90cj4KKwkJCQk8dGQ+W2kvXS9bZGlzY292ZXJ5Lml0ZXJhdGlvbnMtPnNpemUoKS9dPC90ZD48dGQgY2xhc3M9ImJhciI+PGRpdiBzdHlsZT0id2lkdGg6IFtkaXNjb3ZlcnlJdGVyYXRpb24uZGlzY292ZXJ5VGltZUluU2Vjb25kcyAvIG1heEV4ZWN1dGlvblRpbWUgKiAxMDAuMC9dJSI+PC9kaXY+PC90ZD48dGQ+W3RpbWVXaXRoVW5pdCgwLjAgKyBkaXNjb3ZlcnlJdGVyYXRpb24uZGlzY292ZXJ5VGltZUluU2Vjb25kcykvXTwvdGQ+CisJCQk8L3RyPgogCQkJWy9mb3JdCiAJCQk8L3RhYmxlPgogCkBAIC00MDksMzMgKzI2MiwyOCBAQAogCQlbL2lmXQogCVsvaWZdCiBbL2Zvcl0KLQotCiBbZm9yIChkaXNjb3ZlcnkgOiBEaXNjb3ZlcnkgfCBiLmRpc2NvdmVyaWVzKV0KIAlbaWYgKGRpc2NvdmVyeS5wcm9qZWN0PXByb2plY3QpXQogCQlbaWYgKGRpc2NvdmVyeS5pdGVyYXRpb25zLT5zaXplKCkgPiAxKV0KIAkJPGg0PlNhdmUgdGltZXMgcGVyIGl0ZXJhdGlvbjwvaDQ+Ci0KIAkJPGg1PjxhIGhyZWY9IltkaXNjb3ZlcnkucHJvamVjdC5uYW1lL10uaHRtbCI+W2Rpc2NvdmVyeS5wcm9qZWN0Lm5hbWUvXTwvYT4gd2l0aCA8YSBocmVmPSJbZGlzY292ZXJ5LmRpc2NvdmVyZXJJZCtkaXNjb3ZlcnkucHJvamVjdC5uYW1lL10uaHRtbCI+W2Rpc2NvdmVyeS5kaXNjb3ZlcmVySWQvXTwvYT48L2g1PgogCQlbbGV0IG1heFNhdmVUaW1lIDogUmVhbCA9IG1heFNhdmVUaW1lKGRpc2NvdmVyeS5pdGVyYXRpb25zKV0KLQogCQk8dGFibGUgd2lkdGg9IjYwMCIgY2xhc3M9ImdyYXBoIiBjZWxsc3BhY2luZz0iNiIgY2VsbHBhZGRpbmc9IjAiPgotICAJCTx0cj4KLSAgICAJCTx0aD5pdGVyYXRpb248L3RoPjx0aD5yZWxhdGl2ZSBzYXZlIHRpbWU8L3RoPjx0aD50aW1lKHMpPC90aD4KLSAgCQk8L3RyPgotCisJCTx0cj4KKwkJCTx0aD5pdGVyYXRpb248L3RoPjx0aD5yZWxhdGl2ZSBzYXZlIHRpbWU8L3RoPjx0aD50aW1lKHMpPC90aD4KKwkJPC90cj4KIAkJW2ZvciAoZGlzY292ZXJ5SXRlcmF0aW9uIDogRGlzY292ZXJ5SXRlcmF0aW9uIHwgZGlzY292ZXJ5Lml0ZXJhdGlvbnMpXQotICAgIAkJPHRyPgotICAgICAgCQkJPHRkPltpL10vW2Rpc2NvdmVyeS5pdGVyYXRpb25zLT5zaXplKCkvXTwvdGQ+PHRkIGNsYXNzPSJiYXIiPjxkaXYgc3R5bGU9IndpZHRoOiBbZGlzY292ZXJ5SXRlcmF0aW9uLnNhdmVUaW1lSW5TZWNvbmRzIC8gbWF4U2F2ZVRpbWUgKiAxMDAuMC9dJSI+PC9kaXY+PC90ZD48dGQ+W3RpbWVXaXRoVW5pdCgwLjAgKyBkaXNjb3ZlcnlJdGVyYXRpb24uc2F2ZVRpbWVJblNlY29uZHMpL108L3RkPgotICAgIAkJPC90cj4KKwkJPHRyPgorCQkJPHRkPltpL10vW2Rpc2NvdmVyeS5pdGVyYXRpb25zLT5zaXplKCkvXTwvdGQ+CisJCQk8dGQgY2xhc3M9ImJhciI+PGRpdiBzdHlsZT0id2lkdGg6IFtkaXNjb3ZlcnlJdGVyYXRpb24uc2F2ZVRpbWVJblNlY29uZHMgLyBtYXhTYXZlVGltZSAqIDEwMC4wL10lIj48L2Rpdj48L3RkPgorCQkJPHRkPlt0aW1lV2l0aFVuaXQoMC4wICsgZGlzY292ZXJ5SXRlcmF0aW9uLnNhdmVUaW1lSW5TZWNvbmRzKS9dPC90ZD4KKwkJPC90cj4KIAkJWy9mb3JdCiAJCTwvdGFibGU+Ci0KIAkJWy9sZXRdCiAJCVsvaWZdCiAJWy9pZl0KIFsvZm9yXQotCiBbZm9yIChkaXNjb3ZlcnkgOiBEaXNjb3ZlcnkgfCBiLmRpc2NvdmVyaWVzKV0KIAlbaWYgKGRpc2NvdmVyeS5wcm9qZWN0PXByb2plY3QpXQogCQlbZm9yIChpdGVyYXRpb24gOiBEaXNjb3ZlcnlJdGVyYXRpb24gfCBkaXNjb3ZlcnkuaXRlcmF0aW9ucyldCkBAIC00NTAsMTIgKzI5OCw3NSBAQAogCQlbL2Zvcl0KIAlbL2lmXQogWy9mb3JdCi0KIDxwLz4KIDxoci8+CiA8Zm9udCBzaXplPSItMSI+PGk+VGhpcyByZXBvcnQgaGFzIGJlZW4gZ2VuZXJhdGVkIHdpdGggPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvLyI+TW9EaXNjbzwvYT4gSmF2YSBEaXNjb3ZlcmVyIEJlbmNobWFyay48L2k+PC9mb250PgogPC9ib2R5PjwvaHRtbD4KIFsvZmlsZV0KLVsvZm9yXQorWy90ZW1wbGF0ZV0KIAorW3RlbXBsYXRlIHByaXZhdGUgZGlzY292ZXJlclJlcG9ydChkaXNjb3ZlcnkgOiBEaXNjb3ZlcnkpXQorW2ZpbGUgKCdSZXBvcnQvJytkaXNjb3ZlcnkuZGlzY292ZXJlcklkKycuaHRtbCcsIGZhbHNlLCAnVVRGLTgnKV0KKwk8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIgorImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWw+Cis8aGVhZD4KK1tzdHlsZSgpL10KKzx0aXRsZT5bZGlzY292ZXJ5Lm5hbWUvXTwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5bZGlzY292ZXJ5Lm5hbWUvXTwvaDE+Cis8aDI+R2VuZXJhbCBkaXNjb3ZlcnkgaW5mb3JtYXRpb248L2gyPgorPGI+bmFtZTwvYj46IFtkaXNjb3ZlcnkubmFtZS9dPGJyLz4KKzxiPmRpc2NvdmVyZXI8L2I+OiBbZGlzY292ZXJ5LmRpc2NvdmVyZXJJZC9dIChbZGlzY292ZXJ5LmRpc2NvdmVyZXJDbGFzc05hbWUvXSk8YnIvPgorPGltZyBzcmM9ImF2Z1RpbWVCeVNpemVfW2Rpc2NvdmVyeS5kaXNjb3ZlcmVySWQvXS5wbmciLz4KK1tpZiAoZGlzY292ZXJ5Lml0ZXJhdGlvbnMtPmZpcnN0KCkubWF4VXNlZE1lbW9yeUluQnl0ZXM8PjApXQorPGltZyBzcmM9ImF2Z01lbW9yeUJ5UHJvamVjdFNpemVfW2Rpc2NvdmVyeS5kaXNjb3ZlcmVySWQvXS5wbmciLz4KK1svaWZdCis8aHIvPgorPGZvbnQgc2l6ZT0iLTEiPjxpPlRoaXMgcmVwb3J0IGhhcyBiZWVuIGdlbmVyYXRlZCB3aXRoIDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby8iPk1vRGlzY288L2E+IEphdmEgRGlzY292ZXJlciBCZW5jaG1hcmsuPC9pPjwvZm9udD4KKzwvYm9keT48L2h0bWw+CitbL2ZpbGVdCitbL3RlbXBsYXRlXQorCitbdGVtcGxhdGUgcHJpdmF0ZSBzdHlsZShhbnkgOiBPY2xBbnkpXQorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgLmdyYXBoIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTBFMEUwOworICAgIGJvcmRlcjogc29saWQgMXB4IGJsYWNrOworICB9CisgIC5ncmFwaCB0ZCB7CisgICAgZm9udC1mYW1pbHk6IHZlcmRhbmEsIGFyaWFsLCBzYW5zIHNlcmlmOworICB9CisgIC5iYXIgeworICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOworICAgIHRleHQtYWxpZ246IHJpZ2h0OworICAgIGJvcmRlcjogc29saWQgMXB4IGJsYWNrOworICAgIHdpZHRoOiA0MDBweDsKKyAgfQorICAuYmFyIGRpdiB7IAorICAgIGJhY2tncm91bmQtY29sb3I6ICNBMEEwRkY7CisgICAgdGV4dC1hbGlnbjogcmlnaHQ7CisgICAgZmxvYXQ6IGxlZnQ7CisgICAgaGVpZ2h0OiAyMHB4OworICB9CisgIGJvZHkgeworICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOworICB9CisgIHRkIHsKKyAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CisgIH0KKzwvc3R5bGU+CitbL3RlbXBsYXRlXQorCitbdGVtcGxhdGUgcHJpdmF0ZSBoZWFkKHRpdGxlIDogU3RyaW5nKV0KKwk8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIgorImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWw+Cis8aGVhZD4KK1tzdHlsZSgpL10KKzx0aXRsZT5bdGl0bGUvXTwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5bdGl0bGUvXTwvaDE+CiBbL3RlbXBsYXRlXQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9jb3JlL2ludGVybmFsL3JlcG9ydGluZy9pbnRlcm5hbC9CZW5jaG1hcmtDaGFydEdlbmVyYXRpb24uamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvY29yZS9pbnRlcm5hbC9yZXBvcnRpbmcvaW50ZXJuYWwvQmVuY2htYXJrQ2hhcnRHZW5lcmF0aW9uLmphdmEKaW5kZXggNTQzMDcxYy4uMmJkNzM2MyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9jb3JlL2ludGVybmFsL3JlcG9ydGluZy9pbnRlcm5hbC9CZW5jaG1hcmtDaGFydEdlbmVyYXRpb24uamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL2NvcmUvaW50ZXJuYWwvcmVwb3J0aW5nL2ludGVybmFsL0JlbmNobWFya0NoYXJ0R2VuZXJhdGlvbi5qYXZhCkBAIC0xLDExICsxLDEzIEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLSAqIENvcHlyaWdodCAoYykgMjAxMiBJTlJJQS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUNCi0gKiBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UNCi0gKiBQdWJsaWMgTGljZW5zZSB2MS4wIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQorICogQ29weXJpZ2h0IChjKSAyMDEyLCAyMDE1IElOUklBIGFuZCBNaWEtU29mdHdhcmUuDQorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZQ0KKyAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMCB3aGljaCANCisgKiBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KICAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQogICogDQotICogQ29udHJpYnV0b3JzOiBHdWlsbGF1bWUgRG91eCAtIElOUklBIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uDQotICogDQorICogQ29udHJpYnV0b3JzOg0KKyAqICAgICBHdWlsbGF1bWUgRG91eCAtIElOUklBIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uDQorICogICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODM0MDAgLSBbQmVuY2htYXJrXSBUaGUgaW5wdXQgc2l6ZSBzaG91bGQgYmUgY29tcHV0YWJsZSBieSB0aGUgZGlzY292ZXJlcg0KICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQogDQogcGFja2FnZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS5pbnRlcm5hbC5yZXBvcnRpbmcuaW50ZXJuYWw7DQpAQCAtMTQsMTEgKzE2LDEzIEBACiBpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsNCiBpbXBvcnQgamF2YS51dGlsLkxpc3Q7DQogDQoraW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlLmludGVybmFsLk1lc3NhZ2VzOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5CZW5jaG1hcms7DQogaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLkRpc2NvdmVyeTsNCiBpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuRGlzY292ZXJ5SXRlcmF0aW9uOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5FdmVudDsNCiBpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuTWVtb3J5TWVhc3VyZW1lbnQ7DQoraW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLlByb2plY3Q7DQogaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28udXRpbHMuY2hhcnQuYmlydC5jb3JlLmludGVybmFsLmV4cG9ydGVkLkJpcnRHcmFwaEhlbHBlcjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby51dGlscy5jaGFydC5tZXRhbW9kZWwuaW50ZXJuYWwuY2hhcnQuQXhlOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLnV0aWxzLmNoYXJ0Lm1ldGFtb2RlbC5pbnRlcm5hbC5jaGFydC5DaGFydDsNCkBAIC0yNiw2ICszMCw3IEBACiBpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby51dGlscy5jaGFydC5tZXRhbW9kZWwuaW50ZXJuYWwuY2hhcnQuQ29vcmRpbmF0ZTsNCiBpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby51dGlscy5jaGFydC5tZXRhbW9kZWwuaW50ZXJuYWwuY2hhcnQuUG9pbnQ7DQogaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28udXRpbHMuY2hhcnQubWV0YW1vZGVsLmludGVybmFsLmNoYXJ0LlNlcmllOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5vc2dpLnV0aWwuTkxTOw0KIA0KIC8qKg0KICAqIENsYXNzIHByZXBhcmluZyBhbmQgbGF1bmNoaW5nIHRoZSBjaGFydCBnZW5lcmF0aW9uIGluIEJpcnQNCkBAIC0zNCwxMCArMzksMTAgQEAKICAqLw0KIHB1YmxpYyBjbGFzcyBCZW5jaG1hcmtDaGFydEdlbmVyYXRpb24gew0KIA0KLQlwcml2YXRlIEZpbGUgbG9jYXRpb247DQotCXByaXZhdGUgYm9vbGVhbiBtZWFzdXJlTWVtb3J5Ow0KLQlwcml2YXRlIENoYXJ0RmFjdG9yeSBmYWN0b3J5Ow0KLQlwcml2YXRlIEJpcnRHcmFwaEhlbHBlciBoZWxwZXI7DQorCXByaXZhdGUgZmluYWwgRmlsZSBsb2NhdGlvbjsNCisJcHJpdmF0ZSBmaW5hbCBib29sZWFuIG1lYXN1cmVNZW1vcnk7DQorCXByaXZhdGUgZmluYWwgQ2hhcnRGYWN0b3J5IGZhY3Rvcnk7DQorCXByaXZhdGUgZmluYWwgQmlydEdyYXBoSGVscGVyIGhlbHBlcjsNCiANCiAJcHVibGljIHN0YXRpYyBmaW5hbCBkb3VibGUgTUVHQUJZVEUgPSAxMDI0LjAgKiAxMDI0LjA7DQogDQpAQCAtNjEsNyArNjYsNyBAQAogDQogCXB1YmxpYyB2b2lkIGNyZWF0ZURpc2NvdmVyeVRpbWVBc1Byb2plY3RTaXplRnVsbChmaW5hbCBCZW5jaG1hcmsgYikgdGhyb3dzIEV4Y2VwdGlvbiB7DQogCQljcmVhdGVEaXNjb3ZlcnlUaW1lQXNQcm9qZWN0U2l6ZU92ZXJhbGxBdmVyYWdlZChiKTsNCi0JCUxpc3Q8U3RyaW5nPiB0ZXN0ZWREaXNjb3ZlcmVycyA9IG5ldyBBcnJheUxpc3Q8U3RyaW5nPigpOw0KKwkJZmluYWwgTGlzdDxTdHJpbmc+IHRlc3RlZERpc2NvdmVyZXJzID0gbmV3IEFycmF5TGlzdDxTdHJpbmc+KCk7DQogCQlmb3IgKERpc2NvdmVyeSBkIDogYi5nZXREaXNjb3ZlcmllcygpKSB7DQogCQkJaWYgKCF0ZXN0ZWREaXNjb3ZlcmVycy5jb250YWlucyhkLmdldERpc2NvdmVyZXJJZCgpKSkgew0KIAkJCQljcmVhdGVEaXNjb3ZlcnlUaW1lQXNQcm9qZWN0U2l6ZUF2ZXJhZ2VkKGIsIGQpOw0KQEAgLTcxLDQ1ICs3Niw1NCBAQAogCX0NCiANCiAJcHJpdmF0ZSB2b2lkIGNyZWF0ZURpc2NvdmVyeVRpbWVBc1Byb2plY3RTaXplQXZlcmFnZWQoZmluYWwgQmVuY2htYXJrIGIsIGZpbmFsIERpc2NvdmVyeSBkKSB0aHJvd3MgRXhjZXB0aW9uIHsNCi0JCUNoYXJ0IGNoYXJ0ID0gdGhpcy5mYWN0b3J5LmNyZWF0ZUNoYXJ0KCk7DQotCQljaGFydC5zZXRUaXRsZSgiRGlzY292ZXJ5IHRpbWUgYnkgcHJvamVjdCBzaXplIGZvciIgKyBkLmdldERpc2NvdmVyZXJJZCgpKTsNCi0JCVNlcmllIHMgPSB0aGlzLmZhY3RvcnkuY3JlYXRlU2VyaWUoKTsNCi0JCXMuc2V0TmFtZShkLmdldERpc2NvdmVyZXJJZCgpKTsNCi0JCWNoYXJ0LmdldFNlcmllcygpLmFkZChzKTsNCi0JCUF4ZSBzaXplID0gdGhpcy5mYWN0b3J5LmNyZWF0ZUF4ZSgpOw0KLQkJQXhlIHRpbWUgPSB0aGlzLmZhY3RvcnkuY3JlYXRlQXhlKCk7DQotCQlzaXplLnNldFVuaXQoIm1lZ2FieXRlcyIpOw0KLQkJc2l6ZS5zZXRMZWdlbmQoInByb2plY3Qgc2l6ZSIpOw0KLQkJdGltZS5zZXRVbml0KCJzZWNvbmRlcyIpOw0KLQkJdGltZS5zZXRMZWdlbmQoIkRpc2NvdmVyeSBUaW1lIik7DQorCQlmaW5hbCBDaGFydCBjaGFydCA9IHRoaXMuZmFjdG9yeS5jcmVhdGVDaGFydCgpOw0KKwkJZmluYWwgU3RyaW5nIHRpdGxlID0gTkxTLmJpbmQoDQorCQkJCU1lc3NhZ2VzLkJlbmNobWFya0NoYXJ0R2VuZXJhdGlvbl9BdmdUaW1lQnlQcmpTaXplRm9yLA0KKwkJCQlkLmdldERpc2NvdmVyZXJJZCgpKTsNCisJCWNoYXJ0LnNldFRpdGxlKHRpdGxlKTsNCisJCWZpbmFsIFNlcmllIHNlcmllcyA9IHRoaXMuZmFjdG9yeS5jcmVhdGVTZXJpZSgpOw0KKwkJc2VyaWVzLnNldE5hbWUoZC5nZXREaXNjb3ZlcmVySWQoKSk7DQorCQljaGFydC5nZXRTZXJpZXMoKS5hZGQoc2VyaWVzKTsNCisJCWZpbmFsIEF4ZSBzaXplID0gdGhpcy5mYWN0b3J5LmNyZWF0ZUF4ZSgpOw0KKwkJZmluYWwgQXhlIHRpbWUgPSB0aGlzLmZhY3RvcnkuY3JlYXRlQXhlKCk7DQorCQlzaXplLnNldExlZ2VuZChNZXNzYWdlcy5CZW5jaG1hcmtDaGFydEdlbmVyYXRpb25fUHJqU2l6ZSk7DQorCQl0aW1lLnNldFVuaXQoInNlY29uZGVzIik7IC8vJE5PTi1OTFMtMSQNCisJCXRpbWUuc2V0TGVnZW5kKE1lc3NhZ2VzLkJlbmNobWFya0NoYXJ0R2VuZXJhdGlvbl9EaXNjb1RpbWUpOw0KIAkJY2hhcnQuZ2V0QXhlcygpLmFkZChzaXplKTsNCiAJCWNoYXJ0LmdldEF4ZXMoKS5hZGQodGltZSk7DQogCQlmb3IgKERpc2NvdmVyeSBkdGVtcCA6IGIuZ2V0RGlzY292ZXJpZXMoKSkgew0KIAkJCWlmIChkdGVtcC5nZXREaXNjb3ZlcmVySWQoKS5lcXVhbHMoZC5nZXREaXNjb3ZlcmVySWQoKSkpIHsNCi0JCQkJUG9pbnQgcCA9IHRoaXMuZmFjdG9yeS5jcmVhdGVQb2ludCgpOw0KLQkJCQlwLnNldFNlcmllKHMpOw0KLQkJCQlDb29yZGluYXRlIHQgPSB0aGlzLmZhY3RvcnkuY3JlYXRlQ29vcmRpbmF0ZSgpOw0KKwkJCQlmaW5hbCBQb2ludCBwb2ludCA9IHRoaXMuZmFjdG9yeS5jcmVhdGVQb2ludCgpOw0KKwkJCQlwb2ludC5zZXRTZXJpZShzZXJpZXMpOw0KKwkJCQlmaW5hbCBDb29yZGluYXRlIHQgPSB0aGlzLmZhY3RvcnkuY3JlYXRlQ29vcmRpbmF0ZSgpOw0KIAkJCQl0LnNldEF4ZShzaXplKTsNCi0JCQkJdC5zZXRWYWx1ZShkdGVtcC5nZXRQcm9qZWN0KCkuZ2V0VG90YWxTaXplSW5CeXRlcygpIC8gTUVHQUJZVEUpOw0KLQkJCQlDb29yZGluYXRlIG0gPSB0aGlzLmZhY3RvcnkuY3JlYXRlQ29vcmRpbmF0ZSgpOw0KKwkJCQlmaW5hbCBQcm9qZWN0IHByb2plY3QgPSAoUHJvamVjdCkgZHRlbXAuZ2V0UHJvamVjdCgpOw0KKwkJCQlzaXplLnNldFVuaXQocHJvamVjdC5nZXRJbnB1dFNpemVVbml0KCkpOw0KKwkJCQl0LnNldFZhbHVlKHByb2plY3QuZ2V0SW5wdXRTaXplKCkpOw0KKwkJCQlmaW5hbCBDb29yZGluYXRlIG0gPSB0aGlzLmZhY3RvcnkuY3JlYXRlQ29vcmRpbmF0ZSgpOw0KIAkJCQltLnNldEF4ZSh0aW1lKTsNCiAJCQkJbS5zZXRWYWx1ZShkdGVtcC5nZXREaXNjb3ZlcnlUaW1lQXZlcmFnZUluU2Vjb25kcygpKTsNCi0JCQkJcC5nZXRDb29yZGluYXRlcygpLmFkZCh0KTsNCi0JCQkJcC5nZXRDb29yZGluYXRlcygpLmFkZChtKTsNCisJCQkJcG9pbnQuZ2V0Q29vcmRpbmF0ZXMoKS5hZGQodCk7DQorCQkJCXBvaW50LmdldENvb3JkaW5hdGVzKCkuYWRkKG0pOw0KIAkJCX0NCiAJCX0NCi0JCXRoaXMuaGVscGVyLmNyZWF0ZUJpcnRHcmFwaChjaGFydCwgdGhpcy5sb2NhdGlvbiwgIkRpc2NvdmVyeVRpbWVCeVByb2plY3RTaXplIiArIGQuZ2V0RGlzY292ZXJlcklkKCkpOw0KKwkJZmluYWwgU3RyaW5nIGZpbGVOYW1lID0gU3RyaW5nLmZvcm1hdCgiYXZnVGltZUJ5U2l6ZV8lcyIsIC8vJE5PTi1OTFMtMSQNCisJCQkJZC5nZXREaXNjb3ZlcmVySWQoKSk7DQorCQlmaW5hbCBGaWxlIHJlcG9ydERpciA9IG5ldyBGaWxlKHRoaXMubG9jYXRpb24sICJSZXBvcnQiKTsgLy8kTk9OLU5MUy0xJA0KKwkJaWYgKCFyZXBvcnREaXIuZXhpc3RzKCkpIHsNCisJCQlyZXBvcnREaXIubWtkaXJzKCk7DQorCQl9DQorCQl0aGlzLmhlbHBlci5jcmVhdGVCaXJ0R3JhcGgoY2hhcnQsIHJlcG9ydERpciwgZmlsZU5hbWUpOw0KIAl9DQogDQogCXByaXZhdGUgdm9pZCBjcmVhdGVEaXNjb3ZlcnlUaW1lQXNQcm9qZWN0U2l6ZU92ZXJhbGxBdmVyYWdlZChmaW5hbCBCZW5jaG1hcmsgYikgdGhyb3dzIEV4Y2VwdGlvbiB7DQogCQlDaGFydCBjaGFydCA9IHRoaXMuZmFjdG9yeS5jcmVhdGVDaGFydCgpOw0KLQkJY2hhcnQuc2V0VGl0bGUoIkRpc2NvdmVyeSB0aW1lIGJ5IHByb2plY3Qgc2l6ZSBvdmVyYWxsIik7DQorCQljaGFydC5zZXRUaXRsZShNZXNzYWdlcy5CZW5jaG1hcmtDaGFydEdlbmVyYXRpb25fRGlzY29UaW1lQnlQcmpTaXplT3ZlcmFsbCk7DQogCQlBeGUgc2l6ZSA9IHRoaXMuZmFjdG9yeS5jcmVhdGVBeGUoKTsNCiAJCUF4ZSB0aW1lID0gdGhpcy5mYWN0b3J5LmNyZWF0ZUF4ZSgpOw0KLQkJc2l6ZS5zZXRVbml0KCJtZWdhYnl0ZXMiKTsNCi0JCXNpemUuc2V0TGVnZW5kKCJwcm9qZWN0IHNpemUiKTsNCi0JCXRpbWUuc2V0VW5pdCgic2Vjb25kZXMiKTsNCi0JCXRpbWUuc2V0TGVnZW5kKCJEaXNjb3ZlcnkgVGltZSIpOw0KKwkJc2l6ZS5zZXRMZWdlbmQoTWVzc2FnZXMuQmVuY2htYXJrQ2hhcnRHZW5lcmF0aW9uX1ByalNpemUpOw0KKwkJdGltZS5zZXRVbml0KCJzZWNvbmRlcyIpOyAvLyROT04tTkxTLTEkDQorCQl0aW1lLnNldExlZ2VuZChNZXNzYWdlcy5CZW5jaG1hcmtDaGFydEdlbmVyYXRpb25fRGlzY29UaW1lKTsNCiAJCWNoYXJ0LmdldEF4ZXMoKS5hZGQoc2l6ZSk7DQogCQljaGFydC5nZXRBeGVzKCkuYWRkKHRpbWUpOw0KIAkJTGlzdDxTdHJpbmc+IHRlc3RlZERpc2NvdmVyZXJzID0gbmV3IEFycmF5TGlzdDxTdHJpbmc+KCk7DQpAQCAtMTI0LDcgKzEzOCw5IEBACiAJCQkJCQlwLnNldFNlcmllKHMpOw0KIAkJCQkJCUNvb3JkaW5hdGUgdCA9IHRoaXMuZmFjdG9yeS5jcmVhdGVDb29yZGluYXRlKCk7DQogCQkJCQkJdC5zZXRBeGUoc2l6ZSk7DQotCQkJCQkJdC5zZXRWYWx1ZShkdGVtcC5nZXRQcm9qZWN0KCkuZ2V0VG90YWxTaXplSW5CeXRlcygpIC8gTUVHQUJZVEUpOw0KKwkJCQkJCWZpbmFsIFByb2plY3QgcHJvamVjdCA9IChQcm9qZWN0KSBkdGVtcC5nZXRQcm9qZWN0KCk7DQorCQkJCQkJc2l6ZS5zZXRVbml0KHByb2plY3QuZ2V0SW5wdXRTaXplVW5pdCgpKTsNCisJCQkJCQl0LnNldFZhbHVlKHByb2plY3QuZ2V0SW5wdXRTaXplKCkpOw0KIAkJCQkJCUNvb3JkaW5hdGUgbSA9IHRoaXMuZmFjdG9yeS5jcmVhdGVDb29yZGluYXRlKCk7DQogCQkJCQkJbS5zZXRBeGUodGltZSk7DQogCQkJCQkJbS5zZXRWYWx1ZShkdGVtcC5nZXREaXNjb3ZlcnlUaW1lQXZlcmFnZUluU2Vjb25kcygpKTsNCkBAIC0xMzUsNyArMTUxLDggQEAKIAkJCQl0ZXN0ZWREaXNjb3ZlcmVycy5hZGQoZC5nZXREaXNjb3ZlcmVySWQoKSk7DQogCQkJfQ0KIAkJfQ0KLQkJdGhpcy5oZWxwZXIuY3JlYXRlQmlydEdyYXBoKGNoYXJ0LCB0aGlzLmxvY2F0aW9uLCAiRGlzY292ZXJ5VGltZUJ5UHJvamVjdFNpemVPdmVyYWxsIik7DQorCQl0aGlzLmhlbHBlci5jcmVhdGVCaXJ0R3JhcGgoY2hhcnQsIHRoaXMubG9jYXRpb24sDQorCQkJCSJEaXNjb3ZlcnlUaW1lQnlQcm9qZWN0U2l6ZU92ZXJhbGwiKTsgLy8kTk9OLU5MUy0xJA0KIAl9DQogDQogDQpAQCAtMTU1LDE2ICsxNzIsMTggQEAKIA0KIAlwcml2YXRlIHZvaWQgY3JlYXRlTWVtb3J5VXNlZEFzUHJvamVjdFNpemVBdmVyYWdlZChmaW5hbCBCZW5jaG1hcmsgYiwgZmluYWwgRGlzY292ZXJ5IGQpIHRocm93cyBFeGNlcHRpb24gew0KIAkJQ2hhcnQgY2hhcnQgPSB0aGlzLmZhY3RvcnkuY3JlYXRlQ2hhcnQoKTsNCi0JCWNoYXJ0LnNldFRpdGxlKCJNZW1vcnkgdXNlZCBieSBwcm9qZWN0IHNpemUgZm9yIiArIGQuZ2V0RGlzY292ZXJlcklkKCkpOw0KKwkJZmluYWwgU3RyaW5nIHRpdGxlID0gTkxTLmJpbmQoDQorCQkJCU1lc3NhZ2VzLkJlbmNobWFya0NoYXJ0R2VuZXJhdGlvbl9BdmdVc2VkTWVtQnlQcmpTaXplRm9yLA0KKwkJCQlkLmdldERpc2NvdmVyZXJJZCgpKTsNCisJCWNoYXJ0LnNldFRpdGxlKHRpdGxlKTsNCiAJCVNlcmllIHMgPSB0aGlzLmZhY3RvcnkuY3JlYXRlU2VyaWUoKTsNCiAJCXMuc2V0TmFtZShkLmdldERpc2NvdmVyZXJJZCgpKTsNCiAJCWNoYXJ0LmdldFNlcmllcygpLmFkZChzKTsNCiAJCUF4ZSBzaXplID0gdGhpcy5mYWN0b3J5LmNyZWF0ZUF4ZSgpOw0KIAkJQXhlIG1lbW9yeSA9IHRoaXMuZmFjdG9yeS5jcmVhdGVBeGUoKTsNCi0JCXNpemUuc2V0VW5pdCgibWVnYWJ5dGVzIik7DQotCQlzaXplLnNldExlZ2VuZCgicHJvamVjdCBzaXplIik7DQotCQltZW1vcnkuc2V0VW5pdCgibWVnYWJ5dGVzIik7DQotCQltZW1vcnkuc2V0TGVnZW5kKCJtZW1vcnkgdXNlZCIpOw0KKwkJc2l6ZS5zZXRMZWdlbmQoTWVzc2FnZXMuQmVuY2htYXJrQ2hhcnRHZW5lcmF0aW9uX1ByalNpemUpOw0KKwkJbWVtb3J5LnNldFVuaXQoIk1CIik7IC8vJE5PTi1OTFMtMSQNCisJCW1lbW9yeS5zZXRMZWdlbmQoTWVzc2FnZXMuQmVuY2htYXJrQ2hhcnRHZW5lcmF0aW9uX1VzZWRNZW0pOw0KIAkJY2hhcnQuZ2V0QXhlcygpLmFkZChzaXplKTsNCiAJCWNoYXJ0LmdldEF4ZXMoKS5hZGQobWVtb3J5KTsNCiAJCWZvciAoRGlzY292ZXJ5IGR0ZW1wIDogYi5nZXREaXNjb3ZlcmllcygpKSB7DQpAQCAtMTczLDcgKzE5Miw5IEBACiAJCQkJcC5zZXRTZXJpZShzKTsNCiAJCQkJQ29vcmRpbmF0ZSB0ID0gdGhpcy5mYWN0b3J5LmNyZWF0ZUNvb3JkaW5hdGUoKTsNCiAJCQkJdC5zZXRBeGUoc2l6ZSk7DQotCQkJCXQuc2V0VmFsdWUoZHRlbXAuZ2V0UHJvamVjdCgpLmdldFRvdGFsU2l6ZUluQnl0ZXMoKSAvIE1FR0FCWVRFKTsNCisJCQkJZmluYWwgUHJvamVjdCBwcm9qZWN0ID0gKFByb2plY3QpIGR0ZW1wLmdldFByb2plY3QoKTsNCisJCQkJc2l6ZS5zZXRVbml0KHByb2plY3QuZ2V0SW5wdXRTaXplVW5pdCgpKTsNCisJCQkJdC5zZXRWYWx1ZShwcm9qZWN0LmdldElucHV0U2l6ZSgpKTsNCiAJCQkJQ29vcmRpbmF0ZSBtID0gdGhpcy5mYWN0b3J5LmNyZWF0ZUNvb3JkaW5hdGUoKTsNCiAJCQkJbS5zZXRBeGUobWVtb3J5KTsNCiAJCQkJbS5zZXRWYWx1ZShkdGVtcC5nZXRJdGVyYXRpb25zKCkuZ2V0KDApLmdldE1heFVzZWRNZW1vcnlJbkJ5dGVzKCkgLyBNRUdBQllURSk7DQpAQCAtMTgxLDE4ICsyMDIsMjMgQEAKIAkJCQlwLmdldENvb3JkaW5hdGVzKCkuYWRkKG0pOw0KIAkJCX0NCiAJCX0NCi0JCXRoaXMuaGVscGVyLmNyZWF0ZUJpcnRHcmFwaChjaGFydCwgdGhpcy5sb2NhdGlvbiwgIm1lbW9yeUJ5UHJvamVjdFNpemUiICsgZC5nZXREaXNjb3ZlcmVySWQoKSk7DQorCQlmaW5hbCBTdHJpbmcgZmlsZU5hbWUgPSBTdHJpbmcuZm9ybWF0KCJhdmdNZW1vcnlCeVByb2plY3RTaXplXyVzIiwgLy8kTk9OLU5MUy0xJA0KKwkJCQlkLmdldERpc2NvdmVyZXJJZCgpKTsNCisJCWZpbmFsIEZpbGUgcmVwb3J0RGlyID0gbmV3IEZpbGUodGhpcy5sb2NhdGlvbiwgIlJlcG9ydCIpOyAvLyROT04tTkxTLTEkDQorCQlpZiAoIXJlcG9ydERpci5leGlzdHMoKSkgew0KKwkJCXJlcG9ydERpci5ta2RpcnMoKTsNCisJCX0NCisJCXRoaXMuaGVscGVyLmNyZWF0ZUJpcnRHcmFwaChjaGFydCwgcmVwb3J0RGlyLCBmaWxlTmFtZSk7DQogCX0NCiANCiAJcHJpdmF0ZSB2b2lkIGNyZWF0ZU1lbW9yeVVzZWRBc1Byb2plY3RTaXplT3ZlcmFsbEF2ZXJhZ2VkKGZpbmFsIEJlbmNobWFyayBiKSB0aHJvd3MgRXhjZXB0aW9uIHsNCiAJCUNoYXJ0IGNoYXJ0ID0gdGhpcy5mYWN0b3J5LmNyZWF0ZUNoYXJ0KCk7DQotCQljaGFydC5zZXRUaXRsZSgiTWVtb3J5IHVzZWQgYnkgcHJvamVjdCBzaXplIG92ZXJhbGwiKTsNCisJCWNoYXJ0LnNldFRpdGxlKE1lc3NhZ2VzLkJlbmNobWFya0NoYXJ0R2VuZXJhdGlvbl9Vc2VkTWVtQnlQcmpTaXplKTsNCiAJCUF4ZSBzaXplID0gdGhpcy5mYWN0b3J5LmNyZWF0ZUF4ZSgpOw0KIAkJQXhlIG1lbW9yeSA9IHRoaXMuZmFjdG9yeS5jcmVhdGVBeGUoKTsNCi0JCXNpemUuc2V0VW5pdCgibWVnYWJ5dGVzIik7DQotCQlzaXplLnNldExlZ2VuZCgicHJvamVjdCBzaXplIik7DQotCQltZW1vcnkuc2V0VW5pdCgibWVnYWJ5dGVzIik7DQotCQltZW1vcnkuc2V0TGVnZW5kKCJtZW1vcnkgdXNlZCIpOw0KKwkJc2l6ZS5zZXRMZWdlbmQoTWVzc2FnZXMuQmVuY2htYXJrQ2hhcnRHZW5lcmF0aW9uX1ByalNpemUpOw0KKwkJbWVtb3J5LnNldFVuaXQoIm1lZ2FieXRlcyIpOyAvLyROT04tTkxTLTEkDQorCQltZW1vcnkuc2V0TGVnZW5kKE1lc3NhZ2VzLkJlbmNobWFya0NoYXJ0R2VuZXJhdGlvbl9Vc2VkTWVtKTsNCiAJCWNoYXJ0LmdldEF4ZXMoKS5hZGQoc2l6ZSk7DQogCQljaGFydC5nZXRBeGVzKCkuYWRkKG1lbW9yeSk7DQogCQlMaXN0PFN0cmluZz4gdGVzdGVkRGlzY292ZXJlcnMgPSBuZXcgQXJyYXlMaXN0PFN0cmluZz4oKTsNCkBAIC0yMDcsNyArMjMzLDkgQEAKIAkJCQkJCXAuc2V0U2VyaWUocyk7DQogCQkJCQkJQ29vcmRpbmF0ZSB0ID0gdGhpcy5mYWN0b3J5LmNyZWF0ZUNvb3JkaW5hdGUoKTsNCiAJCQkJCQl0LnNldEF4ZShzaXplKTsNCi0JCQkJCQl0LnNldFZhbHVlKGR0ZW1wLmdldFByb2plY3QoKS5nZXRUb3RhbFNpemVJbkJ5dGVzKCkgLyBNRUdBQllURSk7DQorCQkJCQkJZmluYWwgUHJvamVjdCBwcm9qZWN0ID0gKFByb2plY3QpIGR0ZW1wLmdldFByb2plY3QoKTsNCisJCQkJCQlzaXplLnNldFVuaXQocHJvamVjdC5nZXRJbnB1dFNpemVVbml0KCkpOw0KKwkJCQkJCXQuc2V0VmFsdWUocHJvamVjdC5nZXRJbnB1dFNpemUoKSk7DQogCQkJCQkJQ29vcmRpbmF0ZSBtID0gdGhpcy5mYWN0b3J5LmNyZWF0ZUNvb3JkaW5hdGUoKTsNCiAJCQkJCQltLnNldEF4ZShtZW1vcnkpOw0KIAkJCQkJCW0uc2V0VmFsdWUoZHRlbXAuZ2V0SXRlcmF0aW9ucygpLmdldCgwKS5nZXRNYXhVc2VkTWVtb3J5SW5CeXRlcygpIC8gTUVHQUJZVEUpOw0KQEAgLTIxOCwyMiArMjQ2LDMwIEBACiAJCQkJdGVzdGVkRGlzY292ZXJlcnMuYWRkKGQuZ2V0RGlzY292ZXJlcklkKCkpOw0KIAkJCX0NCiAJCX0NCi0JCXRoaXMuaGVscGVyLmNyZWF0ZUJpcnRHcmFwaChjaGFydCwgdGhpcy5sb2NhdGlvbiwgIm1lbW9yeUJ5UHJvamVjdFNpemVPdmVyYWxsIik7DQorCQl0aGlzLmhlbHBlci5jcmVhdGVCaXJ0R3JhcGgoY2hhcnQsIHRoaXMubG9jYXRpb24sDQorCQkJCSJtZW1vcnlCeVByb2plY3RTaXplT3ZlcmFsbCIpOyAvLyROT04tTkxTLTEkDQogCX0NCiANCiANCiAJcHVibGljIHZvaWQgY3JlYXRlTWVtb3J5VXNlQnlUaW1lKGZpbmFsIERpc2NvdmVyeSBkLCBmaW5hbCBEaXNjb3ZlcnlJdGVyYXRpb24gZGkpIHRocm93cyBFeGNlcHRpb24gew0KIAkJQ2hhcnQgY2hhcnQgPSB0aGlzLmZhY3RvcnkuY3JlYXRlQ2hhcnQoKTsNCi0JCWNoYXJ0LnNldFRpdGxlKCJNZW1vcnkgdXNlZCBieSB0aW1lIGZvciAiICsgZC5nZXREaXNjb3ZlcmVySWQoKSArICIgb24gIiArIGQuZ2V0UHJvamVjdCgpLmdldE5hbWUoKSArICIgdGhlICIgKyBkaS5nZXREaXNjb3ZlcnlEYXRlKCkpOw0KKwkJZmluYWwgU3RyaW5nIHRpdGxlID0gTkxTLmJpbmQoDQorCQkJCU1lc3NhZ2VzLkJlbmNobWFya0NoYXJ0R2VuZXJhdGlvbl9Vc2VkTUVtQnlUaW1lRm9yT25UaGUsDQorCQkJCW5ldyBPYmplY3RbXXsNCisJCQkJCWQuZ2V0RGlzY292ZXJlcklkKCksDQorCQkJCQlkLmdldFByb2plY3QoKS5nZXROYW1lKCksDQorCQkJCQlkaS5nZXREaXNjb3ZlcnlEYXRlKCkudG9TdHJpbmcoKQ0KKwkJCQl9KTsNCisJCWNoYXJ0LnNldFRpdGxlKHRpdGxlKTsNCiAJCVNlcmllIHMgPSB0aGlzLmZhY3RvcnkuY3JlYXRlU2VyaWUoKTsNCiAJCXMuc2V0TmFtZShkLmdldERpc2NvdmVyZXJJZCgpKTsNCiAJCWNoYXJ0LmdldFNlcmllcygpLmFkZChzKTsNCiAJCUF4ZSB0aW1lID0gdGhpcy5mYWN0b3J5LmNyZWF0ZUF4ZSgpOw0KIAkJQXhlIG1lbW9yeSA9IHRoaXMuZmFjdG9yeS5jcmVhdGVBeGUoKTsNCi0JCXRpbWUuc2V0VW5pdCgibXMiKTsNCi0JCXRpbWUuc2V0TGVnZW5kKCJ0aW1lIik7DQotCQltZW1vcnkuc2V0VW5pdCgibWVnYWJ5dGVzIik7DQotCQltZW1vcnkuc2V0TGVnZW5kKCJtZW1vcnkgdXNlZCIpOw0KKwkJdGltZS5zZXRVbml0KCJtcyIpOyAvLyROT04tTkxTLTEkDQorCQl0aW1lLnNldExlZ2VuZChNZXNzYWdlcy5CZW5jaG1hcmtDaGFydEdlbmVyYXRpb25fdGltZSk7DQorCQltZW1vcnkuc2V0VW5pdCgibWVnYWJ5dGVzIik7IC8vJE5PTi1OTFMtMSQNCisJCW1lbW9yeS5zZXRMZWdlbmQoTWVzc2FnZXMuQmVuY2htYXJrQ2hhcnRHZW5lcmF0aW9uX1VzZWRNZW0pOw0KIAkJY2hhcnQuZ2V0QXhlcygpLmFkZCh0aW1lKTsNCiAJCWNoYXJ0LmdldEF4ZXMoKS5hZGQobWVtb3J5KTsNCiAJCQ0KQEAgLTI1Miw3ICsyODgsMTUgQEAKIAkJCQlwLmdldENvb3JkaW5hdGVzKCkuYWRkKG0pOw0KIAkJCX0NCiAJCX0NCi0JCXRoaXMuaGVscGVyLmNyZWF0ZUJpcnRHcmFwaChjaGFydCwgdGhpcy5sb2NhdGlvbiwgIm1lbW9yeUJ5VGltZSIgKyBkLmdldERpc2NvdmVyZXJJZCgpICsgIl8iICsgZGkuZ2V0RGlzY292ZXJ5RGF0ZSgpLnRvU3RyaW5nKCkucmVwbGFjZUFsbCgiICIsICJfIikucmVwbGFjZUFsbCgiOiIsICItIikpOw0KKwkJZmluYWwgU3RyaW5nIGZpbGVOYW1lID0gU3RyaW5nLmZvcm1hdCgibWVtb3J5QnlUaW1lLSVzIiwgLy8kTk9OLU5MUy0xJA0KKwkJCQlJbnRlZ2VyLnRvU3RyaW5nKGQuZ2V0SXRlcmF0aW9ucygpLmluZGV4T2YoZGkpKSk7DQorCQlmaW5hbCBGaWxlIHJlcG9ydERpciA9IG5ldyBGaWxlKHRoaXMubG9jYXRpb24sICJSZXBvcnQiKTsgLy8kTk9OLU5MUy0xJA0KKwkJZmluYWwgRmlsZSBwcm9qZWN0RGlyID0gbmV3IEZpbGUocmVwb3J0RGlyLCBkLmdldFByb2plY3QoKS5nZXROYW1lKCkpOw0KKwkJZmluYWwgRmlsZSB0YXJnZXRGb2xkZXIgPSBuZXcgRmlsZShwcm9qZWN0RGlyLCBkLmdldERpc2NvdmVyZXJJZCgpKTsNCisJCWlmICghdGFyZ2V0Rm9sZGVyLmV4aXN0cygpKSB7DQorCQkJdGFyZ2V0Rm9sZGVyLm1rZGlycygpOw0KKwkJfQ0KKwkJdGhpcy5oZWxwZXIuY3JlYXRlQmlydEdyYXBoKGNoYXJ0LCB0YXJnZXRGb2xkZXIsIGZpbGVOYW1lKTsNCiAJfQ0KIA0KIH0NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL2NvcmUvaW50ZXJuYWwvcmVwb3J0aW5nL2ludGVybmFsL1JlcG9ydGluZ1V0aWxpdGllcy5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9jb3JlL2ludGVybmFsL3JlcG9ydGluZy9pbnRlcm5hbC9SZXBvcnRpbmdVdGlsaXRpZXMuamF2YQppbmRleCA1YWJmZTdkLi4zMzQ3YjRlIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL2NvcmUvaW50ZXJuYWwvcmVwb3J0aW5nL2ludGVybmFsL1JlcG9ydGluZ1V0aWxpdGllcy5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvY29yZS9pbnRlcm5hbC9yZXBvcnRpbmcvaW50ZXJuYWwvUmVwb3J0aW5nVXRpbGl0aWVzLmphdmEKQEAgLTEsMTcgKzEsMjAgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQotICogQ29weXJpZ2h0IChjKSAyMDExIE1pYS1Tb2Z0d2FyZSBhbmQgSU5SSUEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlDQotICogYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlDQotICogUHVibGljIExpY2Vuc2UgdjEuMCB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KKyAqIENvcHlyaWdodCAoYykgMjAxMSwgMjAxNSBNaWEtU29mdHdhcmUgYW5kIElOUklBLg0KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUgDQorICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wIHdoaWNoIA0KKyAqIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQogICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCi0gKiANCi0gKiBDb250cmlidXRvcnM6IE5pY29sYXMgQnJvcyAoTWlhLVNvZnR3YXJlKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KLSAqIAkJCQkgR3VpbGxhdW1lIERvdXggKElOUklBKSAtIE1vdmluZyB0byB0aGUgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUgcGx1Zy1pbg0KLSAqIA0KKyAqDQorICogQ29udHJpYnV0b3JzOg0KKyAqICAgICBOaWNvbGFzIEJyb3MgKE1pYS1Tb2Z0d2FyZSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCisgKiAgICAgR3VpbGxhdW1lIERvdXggKElOUklBKSAtIE1vdmluZyB0byB0aGUgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUgcGx1Zy1pbg0KKyAqICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzNDAwIC0gW0JlbmNobWFya10gVGhlIGlucHV0IHNpemUgc2hvdWxkIGJlIGNvbXB1dGFibGUgYnkgdGhlIGRpc2NvdmVyZXINCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KIA0KIHBhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUuaW50ZXJuYWwucmVwb3J0aW5nLmludGVybmFsOw0KIA0KIGltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbjsNCitpbXBvcnQgamF2YS51dGlsLkxpc3Q7DQogDQogaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLkRpc2NvdmVyeUl0ZXJhdGlvbjsNCiANCkBAIC05Niw1ICs5OSw4IEBACiAJCX0NCiAJCXJldHVybiBTdHJpbmcuZm9ybWF0KCIlLjJmIiwgcmVtYWluZGVyKSArICJzIjsgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkDQogCX0NCi0JDQorDQorCXB1YmxpYyBzdGF0aWMgaW50IGluZGV4T2YoZmluYWwgTGlzdDxPYmplY3Q+IGxpc3QsIGZpbmFsIE9iamVjdCBvYmplY3QpIHsNCisJCXJldHVybiBsaXN0LmluZGV4T2Yob2JqZWN0KTsNCisJfQ0KIH0NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCBhMDc0Y2EyLi5mMjhhM2ZhIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTcsOSArNywxNCBAQAogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3IKIEJ1bmRsZS1Mb2NhbGl6YXRpb246IHBsdWdpbgogQnVuZGxlLVJlcXVpcmVkRXhlY3V0aW9uRW52aXJvbm1lbnQ6IEoyU0UtMS41Ci1FeHBvcnQtUGFja2FnZTogb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcms7eC1mcmllbmRzOj0ib3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUiCitFeHBvcnQtUGFja2FnZTogb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcms7CisgIHgtZnJpZW5kczo9Im9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlIiwKKyBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5pbXBsO3gtaW50ZXJuYWw6PXRydWUsCisgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsudXRpbDt4LWludGVybmFsOj10cnVlCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLAogIG9yZy5lY2xpcHNlLmVtZi5lY29yZTt2aXNpYmlsaXR5Oj1yZWV4cG9ydCwKKyBvcmcuZWNsaXBzZS5lbWYuZmFjZXQudXRpbC5lbWYuY2F0YWxvZzt2aXNpYmlsaXR5Oj1yZWV4cG9ydCwKICBvcmcuZWNsaXBzZS51aTtidW5kbGUtdmVyc2lvbj0iMy42LjAiLAotIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5Cisgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3Zlcnk7dmlzaWJpbGl0eTo9cmVleHBvcnQsCisgb3JnLmVjbGlwc2UuZW1mLmZhY2V0LnV0aWwuZW1mLmNvcmU7dmlzaWJpbGl0eTo9cmVleHBvcnQKIEJ1bmRsZS1BY3RpdmF0aW9uUG9saWN5OiBsYXp5CmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL21vZGVsL2JlbmNobWFyay5lY29yZSBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvbW9kZWwvYmVuY2htYXJrLmVjb3JlCmluZGV4IDNiNDY4ZWYuLmMxYTdhMDEgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvbW9kZWwvYmVuY2htYXJrLmVjb3JlCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvbW9kZWwvYmVuY2htYXJrLmVjb3JlCkBAIC0xLDk4ICsxLDEwMSBAQAogPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCiA8ZWNvcmU6RVBhY2thZ2UgeG1pOnZlcnNpb249IjIuMCIgeG1sbnM6eG1pPSJodHRwOi8vd3d3Lm9tZy5vcmcvWE1JIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIg0KLSAgICB4bWxuczplY29yZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSIgbmFtZT0iaW50ZXJuYWwiIG5zVVJJPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay8wLjExLmluY3ViYXRpb24vaW50ZXJuYWwiDQotICAgIG5zUHJlZml4PSJpbnRlcm5hbCI+DQotICA8ZVN1YnBhY2thZ2VzIG5hbWU9ImJlbmNobWFyayIgbnNVUkk9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrLzAuMTEuaW5jdWJhdGlvbi9pbnRlcm5hbC9iZW5jaG1hcmsiDQotICAgICAgbnNQcmVmaXg9ImJlbmNobWFyayI+DQotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iTWVtb3J5TWVhc3VyZW1lbnQiIGVTdXBlclR5cGVzPSIjLy9iZW5jaG1hcmsvRXZlbnQiPg0KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJtZW1vcnlVc2VkIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50Ii8+DQotICAgIDwvZUNsYXNzaWZpZXJzPg0KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkV2ZW50Ij4NCi0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0idGltZSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUxvbmciLz4NCi0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZXZlbnRUeXBlIiBsb3dlckJvdW5kPSIxIg0KLSAgICAgICAgICBlVHlwZT0iIy8vYmVuY2htYXJrL0V2ZW50VHlwZSIvPg0KLSAgICA8L2VDbGFzc2lmaWVycz4NCi0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJFdmVudFR5cGUiPg0KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJuYW1lIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FU3RyaW5nIi8+DQotICAgIDwvZUNsYXNzaWZpZXJzPg0KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkJlZ2luRXZlbnQiIGVTdXBlclR5cGVzPSIjLy9iZW5jaG1hcmsvRXZlbnQiLz4NCi0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJFbmRFdmVudCIgZVN1cGVyVHlwZXM9IiMvL2JlbmNobWFyay9FdmVudCI+DQotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImJlZ2lubmluZyIgbG93ZXJCb3VuZD0iMSINCi0gICAgICAgICAgZVR5cGU9IiMvL2JlbmNobWFyay9CZWdpbkV2ZW50Ii8+DQotICAgIDwvZUNsYXNzaWZpZXJzPg0KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkZpbGUiPg0KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJzaXplSW5CeXRlcyIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUxvbmciLz4NCi0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ibGluZXMiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VMb25nIi8+DQotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImZpbGVwYXRoIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FU3RyaW5nIi8+DQotICAgIDwvZUNsYXNzaWZpZXJzPg0KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlJlc291cmNlIiBhYnN0cmFjdD0idHJ1ZSI+DQotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9Im5hbWUiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciLz4NCi0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0idG90YWxTaXplSW5CeXRlcyIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUxvbmciLz4NCi0gICAgPC9lQ2xhc3NpZmllcnM+DQotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iUHJvamVjdCIgZVN1cGVyVHlwZXM9IiMvL2JlbmNobWFyay9SZXNvdXJjZSI+DQotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InRvdGFsTGluZXMiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VMb25nIi8+DQotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImF2ZXJhZ2VGaWxlU2l6ZUluQnl0ZXMiDQotICAgICAgICAgIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VMb25nIi8+DQotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImF2ZXJhZ2VMaW5lc1BlckZpbGUiDQotICAgICAgICAgIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VMb25nIi8+DQotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImZpbGVzIiB1cHBlckJvdW5kPSItMSINCi0gICAgICAgICAgZVR5cGU9IiMvL2JlbmNobWFyay9GaWxlIiBjb250YWlubWVudD0idHJ1ZSIvPg0KLSAgICA8L2VDbGFzc2lmaWVycz4NCi0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJCZW5jaG1hcmsiPg0KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJqdm1NYXhIZWFwSW5NaUIiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VMb25nIi8+DQotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InByb2Nlc3Nvck5hbWUiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciLz4NCi0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0icHJvY2Vzc29yRGVzY3JpcHRpb24iDQotICAgICAgICAgIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciLz4NCi0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0icHJvY2Vzc29yQ291bnQiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VJbnQiLz4NCi0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0icHJvY2Vzc29yQ2FjaGVTaXplIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FU3RyaW5nIi8+DQotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InN5c3RlbU1lbW9yeSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRVN0cmluZyIvPg0KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJvc05hbWUiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciLz4NCi0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ib3NWZXJzaW9uIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FU3RyaW5nIi8+DQotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9Im9zQXJjaGl0ZWN0dXJlIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FU3RyaW5nIi8+DQotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InByb2plY3RzIiB1cHBlckJvdW5kPSItMSINCi0gICAgICAgICAgZVR5cGU9IiMvL2JlbmNobWFyay9SZXNvdXJjZSIgY29udGFpbm1lbnQ9InRydWUiLz4NCi0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZGlzY292ZXJpZXMiIHVwcGVyQm91bmQ9Ii0xIg0KLSAgICAgICAgICBlVHlwZT0iIy8vYmVuY2htYXJrL0Rpc2NvdmVyeSIgY29udGFpbm1lbnQ9InRydWUiLz4NCi0gICAgPC9lQ2xhc3NpZmllcnM+DQotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRGlzY292ZXJ5Ij4NCi0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ibmFtZSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRVN0cmluZyIvPg0KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJkaXNjb3ZlcmVySWQiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciLz4NCi0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iZGlzY292ZXJlckNsYXNzTmFtZSINCi0gICAgICAgICAgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRVN0cmluZyIvPg0KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJkaXNjb3ZlcnlUaW1lQXZlcmFnZUluU2Vjb25kcyINCi0gICAgICAgICAgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRURvdWJsZSIvPg0KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJzYXZlVGltZUF2ZXJhZ2VJblNlY29uZHMiDQotICAgICAgICAgIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VEb3VibGUiLz4NCi0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iZXhlY3V0aW9uVGltZVN0YW5kYXJkRGV2aWF0aW9uIg0KLSAgICAgICAgICBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRG91YmxlIi8+DQotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InNhdmVUaW1lU3RhbmRhcmREZXZpYXRpb24iDQotICAgICAgICAgIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VEb3VibGUiLz4NCi0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ibnVtYmVyT2ZNb2RlbEVsZW1lbnRzIg0KLSAgICAgICAgICBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FTG9uZyIvPg0KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJ4bWlTaXplSW5CeXRlcyIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUxvbmciLz4NCi0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0icHJvamVjdCIgbG93ZXJCb3VuZD0iMSINCi0gICAgICAgICAgZVR5cGU9IiMvL2JlbmNobWFyay9SZXNvdXJjZSIvPg0KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJpdGVyYXRpb25zIiB1cHBlckJvdW5kPSItMSINCi0gICAgICAgICAgZVR5cGU9IiMvL2JlbmNobWFyay9EaXNjb3ZlcnlJdGVyYXRpb24iIGNvbnRhaW5tZW50PSJ0cnVlIi8+DQotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImRpc2NvdmVyZXJMYXVuY2hDb25maWd1cmF0aW9uIg0KLSAgICAgICAgICBlVHlwZT0iZWNvcmU6RUNsYXNzIHBsYXRmb3JtOi9wbHVnaW4vb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkvbW9kZWwvZGlzY292ZXJ5LmVjb3JlIy8vbGF1bmNoL0xhdW5jaENvbmZpZ3VyYXRpb24iDQotICAgICAgICAgIGNvbnRhaW5tZW50PSJ0cnVlIi8+DQotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImNvcHlPZkRpc2NvdmVyZXJEZXNjcmlwdGlvbiINCi0gICAgICAgICAgZVR5cGU9ImVjb3JlOkVDbGFzcyBwbGF0Zm9ybTovcGx1Z2luL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5L21vZGVsL2Rpc2NvdmVyeS5lY29yZSMvL2NhdGFsb2cvRGlzY292ZXJlckRlc2NyaXB0aW9uIg0KLSAgICAgICAgICBjb250YWlubWVudD0idHJ1ZSIvPg0KLSAgICA8L2VDbGFzc2lmaWVycz4NCi0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJEaXNjb3ZlcnlJdGVyYXRpb24iPg0KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJkaXNjb3ZlcnlEYXRlIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRGF0ZSIvPg0KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJkaXNjb3ZlcnlUaW1lSW5TZWNvbmRzIg0KLSAgICAgICAgICBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRG91YmxlIi8+DQotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InNhdmVUaW1lSW5TZWNvbmRzIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRG91YmxlIi8+DQotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9Im1heFVzZWRNZW1vcnlJbkJ5dGVzIg0KLSAgICAgICAgICBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FTG9uZyIvPg0KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJkaXNjb3ZlcnlFcnJvcnMiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciLz4NCi0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZXZlbnRzIiB1cHBlckJvdW5kPSItMSINCi0gICAgICAgICAgZVR5cGU9IiMvL2JlbmNobWFyay9FdmVudCIgY29udGFpbm1lbnQ9InRydWUiIHJlc29sdmVQcm94aWVzPSJmYWxzZSIvPg0KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJtZW1vcnlNZWFzdXJlbWVudHMiIHVwcGVyQm91bmQ9Ii0xIg0KLSAgICAgICAgICBlVHlwZT0iIy8vYmVuY2htYXJrL0V2ZW50IiBkZXJpdmVkPSJ0cnVlIi8+DQotICAgIDwvZUNsYXNzaWZpZXJzPg0KLSAgPC9lU3VicGFja2FnZXM+DQorICAgIHhtbG5zOmVjb3JlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIiBuYW1lPSJiZW5jaG1hcmsiIG5zVVJJPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay8wLjExLmluY3ViYXRpb24vaW50ZXJuYWwvYmVuY2htYXJrIg0KKyAgICBuc1ByZWZpeD0iYmVuY2htYXJrIj4NCisgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iTWVtb3J5TWVhc3VyZW1lbnQiIGVTdXBlclR5cGVzPSIjLy9FdmVudCI+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJtZW1vcnlVc2VkIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FTG9uZyIvPg0KKyAgPC9lQ2xhc3NpZmllcnM+DQorICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkV2ZW50Ij4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InRpbWUiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VMb25nIi8+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJldmVudFR5cGUiIGxvd2VyQm91bmQ9IjEiDQorICAgICAgICBlVHlwZT0iIy8vRXZlbnRUeXBlIi8+DQorICA8L2VDbGFzc2lmaWVycz4NCisgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRXZlbnRUeXBlIj4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9Im5hbWUiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciLz4NCisgIDwvZUNsYXNzaWZpZXJzPg0KKyAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJCZWdpbkV2ZW50IiBlU3VwZXJUeXBlcz0iIy8vRXZlbnQiLz4NCisgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRW5kRXZlbnQiIGVTdXBlclR5cGVzPSIjLy9FdmVudCI+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJiZWdpbm5pbmciIGxvd2VyQm91bmQ9IjEiDQorICAgICAgICBlVHlwZT0iIy8vQmVnaW5FdmVudCIvPg0KKyAgPC9lQ2xhc3NpZmllcnM+DQorICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkZpbGUiPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ic2l6ZUluQnl0ZXMiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VMb25nIi8+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJsaW5lcyIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUxvbmciLz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImZpbGVwYXRoIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FU3RyaW5nIi8+DQorICA8L2VDbGFzc2lmaWVycz4NCisgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iUmVzb3VyY2UiIGFic3RyYWN0PSJ0cnVlIj4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9Im5hbWUiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciLz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InRvdGFsU2l6ZUluQnl0ZXMiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VMb25nIi8+DQorICA8L2VDbGFzc2lmaWVycz4NCisgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iUHJvamVjdCIgZVN1cGVyVHlwZXM9IiMvL1Jlc291cmNlIj4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InRvdGFsTGluZXMiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VMb25nIj4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iQERlcHJlYWN0ZWQiLz4NCisgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iYXZlcmFnZUZpbGVTaXplSW5CeXRlcyINCisgICAgICAgIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VMb25nIj4NCisgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iQERlcHJlYWN0ZWQiLz4NCisgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iYXZlcmFnZUxpbmVzUGVyRmlsZSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUxvbmciPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJARGVwcmVhY3RlZCIvPg0KKyAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJmaWxlcyIgdXBwZXJCb3VuZD0iLTEiDQorICAgICAgICBlVHlwZT0iIy8vRmlsZSIgY29udGFpbm1lbnQ9InRydWUiPg0KKyAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJARGVwcmVhY3RlZCIvPg0KKyAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJpbnB1dFNpemUiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VEb3VibGUiLz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImlucHV0U2l6ZVVuaXQiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciLz4NCisgIDwvZUNsYXNzaWZpZXJzPg0KKyAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJCZW5jaG1hcmsiPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ianZtTWF4SGVhcEluTWlCIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FTG9uZyIvPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0icHJvY2Vzc29yTmFtZSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRVN0cmluZyIvPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0icHJvY2Vzc29yRGVzY3JpcHRpb24iIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciLz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InByb2Nlc3NvckNvdW50IiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50Ii8+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJwcm9jZXNzb3JDYWNoZVNpemUiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciLz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InN5c3RlbU1lbW9yeSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRVN0cmluZyIvPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ib3NOYW1lIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FU3RyaW5nIi8+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJvc1ZlcnNpb24iIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciLz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9Im9zQXJjaGl0ZWN0dXJlIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FU3RyaW5nIi8+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJwcm9qZWN0cyIgdXBwZXJCb3VuZD0iLTEiDQorICAgICAgICBlVHlwZT0iIy8vUmVzb3VyY2UiIGNvbnRhaW5tZW50PSJ0cnVlIi8+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJkaXNjb3ZlcmllcyIgdXBwZXJCb3VuZD0iLTEiDQorICAgICAgICBlVHlwZT0iIy8vRGlzY292ZXJ5IiBjb250YWlubWVudD0idHJ1ZSIvPg0KKyAgPC9lQ2xhc3NpZmllcnM+DQorICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkRpc2NvdmVyeSI+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJuYW1lIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FU3RyaW5nIi8+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJkaXNjb3ZlcmVySWQiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciLz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImRpc2NvdmVyZXJDbGFzc05hbWUiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciLz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImRpc2NvdmVyeVRpbWVBdmVyYWdlSW5TZWNvbmRzIg0KKyAgICAgICAgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRURvdWJsZSIvPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ic2F2ZVRpbWVBdmVyYWdlSW5TZWNvbmRzIg0KKyAgICAgICAgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRURvdWJsZSIvPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iZXhlY3V0aW9uVGltZVN0YW5kYXJkRGV2aWF0aW9uIg0KKyAgICAgICAgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRURvdWJsZSIvPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ic2F2ZVRpbWVTdGFuZGFyZERldmlhdGlvbiINCisgICAgICAgIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VEb3VibGUiLz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9Im51bWJlck9mTW9kZWxFbGVtZW50cyINCisgICAgICAgIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VMb25nIi8+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJ4bWlTaXplSW5CeXRlcyIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUxvbmciLz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InByb2plY3QiIGxvd2VyQm91bmQ9IjEiDQorICAgICAgICBlVHlwZT0iIy8vUmVzb3VyY2UiLz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9Iml0ZXJhdGlvbnMiIHVwcGVyQm91bmQ9Ii0xIg0KKyAgICAgICAgZVR5cGU9IiMvL0Rpc2NvdmVyeUl0ZXJhdGlvbiIgY29udGFpbm1lbnQ9InRydWUiLz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImRpc2NvdmVyZXJMYXVuY2hDb25maWd1cmF0aW9uIg0KKyAgICAgICAgZVR5cGU9ImVjb3JlOkVDbGFzcyBwbGF0Zm9ybTovcGx1Z2luL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5L21vZGVsL2Rpc2NvdmVyeS5lY29yZSMvL2xhdW5jaC9MYXVuY2hDb25maWd1cmF0aW9uIg0KKyAgICAgICAgY29udGFpbm1lbnQ9InRydWUiLz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImNvcHlPZkRpc2NvdmVyZXJEZXNjcmlwdGlvbiINCisgICAgICAgIGVUeXBlPSJlY29yZTpFQ2xhc3MgcGxhdGZvcm06L3BsdWdpbi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS9tb2RlbC9kaXNjb3ZlcnkuZWNvcmUjLy9jYXRhbG9nL0Rpc2NvdmVyZXJEZXNjcmlwdGlvbiINCisgICAgICAgIGNvbnRhaW5tZW50PSJ0cnVlIi8+DQorICA8L2VDbGFzc2lmaWVycz4NCisgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRGlzY292ZXJ5SXRlcmF0aW9uIj4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImRpc2NvdmVyeURhdGUiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VEYXRlIi8+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJkaXNjb3ZlcnlUaW1lSW5TZWNvbmRzIg0KKyAgICAgICAgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRURvdWJsZSIvPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ic2F2ZVRpbWVJblNlY29uZHMiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VEb3VibGUiLz4NCisgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9Im1heFVzZWRNZW1vcnlJbkJ5dGVzIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FTG9uZyIvPg0KKyAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iZGlzY292ZXJ5RXJyb3JzIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FU3RyaW5nIi8+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJldmVudHMiIHVwcGVyQm91bmQ9Ii0xIg0KKyAgICAgICAgZVR5cGU9IiMvL0V2ZW50IiBjb250YWlubWVudD0idHJ1ZSIgcmVzb2x2ZVByb3hpZXM9ImZhbHNlIi8+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJtZW1vcnlNZWFzdXJlbWVudHMiIHVwcGVyQm91bmQ9Ii0xIg0KKyAgICAgICAgZVR5cGU9IiMvL0V2ZW50IiBkZXJpdmVkPSJ0cnVlIi8+DQorICA8L2VDbGFzc2lmaWVycz4NCiA8L2Vjb3JlOkVQYWNrYWdlPg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvbW9kZWwvYmVuY2htYXJrLmdlbm1vZGVsIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9tb2RlbC9iZW5jaG1hcmsuZ2VubW9kZWwKaW5kZXggYzg0MzU3Yy4uYTcwMjI0ZiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9tb2RlbC9iZW5jaG1hcmsuZ2VubW9kZWwKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9tb2RlbC9iZW5jaG1hcmsuZ2VubW9kZWwKQEAgLTEsMTcgKzEsMTMgQEAKIDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQogPGdlbm1vZGVsOkdlbk1vZGVsIHhtaTp2ZXJzaW9uPSIyLjAiIHhtbG5zOnhtaT0iaHR0cDovL3d3dy5vbWcub3JnL1hNSSIgeG1sbnM6ZWNvcmU9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUiDQotICAgIHhtbG5zOmdlbm1vZGVsPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIiBjb3B5cmlnaHRUZXh0PSIqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiN4RDsmI3hBOyAqIENvcHlyaWdodCAoYykgMjAxMiBJTlJJQS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUmI3hEOyYjeEE7ICogYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlJiN4RDsmI3hBOyAqIFB1YmxpYyBMaWNlbnNlIHYxLjAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQmI3hEOyYjeEE7ICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwmI3hEOyYjeEE7ICogJiN4RDsmI3hBOyAqIENvbnRyaWJ1dG9yczogR3VpbGxhdW1lIERvdXggLSBJTlJJQSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbiYjeEQ7JiN4QTsgKiAmI3hEOyYjeEE7ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiYjeEQ7JiN4QTsiDQorICAgIHhtbG5zOmdlbm1vZGVsPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIiBjb3B5cmlnaHRUZXh0PSJDb3B5cmlnaHQgKGMpIDIwMTIsIDIwMTUgSU5SSUEgYW5kIE1pYS1Tb2Z0d2FyZS4mI3hEOyYjeEE7QWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyYjeEQ7JiN4QTthcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAmI3hEOyYjeEE7d2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQmI3hEOyYjeEE7aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwmI3hEOyYjeEE7JiN4RDsmI3hBO0NvbnRyaWJ1dG9yczomI3hEOyYjeEE7ICAgICBHdWlsbGF1bWUgRG91eCAoSU5SSUEpIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uJiN4RDsmI3hBOyAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzI5MiAtIFtCZW5jaG1hcmtdIGxvbmcgbXVzdCBiZSB1c2VkIHRvIHN0b3JlIG1lbW9yeSB1c2FnZSYjeEQ7JiN4QTsgICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODM0MDAgLSBbQmVuY2htYXJrXSBUaGUgaW5wdXQgc2l6ZSBzaG91bGQgYmUgY29tcHV0YWJsZSBieSB0aGUgZGlzY292ZXJlciYjeEQ7JiN4QTsiDQogICAgIG1vZGVsRGlyZWN0b3J5PSIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMiDQogICAgIG1vZGVsUGx1Z2luSUQ9Im9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwiIG1vZGVsTmFtZT0iQmVuY2htYXJrIg0KLSAgICBpbXBvcnRlcklEPSJvcmcuZWNsaXBzZS5lbWYuaW1wb3J0ZXIuZWNvcmUiIGNvbXBsaWFuY2VMZXZlbD0iNi4wIiBydW50aW1lVmVyc2lvbj0iMi41Ig0KKyAgICBpbXBvcnRlcklEPSJvcmcuZWNsaXBzZS5lbWYuaW1wb3J0ZXIuZWNvcmUiIGNvbXBsaWFuY2VMZXZlbD0iNS4wIiBydW50aW1lVmVyc2lvbj0iMi42Ig0KICAgICB1c2VkR2VuUGFja2FnZXM9InBsYXRmb3JtOi9wbHVnaW4vb3JnLmVjbGlwc2UuZW1mLmZhY2V0LnV0aWwuZW1mLmNhdGFsb2cvbW9kZWwvY2F0YWxvZy5nZW5tb2RlbCMvL2NhdGFsb2cgcGxhdGZvcm06L3BsdWdpbi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS9tb2RlbC9kaXNjb3ZlcnkuZ2VubW9kZWwjLy9kaXNjb3ZlcnkgcGxhdGZvcm06L3BsdWdpbi9vcmcuZWNsaXBzZS5lbWYuZmFjZXQudXRpbC5lbWYuY29yZS9tb2RlbC9zZXJpYWxpemF0aW9uLmdlbm1vZGVsIy8vc2VyaWFsaXphdGlvbiI+DQogICA8Zm9yZWlnbk1vZGVsPmJlbmNobWFyay5lY29yZTwvZm9yZWlnbk1vZGVsPg0KLSAgPGdlblBhY2thZ2VzIHByZWZpeD0iSW50ZXJuYWwiIGJhc2VQYWNrYWdlPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsIg0KLSAgICAgIGRpc3Bvc2FibGVQcm92aWRlckZhY3Rvcnk9InRydWUiIGludGVyZmFjZVBhY2thZ2VTdWZmaXg9Im1ldGFtb2RlbC5iZW5jaG1hcmsiDQotICAgICAgbWV0YURhdGFQYWNrYWdlU3VmZml4PSJtZXRhbW9kZWwuYmVuY2htYXJrIiBjbGFzc1BhY2thZ2VTdWZmaXg9Im1ldGFtb2RlbC5iZW5jaG1hcmsuaW1wbCINCi0gICAgICB1dGlsaXR5UGFja2FnZVN1ZmZpeD0ibWV0YW1vZGVsLmJlbmNobWFyay51dGlsIiBwcm92aWRlclBhY2thZ2VTdWZmaXg9Im1ldGFtb2RlbC5iZW5jaG1hcmsucHJvdmlkZXIiDQotICAgICAgcHJlc2VudGF0aW9uUGFja2FnZVN1ZmZpeD0ibWV0YW1vZGVsLmJlbmNobWFyay5wcmVzZW50YXRpb24iIHRlc3RzUGFja2FnZVN1ZmZpeD0ibWV0YW1vZGVsLnRlc3RzIg0KLSAgICAgIGVjb3JlUGFja2FnZT0iYmVuY2htYXJrLmVjb3JlIy8iPg0KKyAgPGdlblBhY2thZ2VzIHByZWZpeD0iQmVuY2htYXJrIiBiYXNlUGFja2FnZT0ib3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbCINCisgICAgICBkaXNwb3NhYmxlUHJvdmlkZXJGYWN0b3J5PSJ0cnVlIiBlY29yZVBhY2thZ2U9ImJlbmNobWFyay5lY29yZSMvIj4NCiAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iYmVuY2htYXJrLmVjb3JlIy8vTWVtb3J5TWVhc3VyZW1lbnQiPg0KICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSBiZW5jaG1hcmsuZWNvcmUjLy9NZW1vcnlNZWFzdXJlbWVudC9tZW1vcnlVc2VkIi8+DQogICAgIDwvZ2VuQ2xhc3Nlcz4NCkBAIC0zOSw3ICszNSw5IEBACiAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgYmVuY2htYXJrLmVjb3JlIy8vUHJvamVjdC90b3RhbExpbmVzIi8+DQogICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIGJlbmNobWFyay5lY29yZSMvL1Byb2plY3QvYXZlcmFnZUZpbGVTaXplSW5CeXRlcyIvPg0KICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSBiZW5jaG1hcmsuZWNvcmUjLy9Qcm9qZWN0L2F2ZXJhZ2VMaW5lc1BlckZpbGUiLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgYmVuY2htYXJrLmVjb3JlIy8vUHJvamVjdC9maWxlcyIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgYmVuY2htYXJrLmVjb3JlIy8vUHJvamVjdC9maWxlcyIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSBiZW5jaG1hcmsuZWNvcmUjLy9Qcm9qZWN0L2lucHV0U2l6ZSIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSBiZW5jaG1hcmsuZWNvcmUjLy9Qcm9qZWN0L2lucHV0U2l6ZVVuaXQiLz4NCiAgICAgPC9nZW5DbGFzc2VzPg0KICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJiZW5jaG1hcmsuZWNvcmUjLy9CZW5jaG1hcmsiPg0KICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSBiZW5jaG1hcmsuZWNvcmUjLy9CZW5jaG1hcmsvanZtTWF4SGVhcEluTWlCIi8+DQpAQCAtNTEsOCArNDksOCBAQAogICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIGJlbmNobWFyay5lY29yZSMvL0JlbmNobWFyay9vc05hbWUiLz4NCiAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgYmVuY2htYXJrLmVjb3JlIy8vQmVuY2htYXJrL29zVmVyc2lvbiIvPg0KICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSBiZW5jaG1hcmsuZWNvcmUjLy9CZW5jaG1hcmsvb3NBcmNoaXRlY3R1cmUiLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgYmVuY2htYXJrLmVjb3JlIy8vQmVuY2htYXJrL3Byb2plY3RzIi8+DQotICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgcHJvcGVydHlTb3J0Q2hvaWNlcz0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIGJlbmNobWFyay5lY29yZSMvL0JlbmNobWFyay9kaXNjb3ZlcmllcyIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgYmVuY2htYXJrLmVjb3JlIy8vQmVuY2htYXJrL3Byb2plY3RzIi8+DQorICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBiZW5jaG1hcmsuZWNvcmUjLy9CZW5jaG1hcmsvZGlzY292ZXJpZXMiLz4NCiAgICAgPC9nZW5DbGFzc2VzPg0KICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJiZW5jaG1hcmsuZWNvcmUjLy9EaXNjb3ZlcnkiPg0KICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSBiZW5jaG1hcmsuZWNvcmUjLy9EaXNjb3ZlcnkvbmFtZSIvPg0KQEAgLTY1LDkgKzYzLDkgQEAKICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSBiZW5jaG1hcmsuZWNvcmUjLy9EaXNjb3ZlcnkvbnVtYmVyT2ZNb2RlbEVsZW1lbnRzIi8+DQogICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIGJlbmNobWFyay5lY29yZSMvL0Rpc2NvdmVyeS94bWlTaXplSW5CeXRlcyIvPg0KICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBiZW5jaG1hcmsuZWNvcmUjLy9EaXNjb3ZlcnkvcHJvamVjdCIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBiZW5jaG1hcmsuZWNvcmUjLy9EaXNjb3ZlcnkvaXRlcmF0aW9ucyIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBiZW5jaG1hcmsuZWNvcmUjLy9EaXNjb3ZlcnkvZGlzY292ZXJlckxhdW5jaENvbmZpZ3VyYXRpb24iLz4NCi0gICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgYmVuY2htYXJrLmVjb3JlIy8vRGlzY292ZXJ5L2NvcHlPZkRpc2NvdmVyZXJEZXNjcmlwdGlvbiIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgYmVuY2htYXJrLmVjb3JlIy8vRGlzY292ZXJ5L2l0ZXJhdGlvbnMiLz4NCisgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIGJlbmNobWFyay5lY29yZSMvL0Rpc2NvdmVyeS9kaXNjb3ZlcmVyTGF1bmNoQ29uZmlndXJhdGlvbiIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgYmVuY2htYXJrLmVjb3JlIy8vRGlzY292ZXJ5L2NvcHlPZkRpc2NvdmVyZXJEZXNjcmlwdGlvbiIvPg0KICAgICA8L2dlbkNsYXNzZXM+DQogICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9ImJlbmNobWFyay5lY29yZSMvL0Rpc2NvdmVyeUl0ZXJhdGlvbiI+DQogICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIGJlbmNobWFyay5lY29yZSMvL0Rpc2NvdmVyeUl0ZXJhdGlvbi9kaXNjb3ZlcnlEYXRlIi8+DQpAQCAtNzUsOSArNzMsOCBAQAogICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIGJlbmNobWFyay5lY29yZSMvL0Rpc2NvdmVyeUl0ZXJhdGlvbi9zYXZlVGltZUluU2Vjb25kcyIvPg0KICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSBiZW5jaG1hcmsuZWNvcmUjLy9EaXNjb3ZlcnlJdGVyYXRpb24vbWF4VXNlZE1lbW9yeUluQnl0ZXMiLz4NCiAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgYmVuY2htYXJrLmVjb3JlIy8vRGlzY292ZXJ5SXRlcmF0aW9uL2Rpc2NvdmVyeUVycm9ycyIvPg0KLSAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBiZW5jaG1hcmsuZWNvcmUjLy9EaXNjb3ZlcnlJdGVyYXRpb24vZXZlbnRzIi8+DQorICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBiZW5jaG1hcmsuZWNvcmUjLy9EaXNjb3ZlcnlJdGVyYXRpb24vZXZlbnRzIi8+DQogICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgcHJvcGVydHlTb3J0Q2hvaWNlcz0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIGJlbmNobWFyay5lY29yZSMvL0Rpc2NvdmVyeUl0ZXJhdGlvbi9tZW1vcnlNZWFzdXJlbWVudHMiLz4NCiAgICAgPC9nZW5DbGFzc2VzPg0KLSAgICA8bmVzdGVkR2VuUGFja2FnZXMgcHJlZml4PSJCZW5jaG1hcmsiIGRpc3Bvc2FibGVQcm92aWRlckZhY3Rvcnk9InRydWUiIGVjb3JlUGFja2FnZT0iYmVuY2htYXJrLmVjb3JlIy8vYmVuY2htYXJrIi8+DQogICA8L2dlblBhY2thZ2VzPg0KIDwvZ2VubW9kZWw6R2VuTW9kZWw+DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9wbHVnaW4ucHJvcGVydGllcyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvcGx1Z2luLnByb3BlcnRpZXMKaW5kZXggYjRhNDE5OC4uOGMyMWU4NCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9wbHVnaW4ucHJvcGVydGllcworKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL3BsdWdpbi5wcm9wZXJ0aWVzCkBAIC0xMCw0ICsxMCwzIEBACiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQogQnVuZGxlLVZlbmRvciA9IEVjbGlwc2UgTW9kZWxpbmcgUHJvamVjdA0KIEJ1bmRsZS1OYW1lID0gTW9EaXNjbyBJbmZyYSBEaXNjb3ZlcnkgQmVuY2htYXJrIE1ldGFtb2RlbCAoSW5jdWJhdGlvbikNCi0NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvbWV0YW1vZGVsL2ludGVybmFsL2JlbmNobWFyay9CZWdpbkV2ZW50LmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvbWV0YW1vZGVsL2ludGVybmFsL2JlbmNobWFyay9CZWdpbkV2ZW50LmphdmEKaW5kZXggNDljNDhhMS4uMjA3NDA2NiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvQmVnaW5FdmVudC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9tZXRhbW9kZWwvaW50ZXJuYWwvYmVuY2htYXJrL0JlZ2luRXZlbnQuamF2YQpAQCAtMSwxNCArMSwxNCBAQAogLyoqDQotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLSAqICAqIENvcHlyaWdodCAoYykgMjAxMiBJTlJJQS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUNCi0gKiAgKiBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UNCi0gKiAgKiBQdWJsaWMgTGljZW5zZSB2MS4wIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQotICogICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCi0gKiAgKiANCi0gKiAgKiBDb250cmlidXRvcnM6IEd1aWxsYXVtZSBEb3V4IC0gSU5SSUEgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCi0gKiAgKiANCi0gKiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICogQ29weXJpZ2h0IChjKSAyMDEyLCAyMDE1IElOUklBIGFuZCBNaWEtU29mdHdhcmUuDQorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KKyAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQorICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCiAgKiANCisgKiBDb250cmlidXRvcnM6DQorICogICAgICBHdWlsbGF1bWUgRG91eCAoSU5SSUEpIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uDQorICogICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzMjkyIC0gW0JlbmNobWFya10gbG9uZyBtdXN0IGJlIHVzZWQgdG8gc3RvcmUgbWVtb3J5IHVzYWdlDQorICogICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzNDAwIC0gW0JlbmNobWFya10gVGhlIGlucHV0IHNpemUgc2hvdWxkIGJlIGNvbXB1dGFibGUgYnkgdGhlIGRpc2NvdmVyZXINCiAgKi8NCiBwYWNrYWdlIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrOw0KIA0KQEAgLTI5LDYgKzI5LDYgQEAKIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAJICogQGdlbmVyYXRlZA0KIAkgKi8NCi0JU3RyaW5nIGNvcHlyaWdodCA9ICIqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAqIENvcHlyaWdodCAoYykgMjAxMiBJTlJJQS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGVcclxuICogYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlXHJcbiAqIFB1YmxpYyBMaWNlbnNlIHYxLjAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcclxuICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWxcclxuICogXHJcbiAqIENvbnRyaWJ1dG9yczogR3VpbGxhdW1lIERvdXggLSBJTlJJQSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvblxyXG4gKiBcclxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4iOw0KKwlTdHJpbmcgY29weXJpZ2h0ID0gIkNvcHlyaWdodCAoYykgMjAxMiwgMjAxNSBJTlJJQSBhbmQgTWlhLVNvZnR3YXJlLlxyXG5BbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzXHJcbmFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMFxyXG53aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdFxyXG5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbFxyXG5cclxuQ29udHJpYnV0b3JzOlxyXG4gICAgIEd1aWxsYXVtZSBEb3V4IChJTlJJQSkgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb25cclxuICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzMjkyIC0gW0JlbmNobWFya10gbG9uZyBtdXN0IGJlIHVzZWQgdG8gc3RvcmUgbWVtb3J5IHVzYWdlXHJcbiAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzQwMCAtIFtCZW5jaG1hcmtdIFRoZSBpbnB1dCBzaXplIHNob3VsZCBiZSBjb21wdXRhYmxlIGJ5IHRoZSBkaXNjb3ZlcmVyXHJcbiI7DQogDQogfSAvLyBCZWdpbkV2ZW50DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvQmVuY2htYXJrLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvbWV0YW1vZGVsL2ludGVybmFsL2JlbmNobWFyay9CZW5jaG1hcmsuamF2YQppbmRleCBiYTEzMGU3Li5kMzU2NTAyIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvbWV0YW1vZGVsL2ludGVybmFsL2JlbmNobWFyay9CZW5jaG1hcmsuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvbWV0YW1vZGVsL2ludGVybmFsL2JlbmNobWFyay9CZW5jaG1hcmsuamF2YQpAQCAtMSwxNCArMSwxNCBAQAogLyoqDQotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLSAqICAqIENvcHlyaWdodCAoYykgMjAxMiBJTlJJQS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUNCi0gKiAgKiBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UNCi0gKiAgKiBQdWJsaWMgTGljZW5zZSB2MS4wIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQotICogICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCi0gKiAgKiANCi0gKiAgKiBDb250cmlidXRvcnM6IEd1aWxsYXVtZSBEb3V4IC0gSU5SSUEgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCi0gKiAgKiANCi0gKiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICogQ29weXJpZ2h0IChjKSAyMDEyLCAyMDE1IElOUklBIGFuZCBNaWEtU29mdHdhcmUuDQorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KKyAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQorICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCiAgKiANCisgKiBDb250cmlidXRvcnM6DQorICogICAgICBHdWlsbGF1bWUgRG91eCAoSU5SSUEpIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uDQorICogICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzMjkyIC0gW0JlbmNobWFya10gbG9uZyBtdXN0IGJlIHVzZWQgdG8gc3RvcmUgbWVtb3J5IHVzYWdlDQorICogICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzNDAwIC0gW0JlbmNobWFya10gVGhlIGlucHV0IHNpemUgc2hvdWxkIGJlIGNvbXB1dGFibGUgYnkgdGhlIGRpc2NvdmVyZXINCiAgKi8NCiBwYWNrYWdlIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrOw0KIA0KQEAgLTIzLDYgKzIzLDcgQEAKICAqDQogICogPHA+DQogICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOg0KKyAqIDwvcD4NCiAgKiA8dWw+DQogICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLkJlbmNobWFyayNnZXRKdm1NYXhIZWFwSW5NaUIgPGVtPkp2bSBNYXggSGVhcCBJbiBNaSBCPC9lbT59PC9saT4NCiAgKiAgIDxsaT57QGxpbmsgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuQmVuY2htYXJrI2dldFByb2Nlc3Nvck5hbWUgPGVtPlByb2Nlc3NvciBOYW1lPC9lbT59PC9saT4NCkBAIC0zNiw3ICszNyw2IEBACiAgKiAgIDxsaT57QGxpbmsgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuQmVuY2htYXJrI2dldFByb2plY3RzIDxlbT5Qcm9qZWN0czwvZW0+fTwvbGk+DQogICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLkJlbmNobWFyayNnZXREaXNjb3ZlcmllcyA8ZW0+RGlzY292ZXJpZXM8L2VtPn08L2xpPg0KICAqIDwvdWw+DQotICogPC9wPg0KICAqDQogICogQHNlZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5CZW5jaG1hcmtQYWNrYWdlI2dldEJlbmNobWFyaygpDQogICogQG1vZGVsDQpAQCAtNDgsNyArNDgsNyBAQAogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KIAkgKiBAZ2VuZXJhdGVkDQogCSAqLw0KLQlTdHJpbmcgY29weXJpZ2h0ID0gIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICogQ29weXJpZ2h0IChjKSAyMDEyIElOUklBLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZVxyXG4gKiBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2VcclxuICogUHVibGljIExpY2Vuc2UgdjEuMCB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdFxyXG4gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbFxyXG4gKiBcclxuICogQ29udHJpYnV0b3JzOiBHdWlsbGF1bWUgRG91eCAtIElOUklBIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAqIFxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiI7DQorCVN0cmluZyBjb3B5cmlnaHQgPSAiQ29weXJpZ2h0IChjKSAyMDEyLCAyMDE1IElOUklBIGFuZCBNaWEtU29mdHdhcmUuXHJcbkFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHNcclxuYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wXHJcbndoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0XHJcbmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sXHJcblxyXG5Db250cmlidXRvcnM6XHJcbiAgICAgR3VpbGxhdW1lIERvdXggKElOUklBKSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvblxyXG4gICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODMyOTIgLSBbQmVuY2htYXJrXSBsb25nIG11c3QgYmUgdXNlZCB0byBzdG9yZSBtZW1vcnkgdXNhZ2VcclxuICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzNDAwIC0gW0JlbmNobWFya10gVGhlIGlucHV0IHNpemUgc2hvdWxkIGJlIGNvbXB1dGFibGUgYnkgdGhlIGRpc2NvdmVyZXJcclxuIjsNCiANCiAJLyoqDQogCSAqIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSAnPGVtPjxiPkp2bSBNYXggSGVhcCBJbiBNaSBCPC9iPjwvZW0+JyBhdHRyaWJ1dGUuDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvQmVuY2htYXJrRmFjdG9yeS5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvQmVuY2htYXJrRmFjdG9yeS5qYXZhCmluZGV4IDRjN2RkYzEuLjRmZjM1NGMgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9tZXRhbW9kZWwvaW50ZXJuYWwvYmVuY2htYXJrL0JlbmNobWFya0ZhY3RvcnkuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvbWV0YW1vZGVsL2ludGVybmFsL2JlbmNobWFyay9CZW5jaG1hcmtGYWN0b3J5LmphdmEKQEAgLTEsMTQgKzEsMTQgQEAKIC8qKg0KLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi0gKiAgKiBDb3B5cmlnaHQgKGMpIDIwMTIgSU5SSUEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlDQotICogICogYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlDQotICogICogUHVibGljIExpY2Vuc2UgdjEuMCB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KLSAqICAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQotICogICogDQotICogICogQ29udHJpYnV0b3JzOiBHdWlsbGF1bWUgRG91eCAtIElOUklBIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uDQotICogICogDQotICogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAqIENvcHlyaWdodCAoYykgMjAxMiwgMjAxNSBJTlJJQSBhbmQgTWlhLVNvZnR3YXJlLg0KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjANCisgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KKyAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQogICogDQorICogQ29udHJpYnV0b3JzOg0KKyAqICAgICAgR3VpbGxhdW1lIERvdXggKElOUklBKSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KKyAqICAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzI5MiAtIFtCZW5jaG1hcmtdIGxvbmcgbXVzdCBiZSB1c2VkIHRvIHN0b3JlIG1lbW9yeSB1c2FnZQ0KKyAqICAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzQwMCAtIFtCZW5jaG1hcmtdIFRoZSBpbnB1dCBzaXplIHNob3VsZCBiZSBjb21wdXRhYmxlIGJ5IHRoZSBkaXNjb3ZlcmVyDQogICovDQogcGFja2FnZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyazsNCiANCkBAIC0yOCw3ICsyOCw3IEBACiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQogCSAqIEBnZW5lcmF0ZWQNCiAJICovDQotCVN0cmluZyBjb3B5cmlnaHQgPSAiKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTIgSU5SSUEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlXHJcbiAqIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZVxyXG4gKiBQdWJsaWMgTGljZW5zZSB2MS4wIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0XHJcbiAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sXHJcbiAqIFxyXG4gKiBDb250cmlidXRvcnM6IEd1aWxsYXVtZSBEb3V4IC0gSU5SSUEgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb25cclxuICogXHJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuIjsNCisJU3RyaW5nIGNvcHlyaWdodCA9ICJDb3B5cmlnaHQgKGMpIDIwMTIsIDIwMTUgSU5SSUEgYW5kIE1pYS1Tb2Z0d2FyZS5cclxuQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFsc1xyXG5hcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjBcclxud2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcclxuaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWxcclxuXHJcbkNvbnRyaWJ1dG9yczpcclxuICAgICBHdWlsbGF1bWUgRG91eCAoSU5SSUEpIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzI5MiAtIFtCZW5jaG1hcmtdIGxvbmcgbXVzdCBiZSB1c2VkIHRvIHN0b3JlIG1lbW9yeSB1c2FnZVxyXG4gICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODM0MDAgLSBbQmVuY2htYXJrXSBUaGUgaW5wdXQgc2l6ZSBzaG91bGQgYmUgY29tcHV0YWJsZSBieSB0aGUgZGlzY292ZXJlclxyXG4iOw0KIA0KIAkvKioNCiAJICogVGhlIHNpbmdsZXRvbiBpbnN0YW5jZSBvZiB0aGUgZmFjdG9yeS4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvbWV0YW1vZGVsL2ludGVybmFsL2JlbmNobWFyay9CZW5jaG1hcmtQYWNrYWdlLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvbWV0YW1vZGVsL2ludGVybmFsL2JlbmNobWFyay9CZW5jaG1hcmtQYWNrYWdlLmphdmEKaW5kZXggNTAwM2Y2Zi4uZDQ0ZjZjMiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvQmVuY2htYXJrUGFja2FnZS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9tZXRhbW9kZWwvaW50ZXJuYWwvYmVuY2htYXJrL0JlbmNobWFya1BhY2thZ2UuamF2YQpAQCAtMSwxNCArMSwxNCBAQAogLyoqDQotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLSAqICAqIENvcHlyaWdodCAoYykgMjAxMiBJTlJJQS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUNCi0gKiAgKiBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UNCi0gKiAgKiBQdWJsaWMgTGljZW5zZSB2MS4wIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQotICogICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCi0gKiAgKiANCi0gKiAgKiBDb250cmlidXRvcnM6IEd1aWxsYXVtZSBEb3V4IC0gSU5SSUEgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCi0gKiAgKiANCi0gKiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICogQ29weXJpZ2h0IChjKSAyMDEyLCAyMDE1IElOUklBIGFuZCBNaWEtU29mdHdhcmUuDQorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KKyAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQorICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCiAgKiANCisgKiBDb250cmlidXRvcnM6DQorICogICAgICBHdWlsbGF1bWUgRG91eCAoSU5SSUEpIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uDQorICogICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzMjkyIC0gW0JlbmNobWFya10gbG9uZyBtdXN0IGJlIHVzZWQgdG8gc3RvcmUgbWVtb3J5IHVzYWdlDQorICogICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzNDAwIC0gW0JlbmNobWFya10gVGhlIGlucHV0IHNpemUgc2hvdWxkIGJlIGNvbXB1dGFibGUgYnkgdGhlIGRpc2NvdmVyZXINCiAgKi8NCiBwYWNrYWdlIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrOw0KIA0KQEAgLTM4LDcgKzM4LDcgQEAKIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAJICogQGdlbmVyYXRlZA0KIAkgKi8NCi0JU3RyaW5nIGNvcHlyaWdodCA9ICIqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAqIENvcHlyaWdodCAoYykgMjAxMiBJTlJJQS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGVcclxuICogYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlXHJcbiAqIFB1YmxpYyBMaWNlbnNlIHYxLjAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcclxuICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWxcclxuICogXHJcbiAqIENvbnRyaWJ1dG9yczogR3VpbGxhdW1lIERvdXggLSBJTlJJQSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvblxyXG4gKiBcclxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4iOw0KKwlTdHJpbmcgY29weXJpZ2h0ID0gIkNvcHlyaWdodCAoYykgMjAxMiwgMjAxNSBJTlJJQSBhbmQgTWlhLVNvZnR3YXJlLlxyXG5BbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzXHJcbmFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMFxyXG53aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdFxyXG5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbFxyXG5cclxuQ29udHJpYnV0b3JzOlxyXG4gICAgIEd1aWxsYXVtZSBEb3V4IChJTlJJQSkgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb25cclxuICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzMjkyIC0gW0JlbmNobWFya10gbG9uZyBtdXN0IGJlIHVzZWQgdG8gc3RvcmUgbWVtb3J5IHVzYWdlXHJcbiAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzQwMCAtIFtCZW5jaG1hcmtdIFRoZSBpbnB1dCBzaXplIHNob3VsZCBiZSBjb21wdXRhYmxlIGJ5IHRoZSBkaXNjb3ZlcmVyXHJcbiI7DQogDQogCS8qKg0KIAkgKiBUaGUgcGFja2FnZSBuYW1lLg0KQEAgLTQxNCwxMyArNDE0LDMxIEBACiAJaW50IFBST0pFQ1RfX0ZJTEVTID0gUkVTT1VSQ0VfRkVBVFVSRV9DT1VOVCArIDM7DQogDQogCS8qKg0KKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+SW5wdXQgU2l6ZTwvYj48L2VtPicgYXR0cmlidXRlLg0KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCisJICogQGdlbmVyYXRlZA0KKwkgKiBAb3JkZXJlZA0KKwkgKi8NCisJaW50IFBST0pFQ1RfX0lOUFVUX1NJWkUgPSBSRVNPVVJDRV9GRUFUVVJFX0NPVU5UICsgNDsNCisNCisJLyoqDQorCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5JbnB1dCBTaXplIFVuaXQ8L2I+PC9lbT4nIGF0dHJpYnV0ZS4NCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQorCSAqIEBnZW5lcmF0ZWQNCisJICogQG9yZGVyZWQNCisJICovDQorCWludCBQUk9KRUNUX19JTlBVVF9TSVpFX1VOSVQgPSBSRVNPVVJDRV9GRUFUVVJFX0NPVU5UICsgNTsNCisNCisJLyoqDQogCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgJzxlbT5Qcm9qZWN0PC9lbT4nIGNsYXNzLg0KIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAJICogQGdlbmVyYXRlZA0KIAkgKiBAb3JkZXJlZA0KIAkgKi8NCi0JaW50IFBST0pFQ1RfRkVBVFVSRV9DT1VOVCA9IFJFU09VUkNFX0ZFQVRVUkVfQ09VTlQgKyA0Ow0KKwlpbnQgUFJPSkVDVF9GRUFUVVJFX0NPVU5UID0gUkVTT1VSQ0VfRkVBVFVSRV9DT1VOVCArIDY7DQogDQogCS8qKg0KIAkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLmltcGwuQmVuY2htYXJrSW1wbCA8ZW0+QmVuY2htYXJrPC9lbT59JyBjbGFzcy4NCkBAIC05OTQsNiArMTAxMiwyOCBAQAogCUVSZWZlcmVuY2UgZ2V0UHJvamVjdF9GaWxlcygpOw0KIA0KIAkvKioNCisJICogUmV0dXJucyB0aGUgbWV0YSBvYmplY3QgZm9yIHRoZSBhdHRyaWJ1dGUgJ3tAbGluayBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5Qcm9qZWN0I2dldElucHV0U2l6ZSA8ZW0+SW5wdXQgU2l6ZTwvZW0+fScuDQorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+DQorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KKwkgKiBAcmV0dXJuIHRoZSBtZXRhIG9iamVjdCBmb3IgdGhlIGF0dHJpYnV0ZSAnPGVtPklucHV0IFNpemU8L2VtPicuDQorCSAqIEBzZWUgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuUHJvamVjdCNnZXRJbnB1dFNpemUoKQ0KKwkgKiBAc2VlICNnZXRQcm9qZWN0KCkNCisJICogQGdlbmVyYXRlZA0KKwkgKi8NCisJRUF0dHJpYnV0ZSBnZXRQcm9qZWN0X0lucHV0U2l6ZSgpOw0KKw0KKwkvKioNCisJICogUmV0dXJucyB0aGUgbWV0YSBvYmplY3QgZm9yIHRoZSBhdHRyaWJ1dGUgJ3tAbGluayBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5Qcm9qZWN0I2dldElucHV0U2l6ZVVuaXQgPGVtPklucHV0IFNpemUgVW5pdDwvZW0+fScuDQorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+DQorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KKwkgKiBAcmV0dXJuIHRoZSBtZXRhIG9iamVjdCBmb3IgdGhlIGF0dHJpYnV0ZSAnPGVtPklucHV0IFNpemUgVW5pdDwvZW0+Jy4NCisJICogQHNlZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5Qcm9qZWN0I2dldElucHV0U2l6ZVVuaXQoKQ0KKwkgKiBAc2VlICNnZXRQcm9qZWN0KCkNCisJICogQGdlbmVyYXRlZA0KKwkgKi8NCisJRUF0dHJpYnV0ZSBnZXRQcm9qZWN0X0lucHV0U2l6ZVVuaXQoKTsNCisNCisJLyoqDQogCSAqIFJldHVybnMgdGhlIG1ldGEgb2JqZWN0IGZvciBjbGFzcyAne0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLkJlbmNobWFyayA8ZW0+QmVuY2htYXJrPC9lbT59Jy4NCiAJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQpAQCAtMTU3OSw2ICsxNjE5LDIyIEBACiAJCUVSZWZlcmVuY2UgUFJPSkVDVF9fRklMRVMgPSBlSU5TVEFOQ0UuZ2V0UHJvamVjdF9GaWxlcygpOw0KIA0KIAkJLyoqDQorCQkgKiBUaGUgbWV0YSBvYmplY3QgbGl0ZXJhbCBmb3IgdGhlICc8ZW0+PGI+SW5wdXQgU2l6ZTwvYj48L2VtPicgYXR0cmlidXRlIGZlYXR1cmUuDQorCQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KKwkJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQorCQkgKiBAZ2VuZXJhdGVkDQorCQkgKi8NCisJCUVBdHRyaWJ1dGUgUFJPSkVDVF9fSU5QVVRfU0laRSA9IGVJTlNUQU5DRS5nZXRQcm9qZWN0X0lucHV0U2l6ZSgpOw0KKw0KKwkJLyoqDQorCQkgKiBUaGUgbWV0YSBvYmplY3QgbGl0ZXJhbCBmb3IgdGhlICc8ZW0+PGI+SW5wdXQgU2l6ZSBVbml0PC9iPjwvZW0+JyBhdHRyaWJ1dGUgZmVhdHVyZS4NCisJCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+DQorCQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCisJCSAqIEBnZW5lcmF0ZWQNCisJCSAqLw0KKwkJRUF0dHJpYnV0ZSBQUk9KRUNUX19JTlBVVF9TSVpFX1VOSVQgPSBlSU5TVEFOQ0UuZ2V0UHJvamVjdF9JbnB1dFNpemVVbml0KCk7DQorDQorCQkvKioNCiAJCSAqIFRoZSBtZXRhIG9iamVjdCBsaXRlcmFsIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5pbXBsLkJlbmNobWFya0ltcGwgPGVtPkJlbmNobWFyazwvZW0+fScgY2xhc3MuDQogCQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KIAkJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvRGlzY292ZXJ5LmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvbWV0YW1vZGVsL2ludGVybmFsL2JlbmNobWFyay9EaXNjb3ZlcnkuamF2YQppbmRleCA5MzA0Y2QzLi5jMjhjODY3IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvbWV0YW1vZGVsL2ludGVybmFsL2JlbmNobWFyay9EaXNjb3ZlcnkuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvbWV0YW1vZGVsL2ludGVybmFsL2JlbmNobWFyay9EaXNjb3ZlcnkuamF2YQpAQCAtMSwxNCArMSwxNCBAQAogLyoqDQotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLSAqICAqIENvcHlyaWdodCAoYykgMjAxMiBJTlJJQS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUNCi0gKiAgKiBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UNCi0gKiAgKiBQdWJsaWMgTGljZW5zZSB2MS4wIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQotICogICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCi0gKiAgKiANCi0gKiAgKiBDb250cmlidXRvcnM6IEd1aWxsYXVtZSBEb3V4IC0gSU5SSUEgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCi0gKiAgKiANCi0gKiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICogQ29weXJpZ2h0IChjKSAyMDEyLCAyMDE1IElOUklBIGFuZCBNaWEtU29mdHdhcmUuDQorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KKyAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQorICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCiAgKiANCisgKiBDb250cmlidXRvcnM6DQorICogICAgICBHdWlsbGF1bWUgRG91eCAoSU5SSUEpIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uDQorICogICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzMjkyIC0gW0JlbmNobWFya10gbG9uZyBtdXN0IGJlIHVzZWQgdG8gc3RvcmUgbWVtb3J5IHVzYWdlDQorICogICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzNDAwIC0gW0JlbmNobWFya10gVGhlIGlucHV0IHNpemUgc2hvdWxkIGJlIGNvbXB1dGFibGUgYnkgdGhlIGRpc2NvdmVyZXINCiAgKi8NCiBwYWNrYWdlIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrOw0KIA0KQEAgLTI3LDYgKzI3LDcgQEAKICAqDQogICogPHA+DQogICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOg0KKyAqIDwvcD4NCiAgKiA8dWw+DQogICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLkRpc2NvdmVyeSNnZXROYW1lIDxlbT5OYW1lPC9lbT59PC9saT4NCiAgKiAgIDxsaT57QGxpbmsgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuRGlzY292ZXJ5I2dldERpc2NvdmVyZXJJZCA8ZW0+RGlzY292ZXJlciBJZDwvZW0+fTwvbGk+DQpAQCAtNDIsNyArNDMsNiBAQAogICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLkRpc2NvdmVyeSNnZXREaXNjb3ZlcmVyTGF1bmNoQ29uZmlndXJhdGlvbiA8ZW0+RGlzY292ZXJlciBMYXVuY2ggQ29uZmlndXJhdGlvbjwvZW0+fTwvbGk+DQogICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLkRpc2NvdmVyeSNnZXRDb3B5T2ZEaXNjb3ZlcmVyRGVzY3JpcHRpb24gPGVtPkNvcHkgT2YgRGlzY292ZXJlciBEZXNjcmlwdGlvbjwvZW0+fTwvbGk+DQogICogPC91bD4NCi0gKiA8L3A+DQogICoNCiAgKiBAc2VlIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLkJlbmNobWFya1BhY2thZ2UjZ2V0RGlzY292ZXJ5KCkNCiAgKiBAbW9kZWwNCkBAIC01NCw3ICs1NCw3IEBACiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQogCSAqIEBnZW5lcmF0ZWQNCiAJICovDQotCVN0cmluZyBjb3B5cmlnaHQgPSAiKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTIgSU5SSUEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlXHJcbiAqIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZVxyXG4gKiBQdWJsaWMgTGljZW5zZSB2MS4wIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0XHJcbiAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sXHJcbiAqIFxyXG4gKiBDb250cmlidXRvcnM6IEd1aWxsYXVtZSBEb3V4IC0gSU5SSUEgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb25cclxuICogXHJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuIjsNCisJU3RyaW5nIGNvcHlyaWdodCA9ICJDb3B5cmlnaHQgKGMpIDIwMTIsIDIwMTUgSU5SSUEgYW5kIE1pYS1Tb2Z0d2FyZS5cclxuQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFsc1xyXG5hcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjBcclxud2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcclxuaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWxcclxuXHJcbkNvbnRyaWJ1dG9yczpcclxuICAgICBHdWlsbGF1bWUgRG91eCAoSU5SSUEpIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzI5MiAtIFtCZW5jaG1hcmtdIGxvbmcgbXVzdCBiZSB1c2VkIHRvIHN0b3JlIG1lbW9yeSB1c2FnZVxyXG4gICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODM0MDAgLSBbQmVuY2htYXJrXSBUaGUgaW5wdXQgc2l6ZSBzaG91bGQgYmUgY29tcHV0YWJsZSBieSB0aGUgZGlzY292ZXJlclxyXG4iOw0KIA0KIAkvKioNCiAJICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9tZXRhbW9kZWwvaW50ZXJuYWwvYmVuY2htYXJrL0Rpc2NvdmVyeUl0ZXJhdGlvbi5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvRGlzY292ZXJ5SXRlcmF0aW9uLmphdmEKaW5kZXggYWZmODY1OC4uZDIwNjI1YiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvRGlzY292ZXJ5SXRlcmF0aW9uLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvRGlzY292ZXJ5SXRlcmF0aW9uLmphdmEKQEAgLTEsMTQgKzEsMTQgQEAKIC8qKg0KLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi0gKiAgKiBDb3B5cmlnaHQgKGMpIDIwMTIgSU5SSUEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlDQotICogICogYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlDQotICogICogUHVibGljIExpY2Vuc2UgdjEuMCB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KLSAqICAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQotICogICogDQotICogICogQ29udHJpYnV0b3JzOiBHdWlsbGF1bWUgRG91eCAtIElOUklBIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uDQotICogICogDQotICogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAqIENvcHlyaWdodCAoYykgMjAxMiwgMjAxNSBJTlJJQSBhbmQgTWlhLVNvZnR3YXJlLg0KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjANCisgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KKyAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQogICogDQorICogQ29udHJpYnV0b3JzOg0KKyAqICAgICAgR3VpbGxhdW1lIERvdXggKElOUklBKSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KKyAqICAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzI5MiAtIFtCZW5jaG1hcmtdIGxvbmcgbXVzdCBiZSB1c2VkIHRvIHN0b3JlIG1lbW9yeSB1c2FnZQ0KKyAqICAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzQwMCAtIFtCZW5jaG1hcmtdIFRoZSBpbnB1dCBzaXplIHNob3VsZCBiZSBjb21wdXRhYmxlIGJ5IHRoZSBkaXNjb3ZlcmVyDQogICovDQogcGFja2FnZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyazsNCiANCkBAIC0yNSw2ICsyNSw3IEBACiAgKg0KICAqIDxwPg0KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoNCisgKiA8L3A+DQogICogPHVsPg0KICAqICAgPGxpPntAbGluayBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5EaXNjb3ZlcnlJdGVyYXRpb24jZ2V0RGlzY292ZXJ5RGF0ZSA8ZW0+RGlzY292ZXJ5IERhdGU8L2VtPn08L2xpPg0KICAqICAgPGxpPntAbGluayBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5EaXNjb3ZlcnlJdGVyYXRpb24jZ2V0RGlzY292ZXJ5VGltZUluU2Vjb25kcyA8ZW0+RGlzY292ZXJ5IFRpbWUgSW4gU2Vjb25kczwvZW0+fTwvbGk+DQpAQCAtMzQsNyArMzUsNiBAQAogICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLkRpc2NvdmVyeUl0ZXJhdGlvbiNnZXRFdmVudHMgPGVtPkV2ZW50czwvZW0+fTwvbGk+DQogICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLkRpc2NvdmVyeUl0ZXJhdGlvbiNnZXRNZW1vcnlNZWFzdXJlbWVudHMgPGVtPk1lbW9yeSBNZWFzdXJlbWVudHM8L2VtPn08L2xpPg0KICAqIDwvdWw+DQotICogPC9wPg0KICAqDQogICogQHNlZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5CZW5jaG1hcmtQYWNrYWdlI2dldERpc2NvdmVyeUl0ZXJhdGlvbigpDQogICogQG1vZGVsDQpAQCAtNDYsNyArNDYsNyBAQAogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KIAkgKiBAZ2VuZXJhdGVkDQogCSAqLw0KLQlTdHJpbmcgY29weXJpZ2h0ID0gIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICogQ29weXJpZ2h0IChjKSAyMDEyIElOUklBLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZVxyXG4gKiBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2VcclxuICogUHVibGljIExpY2Vuc2UgdjEuMCB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdFxyXG4gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbFxyXG4gKiBcclxuICogQ29udHJpYnV0b3JzOiBHdWlsbGF1bWUgRG91eCAtIElOUklBIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAqIFxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiI7DQorCVN0cmluZyBjb3B5cmlnaHQgPSAiQ29weXJpZ2h0IChjKSAyMDEyLCAyMDE1IElOUklBIGFuZCBNaWEtU29mdHdhcmUuXHJcbkFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHNcclxuYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wXHJcbndoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0XHJcbmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sXHJcblxyXG5Db250cmlidXRvcnM6XHJcbiAgICAgR3VpbGxhdW1lIERvdXggKElOUklBKSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvblxyXG4gICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODMyOTIgLSBbQmVuY2htYXJrXSBsb25nIG11c3QgYmUgdXNlZCB0byBzdG9yZSBtZW1vcnkgdXNhZ2VcclxuICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzNDAwIC0gW0JlbmNobWFya10gVGhlIGlucHV0IHNpemUgc2hvdWxkIGJlIGNvbXB1dGFibGUgYnkgdGhlIGRpc2NvdmVyZXJcclxuIjsNCiANCiAJLyoqDQogCSAqIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSAnPGVtPjxiPkRpc2NvdmVyeSBEYXRlPC9iPjwvZW0+JyBhdHRyaWJ1dGUuDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvRW5kRXZlbnQuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9tZXRhbW9kZWwvaW50ZXJuYWwvYmVuY2htYXJrL0VuZEV2ZW50LmphdmEKaW5kZXggMDJlYmFjMi4uMmNmZmQ3YiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvRW5kRXZlbnQuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvbWV0YW1vZGVsL2ludGVybmFsL2JlbmNobWFyay9FbmRFdmVudC5qYXZhCkBAIC0xLDE0ICsxLDE0IEBACiAvKioNCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQotICogICogQ29weXJpZ2h0IChjKSAyMDEyIElOUklBLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZQ0KLSAqICAqIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZQ0KLSAqICAqIFB1YmxpYyBMaWNlbnNlIHYxLjAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCi0gKiAgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KLSAqICAqIA0KLSAqICAqIENvbnRyaWJ1dG9yczogR3VpbGxhdW1lIERvdXggLSBJTlJJQSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KLSAqICAqIA0KLSAqICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIsIDIwMTUgSU5SSUEgYW5kIE1pYS1Tb2Z0d2FyZS4NCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQorICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCisgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KICAqIA0KKyAqIENvbnRyaWJ1dG9yczoNCisgKiAgICAgIEd1aWxsYXVtZSBEb3V4IChJTlJJQSkgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCisgKiAgICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODMyOTIgLSBbQmVuY2htYXJrXSBsb25nIG11c3QgYmUgdXNlZCB0byBzdG9yZSBtZW1vcnkgdXNhZ2UNCisgKiAgICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODM0MDAgLSBbQmVuY2htYXJrXSBUaGUgaW5wdXQgc2l6ZSBzaG91bGQgYmUgY29tcHV0YWJsZSBieSB0aGUgZGlzY292ZXJlcg0KICAqLw0KIHBhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcms7DQogDQpAQCAtMjAsMTAgKzIwLDEwIEBACiAgKg0KICAqIDxwPg0KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoNCisgKiA8L3A+DQogICogPHVsPg0KICAqICAgPGxpPntAbGluayBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5FbmRFdmVudCNnZXRCZWdpbm5pbmcgPGVtPkJlZ2lubmluZzwvZW0+fTwvbGk+DQogICogPC91bD4NCi0gKiA8L3A+DQogICoNCiAgKiBAc2VlIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLkJlbmNobWFya1BhY2thZ2UjZ2V0RW5kRXZlbnQoKQ0KICAqIEBtb2RlbA0KQEAgLTM1LDcgKzM1LDcgQEAKIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAJICogQGdlbmVyYXRlZA0KIAkgKi8NCi0JU3RyaW5nIGNvcHlyaWdodCA9ICIqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAqIENvcHlyaWdodCAoYykgMjAxMiBJTlJJQS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGVcclxuICogYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlXHJcbiAqIFB1YmxpYyBMaWNlbnNlIHYxLjAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcclxuICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWxcclxuICogXHJcbiAqIENvbnRyaWJ1dG9yczogR3VpbGxhdW1lIERvdXggLSBJTlJJQSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvblxyXG4gKiBcclxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4iOw0KKwlTdHJpbmcgY29weXJpZ2h0ID0gIkNvcHlyaWdodCAoYykgMjAxMiwgMjAxNSBJTlJJQSBhbmQgTWlhLVNvZnR3YXJlLlxyXG5BbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzXHJcbmFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMFxyXG53aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdFxyXG5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbFxyXG5cclxuQ29udHJpYnV0b3JzOlxyXG4gICAgIEd1aWxsYXVtZSBEb3V4IChJTlJJQSkgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb25cclxuICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzMjkyIC0gW0JlbmNobWFya10gbG9uZyBtdXN0IGJlIHVzZWQgdG8gc3RvcmUgbWVtb3J5IHVzYWdlXHJcbiAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzQwMCAtIFtCZW5jaG1hcmtdIFRoZSBpbnB1dCBzaXplIHNob3VsZCBiZSBjb21wdXRhYmxlIGJ5IHRoZSBkaXNjb3ZlcmVyXHJcbiI7DQogDQogCS8qKg0KIAkgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgJzxlbT48Yj5CZWdpbm5pbmc8L2I+PC9lbT4nIHJlZmVyZW5jZS4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvbWV0YW1vZGVsL2ludGVybmFsL2JlbmNobWFyay9FdmVudC5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvRXZlbnQuamF2YQppbmRleCBhY2Y3YTQwLi5jODJlMTNkIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvbWV0YW1vZGVsL2ludGVybmFsL2JlbmNobWFyay9FdmVudC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9tZXRhbW9kZWwvaW50ZXJuYWwvYmVuY2htYXJrL0V2ZW50LmphdmEKQEAgLTEsMTQgKzEsMTQgQEAKIC8qKg0KLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi0gKiAgKiBDb3B5cmlnaHQgKGMpIDIwMTIgSU5SSUEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlDQotICogICogYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlDQotICogICogUHVibGljIExpY2Vuc2UgdjEuMCB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KLSAqICAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQotICogICogDQotICogICogQ29udHJpYnV0b3JzOiBHdWlsbGF1bWUgRG91eCAtIElOUklBIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uDQotICogICogDQotICogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAqIENvcHlyaWdodCAoYykgMjAxMiwgMjAxNSBJTlJJQSBhbmQgTWlhLVNvZnR3YXJlLg0KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjANCisgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KKyAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQogICogDQorICogQ29udHJpYnV0b3JzOg0KKyAqICAgICAgR3VpbGxhdW1lIERvdXggKElOUklBKSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KKyAqICAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzI5MiAtIFtCZW5jaG1hcmtdIGxvbmcgbXVzdCBiZSB1c2VkIHRvIHN0b3JlIG1lbW9yeSB1c2FnZQ0KKyAqICAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzQwMCAtIFtCZW5jaG1hcmtdIFRoZSBpbnB1dCBzaXplIHNob3VsZCBiZSBjb21wdXRhYmxlIGJ5IHRoZSBkaXNjb3ZlcmVyDQogICovDQogcGFja2FnZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyazsNCiANCkBAIC0yMSwxMSArMjEsMTEgQEAKICAqDQogICogPHA+DQogICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOg0KKyAqIDwvcD4NCiAgKiA8dWw+DQogICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLkV2ZW50I2dldFRpbWUgPGVtPlRpbWU8L2VtPn08L2xpPg0KICAqICAgPGxpPntAbGluayBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5FdmVudCNnZXRFdmVudFR5cGUgPGVtPkV2ZW50IFR5cGU8L2VtPn08L2xpPg0KICAqIDwvdWw+DQotICogPC9wPg0KICAqDQogICogQHNlZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5CZW5jaG1hcmtQYWNrYWdlI2dldEV2ZW50KCkNCiAgKiBAbW9kZWwNCkBAIC0zNyw3ICszNyw3IEBACiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQogCSAqIEBnZW5lcmF0ZWQNCiAJICovDQotCVN0cmluZyBjb3B5cmlnaHQgPSAiKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTIgSU5SSUEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlXHJcbiAqIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZVxyXG4gKiBQdWJsaWMgTGljZW5zZSB2MS4wIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0XHJcbiAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sXHJcbiAqIFxyXG4gKiBDb250cmlidXRvcnM6IEd1aWxsYXVtZSBEb3V4IC0gSU5SSUEgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb25cclxuICogXHJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuIjsNCisJU3RyaW5nIGNvcHlyaWdodCA9ICJDb3B5cmlnaHQgKGMpIDIwMTIsIDIwMTUgSU5SSUEgYW5kIE1pYS1Tb2Z0d2FyZS5cclxuQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFsc1xyXG5hcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjBcclxud2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcclxuaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWxcclxuXHJcbkNvbnRyaWJ1dG9yczpcclxuICAgICBHdWlsbGF1bWUgRG91eCAoSU5SSUEpIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzI5MiAtIFtCZW5jaG1hcmtdIGxvbmcgbXVzdCBiZSB1c2VkIHRvIHN0b3JlIG1lbW9yeSB1c2FnZVxyXG4gICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODM0MDAgLSBbQmVuY2htYXJrXSBUaGUgaW5wdXQgc2l6ZSBzaG91bGQgYmUgY29tcHV0YWJsZSBieSB0aGUgZGlzY292ZXJlclxyXG4iOw0KIA0KIAkvKioNCiAJICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlICc8ZW0+PGI+VGltZTwvYj48L2VtPicgYXR0cmlidXRlLg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9tZXRhbW9kZWwvaW50ZXJuYWwvYmVuY2htYXJrL0V2ZW50VHlwZS5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvRXZlbnRUeXBlLmphdmEKaW5kZXggMDYwYTdiNS4uODVlNTAyZCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvRXZlbnRUeXBlLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvRXZlbnRUeXBlLmphdmEKQEAgLTEsMTQgKzEsMTQgQEAKIC8qKg0KLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi0gKiAgKiBDb3B5cmlnaHQgKGMpIDIwMTIgSU5SSUEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlDQotICogICogYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlDQotICogICogUHVibGljIExpY2Vuc2UgdjEuMCB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KLSAqICAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQotICogICogDQotICogICogQ29udHJpYnV0b3JzOiBHdWlsbGF1bWUgRG91eCAtIElOUklBIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uDQotICogICogDQotICogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAqIENvcHlyaWdodCAoYykgMjAxMiwgMjAxNSBJTlJJQSBhbmQgTWlhLVNvZnR3YXJlLg0KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjANCisgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KKyAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQogICogDQorICogQ29udHJpYnV0b3JzOg0KKyAqICAgICAgR3VpbGxhdW1lIERvdXggKElOUklBKSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KKyAqICAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzI5MiAtIFtCZW5jaG1hcmtdIGxvbmcgbXVzdCBiZSB1c2VkIHRvIHN0b3JlIG1lbW9yeSB1c2FnZQ0KKyAqICAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzQwMCAtIFtCZW5jaG1hcmtdIFRoZSBpbnB1dCBzaXplIHNob3VsZCBiZSBjb21wdXRhYmxlIGJ5IHRoZSBkaXNjb3ZlcmVyDQogICovDQogcGFja2FnZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyazsNCiANCkBAIC0yMSwxMCArMjEsMTAgQEAKICAqDQogICogPHA+DQogICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOg0KKyAqIDwvcD4NCiAgKiA8dWw+DQogICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLkV2ZW50VHlwZSNnZXROYW1lIDxlbT5OYW1lPC9lbT59PC9saT4NCiAgKiA8L3VsPg0KLSAqIDwvcD4NCiAgKg0KICAqIEBzZWUgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuQmVuY2htYXJrUGFja2FnZSNnZXRFdmVudFR5cGUoKQ0KICAqIEBtb2RlbA0KQEAgLTM2LDcgKzM2LDcgQEAKIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAJICogQGdlbmVyYXRlZA0KIAkgKi8NCi0JU3RyaW5nIGNvcHlyaWdodCA9ICIqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAqIENvcHlyaWdodCAoYykgMjAxMiBJTlJJQS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGVcclxuICogYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlXHJcbiAqIFB1YmxpYyBMaWNlbnNlIHYxLjAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcclxuICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWxcclxuICogXHJcbiAqIENvbnRyaWJ1dG9yczogR3VpbGxhdW1lIERvdXggLSBJTlJJQSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvblxyXG4gKiBcclxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4iOw0KKwlTdHJpbmcgY29weXJpZ2h0ID0gIkNvcHlyaWdodCAoYykgMjAxMiwgMjAxNSBJTlJJQSBhbmQgTWlhLVNvZnR3YXJlLlxyXG5BbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzXHJcbmFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMFxyXG53aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdFxyXG5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbFxyXG5cclxuQ29udHJpYnV0b3JzOlxyXG4gICAgIEd1aWxsYXVtZSBEb3V4IChJTlJJQSkgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb25cclxuICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzMjkyIC0gW0JlbmNobWFya10gbG9uZyBtdXN0IGJlIHVzZWQgdG8gc3RvcmUgbWVtb3J5IHVzYWdlXHJcbiAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzQwMCAtIFtCZW5jaG1hcmtdIFRoZSBpbnB1dCBzaXplIHNob3VsZCBiZSBjb21wdXRhYmxlIGJ5IHRoZSBkaXNjb3ZlcmVyXHJcbiI7DQogDQogCS8qKg0KIAkgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvRmlsZS5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvRmlsZS5qYXZhCmluZGV4IGU3ZjM1YmYuLjgzN2U2MTEgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9tZXRhbW9kZWwvaW50ZXJuYWwvYmVuY2htYXJrL0ZpbGUuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvbWV0YW1vZGVsL2ludGVybmFsL2JlbmNobWFyay9GaWxlLmphdmEKQEAgLTEsMTQgKzEsMTQgQEAKIC8qKg0KLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi0gKiAgKiBDb3B5cmlnaHQgKGMpIDIwMTIgSU5SSUEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlDQotICogICogYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlDQotICogICogUHVibGljIExpY2Vuc2UgdjEuMCB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KLSAqICAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQotICogICogDQotICogICogQ29udHJpYnV0b3JzOiBHdWlsbGF1bWUgRG91eCAtIElOUklBIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uDQotICogICogDQotICogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAqIENvcHlyaWdodCAoYykgMjAxMiwgMjAxNSBJTlJJQSBhbmQgTWlhLVNvZnR3YXJlLg0KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjANCisgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KKyAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQogICogDQorICogQ29udHJpYnV0b3JzOg0KKyAqICAgICAgR3VpbGxhdW1lIERvdXggKElOUklBKSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KKyAqICAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzI5MiAtIFtCZW5jaG1hcmtdIGxvbmcgbXVzdCBiZSB1c2VkIHRvIHN0b3JlIG1lbW9yeSB1c2FnZQ0KKyAqICAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzQwMCAtIFtCZW5jaG1hcmtdIFRoZSBpbnB1dCBzaXplIHNob3VsZCBiZSBjb21wdXRhYmxlIGJ5IHRoZSBkaXNjb3ZlcmVyDQogICovDQogcGFja2FnZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyazsNCiANCkBAIC0yMSwxMiArMjEsMTIgQEAKICAqDQogICogPHA+DQogICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOg0KKyAqIDwvcD4NCiAgKiA8dWw+DQogICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLkZpbGUjZ2V0U2l6ZUluQnl0ZXMgPGVtPlNpemUgSW4gQnl0ZXM8L2VtPn08L2xpPg0KICAqICAgPGxpPntAbGluayBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5GaWxlI2dldExpbmVzIDxlbT5MaW5lczwvZW0+fTwvbGk+DQogICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLkZpbGUjZ2V0RmlsZXBhdGggPGVtPkZpbGVwYXRoPC9lbT59PC9saT4NCiAgKiA8L3VsPg0KLSAqIDwvcD4NCiAgKg0KICAqIEBzZWUgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuQmVuY2htYXJrUGFja2FnZSNnZXRGaWxlKCkNCiAgKiBAbW9kZWwNCkBAIC0zOCw3ICszOCw3IEBACiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQogCSAqIEBnZW5lcmF0ZWQNCiAJICovDQotCVN0cmluZyBjb3B5cmlnaHQgPSAiKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTIgSU5SSUEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlXHJcbiAqIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZVxyXG4gKiBQdWJsaWMgTGljZW5zZSB2MS4wIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0XHJcbiAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sXHJcbiAqIFxyXG4gKiBDb250cmlidXRvcnM6IEd1aWxsYXVtZSBEb3V4IC0gSU5SSUEgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb25cclxuICogXHJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuIjsNCisJU3RyaW5nIGNvcHlyaWdodCA9ICJDb3B5cmlnaHQgKGMpIDIwMTIsIDIwMTUgSU5SSUEgYW5kIE1pYS1Tb2Z0d2FyZS5cclxuQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFsc1xyXG5hcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjBcclxud2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcclxuaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWxcclxuXHJcbkNvbnRyaWJ1dG9yczpcclxuICAgICBHdWlsbGF1bWUgRG91eCAoSU5SSUEpIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzI5MiAtIFtCZW5jaG1hcmtdIGxvbmcgbXVzdCBiZSB1c2VkIHRvIHN0b3JlIG1lbW9yeSB1c2FnZVxyXG4gICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODM0MDAgLSBbQmVuY2htYXJrXSBUaGUgaW5wdXQgc2l6ZSBzaG91bGQgYmUgY29tcHV0YWJsZSBieSB0aGUgZGlzY292ZXJlclxyXG4iOw0KIA0KIAkvKioNCiAJICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlICc8ZW0+PGI+U2l6ZSBJbiBCeXRlczwvYj48L2VtPicgYXR0cmlidXRlLg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9tZXRhbW9kZWwvaW50ZXJuYWwvYmVuY2htYXJrL01lbW9yeU1lYXN1cmVtZW50LmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvbWV0YW1vZGVsL2ludGVybmFsL2JlbmNobWFyay9NZW1vcnlNZWFzdXJlbWVudC5qYXZhCmluZGV4IDdjZGZhYTIuLjM0YjRmYmEgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9tZXRhbW9kZWwvaW50ZXJuYWwvYmVuY2htYXJrL01lbW9yeU1lYXN1cmVtZW50LmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvTWVtb3J5TWVhc3VyZW1lbnQuamF2YQpAQCAtMSwxNCArMSwxNCBAQAogLyoqDQotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLSAqICAqIENvcHlyaWdodCAoYykgMjAxMiBJTlJJQS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUNCi0gKiAgKiBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UNCi0gKiAgKiBQdWJsaWMgTGljZW5zZSB2MS4wIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQotICogICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCi0gKiAgKiANCi0gKiAgKiBDb250cmlidXRvcnM6IEd1aWxsYXVtZSBEb3V4IC0gSU5SSUEgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCi0gKiAgKiANCi0gKiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICogQ29weXJpZ2h0IChjKSAyMDEyLCAyMDE1IElOUklBIGFuZCBNaWEtU29mdHdhcmUuDQorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KKyAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQorICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCiAgKiANCisgKiBDb250cmlidXRvcnM6DQorICogICAgICBHdWlsbGF1bWUgRG91eCAoSU5SSUEpIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uDQorICogICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzMjkyIC0gW0JlbmNobWFya10gbG9uZyBtdXN0IGJlIHVzZWQgdG8gc3RvcmUgbWVtb3J5IHVzYWdlDQorICogICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzNDAwIC0gW0JlbmNobWFya10gVGhlIGlucHV0IHNpemUgc2hvdWxkIGJlIGNvbXB1dGFibGUgYnkgdGhlIGRpc2NvdmVyZXINCiAgKi8NCiBwYWNrYWdlIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrOw0KIA0KQEAgLTIwLDEwICsyMCwxMCBAQAogICoNCiAgKiA8cD4NCiAgKiBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQ6DQorICogPC9wPg0KICAqIDx1bD4NCiAgKiAgIDxsaT57QGxpbmsgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuTWVtb3J5TWVhc3VyZW1lbnQjZ2V0TWVtb3J5VXNlZCA8ZW0+TWVtb3J5IFVzZWQ8L2VtPn08L2xpPg0KICAqIDwvdWw+DQotICogPC9wPg0KICAqDQogICogQHNlZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5CZW5jaG1hcmtQYWNrYWdlI2dldE1lbW9yeU1lYXN1cmVtZW50KCkNCiAgKiBAbW9kZWwNCkBAIC0zNSw3ICszNSw3IEBACiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQogCSAqIEBnZW5lcmF0ZWQNCiAJICovDQotCVN0cmluZyBjb3B5cmlnaHQgPSAiKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTIgSU5SSUEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlXHJcbiAqIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZVxyXG4gKiBQdWJsaWMgTGljZW5zZSB2MS4wIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0XHJcbiAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sXHJcbiAqIFxyXG4gKiBDb250cmlidXRvcnM6IEd1aWxsYXVtZSBEb3V4IC0gSU5SSUEgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb25cclxuICogXHJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuIjsNCisJU3RyaW5nIGNvcHlyaWdodCA9ICJDb3B5cmlnaHQgKGMpIDIwMTIsIDIwMTUgSU5SSUEgYW5kIE1pYS1Tb2Z0d2FyZS5cclxuQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFsc1xyXG5hcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjBcclxud2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcclxuaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWxcclxuXHJcbkNvbnRyaWJ1dG9yczpcclxuICAgICBHdWlsbGF1bWUgRG91eCAoSU5SSUEpIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzI5MiAtIFtCZW5jaG1hcmtdIGxvbmcgbXVzdCBiZSB1c2VkIHRvIHN0b3JlIG1lbW9yeSB1c2FnZVxyXG4gICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODM0MDAgLSBbQmVuY2htYXJrXSBUaGUgaW5wdXQgc2l6ZSBzaG91bGQgYmUgY29tcHV0YWJsZSBieSB0aGUgZGlzY292ZXJlclxyXG4iOw0KIA0KIAkvKioNCiAJICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlICc8ZW0+PGI+TWVtb3J5IFVzZWQ8L2I+PC9lbT4nIGF0dHJpYnV0ZS4NCkBAIC00NiwxMiArNDYsMTIgQEAKIAkgKiA8L3A+DQogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KIAkgKiBAcmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgJzxlbT5NZW1vcnkgVXNlZDwvZW0+JyBhdHRyaWJ1dGUuDQotCSAqIEBzZWUgI3NldE1lbW9yeVVzZWQoaW50KQ0KKwkgKiBAc2VlICNzZXRNZW1vcnlVc2VkKGxvbmcpDQogCSAqIEBzZWUgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuQmVuY2htYXJrUGFja2FnZSNnZXRNZW1vcnlNZWFzdXJlbWVudF9NZW1vcnlVc2VkKCkNCiAJICogQG1vZGVsDQogCSAqIEBnZW5lcmF0ZWQNCiAJICovDQotCWludCBnZXRNZW1vcnlVc2VkKCk7DQorCWxvbmcgZ2V0TWVtb3J5VXNlZCgpOw0KIA0KIAkvKioNCiAJICogU2V0cyB0aGUgdmFsdWUgb2YgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuTWVtb3J5TWVhc3VyZW1lbnQjZ2V0TWVtb3J5VXNlZCA8ZW0+TWVtb3J5IFVzZWQ8L2VtPn0nIGF0dHJpYnV0ZS4NCkBAIC02MSw2ICs2MSw2IEBACiAJICogQHNlZSAjZ2V0TWVtb3J5VXNlZCgpDQogCSAqIEBnZW5lcmF0ZWQNCiAJICovDQotCXZvaWQgc2V0TWVtb3J5VXNlZChpbnQgdmFsdWUpOw0KKwl2b2lkIHNldE1lbW9yeVVzZWQobG9uZyB2YWx1ZSk7DQogDQogfSAvLyBNZW1vcnlNZWFzdXJlbWVudA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9tZXRhbW9kZWwvaW50ZXJuYWwvYmVuY2htYXJrL1Byb2plY3QuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9tZXRhbW9kZWwvaW50ZXJuYWwvYmVuY2htYXJrL1Byb2plY3QuamF2YQppbmRleCBjNDZjNjczLi5hYzc4OWVhIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvbWV0YW1vZGVsL2ludGVybmFsL2JlbmNobWFyay9Qcm9qZWN0LmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvUHJvamVjdC5qYXZhCkBAIC0xLDE0ICsxLDE0IEBACiAvKioNCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQotICogICogQ29weXJpZ2h0IChjKSAyMDEyIElOUklBLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZQ0KLSAqICAqIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZQ0KLSAqICAqIFB1YmxpYyBMaWNlbnNlIHYxLjAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCi0gKiAgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KLSAqICAqIA0KLSAqICAqIENvbnRyaWJ1dG9yczogR3VpbGxhdW1lIERvdXggLSBJTlJJQSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KLSAqICAqIA0KLSAqICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIsIDIwMTUgSU5SSUEgYW5kIE1pYS1Tb2Z0d2FyZS4NCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQorICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCisgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KICAqIA0KKyAqIENvbnRyaWJ1dG9yczoNCisgKiAgICAgIEd1aWxsYXVtZSBEb3V4IChJTlJJQSkgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCisgKiAgICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODMyOTIgLSBbQmVuY2htYXJrXSBsb25nIG11c3QgYmUgdXNlZCB0byBzdG9yZSBtZW1vcnkgdXNhZ2UNCisgKiAgICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODM0MDAgLSBbQmVuY2htYXJrXSBUaGUgaW5wdXQgc2l6ZSBzaG91bGQgYmUgY29tcHV0YWJsZSBieSB0aGUgZGlzY292ZXJlcg0KICAqLw0KIHBhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcms7DQogDQpAQCAtMjEsMTMgKzIxLDE1IEBACiAgKg0KICAqIDxwPg0KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoNCisgKiA8L3A+DQogICogPHVsPg0KICAqICAgPGxpPntAbGluayBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5Qcm9qZWN0I2dldFRvdGFsTGluZXMgPGVtPlRvdGFsIExpbmVzPC9lbT59PC9saT4NCiAgKiAgIDxsaT57QGxpbmsgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuUHJvamVjdCNnZXRBdmVyYWdlRmlsZVNpemVJbkJ5dGVzIDxlbT5BdmVyYWdlIEZpbGUgU2l6ZSBJbiBCeXRlczwvZW0+fTwvbGk+DQogICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLlByb2plY3QjZ2V0QXZlcmFnZUxpbmVzUGVyRmlsZSA8ZW0+QXZlcmFnZSBMaW5lcyBQZXIgRmlsZTwvZW0+fTwvbGk+DQogICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLlByb2plY3QjZ2V0RmlsZXMgPGVtPkZpbGVzPC9lbT59PC9saT4NCisgKiAgIDxsaT57QGxpbmsgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuUHJvamVjdCNnZXRJbnB1dFNpemUgPGVtPklucHV0IFNpemU8L2VtPn08L2xpPg0KKyAqICAgPGxpPntAbGluayBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5Qcm9qZWN0I2dldElucHV0U2l6ZVVuaXQgPGVtPklucHV0IFNpemUgVW5pdDwvZW0+fTwvbGk+DQogICogPC91bD4NCi0gKiA8L3A+DQogICoNCiAgKiBAc2VlIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLkJlbmNobWFya1BhY2thZ2UjZ2V0UHJvamVjdCgpDQogICogQG1vZGVsDQpAQCAtMzksNyArNDEsNyBAQAogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KIAkgKiBAZ2VuZXJhdGVkDQogCSAqLw0KLQlTdHJpbmcgY29weXJpZ2h0ID0gIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICogQ29weXJpZ2h0IChjKSAyMDEyIElOUklBLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZVxyXG4gKiBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2VcclxuICogUHVibGljIExpY2Vuc2UgdjEuMCB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdFxyXG4gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbFxyXG4gKiBcclxuICogQ29udHJpYnV0b3JzOiBHdWlsbGF1bWUgRG91eCAtIElOUklBIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAqIFxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiI7DQorCVN0cmluZyBjb3B5cmlnaHQgPSAiQ29weXJpZ2h0IChjKSAyMDEyLCAyMDE1IElOUklBIGFuZCBNaWEtU29mdHdhcmUuXHJcbkFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHNcclxuYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wXHJcbndoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0XHJcbmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sXHJcblxyXG5Db250cmlidXRvcnM6XHJcbiAgICAgR3VpbGxhdW1lIERvdXggKElOUklBKSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvblxyXG4gICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODMyOTIgLSBbQmVuY2htYXJrXSBsb25nIG11c3QgYmUgdXNlZCB0byBzdG9yZSBtZW1vcnkgdXNhZ2VcclxuICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzNDAwIC0gW0JlbmNobWFya10gVGhlIGlucHV0IHNpemUgc2hvdWxkIGJlIGNvbXB1dGFibGUgYnkgdGhlIGRpc2NvdmVyZXJcclxuIjsNCiANCiAJLyoqDQogCSAqIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSAnPGVtPjxiPlRvdGFsIExpbmVzPC9iPjwvZW0+JyBhdHRyaWJ1dGUuDQpAQCAtMTM1LDQgKzEzNyw1NiBAQAogCSAqLw0KIAlFTGlzdDxGaWxlPiBnZXRGaWxlcygpOw0KIA0KKwkvKioNCisJICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlICc8ZW0+PGI+SW5wdXQgU2l6ZTwvYj48L2VtPicgYXR0cmlidXRlLg0KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KKwkgKiA8cD4NCisJICogSWYgdGhlIG1lYW5pbmcgb2YgdGhlICc8ZW0+SW5wdXQgU2l6ZTwvZW0+JyBhdHRyaWJ1dGUgaXNuJ3QgY2xlYXIsDQorCSAqIHRoZXJlIHJlYWxseSBzaG91bGQgYmUgbW9yZSBvZiBhIGRlc2NyaXB0aW9uIGhlcmUuLi4NCisJICogPC9wPg0KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCisJICogQHJldHVybiB0aGUgdmFsdWUgb2YgdGhlICc8ZW0+SW5wdXQgU2l6ZTwvZW0+JyBhdHRyaWJ1dGUuDQorCSAqIEBzZWUgI3NldElucHV0U2l6ZShkb3VibGUpDQorCSAqIEBzZWUgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuQmVuY2htYXJrUGFja2FnZSNnZXRQcm9qZWN0X0lucHV0U2l6ZSgpDQorCSAqIEBtb2RlbA0KKwkgKiBAZ2VuZXJhdGVkDQorCSAqLw0KKwlkb3VibGUgZ2V0SW5wdXRTaXplKCk7DQorDQorCS8qKg0KKwkgKiBTZXRzIHRoZSB2YWx1ZSBvZiB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5Qcm9qZWN0I2dldElucHV0U2l6ZSA8ZW0+SW5wdXQgU2l6ZTwvZW0+fScgYXR0cmlidXRlLg0KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCisJICogQHBhcmFtIHZhbHVlIHRoZSBuZXcgdmFsdWUgb2YgdGhlICc8ZW0+SW5wdXQgU2l6ZTwvZW0+JyBhdHRyaWJ1dGUuDQorCSAqIEBzZWUgI2dldElucHV0U2l6ZSgpDQorCSAqIEBnZW5lcmF0ZWQNCisJICovDQorCXZvaWQgc2V0SW5wdXRTaXplKGRvdWJsZSB2YWx1ZSk7DQorDQorCS8qKg0KKwkgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgJzxlbT48Yj5JbnB1dCBTaXplIFVuaXQ8L2I+PC9lbT4nIGF0dHJpYnV0ZS4NCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCisJICogPHA+DQorCSAqIElmIHRoZSBtZWFuaW5nIG9mIHRoZSAnPGVtPklucHV0IFNpemUgVW5pdDwvZW0+JyBhdHRyaWJ1dGUgaXNuJ3QgY2xlYXIsDQorCSAqIHRoZXJlIHJlYWxseSBzaG91bGQgYmUgbW9yZSBvZiBhIGRlc2NyaXB0aW9uIGhlcmUuLi4NCisJICogPC9wPg0KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCisJICogQHJldHVybiB0aGUgdmFsdWUgb2YgdGhlICc8ZW0+SW5wdXQgU2l6ZSBVbml0PC9lbT4nIGF0dHJpYnV0ZS4NCisJICogQHNlZSAjc2V0SW5wdXRTaXplVW5pdChTdHJpbmcpDQorCSAqIEBzZWUgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuQmVuY2htYXJrUGFja2FnZSNnZXRQcm9qZWN0X0lucHV0U2l6ZVVuaXQoKQ0KKwkgKiBAbW9kZWwNCisJICogQGdlbmVyYXRlZA0KKwkgKi8NCisJU3RyaW5nIGdldElucHV0U2l6ZVVuaXQoKTsNCisNCisJLyoqDQorCSAqIFNldHMgdGhlIHZhbHVlIG9mIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLlByb2plY3QjZ2V0SW5wdXRTaXplVW5pdCA8ZW0+SW5wdXQgU2l6ZSBVbml0PC9lbT59JyBhdHRyaWJ1dGUuDQorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+DQorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KKwkgKiBAcGFyYW0gdmFsdWUgdGhlIG5ldyB2YWx1ZSBvZiB0aGUgJzxlbT5JbnB1dCBTaXplIFVuaXQ8L2VtPicgYXR0cmlidXRlLg0KKwkgKiBAc2VlICNnZXRJbnB1dFNpemVVbml0KCkNCisJICogQGdlbmVyYXRlZA0KKwkgKi8NCisJdm9pZCBzZXRJbnB1dFNpemVVbml0KFN0cmluZyB2YWx1ZSk7DQorDQogfSAvLyBQcm9qZWN0DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvUmVzb3VyY2UuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9tZXRhbW9kZWwvaW50ZXJuYWwvYmVuY2htYXJrL1Jlc291cmNlLmphdmEKaW5kZXggNjQwZDMyMi4uMmE5ZDRiMiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvUmVzb3VyY2UuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvbWV0YW1vZGVsL2ludGVybmFsL2JlbmNobWFyay9SZXNvdXJjZS5qYXZhCkBAIC0xLDE0ICsxLDE0IEBACiAvKioNCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQotICogICogQ29weXJpZ2h0IChjKSAyMDEyIElOUklBLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZQ0KLSAqICAqIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZQ0KLSAqICAqIFB1YmxpYyBMaWNlbnNlIHYxLjAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCi0gKiAgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KLSAqICAqIA0KLSAqICAqIENvbnRyaWJ1dG9yczogR3VpbGxhdW1lIERvdXggLSBJTlJJQSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KLSAqICAqIA0KLSAqICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIsIDIwMTUgSU5SSUEgYW5kIE1pYS1Tb2Z0d2FyZS4NCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQorICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCisgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KICAqIA0KKyAqIENvbnRyaWJ1dG9yczoNCisgKiAgICAgIEd1aWxsYXVtZSBEb3V4IChJTlJJQSkgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCisgKiAgICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODMyOTIgLSBbQmVuY2htYXJrXSBsb25nIG11c3QgYmUgdXNlZCB0byBzdG9yZSBtZW1vcnkgdXNhZ2UNCisgKiAgICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODM0MDAgLSBbQmVuY2htYXJrXSBUaGUgaW5wdXQgc2l6ZSBzaG91bGQgYmUgY29tcHV0YWJsZSBieSB0aGUgZGlzY292ZXJlcg0KICAqLw0KIHBhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcms7DQogDQpAQCAtMjEsMTEgKzIxLDExIEBACiAgKg0KICAqIDxwPg0KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoNCisgKiA8L3A+DQogICogPHVsPg0KICAqICAgPGxpPntAbGluayBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5SZXNvdXJjZSNnZXROYW1lIDxlbT5OYW1lPC9lbT59PC9saT4NCiAgKiAgIDxsaT57QGxpbmsgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuUmVzb3VyY2UjZ2V0VG90YWxTaXplSW5CeXRlcyA8ZW0+VG90YWwgU2l6ZSBJbiBCeXRlczwvZW0+fTwvbGk+DQogICogPC91bD4NCi0gKiA8L3A+DQogICoNCiAgKiBAc2VlIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLkJlbmNobWFya1BhY2thZ2UjZ2V0UmVzb3VyY2UoKQ0KICAqIEBtb2RlbCBhYnN0cmFjdD0idHJ1ZSINCkBAIC0zNyw3ICszNyw3IEBACiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQogCSAqIEBnZW5lcmF0ZWQNCiAJICovDQotCVN0cmluZyBjb3B5cmlnaHQgPSAiKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTIgSU5SSUEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlXHJcbiAqIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZVxyXG4gKiBQdWJsaWMgTGljZW5zZSB2MS4wIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0XHJcbiAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sXHJcbiAqIFxyXG4gKiBDb250cmlidXRvcnM6IEd1aWxsYXVtZSBEb3V4IC0gSU5SSUEgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb25cclxuICogXHJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuIjsNCisJU3RyaW5nIGNvcHlyaWdodCA9ICJDb3B5cmlnaHQgKGMpIDIwMTIsIDIwMTUgSU5SSUEgYW5kIE1pYS1Tb2Z0d2FyZS5cclxuQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFsc1xyXG5hcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjBcclxud2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcclxuaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWxcclxuXHJcbkNvbnRyaWJ1dG9yczpcclxuICAgICBHdWlsbGF1bWUgRG91eCAoSU5SSUEpIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzI5MiAtIFtCZW5jaG1hcmtdIGxvbmcgbXVzdCBiZSB1c2VkIHRvIHN0b3JlIG1lbW9yeSB1c2FnZVxyXG4gICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODM0MDAgLSBbQmVuY2htYXJrXSBUaGUgaW5wdXQgc2l6ZSBzaG91bGQgYmUgY29tcHV0YWJsZSBieSB0aGUgZGlzY292ZXJlclxyXG4iOw0KIA0KIAkvKioNCiAJICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9tZXRhbW9kZWwvaW50ZXJuYWwvYmVuY2htYXJrL2ltcGwvQmVnaW5FdmVudEltcGwuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9tZXRhbW9kZWwvaW50ZXJuYWwvYmVuY2htYXJrL2ltcGwvQmVnaW5FdmVudEltcGwuamF2YQppbmRleCA1MjEwOTU0Li5jY2I1YjM0IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvbWV0YW1vZGVsL2ludGVybmFsL2JlbmNobWFyay9pbXBsL0JlZ2luRXZlbnRJbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvaW1wbC9CZWdpbkV2ZW50SW1wbC5qYXZhCkBAIC0xLDE0ICsxLDE0IEBACiAvKioNCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQotICogICogQ29weXJpZ2h0IChjKSAyMDEyIElOUklBLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZQ0KLSAqICAqIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZQ0KLSAqICAqIFB1YmxpYyBMaWNlbnNlIHYxLjAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCi0gKiAgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KLSAqICAqIA0KLSAqICAqIENvbnRyaWJ1dG9yczogR3VpbGxhdW1lIERvdXggLSBJTlJJQSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KLSAqICAqIA0KLSAqICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIsIDIwMTUgSU5SSUEgYW5kIE1pYS1Tb2Z0d2FyZS4NCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQorICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCisgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KICAqIA0KKyAqIENvbnRyaWJ1dG9yczoNCisgKiAgICAgIEd1aWxsYXVtZSBEb3V4IChJTlJJQSkgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCisgKiAgICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODMyOTIgLSBbQmVuY2htYXJrXSBsb25nIG11c3QgYmUgdXNlZCB0byBzdG9yZSBtZW1vcnkgdXNhZ2UNCisgKiAgICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODM0MDAgLSBbQmVuY2htYXJrXSBUaGUgaW5wdXQgc2l6ZSBzaG91bGQgYmUgY29tcHV0YWJsZSBieSB0aGUgZGlzY292ZXJlcg0KICAqLw0KIHBhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuaW1wbDsNCiANCkBAIC0yMSw4ICsyMSw2IEBACiAgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KICAqIEFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5CZWdpbiBFdmVudDwvYj48L2VtPicuDQogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQotICogPHA+DQotICogPC9wPg0KICAqDQogICogQGdlbmVyYXRlZA0KICAqLw0KQEAgLTMyLDcgKzMwLDcgQEAKIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAJICogQGdlbmVyYXRlZA0KIAkgKi8NCi0JcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0ID0gIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICogQ29weXJpZ2h0IChjKSAyMDEyIElOUklBLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZVxyXG4gKiBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2VcclxuICogUHVibGljIExpY2Vuc2UgdjEuMCB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdFxyXG4gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbFxyXG4gKiBcclxuICogQ29udHJpYnV0b3JzOiBHdWlsbGF1bWUgRG91eCAtIElOUklBIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAqIFxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiI7DQorCXB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodCA9ICJDb3B5cmlnaHQgKGMpIDIwMTIsIDIwMTUgSU5SSUEgYW5kIE1pYS1Tb2Z0d2FyZS5cclxuQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFsc1xyXG5hcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjBcclxud2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcclxuaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWxcclxuXHJcbkNvbnRyaWJ1dG9yczpcclxuICAgICBHdWlsbGF1bWUgRG91eCAoSU5SSUEpIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzI5MiAtIFtCZW5jaG1hcmtdIGxvbmcgbXVzdCBiZSB1c2VkIHRvIHN0b3JlIG1lbW9yeSB1c2FnZVxyXG4gICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODM0MDAgLSBbQmVuY2htYXJrXSBUaGUgaW5wdXQgc2l6ZSBzaG91bGQgYmUgY29tcHV0YWJsZSBieSB0aGUgZGlzY292ZXJlclxyXG4iOw0KIA0KIAkvKioNCiAJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvbWV0YW1vZGVsL2ludGVybmFsL2JlbmNobWFyay9pbXBsL0JlbmNobWFya0ZhY3RvcnlJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvbWV0YW1vZGVsL2ludGVybmFsL2JlbmNobWFyay9pbXBsL0JlbmNobWFya0ZhY3RvcnlJbXBsLmphdmEKaW5kZXggNDhhYmNmYy4uMjZiZGQ5ZSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvaW1wbC9CZW5jaG1hcmtGYWN0b3J5SW1wbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9tZXRhbW9kZWwvaW50ZXJuYWwvYmVuY2htYXJrL2ltcGwvQmVuY2htYXJrRmFjdG9yeUltcGwuamF2YQpAQCAtMSwxNCArMSwxNCBAQAogLyoqDQotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLSAqICAqIENvcHlyaWdodCAoYykgMjAxMiBJTlJJQS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUNCi0gKiAgKiBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UNCi0gKiAgKiBQdWJsaWMgTGljZW5zZSB2MS4wIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQotICogICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCi0gKiAgKiANCi0gKiAgKiBDb250cmlidXRvcnM6IEd1aWxsYXVtZSBEb3V4IC0gSU5SSUEgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCi0gKiAgKiANCi0gKiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICogQ29weXJpZ2h0IChjKSAyMDEyLCAyMDE1IElOUklBIGFuZCBNaWEtU29mdHdhcmUuDQorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KKyAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQorICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCiAgKiANCisgKiBDb250cmlidXRvcnM6DQorICogICAgICBHdWlsbGF1bWUgRG91eCAoSU5SSUEpIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uDQorICogICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzMjkyIC0gW0JlbmNobWFya10gbG9uZyBtdXN0IGJlIHVzZWQgdG8gc3RvcmUgbWVtb3J5IHVzYWdlDQorICogICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzNDAwIC0gW0JlbmNobWFya10gVGhlIGlucHV0IHNpemUgc2hvdWxkIGJlIGNvbXB1dGFibGUgYnkgdGhlIGRpc2NvdmVyZXINCiAgKi8NCiBwYWNrYWdlIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLmltcGw7DQogDQpAQCAtMzQsNyArMzQsNyBAQAogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KIAkgKiBAZ2VuZXJhdGVkDQogCSAqLw0KLQlwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHQgPSAiKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTIgSU5SSUEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlXHJcbiAqIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZVxyXG4gKiBQdWJsaWMgTGljZW5zZSB2MS4wIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0XHJcbiAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sXHJcbiAqIFxyXG4gKiBDb250cmlidXRvcnM6IEd1aWxsYXVtZSBEb3V4IC0gSU5SSUEgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb25cclxuICogXHJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuIjsNCisJcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0ID0gIkNvcHlyaWdodCAoYykgMjAxMiwgMjAxNSBJTlJJQSBhbmQgTWlhLVNvZnR3YXJlLlxyXG5BbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzXHJcbmFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMFxyXG53aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdFxyXG5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbFxyXG5cclxuQ29udHJpYnV0b3JzOlxyXG4gICAgIEd1aWxsYXVtZSBEb3V4IChJTlJJQSkgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb25cclxuICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzMjkyIC0gW0JlbmNobWFya10gbG9uZyBtdXN0IGJlIHVzZWQgdG8gc3RvcmUgbWVtb3J5IHVzYWdlXHJcbiAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzQwMCAtIFtCZW5jaG1hcmtdIFRoZSBpbnB1dCBzaXplIHNob3VsZCBiZSBjb21wdXRhYmxlIGJ5IHRoZSBkaXNjb3ZlcmVyXHJcbiI7DQogDQogCS8qKg0KIAkgKiBDcmVhdGVzIHRoZSBkZWZhdWx0IGZhY3RvcnkgaW1wbGVtZW50YXRpb24uDQpAQCAtNDQsNyArNDQsNyBAQAogCSAqLw0KIAlwdWJsaWMgc3RhdGljIEJlbmNobWFya0ZhY3RvcnkgaW5pdCgpIHsNCiAJCXRyeSB7DQotCQkJQmVuY2htYXJrRmFjdG9yeSB0aGVCZW5jaG1hcmtGYWN0b3J5ID0gKEJlbmNobWFya0ZhY3RvcnkpRVBhY2thZ2UuUmVnaXN0cnkuSU5TVEFOQ0UuZ2V0RUZhY3RvcnkoImh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrLzAuMTEuaW5jdWJhdGlvbi9pbnRlcm5hbC9iZW5jaG1hcmsiKTsgDQorCQkJQmVuY2htYXJrRmFjdG9yeSB0aGVCZW5jaG1hcmtGYWN0b3J5ID0gKEJlbmNobWFya0ZhY3RvcnkpRVBhY2thZ2UuUmVnaXN0cnkuSU5TVEFOQ0UuZ2V0RUZhY3RvcnkoQmVuY2htYXJrUGFja2FnZS5lTlNfVVJJKTsNCiAJCQlpZiAodGhlQmVuY2htYXJrRmFjdG9yeSAhPSBudWxsKSB7DQogCQkJCXJldHVybiB0aGVCZW5jaG1hcmtGYWN0b3J5Ow0KIAkJCX0NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvbWV0YW1vZGVsL2ludGVybmFsL2JlbmNobWFyay9pbXBsL0JlbmNobWFya0ltcGwuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9tZXRhbW9kZWwvaW50ZXJuYWwvYmVuY2htYXJrL2ltcGwvQmVuY2htYXJrSW1wbC5qYXZhCmluZGV4IDhjNmNlMjcuLjFiMTM5MTAgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9tZXRhbW9kZWwvaW50ZXJuYWwvYmVuY2htYXJrL2ltcGwvQmVuY2htYXJrSW1wbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9tZXRhbW9kZWwvaW50ZXJuYWwvYmVuY2htYXJrL2ltcGwvQmVuY2htYXJrSW1wbC5qYXZhCkBAIC0xLDE0ICsxLDE0IEBACiAvKioNCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQotICogICogQ29weXJpZ2h0IChjKSAyMDEyIElOUklBLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZQ0KLSAqICAqIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZQ0KLSAqICAqIFB1YmxpYyBMaWNlbnNlIHYxLjAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCi0gKiAgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KLSAqICAqIA0KLSAqICAqIENvbnRyaWJ1dG9yczogR3VpbGxhdW1lIERvdXggLSBJTlJJQSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KLSAqICAqIA0KLSAqICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIsIDIwMTUgSU5SSUEgYW5kIE1pYS1Tb2Z0d2FyZS4NCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQorICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCisgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KICAqIA0KKyAqIENvbnRyaWJ1dG9yczoNCisgKiAgICAgIEd1aWxsYXVtZSBEb3V4IChJTlJJQSkgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCisgKiAgICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODMyOTIgLSBbQmVuY2htYXJrXSBsb25nIG11c3QgYmUgdXNlZCB0byBzdG9yZSBtZW1vcnkgdXNhZ2UNCisgKiAgICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODM0MDAgLSBbQmVuY2htYXJrXSBUaGUgaW5wdXQgc2l6ZSBzaG91bGQgYmUgY29tcHV0YWJsZSBieSB0aGUgZGlzY292ZXJlcg0KICAqLw0KIHBhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuaW1wbDsNCiANCkBAIC0zOSw2ICszOSw3IEBACiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAgKiA8cD4NCiAgKiBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBpbXBsZW1lbnRlZDoNCisgKiA8L3A+DQogICogPHVsPg0KICAqICAgPGxpPntAbGluayBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5pbXBsLkJlbmNobWFya0ltcGwjZ2V0SnZtTWF4SGVhcEluTWlCIDxlbT5Kdm0gTWF4IEhlYXAgSW4gTWkgQjwvZW0+fTwvbGk+DQogICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLmltcGwuQmVuY2htYXJrSW1wbCNnZXRQcm9jZXNzb3JOYW1lIDxlbT5Qcm9jZXNzb3IgTmFtZTwvZW0+fTwvbGk+DQpAQCAtNTIsNyArNTMsNiBAQAogICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLmltcGwuQmVuY2htYXJrSW1wbCNnZXRQcm9qZWN0cyA8ZW0+UHJvamVjdHM8L2VtPn08L2xpPg0KICAqICAgPGxpPntAbGluayBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5pbXBsLkJlbmNobWFya0ltcGwjZ2V0RGlzY292ZXJpZXMgPGVtPkRpc2NvdmVyaWVzPC9lbT59PC9saT4NCiAgKiA8L3VsPg0KLSAqIDwvcD4NCiAgKg0KICAqIEBnZW5lcmF0ZWQNCiAgKi8NCkBAIC02Miw3ICs2Miw3IEBACiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQogCSAqIEBnZW5lcmF0ZWQNCiAJICovDQotCXB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodCA9ICIqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAqIENvcHlyaWdodCAoYykgMjAxMiBJTlJJQS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGVcclxuICogYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlXHJcbiAqIFB1YmxpYyBMaWNlbnNlIHYxLjAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcclxuICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWxcclxuICogXHJcbiAqIENvbnRyaWJ1dG9yczogR3VpbGxhdW1lIERvdXggLSBJTlJJQSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvblxyXG4gKiBcclxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4iOw0KKwlwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHQgPSAiQ29weXJpZ2h0IChjKSAyMDEyLCAyMDE1IElOUklBIGFuZCBNaWEtU29mdHdhcmUuXHJcbkFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHNcclxuYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wXHJcbndoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0XHJcbmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sXHJcblxyXG5Db250cmlidXRvcnM6XHJcbiAgICAgR3VpbGxhdW1lIERvdXggKElOUklBKSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvblxyXG4gICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODMyOTIgLSBbQmVuY2htYXJrXSBsb25nIG11c3QgYmUgdXNlZCB0byBzdG9yZSBtZW1vcnkgdXNhZ2VcclxuICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzNDAwIC0gW0JlbmNobWFya10gVGhlIGlucHV0IHNpemUgc2hvdWxkIGJlIGNvbXB1dGFibGUgYnkgdGhlIGRpc2NvdmVyZXJcclxuIjsNCiANCiAJLyoqDQogCSAqIFRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSAne0BsaW5rICNnZXRKdm1NYXhIZWFwSW5NaUIoKSA8ZW0+SnZtIE1heCBIZWFwIEluIE1pIEI8L2VtPn0nIGF0dHJpYnV0ZS4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvbWV0YW1vZGVsL2ludGVybmFsL2JlbmNobWFyay9pbXBsL0JlbmNobWFya1BhY2thZ2VJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvbWV0YW1vZGVsL2ludGVybmFsL2JlbmNobWFyay9pbXBsL0JlbmNobWFya1BhY2thZ2VJbXBsLmphdmEKaW5kZXggM2NmMWE3Zi4uMzAyYmZkYiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvaW1wbC9CZW5jaG1hcmtQYWNrYWdlSW1wbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9tZXRhbW9kZWwvaW50ZXJuYWwvYmVuY2htYXJrL2ltcGwvQmVuY2htYXJrUGFja2FnZUltcGwuamF2YQpAQCAtMSwxNCArMSwxNCBAQAogLyoqDQotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLSAqICAqIENvcHlyaWdodCAoYykgMjAxMiBJTlJJQS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUNCi0gKiAgKiBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UNCi0gKiAgKiBQdWJsaWMgTGljZW5zZSB2MS4wIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQotICogICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCi0gKiAgKiANCi0gKiAgKiBDb250cmlidXRvcnM6IEd1aWxsYXVtZSBEb3V4IC0gSU5SSUEgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCi0gKiAgKiANCi0gKiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICogQ29weXJpZ2h0IChjKSAyMDEyLCAyMDE1IElOUklBIGFuZCBNaWEtU29mdHdhcmUuDQorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KKyAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQorICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCiAgKiANCisgKiBDb250cmlidXRvcnM6DQorICogICAgICBHdWlsbGF1bWUgRG91eCAoSU5SSUEpIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uDQorICogICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzMjkyIC0gW0JlbmNobWFya10gbG9uZyBtdXN0IGJlIHVzZWQgdG8gc3RvcmUgbWVtb3J5IHVzYWdlDQorICogICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzNDAwIC0gW0JlbmNobWFya10gVGhlIGlucHV0IHNpemUgc2hvdWxkIGJlIGNvbXB1dGFibGUgYnkgdGhlIGRpc2NvdmVyZXINCiAgKi8NCiBwYWNrYWdlIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLmltcGw7DQogDQpAQCAtNDksNyArNDksNyBAQAogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KIAkgKiBAZ2VuZXJhdGVkDQogCSAqLw0KLQlwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHQgPSAiKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTIgSU5SSUEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlXHJcbiAqIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZVxyXG4gKiBQdWJsaWMgTGljZW5zZSB2MS4wIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0XHJcbiAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sXHJcbiAqIFxyXG4gKiBDb250cmlidXRvcnM6IEd1aWxsYXVtZSBEb3V4IC0gSU5SSUEgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb25cclxuICogXHJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuIjsNCisJcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0ID0gIkNvcHlyaWdodCAoYykgMjAxMiwgMjAxNSBJTlJJQSBhbmQgTWlhLVNvZnR3YXJlLlxyXG5BbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzXHJcbmFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMFxyXG53aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdFxyXG5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbFxyXG5cclxuQ29udHJpYnV0b3JzOlxyXG4gICAgIEd1aWxsYXVtZSBEb3V4IChJTlJJQSkgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb25cclxuICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzMjkyIC0gW0JlbmNobWFya10gbG9uZyBtdXN0IGJlIHVzZWQgdG8gc3RvcmUgbWVtb3J5IHVzYWdlXHJcbiAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzQwMCAtIFtCZW5jaG1hcmtdIFRoZSBpbnB1dCBzaXplIHNob3VsZCBiZSBjb21wdXRhYmxlIGJ5IHRoZSBkaXNjb3ZlcmVyXHJcbiI7DQogDQogCS8qKg0KIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KQEAgLTM5Niw2ICszOTYsMjQgQEAKIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAJICogQGdlbmVyYXRlZA0KIAkgKi8NCisJcHVibGljIEVBdHRyaWJ1dGUgZ2V0UHJvamVjdF9JbnB1dFNpemUoKSB7DQorCQlyZXR1cm4gKEVBdHRyaWJ1dGUpcHJvamVjdEVDbGFzcy5nZXRFU3RydWN0dXJhbEZlYXR1cmVzKCkuZ2V0KDQpOw0KKwl9DQorDQorCS8qKg0KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCisJICogQGdlbmVyYXRlZA0KKwkgKi8NCisJcHVibGljIEVBdHRyaWJ1dGUgZ2V0UHJvamVjdF9JbnB1dFNpemVVbml0KCkgew0KKwkJcmV0dXJuIChFQXR0cmlidXRlKXByb2plY3RFQ2xhc3MuZ2V0RVN0cnVjdHVyYWxGZWF0dXJlcygpLmdldCg1KTsNCisJfQ0KKw0KKwkvKioNCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQorCSAqIEBnZW5lcmF0ZWQNCisJICovDQogCXB1YmxpYyBFQ2xhc3MgZ2V0QmVuY2htYXJrKCkgew0KIAkJcmV0dXJuIGJlbmNobWFya0VDbGFzczsNCiAJfQ0KQEAgLTc1NCw2ICs3NzIsOCBAQAogCQljcmVhdGVFQXR0cmlidXRlKHByb2plY3RFQ2xhc3MsIFBST0pFQ1RfX0FWRVJBR0VfRklMRV9TSVpFX0lOX0JZVEVTKTsNCiAJCWNyZWF0ZUVBdHRyaWJ1dGUocHJvamVjdEVDbGFzcywgUFJPSkVDVF9fQVZFUkFHRV9MSU5FU19QRVJfRklMRSk7DQogCQljcmVhdGVFUmVmZXJlbmNlKHByb2plY3RFQ2xhc3MsIFBST0pFQ1RfX0ZJTEVTKTsNCisJCWNyZWF0ZUVBdHRyaWJ1dGUocHJvamVjdEVDbGFzcywgUFJPSkVDVF9fSU5QVVRfU0laRSk7DQorCQljcmVhdGVFQXR0cmlidXRlKHByb2plY3RFQ2xhc3MsIFBST0pFQ1RfX0lOUFVUX1NJWkVfVU5JVCk7DQogDQogCQliZW5jaG1hcmtFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoQkVOQ0hNQVJLKTsNCiAJCWNyZWF0ZUVBdHRyaWJ1dGUoYmVuY2htYXJrRUNsYXNzLCBCRU5DSE1BUktfX0pWTV9NQVhfSEVBUF9JTl9NSV9CKTsNCkBAIC04MzIsNyArODUyLDcgQEAKIA0KIAkJLy8gSW5pdGlhbGl6ZSBjbGFzc2VzIGFuZCBmZWF0dXJlczsgYWRkIG9wZXJhdGlvbnMgYW5kIHBhcmFtZXRlcnMNCiAJCWluaXRFQ2xhc3MobWVtb3J5TWVhc3VyZW1lbnRFQ2xhc3MsIE1lbW9yeU1lYXN1cmVtZW50LmNsYXNzLCAiTWVtb3J5TWVhc3VyZW1lbnQiLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UsIElTX0dFTkVSQVRFRF9JTlNUQU5DRV9DTEFTUyk7DQotCQlpbml0RUF0dHJpYnV0ZShnZXRNZW1vcnlNZWFzdXJlbWVudF9NZW1vcnlVc2VkKCksIGVjb3JlUGFja2FnZS5nZXRFSW50KCksICJtZW1vcnlVc2VkIiwgbnVsbCwgMCwgMSwgTWVtb3J5TWVhc3VyZW1lbnQuY2xhc3MsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX1VOU0VUVEFCTEUsICFJU19JRCwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7DQorCQlpbml0RUF0dHJpYnV0ZShnZXRNZW1vcnlNZWFzdXJlbWVudF9NZW1vcnlVc2VkKCksIGVjb3JlUGFja2FnZS5nZXRFTG9uZygpLCAibWVtb3J5VXNlZCIsIG51bGwsIDAsIDEsIE1lbW9yeU1lYXN1cmVtZW50LmNsYXNzLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19VTlNFVFRBQkxFLCAhSVNfSUQsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOw0KIA0KIAkJaW5pdEVDbGFzcyhldmVudEVDbGFzcywgRXZlbnQuY2xhc3MsICJFdmVudCIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSwgSVNfR0VORVJBVEVEX0lOU1RBTkNFX0NMQVNTKTsNCiAJCWluaXRFQXR0cmlidXRlKGdldEV2ZW50X1RpbWUoKSwgZWNvcmVQYWNrYWdlLmdldEVMb25nKCksICJ0aW1lIiwgbnVsbCwgMCwgMSwgRXZlbnQuY2xhc3MsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX1VOU0VUVEFCTEUsICFJU19JRCwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7DQpAQCAtODYwLDYgKzg4MCw4IEBACiAJCWluaXRFQXR0cmlidXRlKGdldFByb2plY3RfQXZlcmFnZUZpbGVTaXplSW5CeXRlcygpLCBlY29yZVBhY2thZ2UuZ2V0RUxvbmcoKSwgImF2ZXJhZ2VGaWxlU2l6ZUluQnl0ZXMiLCBudWxsLCAwLCAxLCBQcm9qZWN0LmNsYXNzLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19VTlNFVFRBQkxFLCAhSVNfSUQsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOw0KIAkJaW5pdEVBdHRyaWJ1dGUoZ2V0UHJvamVjdF9BdmVyYWdlTGluZXNQZXJGaWxlKCksIGVjb3JlUGFja2FnZS5nZXRFTG9uZygpLCAiYXZlcmFnZUxpbmVzUGVyRmlsZSIsIG51bGwsIDAsIDEsIFByb2plY3QuY2xhc3MsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX1VOU0VUVEFCTEUsICFJU19JRCwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7DQogCQlpbml0RVJlZmVyZW5jZShnZXRQcm9qZWN0X0ZpbGVzKCksIHRoaXMuZ2V0RmlsZSgpLCBudWxsLCAiZmlsZXMiLCBudWxsLCAwLCAtMSwgUHJvamVjdC5jbGFzcywgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsNCisJCWluaXRFQXR0cmlidXRlKGdldFByb2plY3RfSW5wdXRTaXplKCksIGVjb3JlUGFja2FnZS5nZXRFRG91YmxlKCksICJpbnB1dFNpemUiLCBudWxsLCAwLCAxLCBQcm9qZWN0LmNsYXNzLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19VTlNFVFRBQkxFLCAhSVNfSUQsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOw0KKwkJaW5pdEVBdHRyaWJ1dGUoZ2V0UHJvamVjdF9JbnB1dFNpemVVbml0KCksIGVjb3JlUGFja2FnZS5nZXRFU3RyaW5nKCksICJpbnB1dFNpemVVbml0IiwgbnVsbCwgMCwgMSwgUHJvamVjdC5jbGFzcywgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfVU5TRVRUQUJMRSwgIUlTX0lELCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsNCiANCiAJCWluaXRFQ2xhc3MoYmVuY2htYXJrRUNsYXNzLCBCZW5jaG1hcmsuY2xhc3MsICJCZW5jaG1hcmsiLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UsIElTX0dFTkVSQVRFRF9JTlNUQU5DRV9DTEFTUyk7DQogCQlpbml0RUF0dHJpYnV0ZShnZXRCZW5jaG1hcmtfSnZtTWF4SGVhcEluTWlCKCksIGVjb3JlUGFja2FnZS5nZXRFTG9uZygpLCAianZtTWF4SGVhcEluTWlCIiwgbnVsbCwgMCwgMSwgQmVuY2htYXJrLmNsYXNzLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19VTlNFVFRBQkxFLCAhSVNfSUQsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOw0KQEAgLTkwMCw2ICs5MjIsNDAgQEAKIA0KIAkJLy8gQ3JlYXRlIHJlc291cmNlDQogCQljcmVhdGVSZXNvdXJjZShlTlNfVVJJKTsNCisNCisJCS8vIENyZWF0ZSBhbm5vdGF0aW9ucw0KKwkJLy8gQERlcHJlYWN0ZWQNCisJCWNyZWF0ZV9EZXByZWFjdGVkQW5ub3RhdGlvbnMoKTsNCisJfQ0KKw0KKwkvKioNCisJICogSW5pdGlhbGl6ZXMgdGhlIGFubm90YXRpb25zIGZvciA8Yj5ARGVwcmVhY3RlZDwvYj4uDQorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+DQorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KKwkgKiBAZ2VuZXJhdGVkDQorCSAqLw0KKwlwcm90ZWN0ZWQgdm9pZCBjcmVhdGVfRGVwcmVhY3RlZEFubm90YXRpb25zKCkgew0KKwkJU3RyaW5nIHNvdXJjZSA9ICJARGVwcmVhY3RlZCI7CQ0KKwkJYWRkQW5ub3RhdGlvbg0KKwkJICAoZ2V0UHJvamVjdF9Ub3RhbExpbmVzKCksIA0KKwkJICAgc291cmNlLCANCisJCSAgIG5ldyBTdHJpbmdbXSB7DQorCQkgICB9KTsJDQorCQlhZGRBbm5vdGF0aW9uDQorCQkgIChnZXRQcm9qZWN0X0F2ZXJhZ2VGaWxlU2l6ZUluQnl0ZXMoKSwgDQorCQkgICBzb3VyY2UsIA0KKwkJICAgbmV3IFN0cmluZ1tdIHsNCisJCSAgIH0pOwkNCisJCWFkZEFubm90YXRpb24NCisJCSAgKGdldFByb2plY3RfQXZlcmFnZUxpbmVzUGVyRmlsZSgpLCANCisJCSAgIHNvdXJjZSwgDQorCQkgICBuZXcgU3RyaW5nW10gew0KKwkJICAgfSk7CQ0KKwkJYWRkQW5ub3RhdGlvbg0KKwkJICAoZ2V0UHJvamVjdF9GaWxlcygpLCANCisJCSAgIHNvdXJjZSwgDQorCQkgICBuZXcgU3RyaW5nW10gew0KKwkJICAgfSk7DQogCX0NCiANCiB9IC8vQmVuY2htYXJrUGFja2FnZUltcGwNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvbWV0YW1vZGVsL2ludGVybmFsL2JlbmNobWFyay9pbXBsL0Rpc2NvdmVyeUltcGwuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9tZXRhbW9kZWwvaW50ZXJuYWwvYmVuY2htYXJrL2ltcGwvRGlzY292ZXJ5SW1wbC5qYXZhCmluZGV4IGMwNGY2YjMuLmY1MTAwZmMgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9tZXRhbW9kZWwvaW50ZXJuYWwvYmVuY2htYXJrL2ltcGwvRGlzY292ZXJ5SW1wbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9tZXRhbW9kZWwvaW50ZXJuYWwvYmVuY2htYXJrL2ltcGwvRGlzY292ZXJ5SW1wbC5qYXZhCkBAIC0xLDE0ICsxLDE0IEBACiAvKioNCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQotICogICogQ29weXJpZ2h0IChjKSAyMDEyIElOUklBLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZQ0KLSAqICAqIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZQ0KLSAqICAqIFB1YmxpYyBMaWNlbnNlIHYxLjAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCi0gKiAgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KLSAqICAqIA0KLSAqICAqIENvbnRyaWJ1dG9yczogR3VpbGxhdW1lIERvdXggLSBJTlJJQSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KLSAqICAqIA0KLSAqICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIsIDIwMTUgSU5SSUEgYW5kIE1pYS1Tb2Z0d2FyZS4NCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQorICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCisgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KICAqIA0KKyAqIENvbnRyaWJ1dG9yczoNCisgKiAgICAgIEd1aWxsYXVtZSBEb3V4IChJTlJJQSkgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCisgKiAgICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODMyOTIgLSBbQmVuY2htYXJrXSBsb25nIG11c3QgYmUgdXNlZCB0byBzdG9yZSBtZW1vcnkgdXNhZ2UNCisgKiAgICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODM0MDAgLSBbQmVuY2htYXJrXSBUaGUgaW5wdXQgc2l6ZSBzaG91bGQgYmUgY29tcHV0YWJsZSBieSB0aGUgZGlzY292ZXJlcg0KICAqLw0KIHBhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuaW1wbDsNCiANCkBAIC00Myw2ICs0Myw3IEBACiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAgKiA8cD4NCiAgKiBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBpbXBsZW1lbnRlZDoNCisgKiA8L3A+DQogICogPHVsPg0KICAqICAgPGxpPntAbGluayBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5pbXBsLkRpc2NvdmVyeUltcGwjZ2V0TmFtZSA8ZW0+TmFtZTwvZW0+fTwvbGk+DQogICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLmltcGwuRGlzY292ZXJ5SW1wbCNnZXREaXNjb3ZlcmVySWQgPGVtPkRpc2NvdmVyZXIgSWQ8L2VtPn08L2xpPg0KQEAgLTU4LDcgKzU5LDYgQEAKICAqICAgPGxpPntAbGluayBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5pbXBsLkRpc2NvdmVyeUltcGwjZ2V0RGlzY292ZXJlckxhdW5jaENvbmZpZ3VyYXRpb24gPGVtPkRpc2NvdmVyZXIgTGF1bmNoIENvbmZpZ3VyYXRpb248L2VtPn08L2xpPg0KICAqICAgPGxpPntAbGluayBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5pbXBsLkRpc2NvdmVyeUltcGwjZ2V0Q29weU9mRGlzY292ZXJlckRlc2NyaXB0aW9uIDxlbT5Db3B5IE9mIERpc2NvdmVyZXIgRGVzY3JpcHRpb248L2VtPn08L2xpPg0KICAqIDwvdWw+DQotICogPC9wPg0KICAqDQogICogQGdlbmVyYXRlZA0KICAqLw0KQEAgLTY4LDcgKzY4LDcgQEAKIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAJICogQGdlbmVyYXRlZA0KIAkgKi8NCi0JcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0ID0gIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICogQ29weXJpZ2h0IChjKSAyMDEyIElOUklBLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZVxyXG4gKiBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2VcclxuICogUHVibGljIExpY2Vuc2UgdjEuMCB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdFxyXG4gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbFxyXG4gKiBcclxuICogQ29udHJpYnV0b3JzOiBHdWlsbGF1bWUgRG91eCAtIElOUklBIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAqIFxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiI7DQorCXB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodCA9ICJDb3B5cmlnaHQgKGMpIDIwMTIsIDIwMTUgSU5SSUEgYW5kIE1pYS1Tb2Z0d2FyZS5cclxuQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFsc1xyXG5hcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjBcclxud2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcclxuaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWxcclxuXHJcbkNvbnRyaWJ1dG9yczpcclxuICAgICBHdWlsbGF1bWUgRG91eCAoSU5SSUEpIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzI5MiAtIFtCZW5jaG1hcmtdIGxvbmcgbXVzdCBiZSB1c2VkIHRvIHN0b3JlIG1lbW9yeSB1c2FnZVxyXG4gICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODM0MDAgLSBbQmVuY2htYXJrXSBUaGUgaW5wdXQgc2l6ZSBzaG91bGQgYmUgY29tcHV0YWJsZSBieSB0aGUgZGlzY292ZXJlclxyXG4iOw0KIA0KIAkvKioNCiAJICogVGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlICd7QGxpbmsgI2dldE5hbWUoKSA8ZW0+TmFtZTwvZW0+fScgYXR0cmlidXRlLg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9tZXRhbW9kZWwvaW50ZXJuYWwvYmVuY2htYXJrL2ltcGwvRGlzY292ZXJ5SXRlcmF0aW9uSW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvaW1wbC9EaXNjb3ZlcnlJdGVyYXRpb25JbXBsLmphdmEKaW5kZXggOWU2MzFkOS4uZTlhMTU4OCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvaW1wbC9EaXNjb3ZlcnlJdGVyYXRpb25JbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvaW1wbC9EaXNjb3ZlcnlJdGVyYXRpb25JbXBsLmphdmEKQEAgLTEsMTQgKzEsMTQgQEAKIC8qKg0KLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi0gKiAgKiBDb3B5cmlnaHQgKGMpIDIwMTIgSU5SSUEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlDQotICogICogYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlDQotICogICogUHVibGljIExpY2Vuc2UgdjEuMCB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KLSAqICAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQotICogICogDQotICogICogQ29udHJpYnV0b3JzOiBHdWlsbGF1bWUgRG91eCAtIElOUklBIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uDQotICogICogDQotICogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAqIENvcHlyaWdodCAoYykgMjAxMiwgMjAxNSBJTlJJQSBhbmQgTWlhLVNvZnR3YXJlLg0KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjANCisgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KKyAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQogICogDQorICogQ29udHJpYnV0b3JzOg0KKyAqICAgICAgR3VpbGxhdW1lIERvdXggKElOUklBKSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KKyAqICAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzI5MiAtIFtCZW5jaG1hcmtdIGxvbmcgbXVzdCBiZSB1c2VkIHRvIHN0b3JlIG1lbW9yeSB1c2FnZQ0KKyAqICAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzQwMCAtIFtCZW5jaG1hcmtdIFRoZSBpbnB1dCBzaXplIHNob3VsZCBiZSBjb21wdXRhYmxlIGJ5IHRoZSBkaXNjb3ZlcmVyDQogICovDQogcGFja2FnZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5pbXBsOw0KIA0KQEAgLTQwLDYgKzQwLDcgQEAKICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIDxwPg0KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIGltcGxlbWVudGVkOg0KKyAqIDwvcD4NCiAgKiA8dWw+DQogICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLmltcGwuRGlzY292ZXJ5SXRlcmF0aW9uSW1wbCNnZXREaXNjb3ZlcnlEYXRlIDxlbT5EaXNjb3ZlcnkgRGF0ZTwvZW0+fTwvbGk+DQogICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLmltcGwuRGlzY292ZXJ5SXRlcmF0aW9uSW1wbCNnZXREaXNjb3ZlcnlUaW1lSW5TZWNvbmRzIDxlbT5EaXNjb3ZlcnkgVGltZSBJbiBTZWNvbmRzPC9lbT59PC9saT4NCkBAIC00OSw3ICs1MCw2IEBACiAgKiAgIDxsaT57QGxpbmsgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuaW1wbC5EaXNjb3ZlcnlJdGVyYXRpb25JbXBsI2dldEV2ZW50cyA8ZW0+RXZlbnRzPC9lbT59PC9saT4NCiAgKiAgIDxsaT57QGxpbmsgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuaW1wbC5EaXNjb3ZlcnlJdGVyYXRpb25JbXBsI2dldE1lbW9yeU1lYXN1cmVtZW50cyA8ZW0+TWVtb3J5IE1lYXN1cmVtZW50czwvZW0+fTwvbGk+DQogICogPC91bD4NCi0gKiA8L3A+DQogICoNCiAgKiBAZ2VuZXJhdGVkDQogICovDQpAQCAtNTksNyArNTksNyBAQAogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KIAkgKiBAZ2VuZXJhdGVkDQogCSAqLw0KLQlwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHQgPSAiKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTIgSU5SSUEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlXHJcbiAqIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZVxyXG4gKiBQdWJsaWMgTGljZW5zZSB2MS4wIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0XHJcbiAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sXHJcbiAqIFxyXG4gKiBDb250cmlidXRvcnM6IEd1aWxsYXVtZSBEb3V4IC0gSU5SSUEgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb25cclxuICogXHJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuIjsNCisJcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0ID0gIkNvcHlyaWdodCAoYykgMjAxMiwgMjAxNSBJTlJJQSBhbmQgTWlhLVNvZnR3YXJlLlxyXG5BbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzXHJcbmFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMFxyXG53aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdFxyXG5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbFxyXG5cclxuQ29udHJpYnV0b3JzOlxyXG4gICAgIEd1aWxsYXVtZSBEb3V4IChJTlJJQSkgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb25cclxuICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzMjkyIC0gW0JlbmNobWFya10gbG9uZyBtdXN0IGJlIHVzZWQgdG8gc3RvcmUgbWVtb3J5IHVzYWdlXHJcbiAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzQwMCAtIFtCZW5jaG1hcmtdIFRoZSBpbnB1dCBzaXplIHNob3VsZCBiZSBjb21wdXRhYmxlIGJ5IHRoZSBkaXNjb3ZlcmVyXHJcbiI7DQogDQogCS8qKg0KIAkgKiBUaGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgJ3tAbGluayAjZ2V0RGlzY292ZXJ5RGF0ZSgpIDxlbT5EaXNjb3ZlcnkgRGF0ZTwvZW0+fScgYXR0cmlidXRlLg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9tZXRhbW9kZWwvaW50ZXJuYWwvYmVuY2htYXJrL2ltcGwvRW5kRXZlbnRJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvbWV0YW1vZGVsL2ludGVybmFsL2JlbmNobWFyay9pbXBsL0VuZEV2ZW50SW1wbC5qYXZhCmluZGV4IDc5OTcyNzQuLjMyYjRiNWYgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9tZXRhbW9kZWwvaW50ZXJuYWwvYmVuY2htYXJrL2ltcGwvRW5kRXZlbnRJbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvaW1wbC9FbmRFdmVudEltcGwuamF2YQpAQCAtMSwxNCArMSwxNCBAQAogLyoqDQotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLSAqICAqIENvcHlyaWdodCAoYykgMjAxMiBJTlJJQS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUNCi0gKiAgKiBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UNCi0gKiAgKiBQdWJsaWMgTGljZW5zZSB2MS4wIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQotICogICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCi0gKiAgKiANCi0gKiAgKiBDb250cmlidXRvcnM6IEd1aWxsYXVtZSBEb3V4IC0gSU5SSUEgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCi0gKiAgKiANCi0gKiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICogQ29weXJpZ2h0IChjKSAyMDEyLCAyMDE1IElOUklBIGFuZCBNaWEtU29mdHdhcmUuDQorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KKyAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQorICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCiAgKiANCisgKiBDb250cmlidXRvcnM6DQorICogICAgICBHdWlsbGF1bWUgRG91eCAoSU5SSUEpIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uDQorICogICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzMjkyIC0gW0JlbmNobWFya10gbG9uZyBtdXN0IGJlIHVzZWQgdG8gc3RvcmUgbWVtb3J5IHVzYWdlDQorICogICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzNDAwIC0gW0JlbmNobWFya10gVGhlIGlucHV0IHNpemUgc2hvdWxkIGJlIGNvbXB1dGFibGUgYnkgdGhlIGRpc2NvdmVyZXINCiAgKi8NCiBwYWNrYWdlIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLmltcGw7DQogDQpAQCAtMjksMTAgKzI5LDEwIEBACiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAgKiA8cD4NCiAgKiBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBpbXBsZW1lbnRlZDoNCisgKiA8L3A+DQogICogPHVsPg0KICAqICAgPGxpPntAbGluayBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5pbXBsLkVuZEV2ZW50SW1wbCNnZXRCZWdpbm5pbmcgPGVtPkJlZ2lubmluZzwvZW0+fTwvbGk+DQogICogPC91bD4NCi0gKiA8L3A+DQogICoNCiAgKiBAZ2VuZXJhdGVkDQogICovDQpAQCAtNDIsNyArNDIsNyBAQAogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KIAkgKiBAZ2VuZXJhdGVkDQogCSAqLw0KLQlwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHQgPSAiKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTIgSU5SSUEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlXHJcbiAqIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZVxyXG4gKiBQdWJsaWMgTGljZW5zZSB2MS4wIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0XHJcbiAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sXHJcbiAqIFxyXG4gKiBDb250cmlidXRvcnM6IEd1aWxsYXVtZSBEb3V4IC0gSU5SSUEgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb25cclxuICogXHJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuIjsNCisJcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0ID0gIkNvcHlyaWdodCAoYykgMjAxMiwgMjAxNSBJTlJJQSBhbmQgTWlhLVNvZnR3YXJlLlxyXG5BbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzXHJcbmFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMFxyXG53aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdFxyXG5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbFxyXG5cclxuQ29udHJpYnV0b3JzOlxyXG4gICAgIEd1aWxsYXVtZSBEb3V4IChJTlJJQSkgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb25cclxuICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzMjkyIC0gW0JlbmNobWFya10gbG9uZyBtdXN0IGJlIHVzZWQgdG8gc3RvcmUgbWVtb3J5IHVzYWdlXHJcbiAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzQwMCAtIFtCZW5jaG1hcmtdIFRoZSBpbnB1dCBzaXplIHNob3VsZCBiZSBjb21wdXRhYmxlIGJ5IHRoZSBkaXNjb3ZlcmVyXHJcbiI7DQogDQogCS8qKg0KIAkgKiBUaGUgY2FjaGVkIHZhbHVlIG9mIHRoZSAne0BsaW5rICNnZXRCZWdpbm5pbmcoKSA8ZW0+QmVnaW5uaW5nPC9lbT59JyByZWZlcmVuY2UuDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvaW1wbC9FdmVudEltcGwuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9tZXRhbW9kZWwvaW50ZXJuYWwvYmVuY2htYXJrL2ltcGwvRXZlbnRJbXBsLmphdmEKaW5kZXggNGRhMDViNy4uY2Q5MWU2ZSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvaW1wbC9FdmVudEltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvbWV0YW1vZGVsL2ludGVybmFsL2JlbmNobWFyay9pbXBsL0V2ZW50SW1wbC5qYXZhCkBAIC0xLDE0ICsxLDE0IEBACiAvKioNCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQotICogICogQ29weXJpZ2h0IChjKSAyMDEyIElOUklBLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZQ0KLSAqICAqIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZQ0KLSAqICAqIFB1YmxpYyBMaWNlbnNlIHYxLjAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCi0gKiAgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KLSAqICAqIA0KLSAqICAqIENvbnRyaWJ1dG9yczogR3VpbGxhdW1lIERvdXggLSBJTlJJQSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KLSAqICAqIA0KLSAqICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIsIDIwMTUgSU5SSUEgYW5kIE1pYS1Tb2Z0d2FyZS4NCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQorICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCisgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KICAqIA0KKyAqIENvbnRyaWJ1dG9yczoNCisgKiAgICAgIEd1aWxsYXVtZSBEb3V4IChJTlJJQSkgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCisgKiAgICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODMyOTIgLSBbQmVuY2htYXJrXSBsb25nIG11c3QgYmUgdXNlZCB0byBzdG9yZSBtZW1vcnkgdXNhZ2UNCisgKiAgICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODM0MDAgLSBbQmVuY2htYXJrXSBUaGUgaW5wdXQgc2l6ZSBzaG91bGQgYmUgY29tcHV0YWJsZSBieSB0aGUgZGlzY292ZXJlcg0KICAqLw0KIHBhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuaW1wbDsNCiANCkBAIC0zMCwxMSArMzAsMTEgQEAKICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIDxwPg0KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIGltcGxlbWVudGVkOg0KKyAqIDwvcD4NCiAgKiA8dWw+DQogICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLmltcGwuRXZlbnRJbXBsI2dldFRpbWUgPGVtPlRpbWU8L2VtPn08L2xpPg0KICAqICAgPGxpPntAbGluayBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5pbXBsLkV2ZW50SW1wbCNnZXRFdmVudFR5cGUgPGVtPkV2ZW50IFR5cGU8L2VtPn08L2xpPg0KICAqIDwvdWw+DQotICogPC9wPg0KICAqDQogICogQGdlbmVyYXRlZA0KICAqLw0KQEAgLTQ0LDcgKzQ0LDcgQEAKIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAJICogQGdlbmVyYXRlZA0KIAkgKi8NCi0JcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0ID0gIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICogQ29weXJpZ2h0IChjKSAyMDEyIElOUklBLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZVxyXG4gKiBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2VcclxuICogUHVibGljIExpY2Vuc2UgdjEuMCB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdFxyXG4gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbFxyXG4gKiBcclxuICogQ29udHJpYnV0b3JzOiBHdWlsbGF1bWUgRG91eCAtIElOUklBIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAqIFxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiI7DQorCXB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodCA9ICJDb3B5cmlnaHQgKGMpIDIwMTIsIDIwMTUgSU5SSUEgYW5kIE1pYS1Tb2Z0d2FyZS5cclxuQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFsc1xyXG5hcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjBcclxud2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcclxuaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWxcclxuXHJcbkNvbnRyaWJ1dG9yczpcclxuICAgICBHdWlsbGF1bWUgRG91eCAoSU5SSUEpIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzI5MiAtIFtCZW5jaG1hcmtdIGxvbmcgbXVzdCBiZSB1c2VkIHRvIHN0b3JlIG1lbW9yeSB1c2FnZVxyXG4gICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODM0MDAgLSBbQmVuY2htYXJrXSBUaGUgaW5wdXQgc2l6ZSBzaG91bGQgYmUgY29tcHV0YWJsZSBieSB0aGUgZGlzY292ZXJlclxyXG4iOw0KIA0KIAkvKioNCiAJICogVGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlICd7QGxpbmsgI2dldFRpbWUoKSA8ZW0+VGltZTwvZW0+fScgYXR0cmlidXRlLg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9tZXRhbW9kZWwvaW50ZXJuYWwvYmVuY2htYXJrL2ltcGwvRXZlbnRUeXBlSW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvaW1wbC9FdmVudFR5cGVJbXBsLmphdmEKaW5kZXggYTNhMzU5OC4uZTVlZWNhMSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvaW1wbC9FdmVudFR5cGVJbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvaW1wbC9FdmVudFR5cGVJbXBsLmphdmEKQEAgLTEsMTQgKzEsMTQgQEAKIC8qKg0KLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi0gKiAgKiBDb3B5cmlnaHQgKGMpIDIwMTIgSU5SSUEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlDQotICogICogYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlDQotICogICogUHVibGljIExpY2Vuc2UgdjEuMCB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KLSAqICAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQotICogICogDQotICogICogQ29udHJpYnV0b3JzOiBHdWlsbGF1bWUgRG91eCAtIElOUklBIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uDQotICogICogDQotICogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAqIENvcHlyaWdodCAoYykgMjAxMiwgMjAxNSBJTlJJQSBhbmQgTWlhLVNvZnR3YXJlLg0KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjANCisgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KKyAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQogICogDQorICogQ29udHJpYnV0b3JzOg0KKyAqICAgICAgR3VpbGxhdW1lIERvdXggKElOUklBKSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KKyAqICAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzI5MiAtIFtCZW5jaG1hcmtdIGxvbmcgbXVzdCBiZSB1c2VkIHRvIHN0b3JlIG1lbW9yeSB1c2FnZQ0KKyAqICAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzQwMCAtIFtCZW5jaG1hcmtdIFRoZSBpbnB1dCBzaXplIHNob3VsZCBiZSBjb21wdXRhYmxlIGJ5IHRoZSBkaXNjb3ZlcmVyDQogICovDQogcGFja2FnZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5pbXBsOw0KIA0KQEAgLTI4LDEwICsyOCwxMCBAQAogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQogICogPHA+DQogICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgaW1wbGVtZW50ZWQ6DQorICogPC9wPg0KICAqIDx1bD4NCiAgKiAgIDxsaT57QGxpbmsgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuaW1wbC5FdmVudFR5cGVJbXBsI2dldE5hbWUgPGVtPk5hbWU8L2VtPn08L2xpPg0KICAqIDwvdWw+DQotICogPC9wPg0KICAqDQogICogQGdlbmVyYXRlZA0KICAqLw0KQEAgLTQxLDcgKzQxLDcgQEAKIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAJICogQGdlbmVyYXRlZA0KIAkgKi8NCi0JcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0ID0gIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICogQ29weXJpZ2h0IChjKSAyMDEyIElOUklBLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZVxyXG4gKiBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2VcclxuICogUHVibGljIExpY2Vuc2UgdjEuMCB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdFxyXG4gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbFxyXG4gKiBcclxuICogQ29udHJpYnV0b3JzOiBHdWlsbGF1bWUgRG91eCAtIElOUklBIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAqIFxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiI7DQorCXB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodCA9ICJDb3B5cmlnaHQgKGMpIDIwMTIsIDIwMTUgSU5SSUEgYW5kIE1pYS1Tb2Z0d2FyZS5cclxuQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFsc1xyXG5hcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjBcclxud2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcclxuaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWxcclxuXHJcbkNvbnRyaWJ1dG9yczpcclxuICAgICBHdWlsbGF1bWUgRG91eCAoSU5SSUEpIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzI5MiAtIFtCZW5jaG1hcmtdIGxvbmcgbXVzdCBiZSB1c2VkIHRvIHN0b3JlIG1lbW9yeSB1c2FnZVxyXG4gICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODM0MDAgLSBbQmVuY2htYXJrXSBUaGUgaW5wdXQgc2l6ZSBzaG91bGQgYmUgY29tcHV0YWJsZSBieSB0aGUgZGlzY292ZXJlclxyXG4iOw0KIA0KIAkvKioNCiAJICogVGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlICd7QGxpbmsgI2dldE5hbWUoKSA8ZW0+TmFtZTwvZW0+fScgYXR0cmlidXRlLg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9tZXRhbW9kZWwvaW50ZXJuYWwvYmVuY2htYXJrL2ltcGwvRmlsZUltcGwuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9tZXRhbW9kZWwvaW50ZXJuYWwvYmVuY2htYXJrL2ltcGwvRmlsZUltcGwuamF2YQppbmRleCAyNzFmMWQ3Li42Njc5YmZkIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvbWV0YW1vZGVsL2ludGVybmFsL2JlbmNobWFyay9pbXBsL0ZpbGVJbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvaW1wbC9GaWxlSW1wbC5qYXZhCkBAIC0xLDE0ICsxLDE0IEBACiAvKioNCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQotICogICogQ29weXJpZ2h0IChjKSAyMDEyIElOUklBLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZQ0KLSAqICAqIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZQ0KLSAqICAqIFB1YmxpYyBMaWNlbnNlIHYxLjAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCi0gKiAgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KLSAqICAqIA0KLSAqICAqIENvbnRyaWJ1dG9yczogR3VpbGxhdW1lIERvdXggLSBJTlJJQSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KLSAqICAqIA0KLSAqICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIsIDIwMTUgSU5SSUEgYW5kIE1pYS1Tb2Z0d2FyZS4NCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQorICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCisgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KICAqIA0KKyAqIENvbnRyaWJ1dG9yczoNCisgKiAgICAgIEd1aWxsYXVtZSBEb3V4IChJTlJJQSkgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCisgKiAgICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODMyOTIgLSBbQmVuY2htYXJrXSBsb25nIG11c3QgYmUgdXNlZCB0byBzdG9yZSBtZW1vcnkgdXNhZ2UNCisgKiAgICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODM0MDAgLSBbQmVuY2htYXJrXSBUaGUgaW5wdXQgc2l6ZSBzaG91bGQgYmUgY29tcHV0YWJsZSBieSB0aGUgZGlzY292ZXJlcg0KICAqLw0KIHBhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuaW1wbDsNCiANCkBAIC0yOCwxMiArMjgsMTIgQEAKICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIDxwPg0KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIGltcGxlbWVudGVkOg0KKyAqIDwvcD4NCiAgKiA8dWw+DQogICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLmltcGwuRmlsZUltcGwjZ2V0U2l6ZUluQnl0ZXMgPGVtPlNpemUgSW4gQnl0ZXM8L2VtPn08L2xpPg0KICAqICAgPGxpPntAbGluayBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5pbXBsLkZpbGVJbXBsI2dldExpbmVzIDxlbT5MaW5lczwvZW0+fTwvbGk+DQogICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLmltcGwuRmlsZUltcGwjZ2V0RmlsZXBhdGggPGVtPkZpbGVwYXRoPC9lbT59PC9saT4NCiAgKiA8L3VsPg0KLSAqIDwvcD4NCiAgKg0KICAqIEBnZW5lcmF0ZWQNCiAgKi8NCkBAIC00Myw3ICs0Myw3IEBACiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQogCSAqIEBnZW5lcmF0ZWQNCiAJICovDQotCXB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodCA9ICIqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAqIENvcHlyaWdodCAoYykgMjAxMiBJTlJJQS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGVcclxuICogYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlXHJcbiAqIFB1YmxpYyBMaWNlbnNlIHYxLjAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcclxuICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWxcclxuICogXHJcbiAqIENvbnRyaWJ1dG9yczogR3VpbGxhdW1lIERvdXggLSBJTlJJQSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvblxyXG4gKiBcclxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4iOw0KKwlwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHQgPSAiQ29weXJpZ2h0IChjKSAyMDEyLCAyMDE1IElOUklBIGFuZCBNaWEtU29mdHdhcmUuXHJcbkFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHNcclxuYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wXHJcbndoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0XHJcbmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sXHJcblxyXG5Db250cmlidXRvcnM6XHJcbiAgICAgR3VpbGxhdW1lIERvdXggKElOUklBKSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvblxyXG4gICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODMyOTIgLSBbQmVuY2htYXJrXSBsb25nIG11c3QgYmUgdXNlZCB0byBzdG9yZSBtZW1vcnkgdXNhZ2VcclxuICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzNDAwIC0gW0JlbmNobWFya10gVGhlIGlucHV0IHNpemUgc2hvdWxkIGJlIGNvbXB1dGFibGUgYnkgdGhlIGRpc2NvdmVyZXJcclxuIjsNCiANCiAJLyoqDQogCSAqIFRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSAne0BsaW5rICNnZXRTaXplSW5CeXRlcygpIDxlbT5TaXplIEluIEJ5dGVzPC9lbT59JyBhdHRyaWJ1dGUuDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvaW1wbC9NZW1vcnlNZWFzdXJlbWVudEltcGwuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9tZXRhbW9kZWwvaW50ZXJuYWwvYmVuY2htYXJrL2ltcGwvTWVtb3J5TWVhc3VyZW1lbnRJbXBsLmphdmEKaW5kZXggODZlOTUyZS4uYWIwNWNmMCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvaW1wbC9NZW1vcnlNZWFzdXJlbWVudEltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvbWV0YW1vZGVsL2ludGVybmFsL2JlbmNobWFyay9pbXBsL01lbW9yeU1lYXN1cmVtZW50SW1wbC5qYXZhCkBAIC0xLDE0ICsxLDE0IEBACiAvKioNCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQotICogICogQ29weXJpZ2h0IChjKSAyMDEyIElOUklBLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZQ0KLSAqICAqIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZQ0KLSAqICAqIFB1YmxpYyBMaWNlbnNlIHYxLjAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCi0gKiAgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KLSAqICAqIA0KLSAqICAqIENvbnRyaWJ1dG9yczogR3VpbGxhdW1lIERvdXggLSBJTlJJQSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KLSAqICAqIA0KLSAqICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIsIDIwMTUgSU5SSUEgYW5kIE1pYS1Tb2Z0d2FyZS4NCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQorICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCisgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KICAqIA0KKyAqIENvbnRyaWJ1dG9yczoNCisgKiAgICAgIEd1aWxsYXVtZSBEb3V4IChJTlJJQSkgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCisgKiAgICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODMyOTIgLSBbQmVuY2htYXJrXSBsb25nIG11c3QgYmUgdXNlZCB0byBzdG9yZSBtZW1vcnkgdXNhZ2UNCisgKiAgICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODM0MDAgLSBbQmVuY2htYXJrXSBUaGUgaW5wdXQgc2l6ZSBzaG91bGQgYmUgY29tcHV0YWJsZSBieSB0aGUgZGlzY292ZXJlcg0KICAqLw0KIHBhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuaW1wbDsNCiANCkBAIC0yNywxMCArMjcsMTAgQEAKICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIDxwPg0KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIGltcGxlbWVudGVkOg0KKyAqIDwvcD4NCiAgKiA8dWw+DQogICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLmltcGwuTWVtb3J5TWVhc3VyZW1lbnRJbXBsI2dldE1lbW9yeVVzZWQgPGVtPk1lbW9yeSBVc2VkPC9lbT59PC9saT4NCiAgKiA8L3VsPg0KLSAqIDwvcD4NCiAgKg0KICAqIEBnZW5lcmF0ZWQNCiAgKi8NCkBAIC00MCw3ICs0MCw3IEBACiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQogCSAqIEBnZW5lcmF0ZWQNCiAJICovDQotCXB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodCA9ICIqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAqIENvcHlyaWdodCAoYykgMjAxMiBJTlJJQS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGVcclxuICogYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlXHJcbiAqIFB1YmxpYyBMaWNlbnNlIHYxLjAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcclxuICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWxcclxuICogXHJcbiAqIENvbnRyaWJ1dG9yczogR3VpbGxhdW1lIERvdXggLSBJTlJJQSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvblxyXG4gKiBcclxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4iOw0KKwlwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHQgPSAiQ29weXJpZ2h0IChjKSAyMDEyLCAyMDE1IElOUklBIGFuZCBNaWEtU29mdHdhcmUuXHJcbkFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHNcclxuYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wXHJcbndoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0XHJcbmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sXHJcblxyXG5Db250cmlidXRvcnM6XHJcbiAgICAgR3VpbGxhdW1lIERvdXggKElOUklBKSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvblxyXG4gICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODMyOTIgLSBbQmVuY2htYXJrXSBsb25nIG11c3QgYmUgdXNlZCB0byBzdG9yZSBtZW1vcnkgdXNhZ2VcclxuICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzNDAwIC0gW0JlbmNobWFya10gVGhlIGlucHV0IHNpemUgc2hvdWxkIGJlIGNvbXB1dGFibGUgYnkgdGhlIGRpc2NvdmVyZXJcclxuIjsNCiANCiAJLyoqDQogCSAqIFRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSAne0BsaW5rICNnZXRNZW1vcnlVc2VkKCkgPGVtPk1lbW9yeSBVc2VkPC9lbT59JyBhdHRyaWJ1dGUuDQpAQCAtNTAsNyArNTAsNyBAQAogCSAqIEBnZW5lcmF0ZWQNCiAJICogQG9yZGVyZWQNCiAJICovDQotCXByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1FTU9SWV9VU0VEX0VERUZBVUxUID0gMDsNCisJcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBsb25nIE1FTU9SWV9VU0VEX0VERUZBVUxUID0gMEw7DQogDQogCS8qKg0KIAkgKiBUaGUgY2FjaGVkIHZhbHVlIG9mIHRoZSAne0BsaW5rICNnZXRNZW1vcnlVc2VkKCkgPGVtPk1lbW9yeSBVc2VkPC9lbT59JyBhdHRyaWJ1dGUuDQpAQCAtNjAsNyArNjAsNyBAQAogCSAqIEBnZW5lcmF0ZWQNCiAJICogQG9yZGVyZWQNCiAJICovDQotCXByb3RlY3RlZCBpbnQgbWVtb3J5VXNlZCA9IE1FTU9SWV9VU0VEX0VERUZBVUxUOw0KKwlwcm90ZWN0ZWQgbG9uZyBtZW1vcnlVc2VkID0gTUVNT1JZX1VTRURfRURFRkFVTFQ7DQogDQogCS8qKg0KIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KQEAgLTg2LDcgKzg2LDcgQEAKIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAJICogQGdlbmVyYXRlZA0KIAkgKi8NCi0JcHVibGljIGludCBnZXRNZW1vcnlVc2VkKCkgew0KKwlwdWJsaWMgbG9uZyBnZXRNZW1vcnlVc2VkKCkgew0KIAkJcmV0dXJuIG1lbW9yeVVzZWQ7DQogCX0NCiANCkBAIC05NSw4ICs5NSw4IEBACiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQogCSAqIEBnZW5lcmF0ZWQNCiAJICovDQotCXB1YmxpYyB2b2lkIHNldE1lbW9yeVVzZWQoaW50IG5ld01lbW9yeVVzZWQpIHsNCi0JCWludCBvbGRNZW1vcnlVc2VkID0gbWVtb3J5VXNlZDsNCisJcHVibGljIHZvaWQgc2V0TWVtb3J5VXNlZChsb25nIG5ld01lbW9yeVVzZWQpIHsNCisJCWxvbmcgb2xkTWVtb3J5VXNlZCA9IG1lbW9yeVVzZWQ7DQogCQltZW1vcnlVc2VkID0gbmV3TWVtb3J5VXNlZDsNCiAJCWlmIChlTm90aWZpY2F0aW9uUmVxdWlyZWQoKSkNCiAJCQllTm90aWZ5KG5ldyBFTm90aWZpY2F0aW9uSW1wbCh0aGlzLCBOb3RpZmljYXRpb24uU0VULCBCZW5jaG1hcmtQYWNrYWdlLk1FTU9SWV9NRUFTVVJFTUVOVF9fTUVNT1JZX1VTRUQsIG9sZE1lbW9yeVVzZWQsIG1lbW9yeVVzZWQpKTsNCkBAIC0xMjUsNyArMTI1LDcgQEAKIAlwdWJsaWMgdm9pZCBlU2V0KGludCBmZWF0dXJlSUQsIE9iamVjdCBuZXdWYWx1ZSkgew0KIAkJc3dpdGNoIChmZWF0dXJlSUQpIHsNCiAJCQljYXNlIEJlbmNobWFya1BhY2thZ2UuTUVNT1JZX01FQVNVUkVNRU5UX19NRU1PUllfVVNFRDoNCi0JCQkJc2V0TWVtb3J5VXNlZCgoSW50ZWdlciluZXdWYWx1ZSk7DQorCQkJCXNldE1lbW9yeVVzZWQoKExvbmcpbmV3VmFsdWUpOw0KIAkJCQlyZXR1cm47DQogCQl9DQogCQlzdXBlci5lU2V0KGZlYXR1cmVJRCwgbmV3VmFsdWUpOw0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9tZXRhbW9kZWwvaW50ZXJuYWwvYmVuY2htYXJrL2ltcGwvUHJvamVjdEltcGwuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9tZXRhbW9kZWwvaW50ZXJuYWwvYmVuY2htYXJrL2ltcGwvUHJvamVjdEltcGwuamF2YQppbmRleCA1MDI4OWFlLi4xMTFkNmIzIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvbWV0YW1vZGVsL2ludGVybmFsL2JlbmNobWFyay9pbXBsL1Byb2plY3RJbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvaW1wbC9Qcm9qZWN0SW1wbC5qYXZhCkBAIC0xLDE0ICsxLDE0IEBACiAvKioNCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQotICogICogQ29weXJpZ2h0IChjKSAyMDEyIElOUklBLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZQ0KLSAqICAqIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZQ0KLSAqICAqIFB1YmxpYyBMaWNlbnNlIHYxLjAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCi0gKiAgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KLSAqICAqIA0KLSAqICAqIENvbnRyaWJ1dG9yczogR3VpbGxhdW1lIERvdXggLSBJTlJJQSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KLSAqICAqIA0KLSAqICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIsIDIwMTUgSU5SSUEgYW5kIE1pYS1Tb2Z0d2FyZS4NCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQorICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCisgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KICAqIA0KKyAqIENvbnRyaWJ1dG9yczoNCisgKiAgICAgIEd1aWxsYXVtZSBEb3V4IChJTlJJQSkgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCisgKiAgICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODMyOTIgLSBbQmVuY2htYXJrXSBsb25nIG11c3QgYmUgdXNlZCB0byBzdG9yZSBtZW1vcnkgdXNhZ2UNCisgKiAgICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODM0MDAgLSBbQmVuY2htYXJrXSBUaGUgaW5wdXQgc2l6ZSBzaG91bGQgYmUgY29tcHV0YWJsZSBieSB0aGUgZGlzY292ZXJlcg0KICAqLw0KIHBhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuaW1wbDsNCiANCkBAIC0zNywxMyArMzcsMTUgQEAKICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIDxwPg0KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIGltcGxlbWVudGVkOg0KKyAqIDwvcD4NCiAgKiA8dWw+DQogICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLmltcGwuUHJvamVjdEltcGwjZ2V0VG90YWxMaW5lcyA8ZW0+VG90YWwgTGluZXM8L2VtPn08L2xpPg0KICAqICAgPGxpPntAbGluayBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5pbXBsLlByb2plY3RJbXBsI2dldEF2ZXJhZ2VGaWxlU2l6ZUluQnl0ZXMgPGVtPkF2ZXJhZ2UgRmlsZSBTaXplIEluIEJ5dGVzPC9lbT59PC9saT4NCiAgKiAgIDxsaT57QGxpbmsgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuaW1wbC5Qcm9qZWN0SW1wbCNnZXRBdmVyYWdlTGluZXNQZXJGaWxlIDxlbT5BdmVyYWdlIExpbmVzIFBlciBGaWxlPC9lbT59PC9saT4NCiAgKiAgIDxsaT57QGxpbmsgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuaW1wbC5Qcm9qZWN0SW1wbCNnZXRGaWxlcyA8ZW0+RmlsZXM8L2VtPn08L2xpPg0KKyAqICAgPGxpPntAbGluayBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5pbXBsLlByb2plY3RJbXBsI2dldElucHV0U2l6ZSA8ZW0+SW5wdXQgU2l6ZTwvZW0+fTwvbGk+DQorICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLmltcGwuUHJvamVjdEltcGwjZ2V0SW5wdXRTaXplVW5pdCA8ZW0+SW5wdXQgU2l6ZSBVbml0PC9lbT59PC9saT4NCiAgKiA8L3VsPg0KLSAqIDwvcD4NCiAgKg0KICAqIEBnZW5lcmF0ZWQNCiAgKi8NCkBAIC01Myw3ICs1NSw3IEBACiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQogCSAqIEBnZW5lcmF0ZWQNCiAJICovDQotCXB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodCA9ICIqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAqIENvcHlyaWdodCAoYykgMjAxMiBJTlJJQS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGVcclxuICogYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlXHJcbiAqIFB1YmxpYyBMaWNlbnNlIHYxLjAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcclxuICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWxcclxuICogXHJcbiAqIENvbnRyaWJ1dG9yczogR3VpbGxhdW1lIERvdXggLSBJTlJJQSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvblxyXG4gKiBcclxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4iOw0KKwlwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHQgPSAiQ29weXJpZ2h0IChjKSAyMDEyLCAyMDE1IElOUklBIGFuZCBNaWEtU29mdHdhcmUuXHJcbkFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHNcclxuYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wXHJcbndoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0XHJcbmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sXHJcblxyXG5Db250cmlidXRvcnM6XHJcbiAgICAgR3VpbGxhdW1lIERvdXggKElOUklBKSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvblxyXG4gICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODMyOTIgLSBbQmVuY2htYXJrXSBsb25nIG11c3QgYmUgdXNlZCB0byBzdG9yZSBtZW1vcnkgdXNhZ2VcclxuICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzNDAwIC0gW0JlbmNobWFya10gVGhlIGlucHV0IHNpemUgc2hvdWxkIGJlIGNvbXB1dGFibGUgYnkgdGhlIGRpc2NvdmVyZXJcclxuIjsNCiANCiAJLyoqDQogCSAqIFRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSAne0BsaW5rICNnZXRUb3RhbExpbmVzKCkgPGVtPlRvdGFsIExpbmVzPC9lbT59JyBhdHRyaWJ1dGUuDQpAQCAtMTI2LDYgKzEyOCw0NiBAQAogCXByb3RlY3RlZCBFTGlzdDxGaWxlPiBmaWxlczsNCiANCiAJLyoqDQorCSAqIFRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSAne0BsaW5rICNnZXRJbnB1dFNpemUoKSA8ZW0+SW5wdXQgU2l6ZTwvZW0+fScgYXR0cmlidXRlLg0KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCisJICogQHNlZSAjZ2V0SW5wdXRTaXplKCkNCisJICogQGdlbmVyYXRlZA0KKwkgKiBAb3JkZXJlZA0KKwkgKi8NCisJcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBkb3VibGUgSU5QVVRfU0laRV9FREVGQVVMVCA9IDAuMDsNCisNCisJLyoqDQorCSAqIFRoZSBjYWNoZWQgdmFsdWUgb2YgdGhlICd7QGxpbmsgI2dldElucHV0U2l6ZSgpIDxlbT5JbnB1dCBTaXplPC9lbT59JyBhdHRyaWJ1dGUuDQorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+DQorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KKwkgKiBAc2VlICNnZXRJbnB1dFNpemUoKQ0KKwkgKiBAZ2VuZXJhdGVkDQorCSAqIEBvcmRlcmVkDQorCSAqLw0KKwlwcm90ZWN0ZWQgZG91YmxlIGlucHV0U2l6ZSA9IElOUFVUX1NJWkVfRURFRkFVTFQ7DQorDQorCS8qKg0KKwkgKiBUaGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgJ3tAbGluayAjZ2V0SW5wdXRTaXplVW5pdCgpIDxlbT5JbnB1dCBTaXplIFVuaXQ8L2VtPn0nIGF0dHJpYnV0ZS4NCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQorCSAqIEBzZWUgI2dldElucHV0U2l6ZVVuaXQoKQ0KKwkgKiBAZ2VuZXJhdGVkDQorCSAqIEBvcmRlcmVkDQorCSAqLw0KKwlwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIFN0cmluZyBJTlBVVF9TSVpFX1VOSVRfRURFRkFVTFQgPSBudWxsOw0KKw0KKwkvKioNCisJICogVGhlIGNhY2hlZCB2YWx1ZSBvZiB0aGUgJ3tAbGluayAjZ2V0SW5wdXRTaXplVW5pdCgpIDxlbT5JbnB1dCBTaXplIFVuaXQ8L2VtPn0nIGF0dHJpYnV0ZS4NCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQorCSAqIEBzZWUgI2dldElucHV0U2l6ZVVuaXQoKQ0KKwkgKiBAZ2VuZXJhdGVkDQorCSAqIEBvcmRlcmVkDQorCSAqLw0KKwlwcm90ZWN0ZWQgU3RyaW5nIGlucHV0U2l6ZVVuaXQgPSBJTlBVVF9TSVpFX1VOSVRfRURFRkFVTFQ7DQorDQorCS8qKg0KIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAJICogQGdlbmVyYXRlZA0KQEAgLTIyNCw2ICsyNjYsNDggQEAKIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAJICogQGdlbmVyYXRlZA0KIAkgKi8NCisJcHVibGljIGRvdWJsZSBnZXRJbnB1dFNpemUoKSB7DQorCQlyZXR1cm4gaW5wdXRTaXplOw0KKwl9DQorDQorCS8qKg0KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCisJICogQGdlbmVyYXRlZA0KKwkgKi8NCisJcHVibGljIHZvaWQgc2V0SW5wdXRTaXplKGRvdWJsZSBuZXdJbnB1dFNpemUpIHsNCisJCWRvdWJsZSBvbGRJbnB1dFNpemUgPSBpbnB1dFNpemU7DQorCQlpbnB1dFNpemUgPSBuZXdJbnB1dFNpemU7DQorCQlpZiAoZU5vdGlmaWNhdGlvblJlcXVpcmVkKCkpDQorCQkJZU5vdGlmeShuZXcgRU5vdGlmaWNhdGlvbkltcGwodGhpcywgTm90aWZpY2F0aW9uLlNFVCwgQmVuY2htYXJrUGFja2FnZS5QUk9KRUNUX19JTlBVVF9TSVpFLCBvbGRJbnB1dFNpemUsIGlucHV0U2l6ZSkpOw0KKwl9DQorDQorCS8qKg0KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCisJICogQGdlbmVyYXRlZA0KKwkgKi8NCisJcHVibGljIFN0cmluZyBnZXRJbnB1dFNpemVVbml0KCkgew0KKwkJcmV0dXJuIGlucHV0U2l6ZVVuaXQ7DQorCX0NCisNCisJLyoqDQorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+DQorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KKwkgKiBAZ2VuZXJhdGVkDQorCSAqLw0KKwlwdWJsaWMgdm9pZCBzZXRJbnB1dFNpemVVbml0KFN0cmluZyBuZXdJbnB1dFNpemVVbml0KSB7DQorCQlTdHJpbmcgb2xkSW5wdXRTaXplVW5pdCA9IGlucHV0U2l6ZVVuaXQ7DQorCQlpbnB1dFNpemVVbml0ID0gbmV3SW5wdXRTaXplVW5pdDsNCisJCWlmIChlTm90aWZpY2F0aW9uUmVxdWlyZWQoKSkNCisJCQllTm90aWZ5KG5ldyBFTm90aWZpY2F0aW9uSW1wbCh0aGlzLCBOb3RpZmljYXRpb24uU0VULCBCZW5jaG1hcmtQYWNrYWdlLlBST0pFQ1RfX0lOUFVUX1NJWkVfVU5JVCwgb2xkSW5wdXRTaXplVW5pdCwgaW5wdXRTaXplVW5pdCkpOw0KKwl9DQorDQorCS8qKg0KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCisJICogQGdlbmVyYXRlZA0KKwkgKi8NCiAJQE92ZXJyaWRlDQogCXB1YmxpYyBOb3RpZmljYXRpb25DaGFpbiBlSW52ZXJzZVJlbW92ZShJbnRlcm5hbEVPYmplY3Qgb3RoZXJFbmQsIGludCBmZWF0dXJlSUQsIE5vdGlmaWNhdGlvbkNoYWluIG1zZ3MpIHsNCiAJCXN3aXRjaCAoZmVhdHVyZUlEKSB7DQpAQCAtMjQ5LDYgKzMzMywxMCBAQAogCQkJCXJldHVybiBnZXRBdmVyYWdlTGluZXNQZXJGaWxlKCk7DQogCQkJY2FzZSBCZW5jaG1hcmtQYWNrYWdlLlBST0pFQ1RfX0ZJTEVTOg0KIAkJCQlyZXR1cm4gZ2V0RmlsZXMoKTsNCisJCQljYXNlIEJlbmNobWFya1BhY2thZ2UuUFJPSkVDVF9fSU5QVVRfU0laRToNCisJCQkJcmV0dXJuIGdldElucHV0U2l6ZSgpOw0KKwkJCWNhc2UgQmVuY2htYXJrUGFja2FnZS5QUk9KRUNUX19JTlBVVF9TSVpFX1VOSVQ6DQorCQkJCXJldHVybiBnZXRJbnB1dFNpemVVbml0KCk7DQogCQl9DQogCQlyZXR1cm4gc3VwZXIuZUdldChmZWF0dXJlSUQsIHJlc29sdmUsIGNvcmVUeXBlKTsNCiAJfQ0KQEAgLTI3NSw2ICszNjMsMTIgQEAKIAkJCQlnZXRGaWxlcygpLmNsZWFyKCk7DQogCQkJCWdldEZpbGVzKCkuYWRkQWxsKChDb2xsZWN0aW9uPD8gZXh0ZW5kcyBGaWxlPiluZXdWYWx1ZSk7DQogCQkJCXJldHVybjsNCisJCQljYXNlIEJlbmNobWFya1BhY2thZ2UuUFJPSkVDVF9fSU5QVVRfU0laRToNCisJCQkJc2V0SW5wdXRTaXplKChEb3VibGUpbmV3VmFsdWUpOw0KKwkJCQlyZXR1cm47DQorCQkJY2FzZSBCZW5jaG1hcmtQYWNrYWdlLlBST0pFQ1RfX0lOUFVUX1NJWkVfVU5JVDoNCisJCQkJc2V0SW5wdXRTaXplVW5pdCgoU3RyaW5nKW5ld1ZhbHVlKTsNCisJCQkJcmV0dXJuOw0KIAkJfQ0KIAkJc3VwZXIuZVNldChmZWF0dXJlSUQsIG5ld1ZhbHVlKTsNCiAJfQ0KQEAgLTI5OSw2ICszOTMsMTIgQEAKIAkJCWNhc2UgQmVuY2htYXJrUGFja2FnZS5QUk9KRUNUX19GSUxFUzoNCiAJCQkJZ2V0RmlsZXMoKS5jbGVhcigpOw0KIAkJCQlyZXR1cm47DQorCQkJY2FzZSBCZW5jaG1hcmtQYWNrYWdlLlBST0pFQ1RfX0lOUFVUX1NJWkU6DQorCQkJCXNldElucHV0U2l6ZShJTlBVVF9TSVpFX0VERUZBVUxUKTsNCisJCQkJcmV0dXJuOw0KKwkJCWNhc2UgQmVuY2htYXJrUGFja2FnZS5QUk9KRUNUX19JTlBVVF9TSVpFX1VOSVQ6DQorCQkJCXNldElucHV0U2l6ZVVuaXQoSU5QVVRfU0laRV9VTklUX0VERUZBVUxUKTsNCisJCQkJcmV0dXJuOw0KIAkJfQ0KIAkJc3VwZXIuZVVuc2V0KGZlYXR1cmVJRCk7DQogCX0NCkBAIC0zMTksNiArNDE5LDEwIEBACiAJCQkJcmV0dXJuIGF2ZXJhZ2VMaW5lc1BlckZpbGUgIT0gQVZFUkFHRV9MSU5FU19QRVJfRklMRV9FREVGQVVMVDsNCiAJCQljYXNlIEJlbmNobWFya1BhY2thZ2UuUFJPSkVDVF9fRklMRVM6DQogCQkJCXJldHVybiBmaWxlcyAhPSBudWxsICYmICFmaWxlcy5pc0VtcHR5KCk7DQorCQkJY2FzZSBCZW5jaG1hcmtQYWNrYWdlLlBST0pFQ1RfX0lOUFVUX1NJWkU6DQorCQkJCXJldHVybiBpbnB1dFNpemUgIT0gSU5QVVRfU0laRV9FREVGQVVMVDsNCisJCQljYXNlIEJlbmNobWFya1BhY2thZ2UuUFJPSkVDVF9fSU5QVVRfU0laRV9VTklUOg0KKwkJCQlyZXR1cm4gSU5QVVRfU0laRV9VTklUX0VERUZBVUxUID09IG51bGwgPyBpbnB1dFNpemVVbml0ICE9IG51bGwgOiAhSU5QVVRfU0laRV9VTklUX0VERUZBVUxULmVxdWFscyhpbnB1dFNpemVVbml0KTsNCiAJCX0NCiAJCXJldHVybiBzdXBlci5lSXNTZXQoZmVhdHVyZUlEKTsNCiAJfQ0KQEAgLTMzOSw2ICs0NDMsMTAgQEAKIAkJcmVzdWx0LmFwcGVuZChhdmVyYWdlRmlsZVNpemVJbkJ5dGVzKTsNCiAJCXJlc3VsdC5hcHBlbmQoIiwgYXZlcmFnZUxpbmVzUGVyRmlsZTogIik7DQogCQlyZXN1bHQuYXBwZW5kKGF2ZXJhZ2VMaW5lc1BlckZpbGUpOw0KKwkJcmVzdWx0LmFwcGVuZCgiLCBpbnB1dFNpemU6ICIpOw0KKwkJcmVzdWx0LmFwcGVuZChpbnB1dFNpemUpOw0KKwkJcmVzdWx0LmFwcGVuZCgiLCBpbnB1dFNpemVVbml0OiAiKTsNCisJCXJlc3VsdC5hcHBlbmQoaW5wdXRTaXplVW5pdCk7DQogCQlyZXN1bHQuYXBwZW5kKCcpJyk7DQogCQlyZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7DQogCX0NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvbWV0YW1vZGVsL2ludGVybmFsL2JlbmNobWFyay9pbXBsL1Jlc291cmNlSW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvaW1wbC9SZXNvdXJjZUltcGwuamF2YQppbmRleCA2MzExMzU2Li41YTY5MDU5IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvbWV0YW1vZGVsL2ludGVybmFsL2JlbmNobWFyay9pbXBsL1Jlc291cmNlSW1wbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9tZXRhbW9kZWwvaW50ZXJuYWwvYmVuY2htYXJrL2ltcGwvUmVzb3VyY2VJbXBsLmphdmEKQEAgLTEsMTQgKzEsMTQgQEAKIC8qKg0KLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi0gKiAgKiBDb3B5cmlnaHQgKGMpIDIwMTIgSU5SSUEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlDQotICogICogYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlDQotICogICogUHVibGljIExpY2Vuc2UgdjEuMCB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KLSAqICAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQotICogICogDQotICogICogQ29udHJpYnV0b3JzOiBHdWlsbGF1bWUgRG91eCAtIElOUklBIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uDQotICogICogDQotICogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAqIENvcHlyaWdodCAoYykgMjAxMiwgMjAxNSBJTlJJQSBhbmQgTWlhLVNvZnR3YXJlLg0KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjANCisgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KKyAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQogICogDQorICogQ29udHJpYnV0b3JzOg0KKyAqICAgICAgR3VpbGxhdW1lIERvdXggKElOUklBKSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KKyAqICAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzI5MiAtIFtCZW5jaG1hcmtdIGxvbmcgbXVzdCBiZSB1c2VkIHRvIHN0b3JlIG1lbW9yeSB1c2FnZQ0KKyAqICAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzQwMCAtIFtCZW5jaG1hcmtdIFRoZSBpbnB1dCBzaXplIHNob3VsZCBiZSBjb21wdXRhYmxlIGJ5IHRoZSBkaXNjb3ZlcmVyDQogICovDQogcGFja2FnZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5pbXBsOw0KIA0KQEAgLTI4LDExICsyOCwxMSBAQAogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQogICogPHA+DQogICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgaW1wbGVtZW50ZWQ6DQorICogPC9wPg0KICAqIDx1bD4NCiAgKiAgIDxsaT57QGxpbmsgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuaW1wbC5SZXNvdXJjZUltcGwjZ2V0TmFtZSA8ZW0+TmFtZTwvZW0+fTwvbGk+DQogICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLmltcGwuUmVzb3VyY2VJbXBsI2dldFRvdGFsU2l6ZUluQnl0ZXMgPGVtPlRvdGFsIFNpemUgSW4gQnl0ZXM8L2VtPn08L2xpPg0KICAqIDwvdWw+DQotICogPC9wPg0KICAqDQogICogQGdlbmVyYXRlZA0KICAqLw0KQEAgLTQyLDcgKzQyLDcgQEAKIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAJICogQGdlbmVyYXRlZA0KIAkgKi8NCi0JcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0ID0gIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICogQ29weXJpZ2h0IChjKSAyMDEyIElOUklBLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZVxyXG4gKiBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2VcclxuICogUHVibGljIExpY2Vuc2UgdjEuMCB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdFxyXG4gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbFxyXG4gKiBcclxuICogQ29udHJpYnV0b3JzOiBHdWlsbGF1bWUgRG91eCAtIElOUklBIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAqIFxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiI7DQorCXB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodCA9ICJDb3B5cmlnaHQgKGMpIDIwMTIsIDIwMTUgSU5SSUEgYW5kIE1pYS1Tb2Z0d2FyZS5cclxuQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFsc1xyXG5hcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjBcclxud2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcclxuaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWxcclxuXHJcbkNvbnRyaWJ1dG9yczpcclxuICAgICBHdWlsbGF1bWUgRG91eCAoSU5SSUEpIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzI5MiAtIFtCZW5jaG1hcmtdIGxvbmcgbXVzdCBiZSB1c2VkIHRvIHN0b3JlIG1lbW9yeSB1c2FnZVxyXG4gICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODM0MDAgLSBbQmVuY2htYXJrXSBUaGUgaW5wdXQgc2l6ZSBzaG91bGQgYmUgY29tcHV0YWJsZSBieSB0aGUgZGlzY292ZXJlclxyXG4iOw0KIA0KIAkvKioNCiAJICogVGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlICd7QGxpbmsgI2dldE5hbWUoKSA8ZW0+TmFtZTwvZW0+fScgYXR0cmlidXRlLg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9tZXRhbW9kZWwvaW50ZXJuYWwvYmVuY2htYXJrL3V0aWwvQmVuY2htYXJrQWRhcHRlckZhY3RvcnkuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9tZXRhbW9kZWwvaW50ZXJuYWwvYmVuY2htYXJrL3V0aWwvQmVuY2htYXJrQWRhcHRlckZhY3RvcnkuamF2YQppbmRleCBlNjQ5NWNhLi41ZDE2ZDU0IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvbWV0YW1vZGVsL2ludGVybmFsL2JlbmNobWFyay91dGlsL0JlbmNobWFya0FkYXB0ZXJGYWN0b3J5LmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvdXRpbC9CZW5jaG1hcmtBZGFwdGVyRmFjdG9yeS5qYXZhCkBAIC0xLDE0ICsxLDE0IEBACiAvKioNCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQotICogICogQ29weXJpZ2h0IChjKSAyMDEyIElOUklBLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZQ0KLSAqICAqIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZQ0KLSAqICAqIFB1YmxpYyBMaWNlbnNlIHYxLjAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCi0gKiAgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KLSAqICAqIA0KLSAqICAqIENvbnRyaWJ1dG9yczogR3VpbGxhdW1lIERvdXggLSBJTlJJQSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KLSAqICAqIA0KLSAqICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIsIDIwMTUgSU5SSUEgYW5kIE1pYS1Tb2Z0d2FyZS4NCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQorICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCisgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KICAqIA0KKyAqIENvbnRyaWJ1dG9yczoNCisgKiAgICAgIEd1aWxsYXVtZSBEb3V4IChJTlJJQSkgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCisgKiAgICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODMyOTIgLSBbQmVuY2htYXJrXSBsb25nIG11c3QgYmUgdXNlZCB0byBzdG9yZSBtZW1vcnkgdXNhZ2UNCisgKiAgICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODM0MDAgLSBbQmVuY2htYXJrXSBUaGUgaW5wdXQgc2l6ZSBzaG91bGQgYmUgY29tcHV0YWJsZSBieSB0aGUgZGlzY292ZXJlcg0KICAqLw0KIHBhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsudXRpbDsNCiANCkBAIC0zNSw3ICszNSw3IEBACiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQogCSAqIEBnZW5lcmF0ZWQNCiAJICovDQotCXB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodCA9ICIqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAqIENvcHlyaWdodCAoYykgMjAxMiBJTlJJQS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGVcclxuICogYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlXHJcbiAqIFB1YmxpYyBMaWNlbnNlIHYxLjAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcclxuICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWxcclxuICogXHJcbiAqIENvbnRyaWJ1dG9yczogR3VpbGxhdW1lIERvdXggLSBJTlJJQSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvblxyXG4gKiBcclxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4iOw0KKwlwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHQgPSAiQ29weXJpZ2h0IChjKSAyMDEyLCAyMDE1IElOUklBIGFuZCBNaWEtU29mdHdhcmUuXHJcbkFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHNcclxuYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wXHJcbndoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0XHJcbmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sXHJcblxyXG5Db250cmlidXRvcnM6XHJcbiAgICAgR3VpbGxhdW1lIERvdXggKElOUklBKSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvblxyXG4gICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODMyOTIgLSBbQmVuY2htYXJrXSBsb25nIG11c3QgYmUgdXNlZCB0byBzdG9yZSBtZW1vcnkgdXNhZ2VcclxuICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgzNDAwIC0gW0JlbmNobWFya10gVGhlIGlucHV0IHNpemUgc2hvdWxkIGJlIGNvbXB1dGFibGUgYnkgdGhlIGRpc2NvdmVyZXJcclxuIjsNCiANCiAJLyoqDQogCSAqIFRoZSBjYWNoZWQgbW9kZWwgcGFja2FnZS4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvbWV0YW1vZGVsL2ludGVybmFsL2JlbmNobWFyay91dGlsL0JlbmNobWFya1N3aXRjaC5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL21ldGFtb2RlbC9pbnRlcm5hbC9iZW5jaG1hcmsvdXRpbC9CZW5jaG1hcmtTd2l0Y2guamF2YQppbmRleCBiYzNjMWVlLi4zODJhOTQ0IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvbWV0YW1vZGVsL2ludGVybmFsL2JlbmNobWFyay91dGlsL0JlbmNobWFya1N3aXRjaC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9tZXRhbW9kZWwvaW50ZXJuYWwvYmVuY2htYXJrL3V0aWwvQmVuY2htYXJrU3dpdGNoLmphdmEKQEAgLTEsMTQgKzEsMTQgQEAKIC8qKg0KLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi0gKiAgKiBDb3B5cmlnaHQgKGMpIDIwMTIgSU5SSUEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlDQotICogICogYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlDQotICogICogUHVibGljIExpY2Vuc2UgdjEuMCB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KLSAqICAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQotICogICogDQotICogICogQ29udHJpYnV0b3JzOiBHdWlsbGF1bWUgRG91eCAtIElOUklBIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uDQotICogICogDQotICogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAqIENvcHlyaWdodCAoYykgMjAxMiwgMjAxNSBJTlJJQSBhbmQgTWlhLVNvZnR3YXJlLg0KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjANCisgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KKyAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQogICogDQorICogQ29udHJpYnV0b3JzOg0KKyAqICAgICAgR3VpbGxhdW1lIERvdXggKElOUklBKSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KKyAqICAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzI5MiAtIFtCZW5jaG1hcmtdIGxvbmcgbXVzdCBiZSB1c2VkIHRvIHN0b3JlIG1lbW9yeSB1c2FnZQ0KKyAqICAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzQwMCAtIFtCZW5jaG1hcmtdIFRoZSBpbnB1dCBzaXplIHNob3VsZCBiZSBjb21wdXRhYmxlIGJ5IHRoZSBkaXNjb3ZlcmVyDQogICovDQogcGFja2FnZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay51dGlsOw0KIA0KQEAgLTM4LDcgKzM4LDcgQEAKIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAJICogQGdlbmVyYXRlZA0KIAkgKi8NCi0JcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0ID0gIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICogQ29weXJpZ2h0IChjKSAyMDEyIElOUklBLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZVxyXG4gKiBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2VcclxuICogUHVibGljIExpY2Vuc2UgdjEuMCB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdFxyXG4gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbFxyXG4gKiBcclxuICogQ29udHJpYnV0b3JzOiBHdWlsbGF1bWUgRG91eCAtIElOUklBIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAqIFxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiI7DQorCXB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodCA9ICJDb3B5cmlnaHQgKGMpIDIwMTIsIDIwMTUgSU5SSUEgYW5kIE1pYS1Tb2Z0d2FyZS5cclxuQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFsc1xyXG5hcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjBcclxud2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcclxuaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWxcclxuXHJcbkNvbnRyaWJ1dG9yczpcclxuICAgICBHdWlsbGF1bWUgRG91eCAoSU5SSUEpIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MzI5MiAtIFtCZW5jaG1hcmtdIGxvbmcgbXVzdCBiZSB1c2VkIHRvIHN0b3JlIG1lbW9yeSB1c2FnZVxyXG4gICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODM0MDAgLSBbQmVuY2htYXJrXSBUaGUgaW5wdXQgc2l6ZSBzaG91bGQgYmUgY29tcHV0YWJsZSBieSB0aGUgZGlzY292ZXJlclxyXG4iOw0KIA0KIAkvKioNCiAJICogVGhlIGNhY2hlZCBtb2RlbCBwYWNrYWdlDQpAQCAtODIsMTMgKzgyLDExIEBACiAJCWlmICh0aGVFQ2xhc3MuZUNvbnRhaW5lcigpID09IG1vZGVsUGFja2FnZSkgew0KIAkJCXJldHVybiBkb1N3aXRjaCh0aGVFQ2xhc3MuZ2V0Q2xhc3NpZmllcklEKCksIHRoZUVPYmplY3QpOw0KIAkJfQ0KLQkJZWxzZSB7DQotCQkJTGlzdDxFQ2xhc3M+IGVTdXBlclR5cGVzID0gdGhlRUNsYXNzLmdldEVTdXBlclR5cGVzKCk7DQotCQkJcmV0dXJuDQotCQkJCWVTdXBlclR5cGVzLmlzRW1wdHkoKSA/DQotCQkJCQlkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KSA6DQotCQkJCQlkb1N3aXRjaChlU3VwZXJUeXBlcy5nZXQoMCksIHRoZUVPYmplY3QpOw0KLQkJfQ0KKwkJTGlzdDxFQ2xhc3M+IGVTdXBlclR5cGVzID0gdGhlRUNsYXNzLmdldEVTdXBlclR5cGVzKCk7DQorCQlyZXR1cm4NCisJCQllU3VwZXJUeXBlcy5pc0VtcHR5KCkgPw0KKwkJCQlkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KSA6DQorCQkJCWRvU3dpdGNoKGVTdXBlclR5cGVzLmdldCgwKSwgdGhlRU9iamVjdCk7DQogCX0NCiANCiAJLyoqDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCA3ZWU2M2IwLi40NGJjMWQ3IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtOCw3ICs4LDExIEBACiBCdW5kbGUtTG9jYWxpemF0aW9uOiBwbHVnaW4KIEJ1bmRsZS1SZXF1aXJlZEV4ZWN1dGlvbkVudmlyb25tZW50OiBKMlNFLTEuNQogRXhwb3J0LVBhY2thZ2U6IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmNhdGFsb2csCi0gb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkubGF1bmNoCisgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuY2F0YWxvZy5pbXBsO3gtaW50ZXJuYWw6PXRydWUsCisgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuY2F0YWxvZy51dGlsO3gtaW50ZXJuYWw6PXRydWUsCisgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkubGF1bmNoLAorIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmxhdW5jaC5pbXBsO3gtaW50ZXJuYWw6PXRydWUsCisgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkubGF1bmNoLnV0aWw7eC1pbnRlcm5hbDo9dHJ1ZQogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZSwKICBvcmcuZWNsaXBzZS5lbWYuZWNvcmU7dmlzaWJpbGl0eTo9cmVleHBvcnQsCiAgb3JnLmVjbGlwc2UuZW1mLmZhY2V0LnV0aWwuZW1mLmNhdGFsb2c7YnVuZGxlLXZlcnNpb249IjAuMS4wIiwKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZmFjZXQudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZmFjZXQvdGVzdHMvRmFjZXRUZXN0cy5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5mYWNldC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9mYWNldC90ZXN0cy9GYWNldFRlc3RzLmphdmEKaW5kZXggM2U3MjRjZS4uMTgxYWEwNCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5mYWNldC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9mYWNldC90ZXN0cy9GYWNldFRlc3RzLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5mYWNldC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9mYWNldC90ZXN0cy9GYWNldFRlc3RzLmphdmEKQEAgLTc3LDcgKzc3LDYgQEAKICAqDQogICovDQogQFN1cHByZXNzV2FybmluZ3MoeyAibmxzIiB9KQ0KLUBJZ25vcmUgLy9jZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ2ODMzOQ0KIHB1YmxpYyBjbGFzcyBGYWNldFRlc3RzIHsNCiAJcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5CX01BUktFUl9HRVRTVUJDTEFTU0VTID0gNjsNCiAJcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgRklMRV9FWFQgPSAiLmZhY2V0U2V0IjsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3Rlc3RzL1VuaXRUZXN0cy5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5xdWVyeS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9xdWVyeS90ZXN0cy9Vbml0VGVzdHMuamF2YQppbmRleCAwMGRhZDZiLi42NWY0ZjFjIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3Rlc3RzL1VuaXRUZXN0cy5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEucXVlcnkudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvcXVlcnkvdGVzdHMvVW5pdFRlc3RzLmphdmEKQEAgLTY0LDcgKzY0LDYgQEAKIGltcG9ydCBvcmcuanVuaXQuVGVzdDsNCiANCiBAU3VwcHJlc3NXYXJuaW5ncygibmxzIikNCi1ASWdub3JlIC8vIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDY4MjY5DQogcHVibGljIGNsYXNzIFVuaXRUZXN0cyB7DQogDQogCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBGSUxFX0VYVCA9ICIucXVlcnlTZXQiOyAvLyROT04tTkxTLTEkDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLmRpc2NvdmVyZXIudGVzdHMvLnBtZCBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi5kaXNjb3ZlcmVyLnRlc3RzLy5wbWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjUwNTViMgotLS0gL2Rldi9udWxsCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi5kaXNjb3ZlcmVyLnRlc3RzLy5wbWQKQEAgLTAsMCArMSwxNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCitDb3B5cmlnaHQgKGMpIDIwMTUgTWlhLVNvZnR3YXJlLg0KK0FsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCithcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjANCit3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KK2h0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQorDQorQ29udHJpYnV0b3JzOg0KKyAgIEdyw6lnb2lyZSBEdXDDqSAtIEJ1ZyA0NzkzMzkgLSBbVW5pdCBUZXN0IEZhaWx1cmVdIG9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi5kaXNjb3ZlcmVyLnRlc3RzLlRlc3RNZW1vcnlVc2FnZS50ZXN0MDAyDQorPHBtZD4NCisgICAgPHVzZVByb2plY3RSdWxlU2V0PnRydWU8L3VzZVByb2plY3RSdWxlU2V0Pg0KKyAgICA8cnVsZVNldEZpbGU+Li4vb3JnLmVjbGlwc2UuZW1mLmZhY2V0LmFyY2hpLnRlY2gucnVsZXMvcG1kL3J1bGVzZXQueG1sPC9ydWxlU2V0RmlsZT4NCisgICAgPGluY2x1ZGVEZXJpdmVkRmlsZXM+ZmFsc2U8L2luY2x1ZGVEZXJpdmVkRmlsZXM+DQorICAgIDx2aW9sYXRpb25zQXNFcnJvcnM+dHJ1ZTwvdmlvbGF0aW9uc0FzRXJyb3JzPg0KKzwvcG1kPg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi5kaXNjb3ZlcmVyLnRlc3RzLy5wcm9qZWN0IGIvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLmRpc2NvdmVyZXIudGVzdHMvLnByb2plY3QKaW5kZXggZGYzN2NjNy4uOGNmNjlhYSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLmRpc2NvdmVyZXIudGVzdHMvLnByb2plY3QKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLmRpc2NvdmVyZXIudGVzdHMvLnByb2plY3QKQEAgLTIwLDkgKzIwLDIxIEBACiAJCQk8YXJndW1lbnRzPg0KIAkJCTwvYXJndW1lbnRzPg0KIAkJPC9idWlsZENvbW1hbmQ+DQorCQk8YnVpbGRDb21tYW5kPg0KKwkJCTxuYW1lPm5ldC5zZi5lY2xpcHNlY3MuY29yZS5DaGVja3N0eWxlQnVpbGRlcjwvbmFtZT4NCisJCQk8YXJndW1lbnRzPg0KKwkJCTwvYXJndW1lbnRzPg0KKwkJPC9idWlsZENvbW1hbmQ+DQorCQk8YnVpbGRDb21tYW5kPg0KKwkJCTxuYW1lPm5ldC5zb3VyY2Vmb3JnZS5wbWQuZWNsaXBzZS5wbHVnaW4ucG1kQnVpbGRlcjwvbmFtZT4NCisJCQk8YXJndW1lbnRzPg0KKwkJCTwvYXJndW1lbnRzPg0KKwkJPC9idWlsZENvbW1hbmQ+DQogCTwvYnVpbGRTcGVjPg0KIAk8bmF0dXJlcz4NCiAJCTxuYXR1cmU+b3JnLmVjbGlwc2UucGRlLlBsdWdpbk5hdHVyZTwvbmF0dXJlPg0KIAkJPG5hdHVyZT5vcmcuZWNsaXBzZS5qZHQuY29yZS5qYXZhbmF0dXJlPC9uYXR1cmU+DQorCQk8bmF0dXJlPm5ldC5zZi5lY2xpcHNlY3MuY29yZS5DaGVja3N0eWxlTmF0dXJlPC9uYXR1cmU+DQorCQk8bmF0dXJlPm5ldC5zb3VyY2Vmb3JnZS5wbWQuZWNsaXBzZS5wbHVnaW4ucG1kTmF0dXJlPC9uYXR1cmU+DQogCTwvbmF0dXJlcz4NCiA8L3Byb2plY3REZXNjcmlwdGlvbj4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24uZGlzY292ZXJlci50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi5kaXNjb3ZlcmVyLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDE0YjRkNzEuLjllZmY4NDkgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi5kaXNjb3ZlcmVyLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi5kaXNjb3ZlcmVyLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0xOCw3ICsxOCw4IEBACiAgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZTtidW5kbGUtdmVyc2lvbj0iMC45LjAiLAogIG9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyO2J1bmRsZS12ZXJzaW9uPSIwLjkuMCIsCiAgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuY29yZTtidW5kbGUtdmVyc2lvbj0iMC45LjAiLAotIG9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLnRlc3RzO2J1bmRsZS12ZXJzaW9uPSIwLjkuMCIKKyBvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci50ZXN0cztidW5kbGUtdmVyc2lvbj0iMC45LjAiLAorIG9yZy5lY2xpcHNlLmVtZi5mYWNldC51dGlsLmNvcmU7YnVuZGxlLXZlcnNpb249IjEuMS4wIgogQnVuZGxlLUFjdGl2YXRpb25Qb2xpY3k6IGxhenkKIEJ1bmRsZS1SZXF1aXJlZEV4ZWN1dGlvbkVudmlyb25tZW50OiBKMlNFLTEuNQogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3IKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2phdmEvY29tcG9zaXRpb24vZGlzY292ZXJlci90ZXN0cy9UZXN0TWVtb3J5VXNhZ2UuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2phdmEvY29tcG9zaXRpb24vZGlzY292ZXJlci90ZXN0cy9UZXN0TWVtb3J5VXNhZ2UuamF2YQppbmRleCAzZDExYzBiLi5iZmNhY2FhIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24uZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qYXZhL2NvbXBvc2l0aW9uL2Rpc2NvdmVyZXIvdGVzdHMvVGVzdE1lbW9yeVVzYWdlLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamF2YS9jb21wb3NpdGlvbi9kaXNjb3ZlcmVyL3Rlc3RzL1Rlc3RNZW1vcnlVc2FnZS5qYXZhCkBAIC0xLDUgKzEsNSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTEgTWlhLVNvZnR3YXJlLg0KKyAqIENvcHlyaWdodCAoYykgMjAxMSwgMjAxNSBNaWEtU29mdHdhcmUuDQogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KICAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQpAQCAtOCw2ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoNCiAgKiAgICBOaWNvbGFzIEd1eW9tYXIgKE1pYS1Tb2Z0d2FyZSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCiAgKiAgICBOaWNvbGFzIEJyb3MgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgMzM1MDAzIC0gW0Rpc2NvdmVyZXJdIDogRXhpc3RpbmcgRGlzY292ZXJlcnMgUmVmYWN0b3JpbmcgYmFzZWQgb24gbmV3IGZyYW1ld29yaw0KKyAqICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0NzkzMzkgLSBbVW5pdCBUZXN0IEZhaWx1cmVdIG9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi5kaXNjb3ZlcmVyLnRlc3RzLlRlc3RNZW1vcnlVc2FnZS50ZXN0MDAyDQogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQogcGFja2FnZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24uZGlzY292ZXJlci50ZXN0czsNCiANCkBAIC0xNiw4ICsxNyw2IEBACiBpbXBvcnQgamF2YS51dGlsLkVudW1lcmF0aW9uOw0KIGltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7DQogDQotaW1wb3J0IGp1bml0LmZyYW1ld29yay5Bc3NlcnQ7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLklGaWxlOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5JRm9sZGVyOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5JUHJvamVjdDsNCkBAIC0yOSw1MCArMjgsNDkgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLnV0aWwuRUxpc3Q7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FT2JqZWN0Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUucmVzb3VyY2UuUmVzb3VyY2U7DQotaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmNvbW1vbi5jb3JlLmxvZ2dpbmcuTW9EaXNjb0xvZ2dlcjsNCi1pbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIudGVzdHMuQWN0aXZhdG9yOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZmFjZXQudXRpbC5jb3JlLkxvZ2dlcjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuamR0LmNvcmUuSUNsYXNzcGF0aEVudHJ5Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS5qZHQuY29yZS5JSmF2YVByb2plY3Q7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmpkdC5jb3JlLkphdmFDb3JlOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5qZHQuY29yZS5KYXZhTW9kZWxFeGNlcHRpb247DQogaW1wb3J0IG9yZy5lY2xpcHNlLmpkdC5sYXVuY2hpbmcuSmF2YVJ1bnRpbWU7DQoraW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmNvcmUuZXhjZXB0aW9uLkRpc2NvdmVyeUV4Y2VwdGlvbjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLmRpc2NvdmVyZXIuRGlzY292ZXJLRE1Tb3VyY2VBbmRKYXZhTW9kZWxGcm9tSmF2YVByb2plY3Q7DQogaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi5qYXZhYXBwbGljYXRpb24uSmF2YUFwcGxpY2F0aW9uOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci50ZXN0cy5BY3RpdmF0b3I7DQogaW1wb3J0IG9yZy5qdW5pdC5BZnRlcjsNCiBpbXBvcnQgb3JnLmp1bml0LkJlZm9yZTsNCiBpbXBvcnQgb3JnLmp1bml0LlRlc3Q7DQogaW1wb3J0IG9yZy5vc2dpLmZyYW1ld29yay5CdW5kbGU7DQogDQoraW1wb3J0IGp1bml0LmZyYW1ld29yay5Bc3NlcnQ7DQorDQogcHVibGljIGNsYXNzIFRlc3RNZW1vcnlVc2FnZSB7DQogDQorCXByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgTUFYX01FTV9BV0FJVEVEID0gMTgwOw0KKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgS0lMTyA9IDEwMjQ7DQogCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBQUk9KRUNUX05BTUUgPSBKVW5pdFBsdWdpbi5QTFVHSU5fSUQNCiAJCQkrICJfdGVzdDAwMSI7IC8vJE5PTi1OTFMtMSQNCiANCiAJcHJpdmF0ZSBzdGF0aWMgUmVzb3VyY2UgcmVzb3VyY2UgPSBudWxsOw0KIAlwcml2YXRlIHN0YXRpYyBKYXZhQXBwbGljYXRpb24gbW9kZWw7DQogDQotCXByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgQVdBSVRFRF9NRU1fTUFYSU1BTCA9IDEwMDsNCi0NCiAJcHJpdmF0ZSBsb25nIG1lbW9yeVVzZWQ7DQogCXByaXZhdGUgSVByb2plY3QgcHJvamVjdCA9IG51bGw7DQogDQotCXByaXZhdGUgZmluYWwgaW50IGludDEwMjQgPSAxMDI0Ow0KLQ0KIAlAQmVmb3JlDQotCXB1YmxpYyB2b2lkIGluaXRSZXNvdXJjZSgpIHRocm93cyBFeGNlcHRpb24gew0KLQ0KKwlwdWJsaWMgdm9pZCBpbml0UmVzb3VyY2UoKSB0aHJvd3MgQ29yZUV4Y2VwdGlvbiwgSU9FeGNlcHRpb24sDQorCQkJSW50ZXJydXB0ZWRFeGNlcHRpb24sIERpc2NvdmVyeUV4Y2VwdGlvbiB7DQogCQlmaW5hbCBsb25nIHRvdGFsTWVtb3J5ID0gUnVudGltZS5nZXRSdW50aW1lKCkudG90YWxNZW1vcnkoKTsNCi0NCiAJCXRoaXMucHJvamVjdCA9IFJlc291cmNlc1BsdWdpbi5nZXRXb3Jrc3BhY2UoKS5nZXRSb290KCkNCiAJCQkJLmdldFByb2plY3QoVGVzdE1lbW9yeVVzYWdlLlBST0pFQ1RfTkFNRSk7DQotDQogCQlpZiAodGhpcy5wcm9qZWN0LmV4aXN0cygpKSB7DQogCQkJdGhpcy5wcm9qZWN0LmRlbGV0ZSh0cnVlLCB0cnVlLCBuZXcgTnVsbFByb2dyZXNzTW9uaXRvcigpKTsNCiAJCX0NCiAJCXRoaXMucHJvamVjdC5jcmVhdGUobmV3IE51bGxQcm9ncmVzc01vbml0b3IoKSk7DQogCQl0aGlzLnByb2plY3Qub3BlbihuZXcgTnVsbFByb2dyZXNzTW9uaXRvcigpKTsNCiAJCWRlZXBDb3B5KCIvd29ya3NwYWNlL3Rlc3QwMDEvIiwgdGhpcy5wcm9qZWN0LCAiLyIpOyAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQNCi0JCUlKYXZhUHJvamVjdCBqYXZhUHJvamVjdCA9IEphdmFDb3JlLmNyZWF0ZSh0aGlzLnByb2plY3QpOw0KKwkJZmluYWwgSUphdmFQcm9qZWN0IGphdmFQcm9qZWN0ID0gSmF2YUNvcmUuY3JlYXRlKHRoaXMucHJvamVjdCk7DQogCQlhZGRTeXN0ZW1MaWJyYXJpZXMoamF2YVByb2plY3QpOw0KIAkJdGhpcy5wcm9qZWN0LnJlZnJlc2hMb2NhbChJUmVzb3VyY2UuREVQVEhfSU5GSU5JVEUsDQogCQkJCW5ldyBOdWxsUHJvZ3Jlc3NNb25pdG9yKCkpOw0KQEAgLTgxLDE3ICs3OSwxNiBAQAogCQlKb2IuZ2V0Sm9iTWFuYWdlcigpLmpvaW4oUmVzb3VyY2VzUGx1Z2luLkZBTUlMWV9NQU5VQUxfUkVGUkVTSCwgbnVsbCk7DQogCQlKb2IuZ2V0Sm9iTWFuYWdlcigpLmpvaW4oUmVzb3VyY2VzUGx1Z2luLkZBTUlMWV9NQU5VQUxfQlVJTEQsIG51bGwpOw0KIAkJZGlzY292ZXJSZXNvdXJjZShqYXZhUHJvamVjdCk7DQotCQlFTGlzdDxFT2JqZWN0PiBpID0gVGVzdE1lbW9yeVVzYWdlLmdldFJlc291cmNlKCkuZ2V0Q29udGVudHMoKTsNCi0JCWZvciAoSXRlcmF0b3I8RU9iamVjdD4gaXRlcmF0b3IgPSBpLml0ZXJhdG9yKCk7IGl0ZXJhdG9yLmhhc05leHQoKQ0KKwkJZmluYWwgRUxpc3Q8RU9iamVjdD4gcm9vdHMgPSBUZXN0TWVtb3J5VXNhZ2UuZ2V0UmVzb3VyY2UoKS5nZXRDb250ZW50cygpOw0KKwkJZm9yIChmaW5hbCBJdGVyYXRvcjxFT2JqZWN0PiBpdGVyYXRvciA9IHJvb3RzLml0ZXJhdG9yKCk7IGl0ZXJhdG9yLmhhc05leHQoKQ0KIAkJCQkmJiBUZXN0TWVtb3J5VXNhZ2UubW9kZWwgPT0gbnVsbDspIHsNCi0JCQlFT2JqZWN0IGVvYmplY3QgPSBpdGVyYXRvci5uZXh0KCk7DQorCQkJZmluYWwgRU9iamVjdCBlb2JqZWN0ID0gaXRlcmF0b3IubmV4dCgpOw0KIAkJCWlmIChlb2JqZWN0IGluc3RhbmNlb2YgSmF2YUFwcGxpY2F0aW9uKSB7DQogCQkJCVRlc3RNZW1vcnlVc2FnZS5tb2RlbCA9IChKYXZhQXBwbGljYXRpb24pIGVvYmplY3Q7DQogCQkJfQ0KIAkJfQ0KLQ0KLQkJdGhpcy5tZW1vcnlVc2VkID0gKFJ1bnRpbWUuZ2V0UnVudGltZSgpLnRvdGFsTWVtb3J5KCkgLSB0b3RhbE1lbW9yeSkNCi0JCQkJLyB0aGlzLmludDEwMjQgLyB0aGlzLmludDEwMjQ7DQorCQlmaW5hbCBsb25nIGRlbHRhTWVtID0gUnVudGltZS5nZXRSdW50aW1lKCkudG90YWxNZW1vcnkoKSAtIHRvdGFsTWVtb3J5Ow0KKwkJdGhpcy5tZW1vcnlVc2VkID0gZGVsdGFNZW0gLyBLSUxPIC8gS0lMTzsNCiAJfQ0KIA0KIAlAQWZ0ZXINCkBAIC0xMDMsNTYgKzEwMCw2MCBAQAogDQogCUBUZXN0DQogCXB1YmxpYyB2b2lkIHRlc3QwMDIoKSB7DQorCQlmaW5hbCBTdHJpbmcgbWVzc2FnZSA9IFN0cmluZy5mb3JtYXQoDQorCQkJCSJBYm5vcm1hbCBtZW1vcnkgdXNlIGZvciBKYXZhIENvbXBvc2l0aW9uIERpc2NvdmVyZXI6ICVzID4gJXMiLCAvLyROT04tTkxTLTEkDQorCQkJCUxvbmcudG9TdHJpbmcodGhpcy5tZW1vcnlVc2VkKSwNCisJCQkJTG9uZy50b1N0cmluZyhUZXN0TWVtb3J5VXNhZ2UuTUFYX01FTV9BV0FJVEVEKSk7DQogCQlBc3NlcnQuYXNzZXJ0VHJ1ZSgNCi0JCQkJIkFibm9ybWFsIG1lbW9yeSB1c2UgZm9yIEphdmEgQ29tcG9zaXRpb24gRGlzY292ZXJlciAiICsgIlxuICIgKyB0aGlzLm1lbW9yeVVzZWQgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkDQotCQkJCQkJKyAiID4gIiArIFRlc3RNZW1vcnlVc2FnZS5BV0FJVEVEX01FTV9NQVhJTUFMLCAvLyROT04tTkxTLTEkDQotCQkJCXRoaXMubWVtb3J5VXNlZCA8IFRlc3RNZW1vcnlVc2FnZS5BV0FJVEVEX01FTV9NQVhJTUFMKTsNCisJCQkJbWVzc2FnZSwgDQorCQkJCXRoaXMubWVtb3J5VXNlZCA8IFRlc3RNZW1vcnlVc2FnZS5NQVhfTUVNX0FXQUlURUQpOw0KIAl9DQogDQogCXByaXZhdGUgc3RhdGljIHZvaWQgZGlzY292ZXJSZXNvdXJjZShmaW5hbCBJSmF2YVByb2plY3QgamF2YVByb2plY3QpDQotCQkJdGhyb3dzIEV4Y2VwdGlvbiB7DQotCQlEaXNjb3ZlcktETVNvdXJjZUFuZEphdmFNb2RlbEZyb21KYXZhUHJvamVjdCBkaXNjb3ZlcmVyID0gbmV3IERpc2NvdmVyS0RNU291cmNlQW5kSmF2YU1vZGVsRnJvbUphdmFQcm9qZWN0KCk7DQorCQkJdGhyb3dzIERpc2NvdmVyeUV4Y2VwdGlvbiB7DQorCQlmaW5hbCBEaXNjb3ZlcktETVNvdXJjZUFuZEphdmFNb2RlbEZyb21KYXZhUHJvamVjdCBkaXNjb3ZlcmVyID0NCisJCQkJbmV3IERpc2NvdmVyS0RNU291cmNlQW5kSmF2YU1vZGVsRnJvbUphdmFQcm9qZWN0KCk7DQogCQlkaXNjb3ZlcmVyLmRpc2NvdmVyRWxlbWVudChqYXZhUHJvamVjdCwgbmV3IE51bGxQcm9ncmVzc01vbml0b3IoKSk7DQogCQlUZXN0TWVtb3J5VXNhZ2UucmVzb3VyY2UgPSBkaXNjb3ZlcmVyLmdldFRhcmdldE1vZGVsKCk7DQogCX0NCiANCiAJcHJpdmF0ZSB2b2lkIGRlZXBDb3B5KGZpbmFsIFN0cmluZyBwYXRoLCBmaW5hbCBJUHJvamVjdCBwcm9qZWN0VGFyZ2V0LA0KLQkJCWZpbmFsIFN0cmluZyBkZXN0aW5hdGlvblBhdGgpIHRocm93cyBDb3JlRXhjZXB0aW9uLCBJT0V4Y2VwdGlvbiB7DQotCQlCdW5kbGUgYnVuZGxlID0gQWN0aXZhdG9yLmdldERlZmF1bHQoKS5nZXRCdW5kbGUoKTsNCi0JCUVudW1lcmF0aW9uPD8+IGUgPSBBY3RpdmF0b3IuZ2V0RGVmYXVsdCgpLmdldEJ1bmRsZSgpDQorCQkJZmluYWwgU3RyaW5nIGRlc3RQYXRoKSB0aHJvd3MgQ29yZUV4Y2VwdGlvbiwgSU9FeGNlcHRpb24gew0KKwkJZmluYWwgQnVuZGxlIGJ1bmRsZSA9IEFjdGl2YXRvci5nZXREZWZhdWx0KCkuZ2V0QnVuZGxlKCk7DQorCQlmaW5hbCBFbnVtZXJhdGlvbjw/PiBlbnRpdHlQYXRoID0gQWN0aXZhdG9yLmdldERlZmF1bHQoKS5nZXRCdW5kbGUoKQ0KIAkJCQkuZ2V0RW50cnlQYXRocyhwYXRoKTsNCi0JCWlmIChlID09IG51bGwpIHsNCisJCWlmIChlbnRpdHlQYXRoID09IG51bGwpIHsNCiAJCQl0cnkgew0KIAkJCQkvLyBkZXN0aW5hdGlvblBhdGgpOw0KIAkJCQlJbnB1dFN0cmVhbSBzb3VyY2UgPSBidW5kbGUuZ2V0RW50cnkocGF0aCkub3BlblN0cmVhbSgpOw0KLQkJCQlJRmlsZSBqYXZhRmlsZSA9IHByb2plY3RUYXJnZXQuZ2V0RmlsZShkZXN0aW5hdGlvblBhdGgpOw0KKwkJCQlmaW5hbCBJRmlsZSBqYXZhRmlsZSA9IHByb2plY3RUYXJnZXQuZ2V0RmlsZShkZXN0UGF0aCk7DQogCQkJCWlmIChqYXZhRmlsZS5leGlzdHMoKSkgew0KIAkJCQkJamF2YUZpbGUuZGVsZXRlKHRydWUsIG5ldyBOdWxsUHJvZ3Jlc3NNb25pdG9yKCkpOw0KIAkJCQl9DQogCQkJCWphdmFGaWxlLmNyZWF0ZShzb3VyY2UsIHRydWUsIG5ldyBOdWxsUHJvZ3Jlc3NNb25pdG9yKCkpOw0KIAkJCQkvLyArIGRlc3RpbmF0aW9uUGF0aCk7DQogCQkJfSBjYXRjaCAoRXhjZXB0aW9uIGUxKSB7DQotCQkJCU1vRGlzY29Mb2dnZXIubG9nRXJyb3IoZTEsIEpVbml0UGx1Z2luLmdldERlZmF1bHQoKSk7DQorCQkJCUxvZ2dlci5sb2dFcnJvcihlMSwgSlVuaXRQbHVnaW4uZ2V0RGVmYXVsdCgpKTsNCiAJCQl9DQogCQl9IGVsc2Ugew0KLQkJCVN0cmluZyBzdWJEZXN0aW5hdGlvblBhdGggPSAiLyI7IC8vJE5PTi1OTFMtMSQNCi0JCQlpZiAoIWRlc3RpbmF0aW9uUGF0aC5lcXVhbHMoIi8iKSkgeyAvLyROT04tTkxTLTEkDQotCQkJCUlGb2xkZXIgZm9sZGVyID0gcHJvamVjdFRhcmdldC5nZXRGb2xkZXIoZGVzdGluYXRpb25QYXRoKTsNCisJCQlTdHJpbmcgc3ViRGVzdFBhdGggPSAiLyI7IC8vJE5PTi1OTFMtMSQNCisJCQlpZiAoISIvIi5lcXVhbHMoZGVzdFBhdGgpKSB7IC8vJE5PTi1OTFMtMSQNCisJCQkJZmluYWwgSUZvbGRlciBmb2xkZXIgPSBwcm9qZWN0VGFyZ2V0LmdldEZvbGRlcihkZXN0UGF0aCk7DQogCQkJCWlmICghZm9sZGVyLmV4aXN0cygpKSB7DQogCQkJCQl0cnkgew0KIAkJCQkJCWZvbGRlci5jcmVhdGUodHJ1ZSwgdHJ1ZSwgbmV3IE51bGxQcm9ncmVzc01vbml0b3IoKSk7DQogCQkJCQl9IGNhdGNoIChFeGNlcHRpb24gZTEpIHsNCi0JCQkJCQlNb0Rpc2NvTG9nZ2VyLmxvZ0Vycm9yKGUxLCBKVW5pdFBsdWdpbi5nZXREZWZhdWx0KCkpOw0KKwkJCQkJCUxvZ2dlci5sb2dFcnJvcihlMSwgSlVuaXRQbHVnaW4uZ2V0RGVmYXVsdCgpKTsNCiAJCQkJCX0NCiAJCQkJfQ0KLQkJCQlzdWJEZXN0aW5hdGlvblBhdGggPSBmb2xkZXIuZ2V0UHJvamVjdFJlbGF0aXZlUGF0aCgpLnRvU3RyaW5nKCk7DQorCQkJCXN1YkRlc3RQYXRoID0gZm9sZGVyLmdldFByb2plY3RSZWxhdGl2ZVBhdGgoKS50b1N0cmluZygpOw0KIAkJCX0NCi0JCQl3aGlsZSAoZS5oYXNNb3JlRWxlbWVudHMoKSkgew0KLQkJCQlPYmplY3Qgb2JqZWN0ID0gZS5uZXh0RWxlbWVudCgpOw0KKwkJCXdoaWxlIChlbnRpdHlQYXRoLmhhc01vcmVFbGVtZW50cygpKSB7DQorCQkJCWZpbmFsIE9iamVjdCBvYmplY3QgPSBlbnRpdHlQYXRoLm5leHRFbGVtZW50KCk7DQogCQkJCWlmIChvYmplY3QgaW5zdGFuY2VvZiBTdHJpbmcpIHsNCi0JCQkJCVN0cmluZyBzdWJwYXRoID0gKFN0cmluZykgb2JqZWN0Ow0KKwkJCQkJZmluYWwgU3RyaW5nIHN1YnBhdGggPSAoU3RyaW5nKSBvYmplY3Q7DQogCQkJCQlpZiAoIXN1YnBhdGgubWF0Y2hlcygiLiovXFwuc3ZuLyIpKSB7IC8vJE5PTi1OTFMtMSQNCi0JCQkJCQlTdHJpbmcgZGVzdCA9IHN1YkRlc3RpbmF0aW9uUGF0aA0KKwkJCQkJCWZpbmFsIFN0cmluZyBkZXN0ID0gc3ViRGVzdFBhdGgNCiAJCQkJCQkJCSsgc3VicGF0aC5zdWJzdHJpbmcocGF0aC5sZW5ndGgoKSAtIDEpOw0KIAkJCQkJCWRlZXBDb3B5KHN1YnBhdGgsIHByb2plY3RUYXJnZXQsIGRlc3QpOw0KIAkJCQkJfQ0KQEAgLTE2NSw4ICsxNjYsOCBAQAogDQogCXByaXZhdGUgc3RhdGljIHZvaWQgYWRkU3lzdGVtTGlicmFyaWVzKGZpbmFsIElKYXZhUHJvamVjdCBqYXZhUHJvamVjdCkNCiAJCQl0aHJvd3MgSmF2YU1vZGVsRXhjZXB0aW9uIHsNCi0JCUlDbGFzc3BhdGhFbnRyeVtdIG9sZEVudHJpZXMgPSBqYXZhUHJvamVjdC5nZXRSYXdDbGFzc3BhdGgoKTsNCi0JCUlDbGFzc3BhdGhFbnRyeVtdIG5ld0VudHJpZXMgPSBuZXcgSUNsYXNzcGF0aEVudHJ5W29sZEVudHJpZXMubGVuZ3RoICsgMV07DQorCQlmaW5hbCBJQ2xhc3NwYXRoRW50cnlbXSBvbGRFbnRyaWVzID0gamF2YVByb2plY3QuZ2V0UmF3Q2xhc3NwYXRoKCk7DQorCQlmaW5hbCBJQ2xhc3NwYXRoRW50cnlbXSBuZXdFbnRyaWVzID0gbmV3IElDbGFzc3BhdGhFbnRyeVtvbGRFbnRyaWVzLmxlbmd0aCArIDFdOw0KIAkJU3lzdGVtLmFycmF5Y29weShvbGRFbnRyaWVzLCAwLCBuZXdFbnRyaWVzLCAwLCBvbGRFbnRyaWVzLmxlbmd0aCk7DQogCQluZXdFbnRyaWVzW29sZEVudHJpZXMubGVuZ3RoXSA9IEphdmFSdW50aW1lDQogCQkJCS5nZXREZWZhdWx0SlJFQ29udGFpbmVyRW50cnkoKTsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24vTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24vTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggYTBiYWUxYi4uZjA0ZjBmNiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMSw3ICsxLDkgQEAKIE1hbmlmZXN0LVZlcnNpb246IDEuMAogQnVuZGxlLUFjdGl2YXRvcjogb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLkFjdGl2YXRvcgogRXhwb3J0LVBhY2thZ2U6IG9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi5qYXZhYXBwbGljYXRpb24sCi0gb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLmphdmFhcHBsaWNhdGlvbi5xdWVyaWVzO3gtZnJpZW5kczo9Im9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi51aSIKKyBvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24uamF2YWFwcGxpY2F0aW9uLmltcGw7eC1pbnRlcm5hbDo9dHJ1ZSwKKyBvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24uamF2YWFwcGxpY2F0aW9uLnF1ZXJpZXM7eC1mcmllbmRzOj0ib3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLnVpIiwKKyBvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24uamF2YWFwcGxpY2F0aW9uLnV0aWw7eC1pbnRlcm5hbDo9dHJ1ZQogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZSxvcmcuZWNsaXBzZS5lbWYuZWNvcmU7dmlzaWJpbAogIGl0eTo9cmVleHBvcnQsb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YTt2aXNpYmlsaXR5Oj1yZWV4cG9ydCxvcmcuZQogIGNsaXBzZS5nbXQubW9kaXNjby5vbWcua2RtO3Zpc2liaWxpdHk6PXJlZXhwb3J0LG9yZy5lY2xpcHNlLm1vZGlzY28uawpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmZlYXR1cmUvZmVhdHVyZS54bWwgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZmVhdHVyZS9mZWF0dXJlLnhtbAppbmRleCA4NDJiNTExLi5kYWRiMzVjIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZmVhdHVyZS9mZWF0dXJlLnhtbAorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZmVhdHVyZS9mZWF0dXJlLnhtbApAQCAtNyw3ICs3LDggQEAKICAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAogICAgCiAgICAgQ29udHJpYnV0b3JzOgotICAgICAgIEdhYnJpZWwgQmFyYmllciAoTWlhLVNvZnR3YXJlKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgorICAgICAgIEdhYnJpZWwgQmFyYmllciAoTWlhLVNvZnR3YXJlKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KKyAgICAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgwMTg5IC0gb3JnLmVjbGlwc2UubW9kaXNjby57bWFuaWZlc3QsZWNsaXBzZXBsdWdpbixwcm9wZXJ0aWVzfSogc2hvdWxkIGJlIGFkZGVkIGluIHRoZSB1cGRhdGVzaXRlCiAgLS0+DQogPGZlYXR1cmUNCiAgICAgICBpZD0ib3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmZlYXR1cmUiDQpAQCAtMTMyLDQgKzEzMywzOSBAQAogICAgICAgICAgaW5zdGFsbC1zaXplPSIwIg0KICAgICAgICAgIHZlcnNpb249IjAuMC4wIi8+DQogDQorICAgPHBsdWdpbg0KKyAgICAgICAgIGlkPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0Ig0KKyAgICAgICAgIGRvd25sb2FkLXNpemU9IjAiDQorICAgICAgICAgaW5zdGFsbC1zaXplPSIwIg0KKyAgICAgICAgIHZlcnNpb249IjAuMC4wIg0KKyAgICAgICAgIHVucGFjaz0iZmFsc2UiLz4NCisNCisgICA8cGx1Z2luDQorICAgICAgICAgaWQ9Im9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuZGlzY292ZXJlciINCisgICAgICAgICBkb3dubG9hZC1zaXplPSIwIg0KKyAgICAgICAgIGluc3RhbGwtc2l6ZT0iMCINCisgICAgICAgICB2ZXJzaW9uPSIwLjAuMCINCisgICAgICAgICB1bnBhY2s9ImZhbHNlIi8+DQorDQorICAgPHBsdWdpbg0KKyAgICAgICAgIGlkPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LmRpc2NvdmVyZXIudWkiDQorICAgICAgICAgZG93bmxvYWQtc2l6ZT0iMCINCisgICAgICAgICBpbnN0YWxsLXNpemU9IjAiDQorICAgICAgICAgdmVyc2lvbj0iMC4wLjAiDQorICAgICAgICAgdW5wYWNrPSJmYWxzZSIvPg0KKw0KKyAgIDxwbHVnaW4NCisgICAgICAgICBpZD0ib3JnLmVjbGlwc2UubW9kaXNjby5wcm9wZXJ0aWVzLmRpc2NvdmVyZXIiDQorICAgICAgICAgZG93bmxvYWQtc2l6ZT0iMCINCisgICAgICAgICBpbnN0YWxsLXNpemU9IjAiDQorICAgICAgICAgdmVyc2lvbj0iMC4wLjAiDQorICAgICAgICAgdW5wYWNrPSJmYWxzZSIvPg0KKw0KKyAgIDxwbHVnaW4NCisgICAgICAgICBpZD0ib3JnLmVjbGlwc2UubW9kaXNjby5wcm9wZXJ0aWVzLmRpc2NvdmVyZXIudWkiDQorICAgICAgICAgZG93bmxvYWQtc2l6ZT0iMCINCisgICAgICAgICBpbnN0YWxsLXNpemU9IjAiDQorICAgICAgICAgdmVyc2lvbj0iMC4wLjAiDQorICAgICAgICAgdW5wYWNrPSJmYWxzZSIvPg0KKw0KIDwvZmVhdHVyZT4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5lamJqYXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5lamJqYXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggZjVkMWFiZC4uYThjMDQ2NiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuZWpiamFyL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmVqYmphci9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMTMsMTIgKzEzLDE3IEBACiAgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuY29tbW9uLmNvcmU7YnVuZGxlLXZlcnNpb249IjAuOC4wIg0KIEJ1bmRsZS1BY3RpdmF0aW9uUG9saWN5OiBsYXp5DQogRXhwb3J0LVBhY2thZ2U6IG9yZy5lY2xpcHNlLm1vZGlzY28uamVlLmVqYmphci5FamJKYXIxMSwNCisgb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuZWpiamFyLkVqYkphcjExLmltcGw7eC1pbnRlcm5hbDo9dHJ1ZSwNCiAgb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuZWpiamFyLkVqYkphcjExLnV0aWw7eC1mcmllbmRzOj0ib3JnLmVjbGlwc2UubW9kaXNjby5qZWUuZWpiamFyLmRpc2NvdmVyZXIiLA0KICBvcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5lamJqYXIuRWpiSmFyMjAsDQorIG9yZy5lY2xpcHNlLm1vZGlzY28uamVlLmVqYmphci5FamJKYXIyMC5pbXBsO3gtaW50ZXJuYWw6PXRydWUsDQogIG9yZy5lY2xpcHNlLm1vZGlzY28uamVlLmVqYmphci5FamJKYXIyMC51dGlsO3gtZnJpZW5kczo9Im9yZy5lY2xpcHNlLm1vZGlzY28uamVlLmVqYmphci5kaXNjb3ZlcmVyIiwNCiAgb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuZWpiamFyLkVqYkphcjIxLA0KKyBvcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5lamJqYXIuRWpiSmFyMjEuaW1wbDt4LWludGVybmFsOj10cnVlLA0KICBvcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5lamJqYXIuRWpiSmFyMjEudXRpbDt4LWZyaWVuZHM6PSJvcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5lamJqYXIuZGlzY292ZXJlciIsDQogIG9yZy5lY2xpcHNlLm1vZGlzY28uamVlLmVqYmphci5FamJKYXIzMCwNCisgb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuZWpiamFyLkVqYkphcjMwLmltcGw7eC1pbnRlcm5hbDo9dHJ1ZSwNCiAgb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuZWpiamFyLkVqYkphcjMwLnV0aWw7eC1mcmllbmRzOj0ib3JnLmVjbGlwc2UubW9kaXNjby5qZWUuZWpiamFyLmRpc2NvdmVyZXIiLA0KICBvcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5lamJqYXIuRWpiSmFyMzEsDQorIG9yZy5lY2xpcHNlLm1vZGlzY28uamVlLmVqYmphci5FamJKYXIzMS5pbXBsO3gtaW50ZXJuYWw6PXRydWUsDQogIG9yZy5lY2xpcHNlLm1vZGlzY28uamVlLmVqYmphci5FamJKYXIzMS51dGlsO3gtZnJpZW5kczo9Im9yZy5lY2xpcHNlLm1vZGlzY28uamVlLmVqYmphci5kaXNjb3ZlcmVyIg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcC9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcC9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCA5MzIyZDgxLi4yMDc3MWRhIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5qc3AvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuanNwL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC03LDcgKzcsOSBAQAogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3INCiBCdW5kbGUtTG9jYWxpemF0aW9uOiBwbHVnaW4NCiBCdW5kbGUtUmVxdWlyZWRFeGVjdXRpb25FbnZpcm9ubWVudDogSjJTRS0xLjUNCi1FeHBvcnQtUGFja2FnZTogb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuanNwDQorRXhwb3J0LVBhY2thZ2U6IG9yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcCwNCisgb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuanNwLmltcGw7eC1pbnRlcm5hbDo9dHJ1ZSwNCisgb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuanNwLnV0aWw7eC1pbnRlcm5hbDo9dHJ1ZQ0KIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUsDQogIG9yZy5lY2xpcHNlLmVtZi5lY29yZTt2aXNpYmlsaXR5Oj1yZWV4cG9ydCwNCiAgb3JnLmVjbGlwc2UuY29yZS5yZXNvdXJjZXM7YnVuZGxlLXZlcnNpb249IjMuNi4wIiwNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS53ZWJhcHAvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS53ZWJhcHAvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggMWJmODJhYS4uMTFjZDQ5YSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLndlYmFwcC9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMTIsMTMgKzEyLDE4IEBACiAgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuY29tbW9uLmNvcmU7YnVuZGxlLXZlcnNpb249IjAuOC4wIg0KIEJ1bmRsZS1BY3RpdmF0aW9uUG9saWN5OiBsYXp5DQogRXhwb3J0LVBhY2thZ2U6IG9yZy5lY2xpcHNlLm1vZGlzY28uamVlLndlYmFwcC53ZWJhcHAyMiwNCisgb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLndlYmFwcDIyLmltcGw7eC1pbnRlcm5hbDo9dHJ1ZSwNCiAgb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLndlYmFwcDIyLnV0aWw7eC1mcmllbmRzOj0ib3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIiLA0KICBvcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS53ZWJhcHAud2ViYXBwMjMsDQorIG9yZy5lY2xpcHNlLm1vZGlzY28uamVlLndlYmFwcC53ZWJhcHAyMy5pbXBsO3gtaW50ZXJuYWw6PXRydWUsDQogIG9yZy5lY2xpcHNlLm1vZGlzY28uamVlLndlYmFwcC53ZWJhcHAyMy51dGlsO3gtZnJpZW5kczo9Im9yZy5lY2xpcHNlLm1vZGlzY28uamVlLndlYmFwcC5kaXNjb3ZlcmVyIiwNCiAgb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLndlYmFwcDI0LA0KKyBvcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS53ZWJhcHAud2ViYXBwMjQuaW1wbDt4LWludGVybmFsOj10cnVlLA0KICBvcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS53ZWJhcHAud2ViYXBwMjQudXRpbDt4LWZyaWVuZHM6PSJvcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS53ZWJhcHAuZGlzY292ZXJlciIsDQogIG9yZy5lY2xpcHNlLm1vZGlzY28uamVlLndlYmFwcC53ZWJhcHAyNSwNCisgb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLndlYmFwcDI1LmltcGw7eC1pbnRlcm5hbDo9dHJ1ZSwNCiAgb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLndlYmFwcDI1LnV0aWw7eC1mcmllbmRzOj0ib3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIiLA0KICBvcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS53ZWJhcHAud2ViYXBwMzAsDQorIG9yZy5lY2xpcHNlLm1vZGlzY28uamVlLndlYmFwcC53ZWJhcHAzMC5pbXBsO3gtaW50ZXJuYWw6PXRydWUsDQogIG9yZy5lY2xpcHNlLm1vZGlzY28uamVlLndlYmFwcC53ZWJhcHAzMC51dGlsO3gtZnJpZW5kczo9Im9yZy5lY2xpcHNlLm1vZGlzY28uamVlLndlYmFwcC5kaXNjb3ZlcmVyIg0KIEJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5rZG0uc291cmNlLmV4dGVuc2lvbi9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28ua2RtLnNvdXJjZS5leHRlbnNpb24vTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggZjcwZmU4My4uNDE0YzM4YiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5rZG0uc291cmNlLmV4dGVuc2lvbi9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmtkbS5zb3VyY2UuZXh0ZW5zaW9uL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0xNSw3ICsxNSw4IEBACiAgICBvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24uYnJvd3Nlci5jdXN0b21pemF0aW9uLAogICAgb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLmRpc2NvdmVyZXIudGVzdHMiLAogIG9yZy5lY2xpcHNlLm1vZGlzY28ua2RtLnNvdXJjZS5leHRlbnNpb24uZGlzY292ZXJ5LAotIG9yZy5lY2xpcHNlLm1vZGlzY28ua2RtLnNvdXJjZS5leHRlbnNpb24uaW1wbDt4LWZyaWVuZHM6PSJvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24sb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLnVpIgorIG9yZy5lY2xpcHNlLm1vZGlzY28ua2RtLnNvdXJjZS5leHRlbnNpb24uaW1wbDt4LWZyaWVuZHM6PSJvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24sb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLnVpIiwKKyBvcmcuZWNsaXBzZS5tb2Rpc2NvLmtkbS5zb3VyY2UuZXh0ZW5zaW9uLnV0aWw7eC1pbnRlcm5hbDo9dHJ1ZQogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZSwKICBvcmcuZWNsaXBzZS5lbWYuZWNvcmU7dmlzaWJpbGl0eTo9cmVleHBvcnQsCiAgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ub21nLmtkbTt2aXNpYmlsaXR5Oj1yZWV4cG9ydCwKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuZGlzY292ZXJlci8uY2hlY2tzdHlsZSBiL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuZGlzY292ZXJlci8uY2hlY2tzdHlsZQppbmRleCBhM2FjNTZjLi4yNjc3ZGQ1IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LmRpc2NvdmVyZXIvLmNoZWNrc3R5bGUKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5kaXNjb3ZlcmVyLy5jaGVja3N0eWxlCkBAIC0xLDggKzEsMTcgQEAKIDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgTWlhLVNvZnR3YXJlLgorQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscworYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCit3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAoraHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKIAorQ29udHJpYnV0b3JzOgorICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODAxODMgLSBUaGUgbWFuaWZlc3QubWYgZGlzY292ZXJlciBzaG91bGQgbWFuYWdlICdFeHBvcnQtUGFja2FnZScKKy0tPgogPGZpbGVzZXQtY29uZmlnIGZpbGUtZm9ybWF0LXZlcnNpb249IjEuMi4wIiBzaW1wbGUtY29uZmlnPSJ0cnVlIj4KLSAgPGxvY2FsLWNoZWNrLWNvbmZpZyBuYW1lPSJNb0Rpc2NvIiBsb2NhdGlvbj0iLi4vb3JnLmVjbGlwc2UuZW1mLmZhY2V0LmFyY2hpLnRlY2gucnVsZXMvY2hlY2tzdHlsZS9FbWZGYWNldC5jaGVja3N0eWxlIiB0eXBlPSJwcm9qZWN0IiBkZXNjcmlwdGlvbj0iIi8+Ci0gIDxmaWxlc2V0IG5hbWU9ImFsbCIgZW5hYmxlZD0idHJ1ZSIgY2hlY2stY29uZmlnLW5hbWU9Ik1vRGlzY28iIGxvY2FsPSJ0cnVlIj4KKyAgPGxvY2FsLWNoZWNrLWNvbmZpZyBuYW1lPSJFbWZGYWNldCIgbG9jYXRpb249Ii4uL29yZy5lY2xpcHNlLmVtZi5mYWNldC5hcmNoaS50ZWNoLnJ1bGVzL2NoZWNrc3R5bGUvRW1mRmFjZXQuY2hlY2tzdHlsZSIgdHlwZT0icHJvamVjdCIgZGVzY3JpcHRpb249IiIvPgorICA8ZmlsZXNldCBuYW1lPSJhbGwiIGVuYWJsZWQ9InRydWUiIGNoZWNrLWNvbmZpZy1uYW1lPSJFbWZGYWNldCIgbG9jYWw9InRydWUiPgogICAgIDxmaWxlLW1hdGNoLXBhdHRlcm4gbWF0Y2gtcGF0dGVybj0iLiIgaW5jbHVkZS1wYXR0ZXJuPSJ0cnVlIi8+CiAgICAgPGZpbGUtbWF0Y2gtcGF0dGVybiBtYXRjaC1wYXR0ZXJuPSJNZXNzYWdlcy5qYXZhIiBpbmNsdWRlLXBhdHRlcm49ImZhbHNlIi8+CiAgIDwvZmlsZXNldD4KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuZGlzY292ZXJlci8ucG1kIGIvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5kaXNjb3ZlcmVyLy5wbWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTM1MjM5YgotLS0gL2Rldi9udWxsCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuZGlzY292ZXJlci8ucG1kCkBAIC0wLDAgKzEsMTcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgTWlhLVNvZnR3YXJlLgorQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscworYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCit3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAoraHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKworQ29udHJpYnV0b3JzOgorICAgIEdy6WdvaXJlIER1cOkgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgwMTgzIC0gVGhlIG1hbmlmZXN0Lm1mIGRpc2NvdmVyZXIgc2hvdWxkIG1hbmFnZSAnRXhwb3J0LVBhY2thZ2UnCistLT4KKzxwbWQ+CisgICAgPHVzZVByb2plY3RSdWxlU2V0PnRydWU8L3VzZVByb2plY3RSdWxlU2V0PgorICAgIDxydWxlU2V0RmlsZT4uLi9vcmcuZWNsaXBzZS5lbWYuZmFjZXQuYXJjaGkudGVjaC5ydWxlcy9wbWQvcnVsZXNldC54bWw8L3J1bGVTZXRGaWxlPgorICAgIDxpbmNsdWRlRGVyaXZlZEZpbGVzPmZhbHNlPC9pbmNsdWRlRGVyaXZlZEZpbGVzPgorICAgIDx2aW9sYXRpb25zQXNFcnJvcnM+dHJ1ZTwvdmlvbGF0aW9uc0FzRXJyb3JzPgorPC9wbWQ+CmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LmRpc2NvdmVyZXIvLnByb2plY3QgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LmRpc2NvdmVyZXIvLnByb2plY3QKaW5kZXggMDBkYmY2OS4uY2ZhYzlmMyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5kaXNjb3ZlcmVyLy5wcm9qZWN0CisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuZGlzY292ZXJlci8ucHJvamVjdApAQCAtMjUsMTAgKzI1LDIyIEBACiAJCQk8YXJndW1lbnRzPg0KIAkJCTwvYXJndW1lbnRzPg0KIAkJPC9idWlsZENvbW1hbmQ+DQorCQk8YnVpbGRDb21tYW5kPg0KKwkJCTxuYW1lPm5ldC5zb3VyY2Vmb3JnZS5wbWQuZWNsaXBzZS5wbHVnaW4ucG1kQnVpbGRlcjwvbmFtZT4NCisJCQk8YXJndW1lbnRzPg0KKwkJCTwvYXJndW1lbnRzPg0KKwkJPC9idWlsZENvbW1hbmQ+DQorCQk8YnVpbGRDb21tYW5kPg0KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5hcGkudG9vbHMuYXBpQW5hbHlzaXNCdWlsZGVyPC9uYW1lPg0KKwkJCTxhcmd1bWVudHM+DQorCQkJPC9hcmd1bWVudHM+DQorCQk8L2J1aWxkQ29tbWFuZD4NCiAJPC9idWlsZFNwZWM+DQogCTxuYXR1cmVzPg0KIAkJPG5hdHVyZT5vcmcuZWNsaXBzZS5wZGUuUGx1Z2luTmF0dXJlPC9uYXR1cmU+DQogCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmphdmFuYXR1cmU8L25hdHVyZT4NCiAJCTxuYXR1cmU+bmV0LnNmLmVjbGlwc2Vjcy5jb3JlLkNoZWNrc3R5bGVOYXR1cmU8L25hdHVyZT4NCisJCTxuYXR1cmU+bmV0LnNvdXJjZWZvcmdlLnBtZC5lY2xpcHNlLnBsdWdpbi5wbWROYXR1cmU8L25hdHVyZT4NCisJCTxuYXR1cmU+b3JnLmVjbGlwc2UucGRlLmFwaS50b29scy5hcGlBbmFseXNpc05hdHVyZTwvbmF0dXJlPg0KIAk8L25hdHVyZXM+DQogPC9wcm9qZWN0RGVzY3JpcHRpb24+DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5kaXNjb3ZlcmVyLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5wcmVmcyBiL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuZGlzY292ZXJlci8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY29yZS5yZXNvdXJjZXMucHJlZnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjRiZWYzZAotLS0gL2Rldi9udWxsCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuZGlzY292ZXJlci8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY29yZS5yZXNvdXJjZXMucHJlZnMKQEAgLTAsMCArMSwxMiBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBDb3B5cmlnaHQgKGMpIDIwMTUgTWlhLVNvZnR3YXJlLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCisjIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorIyB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAorIyBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIworIyBDb250cmlidXRvcnM6CisjICAgICBHcmVnb2lyZSBEdXBlIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MDE4OSAtIG9yZy5lY2xpcHNlLm1vZGlzY28ue21hbmlmZXN0LGVjbGlwc2VwbHVnaW4scHJvcGVydGllc30qIHNob3VsZCBiZSBhZGRlZCBpbiB0aGUgdXBkYXRlc2l0ZQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworZWNsaXBzZS5wcmVmZXJlbmNlcy52ZXJzaW9uPTEKK2VuY29kaW5nLzxwcm9qZWN0Pj1VVEYtOApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5kaXNjb3ZlcmVyL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5kaXNjb3ZlcmVyL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDhlYzFjMmUuLmNkMmY0ZDUgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuZGlzY292ZXJlci9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LmRpc2NvdmVyZXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTgsNyArOCw4IEBACiAgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdDtidW5kbGUtdmVyc2lvbj0iMC45LjAiLAogIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmNvbW1vbi5jb3JlO2J1bmRsZS12ZXJzaW9uPSIwLjkuMCIsCiAgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuY29yZTtidW5kbGUtdmVyc2lvbj0iMC45LjAiLAotIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5O2J1bmRsZS12ZXJzaW9uPSIwLjkuMCIKKyBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeTtidW5kbGUtdmVyc2lvbj0iMC45LjAiLAorIG9yZy5lY2xpcHNlLmVtZi5mYWNldC51dGlsLmNvcmU7YnVuZGxlLXZlcnNpb249IjEuMS4wIgogQnVuZGxlLUFjdGl2YXRpb25Qb2xpY3k6IGxhenkKIEJ1bmRsZS1SZXF1aXJlZEV4ZWN1dGlvbkVudmlyb25tZW50OiBKMlNFLTEuNQogRXhwb3J0LVBhY2thZ2U6IG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuZGlzY292ZXJlcgpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL21hbmlmZXN0L2Rpc2NvdmVyZXIvTWFuaWZlc3RNb2RlbERpc2NvdmVyZXIyLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vbWFuaWZlc3QvZGlzY292ZXJlci9NYW5pZmVzdE1vZGVsRGlzY292ZXJlcjIuamF2YQppbmRleCA3MjVjZTE2Li40Yjg1OGY0IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vbWFuaWZlc3QvZGlzY292ZXJlci9NYW5pZmVzdE1vZGVsRGlzY292ZXJlcjIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vbWFuaWZlc3QvZGlzY292ZXJlci9NYW5pZmVzdE1vZGVsRGlzY292ZXJlcjIuamF2YQpAQCAtMSw1ICsxLDUgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQotICogQ29weXJpZ2h0IChjKSAyMDExIE1pYS1Tb2Z0d2FyZS4NCisgKiBDb3B5cmlnaHQgKGMpIDIwMTEsIDIwMTUgTWlhLVNvZnR3YXJlLg0KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCiAgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjANCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KQEAgLTgsMjEgKzgsMjYgQEAKICAqIENvbnRyaWJ1dG9yczoNCiAgKiAgICBGcmVkZXJpYyBNYWRpb3QgKE1pYS1Tb2Z0d2FyZSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCiAgKiAgICBOaWNvbGFzIEJyb3MgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgMzM1MDAzIC0gW0Rpc2NvdmVyZXJdIDogRXhpc3RpbmcgRGlzY292ZXJlcnMgUmVmYWN0b3JpbmcgYmFzZWQgb24gbmV3IGZyYW1ld29yaw0KKyAqICAgIEdy6WdvaXJlIER1cOkgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgwMTgzIC0gVGhlIG1hbmlmZXN0Lm1mIGRpc2NvdmVyZXIgc2hvdWxkIG1hbmFnZSAnRXhwb3J0LVBhY2thZ2UnIA0KICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KIHBhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5kaXNjb3ZlcmVyOw0KIA0KK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOw0KIGltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOw0KIGltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0Ow0KIGltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsNCiBpbXBvcnQgamF2YS51dGlsLkxpc3Q7DQoraW1wb3J0IGphdmEudXRpbC5NYXA7DQogDQogaW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLklGaWxlOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUuSVByb2dyZXNzTW9uaXRvcjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi51dGlsLlVSSTsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnJlc291cmNlLlJlc291cmNlOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZmFjZXQudXRpbC5jb3JlLkxvZ2dlcjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuY29yZS5BYnN0cmFjdE1vZGVsRGlzY292ZXJlcjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuY29yZS5leGNlcHRpb24uRGlzY292ZXJ5RXhjZXB0aW9uOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LkJ1bmRsZTsNCitpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5FeHBvcnRlZFBhY2thZ2U7DQogaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuSW1wb3J0ZWRQYWNrYWdlOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0Lk1hbmlmZXN0RmFjdG9yeTsNCiBpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5SZXF1aXJlZEJ1bmRsZTsNCkBAIC0zNywxMDcgKzQyLDE1NiBAQAogCX0NCiANCiAJQE92ZXJyaWRlDQotCXByb3RlY3RlZCB2b2lkIGJhc2ljRGlzY292ZXJFbGVtZW50KGZpbmFsIElGaWxlIGZpbGUsIGZpbmFsIElQcm9ncmVzc01vbml0b3IgbW9uaXRvcikNCi0JCQl0aHJvd3MgRGlzY292ZXJ5RXhjZXB0aW9uIHsNCi0JCXNldERlZmF1bHRUYXJnZXRVUkkoVVJJLmNyZWF0ZVBsYXRmb3JtUmVzb3VyY2VVUkkoZmlsZS5nZXRGdWxsUGF0aCgpICsgIi54bWkiLCB0cnVlKSk7IC8vJE5PTi1OTFMtMSQNCi0JCVJlc291cmNlIHJlc291cmNlID0gZGlzY292ZXJNYW5pZmVzdE1vZGVsKGZpbGUpOw0KKwlwcm90ZWN0ZWQgdm9pZCBiYXNpY0Rpc2NvdmVyRWxlbWVudChmaW5hbCBJRmlsZSBmaWxlLA0KKwkJCWZpbmFsIElQcm9ncmVzc01vbml0b3IgbW9uaXRvcikgdGhyb3dzIERpc2NvdmVyeUV4Y2VwdGlvbiB7DQorCQlmaW5hbCBTdHJpbmcgcGF0aE5hbWUgPSBmaWxlLmdldEZ1bGxQYXRoKCkgKyAiLnhtaSI7IC8vJE5PTi1OTFMtMSQNCisJCWZpbmFsIFVSSSB1cmkgPSBVUkkuY3JlYXRlUGxhdGZvcm1SZXNvdXJjZVVSSShwYXRoTmFtZSwgdHJ1ZSk7DQorCQlzZXREZWZhdWx0VGFyZ2V0VVJJKHVyaSk7DQorCQlmaW5hbCBSZXNvdXJjZSByZXNvdXJjZSA9IGRpc2NvdmVyTWFuaWZlc3RNb2RlbChmaWxlKTsNCiAJCXNldFRhcmdldE1vZGVsKHJlc291cmNlKTsNCi0NCiAJfQ0KIA0KIAlwcml2YXRlIHN0YXRpYyB2b2lkIGRpc2NvdmVyQnVuZGxlU3ltYm9saWNOYW1lKGZpbmFsIEJ1bmRsZSBidW5kbGUsDQogCQkJZmluYWwgU3RyaW5nIHN5bWJvbGljTmFtZVZhbHVlKSB0aHJvd3MgRGlzY292ZXJ5RXhjZXB0aW9uIHsNCiAJCXRyeSB7DQotCQkJTWFuaWZlc3RFbGVtZW50W10gZWxlbWVudHMgPSBNYW5pZmVzdEVsZW1lbnQucGFyc2VIZWFkZXIoDQorCQkJZmluYWwgTWFuaWZlc3RFbGVtZW50W10gZWxlbWVudHMgPSBNYW5pZmVzdEVsZW1lbnQucGFyc2VIZWFkZXIoDQogCQkJCQkiQnVuZGxlLVN5bWJvbGljTmFtZSIsIHN5bWJvbGljTmFtZVZhbHVlKTsgLy8kTk9OLU5MUy0xJA0KLQ0KIAkJCWlmIChlbGVtZW50cyAhPSBudWxsICYmIGVsZW1lbnRzLmxlbmd0aCA+IDApIHsNCi0JCQkJTWFuaWZlc3RFbGVtZW50IG1hbmlmZXN0RWxlbWVudCA9IGVsZW1lbnRzWzBdOw0KKwkJCQlmaW5hbCBNYW5pZmVzdEVsZW1lbnQgbWFuaWZlc3RFbGVtZW50ID0gZWxlbWVudHNbMF07DQogCQkJCWJ1bmRsZS5zZXRTeW1ib2xpY05hbWUobWFuaWZlc3RFbGVtZW50LmdldFZhbHVlKCkpOw0KLQkJCQlTdHJpbmcgc2luZ2xldG9uQXR0ciA9IG1hbmlmZXN0RWxlbWVudC5nZXREaXJlY3RpdmUoInNpbmdsZXRvbiIpOyAvLyROT04tTkxTLTEkDQorCQkJCWZpbmFsIFN0cmluZyBzaW5nbGV0b25BdHRyID0NCisJCQkJCQltYW5pZmVzdEVsZW1lbnQuZ2V0RGlyZWN0aXZlKCJzaW5nbGV0b24iKTsgLy8kTk9OLU5MUy0xJA0KIAkJCQlpZiAoInRydWUiLmVxdWFscyhzaW5nbGV0b25BdHRyKSkgeyAvLyROT04tTkxTLTEkDQogCQkJCQlidW5kbGUuc2V0U2luZ2xldG9uKHRydWUpOw0KIAkJCQl9DQogCQkJfQ0KLQ0KIAkJfSBjYXRjaCAoQnVuZGxlRXhjZXB0aW9uIGUpIHsNCiAJCQl0aHJvdyBuZXcgRGlzY292ZXJ5RXhjZXB0aW9uKGUpOw0KIAkJfQ0KIAl9DQogDQotCXByaXZhdGUgUmVzb3VyY2UgZGlzY292ZXJNYW5pZmVzdE1vZGVsKGZpbmFsIElGaWxlIG1hbmlmZXN0RmlsZSkgdGhyb3dzIERpc2NvdmVyeUV4Y2VwdGlvbiB7DQotCQlIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtYW5pZmVzdFZhbHVlcyA9IG5ldyBIYXNoTWFwPFN0cmluZywgU3RyaW5nPigpOw0KLQkJSW5wdXRTdHJlYW0gbWFuaWZlc3RDb250ZW50Ow0KKwlwcml2YXRlIFJlc291cmNlIGRpc2NvdmVyTWFuaWZlc3RNb2RlbChmaW5hbCBJRmlsZSBtYW5pZmVzdEZpbGUpDQorCQkJdGhyb3dzIERpc2NvdmVyeUV4Y2VwdGlvbiB7DQorCQlmaW5hbCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtYW5pZmVzdFZhbHVlcyA9IG5ldyBIYXNoTWFwPFN0cmluZywgU3RyaW5nPigpOw0KKwkJZmluYWwgUmVzb3VyY2UgbWFuaWZlc3RSZXNvdXJjZSA9IGNyZWF0ZVRhcmdldE1vZGVsKCk7DQorCQlJbnB1dFN0cmVhbSBtYW5pZmVzdENvbnRlbnQgPSBudWxsOw0KIAkJdHJ5IHsNCiAJCQltYW5pZmVzdENvbnRlbnQgPSBtYW5pZmVzdEZpbGUuZ2V0Q29udGVudHMoKTsNCiAJCQlNYW5pZmVzdEVsZW1lbnQucGFyc2VCdW5kbGVNYW5pZmVzdChtYW5pZmVzdENvbnRlbnQsIG1hbmlmZXN0VmFsdWVzKTsNCisJCQlmaW5hbCBCdW5kbGUgYnVuZGxlID0gTWFuaWZlc3RGYWN0b3J5LmVJTlNUQU5DRS5jcmVhdGVCdW5kbGUoKTsNCisJCQltYW5pZmVzdFJlc291cmNlLmdldENvbnRlbnRzKCkuYWRkKGJ1bmRsZSk7DQorCQkJYnVuZGxlLnNldFZlcnNpb24obWFuaWZlc3RWYWx1ZXMuZ2V0KCJCdW5kbGUtVmVyc2lvbiIpKTsgLy8kTk9OLU5MUy0xJA0KKwkJCWRpc2NvdmVyQnVuZGxlU3ltYm9saWNOYW1lKGJ1bmRsZSwgbWFuaWZlc3RWYWx1ZXMuZ2V0KCJCdW5kbGUtU3ltYm9saWNOYW1lIikpOyAvLyROT04tTkxTLTEkDQorCQkJYnVuZGxlLnNldE5hbWUobWFuaWZlc3RWYWx1ZXMuZ2V0KCJCdW5kbGUtTmFtZSIpKTsgLy8kTk9OLU5MUy0xJA0KKwkJCWJ1bmRsZS5zZXRBY3RpdmF0b3IobWFuaWZlc3RWYWx1ZXMuZ2V0KCJCdW5kbGUtQWN0aXZhdG9yIikpOyAvLyROT04tTkxTLTEkDQorCQkJYnVuZGxlLnNldFZlbmRvcihtYW5pZmVzdFZhbHVlcy5nZXQoIkJ1bmRsZS1WZW5kb3IiKSk7IC8vJE5PTi1OTFMtMSQNCisJCQlidW5kbGUuc2V0QWN0aXZhdGlvblBvbGljeShtYW5pZmVzdFZhbHVlcy5nZXQoIkJ1bmRsZS1BY3RpdmF0aW9uUG9saWN5IikpOyAvLyROT04tTkxTLTEkDQorCQkJYnVuZGxlLnNldFJlcXVpcmVkRXhlY3V0aW9uRW52aXJvbm1lbnQobWFuaWZlc3RWYWx1ZXMNCisJCQkJCS5nZXQoIkJ1bmRsZS1SZXF1aXJlZEV4ZWN1dGlvbkVudmlyb25tZW50IikpOyAvLyROT04tTkxTLTEkDQorCQkJZmluYWwgTWFuaWZlc3RFbGVtZW50W10gckJ1bmRsZU1FbHRzID0gDQorCQkJCQlwYXJzZUhlYWRlcihtYW5pZmVzdFZhbHVlcywgIlJlcXVpcmUtQnVuZGxlIik7IC8vJE5PTi1OTFMtMSQNCisJCQlpZiAockJ1bmRsZU1FbHRzICE9IG51bGwpIHsNCisJCQkJZmluYWwgTGlzdDxSZXF1aXJlZEJ1bmRsZT4gcmVxdWlyZWRCdW5kbGVzID0gDQorCQkJCQkJZGlzY292ZXJSZXF1aXJlZEJ1bmRsZShyQnVuZGxlTUVsdHMpOw0KKwkJCQlidW5kbGUuZ2V0UmVxdWlyZWRCdW5kbGVzKCkuYWRkQWxsKHJlcXVpcmVkQnVuZGxlcyk7DQorCQkJfQ0KKwkJCWRpc2NvdmVySW1wb3J0UGFja2FnZShtYW5pZmVzdFZhbHVlcywgYnVuZGxlKTsNCisJCQlkaXNjb3ZlckV4cG9ydFBhY2thZ2UobWFuaWZlc3RWYWx1ZXMsIGJ1bmRsZSk7DQogCQl9IGNhdGNoIChFeGNlcHRpb24gZSkgew0KIAkJCXRocm93IG5ldyBEaXNjb3ZlcnlFeGNlcHRpb24oZSk7DQotCQl9DQotDQotCQlSZXNvdXJjZSBtYW5pZmVzdE1vZGVsUmVzb3VyY2UgPSBjcmVhdGVUYXJnZXRNb2RlbCgpOw0KLQ0KLQkJQnVuZGxlIGJ1bmRsZSA9IE1hbmlmZXN0RmFjdG9yeS5lSU5TVEFOQ0UuY3JlYXRlQnVuZGxlKCk7DQotCQltYW5pZmVzdE1vZGVsUmVzb3VyY2UuZ2V0Q29udGVudHMoKS5hZGQoYnVuZGxlKTsNCi0NCi0JCWJ1bmRsZS5zZXRWZXJzaW9uKG1hbmlmZXN0VmFsdWVzLmdldCgiQnVuZGxlLVZlcnNpb24iKSk7IC8vJE5PTi1OTFMtMSQNCi0JCWRpc2NvdmVyQnVuZGxlU3ltYm9saWNOYW1lKGJ1bmRsZSwgbWFuaWZlc3RWYWx1ZXMuZ2V0KCJCdW5kbGUtU3ltYm9saWNOYW1lIikpOyAvLyROT04tTkxTLTEkDQotCQlidW5kbGUuc2V0TmFtZShtYW5pZmVzdFZhbHVlcy5nZXQoIkJ1bmRsZS1OYW1lIikpOyAvLyROT04tTkxTLTEkDQotCQlidW5kbGUuc2V0QWN0aXZhdG9yKG1hbmlmZXN0VmFsdWVzLmdldCgiQnVuZGxlLUFjdGl2YXRvciIpKTsgLy8kTk9OLU5MUy0xJA0KLQkJYnVuZGxlLnNldFZlbmRvcihtYW5pZmVzdFZhbHVlcy5nZXQoIkJ1bmRsZS1WZW5kb3IiKSk7IC8vJE5PTi1OTFMtMSQNCi0JCWJ1bmRsZS5zZXRBY3RpdmF0aW9uUG9saWN5KG1hbmlmZXN0VmFsdWVzLmdldCgiQnVuZGxlLUFjdGl2YXRpb25Qb2xpY3kiKSk7IC8vJE5PTi1OTFMtMSQNCi0JCWJ1bmRsZS5zZXRSZXF1aXJlZEV4ZWN1dGlvbkVudmlyb25tZW50KG1hbmlmZXN0VmFsdWVzDQotCQkJCS5nZXQoIkJ1bmRsZS1SZXF1aXJlZEV4ZWN1dGlvbkVudmlyb25tZW50IikpOyAvLyROT04tTkxTLTEkDQotDQotCQl0cnkgew0KLQkJCU1hbmlmZXN0RWxlbWVudFtdIHJlcXVpcmVkQnVuZGxlcyA9IE1hbmlmZXN0RWxlbWVudC5wYXJzZUhlYWRlcigNCi0JCQkJCSJSZXF1aXJlLUJ1bmRsZSIsIG1hbmlmZXN0VmFsdWVzLmdldCgiUmVxdWlyZS1CdW5kbGUiKSk7IC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJA0KLQkJCWlmIChyZXF1aXJlZEJ1bmRsZXMgIT0gbnVsbCkgew0KLQkJCQlidW5kbGUuZ2V0UmVxdWlyZWRCdW5kbGVzKCkuYWRkQWxsKGRpc2NvdmVyUmVxdWlyZWRCdW5kbGUocmVxdWlyZWRCdW5kbGVzKSk7DQotCQkJfQ0KLQ0KLQkJCU1hbmlmZXN0RWxlbWVudFtdIGltcG9ydGVkUGFja2FnZXMgPSBNYW5pZmVzdEVsZW1lbnQucGFyc2VIZWFkZXIoDQotCQkJCQkiSW1wb3J0LVBhY2thZ2UiLCBtYW5pZmVzdFZhbHVlcy5nZXQoIkltcG9ydC1QYWNrYWdlIikpOyAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQNCi0JCQlpZiAoaW1wb3J0ZWRQYWNrYWdlcyAhPSBudWxsKSB7DQotCQkJCWZvciAoTWFuaWZlc3RFbGVtZW50IGVsZW1lbnQgOiBpbXBvcnRlZFBhY2thZ2VzKSB7DQotCQkJCQlJbXBvcnRlZFBhY2thZ2UgaW1wb3J0ZWRQYWNrYWdlID0gTWFuaWZlc3RGYWN0b3J5LmVJTlNUQU5DRQ0KLQkJCQkJCQkuY3JlYXRlSW1wb3J0ZWRQYWNrYWdlKCk7DQotCQkJCQlpbXBvcnRlZFBhY2thZ2Uuc2V0TmFtZShlbGVtZW50LmdldFZhbHVlKCkpOw0KLQkJCQkJU3RyaW5nIGJ1bmRsZVZlcnNpb24gPSBlbGVtZW50LmdldEF0dHJpYnV0ZSgidmVyc2lvbiIpOyAvLyROT04tTkxTLTEkDQotCQkJCQlpZiAoYnVuZGxlVmVyc2lvbiAhPSBudWxsKSB7DQotCQkJCQkJaW1wb3J0ZWRQYWNrYWdlLnNldFZlcnNpb24oZGlzY292ZXJWZXJzaW9uKGJ1bmRsZVZlcnNpb24pKTsNCi0JCQkJCX0NCi0JCQkJCWJ1bmRsZS5nZXRJbXBvcnRlZFBhY2thZ2VzKCkuYWRkKGltcG9ydGVkUGFja2FnZSk7DQorCQl9IGZpbmFsbHkgew0KKwkJCXRyeSB7DQorCQkJCWlmIChtYW5pZmVzdENvbnRlbnQgIT0gbnVsbCkgew0KKwkJCQkJbWFuaWZlc3RDb250ZW50LmNsb3NlKCk7DQogCQkJCX0NCisJCQl9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7DQorCQkJCWZpbmFsIFN0cmluZyBzdHJpbmcgPSBTdHJpbmcuZm9ybWF0KA0KKwkJCQkJCSJNYW5pZmVzdCBpbnB1dCBzdHJlYW0gY2xvc2luZyBmYWllZCAoJXMpIiwgLy8kTk9OLU5MUy0xJA0KKwkJCQkJCW1hbmlmZXN0RmlsZS5nZXRMb2NhdGlvbigpLnRvT1NTdHJpbmcoKQ0KKwkJCQkJKTsNCisJCQkJTG9nZ2VyLmxvZ0Vycm9yKGUsIHN0cmluZywgQWN0aXZhdG9yLmdldERlZmF1bHQoKSk7DQogCQkJfQ0KLQkJfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsNCi0JCQl0aHJvdyBuZXcgRGlzY292ZXJ5RXhjZXB0aW9uKGUpOw0KIAkJfQ0KKwkJcmV0dXJuIG1hbmlmZXN0UmVzb3VyY2U7DQorCX0NCiANCi0JCXJldHVybiBtYW5pZmVzdE1vZGVsUmVzb3VyY2U7DQorCXByaXZhdGUgc3RhdGljIHZvaWQgZGlzY292ZXJFeHBvcnRQYWNrYWdlKA0KKwkJCWZpbmFsIE1hcDxTdHJpbmcsIFN0cmluZz4gbWFuaWZlc3RWYWx1ZXMsIGZpbmFsIEJ1bmRsZSBidW5kbGUpDQorCQkJCQl0aHJvd3MgQnVuZGxlRXhjZXB0aW9uIHsNCisJCWZpbmFsIE1hbmlmZXN0RWxlbWVudFtdIGV4cG9ydFBhY2thZ2VzID0gDQorCQkJCXBhcnNlSGVhZGVyKG1hbmlmZXN0VmFsdWVzLCAiRXhwb3J0LVBhY2thZ2UiKTsgLy8kTk9OLU5MUy0xJA0KKwkJaWYgKGV4cG9ydFBhY2thZ2VzICE9IG51bGwpIHsNCisJCQlmb3IgKE1hbmlmZXN0RWxlbWVudCBleHBvcnRQYWNrYWdlIDogZXhwb3J0UGFja2FnZXMpIHsNCisJCQkJZmluYWwgRXhwb3J0ZWRQYWNrYWdlIGV4cG9ydGVkUGFja2FnZSA9IE1hbmlmZXN0RmFjdG9yeS5lSU5TVEFOQ0UNCisJCQkJCQkuY3JlYXRlRXhwb3J0ZWRQYWNrYWdlKCk7DQorCQkJCWV4cG9ydGVkUGFja2FnZS5zZXROYW1lKGV4cG9ydFBhY2thZ2UuZ2V0VmFsdWUoKSk7DQorCQkJCWlmIChleHBvcnRQYWNrYWdlLmdldERpcmVjdGl2ZSgieC1pbnRlcm5hbCIpID09IG51bGwpIHsgLy8kTk9OLU5MUy0xJA0KKwkJCQkJZmluYWwgU3RyaW5nIGRpcmVjdGl2ZSA9IGV4cG9ydFBhY2thZ2UuZ2V0RGlyZWN0aXZlKCJ4LWZyaWVuZHMiKTsgLy8kTk9OLU5MUy0xJA0KKwkJCQkJaWYgKGRpcmVjdGl2ZSA9PSBudWxsKSB7DQorCQkJCQkJZXhwb3J0ZWRQYWNrYWdlLnNldFhJbnRlcm5hbChmYWxzZSk7DQorCQkJCQl9IGVsc2Ugew0KKwkJCQkJCWV4cG9ydGVkUGFja2FnZS5zZXRYSW50ZXJuYWwodHJ1ZSk7DQorCQkJCQkJZmluYWwgU3RyaW5nW10geEZyaWVuZHMgPSBkaXJlY3RpdmUuc3BsaXQoIiwiKTsgLy8kTk9OLU5MUy0xJA0KKwkJCQkJCWZvciAoU3RyaW5nIHhGcmllbmQgOiB4RnJpZW5kcykgew0KKwkJCQkJCQlmaW5hbCBCdW5kbGUgeGZCdW5kbGUgPSBNYW5pZmVzdEZhY3RvcnkuZUlOU1RBTkNFLmNyZWF0ZUJ1bmRsZSgpOw0KKwkJCQkJCQl4ZkJ1bmRsZS5zZXROYW1lKHhGcmllbmQpOw0KKwkJCQkJCQlleHBvcnRlZFBhY2thZ2UuZ2V0WEZyaWVuZHMoKS5hZGQoeGZCdW5kbGUpOw0KKwkJCQkJCX0NCisJCQkJCX0NCisJCQkJfSBlbHNlIHsNCisJCQkJCWV4cG9ydGVkUGFja2FnZS5zZXRYSW50ZXJuYWwodHJ1ZSk7DQorCQkJCX0NCisJCQkJYnVuZGxlLmdldEV4cG9ydFBhY2thZ2VzKCkuYWRkKGV4cG9ydGVkUGFja2FnZSk7DQorCQkJfQ0KKwkJfQ0KKwl9DQorDQorCXByaXZhdGUgc3RhdGljIHZvaWQgZGlzY292ZXJJbXBvcnRQYWNrYWdlKA0KKwkJCWZpbmFsIE1hcDxTdHJpbmcsIFN0cmluZz4gbWFuaWZlc3RWYWx1ZXMsIGZpbmFsIEJ1bmRsZSBidW5kbGUpDQorCQkJCQl0aHJvd3MgQnVuZGxlRXhjZXB0aW9uIHsNCisJCWZpbmFsIE1hbmlmZXN0RWxlbWVudFtdIGltcG9ydGVkUGFja2FnZXMgPSANCisJCQkJcGFyc2VIZWFkZXIobWFuaWZlc3RWYWx1ZXMsICJJbXBvcnQtUGFja2FnZSIpOyAvLyROT04tTkxTLTEkDQorCQlpZiAoaW1wb3J0ZWRQYWNrYWdlcyAhPSBudWxsKSB7DQorCQkJZm9yIChNYW5pZmVzdEVsZW1lbnQgZWxlbWVudCA6IGltcG9ydGVkUGFja2FnZXMpIHsNCisJCQkJZmluYWwgSW1wb3J0ZWRQYWNrYWdlIGltcG9ydGVkUGFja2FnZSA9IE1hbmlmZXN0RmFjdG9yeS5lSU5TVEFOQ0UNCisJCQkJCQkuY3JlYXRlSW1wb3J0ZWRQYWNrYWdlKCk7DQorCQkJCWltcG9ydGVkUGFja2FnZS5zZXROYW1lKGVsZW1lbnQuZ2V0VmFsdWUoKSk7DQorCQkJCWZpbmFsIFN0cmluZyBidW5kbGVWZXJzaW9uID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoInZlcnNpb24iKTsgLy8kTk9OLU5MUy0xJA0KKwkJCQlpZiAoYnVuZGxlVmVyc2lvbiAhPSBudWxsKSB7DQorCQkJCQlpbXBvcnRlZFBhY2thZ2Uuc2V0VmVyc2lvbihkaXNjb3ZlclZlcnNpb24oYnVuZGxlVmVyc2lvbikpOw0KKwkJCQl9DQorCQkJCWJ1bmRsZS5nZXRJbXBvcnRlZFBhY2thZ2VzKCkuYWRkKGltcG9ydGVkUGFja2FnZSk7DQorCQkJfQ0KKwkJfQ0KKwl9DQorDQorCXByaXZhdGUgc3RhdGljIE1hbmlmZXN0RWxlbWVudFtdIHBhcnNlSGVhZGVyKA0KKwkJCWZpbmFsIE1hcDxTdHJpbmcsIFN0cmluZz4gbWFuaWZlc3RWYWx1ZXMsIGZpbmFsIFN0cmluZyBrZXkpDQorCQkJCQl0aHJvd3MgQnVuZGxlRXhjZXB0aW9uIHsNCisJCXJldHVybiBNYW5pZmVzdEVsZW1lbnQucGFyc2VIZWFkZXIoa2V5LCBtYW5pZmVzdFZhbHVlcy5nZXQoa2V5KSk7DQogCX0NCiANCiAJcHJpdmF0ZSBzdGF0aWMgVmVyc2lvbiBkaXNjb3ZlclZlcnNpb24oZmluYWwgU3RyaW5nIGJ1bmRsZVZlcnNpb24pIHsNCi0JCVZlcnNpb24gdmVyc2lvbiA9IE1hbmlmZXN0RmFjdG9yeS5lSU5TVEFOQ0UuY3JlYXRlVmVyc2lvbigpOw0KLQkJU3RyaW5nIGZpcnN0Q2hhciA9IGJ1bmRsZVZlcnNpb24uc3Vic3RyaW5nKDAsIDEpOw0KLQkJaWYgKGZpcnN0Q2hhci5lcXVhbHMoIigiKSB8fCBmaXJzdENoYXIuZXF1YWxzKCJbIikpIHsgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkDQotCQkJaWYgKGZpcnN0Q2hhci5lcXVhbHMoIlsiKSkgeyAvLyROT04tTkxTLTEkDQorCQlmaW5hbCBWZXJzaW9uIHZlcnNpb24gPSBNYW5pZmVzdEZhY3RvcnkuZUlOU1RBTkNFLmNyZWF0ZVZlcnNpb24oKTsNCisJCWZpbmFsIFN0cmluZyBmaXJzdENoYXIgPSBidW5kbGVWZXJzaW9uLnN1YnN0cmluZygwLCAxKTsNCisJCWlmICgiKCIuZXF1YWxzKGZpcnN0Q2hhcikgfHwgIlsiLmVxdWFscyhmaXJzdENoYXIpKSB7IC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJA0KKwkJCWlmICgiWyIuZXF1YWxzKGZpcnN0Q2hhcikpIHsgLy8kTk9OLU5MUy0xJA0KIAkJCQl2ZXJzaW9uLnNldE1pbmltdW1Jc0luY2x1c2l2ZSh0cnVlKTsNCiAJCQl9IGVsc2Ugew0KIAkJCQl2ZXJzaW9uLnNldE1pbmltdW1Jc0luY2x1c2l2ZShmYWxzZSk7DQogCQkJfQ0KLQkJCWludCBpbmRleE9mVmVyc2lvblNlcGFyYXRvciA9IGJ1bmRsZVZlcnNpb24uaW5kZXhPZignLCcpOw0KLQkJCVN0cmluZyBtaW5pbXVtVmVyc2lvbiA9IGJ1bmRsZVZlcnNpb24uc3Vic3RyaW5nKDEsIGluZGV4T2ZWZXJzaW9uU2VwYXJhdG9yKTsNCisJCQlmaW5hbCBpbnQgaW5kZXhPZlNlcGFyYXRvciA9IGJ1bmRsZVZlcnNpb24uaW5kZXhPZignLCcpOw0KKwkJCWZpbmFsIFN0cmluZyBtaW5pbXVtVmVyc2lvbiA9IGJ1bmRsZVZlcnNpb24uc3Vic3RyaW5nKA0KKwkJCQkJMSwgaW5kZXhPZlNlcGFyYXRvcik7DQogCQkJdmVyc2lvbi5zZXRNaW5pbXVtKG1pbmltdW1WZXJzaW9uKTsNCi0JCQlTdHJpbmcgbWF4aW11bVZlcnNpb24gPSBidW5kbGVWZXJzaW9uLnN1YnN0cmluZyhpbmRleE9mVmVyc2lvblNlcGFyYXRvciArIDEsDQotCQkJCQlidW5kbGVWZXJzaW9uLmxlbmd0aCgpIC0gMSk7DQorCQkJZmluYWwgU3RyaW5nIG1heGltdW1WZXJzaW9uID0gYnVuZGxlVmVyc2lvbi5zdWJzdHJpbmcoDQorCQkJCQlpbmRleE9mU2VwYXJhdG9yICsgMSwgYnVuZGxlVmVyc2lvbi5sZW5ndGgoKSAtIDEpOw0KIAkJCXZlcnNpb24uc2V0TWF4aW11bShtYXhpbXVtVmVyc2lvbik7DQogCQkJaWYgKGJ1bmRsZVZlcnNpb24uc3Vic3RyaW5nKGJ1bmRsZVZlcnNpb24ubGVuZ3RoKCkgLSAxKS5lcXVhbHMoIl0iKSkgeyAvLyROT04tTkxTLTEkDQogCQkJCXZlcnNpb24uc2V0TWF4aW11bUlzSW5jbHVzaXZlKHRydWUpOw0KIAkJCX0gZWxzZSB7DQogCQkJCXZlcnNpb24uc2V0TWF4aW11bUlzSW5jbHVzaXZlKGZhbHNlKTsNCiAJCQl9DQotDQogCQl9IGVsc2Ugew0KIAkJCXZlcnNpb24uc2V0TWluaW11bShidW5kbGVWZXJzaW9uKTsNCiAJCX0NCkBAIC0xNDYsMTEgKzIwMCwxMyBAQAogDQogCXByaXZhdGUgc3RhdGljIExpc3Q8UmVxdWlyZWRCdW5kbGU+IGRpc2NvdmVyUmVxdWlyZWRCdW5kbGUoDQogCQkJZmluYWwgTWFuaWZlc3RFbGVtZW50W10gcmVxdWlyZWRCdW5kbGVzKSB7DQotCQlMaXN0PFJlcXVpcmVkQnVuZGxlPiByZXN1bHQgPSBuZXcgQXJyYXlMaXN0PFJlcXVpcmVkQnVuZGxlPigpOw0KKwkJZmluYWwgTGlzdDxSZXF1aXJlZEJ1bmRsZT4gcmVzdWx0ID0gbmV3IEFycmF5TGlzdDxSZXF1aXJlZEJ1bmRsZT4oKTsNCiAJCWZvciAoTWFuaWZlc3RFbGVtZW50IGVsZW1lbnQgOiByZXF1aXJlZEJ1bmRsZXMpIHsNCi0JCQlSZXF1aXJlZEJ1bmRsZSByZXF1aXJlZEJ1bmRsZSA9IE1hbmlmZXN0RmFjdG9yeS5lSU5TVEFOQ0UuY3JlYXRlUmVxdWlyZWRCdW5kbGUoKTsNCisJCQlmaW5hbCBSZXF1aXJlZEJ1bmRsZSByZXF1aXJlZEJ1bmRsZSA9DQorCQkJCQlNYW5pZmVzdEZhY3RvcnkuZUlOU1RBTkNFLmNyZWF0ZVJlcXVpcmVkQnVuZGxlKCk7DQogCQkJcmVxdWlyZWRCdW5kbGUuc2V0U3ltYm9saWNOYW1lKGVsZW1lbnQuZ2V0VmFsdWUoKSk7DQotCQkJU3RyaW5nIGJ1bmRsZVZlcnNpb24gPSBlbGVtZW50LmdldEF0dHJpYnV0ZSgiYnVuZGxlLXZlcnNpb24iKTsgLy8kTk9OLU5MUy0xJA0KKwkJCWZpbmFsIFN0cmluZyBidW5kbGVWZXJzaW9uID0NCisJCQkJCWVsZW1lbnQuZ2V0QXR0cmlidXRlKCJidW5kbGUtdmVyc2lvbiIpOyAvLyROT04tTkxTLTEkDQogCQkJaWYgKGJ1bmRsZVZlcnNpb24gIT0gbnVsbCkgew0KIAkJCQlyZXF1aXJlZEJ1bmRsZS5zZXRWZXJzaW9uKGRpc2NvdmVyVmVyc2lvbihidW5kbGVWZXJzaW9uKSk7DQogCQkJfQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0L01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDYyOGZlZjcuLmMwMDRkZTEgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtOCw4ICs4LDggQEAKIEJ1bmRsZS1Mb2NhbGl6YXRpb246IHBsdWdpbg0KIEJ1bmRsZS1SZXF1aXJlZEV4ZWN1dGlvbkVudmlyb25tZW50OiBKMlNFLTEuNQ0KIEV4cG9ydC1QYWNrYWdlOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LA0KLSBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LmltcGwsDQotIG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QudXRpbA0KKyBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LmltcGw7eC1pbnRlcm5hbDo9dHJ1ZSwNCisgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC51dGlsO3gtaW50ZXJuYWw6PXRydWUNCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLA0KICBvcmcuZWNsaXBzZS5lbWYuZWNvcmU7dmlzaWJpbGl0eTo9cmVleHBvcnQNCiBCdW5kbGUtQWN0aXZhdGlvblBvbGljeTogbGF6eQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QvbW9kZWwvTWFuaWZlc3QuZWNvcmUgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0L21vZGVsL01hbmlmZXN0LmVjb3JlCmluZGV4IDA5MTBjY2MuLmIwNTk4ZDQgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QvbW9kZWwvTWFuaWZlc3QuZWNvcmUKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC9tb2RlbC9NYW5pZmVzdC5lY29yZQpAQCAtMSw2ICsxLDcgQEAKIDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQogPGVjb3JlOkVQYWNrYWdlIHhtaTp2ZXJzaW9uPSIyLjAiDQotICAgIHhtbG5zOnhtaT0iaHR0cDovL3d3dy5vbWcub3JnL1hNSSIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSINCisgICAgeG1sbnM6eG1pPSJodHRwOi8vd3d3Lm9tZy5vcmcvWE1JIg0KKyAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIg0KICAgICB4bWxuczplY29yZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSIgbmFtZT0ibWFuaWZlc3QiDQogICAgIG5zVVJJPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vbWFuaWZlc3QiIG5zUHJlZml4PSJtYW5pZmVzdCI+DQogICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkJ1bmRsZSI+DQpAQCAtMTcsNiArMTgsOCBAQAogICAgICAgICBlVHlwZT0iIy8vUmVxdWlyZWRCdW5kbGUiIGNvbnRhaW5tZW50PSJ0cnVlIi8+DQogICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJpbXBvcnRlZFBhY2thZ2VzIiB1cHBlckJvdW5kPSItMSINCiAgICAgICAgIGVUeXBlPSIjLy9JbXBvcnRlZFBhY2thZ2UiIGNvbnRhaW5tZW50PSJ0cnVlIi8+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJleHBvcnRQYWNrYWdlcyIgdXBwZXJCb3VuZD0iLTEiDQorICAgICAgICBlVHlwZT0iIy8vRXhwb3J0ZWRQYWNrYWdlIi8+DQogICA8L2VDbGFzc2lmaWVycz4NCiAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iUmVxdWlyZWRCdW5kbGUiPg0KICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ic3ltYm9saWNOYW1lIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FU3RyaW5nIi8+DQpAQCAtMzQsNCArMzcsMTEgQEAKICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ibWF4aW11bSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRVN0cmluZyIvPg0KICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ibWF4aW11bUlzSW5jbHVzaXZlIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FQm9vbGVhbiIvPg0KICAgPC9lQ2xhc3NpZmllcnM+DQorICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkV4cG9ydGVkUGFja2FnZSI+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJuYW1lIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FU3RyaW5nIi8+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJ4RnJpZW5kcyIgdXBwZXJCb3VuZD0iLTEiDQorICAgICAgICBlVHlwZT0iIy8vQnVuZGxlIi8+DQorICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJ4SW50ZXJuYWwiIGxvd2VyQm91bmQ9IjEiDQorICAgICAgICBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FQm9vbGVhbiIvPg0KKyAgPC9lQ2xhc3NpZmllcnM+DQogPC9lY29yZTpFUGFja2FnZT4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0L21vZGVsL01hbmlmZXN0Lmdlbm1vZGVsIGIvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC9tb2RlbC9NYW5pZmVzdC5nZW5tb2RlbAppbmRleCA1NzFmOGMxLi5jOGQ2NjBlIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0L21vZGVsL01hbmlmZXN0Lmdlbm1vZGVsCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QvbW9kZWwvTWFuaWZlc3QuZ2VubW9kZWwKQEAgLTEsMTAgKzEsMTAgQEAKIDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQogPGdlbm1vZGVsOkdlbk1vZGVsIHhtaTp2ZXJzaW9uPSIyLjAiDQogICAgIHhtbG5zOnhtaT0iaHR0cDovL3d3dy5vbWcub3JnL1hNSSIgeG1sbnM6ZWNvcmU9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUiDQotICAgIHhtbG5zOmdlbm1vZGVsPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIiBjb3B5cmlnaHRUZXh0PSJDb3B5cmlnaHQgKGMpIDIwMTAgTWlhLVNvZnR3YXJlLiYjeEQ7JiN4QTtBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzJiN4RDsmI3hBO2FyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMCYjeEQ7JiN4QTt3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdCYjeEQ7JiN4QTtodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCYjeEQ7JiN4QTsmI3hEOyYjeEE7Q29udHJpYnV0b3JzOiYjeEQ7JiN4QTsgICAgRnJlZGVyaWMgTWFkaW90IChNaWEtU29mdHdhcmUpIC0gbWV0YW1vZGVsIGRlc2lnbiBhbmQgaW5pdGlhbCBpbXBsZW1lbnRhdGlvbiYjeEQ7JiN4QTsiDQorICAgIHhtbG5zOmdlbm1vZGVsPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIiBjb3B5cmlnaHRUZXh0PSJDb3B5cmlnaHQgKGMpIDIwMTAsIDIwMTUgTWlhLVNvZnR3YXJlLiYjeEQ7JiN4QTtBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzJiN4RDsmI3hBO2FyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMCYjeEQ7JiN4QTt3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdCYjeEQ7JiN4QTtodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCYjeEQ7JiN4QTsmI3hEOyYjeEE7Q29udHJpYnV0b3JzOiYjeEQ7JiN4QTsgICAgRnJlZGVyaWMgTWFkaW90IChNaWEtU29mdHdhcmUpIC0gbWV0YW1vZGVsIGRlc2lnbiBhbmQgaW5pdGlhbCBpbXBsZW1lbnRhdGlvbiYjeEQ7JiN4QTsgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MDE4MyAtIFRoZSBtYW5pZmVzdC5tZiBkaXNjb3ZlcmVyIHNob3VsZCBtYW5hZ2UgJ0V4cG9ydC1QYWNrYWdlJyAiDQogICAgIG1vZGVsRGlyZWN0b3J5PSIvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC9zcmMiIG1vZGVsUGx1Z2luSUQ9Im9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QiDQogICAgIG1vZGVsTmFtZT0iTWFuaWZlc3QiIGltcG9ydGVySUQ9Im9yZy5lY2xpcHNlLmVtZi5pbXBvcnRlci5lY29yZSIgY29tcGxpYW5jZUxldmVsPSI1LjAiDQotICAgIGNvcHlyaWdodEZpZWxkcz0iZmFsc2UiPg0KKyAgICBjb3B5cmlnaHRGaWVsZHM9ImZhbHNlIiBydW50aW1lVmVyc2lvbj0iMi42Ij4NCiAgIDxmb3JlaWduTW9kZWw+TWFuaWZlc3QuZWNvcmU8L2ZvcmVpZ25Nb2RlbD4NCiAgIDxnZW5QYWNrYWdlcyBwcmVmaXg9Ik1hbmlmZXN0IiBiYXNlUGFja2FnZT0ib3JnLmVjbGlwc2UubW9kaXNjbyIgZGlzcG9zYWJsZVByb3ZpZGVyRmFjdG9yeT0idHJ1ZSINCiAgICAgICBlY29yZVBhY2thZ2U9Ik1hbmlmZXN0LmVjb3JlIy8iPg0KQEAgLTE5LDYgKzE5LDcgQEAKICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSBNYW5pZmVzdC5lY29yZSMvL0J1bmRsZS92ZW5kb3IiLz4NCiAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIE1hbmlmZXN0LmVjb3JlIy8vQnVuZGxlL3JlcXVpcmVkQnVuZGxlcyIvPg0KICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgTWFuaWZlc3QuZWNvcmUjLy9CdW5kbGUvaW1wb3J0ZWRQYWNrYWdlcyIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBNYW5pZmVzdC5lY29yZSMvL0J1bmRsZS9leHBvcnRQYWNrYWdlcyIvPg0KICAgICA8L2dlbkNsYXNzZXM+DQogICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9Ik1hbmlmZXN0LmVjb3JlIy8vUmVxdWlyZWRCdW5kbGUiPg0KICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSBNYW5pZmVzdC5lY29yZSMvL1JlcXVpcmVkQnVuZGxlL3N5bWJvbGljTmFtZSIvPg0KQEAgLTM0LDUgKzM1LDEwIEBACiAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgTWFuaWZlc3QuZWNvcmUjLy9WZXJzaW9uL21heGltdW0iLz4NCiAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgTWFuaWZlc3QuZWNvcmUjLy9WZXJzaW9uL21heGltdW1Jc0luY2x1c2l2ZSIvPg0KICAgICA8L2dlbkNsYXNzZXM+DQorICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9Ik1hbmlmZXN0LmVjb3JlIy8vRXhwb3J0ZWRQYWNrYWdlIj4NCisgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgTWFuaWZlc3QuZWNvcmUjLy9FeHBvcnRlZFBhY2thZ2UvbmFtZSIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBNYW5pZmVzdC5lY29yZSMvL0V4cG9ydGVkUGFja2FnZS94RnJpZW5kcyIvPg0KKyAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSBNYW5pZmVzdC5lY29yZSMvL0V4cG9ydGVkUGFja2FnZS94SW50ZXJuYWwiLz4NCisgICAgPC9nZW5DbGFzc2VzPg0KICAgPC9nZW5QYWNrYWdlcz4NCiA8L2dlbm1vZGVsOkdlbk1vZGVsPg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QvcG9tLnhzbCBiL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QvcG9tLnhzbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MTEzODQ5Ci0tLSAvZGV2L251bGwKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC9wb20ueHNsCkBAIC0wLDAgKzEsMzkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPCEtLSANCitDb3B5cmlnaHQgKGMpIDIwMTUgTWlhLVNvZnR3YXJlLg0KK0FsbCByaWdodHMgcmVzZXJ2ZWQuDQorVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgDQordGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIA0KK2FuZCBpcyBhdmFpbGFibGUgYXQgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCitDb250cmlidXRvcnM6DQorICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODAxODkgLSBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0KiBhbmQgb3JnLmVjbGlwc2UubW9kaXNjby5lY2xpcHNlcGx1Z2luKiBzaG91bGQgYmUgYWRkZWQgaW4gdGhlIHVwZGF0ZXNpdGUNCistLT4NCis8eHNsOnN0eWxlc2hlZXQgdmVyc2lvbj0iMS4wIg0KKwl4bWxuczp4c2w9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvWFNML1RyYW5zZm9ybSINCisJeG1sbnM6ZXhzbD0iaHR0cDovL2V4c2x0Lm9yZy9jb21tb24iDQorCWV4dGVuc2lvbi1lbGVtZW50LXByZWZpeGVzPSJleHNsIg0KKwl4bWxuczptMj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIg0KKwl4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIj4NCisJPHhzbDpvdXRwdXQgaW5kZW50PSJ5ZXMiIC8+DQorDQorCTx4c2w6dGVtcGxhdGUgbWF0Y2g9Ii8iPg0KKwkJDQorCQk8cHJvamVjdA0KKwkJCXhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3hzZC9tYXZlbi00LjAuMC54c2QiDQorCQkJeG1sbnM9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCINCisJCQl4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIj4NCisJCQk8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Ii8vbTI6cHJvamVjdC8qW25hbWUoKSE9J2J1aWxkJ10iIC8+DQorCQkJPGJ1aWxkPg0KKwkJCQk8cGx1Z2lucz4NCisJCQkJCTx4c2w6Y29weS1vZiBzZWxlY3Q9Ii8vbTI6cHJvamVjdC9tMjpidWlsZC9tMjpwbHVnaW5zL20yOnBsdWdpblsobTI6YXJ0aWZhY3RJZCE9J21hdmVuLWNoZWNrc3R5bGUtcGx1Z2luJylhbmQobTI6YXJ0aWZhY3RJZCE9J21hdmVuLXBtZC1wbHVnaW4nKV0iLz4NCisJCQkJPC9wbHVnaW5zPg0KKwkJCQk8eHNsOmNvcHktb2Ygc2VsZWN0PSIvL20yOnByb2plY3QvYnVpbGQvKltuYW1lKCkhPSdwbHVnaW5zJ10iLz4NCisJCQk8L2J1aWxkPg0KKwkJPC9wcm9qZWN0Pg0KKwk8L3hzbDp0ZW1wbGF0ZT4NCisNCisJPHhzbDp0ZW1wbGF0ZSBtYXRjaD0ibTI6KnxAKiI+DQorCQk8eHNsOmNvcHktb2Ygc2VsZWN0PSIuIiAvPg0KKwk8L3hzbDp0ZW1wbGF0ZT4NCisNCis8L3hzbDpzdHlsZXNoZWV0Pg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3Qvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vbWFuaWZlc3QvQnVuZGxlLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0L3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL21hbmlmZXN0L0J1bmRsZS5qYXZhCmluZGV4IDZjMGRhZDkuLjQyMmQzM2MgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3Qvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vbWFuaWZlc3QvQnVuZGxlLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9tYW5pZmVzdC9CdW5kbGUuamF2YQpAQCAtMSwxNiArMSwxOCBAQAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTAgTWlhLVNvZnR3YXJlLg0KKy8qKg0KKyAqIENvcHlyaWdodCAoYykgMjAxMCwgMjAxNSBNaWEtU29mdHdhcmUuDQogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KICAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQogICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCi0gKg0KKyAqIA0KICAqIENvbnRyaWJ1dG9yczoNCi0gKiAgICBGcmVkZXJpYyBNYWRpb3QgKE1pYS1Tb2Z0d2FyZSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisgKiAgICAgRnJlZGVyaWMgTWFkaW90IChNaWEtU29mdHdhcmUpIC0gbWV0YW1vZGVsIGRlc2lnbiBhbmQgaW5pdGlhbCBpbXBsZW1lbnRhdGlvbg0KKyAqICAgICBHculnb2lyZSBEdXDpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MDE4MyAtIFRoZSBtYW5pZmVzdC5tZiBkaXNjb3ZlcmVyIHNob3VsZCBtYW5hZ2UgJ0V4cG9ydC1QYWNrYWdlJyANCisgKi8NCiBwYWNrYWdlIG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3Q7DQogDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24udXRpbC5FTGlzdDsNCisNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVPYmplY3Q7DQogDQogLyoqDQpAQCAtMjAsNiArMjIsNyBAQAogICoNCiAgKiA8cD4NCiAgKiBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQ6DQorICogPC9wPg0KICAqIDx1bD4NCiAgKiAgIDxsaT57QGxpbmsgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5CdW5kbGUjZ2V0TmFtZSA8ZW0+TmFtZTwvZW0+fTwvbGk+DQogICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuQnVuZGxlI2lzU2luZ2xldG9uIDxlbT5TaW5nbGV0b248L2VtPn08L2xpPg0KQEAgLTMxLDggKzM0LDggQEAKICAqICAgPGxpPntAbGluayBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LkJ1bmRsZSNnZXRWZW5kb3IgPGVtPlZlbmRvcjwvZW0+fTwvbGk+DQogICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuQnVuZGxlI2dldFJlcXVpcmVkQnVuZGxlcyA8ZW0+UmVxdWlyZWQgQnVuZGxlczwvZW0+fTwvbGk+DQogICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuQnVuZGxlI2dldEltcG9ydGVkUGFja2FnZXMgPGVtPkltcG9ydGVkIFBhY2thZ2VzPC9lbT59PC9saT4NCisgKiAgIDxsaT57QGxpbmsgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5CdW5kbGUjZ2V0RXhwb3J0UGFja2FnZXMgPGVtPkV4cG9ydCBQYWNrYWdlczwvZW0+fTwvbGk+DQogICogPC91bD4NCi0gKiA8L3A+DQogICoNCiAgKiBAc2VlIG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuTWFuaWZlc3RQYWNrYWdlI2dldEJ1bmRsZSgpDQogICogQG1vZGVsDQpAQCAtMjY4LDcgKzI3MSw3IEBACiAJICogVGhlIGxpc3QgY29udGVudHMgYXJlIG9mIHR5cGUge0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuSW1wb3J0ZWRQYWNrYWdlfS4NCiAJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCiAJICogPHA+DQotCSAqIElmIHRoZSBtZWFuaW5nIG9mIHRoZSAnPGVtPkltcG9ydGVkIFBhY2thZ2VzPC9lbT4nIHJlZmVyZW5jZSBsaXN0IGlzbid0IGNsZWFyLA0KKwkgKiBJZiB0aGUgbWVhbmluZyBvZiB0aGUgJzxlbT5JbXBvcnRlZCBQYWNrYWdlczwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdCBpc24ndCBjbGVhciwNCiAJICogdGhlcmUgcmVhbGx5IHNob3VsZCBiZSBtb3JlIG9mIGEgZGVzY3JpcHRpb24gaGVyZS4uLg0KIAkgKiA8L3A+DQogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KQEAgLTI3OSw0ICsyODIsMjAgQEAKIAkgKi8NCiAJRUxpc3Q8SW1wb3J0ZWRQYWNrYWdlPiBnZXRJbXBvcnRlZFBhY2thZ2VzKCk7DQogDQorCS8qKg0KKwkgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgJzxlbT48Yj5FeHBvcnQgUGFja2FnZXM8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0Lg0KKwkgKiBUaGUgbGlzdCBjb250ZW50cyBhcmUgb2YgdHlwZSB7QGxpbmsgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5FeHBvcnRlZFBhY2thZ2V9Lg0KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KKwkgKiA8cD4NCisJICogSWYgdGhlIG1lYW5pbmcgb2YgdGhlICc8ZW0+RXhwb3J0IFBhY2thZ2VzPC9lbT4nIHJlZmVyZW5jZSBsaXN0IGlzbid0IGNsZWFyLA0KKwkgKiB0aGVyZSByZWFsbHkgc2hvdWxkIGJlIG1vcmUgb2YgYSBkZXNjcmlwdGlvbiBoZXJlLi4uDQorCSAqIDwvcD4NCisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQorCSAqIEByZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSAnPGVtPkV4cG9ydCBQYWNrYWdlczwvZW0+JyByZWZlcmVuY2UgbGlzdC4NCisJICogQHNlZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0Lk1hbmlmZXN0UGFja2FnZSNnZXRCdW5kbGVfRXhwb3J0UGFja2FnZXMoKQ0KKwkgKiBAbW9kZWwNCisJICogQGdlbmVyYXRlZA0KKwkgKi8NCisJRUxpc3Q8RXhwb3J0ZWRQYWNrYWdlPiBnZXRFeHBvcnRQYWNrYWdlcygpOw0KKw0KIH0gLy8gQnVuZGxlDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9tYW5pZmVzdC9FeHBvcnRlZFBhY2thZ2UuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3Qvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vbWFuaWZlc3QvRXhwb3J0ZWRQYWNrYWdlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzZlOThlYwotLS0gL2Rldi9udWxsCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3Qvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vbWFuaWZlc3QvRXhwb3J0ZWRQYWNrYWdlLmphdmEKQEAgLTAsMCArMSwxMDUgQEAKKy8qKg0KKyAqIENvcHlyaWdodCAoYykgMjAxMCwgMjAxNSBNaWEtU29mdHdhcmUuDQorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KKyAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQorICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCisgKiANCisgKiBDb250cmlidXRvcnM6DQorICogICAgIEZyZWRlcmljIE1hZGlvdCAoTWlhLVNvZnR3YXJlKSAtIG1ldGFtb2RlbCBkZXNpZ24gYW5kIGluaXRpYWwgaW1wbGVtZW50YXRpb24NCisgKiAgICAgR3LpZ29pcmUgRHVw6SAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODAxODMgLSBUaGUgbWFuaWZlc3QubWYgZGlzY292ZXJlciBzaG91bGQgbWFuYWdlICdFeHBvcnQtUGFja2FnZScgDQorICovDQorcGFja2FnZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0Ow0KKw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLnV0aWwuRUxpc3Q7DQorDQoraW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FT2JqZWN0Ow0KKw0KKy8qKg0KKyAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+DQorICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+RXhwb3J0ZWQgUGFja2FnZTwvYj48L2VtPicuDQorICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQorICoNCisgKiA8cD4NCisgKiBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQ6DQorICogPC9wPg0KKyAqIDx1bD4NCisgKiAgIDxsaT57QGxpbmsgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5FeHBvcnRlZFBhY2thZ2UjZ2V0TmFtZSA8ZW0+TmFtZTwvZW0+fTwvbGk+DQorICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuRXhwb3J0ZWRQYWNrYWdlI2dldFhGcmllbmRzIDxlbT5YRnJpZW5kczwvZW0+fTwvbGk+DQorICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuRXhwb3J0ZWRQYWNrYWdlI2lzWEludGVybmFsIDxlbT5YSW50ZXJuYWw8L2VtPn08L2xpPg0KKyAqIDwvdWw+DQorICoNCisgKiBAc2VlIG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuTWFuaWZlc3RQYWNrYWdlI2dldEV4cG9ydGVkUGFja2FnZSgpDQorICogQG1vZGVsDQorICogQGdlbmVyYXRlZA0KKyAqLw0KK3B1YmxpYyBpbnRlcmZhY2UgRXhwb3J0ZWRQYWNrYWdlIGV4dGVuZHMgRU9iamVjdCB7DQorCS8qKg0KKwkgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuDQorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+DQorCSAqIDxwPg0KKwkgKiBJZiB0aGUgbWVhbmluZyBvZiB0aGUgJzxlbT5OYW1lPC9lbT4nIGF0dHJpYnV0ZSBpc24ndCBjbGVhciwNCisJICogdGhlcmUgcmVhbGx5IHNob3VsZCBiZSBtb3JlIG9mIGEgZGVzY3JpcHRpb24gaGVyZS4uLg0KKwkgKiA8L3A+DQorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KKwkgKiBAcmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgJzxlbT5OYW1lPC9lbT4nIGF0dHJpYnV0ZS4NCisJICogQHNlZSAjc2V0TmFtZShTdHJpbmcpDQorCSAqIEBzZWUgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5NYW5pZmVzdFBhY2thZ2UjZ2V0RXhwb3J0ZWRQYWNrYWdlX05hbWUoKQ0KKwkgKiBAbW9kZWwgcmVxdWlyZWQ9InRydWUiDQorCSAqIEBnZW5lcmF0ZWQNCisJICovDQorCVN0cmluZyBnZXROYW1lKCk7DQorDQorCS8qKg0KKwkgKiBTZXRzIHRoZSB2YWx1ZSBvZiB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LkV4cG9ydGVkUGFja2FnZSNnZXROYW1lIDxlbT5OYW1lPC9lbT59JyBhdHRyaWJ1dGUuDQorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+DQorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KKwkgKiBAcGFyYW0gdmFsdWUgdGhlIG5ldyB2YWx1ZSBvZiB0aGUgJzxlbT5OYW1lPC9lbT4nIGF0dHJpYnV0ZS4NCisJICogQHNlZSAjZ2V0TmFtZSgpDQorCSAqIEBnZW5lcmF0ZWQNCisJICovDQorCXZvaWQgc2V0TmFtZShTdHJpbmcgdmFsdWUpOw0KKw0KKwkvKioNCisJICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlICc8ZW0+PGI+WEZyaWVuZHM8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0Lg0KKwkgKiBUaGUgbGlzdCBjb250ZW50cyBhcmUgb2YgdHlwZSB7QGxpbmsgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5CdW5kbGV9Lg0KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KKwkgKiA8cD4NCisJICogSWYgdGhlIG1lYW5pbmcgb2YgdGhlICc8ZW0+WEZyaWVuZHM8L2VtPicgcmVmZXJlbmNlIGxpc3QgaXNuJ3QgY2xlYXIsDQorCSAqIHRoZXJlIHJlYWxseSBzaG91bGQgYmUgbW9yZSBvZiBhIGRlc2NyaXB0aW9uIGhlcmUuLi4NCisJICogPC9wPg0KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCisJICogQHJldHVybiB0aGUgdmFsdWUgb2YgdGhlICc8ZW0+WEZyaWVuZHM8L2VtPicgcmVmZXJlbmNlIGxpc3QuDQorCSAqIEBzZWUgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5NYW5pZmVzdFBhY2thZ2UjZ2V0RXhwb3J0ZWRQYWNrYWdlX1hGcmllbmRzKCkNCisJICogQG1vZGVsDQorCSAqIEBnZW5lcmF0ZWQNCisJICovDQorCUVMaXN0PEJ1bmRsZT4gZ2V0WEZyaWVuZHMoKTsNCisNCisJLyoqDQorCSAqIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSAnPGVtPjxiPlhJbnRlcm5hbDwvYj48L2VtPicgYXR0cmlidXRlLg0KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KKwkgKiA8cD4NCisJICogSWYgdGhlIG1lYW5pbmcgb2YgdGhlICc8ZW0+WEludGVybmFsPC9lbT4nIGF0dHJpYnV0ZSBpc24ndCBjbGVhciwNCisJICogdGhlcmUgcmVhbGx5IHNob3VsZCBiZSBtb3JlIG9mIGEgZGVzY3JpcHRpb24gaGVyZS4uLg0KKwkgKiA8L3A+DQorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KKwkgKiBAcmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgJzxlbT5YSW50ZXJuYWw8L2VtPicgYXR0cmlidXRlLg0KKwkgKiBAc2VlICNzZXRYSW50ZXJuYWwoYm9vbGVhbikNCisJICogQHNlZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0Lk1hbmlmZXN0UGFja2FnZSNnZXRFeHBvcnRlZFBhY2thZ2VfWEludGVybmFsKCkNCisJICogQG1vZGVsIHJlcXVpcmVkPSJ0cnVlIg0KKwkgKiBAZ2VuZXJhdGVkDQorCSAqLw0KKwlib29sZWFuIGlzWEludGVybmFsKCk7DQorDQorCS8qKg0KKwkgKiBTZXRzIHRoZSB2YWx1ZSBvZiB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LkV4cG9ydGVkUGFja2FnZSNpc1hJbnRlcm5hbCA8ZW0+WEludGVybmFsPC9lbT59JyBhdHRyaWJ1dGUuDQorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+DQorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KKwkgKiBAcGFyYW0gdmFsdWUgdGhlIG5ldyB2YWx1ZSBvZiB0aGUgJzxlbT5YSW50ZXJuYWw8L2VtPicgYXR0cmlidXRlLg0KKwkgKiBAc2VlICNpc1hJbnRlcm5hbCgpDQorCSAqIEBnZW5lcmF0ZWQNCisJICovDQorCXZvaWQgc2V0WEludGVybmFsKGJvb2xlYW4gdmFsdWUpOw0KKw0KK30gLy8gRXhwb3J0ZWRQYWNrYWdlDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9tYW5pZmVzdC9JbXBvcnRlZFBhY2thZ2UuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3Qvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vbWFuaWZlc3QvSW1wb3J0ZWRQYWNrYWdlLmphdmEKaW5kZXggY2ExOWU4OC4uMWY0NzhiMCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9tYW5pZmVzdC9JbXBvcnRlZFBhY2thZ2UuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0L3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL21hbmlmZXN0L0ltcG9ydGVkUGFja2FnZS5qYXZhCkBAIC0xLDEzICsxLDE0IEBACi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLSAqIENvcHlyaWdodCAoYykgMjAxMCBNaWEtU29mdHdhcmUuDQorLyoqDQorICogQ29weXJpZ2h0IChjKSAyMDEwLCAyMDE1IE1pYS1Tb2Z0d2FyZS4NCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQogICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCiAgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KLSAqDQorICogDQogICogQ29udHJpYnV0b3JzOg0KLSAqICAgIEZyZWRlcmljIE1hZGlvdCAoTWlhLVNvZnR3YXJlKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKyAqICAgICBGcmVkZXJpYyBNYWRpb3QgKE1pYS1Tb2Z0d2FyZSkgLSBtZXRhbW9kZWwgZGVzaWduIGFuZCBpbml0aWFsIGltcGxlbWVudGF0aW9uDQorICogICAgIEdy6WdvaXJlIER1cOkgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgwMTgzIC0gVGhlIG1hbmlmZXN0Lm1mIGRpc2NvdmVyZXIgc2hvdWxkIG1hbmFnZSAnRXhwb3J0LVBhY2thZ2UnIA0KKyAqLw0KIHBhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdDsNCiANCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVPYmplY3Q7DQpAQCAtMTksMTEgKzIwLDExIEBACiAgKg0KICAqIDxwPg0KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoNCisgKiA8L3A+DQogICogPHVsPg0KICAqICAgPGxpPntAbGluayBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LkltcG9ydGVkUGFja2FnZSNnZXROYW1lIDxlbT5OYW1lPC9lbT59PC9saT4NCiAgKiAgIDxsaT57QGxpbmsgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5JbXBvcnRlZFBhY2thZ2UjZ2V0VmVyc2lvbiA8ZW0+VmVyc2lvbjwvZW0+fTwvbGk+DQogICogPC91bD4NCi0gKiA8L3A+DQogICoNCiAgKiBAc2VlIG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuTWFuaWZlc3RQYWNrYWdlI2dldEltcG9ydGVkUGFja2FnZSgpDQogICogQG1vZGVsDQpAQCAtNjAsNyArNjEsNyBAQAogCSAqIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSAnPGVtPjxiPlZlcnNpb248L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZS4NCiAJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCiAJICogPHA+DQotCSAqIElmIHRoZSBtZWFuaW5nIG9mIHRoZSAnPGVtPlZlcnNpb248L2VtPicgcmVmZXJlbmNlIGlzbid0IGNsZWFyLA0KKwkgKiBJZiB0aGUgbWVhbmluZyBvZiB0aGUgJzxlbT5WZXJzaW9uPC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBpc24ndCBjbGVhciwNCiAJICogdGhlcmUgcmVhbGx5IHNob3VsZCBiZSBtb3JlIG9mIGEgZGVzY3JpcHRpb24gaGVyZS4uLg0KIAkgKiA8L3A+DQogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3Qvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vbWFuaWZlc3QvTWFuaWZlc3RGYWN0b3J5LmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0L3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL21hbmlmZXN0L01hbmlmZXN0RmFjdG9yeS5qYXZhCmluZGV4IGZiNDkxZWYuLmM2YmVhNmMgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3Qvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vbWFuaWZlc3QvTWFuaWZlc3RGYWN0b3J5LmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9tYW5pZmVzdC9NYW5pZmVzdEZhY3RvcnkuamF2YQpAQCAtMSwxMyArMSwxNCBAQAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTAgTWlhLVNvZnR3YXJlLg0KKy8qKg0KKyAqIENvcHlyaWdodCAoYykgMjAxMCwgMjAxNSBNaWEtU29mdHdhcmUuDQogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KICAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQogICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCi0gKg0KKyAqIA0KICAqIENvbnRyaWJ1dG9yczoNCi0gKiAgICBGcmVkZXJpYyBNYWRpb3QgKE1pYS1Tb2Z0d2FyZSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisgKiAgICAgRnJlZGVyaWMgTWFkaW90IChNaWEtU29mdHdhcmUpIC0gbWV0YW1vZGVsIGRlc2lnbiBhbmQgaW5pdGlhbCBpbXBsZW1lbnRhdGlvbg0KKyAqICAgICBHculnb2lyZSBEdXDpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MDE4MyAtIFRoZSBtYW5pZmVzdC5tZiBkaXNjb3ZlcmVyIHNob3VsZCBtYW5hZ2UgJ0V4cG9ydC1QYWNrYWdlJyANCisgKi8NCiBwYWNrYWdlIG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3Q7DQogDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FRmFjdG9yeTsNCkBAIC02Niw2ICs2NywxNSBAQAogCVZlcnNpb24gY3JlYXRlVmVyc2lvbigpOw0KIA0KIAkvKioNCisJICogUmV0dXJucyBhIG5ldyBvYmplY3Qgb2YgY2xhc3MgJzxlbT5FeHBvcnRlZCBQYWNrYWdlPC9lbT4nLg0KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCisJICogQHJldHVybiBhIG5ldyBvYmplY3Qgb2YgY2xhc3MgJzxlbT5FeHBvcnRlZCBQYWNrYWdlPC9lbT4nLg0KKwkgKiBAZ2VuZXJhdGVkDQorCSAqLw0KKwlFeHBvcnRlZFBhY2thZ2UgY3JlYXRlRXhwb3J0ZWRQYWNrYWdlKCk7DQorDQorCS8qKg0KIAkgKiBSZXR1cm5zIHRoZSBwYWNrYWdlIHN1cHBvcnRlZCBieSB0aGlzIGZhY3RvcnkuDQogCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+DQogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3Qvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vbWFuaWZlc3QvTWFuaWZlc3RQYWNrYWdlLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0L3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL21hbmlmZXN0L01hbmlmZXN0UGFja2FnZS5qYXZhCmluZGV4IDJiOWYxMzMuLmUyOGIyOTAgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3Qvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vbWFuaWZlc3QvTWFuaWZlc3RQYWNrYWdlLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9tYW5pZmVzdC9NYW5pZmVzdFBhY2thZ2UuamF2YQpAQCAtMSwxMyArMSwxNCBAQAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTAgTWlhLVNvZnR3YXJlLg0KKy8qKg0KKyAqIENvcHlyaWdodCAoYykgMjAxMCwgMjAxNSBNaWEtU29mdHdhcmUuDQogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KICAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQogICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCi0gKg0KKyAqIA0KICAqIENvbnRyaWJ1dG9yczoNCi0gKiAgICBGcmVkZXJpYyBNYWRpb3QgKE1pYS1Tb2Z0d2FyZSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisgKiAgICAgRnJlZGVyaWMgTWFkaW90IChNaWEtU29mdHdhcmUpIC0gbWV0YW1vZGVsIGRlc2lnbiBhbmQgaW5pdGlhbCBpbXBsZW1lbnRhdGlvbg0KKyAqICAgICBHculnb2lyZSBEdXDpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MDE4MyAtIFRoZSBtYW5pZmVzdC5tZiBkaXNjb3ZlcmVyIHNob3VsZCBtYW5hZ2UgJ0V4cG9ydC1QYWNrYWdlJyANCisgKi8NCiBwYWNrYWdlIG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3Q7DQogDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FQXR0cmlidXRlOw0KQEAgLTM3LDcgKzM4LDcgQEAKIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAJICogQGdlbmVyYXRlZA0KIAkgKi8NCi0JU3RyaW5nIGVOQU1FID0gIm1hbmlmZXN0IjsgLy8kTk9OLU5MUy0xJA0KKwlTdHJpbmcgZU5BTUUgPSAibWFuaWZlc3QiOw0KIA0KIAkvKioNCiAJICogVGhlIHBhY2thZ2UgbmFtZXNwYWNlIFVSSS4NCkBAIC00NSw3ICs0Niw3IEBACiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQogCSAqIEBnZW5lcmF0ZWQNCiAJICovDQotCVN0cmluZyBlTlNfVVJJID0gImh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9tYW5pZmVzdCI7IC8vJE5PTi1OTFMtMSQNCisJU3RyaW5nIGVOU19VUkkgPSAiaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL21hbmlmZXN0IjsNCiANCiAJLyoqDQogCSAqIFRoZSBwYWNrYWdlIG5hbWVzcGFjZSBuYW1lLg0KQEAgLTUzLDcgKzU0LDcgQEAKIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAJICogQGdlbmVyYXRlZA0KIAkgKi8NCi0JU3RyaW5nIGVOU19QUkVGSVggPSAibWFuaWZlc3QiOyAvLyROT04tTkxTLTEkDQorCVN0cmluZyBlTlNfUFJFRklYID0gIm1hbmlmZXN0IjsNCiANCiAJLyoqDQogCSAqIFRoZSBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgdGhlIHBhY2thZ2UuDQpAQCAtMTY0LDE0ICsxNjUsMjIgQEAKIAlpbnQgQlVORExFX19JTVBPUlRFRF9QQUNLQUdFUyA9IDk7DQogDQogCS8qKg0KKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+RXhwb3J0IFBhY2thZ2VzPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4NCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQorCSAqIEBnZW5lcmF0ZWQNCisJICogQG9yZGVyZWQNCisJICovDQorCWludCBCVU5ETEVfX0VYUE9SVF9QQUNLQUdFUyA9IDEwOw0KKw0KKwkvKioNCiAJICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSAnPGVtPkJ1bmRsZTwvZW0+JyBjbGFzcy4NCiAJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQogCSAqIEBnZW5lcmF0ZWQNCiAJICogQG9yZGVyZWQNCiAJICovDQotCWludCBCVU5ETEVfRkVBVFVSRV9DT1VOVCA9IDEwOw0KLQ0KKwlpbnQgQlVORExFX0ZFQVRVUkVfQ09VTlQgPSAxMTsNCiANCiAJLyoqDQogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5pbXBsLlJlcXVpcmVkQnVuZGxlSW1wbCA8ZW0+UmVxdWlyZWQgQnVuZGxlPC9lbT59JyBjbGFzcy4NCkBAIC0yMTAsNyArMjE5LDYgQEAKIAkgKi8NCiAJaW50IFJFUVVJUkVEX0JVTkRMRV9GRUFUVVJFX0NPVU5UID0gMjsNCiANCi0NCiAJLyoqDQogCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5pbXBsLkltcG9ydGVkUGFja2FnZUltcGwgPGVtPkltcG9ydGVkIFBhY2thZ2U8L2VtPn0nIGNsYXNzLg0KIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KQEAgLTMwMyw2ICszMTEsNTIgQEAKIAkgKi8NCiAJaW50IFZFUlNJT05fRkVBVFVSRV9DT1VOVCA9IDQ7DQogDQorCS8qKg0KKwkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuaW1wbC5FeHBvcnRlZFBhY2thZ2VJbXBsIDxlbT5FeHBvcnRlZCBQYWNrYWdlPC9lbT59JyBjbGFzcy4NCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQorCSAqIEBzZWUgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5pbXBsLkV4cG9ydGVkUGFja2FnZUltcGwNCisJICogQHNlZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LmltcGwuTWFuaWZlc3RQYWNrYWdlSW1wbCNnZXRFeHBvcnRlZFBhY2thZ2UoKQ0KKwkgKiBAZ2VuZXJhdGVkDQorCSAqLw0KKwlpbnQgRVhQT1JURURfUEFDS0FHRSA9IDQ7DQorDQorCS8qKg0KKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLg0KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCisJICogQGdlbmVyYXRlZA0KKwkgKiBAb3JkZXJlZA0KKwkgKi8NCisJaW50IEVYUE9SVEVEX1BBQ0tBR0VfX05BTUUgPSAwOw0KKw0KKwkvKioNCisJICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlhGcmllbmRzPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4NCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQorCSAqIEBnZW5lcmF0ZWQNCisJICogQG9yZGVyZWQNCisJICovDQorCWludCBFWFBPUlRFRF9QQUNLQUdFX19YRlJJRU5EUyA9IDE7DQorDQorCS8qKg0KKwkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+WEludGVybmFsPC9iPjwvZW0+JyBhdHRyaWJ1dGUuDQorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+DQorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KKwkgKiBAZ2VuZXJhdGVkDQorCSAqIEBvcmRlcmVkDQorCSAqLw0KKwlpbnQgRVhQT1JURURfUEFDS0FHRV9fWElOVEVSTkFMID0gMjsNCisNCisJLyoqDQorCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgJzxlbT5FeHBvcnRlZCBQYWNrYWdlPC9lbT4nIGNsYXNzLg0KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCisJICogQGdlbmVyYXRlZA0KKwkgKiBAb3JkZXJlZA0KKwkgKi8NCisJaW50IEVYUE9SVEVEX1BBQ0tBR0VfRkVBVFVSRV9DT1VOVCA9IDM7DQorDQogDQogCS8qKg0KIAkgKiBSZXR1cm5zIHRoZSBtZXRhIG9iamVjdCBmb3IgY2xhc3MgJ3tAbGluayBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LkJ1bmRsZSA8ZW0+QnVuZGxlPC9lbT59Jy4NCkBAIC00MjUsNiArNDc5LDE3IEBACiAJRVJlZmVyZW5jZSBnZXRCdW5kbGVfSW1wb3J0ZWRQYWNrYWdlcygpOw0KIA0KIAkvKioNCisJICogUmV0dXJucyB0aGUgbWV0YSBvYmplY3QgZm9yIHRoZSByZWZlcmVuY2UgbGlzdCAne0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuQnVuZGxlI2dldEV4cG9ydFBhY2thZ2VzIDxlbT5FeHBvcnQgUGFja2FnZXM8L2VtPn0nLg0KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCisJICogQHJldHVybiB0aGUgbWV0YSBvYmplY3QgZm9yIHRoZSByZWZlcmVuY2UgbGlzdCAnPGVtPkV4cG9ydCBQYWNrYWdlczwvZW0+Jy4NCisJICogQHNlZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LkJ1bmRsZSNnZXRFeHBvcnRQYWNrYWdlcygpDQorCSAqIEBzZWUgI2dldEJ1bmRsZSgpDQorCSAqIEBnZW5lcmF0ZWQNCisJICovDQorCUVSZWZlcmVuY2UgZ2V0QnVuZGxlX0V4cG9ydFBhY2thZ2VzKCk7DQorDQorCS8qKg0KIAkgKiBSZXR1cm5zIHRoZSBtZXRhIG9iamVjdCBmb3IgY2xhc3MgJ3tAbGluayBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LlJlcXVpcmVkQnVuZGxlIDxlbT5SZXF1aXJlZCBCdW5kbGU8L2VtPn0nLg0KIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCkBAIC01NDMsNiArNjA4LDQ5IEBACiAJRUF0dHJpYnV0ZSBnZXRWZXJzaW9uX01heGltdW1Jc0luY2x1c2l2ZSgpOw0KIA0KIAkvKioNCisJICogUmV0dXJucyB0aGUgbWV0YSBvYmplY3QgZm9yIGNsYXNzICd7QGxpbmsgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5FeHBvcnRlZFBhY2thZ2UgPGVtPkV4cG9ydGVkIFBhY2thZ2U8L2VtPn0nLg0KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCisJICogQHJldHVybiB0aGUgbWV0YSBvYmplY3QgZm9yIGNsYXNzICc8ZW0+RXhwb3J0ZWQgUGFja2FnZTwvZW0+Jy4NCisJICogQHNlZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LkV4cG9ydGVkUGFja2FnZQ0KKwkgKiBAZ2VuZXJhdGVkDQorCSAqLw0KKwlFQ2xhc3MgZ2V0RXhwb3J0ZWRQYWNrYWdlKCk7DQorDQorCS8qKg0KKwkgKiBSZXR1cm5zIHRoZSBtZXRhIG9iamVjdCBmb3IgdGhlIGF0dHJpYnV0ZSAne0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuRXhwb3J0ZWRQYWNrYWdlI2dldE5hbWUgPGVtPk5hbWU8L2VtPn0nLg0KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCisJICogQHJldHVybiB0aGUgbWV0YSBvYmplY3QgZm9yIHRoZSBhdHRyaWJ1dGUgJzxlbT5OYW1lPC9lbT4nLg0KKwkgKiBAc2VlIG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuRXhwb3J0ZWRQYWNrYWdlI2dldE5hbWUoKQ0KKwkgKiBAc2VlICNnZXRFeHBvcnRlZFBhY2thZ2UoKQ0KKwkgKiBAZ2VuZXJhdGVkDQorCSAqLw0KKwlFQXR0cmlidXRlIGdldEV4cG9ydGVkUGFja2FnZV9OYW1lKCk7DQorDQorCS8qKg0KKwkgKiBSZXR1cm5zIHRoZSBtZXRhIG9iamVjdCBmb3IgdGhlIHJlZmVyZW5jZSBsaXN0ICd7QGxpbmsgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5FeHBvcnRlZFBhY2thZ2UjZ2V0WEZyaWVuZHMgPGVtPlhGcmllbmRzPC9lbT59Jy4NCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQorCSAqIEByZXR1cm4gdGhlIG1ldGEgb2JqZWN0IGZvciB0aGUgcmVmZXJlbmNlIGxpc3QgJzxlbT5YRnJpZW5kczwvZW0+Jy4NCisJICogQHNlZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LkV4cG9ydGVkUGFja2FnZSNnZXRYRnJpZW5kcygpDQorCSAqIEBzZWUgI2dldEV4cG9ydGVkUGFja2FnZSgpDQorCSAqIEBnZW5lcmF0ZWQNCisJICovDQorCUVSZWZlcmVuY2UgZ2V0RXhwb3J0ZWRQYWNrYWdlX1hGcmllbmRzKCk7DQorDQorCS8qKg0KKwkgKiBSZXR1cm5zIHRoZSBtZXRhIG9iamVjdCBmb3IgdGhlIGF0dHJpYnV0ZSAne0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuRXhwb3J0ZWRQYWNrYWdlI2lzWEludGVybmFsIDxlbT5YSW50ZXJuYWw8L2VtPn0nLg0KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCisJICogQHJldHVybiB0aGUgbWV0YSBvYmplY3QgZm9yIHRoZSBhdHRyaWJ1dGUgJzxlbT5YSW50ZXJuYWw8L2VtPicuDQorCSAqIEBzZWUgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5FeHBvcnRlZFBhY2thZ2UjaXNYSW50ZXJuYWwoKQ0KKwkgKiBAc2VlICNnZXRFeHBvcnRlZFBhY2thZ2UoKQ0KKwkgKiBAZ2VuZXJhdGVkDQorCSAqLw0KKwlFQXR0cmlidXRlIGdldEV4cG9ydGVkUGFja2FnZV9YSW50ZXJuYWwoKTsNCisNCisJLyoqDQogCSAqIFJldHVybnMgdGhlIGZhY3RvcnkgdGhhdCBjcmVhdGVzIHRoZSBpbnN0YW5jZXMgb2YgdGhlIG1vZGVsLg0KIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCkBAIC02NTUsNiArNzYzLDE0IEBACiAJCUVSZWZlcmVuY2UgQlVORExFX19JTVBPUlRFRF9QQUNLQUdFUyA9IGVJTlNUQU5DRS5nZXRCdW5kbGVfSW1wb3J0ZWRQYWNrYWdlcygpOw0KIA0KIAkJLyoqDQorCQkgKiBUaGUgbWV0YSBvYmplY3QgbGl0ZXJhbCBmb3IgdGhlICc8ZW0+PGI+RXhwb3J0IFBhY2thZ2VzPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdCBmZWF0dXJlLg0KKwkJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCisJCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KKwkJICogQGdlbmVyYXRlZA0KKwkJICovDQorCQlFUmVmZXJlbmNlIEJVTkRMRV9fRVhQT1JUX1BBQ0tBR0VTID0gZUlOU1RBTkNFLmdldEJ1bmRsZV9FeHBvcnRQYWNrYWdlcygpOw0KKw0KKwkJLyoqDQogCQkgKiBUaGUgbWV0YSBvYmplY3QgbGl0ZXJhbCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5pbXBsLlJlcXVpcmVkQnVuZGxlSW1wbCA8ZW0+UmVxdWlyZWQgQnVuZGxlPC9lbT59JyBjbGFzcy4NCiAJCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+DQogCQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCkBAIC03NDgsNiArODY0LDQwIEBACiAJCSAqLw0KIAkJRUF0dHJpYnV0ZSBWRVJTSU9OX19NQVhJTVVNX0lTX0lOQ0xVU0lWRSA9IGVJTlNUQU5DRS5nZXRWZXJzaW9uX01heGltdW1Jc0luY2x1c2l2ZSgpOw0KIA0KKwkJLyoqDQorCQkgKiBUaGUgbWV0YSBvYmplY3QgbGl0ZXJhbCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5pbXBsLkV4cG9ydGVkUGFja2FnZUltcGwgPGVtPkV4cG9ydGVkIFBhY2thZ2U8L2VtPn0nIGNsYXNzLg0KKwkJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCisJCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KKwkJICogQHNlZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LmltcGwuRXhwb3J0ZWRQYWNrYWdlSW1wbA0KKwkJICogQHNlZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LmltcGwuTWFuaWZlc3RQYWNrYWdlSW1wbCNnZXRFeHBvcnRlZFBhY2thZ2UoKQ0KKwkJICogQGdlbmVyYXRlZA0KKwkJICovDQorCQlFQ2xhc3MgRVhQT1JURURfUEFDS0FHRSA9IGVJTlNUQU5DRS5nZXRFeHBvcnRlZFBhY2thZ2UoKTsNCisNCisJCS8qKg0KKwkJICogVGhlIG1ldGEgb2JqZWN0IGxpdGVyYWwgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZSBmZWF0dXJlLg0KKwkJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCisJCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KKwkJICogQGdlbmVyYXRlZA0KKwkJICovDQorCQlFQXR0cmlidXRlIEVYUE9SVEVEX1BBQ0tBR0VfX05BTUUgPSBlSU5TVEFOQ0UuZ2V0RXhwb3J0ZWRQYWNrYWdlX05hbWUoKTsNCisNCisJCS8qKg0KKwkJICogVGhlIG1ldGEgb2JqZWN0IGxpdGVyYWwgZm9yIHRoZSAnPGVtPjxiPlhGcmllbmRzPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdCBmZWF0dXJlLg0KKwkJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCisJCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KKwkJICogQGdlbmVyYXRlZA0KKwkJICovDQorCQlFUmVmZXJlbmNlIEVYUE9SVEVEX1BBQ0tBR0VfX1hGUklFTkRTID0gZUlOU1RBTkNFLmdldEV4cG9ydGVkUGFja2FnZV9YRnJpZW5kcygpOw0KKw0KKwkJLyoqDQorCQkgKiBUaGUgbWV0YSBvYmplY3QgbGl0ZXJhbCBmb3IgdGhlICc8ZW0+PGI+WEludGVybmFsPC9iPjwvZW0+JyBhdHRyaWJ1dGUgZmVhdHVyZS4NCisJCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+DQorCQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCisJCSAqIEBnZW5lcmF0ZWQNCisJCSAqLw0KKwkJRUF0dHJpYnV0ZSBFWFBPUlRFRF9QQUNLQUdFX19YSU5URVJOQUwgPSBlSU5TVEFOQ0UuZ2V0RXhwb3J0ZWRQYWNrYWdlX1hJbnRlcm5hbCgpOw0KKw0KIAl9DQogDQogfSAvL01hbmlmZXN0UGFja2FnZQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3Qvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vbWFuaWZlc3QvUmVxdWlyZWRCdW5kbGUuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3Qvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vbWFuaWZlc3QvUmVxdWlyZWRCdW5kbGUuamF2YQppbmRleCBiZTQ0Mjk0Li41NmE0ZTVjIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0L3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL21hbmlmZXN0L1JlcXVpcmVkQnVuZGxlLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9tYW5pZmVzdC9SZXF1aXJlZEJ1bmRsZS5qYXZhCkBAIC0xLDEzICsxLDE0IEBACi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLSAqIENvcHlyaWdodCAoYykgMjAxMCBNaWEtU29mdHdhcmUuDQorLyoqDQorICogQ29weXJpZ2h0IChjKSAyMDEwLCAyMDE1IE1pYS1Tb2Z0d2FyZS4NCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQogICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCiAgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KLSAqDQorICogDQogICogQ29udHJpYnV0b3JzOg0KLSAqICAgIEZyZWRlcmljIE1hZGlvdCAoTWlhLVNvZnR3YXJlKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKyAqICAgICBGcmVkZXJpYyBNYWRpb3QgKE1pYS1Tb2Z0d2FyZSkgLSBtZXRhbW9kZWwgZGVzaWduIGFuZCBpbml0aWFsIGltcGxlbWVudGF0aW9uDQorICogICAgIEdy6WdvaXJlIER1cOkgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgwMTgzIC0gVGhlIG1hbmlmZXN0Lm1mIGRpc2NvdmVyZXIgc2hvdWxkIG1hbmFnZSAnRXhwb3J0LVBhY2thZ2UnIA0KKyAqLw0KIHBhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdDsNCiANCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVPYmplY3Q7DQpAQCAtMTksMTEgKzIwLDExIEBACiAgKg0KICAqIDxwPg0KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoNCisgKiA8L3A+DQogICogPHVsPg0KICAqICAgPGxpPntAbGluayBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LlJlcXVpcmVkQnVuZGxlI2dldFN5bWJvbGljTmFtZSA8ZW0+U3ltYm9saWMgTmFtZTwvZW0+fTwvbGk+DQogICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuUmVxdWlyZWRCdW5kbGUjZ2V0VmVyc2lvbiA8ZW0+VmVyc2lvbjwvZW0+fTwvbGk+DQogICogPC91bD4NCi0gKiA8L3A+DQogICoNCiAgKiBAc2VlIG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuTWFuaWZlc3RQYWNrYWdlI2dldFJlcXVpcmVkQnVuZGxlKCkNCiAgKiBAbW9kZWwNCkBAIC02MCw3ICs2MSw3IEBACiAJICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlICc8ZW0+PGI+VmVyc2lvbjwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlLg0KIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KIAkgKiA8cD4NCi0JICogSWYgdGhlIG1lYW5pbmcgb2YgdGhlICc8ZW0+VmVyc2lvbjwvZW0+JyBhdHRyaWJ1dGUgaXNuJ3QgY2xlYXIsDQorCSAqIElmIHRoZSBtZWFuaW5nIG9mIHRoZSAnPGVtPlZlcnNpb248L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGlzbid0IGNsZWFyLA0KIAkgKiB0aGVyZSByZWFsbHkgc2hvdWxkIGJlIG1vcmUgb2YgYSBkZXNjcmlwdGlvbiBoZXJlLi4uDQogCSAqIDwvcD4NCiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9tYW5pZmVzdC9WZXJzaW9uLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0L3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL21hbmlmZXN0L1ZlcnNpb24uamF2YQppbmRleCA3YzBkYmJlLi40OGI5NGRlIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0L3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL21hbmlmZXN0L1ZlcnNpb24uamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0L3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL21hbmlmZXN0L1ZlcnNpb24uamF2YQpAQCAtMSwxMyArMSwxNCBAQAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTAgTWlhLVNvZnR3YXJlLg0KKy8qKg0KKyAqIENvcHlyaWdodCAoYykgMjAxMCwgMjAxNSBNaWEtU29mdHdhcmUuDQogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KICAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQogICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCi0gKg0KKyAqIA0KICAqIENvbnRyaWJ1dG9yczoNCi0gKiAgICBGcmVkZXJpYyBNYWRpb3QgKE1pYS1Tb2Z0d2FyZSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisgKiAgICAgRnJlZGVyaWMgTWFkaW90IChNaWEtU29mdHdhcmUpIC0gbWV0YW1vZGVsIGRlc2lnbiBhbmQgaW5pdGlhbCBpbXBsZW1lbnRhdGlvbg0KKyAqICAgICBHculnb2lyZSBEdXDpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MDE4MyAtIFRoZSBtYW5pZmVzdC5tZiBkaXNjb3ZlcmVyIHNob3VsZCBtYW5hZ2UgJ0V4cG9ydC1QYWNrYWdlJyANCisgKi8NCiBwYWNrYWdlIG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3Q7DQogDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FT2JqZWN0Ow0KQEAgLTE5LDEzICsyMCwxMyBAQAogICoNCiAgKiA8cD4NCiAgKiBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQ6DQorICogPC9wPg0KICAqIDx1bD4NCiAgKiAgIDxsaT57QGxpbmsgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5WZXJzaW9uI2dldE1pbmltdW0gPGVtPk1pbmltdW08L2VtPn08L2xpPg0KICAqICAgPGxpPntAbGluayBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LlZlcnNpb24jaXNNaW5pbXVtSXNJbmNsdXNpdmUgPGVtPk1pbmltdW0gSXMgSW5jbHVzaXZlPC9lbT59PC9saT4NCiAgKiAgIDxsaT57QGxpbmsgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5WZXJzaW9uI2dldE1heGltdW0gPGVtPk1heGltdW08L2VtPn08L2xpPg0KICAqICAgPGxpPntAbGluayBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LlZlcnNpb24jaXNNYXhpbXVtSXNJbmNsdXNpdmUgPGVtPk1heGltdW0gSXMgSW5jbHVzaXZlPC9lbT59PC9saT4NCiAgKiA8L3VsPg0KLSAqIDwvcD4NCiAgKg0KICAqIEBzZWUgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5NYW5pZmVzdFBhY2thZ2UjZ2V0VmVyc2lvbigpDQogICogQG1vZGVsDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9tYW5pZmVzdC9pbXBsL0J1bmRsZUltcGwuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3Qvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vbWFuaWZlc3QvaW1wbC9CdW5kbGVJbXBsLmphdmEKaW5kZXggNGZkNWQ1My4uMjE3Yjg1NiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9tYW5pZmVzdC9pbXBsL0J1bmRsZUltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0L3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL21hbmlmZXN0L2ltcGwvQnVuZGxlSW1wbC5qYXZhCkBAIC0xLDI3ICsxLDM1IEBACi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLSAqIENvcHlyaWdodCAoYykgMjAxMCBNaWEtU29mdHdhcmUuDQorLyoqDQorICogQ29weXJpZ2h0IChjKSAyMDEwLCAyMDE1IE1pYS1Tb2Z0d2FyZS4NCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQogICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCiAgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KLSAqDQorICogDQogICogQ29udHJpYnV0b3JzOg0KLSAqICAgIEZyZWRlcmljIE1hZGlvdCAoTWlhLVNvZnR3YXJlKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKyAqICAgICBGcmVkZXJpYyBNYWRpb3QgKE1pYS1Tb2Z0d2FyZSkgLSBtZXRhbW9kZWwgZGVzaWduIGFuZCBpbml0aWFsIGltcGxlbWVudGF0aW9uDQorICogICAgIEdy6WdvaXJlIER1cOkgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgwMTgzIC0gVGhlIG1hbmlmZXN0Lm1mIGRpc2NvdmVyZXIgc2hvdWxkIG1hbmFnZSAnRXhwb3J0LVBhY2thZ2UnIA0KKyAqLw0KIHBhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5pbXBsOw0KIA0KIGltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbjsNCiANCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi5ub3RpZnkuTm90aWZpY2F0aW9uOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLm5vdGlmeS5Ob3RpZmljYXRpb25DaGFpbjsNCisNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi51dGlsLkVMaXN0Ow0KKw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRUNsYXNzOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuSW50ZXJuYWxFT2JqZWN0Ow0KKw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuaW1wbC5FTm90aWZpY2F0aW9uSW1wbDsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLmltcGwuRU9iamVjdEltcGw7DQorDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS51dGlsLkVPYmplY3RDb250YWlubWVudEVMaXN0Ow0KK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUudXRpbC5FT2JqZWN0UmVzb2x2aW5nRUxpc3Q7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS51dGlsLkludGVybmFsRUxpc3Q7DQorDQogaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuQnVuZGxlOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LkV4cG9ydGVkUGFja2FnZTsNCiBpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5JbXBvcnRlZFBhY2thZ2U7DQogaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuTWFuaWZlc3RQYWNrYWdlOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LlJlcXVpcmVkQnVuZGxlOw0KQEAgLTMyLDYgKzQwLDcgQEAKICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIDxwPg0KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIGltcGxlbWVudGVkOg0KKyAqIDwvcD4NCiAgKiA8dWw+DQogICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuaW1wbC5CdW5kbGVJbXBsI2dldE5hbWUgPGVtPk5hbWU8L2VtPn08L2xpPg0KICAqICAgPGxpPntAbGluayBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LmltcGwuQnVuZGxlSW1wbCNpc1NpbmdsZXRvbiA8ZW0+U2luZ2xldG9uPC9lbT59PC9saT4NCkBAIC00Myw4ICs1Miw4IEBACiAgKiAgIDxsaT57QGxpbmsgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5pbXBsLkJ1bmRsZUltcGwjZ2V0VmVuZG9yIDxlbT5WZW5kb3I8L2VtPn08L2xpPg0KICAqICAgPGxpPntAbGluayBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LmltcGwuQnVuZGxlSW1wbCNnZXRSZXF1aXJlZEJ1bmRsZXMgPGVtPlJlcXVpcmVkIEJ1bmRsZXM8L2VtPn08L2xpPg0KICAqICAgPGxpPntAbGluayBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LmltcGwuQnVuZGxlSW1wbCNnZXRJbXBvcnRlZFBhY2thZ2VzIDxlbT5JbXBvcnRlZCBQYWNrYWdlczwvZW0+fTwvbGk+DQorICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuaW1wbC5CdW5kbGVJbXBsI2dldEV4cG9ydFBhY2thZ2VzIDxlbT5FeHBvcnQgUGFja2FnZXM8L2VtPn08L2xpPg0KICAqIDwvdWw+DQotICogPC9wPg0KICAqDQogICogQGdlbmVyYXRlZA0KICAqLw0KQEAgLTIzMCw2ICsyMzksMTYgQEAKIAlwcm90ZWN0ZWQgRUxpc3Q8SW1wb3J0ZWRQYWNrYWdlPiBpbXBvcnRlZFBhY2thZ2VzOw0KIA0KIAkvKioNCisJICogVGhlIGNhY2hlZCB2YWx1ZSBvZiB0aGUgJ3tAbGluayAjZ2V0RXhwb3J0UGFja2FnZXMoKSA8ZW0+RXhwb3J0IFBhY2thZ2VzPC9lbT59JyByZWZlcmVuY2UgbGlzdC4NCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQorCSAqIEBzZWUgI2dldEV4cG9ydFBhY2thZ2VzKCkNCisJICogQGdlbmVyYXRlZA0KKwkgKiBAb3JkZXJlZA0KKwkgKi8NCisJcHJvdGVjdGVkIEVMaXN0PEV4cG9ydGVkUGFja2FnZT4gZXhwb3J0UGFja2FnZXM7DQorDQorCS8qKg0KIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAJICogQGdlbmVyYXRlZA0KQEAgLTQ0NSw2ICs0NjQsMTggQEAKIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAJICogQGdlbmVyYXRlZA0KIAkgKi8NCisJcHVibGljIEVMaXN0PEV4cG9ydGVkUGFja2FnZT4gZ2V0RXhwb3J0UGFja2FnZXMoKSB7DQorCQlpZiAoZXhwb3J0UGFja2FnZXMgPT0gbnVsbCkgew0KKwkJCWV4cG9ydFBhY2thZ2VzID0gbmV3IEVPYmplY3RSZXNvbHZpbmdFTGlzdDxFeHBvcnRlZFBhY2thZ2U+KEV4cG9ydGVkUGFja2FnZS5jbGFzcywgdGhpcywgTWFuaWZlc3RQYWNrYWdlLkJVTkRMRV9fRVhQT1JUX1BBQ0tBR0VTKTsNCisJCX0NCisJCXJldHVybiBleHBvcnRQYWNrYWdlczsNCisJfQ0KKw0KKwkvKioNCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQorCSAqIEBnZW5lcmF0ZWQNCisJICovDQogCUBPdmVycmlkZQ0KIAlwdWJsaWMgTm90aWZpY2F0aW9uQ2hhaW4gZUludmVyc2VSZW1vdmUoSW50ZXJuYWxFT2JqZWN0IG90aGVyRW5kLCBpbnQgZmVhdHVyZUlELCBOb3RpZmljYXRpb25DaGFpbiBtc2dzKSB7DQogCQlzd2l0Y2ggKGZlYXR1cmVJRCkgew0KQEAgLTQ4NCw2ICs1MTUsOCBAQAogCQkJCXJldHVybiBnZXRSZXF1aXJlZEJ1bmRsZXMoKTsNCiAJCQljYXNlIE1hbmlmZXN0UGFja2FnZS5CVU5ETEVfX0lNUE9SVEVEX1BBQ0tBR0VTOg0KIAkJCQlyZXR1cm4gZ2V0SW1wb3J0ZWRQYWNrYWdlcygpOw0KKwkJCWNhc2UgTWFuaWZlc3RQYWNrYWdlLkJVTkRMRV9fRVhQT1JUX1BBQ0tBR0VTOg0KKwkJCQlyZXR1cm4gZ2V0RXhwb3J0UGFja2FnZXMoKTsNCiAJCX0NCiAJCXJldHVybiBzdXBlci5lR2V0KGZlYXR1cmVJRCwgcmVzb2x2ZSwgY29yZVR5cGUpOw0KIAl9DQpAQCAtNTI5LDYgKzU2MiwxMCBAQAogCQkJCWdldEltcG9ydGVkUGFja2FnZXMoKS5jbGVhcigpOw0KIAkJCQlnZXRJbXBvcnRlZFBhY2thZ2VzKCkuYWRkQWxsKChDb2xsZWN0aW9uPD8gZXh0ZW5kcyBJbXBvcnRlZFBhY2thZ2U+KW5ld1ZhbHVlKTsNCiAJCQkJcmV0dXJuOw0KKwkJCWNhc2UgTWFuaWZlc3RQYWNrYWdlLkJVTkRMRV9fRVhQT1JUX1BBQ0tBR0VTOg0KKwkJCQlnZXRFeHBvcnRQYWNrYWdlcygpLmNsZWFyKCk7DQorCQkJCWdldEV4cG9ydFBhY2thZ2VzKCkuYWRkQWxsKChDb2xsZWN0aW9uPD8gZXh0ZW5kcyBFeHBvcnRlZFBhY2thZ2U+KW5ld1ZhbHVlKTsNCisJCQkJcmV0dXJuOw0KIAkJfQ0KIAkJc3VwZXIuZVNldChmZWF0dXJlSUQsIG5ld1ZhbHVlKTsNCiAJfQ0KQEAgLTU3MSw2ICs2MDgsOSBAQAogCQkJY2FzZSBNYW5pZmVzdFBhY2thZ2UuQlVORExFX19JTVBPUlRFRF9QQUNLQUdFUzoNCiAJCQkJZ2V0SW1wb3J0ZWRQYWNrYWdlcygpLmNsZWFyKCk7DQogCQkJCXJldHVybjsNCisJCQljYXNlIE1hbmlmZXN0UGFja2FnZS5CVU5ETEVfX0VYUE9SVF9QQUNLQUdFUzoNCisJCQkJZ2V0RXhwb3J0UGFja2FnZXMoKS5jbGVhcigpOw0KKwkJCQlyZXR1cm47DQogCQl9DQogCQlzdXBlci5lVW5zZXQoZmVhdHVyZUlEKTsNCiAJfQ0KQEAgLTYwMyw2ICs2NDMsOCBAQAogCQkJCXJldHVybiByZXF1aXJlZEJ1bmRsZXMgIT0gbnVsbCAmJiAhcmVxdWlyZWRCdW5kbGVzLmlzRW1wdHkoKTsNCiAJCQljYXNlIE1hbmlmZXN0UGFja2FnZS5CVU5ETEVfX0lNUE9SVEVEX1BBQ0tBR0VTOg0KIAkJCQlyZXR1cm4gaW1wb3J0ZWRQYWNrYWdlcyAhPSBudWxsICYmICFpbXBvcnRlZFBhY2thZ2VzLmlzRW1wdHkoKTsNCisJCQljYXNlIE1hbmlmZXN0UGFja2FnZS5CVU5ETEVfX0VYUE9SVF9QQUNLQUdFUzoNCisJCQkJcmV0dXJuIGV4cG9ydFBhY2thZ2VzICE9IG51bGwgJiYgIWV4cG9ydFBhY2thZ2VzLmlzRW1wdHkoKTsNCiAJCX0NCiAJCXJldHVybiBzdXBlci5lSXNTZXQoZmVhdHVyZUlEKTsNCiAJfQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3Qvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vbWFuaWZlc3QvaW1wbC9FeHBvcnRlZFBhY2thZ2VJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0L3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL21hbmlmZXN0L2ltcGwvRXhwb3J0ZWRQYWNrYWdlSW1wbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliZDFiYjUKLS0tIC9kZXYvbnVsbAorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0L3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL21hbmlmZXN0L2ltcGwvRXhwb3J0ZWRQYWNrYWdlSW1wbC5qYXZhCkBAIC0wLDAgKzEsMjY4IEBACisvKioNCisgKiBDb3B5cmlnaHQgKGMpIDIwMTAsIDIwMTUgTWlhLVNvZnR3YXJlLg0KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjANCisgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KKyAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQorICogDQorICogQ29udHJpYnV0b3JzOg0KKyAqICAgICBGcmVkZXJpYyBNYWRpb3QgKE1pYS1Tb2Z0d2FyZSkgLSBtZXRhbW9kZWwgZGVzaWduIGFuZCBpbml0aWFsIGltcGxlbWVudGF0aW9uDQorICogICAgIEdy6WdvaXJlIER1cOkgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgwMTgzIC0gVGhlIG1hbmlmZXN0Lm1mIGRpc2NvdmVyZXIgc2hvdWxkIG1hbmFnZSAnRXhwb3J0LVBhY2thZ2UnIA0KKyAqLw0KK3BhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5pbXBsOw0KKw0KK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbjsNCisNCitpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi5ub3RpZnkuTm90aWZpY2F0aW9uOw0KKw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLnV0aWwuRUxpc3Q7DQorDQoraW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FQ2xhc3M7DQorDQoraW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5pbXBsLkVOb3RpZmljYXRpb25JbXBsOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuaW1wbC5FT2JqZWN0SW1wbDsNCisNCitpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnV0aWwuRU9iamVjdFJlc29sdmluZ0VMaXN0Ow0KKw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LkJ1bmRsZTsNCitpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5FeHBvcnRlZFBhY2thZ2U7DQoraW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuTWFuaWZlc3RQYWNrYWdlOw0KKw0KKy8qKg0KKyAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+DQorICogQW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPkV4cG9ydGVkIFBhY2thZ2U8L2I+PC9lbT4nLg0KKyAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KKyAqIDxwPg0KKyAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIGltcGxlbWVudGVkOg0KKyAqIDwvcD4NCisgKiA8dWw+DQorICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuaW1wbC5FeHBvcnRlZFBhY2thZ2VJbXBsI2dldE5hbWUgPGVtPk5hbWU8L2VtPn08L2xpPg0KKyAqICAgPGxpPntAbGluayBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LmltcGwuRXhwb3J0ZWRQYWNrYWdlSW1wbCNnZXRYRnJpZW5kcyA8ZW0+WEZyaWVuZHM8L2VtPn08L2xpPg0KKyAqICAgPGxpPntAbGluayBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LmltcGwuRXhwb3J0ZWRQYWNrYWdlSW1wbCNpc1hJbnRlcm5hbCA8ZW0+WEludGVybmFsPC9lbT59PC9saT4NCisgKiA8L3VsPg0KKyAqDQorICogQGdlbmVyYXRlZA0KKyAqLw0KK3B1YmxpYyBjbGFzcyBFeHBvcnRlZFBhY2thZ2VJbXBsIGV4dGVuZHMgRU9iamVjdEltcGwgaW1wbGVtZW50cyBFeHBvcnRlZFBhY2thZ2Ugew0KKwkvKioNCisJICogVGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlICd7QGxpbmsgI2dldE5hbWUoKSA8ZW0+TmFtZTwvZW0+fScgYXR0cmlidXRlLg0KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCisJICogQHNlZSAjZ2V0TmFtZSgpDQorCSAqIEBnZW5lcmF0ZWQNCisJICogQG9yZGVyZWQNCisJICovDQorCXByb3RlY3RlZCBzdGF0aWMgZmluYWwgU3RyaW5nIE5BTUVfRURFRkFVTFQgPSBudWxsOw0KKw0KKwkvKioNCisJICogVGhlIGNhY2hlZCB2YWx1ZSBvZiB0aGUgJ3tAbGluayAjZ2V0TmFtZSgpIDxlbT5OYW1lPC9lbT59JyBhdHRyaWJ1dGUuDQorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+DQorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KKwkgKiBAc2VlICNnZXROYW1lKCkNCisJICogQGdlbmVyYXRlZA0KKwkgKiBAb3JkZXJlZA0KKwkgKi8NCisJcHJvdGVjdGVkIFN0cmluZyBuYW1lID0gTkFNRV9FREVGQVVMVDsNCisNCisJLyoqDQorCSAqIFRoZSBjYWNoZWQgdmFsdWUgb2YgdGhlICd7QGxpbmsgI2dldFhGcmllbmRzKCkgPGVtPlhGcmllbmRzPC9lbT59JyByZWZlcmVuY2UgbGlzdC4NCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQorCSAqIEBzZWUgI2dldFhGcmllbmRzKCkNCisJICogQGdlbmVyYXRlZA0KKwkgKiBAb3JkZXJlZA0KKwkgKi8NCisJcHJvdGVjdGVkIEVMaXN0PEJ1bmRsZT4geEZyaWVuZHM7DQorDQorCS8qKg0KKwkgKiBUaGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgJ3tAbGluayAjaXNYSW50ZXJuYWwoKSA8ZW0+WEludGVybmFsPC9lbT59JyBhdHRyaWJ1dGUuDQorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+DQorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KKwkgKiBAc2VlICNpc1hJbnRlcm5hbCgpDQorCSAqIEBnZW5lcmF0ZWQNCisJICogQG9yZGVyZWQNCisJICovDQorCXByb3RlY3RlZCBzdGF0aWMgZmluYWwgYm9vbGVhbiBYSU5URVJOQUxfRURFRkFVTFQgPSBmYWxzZTsNCisNCisJLyoqDQorCSAqIFRoZSBjYWNoZWQgdmFsdWUgb2YgdGhlICd7QGxpbmsgI2lzWEludGVybmFsKCkgPGVtPlhJbnRlcm5hbDwvZW0+fScgYXR0cmlidXRlLg0KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCisJICogQHNlZSAjaXNYSW50ZXJuYWwoKQ0KKwkgKiBAZ2VuZXJhdGVkDQorCSAqIEBvcmRlcmVkDQorCSAqLw0KKwlwcm90ZWN0ZWQgYm9vbGVhbiB4SW50ZXJuYWwgPSBYSU5URVJOQUxfRURFRkFVTFQ7DQorDQorCS8qKg0KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCisJICogQGdlbmVyYXRlZA0KKwkgKi8NCisJcHJvdGVjdGVkIEV4cG9ydGVkUGFja2FnZUltcGwoKSB7DQorCQlzdXBlcigpOw0KKwl9DQorDQorCS8qKg0KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCisJICogQGdlbmVyYXRlZA0KKwkgKi8NCisJQE92ZXJyaWRlDQorCXByb3RlY3RlZCBFQ2xhc3MgZVN0YXRpY0NsYXNzKCkgew0KKwkJcmV0dXJuIE1hbmlmZXN0UGFja2FnZS5MaXRlcmFscy5FWFBPUlRFRF9QQUNLQUdFOw0KKwl9DQorDQorCS8qKg0KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCisJICogQGdlbmVyYXRlZA0KKwkgKi8NCisJcHVibGljIFN0cmluZyBnZXROYW1lKCkgew0KKwkJcmV0dXJuIG5hbWU7DQorCX0NCisNCisJLyoqDQorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+DQorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KKwkgKiBAZ2VuZXJhdGVkDQorCSAqLw0KKwlwdWJsaWMgdm9pZCBzZXROYW1lKFN0cmluZyBuZXdOYW1lKSB7DQorCQlTdHJpbmcgb2xkTmFtZSA9IG5hbWU7DQorCQluYW1lID0gbmV3TmFtZTsNCisJCWlmIChlTm90aWZpY2F0aW9uUmVxdWlyZWQoKSkNCisJCQllTm90aWZ5KG5ldyBFTm90aWZpY2F0aW9uSW1wbCh0aGlzLCBOb3RpZmljYXRpb24uU0VULCBNYW5pZmVzdFBhY2thZ2UuRVhQT1JURURfUEFDS0FHRV9fTkFNRSwgb2xkTmFtZSwgbmFtZSkpOw0KKwl9DQorDQorCS8qKg0KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCisJICogQGdlbmVyYXRlZA0KKwkgKi8NCisJcHVibGljIEVMaXN0PEJ1bmRsZT4gZ2V0WEZyaWVuZHMoKSB7DQorCQlpZiAoeEZyaWVuZHMgPT0gbnVsbCkgew0KKwkJCXhGcmllbmRzID0gbmV3IEVPYmplY3RSZXNvbHZpbmdFTGlzdDxCdW5kbGU+KEJ1bmRsZS5jbGFzcywgdGhpcywgTWFuaWZlc3RQYWNrYWdlLkVYUE9SVEVEX1BBQ0tBR0VfX1hGUklFTkRTKTsNCisJCX0NCisJCXJldHVybiB4RnJpZW5kczsNCisJfQ0KKw0KKwkvKioNCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQorCSAqIEBnZW5lcmF0ZWQNCisJICovDQorCXB1YmxpYyBib29sZWFuIGlzWEludGVybmFsKCkgew0KKwkJcmV0dXJuIHhJbnRlcm5hbDsNCisJfQ0KKw0KKwkvKioNCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQorCSAqIEBnZW5lcmF0ZWQNCisJICovDQorCXB1YmxpYyB2b2lkIHNldFhJbnRlcm5hbChib29sZWFuIG5ld1hJbnRlcm5hbCkgew0KKwkJYm9vbGVhbiBvbGRYSW50ZXJuYWwgPSB4SW50ZXJuYWw7DQorCQl4SW50ZXJuYWwgPSBuZXdYSW50ZXJuYWw7DQorCQlpZiAoZU5vdGlmaWNhdGlvblJlcXVpcmVkKCkpDQorCQkJZU5vdGlmeShuZXcgRU5vdGlmaWNhdGlvbkltcGwodGhpcywgTm90aWZpY2F0aW9uLlNFVCwgTWFuaWZlc3RQYWNrYWdlLkVYUE9SVEVEX1BBQ0tBR0VfX1hJTlRFUk5BTCwgb2xkWEludGVybmFsLCB4SW50ZXJuYWwpKTsNCisJfQ0KKw0KKwkvKioNCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQorCSAqIEBnZW5lcmF0ZWQNCisJICovDQorCUBPdmVycmlkZQ0KKwlwdWJsaWMgT2JqZWN0IGVHZXQoaW50IGZlYXR1cmVJRCwgYm9vbGVhbiByZXNvbHZlLCBib29sZWFuIGNvcmVUeXBlKSB7DQorCQlzd2l0Y2ggKGZlYXR1cmVJRCkgew0KKwkJCWNhc2UgTWFuaWZlc3RQYWNrYWdlLkVYUE9SVEVEX1BBQ0tBR0VfX05BTUU6DQorCQkJCXJldHVybiBnZXROYW1lKCk7DQorCQkJY2FzZSBNYW5pZmVzdFBhY2thZ2UuRVhQT1JURURfUEFDS0FHRV9fWEZSSUVORFM6DQorCQkJCXJldHVybiBnZXRYRnJpZW5kcygpOw0KKwkJCWNhc2UgTWFuaWZlc3RQYWNrYWdlLkVYUE9SVEVEX1BBQ0tBR0VfX1hJTlRFUk5BTDoNCisJCQkJcmV0dXJuIGlzWEludGVybmFsKCk7DQorCQl9DQorCQlyZXR1cm4gc3VwZXIuZUdldChmZWF0dXJlSUQsIHJlc29sdmUsIGNvcmVUeXBlKTsNCisJfQ0KKw0KKwkvKioNCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQorCSAqIEBnZW5lcmF0ZWQNCisJICovDQorCUBTdXBwcmVzc1dhcm5pbmdzKCJ1bmNoZWNrZWQiKQ0KKwlAT3ZlcnJpZGUNCisJcHVibGljIHZvaWQgZVNldChpbnQgZmVhdHVyZUlELCBPYmplY3QgbmV3VmFsdWUpIHsNCisJCXN3aXRjaCAoZmVhdHVyZUlEKSB7DQorCQkJY2FzZSBNYW5pZmVzdFBhY2thZ2UuRVhQT1JURURfUEFDS0FHRV9fTkFNRToNCisJCQkJc2V0TmFtZSgoU3RyaW5nKW5ld1ZhbHVlKTsNCisJCQkJcmV0dXJuOw0KKwkJCWNhc2UgTWFuaWZlc3RQYWNrYWdlLkVYUE9SVEVEX1BBQ0tBR0VfX1hGUklFTkRTOg0KKwkJCQlnZXRYRnJpZW5kcygpLmNsZWFyKCk7DQorCQkJCWdldFhGcmllbmRzKCkuYWRkQWxsKChDb2xsZWN0aW9uPD8gZXh0ZW5kcyBCdW5kbGU+KW5ld1ZhbHVlKTsNCisJCQkJcmV0dXJuOw0KKwkJCWNhc2UgTWFuaWZlc3RQYWNrYWdlLkVYUE9SVEVEX1BBQ0tBR0VfX1hJTlRFUk5BTDoNCisJCQkJc2V0WEludGVybmFsKChCb29sZWFuKW5ld1ZhbHVlKTsNCisJCQkJcmV0dXJuOw0KKwkJfQ0KKwkJc3VwZXIuZVNldChmZWF0dXJlSUQsIG5ld1ZhbHVlKTsNCisJfQ0KKw0KKwkvKioNCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQorCSAqIEBnZW5lcmF0ZWQNCisJICovDQorCUBPdmVycmlkZQ0KKwlwdWJsaWMgdm9pZCBlVW5zZXQoaW50IGZlYXR1cmVJRCkgew0KKwkJc3dpdGNoIChmZWF0dXJlSUQpIHsNCisJCQljYXNlIE1hbmlmZXN0UGFja2FnZS5FWFBPUlRFRF9QQUNLQUdFX19OQU1FOg0KKwkJCQlzZXROYW1lKE5BTUVfRURFRkFVTFQpOw0KKwkJCQlyZXR1cm47DQorCQkJY2FzZSBNYW5pZmVzdFBhY2thZ2UuRVhQT1JURURfUEFDS0FHRV9fWEZSSUVORFM6DQorCQkJCWdldFhGcmllbmRzKCkuY2xlYXIoKTsNCisJCQkJcmV0dXJuOw0KKwkJCWNhc2UgTWFuaWZlc3RQYWNrYWdlLkVYUE9SVEVEX1BBQ0tBR0VfX1hJTlRFUk5BTDoNCisJCQkJc2V0WEludGVybmFsKFhJTlRFUk5BTF9FREVGQVVMVCk7DQorCQkJCXJldHVybjsNCisJCX0NCisJCXN1cGVyLmVVbnNldChmZWF0dXJlSUQpOw0KKwl9DQorDQorCS8qKg0KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCisJICogQGdlbmVyYXRlZA0KKwkgKi8NCisJQE92ZXJyaWRlDQorCXB1YmxpYyBib29sZWFuIGVJc1NldChpbnQgZmVhdHVyZUlEKSB7DQorCQlzd2l0Y2ggKGZlYXR1cmVJRCkgew0KKwkJCWNhc2UgTWFuaWZlc3RQYWNrYWdlLkVYUE9SVEVEX1BBQ0tBR0VfX05BTUU6DQorCQkJCXJldHVybiBOQU1FX0VERUZBVUxUID09IG51bGwgPyBuYW1lICE9IG51bGwgOiAhTkFNRV9FREVGQVVMVC5lcXVhbHMobmFtZSk7DQorCQkJY2FzZSBNYW5pZmVzdFBhY2thZ2UuRVhQT1JURURfUEFDS0FHRV9fWEZSSUVORFM6DQorCQkJCXJldHVybiB4RnJpZW5kcyAhPSBudWxsICYmICF4RnJpZW5kcy5pc0VtcHR5KCk7DQorCQkJY2FzZSBNYW5pZmVzdFBhY2thZ2UuRVhQT1JURURfUEFDS0FHRV9fWElOVEVSTkFMOg0KKwkJCQlyZXR1cm4geEludGVybmFsICE9IFhJTlRFUk5BTF9FREVGQVVMVDsNCisJCX0NCisJCXJldHVybiBzdXBlci5lSXNTZXQoZmVhdHVyZUlEKTsNCisJfQ0KKw0KKwkvKioNCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQorCSAqIEBnZW5lcmF0ZWQNCisJICovDQorCUBPdmVycmlkZQ0KKwlwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgew0KKwkJaWYgKGVJc1Byb3h5KCkpIHJldHVybiBzdXBlci50b1N0cmluZygpOw0KKw0KKwkJU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoc3VwZXIudG9TdHJpbmcoKSk7DQorCQlyZXN1bHQuYXBwZW5kKCIgKG5hbWU6ICIpOw0KKwkJcmVzdWx0LmFwcGVuZChuYW1lKTsNCisJCXJlc3VsdC5hcHBlbmQoIiwgeEludGVybmFsOiAiKTsNCisJCXJlc3VsdC5hcHBlbmQoeEludGVybmFsKTsNCisJCXJlc3VsdC5hcHBlbmQoJyknKTsNCisJCXJldHVybiByZXN1bHQudG9TdHJpbmcoKTsNCisJfQ0KKw0KK30gLy9FeHBvcnRlZFBhY2thZ2VJbXBsDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9tYW5pZmVzdC9pbXBsL0ltcG9ydGVkUGFja2FnZUltcGwuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3Qvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vbWFuaWZlc3QvaW1wbC9JbXBvcnRlZFBhY2thZ2VJbXBsLmphdmEKaW5kZXggOWY4MDRkNS4uNzNhMTgzOSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9tYW5pZmVzdC9pbXBsL0ltcG9ydGVkUGFja2FnZUltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0L3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL21hbmlmZXN0L2ltcGwvSW1wb3J0ZWRQYWNrYWdlSW1wbC5qYXZhCkBAIC0xLDIxICsxLDI1IEBACi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLSAqIENvcHlyaWdodCAoYykgMjAxMCBNaWEtU29mdHdhcmUuDQorLyoqDQorICogQ29weXJpZ2h0IChjKSAyMDEwLCAyMDE1IE1pYS1Tb2Z0d2FyZS4NCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQogICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCiAgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KLSAqDQorICogDQogICogQ29udHJpYnV0b3JzOg0KLSAqICAgIEZyZWRlcmljIE1hZGlvdCAoTWlhLVNvZnR3YXJlKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKyAqICAgICBGcmVkZXJpYyBNYWRpb3QgKE1pYS1Tb2Z0d2FyZSkgLSBtZXRhbW9kZWwgZGVzaWduIGFuZCBpbml0aWFsIGltcGxlbWVudGF0aW9uDQorICogICAgIEdy6WdvaXJlIER1cOkgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgwMTgzIC0gVGhlIG1hbmlmZXN0Lm1mIGRpc2NvdmVyZXIgc2hvdWxkIG1hbmFnZSAnRXhwb3J0LVBhY2thZ2UnIA0KKyAqLw0KIHBhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5pbXBsOw0KIA0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLm5vdGlmeS5Ob3RpZmljYXRpb247DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24ubm90aWZ5Lk5vdGlmaWNhdGlvbkNoYWluOw0KKw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRUNsYXNzOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuSW50ZXJuYWxFT2JqZWN0Ow0KKw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuaW1wbC5FTm90aWZpY2F0aW9uSW1wbDsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLmltcGwuRU9iamVjdEltcGw7DQorDQogaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuSW1wb3J0ZWRQYWNrYWdlOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0Lk1hbmlmZXN0UGFja2FnZTsNCiBpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5WZXJzaW9uOw0KQEAgLTI2LDExICszMCwxMSBAQAogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQogICogPHA+DQogICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgaW1wbGVtZW50ZWQ6DQorICogPC9wPg0KICAqIDx1bD4NCiAgKiAgIDxsaT57QGxpbmsgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5pbXBsLkltcG9ydGVkUGFja2FnZUltcGwjZ2V0TmFtZSA8ZW0+TmFtZTwvZW0+fTwvbGk+DQogICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuaW1wbC5JbXBvcnRlZFBhY2thZ2VJbXBsI2dldFZlcnNpb24gPGVtPlZlcnNpb248L2VtPn08L2xpPg0KICAqIDwvdWw+DQotICogPC9wPg0KICAqDQogICogQGdlbmVyYXRlZA0KICAqLw0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3Qvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vbWFuaWZlc3QvaW1wbC9NYW5pZmVzdEZhY3RvcnlJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0L3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL21hbmlmZXN0L2ltcGwvTWFuaWZlc3RGYWN0b3J5SW1wbC5qYXZhCmluZGV4IGZhYzliNzAuLjNlODcxODYgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3Qvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vbWFuaWZlc3QvaW1wbC9NYW5pZmVzdEZhY3RvcnlJbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9tYW5pZmVzdC9pbXBsL01hbmlmZXN0RmFjdG9yeUltcGwuamF2YQpAQCAtMSwyNiArMSwyNSBAQAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTAgTWlhLVNvZnR3YXJlLg0KKy8qKg0KKyAqIENvcHlyaWdodCAoYykgMjAxMCwgMjAxNSBNaWEtU29mdHdhcmUuDQogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KICAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQogICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCi0gKg0KKyAqIA0KICAqIENvbnRyaWJ1dG9yczoNCi0gKiAgICBGcmVkZXJpYyBNYWRpb3QgKE1pYS1Tb2Z0d2FyZSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisgKiAgICAgRnJlZGVyaWMgTWFkaW90IChNaWEtU29mdHdhcmUpIC0gbWV0YW1vZGVsIGRlc2lnbiBhbmQgaW5pdGlhbCBpbXBsZW1lbnRhdGlvbg0KKyAqICAgICBHculnb2lyZSBEdXDpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MDE4MyAtIFRoZSBtYW5pZmVzdC5tZiBkaXNjb3ZlcmVyIHNob3VsZCBtYW5hZ2UgJ0V4cG9ydC1QYWNrYWdlJyANCisgKi8NCiBwYWNrYWdlIG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuaW1wbDsNCiANCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVDbGFzczsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVPYmplY3Q7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FUGFja2FnZTsNCisNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLmltcGwuRUZhY3RvcnlJbXBsOw0KKw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUucGx1Z2luLkVjb3JlUGx1Z2luOw0KLWltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LkJ1bmRsZTsNCi1pbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5JbXBvcnRlZFBhY2thZ2U7DQotaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuTWFuaWZlc3RGYWN0b3J5Ow0KLWltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0Lk1hbmlmZXN0UGFja2FnZTsNCi1pbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5SZXF1aXJlZEJ1bmRsZTsNCi1pbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5WZXJzaW9uOw0KKw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0Lio7DQogDQogLyoqDQogICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCkBAIC0zNyw3ICszNiw3IEBACiAJICovDQogCXB1YmxpYyBzdGF0aWMgTWFuaWZlc3RGYWN0b3J5IGluaXQoKSB7DQogCQl0cnkgew0KLQkJCU1hbmlmZXN0RmFjdG9yeSB0aGVNYW5pZmVzdEZhY3RvcnkgPSAoTWFuaWZlc3RGYWN0b3J5KUVQYWNrYWdlLlJlZ2lzdHJ5LklOU1RBTkNFLmdldEVGYWN0b3J5KCJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vbWFuaWZlc3QiKTsgDQorCQkJTWFuaWZlc3RGYWN0b3J5IHRoZU1hbmlmZXN0RmFjdG9yeSA9IChNYW5pZmVzdEZhY3RvcnkpRVBhY2thZ2UuUmVnaXN0cnkuSU5TVEFOQ0UuZ2V0RUZhY3RvcnkoTWFuaWZlc3RQYWNrYWdlLmVOU19VUkkpOw0KIAkJCWlmICh0aGVNYW5pZmVzdEZhY3RvcnkgIT0gbnVsbCkgew0KIAkJCQlyZXR1cm4gdGhlTWFuaWZlc3RGYWN0b3J5Ow0KIAkJCX0NCkBAIC03MCw2ICs2OSw3IEBACiAJCQljYXNlIE1hbmlmZXN0UGFja2FnZS5SRVFVSVJFRF9CVU5ETEU6IHJldHVybiBjcmVhdGVSZXF1aXJlZEJ1bmRsZSgpOw0KIAkJCWNhc2UgTWFuaWZlc3RQYWNrYWdlLklNUE9SVEVEX1BBQ0tBR0U6IHJldHVybiBjcmVhdGVJbXBvcnRlZFBhY2thZ2UoKTsNCiAJCQljYXNlIE1hbmlmZXN0UGFja2FnZS5WRVJTSU9OOiByZXR1cm4gY3JlYXRlVmVyc2lvbigpOw0KKwkJCWNhc2UgTWFuaWZlc3RQYWNrYWdlLkVYUE9SVEVEX1BBQ0tBR0U6IHJldHVybiBjcmVhdGVFeHBvcnRlZFBhY2thZ2UoKTsNCiAJCQlkZWZhdWx0Og0KIAkJCQl0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJUaGUgY2xhc3MgJyIgKyBlQ2xhc3MuZ2V0TmFtZSgpICsgIicgaXMgbm90IGEgdmFsaWQgY2xhc3NpZmllciIpOw0KIAkJfQ0KQEAgLTEyMCw2ICsxMjAsMTYgQEAKIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAJICogQGdlbmVyYXRlZA0KIAkgKi8NCisJcHVibGljIEV4cG9ydGVkUGFja2FnZSBjcmVhdGVFeHBvcnRlZFBhY2thZ2UoKSB7DQorCQlFeHBvcnRlZFBhY2thZ2VJbXBsIGV4cG9ydGVkUGFja2FnZSA9IG5ldyBFeHBvcnRlZFBhY2thZ2VJbXBsKCk7DQorCQlyZXR1cm4gZXhwb3J0ZWRQYWNrYWdlOw0KKwl9DQorDQorCS8qKg0KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCisJICogQGdlbmVyYXRlZA0KKwkgKi8NCiAJcHVibGljIE1hbmlmZXN0UGFja2FnZSBnZXRNYW5pZmVzdFBhY2thZ2UoKSB7DQogCQlyZXR1cm4gKE1hbmlmZXN0UGFja2FnZSlnZXRFUGFja2FnZSgpOw0KIAl9DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9tYW5pZmVzdC9pbXBsL01hbmlmZXN0UGFja2FnZUltcGwuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3Qvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vbWFuaWZlc3QvaW1wbC9NYW5pZmVzdFBhY2thZ2VJbXBsLmphdmEKaW5kZXggZDE0YWEyNi4uZTRlMDc3ZSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9tYW5pZmVzdC9pbXBsL01hbmlmZXN0UGFja2FnZUltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0L3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL21hbmlmZXN0L2ltcGwvTWFuaWZlc3RQYWNrYWdlSW1wbC5qYXZhCkBAIC0xLDIxICsxLDI1IEBACi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLSAqIENvcHlyaWdodCAoYykgMjAxMCBNaWEtU29mdHdhcmUuDQorLyoqDQorICogQ29weXJpZ2h0IChjKSAyMDEwLCAyMDE1IE1pYS1Tb2Z0d2FyZS4NCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQogICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCiAgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KLSAqDQorICogDQogICogQ29udHJpYnV0b3JzOg0KLSAqICAgIEZyZWRlcmljIE1hZGlvdCAoTWlhLVNvZnR3YXJlKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKyAqICAgICBGcmVkZXJpYyBNYWRpb3QgKE1pYS1Tb2Z0d2FyZSkgLSBtZXRhbW9kZWwgZGVzaWduIGFuZCBpbml0aWFsIGltcGxlbWVudGF0aW9uDQorICogICAgIEdy6WdvaXJlIER1cOkgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgwMTgzIC0gVGhlIG1hbmlmZXN0Lm1mIGRpc2NvdmVyZXIgc2hvdWxkIG1hbmFnZSAnRXhwb3J0LVBhY2thZ2UnIA0KKyAqLw0KIHBhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5pbXBsOw0KIA0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRUF0dHJpYnV0ZTsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVDbGFzczsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVQYWNrYWdlOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRVJlZmVyZW5jZTsNCisNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLmltcGwuRVBhY2thZ2VJbXBsOw0KKw0KIGltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LkJ1bmRsZTsNCitpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5FeHBvcnRlZFBhY2thZ2U7DQogaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuSW1wb3J0ZWRQYWNrYWdlOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0Lk1hbmlmZXN0RmFjdG9yeTsNCiBpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5NYW5pZmVzdFBhY2thZ2U7DQpAQCAtNTgsNiArNjIsMTMgQEAKIAlwcml2YXRlIEVDbGFzcyB2ZXJzaW9uRUNsYXNzID0gbnVsbDsNCiANCiAJLyoqDQorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+DQorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KKwkgKiBAZ2VuZXJhdGVkDQorCSAqLw0KKwlwcml2YXRlIEVDbGFzcyBleHBvcnRlZFBhY2thZ2VFQ2xhc3MgPSBudWxsOw0KKw0KKwkvKioNCiAJICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiB0aGUgbW9kZWwgPGI+UGFja2FnZTwvYj4sIHJlZ2lzdGVyZWQgd2l0aA0KIAkgKiB7QGxpbmsgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVQYWNrYWdlLlJlZ2lzdHJ5IEVQYWNrYWdlLlJlZ2lzdHJ5fSBieSB0aGUgcGFja2FnZQ0KIAkgKiBwYWNrYWdlIFVSSSB2YWx1ZS4NCkBAIC0yMjIsNiArMjMzLDE1IEBACiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQogCSAqIEBnZW5lcmF0ZWQNCiAJICovDQorCXB1YmxpYyBFUmVmZXJlbmNlIGdldEJ1bmRsZV9FeHBvcnRQYWNrYWdlcygpIHsNCisJCXJldHVybiAoRVJlZmVyZW5jZSlidW5kbGVFQ2xhc3MuZ2V0RVN0cnVjdHVyYWxGZWF0dXJlcygpLmdldCgxMCk7DQorCX0NCisNCisJLyoqDQorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+DQorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KKwkgKiBAZ2VuZXJhdGVkDQorCSAqLw0KIAlwdWJsaWMgRUNsYXNzIGdldFJlcXVpcmVkQnVuZGxlKCkgew0KIAkJcmV0dXJuIHJlcXVpcmVkQnVuZGxlRUNsYXNzOw0KIAl9DQpAQCAtMzIxLDYgKzM0MSw0MiBAQAogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KIAkgKiBAZ2VuZXJhdGVkDQogCSAqLw0KKwlwdWJsaWMgRUNsYXNzIGdldEV4cG9ydGVkUGFja2FnZSgpIHsNCisJCXJldHVybiBleHBvcnRlZFBhY2thZ2VFQ2xhc3M7DQorCX0NCisNCisJLyoqDQorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+DQorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KKwkgKiBAZ2VuZXJhdGVkDQorCSAqLw0KKwlwdWJsaWMgRUF0dHJpYnV0ZSBnZXRFeHBvcnRlZFBhY2thZ2VfTmFtZSgpIHsNCisJCXJldHVybiAoRUF0dHJpYnV0ZSlleHBvcnRlZFBhY2thZ2VFQ2xhc3MuZ2V0RVN0cnVjdHVyYWxGZWF0dXJlcygpLmdldCgwKTsNCisJfQ0KKw0KKwkvKioNCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQorCSAqIEBnZW5lcmF0ZWQNCisJICovDQorCXB1YmxpYyBFUmVmZXJlbmNlIGdldEV4cG9ydGVkUGFja2FnZV9YRnJpZW5kcygpIHsNCisJCXJldHVybiAoRVJlZmVyZW5jZSlleHBvcnRlZFBhY2thZ2VFQ2xhc3MuZ2V0RVN0cnVjdHVyYWxGZWF0dXJlcygpLmdldCgxKTsNCisJfQ0KKw0KKwkvKioNCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCisJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQorCSAqIEBnZW5lcmF0ZWQNCisJICovDQorCXB1YmxpYyBFQXR0cmlidXRlIGdldEV4cG9ydGVkUGFja2FnZV9YSW50ZXJuYWwoKSB7DQorCQlyZXR1cm4gKEVBdHRyaWJ1dGUpZXhwb3J0ZWRQYWNrYWdlRUNsYXNzLmdldEVTdHJ1Y3R1cmFsRmVhdHVyZXMoKS5nZXQoMik7DQorCX0NCisNCisJLyoqDQorCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+DQorCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KKwkgKiBAZ2VuZXJhdGVkDQorCSAqLw0KIAlwdWJsaWMgTWFuaWZlc3RGYWN0b3J5IGdldE1hbmlmZXN0RmFjdG9yeSgpIHsNCiAJCXJldHVybiAoTWFuaWZlc3RGYWN0b3J5KWdldEVGYWN0b3J5SW5zdGFuY2UoKTsNCiAJfQ0KQEAgLTM1NSw2ICs0MTEsNyBAQAogCQljcmVhdGVFQXR0cmlidXRlKGJ1bmRsZUVDbGFzcywgQlVORExFX19WRU5ET1IpOw0KIAkJY3JlYXRlRVJlZmVyZW5jZShidW5kbGVFQ2xhc3MsIEJVTkRMRV9fUkVRVUlSRURfQlVORExFUyk7DQogCQljcmVhdGVFUmVmZXJlbmNlKGJ1bmRsZUVDbGFzcywgQlVORExFX19JTVBPUlRFRF9QQUNLQUdFUyk7DQorCQljcmVhdGVFUmVmZXJlbmNlKGJ1bmRsZUVDbGFzcywgQlVORExFX19FWFBPUlRfUEFDS0FHRVMpOw0KIA0KIAkJcmVxdWlyZWRCdW5kbGVFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoUkVRVUlSRURfQlVORExFKTsNCiAJCWNyZWF0ZUVBdHRyaWJ1dGUocmVxdWlyZWRCdW5kbGVFQ2xhc3MsIFJFUVVJUkVEX0JVTkRMRV9fU1lNQk9MSUNfTkFNRSk7DQpAQCAtMzY5LDYgKzQyNiwxMSBAQAogCQljcmVhdGVFQXR0cmlidXRlKHZlcnNpb25FQ2xhc3MsIFZFUlNJT05fX01JTklNVU1fSVNfSU5DTFVTSVZFKTsNCiAJCWNyZWF0ZUVBdHRyaWJ1dGUodmVyc2lvbkVDbGFzcywgVkVSU0lPTl9fTUFYSU1VTSk7DQogCQljcmVhdGVFQXR0cmlidXRlKHZlcnNpb25FQ2xhc3MsIFZFUlNJT05fX01BWElNVU1fSVNfSU5DTFVTSVZFKTsNCisNCisJCWV4cG9ydGVkUGFja2FnZUVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhFWFBPUlRFRF9QQUNLQUdFKTsNCisJCWNyZWF0ZUVBdHRyaWJ1dGUoZXhwb3J0ZWRQYWNrYWdlRUNsYXNzLCBFWFBPUlRFRF9QQUNLQUdFX19OQU1FKTsNCisJCWNyZWF0ZUVSZWZlcmVuY2UoZXhwb3J0ZWRQYWNrYWdlRUNsYXNzLCBFWFBPUlRFRF9QQUNLQUdFX19YRlJJRU5EUyk7DQorCQljcmVhdGVFQXR0cmlidXRlKGV4cG9ydGVkUGFja2FnZUVDbGFzcywgRVhQT1JURURfUEFDS0FHRV9fWElOVEVSTkFMKTsNCiAJfQ0KIA0KIAkvKioNCkBAIC00MTIsNiArNDc0LDcgQEAKIAkJaW5pdEVBdHRyaWJ1dGUoZ2V0QnVuZGxlX1ZlbmRvcigpLCBlY29yZVBhY2thZ2UuZ2V0RVN0cmluZygpLCAidmVuZG9yIiwgbnVsbCwgMCwgMSwgQnVuZGxlLmNsYXNzLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19VTlNFVFRBQkxFLCAhSVNfSUQsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOw0KIAkJaW5pdEVSZWZlcmVuY2UoZ2V0QnVuZGxlX1JlcXVpcmVkQnVuZGxlcygpLCB0aGlzLmdldFJlcXVpcmVkQnVuZGxlKCksIG51bGwsICJyZXF1aXJlZEJ1bmRsZXMiLCBudWxsLCAwLCAtMSwgQnVuZGxlLmNsYXNzLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsIElTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOw0KIAkJaW5pdEVSZWZlcmVuY2UoZ2V0QnVuZGxlX0ltcG9ydGVkUGFja2FnZXMoKSwgdGhpcy5nZXRJbXBvcnRlZFBhY2thZ2UoKSwgbnVsbCwgImltcG9ydGVkUGFja2FnZXMiLCBudWxsLCAwLCAtMSwgQnVuZGxlLmNsYXNzLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsIElTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOw0KKwkJaW5pdEVSZWZlcmVuY2UoZ2V0QnVuZGxlX0V4cG9ydFBhY2thZ2VzKCksIHRoaXMuZ2V0RXhwb3J0ZWRQYWNrYWdlKCksIG51bGwsICJleHBvcnRQYWNrYWdlcyIsIG51bGwsIDAsIC0xLCBCdW5kbGUuY2xhc3MsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX0NPTVBPU0lURSwgSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7DQogDQogCQlpbml0RUNsYXNzKHJlcXVpcmVkQnVuZGxlRUNsYXNzLCBSZXF1aXJlZEJ1bmRsZS5jbGFzcywgIlJlcXVpcmVkQnVuZGxlIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFLCBJU19HRU5FUkFURURfSU5TVEFOQ0VfQ0xBU1MpOw0KIAkJaW5pdEVBdHRyaWJ1dGUoZ2V0UmVxdWlyZWRCdW5kbGVfU3ltYm9saWNOYW1lKCksIGVjb3JlUGFja2FnZS5nZXRFU3RyaW5nKCksICJzeW1ib2xpY05hbWUiLCBudWxsLCAwLCAxLCBSZXF1aXJlZEJ1bmRsZS5jbGFzcywgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfVU5TRVRUQUJMRSwgIUlTX0lELCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsNCkBAIC00MjcsNiArNDkwLDExIEBACiAJCWluaXRFQXR0cmlidXRlKGdldFZlcnNpb25fTWF4aW11bSgpLCBlY29yZVBhY2thZ2UuZ2V0RVN0cmluZygpLCAibWF4aW11bSIsIG51bGwsIDAsIDEsIFZlcnNpb24uY2xhc3MsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX1VOU0VUVEFCTEUsICFJU19JRCwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7DQogCQlpbml0RUF0dHJpYnV0ZShnZXRWZXJzaW9uX01heGltdW1Jc0luY2x1c2l2ZSgpLCBlY29yZVBhY2thZ2UuZ2V0RUJvb2xlYW4oKSwgIm1heGltdW1Jc0luY2x1c2l2ZSIsIG51bGwsIDAsIDEsIFZlcnNpb24uY2xhc3MsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX1VOU0VUVEFCTEUsICFJU19JRCwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7DQogDQorCQlpbml0RUNsYXNzKGV4cG9ydGVkUGFja2FnZUVDbGFzcywgRXhwb3J0ZWRQYWNrYWdlLmNsYXNzLCAiRXhwb3J0ZWRQYWNrYWdlIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFLCBJU19HRU5FUkFURURfSU5TVEFOQ0VfQ0xBU1MpOw0KKwkJaW5pdEVBdHRyaWJ1dGUoZ2V0RXhwb3J0ZWRQYWNrYWdlX05hbWUoKSwgZWNvcmVQYWNrYWdlLmdldEVTdHJpbmcoKSwgIm5hbWUiLCBudWxsLCAxLCAxLCBFeHBvcnRlZFBhY2thZ2UuY2xhc3MsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX1VOU0VUVEFCTEUsICFJU19JRCwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7DQorCQlpbml0RVJlZmVyZW5jZShnZXRFeHBvcnRlZFBhY2thZ2VfWEZyaWVuZHMoKSwgdGhpcy5nZXRCdW5kbGUoKSwgbnVsbCwgInhGcmllbmRzIiwgbnVsbCwgMCwgLTEsIEV4cG9ydGVkUGFja2FnZS5jbGFzcywgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsNCisJCWluaXRFQXR0cmlidXRlKGdldEV4cG9ydGVkUGFja2FnZV9YSW50ZXJuYWwoKSwgZWNvcmVQYWNrYWdlLmdldEVCb29sZWFuKCksICJ4SW50ZXJuYWwiLCBudWxsLCAxLCAxLCBFeHBvcnRlZFBhY2thZ2UuY2xhc3MsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX1VOU0VUVEFCTEUsICFJU19JRCwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7DQorDQogCQkvLyBDcmVhdGUgcmVzb3VyY2UNCiAJCWNyZWF0ZVJlc291cmNlKGVOU19VUkkpOw0KIAl9DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9tYW5pZmVzdC9pbXBsL1JlcXVpcmVkQnVuZGxlSW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9tYW5pZmVzdC9pbXBsL1JlcXVpcmVkQnVuZGxlSW1wbC5qYXZhCmluZGV4IGRlOTNlMTMuLmE0ZTMxZWUgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3Qvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vbWFuaWZlc3QvaW1wbC9SZXF1aXJlZEJ1bmRsZUltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0L3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL21hbmlmZXN0L2ltcGwvUmVxdWlyZWRCdW5kbGVJbXBsLmphdmEKQEAgLTEsMjEgKzEsMjUgQEAKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQotICogQ29weXJpZ2h0IChjKSAyMDEwIE1pYS1Tb2Z0d2FyZS4NCisvKioNCisgKiBDb3B5cmlnaHQgKGMpIDIwMTAsIDIwMTUgTWlhLVNvZnR3YXJlLg0KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCiAgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjANCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KICAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQotICoNCisgKiANCiAgKiBDb250cmlidXRvcnM6DQotICogICAgRnJlZGVyaWMgTWFkaW90IChNaWEtU29mdHdhcmUpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uDQotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorICogICAgIEZyZWRlcmljIE1hZGlvdCAoTWlhLVNvZnR3YXJlKSAtIG1ldGFtb2RlbCBkZXNpZ24gYW5kIGluaXRpYWwgaW1wbGVtZW50YXRpb24NCisgKiAgICAgR3LpZ29pcmUgRHVw6SAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODAxODMgLSBUaGUgbWFuaWZlc3QubWYgZGlzY292ZXJlciBzaG91bGQgbWFuYWdlICdFeHBvcnQtUGFja2FnZScgDQorICovDQogcGFja2FnZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LmltcGw7DQogDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24ubm90aWZ5Lk5vdGlmaWNhdGlvbjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi5ub3RpZnkuTm90aWZpY2F0aW9uQ2hhaW47DQorDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FQ2xhc3M7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5JbnRlcm5hbEVPYmplY3Q7DQorDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5pbXBsLkVOb3RpZmljYXRpb25JbXBsOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuaW1wbC5FT2JqZWN0SW1wbDsNCisNCiBpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5NYW5pZmVzdFBhY2thZ2U7DQogaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuUmVxdWlyZWRCdW5kbGU7DQogaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuVmVyc2lvbjsNCkBAIC0yNiwxMSArMzAsMTEgQEAKICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIDxwPg0KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIGltcGxlbWVudGVkOg0KKyAqIDwvcD4NCiAgKiA8dWw+DQogICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuaW1wbC5SZXF1aXJlZEJ1bmRsZUltcGwjZ2V0U3ltYm9saWNOYW1lIDxlbT5TeW1ib2xpYyBOYW1lPC9lbT59PC9saT4NCiAgKiAgIDxsaT57QGxpbmsgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5pbXBsLlJlcXVpcmVkQnVuZGxlSW1wbCNnZXRWZXJzaW9uIDxlbT5WZXJzaW9uPC9lbT59PC9saT4NCiAgKiA8L3VsPg0KLSAqIDwvcD4NCiAgKg0KICAqIEBnZW5lcmF0ZWQNCiAgKi8NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0L3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL21hbmlmZXN0L2ltcGwvVmVyc2lvbkltcGwuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3Qvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vbWFuaWZlc3QvaW1wbC9WZXJzaW9uSW1wbC5qYXZhCmluZGV4IDhjNTM0ZjYuLmU5ZWJiZDUgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3Qvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vbWFuaWZlc3QvaW1wbC9WZXJzaW9uSW1wbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3Qvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vbWFuaWZlc3QvaW1wbC9WZXJzaW9uSW1wbC5qYXZhCkBAIC0xLDE5ICsxLDIzIEBACi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLSAqIENvcHlyaWdodCAoYykgMjAxMCBNaWEtU29mdHdhcmUuDQorLyoqDQorICogQ29weXJpZ2h0IChjKSAyMDEwLCAyMDE1IE1pYS1Tb2Z0d2FyZS4NCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQogICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCiAgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KLSAqDQorICogDQogICogQ29udHJpYnV0b3JzOg0KLSAqICAgIEZyZWRlcmljIE1hZGlvdCAoTWlhLVNvZnR3YXJlKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKyAqICAgICBGcmVkZXJpYyBNYWRpb3QgKE1pYS1Tb2Z0d2FyZSkgLSBtZXRhbW9kZWwgZGVzaWduIGFuZCBpbml0aWFsIGltcGxlbWVudGF0aW9uDQorICogICAgIEdy6WdvaXJlIER1cOkgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgwMTgzIC0gVGhlIG1hbmlmZXN0Lm1mIGRpc2NvdmVyZXIgc2hvdWxkIG1hbmFnZSAnRXhwb3J0LVBhY2thZ2UnIA0KKyAqLw0KIHBhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5pbXBsOw0KIA0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLm5vdGlmeS5Ob3RpZmljYXRpb247DQorDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FQ2xhc3M7DQorDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5pbXBsLkVOb3RpZmljYXRpb25JbXBsOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuaW1wbC5FT2JqZWN0SW1wbDsNCisNCiBpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5NYW5pZmVzdFBhY2thZ2U7DQogaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuVmVyc2lvbjsNCiANCkBAIC0yMywxMyArMjcsMTMgQEAKICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIDxwPg0KICAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIGltcGxlbWVudGVkOg0KKyAqIDwvcD4NCiAgKiA8dWw+DQogICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuaW1wbC5WZXJzaW9uSW1wbCNnZXRNaW5pbXVtIDxlbT5NaW5pbXVtPC9lbT59PC9saT4NCiAgKiAgIDxsaT57QGxpbmsgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5pbXBsLlZlcnNpb25JbXBsI2lzTWluaW11bUlzSW5jbHVzaXZlIDxlbT5NaW5pbXVtIElzIEluY2x1c2l2ZTwvZW0+fTwvbGk+DQogICogICA8bGk+e0BsaW5rIG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuaW1wbC5WZXJzaW9uSW1wbCNnZXRNYXhpbXVtIDxlbT5NYXhpbXVtPC9lbT59PC9saT4NCiAgKiAgIDxsaT57QGxpbmsgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5pbXBsLlZlcnNpb25JbXBsI2lzTWF4aW11bUlzSW5jbHVzaXZlIDxlbT5NYXhpbXVtIElzIEluY2x1c2l2ZTwvZW0+fTwvbGk+DQogICogPC91bD4NCi0gKiA8L3A+DQogICoNCiAgKiBAZ2VuZXJhdGVkDQogICovDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9tYW5pZmVzdC91dGlsL01hbmlmZXN0QWRhcHRlckZhY3RvcnkuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3Qvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vbWFuaWZlc3QvdXRpbC9NYW5pZmVzdEFkYXB0ZXJGYWN0b3J5LmphdmEKaW5kZXggNzdiY2E4NC4uNGU4MWI4NCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9tYW5pZmVzdC91dGlsL01hbmlmZXN0QWRhcHRlckZhY3RvcnkuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0L3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL21hbmlmZXN0L3V0aWwvTWFuaWZlc3RBZGFwdGVyRmFjdG9yeS5qYXZhCkBAIC0xLDI0ICsxLDI0IEBACi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLSAqIENvcHlyaWdodCAoYykgMjAxMCBNaWEtU29mdHdhcmUuDQorLyoqDQorICogQ29weXJpZ2h0IChjKSAyMDEwLCAyMDE1IE1pYS1Tb2Z0d2FyZS4NCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQogICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCiAgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KLSAqDQorICogDQogICogQ29udHJpYnV0b3JzOg0KLSAqICAgIEZyZWRlcmljIE1hZGlvdCAoTWlhLVNvZnR3YXJlKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKyAqICAgICBGcmVkZXJpYyBNYWRpb3QgKE1pYS1Tb2Z0d2FyZSkgLSBtZXRhbW9kZWwgZGVzaWduIGFuZCBpbml0aWFsIGltcGxlbWVudGF0aW9uDQorICogICAgIEdy6WdvaXJlIER1cOkgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgwMTgzIC0gVGhlIG1hbmlmZXN0Lm1mIGRpc2NvdmVyZXIgc2hvdWxkIG1hbmFnZSAnRXhwb3J0LVBhY2thZ2UnIA0KKyAqLw0KIHBhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC51dGlsOw0KIA0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLm5vdGlmeS5BZGFwdGVyOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLm5vdGlmeS5Ob3RpZmllcjsNCisNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi5ub3RpZnkuaW1wbC5BZGFwdGVyRmFjdG9yeUltcGw7DQorDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FT2JqZWN0Ow0KLWltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LkJ1bmRsZTsNCi1pbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5JbXBvcnRlZFBhY2thZ2U7DQotaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuTWFuaWZlc3RQYWNrYWdlOw0KLWltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LlJlcXVpcmVkQnVuZGxlOw0KLWltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LlZlcnNpb247DQorDQoraW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuKjsNCiANCiAvKioNCiAgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KQEAgLTI4LDcgKzI4LDYgQEAKICAqIEBzZWUgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5NYW5pZmVzdFBhY2thZ2UNCiAgKiBAZ2VuZXJhdGVkDQogICovDQotQFN1cHByZXNzV2FybmluZ3MoImFsbCIpDQogcHVibGljIGNsYXNzIE1hbmlmZXN0QWRhcHRlckZhY3RvcnkgZXh0ZW5kcyBBZGFwdGVyRmFjdG9yeUltcGwgew0KIAkvKioNCiAJICogVGhlIGNhY2hlZCBtb2RlbCBwYWNrYWdlLg0KQEAgLTQ1LDggKzQ0LDggQEAKIAkgKiBAZ2VuZXJhdGVkDQogCSAqLw0KIAlwdWJsaWMgTWFuaWZlc3RBZGFwdGVyRmFjdG9yeSgpIHsNCi0JCWlmIChNYW5pZmVzdEFkYXB0ZXJGYWN0b3J5Lm1vZGVsUGFja2FnZSA9PSBudWxsKSB7DQotCQkJTWFuaWZlc3RBZGFwdGVyRmFjdG9yeS5tb2RlbFBhY2thZ2UgPSBNYW5pZmVzdFBhY2thZ2UuZUlOU1RBTkNFOw0KKwkJaWYgKG1vZGVsUGFja2FnZSA9PSBudWxsKSB7DQorCQkJbW9kZWxQYWNrYWdlID0gTWFuaWZlc3RQYWNrYWdlLmVJTlNUQU5DRTsNCiAJCX0NCiAJfQ0KIA0KQEAgLTU5LDEyICs1OCwxMiBAQAogCSAqIEBnZW5lcmF0ZWQNCiAJICovDQogCUBPdmVycmlkZQ0KLQlwdWJsaWMgYm9vbGVhbiBpc0ZhY3RvcnlGb3JUeXBlKGZpbmFsIE9iamVjdCBvYmplY3QpIHsNCi0JCWlmIChvYmplY3QgPT0gTWFuaWZlc3RBZGFwdGVyRmFjdG9yeS5tb2RlbFBhY2thZ2UpIHsNCisJcHVibGljIGJvb2xlYW4gaXNGYWN0b3J5Rm9yVHlwZShPYmplY3Qgb2JqZWN0KSB7DQorCQlpZiAob2JqZWN0ID09IG1vZGVsUGFja2FnZSkgew0KIAkJCXJldHVybiB0cnVlOw0KIAkJfQ0KIAkJaWYgKG9iamVjdCBpbnN0YW5jZW9mIEVPYmplY3QpIHsNCi0JCQlyZXR1cm4gKChFT2JqZWN0KW9iamVjdCkuZUNsYXNzKCkuZ2V0RVBhY2thZ2UoKSA9PSBNYW5pZmVzdEFkYXB0ZXJGYWN0b3J5Lm1vZGVsUGFja2FnZTsNCisJCQlyZXR1cm4gKChFT2JqZWN0KW9iamVjdCkuZUNsYXNzKCkuZ2V0RVBhY2thZ2UoKSA9PSBtb2RlbFBhY2thZ2U7DQogCQl9DQogCQlyZXR1cm4gZmFsc2U7DQogCX0NCkBAIC03OCwyMyArNzcsMjcgQEAKIAlwcm90ZWN0ZWQgTWFuaWZlc3RTd2l0Y2g8QWRhcHRlcj4gbW9kZWxTd2l0Y2ggPQ0KIAkJbmV3IE1hbmlmZXN0U3dpdGNoPEFkYXB0ZXI+KCkgew0KIAkJCUBPdmVycmlkZQ0KLQkJCXB1YmxpYyBBZGFwdGVyIGNhc2VCdW5kbGUoZmluYWwgQnVuZGxlIG9iamVjdCkgew0KKwkJCXB1YmxpYyBBZGFwdGVyIGNhc2VCdW5kbGUoQnVuZGxlIG9iamVjdCkgew0KIAkJCQlyZXR1cm4gY3JlYXRlQnVuZGxlQWRhcHRlcigpOw0KIAkJCX0NCiAJCQlAT3ZlcnJpZGUNCi0JCQlwdWJsaWMgQWRhcHRlciBjYXNlUmVxdWlyZWRCdW5kbGUoZmluYWwgUmVxdWlyZWRCdW5kbGUgb2JqZWN0KSB7DQorCQkJcHVibGljIEFkYXB0ZXIgY2FzZVJlcXVpcmVkQnVuZGxlKFJlcXVpcmVkQnVuZGxlIG9iamVjdCkgew0KIAkJCQlyZXR1cm4gY3JlYXRlUmVxdWlyZWRCdW5kbGVBZGFwdGVyKCk7DQogCQkJfQ0KIAkJCUBPdmVycmlkZQ0KLQkJCXB1YmxpYyBBZGFwdGVyIGNhc2VJbXBvcnRlZFBhY2thZ2UoZmluYWwgSW1wb3J0ZWRQYWNrYWdlIG9iamVjdCkgew0KKwkJCXB1YmxpYyBBZGFwdGVyIGNhc2VJbXBvcnRlZFBhY2thZ2UoSW1wb3J0ZWRQYWNrYWdlIG9iamVjdCkgew0KIAkJCQlyZXR1cm4gY3JlYXRlSW1wb3J0ZWRQYWNrYWdlQWRhcHRlcigpOw0KIAkJCX0NCiAJCQlAT3ZlcnJpZGUNCi0JCQlwdWJsaWMgQWRhcHRlciBjYXNlVmVyc2lvbihmaW5hbCBWZXJzaW9uIG9iamVjdCkgew0KKwkJCXB1YmxpYyBBZGFwdGVyIGNhc2VWZXJzaW9uKFZlcnNpb24gb2JqZWN0KSB7DQogCQkJCXJldHVybiBjcmVhdGVWZXJzaW9uQWRhcHRlcigpOw0KIAkJCX0NCiAJCQlAT3ZlcnJpZGUNCi0JCQlwdWJsaWMgQWRhcHRlciBkZWZhdWx0Q2FzZShmaW5hbCBFT2JqZWN0IG9iamVjdCkgew0KKwkJCXB1YmxpYyBBZGFwdGVyIGNhc2VFeHBvcnRlZFBhY2thZ2UoRXhwb3J0ZWRQYWNrYWdlIG9iamVjdCkgew0KKwkJCQlyZXR1cm4gY3JlYXRlRXhwb3J0ZWRQYWNrYWdlQWRhcHRlcigpOw0KKwkJCX0NCisJCQlAT3ZlcnJpZGUNCisJCQlwdWJsaWMgQWRhcHRlciBkZWZhdWx0Q2FzZShFT2JqZWN0IG9iamVjdCkgew0KIAkJCQlyZXR1cm4gY3JlYXRlRU9iamVjdEFkYXB0ZXIoKTsNCiAJCQl9DQogCQl9Ow0KQEAgLTEwOCw4ICsxMTEsOCBAQAogCSAqIEBnZW5lcmF0ZWQNCiAJICovDQogCUBPdmVycmlkZQ0KLQlwdWJsaWMgQWRhcHRlciBjcmVhdGVBZGFwdGVyKGZpbmFsIE5vdGlmaWVyIHRhcmdldCkgew0KLQkJcmV0dXJuIHRoaXMubW9kZWxTd2l0Y2guZG9Td2l0Y2goKEVPYmplY3QpdGFyZ2V0KTsNCisJcHVibGljIEFkYXB0ZXIgY3JlYXRlQWRhcHRlcihOb3RpZmllciB0YXJnZXQpIHsNCisJCXJldHVybiBtb2RlbFN3aXRjaC5kb1N3aXRjaCgoRU9iamVjdCl0YXJnZXQpOw0KIAl9DQogDQogDQpAQCAtMTcwLDYgKzE3MywyMCBAQAogCX0NCiANCiAJLyoqDQorCSAqIENyZWF0ZXMgYSBuZXcgYWRhcHRlciBmb3IgYW4gb2JqZWN0IG9mIGNsYXNzICd7QGxpbmsgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5FeHBvcnRlZFBhY2thZ2UgPGVtPkV4cG9ydGVkIFBhY2thZ2U8L2VtPn0nLg0KKwkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KKwkgKiBUaGlzIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gcmV0dXJucyBudWxsIHNvIHRoYXQgd2UgY2FuIGVhc2lseSBpZ25vcmUgY2FzZXM7DQorCSAqIGl0J3MgdXNlZnVsIHRvIGlnbm9yZSBhIGNhc2Ugd2hlbiBpbmhlcml0YW5jZSB3aWxsIGNhdGNoIGFsbCB0aGUgY2FzZXMgYW55d2F5Lg0KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCisJICogQHJldHVybiB0aGUgbmV3IGFkYXB0ZXIuDQorCSAqIEBzZWUgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5FeHBvcnRlZFBhY2thZ2UNCisJICogQGdlbmVyYXRlZA0KKwkgKi8NCisJcHVibGljIEFkYXB0ZXIgY3JlYXRlRXhwb3J0ZWRQYWNrYWdlQWRhcHRlcigpIHsNCisJCXJldHVybiBudWxsOw0KKwl9DQorDQorCS8qKg0KIAkgKiBDcmVhdGVzIGEgbmV3IGFkYXB0ZXIgZm9yIHRoZSBkZWZhdWx0IGNhc2UuDQogCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+DQogCSAqIFRoaXMgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIG51bGwuDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9tYW5pZmVzdC91dGlsL01hbmlmZXN0U3dpdGNoLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0L3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL21hbmlmZXN0L3V0aWwvTWFuaWZlc3RTd2l0Y2guamF2YQppbmRleCA0YzMxODhhLi42MDkxZjY5IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0L3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL21hbmlmZXN0L3V0aWwvTWFuaWZlc3RTd2l0Y2guamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0L3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL21hbmlmZXN0L3V0aWwvTWFuaWZlc3RTd2l0Y2guamF2YQpAQCAtMSwyNCArMSwyMiBAQAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTAgTWlhLVNvZnR3YXJlLg0KKy8qKg0KKyAqIENvcHlyaWdodCAoYykgMjAxMCwgMjAxNSBNaWEtU29mdHdhcmUuDQogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KICAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQogICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCi0gKg0KKyAqIA0KICAqIENvbnRyaWJ1dG9yczoNCi0gKiAgICBGcmVkZXJpYyBNYWRpb3QgKE1pYS1Tb2Z0d2FyZSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisgKiAgICAgRnJlZGVyaWMgTWFkaW90IChNaWEtU29mdHdhcmUpIC0gbWV0YW1vZGVsIGRlc2lnbiBhbmQgaW5pdGlhbCBpbXBsZW1lbnRhdGlvbg0KKyAqICAgICBHculnb2lyZSBEdXDpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4MDE4MyAtIFRoZSBtYW5pZmVzdC5tZiBkaXNjb3ZlcmVyIHNob3VsZCBtYW5hZ2UgJ0V4cG9ydC1QYWNrYWdlJyANCisgKi8NCiBwYWNrYWdlIG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QudXRpbDsNCiANCiBpbXBvcnQgamF2YS51dGlsLkxpc3Q7DQogDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FQ2xhc3M7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FT2JqZWN0Ow0KLWltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LkJ1bmRsZTsNCi1pbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5JbXBvcnRlZFBhY2thZ2U7DQotaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuTWFuaWZlc3RQYWNrYWdlOw0KLWltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LlJlcXVpcmVkQnVuZGxlOw0KLWltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LlZlcnNpb247DQorDQoraW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuKjsNCiANCiAvKioNCiAgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KQEAgLTExOCw2ICsxMTYsMTIgQEAKIAkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOw0KIAkJCQlyZXR1cm4gcmVzdWx0Ow0KIAkJCX0NCisJCQljYXNlIE1hbmlmZXN0UGFja2FnZS5FWFBPUlRFRF9QQUNLQUdFOiB7DQorCQkJCUV4cG9ydGVkUGFja2FnZSBleHBvcnRlZFBhY2thZ2UgPSAoRXhwb3J0ZWRQYWNrYWdlKXRoZUVPYmplY3Q7DQorCQkJCVQgcmVzdWx0ID0gY2FzZUV4cG9ydGVkUGFja2FnZShleHBvcnRlZFBhY2thZ2UpOw0KKwkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOw0KKwkJCQlyZXR1cm4gcmVzdWx0Ow0KKwkJCX0NCiAJCQlkZWZhdWx0OiByZXR1cm4gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7DQogCQl9DQogCX0NCkBAIC0xODMsNiArMTg3LDIxIEBACiAJfQ0KIA0KIAkvKioNCisJICogUmV0dXJucyB0aGUgcmVzdWx0IG9mIGludGVycHJldGluZyB0aGUgb2JqZWN0IGFzIGFuIGluc3RhbmNlIG9mICc8ZW0+RXhwb3J0ZWQgUGFja2FnZTwvZW0+Jy4NCisJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCisJICogVGhpcyBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIG51bGw7DQorCSAqIHJldHVybmluZyBhIG5vbi1udWxsIHJlc3VsdCB3aWxsIHRlcm1pbmF0ZSB0aGUgc3dpdGNoLg0KKwkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCisJICogQHBhcmFtIG9iamVjdCB0aGUgdGFyZ2V0IG9mIHRoZSBzd2l0Y2guDQorCSAqIEByZXR1cm4gdGhlIHJlc3VsdCBvZiBpbnRlcnByZXRpbmcgdGhlIG9iamVjdCBhcyBhbiBpbnN0YW5jZSBvZiAnPGVtPkV4cG9ydGVkIFBhY2thZ2U8L2VtPicuDQorCSAqIEBzZWUgI2RvU3dpdGNoKG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FT2JqZWN0KSBkb1N3aXRjaChFT2JqZWN0KQ0KKwkgKiBAZ2VuZXJhdGVkDQorCSAqLw0KKwlwdWJsaWMgVCBjYXNlRXhwb3J0ZWRQYWNrYWdlKEV4cG9ydGVkUGFja2FnZSBvYmplY3QpIHsNCisJCXJldHVybiBudWxsOw0KKwl9DQorDQorCS8qKg0KIAkgKiBSZXR1cm5zIHRoZSByZXN1bHQgb2YgaW50ZXJwcmV0aW5nIHRoZSBvYmplY3QgYXMgYW4gaW5zdGFuY2Ugb2YgJzxlbT5FT2JqZWN0PC9lbT4nLg0KIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KIAkgKiBUaGlzIGltcGxlbWVudGF0aW9uIHJldHVybnMgbnVsbDsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLm9tZy5nYXN0bS9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28ub21nLmdhc3RtL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDZhZjY5ZTkuLmQyODAxMjQgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28ub21nLmdhc3RtL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28ub21nLmdhc3RtL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC04LDggKzgsOCBAQAogQnVuZGxlLUxvY2FsaXphdGlvbjogcGx1Z2luDQogQnVuZGxlLVJlcXVpcmVkRXhlY3V0aW9uRW52aXJvbm1lbnQ6IEoyU0UtMS41DQogRXhwb3J0LVBhY2thZ2U6IG9yZy5lY2xpcHNlLm1vZGlzY28ub21nLmdhc3RtLA0KLSBvcmcuZWNsaXBzZS5tb2Rpc2NvLm9tZy5nYXN0bS5pbXBsLA0KLSBvcmcuZWNsaXBzZS5tb2Rpc2NvLm9tZy5nYXN0bS51dGlsDQorIG9yZy5lY2xpcHNlLm1vZGlzY28ub21nLmdhc3RtLmltcGw7eC1pbnRlcm5hbDo9dHJ1ZSwNCisgb3JnLmVjbGlwc2UubW9kaXNjby5vbWcuZ2FzdG0udXRpbDt4LWludGVybmFsOj10cnVlDQogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZSwNCiAgb3JnLmVjbGlwc2UuZW1mLmVjb3JlO3Zpc2liaWxpdHk6PXJlZXhwb3J0LA0KICBvcmcuZWNsaXBzZS5lbWYuZWNvcmUueG1pO3Zpc2liaWxpdHk6PXJlZXhwb3J0DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5vbWcuc21tL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby5vbWcuc21tL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDAwY2E3YTEuLjdhMWM1OTMgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28ub21nLnNtbS9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLm9tZy5zbW0vTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTgsOCArOCw4IEBACiBCdW5kbGUtTG9jYWxpemF0aW9uOiBwbHVnaW4NCiBCdW5kbGUtUmVxdWlyZWRFeGVjdXRpb25FbnZpcm9ubWVudDogSjJTRS0xLjUNCiBFeHBvcnQtUGFja2FnZTogb3JnLmVjbGlwc2UubW9kaXNjby5vbWcuc21tLA0KLSBvcmcuZWNsaXBzZS5tb2Rpc2NvLm9tZy5zbW0uaW1wbCwNCi0gb3JnLmVjbGlwc2UubW9kaXNjby5vbWcuc21tLnV0aWwNCisgb3JnLmVjbGlwc2UubW9kaXNjby5vbWcuc21tLmltcGw7eC1pbnRlcm5hbDo9dHJ1ZSwNCisgb3JnLmVjbGlwc2UubW9kaXNjby5vbWcuc21tLnV0aWw7eC1pbnRlcm5hbDo9dHJ1ZQ0KIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUsDQogIG9yZy5lY2xpcHNlLmVtZi5lY29yZTt2aXNpYmlsaXR5Oj1yZWV4cG9ydA0KIEJ1bmRsZS1BY3RpdmF0aW9uUG9saWN5OiBsYXp5DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5yZWxlbmcudHljaG8vLnNldHRpbmdzL29yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLnByZWZzIGIvb3JnLmVjbGlwc2UubW9kaXNjby5yZWxlbmcudHljaG8vLnNldHRpbmdzL29yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLnByZWZzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxNTg0NDUKLS0tIC9kZXYvbnVsbAorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnJlbGVuZy50eWNoby8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY29yZS5yZXNvdXJjZXMucHJlZnMKQEAgLTAsMCArMSwxMCBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMTUgTWlhLVNvZnR3YXJlLg0KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KKyMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQorIyB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KKyMgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCisjDQorIyBDb250cmlidXRvcnM6DQorIyAgICBHculnb2lyZSBEdXDpIC0gaW5pdGlhbCBpbXBsZW1lbnRhdGlvbg0KK2VjbGlwc2UucHJlZmVyZW5jZXMudmVyc2lvbj0xDQorZW5jb2RpbmcvPHByb2plY3Q+PVVURi04DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5yZWxlbmcudHljaG8vLnNldHRpbmdzL29yZy5lY2xpcHNlLmNvcmUucnVudGltZS5wcmVmcyBiL29yZy5lY2xpcHNlLm1vZGlzY28ucmVsZW5nLnR5Y2hvLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUucHJlZnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjk3NmM0ZgotLS0gL2Rldi9udWxsCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28ucmVsZW5nLnR5Y2hvLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUucHJlZnMKQEAgLTAsMCArMSwxMCBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMTUgTWlhLVNvZnR3YXJlLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCisjIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorIyB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAorIyBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIworIyBDb250cmlidXRvcnM6CisjICAgIEdyw6lnb2lyZSBEdXDDqSAtIGluaXRpYWwgaW1wbGVtZW50YXRpb24KK2VjbGlwc2UucHJlZmVyZW5jZXMudmVyc2lvbj0xCitsaW5lLnNlcGFyYXRvcj1cbgpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5yZWxlbmcudHljaG8vcmVsZWFzZXRyYWluL2RlcGVuZGVuY2llc191cGRhdGVzaXRlcy54bWwgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnJlbGVuZy50eWNoby9yZWxlYXNldHJhaW4vZGVwZW5kZW5jaWVzX3VwZGF0ZXNpdGVzLnhtbAppbmRleCBlMWY1ZjUyLi5kNTZjYjc4IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLnJlbGVuZy50eWNoby9yZWxlYXNldHJhaW4vZGVwZW5kZW5jaWVzX3VwZGF0ZXNpdGVzLnhtbAorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnJlbGVuZy50eWNoby9yZWxlYXNldHJhaW4vZGVwZW5kZW5jaWVzX3VwZGF0ZXNpdGVzLnhtbApAQCAtMTUsNyArMTUsNyBAQAogCQk8cmVwb3NpdG9yeT4NCiAJCQk8aWQ+U1dUQm90PC9pZD4NCiAJCQk8bGF5b3V0PnAyPC9sYXlvdXQ+DQotCQkJPHVybD5odHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvdGVjaG5vbG9neS9zd3Rib3QvcmVsZWFzZXMvbGF0ZXN0LzwvdXJsPg0KKwkJCTx1cmw+aHR0cDovL2Rvd25sb2FkLmVjbGlwc2Uub3JnL3RlY2hub2xvZ3kvc3d0Ym90L3NuYXBzaG90czwvdXJsPg0KIAkJPC9yZXBvc2l0b3J5Pg0KIAkJPHJlcG9zaXRvcnk+DQogCQkJPGlkPk9yYml0PC9pZD4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLnJlbGVuZy50eWNoby9yZWxlYXNldHJhaW4vc2ltcmVsX2dpdF9jbG9uZS5zaCBiL29yZy5lY2xpcHNlLm1vZGlzY28ucmVsZW5nLnR5Y2hvL3JlbGVhc2V0cmFpbi9zaW1yZWxfZ2l0X2Nsb25lLnNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1MGEwMDYKLS0tIC9kZXYvbnVsbAorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnJlbGVuZy50eWNoby9yZWxlYXNldHJhaW4vc2ltcmVsX2dpdF9jbG9uZS5zaApAQCAtMCwwICsxLDE5IEBACisjIS9iaW4vc2gKKyMgQ29weXJpZ2h0IChjKSAyMDE1IE1pYS1Tb2Z0d2FyZS4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscworIyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyMgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKKyMgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMKKyMgQ29udHJpYnV0b3JzOgorIyAgICBHcsOpZ29pcmUgRHVww6kgLSBpbml0aWFsIGltcGxlbWVudGF0aW9uCisKK2Z1bmN0aW9uIHVzYWdlIHsKKwllY2hvICJVc2FnZTogJDAgdGFyZ2V0X2RpciIKK30KKworaWYgWyAteiAkMSBdIDsgdGhlbgorCXVzYWdlCitmaSAKKworZ2l0IGNsb25lIC0tYnJhbmNoIG1hc3RlciBodHRwOi8vZ2l0LmVjbGlwc2Uub3JnL2dpdHJvb3Qvc2ltcmVsL29yZy5lY2xpcHNlLnNpbXJlbC5idWlsZC5naXQgJDEKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uc2RrLmZlYXR1cmUvZmVhdHVyZS54bWwgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnNkay5mZWF0dXJlL2ZlYXR1cmUueG1sCmluZGV4IGQ2NGI4ZDYuLmViNmJlNzAgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uc2RrLmZlYXR1cmUvZmVhdHVyZS54bWwKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5zZGsuZmVhdHVyZS9mZWF0dXJlLnhtbApAQCAtMSwxMyArMSwxNCBAQAogPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCiA8IS0tCi0gICAgQ29weXJpZ2h0IChjKSAyMDEwIE1pYS1Tb2Z0d2FyZS4KKyAgICBDb3B5cmlnaHQgKGMpIDIwMTAsIDIwMTUgTWlhLVNvZnR3YXJlLgogICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKICAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKICAgICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAogICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCiAgICAKICAgICBDb250cmlidXRvcnM6Ci0gICAgICAgIE5pY29sYXMgQnJvcyAoTWlhLVNvZnR3YXJlKQorICAgICAgICBOaWNvbGFzIEJyb3MgKE1pYS1Tb2Z0d2FyZSkNCisgICAgICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODAxODkgLSBvcmcuZWNsaXBzZS5tb2Rpc2NvLnttYW5pZmVzdCxlY2xpcHNlcGx1Z2luLHByb3BlcnRpZXN9KiBzaG91bGQgYmUgYWRkZWQgaW4gdGhlIHVwZGF0ZXNpdGUKICAtLT4NCiA8ZmVhdHVyZQ0KICAgICAgIGlkPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLnNkay5mZWF0dXJlIg0KQEAgLTY2LDYgKzY3LDEwIEBACiAgICAgICAgICBpZD0ib3JnLmVjbGlwc2UubW9kaXNjby5qZWUuZmVhdHVyZSINCiAgICAgICAgICB2ZXJzaW9uPSIwLjAuMCIvPg0KIA0KKyAgIDxpbmNsdWRlcw0KKyAgICAgICAgIGlkPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLmVjbGlwc2UuZmVhdHVyZSINCisgICAgICAgICB2ZXJzaW9uPSIwLjAuMCIvPg0KKw0KICAgIDxwbHVnaW4NCiAgICAgICAgICBpZD0ib3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuY2FwYWJpbGl0aWVzIg0KICAgICAgICAgIGRvd25sb2FkLXNpemU9IjAiDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5zbW0ucXVhbGl0eS9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28uc21tLnF1YWxpdHkvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggYzlhYjczMi4uZDEyNjAzMyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5zbW0ucXVhbGl0eS9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnNtbS5xdWFsaXR5L01FVEEtSU5GL01BTklGRVNULk1GCkBAIC04LDggKzgsOCBAQAogQnVuZGxlLUxvY2FsaXphdGlvbjogcGx1Z2luDQogQnVuZGxlLVJlcXVpcmVkRXhlY3V0aW9uRW52aXJvbm1lbnQ6IEoyU0UtMS41DQogRXhwb3J0LVBhY2thZ2U6IG9yZy5lY2xpcHNlLm1vZGlzY28uc21tLnF1YWxpdHksDQotIG9yZy5lY2xpcHNlLm1vZGlzY28uc21tLnF1YWxpdHkuaW1wbCwNCi0gb3JnLmVjbGlwc2UubW9kaXNjby5zbW0ucXVhbGl0eS51dGlsDQorIG9yZy5lY2xpcHNlLm1vZGlzY28uc21tLnF1YWxpdHkuaW1wbDt4LWludGVybmFsOj10cnVlLA0KKyBvcmcuZWNsaXBzZS5tb2Rpc2NvLnNtbS5xdWFsaXR5LnV0aWw7eC1pbnRlcm5hbDo9dHJ1ZQ0KIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUsDQogIG9yZy5lY2xpcHNlLmVtZi5lY29yZTt2aXNpYmlsaXR5Oj1yZWV4cG9ydCwNCiAgb3JnLmVjbGlwc2UubW9kaXNjby5vbWcuc21tO3Zpc2liaWxpdHk6PXJlZXhwb3J0DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby51cGRhdGVzaXRlL3NpdGUueG1sIGIvb3JnLmVjbGlwc2UubW9kaXNjby51cGRhdGVzaXRlL3NpdGUueG1sCmluZGV4IDA1MWQ5MGEuLjNiNmRmMjYgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28udXBkYXRlc2l0ZS9zaXRlLnhtbAorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnVwZGF0ZXNpdGUvc2l0ZS54bWwKQEAgLTQ1LDYgKzQ1LDkgQEAKICAgIDxmZWF0dXJlIHVybD0iZmVhdHVyZXMvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmZlYXR1cmVfMS4wLjAucXVhbGlmaWVyLmphciIgaWQ9Im9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5mZWF0dXJlIiB2ZXJzaW9uPSIxLjAuMC5xdWFsaWZpZXIiPg0KICAgICAgIDxjYXRlZ29yeSBuYW1lPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLnVwZGF0ZXNpdGUuaW5mcmFzdHJ1Y3R1cmUiLz4NCiAgICA8L2ZlYXR1cmU+DQorICAgPGZlYXR1cmUgdXJsPSJmZWF0dXJlcy9vcmcuZWNsaXBzZS5tb2Rpc2NvLmVjbGlwc2UuZmVhdHVyZV8xLjAuMC5xdWFsaWZpZXIuamFyIiBpZD0ib3JnLmVjbGlwc2UubW9kaXNjby5lY2xpcHNlLmZlYXR1cmUiIHZlcnNpb249IjEuMC4wLnF1YWxpZmllciI+DQorICAgICAgPGNhdGVnb3J5IG5hbWU9Im9yZy5lY2xpcHNlLm1vZGlzY28udXBkYXRlc2l0ZS50ZWNobm9sb2dpZXMiLz4NCisgICA8L2ZlYXR1cmU+DQogICAgPGNhdGVnb3J5LWRlZiBuYW1lPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLnVwZGF0ZXNpdGUuaW5mcmFzdHJ1Y3R1cmUiIGxhYmVsPSJJbmZyYXN0cnVjdXRyZSIvPg0KICAgIDxjYXRlZ29yeS1kZWYgbmFtZT0ib3JnLmVjbGlwc2UubW9kaXNjby51cGRhdGVzaXRlLnRlY2hub2xvZ2llcyIgbGFiZWw9IlRlY2hub2xvZ2llcyIvPg0KICAgIDxjYXRlZ29yeS1kZWYgbmFtZT0ib3JnLmVjbGlwc2UubW9kaXNjby51cGRhdGVzaXRlLmNkbyIgbGFiZWw9IkNETyBBZGFwdGVycyIvPg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28udXRpbHMuY2hhcnQuYmlydC5jb3JlLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5wcmVmcyBiL29yZy5lY2xpcHNlLm1vZGlzY28udXRpbHMuY2hhcnQuYmlydC5jb3JlLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5wcmVmcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNTgzOTAyCi0tLSAvZGV2L251bGwKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby51dGlscy5jaGFydC5iaXJ0LmNvcmUvLnNldHRpbmdzL29yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLnByZWZzCkBAIC0wLDAgKzEsMyBAQAorZWNsaXBzZS5wcmVmZXJlbmNlcy52ZXJzaW9uPTENCitlbmNvZGluZy8vc3JjL29yZy9lY2xpcHNlL21vZGlzY28vdXRpbHMvY2hhcnQvYmlydC9jb3JlL2ludGVybmFsL2V4cG9ydGVkPVVURi04DQorZW5jb2RpbmcvPHByb2plY3Q+PVVURi04DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby51dGlscy5jaGFydC5iaXJ0LmNvcmUvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vdXRpbHMvY2hhcnQvYmlydC9jb3JlL2ludGVybmFsL2V4cG9ydGVkL0JpcnRHcmFwaEhlbHBlci5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby51dGlscy5jaGFydC5iaXJ0LmNvcmUvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vdXRpbHMvY2hhcnQvYmlydC9jb3JlL2ludGVybmFsL2V4cG9ydGVkL0JpcnRHcmFwaEhlbHBlci5qYXZhCmluZGV4IGI0OGQ2NmIuLmEzNzllNzkgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28udXRpbHMuY2hhcnQuYmlydC5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL3V0aWxzL2NoYXJ0L2JpcnQvY29yZS9pbnRlcm5hbC9leHBvcnRlZC9CaXJ0R3JhcGhIZWxwZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnV0aWxzLmNoYXJ0LmJpcnQuY29yZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby91dGlscy9jaGFydC9iaXJ0L2NvcmUvaW50ZXJuYWwvZXhwb3J0ZWQvQmlydEdyYXBoSGVscGVyLmphdmEKQEAgLTEsMTEgKzEsMTMgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQotICogQ29weXJpZ2h0IChjKSAyMDEyIElOUklBLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZQ0KKyAqIENvcHlyaWdodCAoYykgMjAxMiwgMjAxNSBJTlJJQSwgYW5kIE1pYS1Tb2Z0d2FyZS4NCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZQ0KICAqIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZQ0KICAqIFB1YmxpYyBMaWNlbnNlIHYxLjAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCiAgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KLSAqIA0KLSAqIENvbnRyaWJ1dG9yczogR3VpbGxhdW1lIERvdXggLSBJTlJJQSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KLSAqIA0KKyAqDQorICogQ29udHJpYnV0b3JzOg0KKyAqICAgICAgR3VpbGxhdW1lIERvdXggKElOUklBKSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KKyAqICAgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ4ODk1MiAtIFtCZW5jaG1hcmtdIFRoZSB4IGF4aXMgaXNuJ3QgbGluZWFyDQogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCiBwYWNrYWdlIG9yZy5lY2xpcHNlLm1vZGlzY28udXRpbHMuY2hhcnQuYmlydC5jb3JlLmludGVybmFsLmV4cG9ydGVkOw0KIA0KQEAgLTM0LDYgKzM2LDcgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS5iaXJ0LmNoYXJ0Lm1vZGVsLmF0dHJpYnV0ZS5pbXBsLkxpbmVBdHRyaWJ1dGVzSW1wbDsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuYmlydC5jaGFydC5tb2RlbC5hdHRyaWJ1dGUuaW1wbC5OdW1iZXJGb3JtYXRTcGVjaWZpZXJJbXBsOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5iaXJ0LmNoYXJ0Lm1vZGVsLmNvbXBvbmVudC5BeGlzOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5iaXJ0LmNoYXJ0Lm1vZGVsLmNvbXBvbmVudC5TY2FsZTsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuYmlydC5jaGFydC5tb2RlbC5jb21wb25lbnQuU2VyaWVzOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5iaXJ0LmNoYXJ0Lm1vZGVsLmNvbXBvbmVudC5pbXBsLlNlcmllc0ltcGw7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmJpcnQuY2hhcnQubW9kZWwuZGF0YS5OdW1iZXJEYXRhU2V0Ow0KQEAgLTEwOCwzOCArMTExLDM4IEBACiAJICogQHBhcmFtIGZpbGVOYW1lKyIucG5nIiBuYW1lIG9mIHRoZSBwbmcgZmlsZSAod2l0aG91dCBleHRlbnNpb24pDQogCSAqIEB0aHJvd3MgQ2hhcnRFeGNlcHRpb24sIEV4Y2VwdGlvbg0KIAkgKi8NCi0JcHVibGljIHZvaWQgY3JlYXRlQmlydEdyYXBoKGZpbmFsIENoYXJ0IGJpcnRDaGFydCwNCi0JCQlmaW5hbCBGaWxlIHRhcmdldEZvbGRlciwgZmluYWwgU3RyaW5nIGZpbGVOYW1lKSB0aHJvd3MgRXhjZXB0aW9uIHsNCi0JCUNoYXJ0V2l0aEF4ZXMgY2hhcnQgPSBDaGFydFdpdGhBeGVzSW1wbC5jcmVhdGUoKTsNCi0JCWlmIChiaXJ0Q2hhcnQuZ2V0QXhlcygpLnNpemUoKSA9PSAyKSB7DQotCQkJY2hhcnQuc2V0RGltZW5zaW9uKENoYXJ0RGltZW5zaW9uLlRXT19ESU1FTlNJT05BTF9MSVRFUkFMKTsNCi0JCX0gZWxzZSB7DQotCQkJdGhyb3cgbmV3IEdyYXBoSGVscGVyRXhjZXB0aW9uKCJ0aGUgY2hhcnQgc2hvdWxkIGhhdmUgb25seSAyIGRpbWVuc2lvbnMiKTsNCisJcHVibGljIHZvaWQgY3JlYXRlQmlydEdyYXBoKGZpbmFsIENoYXJ0IGJpcnRDaGFydCwgZmluYWwgRmlsZSB0YXJnZXRGb2xkZXIsDQorCQkJZmluYWwgU3RyaW5nIGZpbGVOYW1lKSB0aHJvd3MgRXhjZXB0aW9uIHsNCisJCWZpbmFsIENoYXJ0V2l0aEF4ZXMgY2hhcnQgPSBDaGFydFdpdGhBeGVzSW1wbC5jcmVhdGUoKTsNCisJCWlmIChiaXJ0Q2hhcnQuZ2V0QXhlcygpLnNpemUoKSAhPSAyKSB7DQorCQkJdGhyb3cgbmV3IEdyYXBoSGVscGVyRXhjZXB0aW9uKCJUaGUgY2hhcnQgc2hvdWxkIGhhdmUgb25seSB0d28gZGltZW5zaW9ucy4iKTsgLy8kTk9OLU5MUy0xJA0KIAkJfQ0KKwkJY2hhcnQuc2V0RGltZW5zaW9uKENoYXJ0RGltZW5zaW9uLlRXT19ESU1FTlNJT05BTF9MSVRFUkFMKTsNCiAJCWNoYXJ0LnNldFVuaXRTcGFjaW5nKEJpcnRHcmFwaEhlbHBlci5VTklUX1NQQUNJTkcpOw0KIAkJY2hhcnQuZ2V0UGxvdCgpLnNldEJhY2tncm91bmQoQ29sb3JEZWZpbml0aW9uSW1wbC5XSElURSgpKTsNCiAJCWNoYXJ0LmdldFBsb3QoKS5nZXRDbGllbnRBcmVhKCkuc2V0QmFja2dyb3VuZChDb2xvckRlZmluaXRpb25JbXBsLldISVRFKCkpOw0KIAkJY2hhcnQuZ2V0TGVnZW5kKCkuc2V0SXRlbVR5cGUoTGVnZW5kSXRlbVR5cGUuU0VSSUVTX0xJVEVSQUwpOw0KIAkJY2hhcnQuZ2V0TGVnZW5kKCkuc2V0VmlzaWJsZSh0cnVlKTsNCiAJCWNoYXJ0LmdldExlZ2VuZCgpLnNldEFuY2hvcihBbmNob3IuTk9SVEhfRUFTVF9MSVRFUkFMKTsNCisJCWNoYXJ0LmdldFRpdGxlKCkuZ2V0TGFiZWwoKS5nZXRDYXB0aW9uKCkuc2V0VmFsdWUoYmlydENoYXJ0LmdldFRpdGxlKCkpOw0KIA0KLQkJY2hhcnQuZ2V0VGl0bGUoKS5nZXRMYWJlbCgpLmdldENhcHRpb24oKQ0KLQkJLnNldFZhbHVlKGJpcnRDaGFydC5nZXRUaXRsZSgpKTsNCi0NCi0JCWZpbmFsIEF4ZSBhYnMgPSBiaXJ0Q2hhcnQuZ2V0QXhlcygpLmdldCgwKTsNCiAJCWZpbmFsIEF4ZSBvcmQgPSBiaXJ0Q2hhcnQuZ2V0QXhlcygpLmdldCgxKTsNCiANCiAJCWZpbmFsIEF4aXMgeEF4aXMgPSBjaGFydC5nZXRQcmltYXJ5QmFzZUF4ZXMoKVswXTsNCiAJCXhBeGlzLnNldFR5cGUoQXhpc1R5cGUuTElORUFSX0xJVEVSQUwpOw0KIAkJeEF4aXMuc2V0Rm9ybWF0U3BlY2lmaWVyKE51bWJlckZvcm1hdFNwZWNpZmllckltcGwuY3JlYXRlKCkpOw0KLQ0KLQkJeEF4aXMuZ2V0VGl0bGUoKS5nZXRDYXB0aW9uKCkuc2V0VmFsdWUoYWJzLmdldExlZ2VuZCgpICsgIiAoIiArIGFicy5nZXRVbml0KCkgKyAiKSIpOyAvLyROT04tTkxTLTEkDQorCQlmaW5hbCBBeGUgYWJzID0gYmlydENoYXJ0LmdldEF4ZXMoKS5nZXQoMCk7DQorCQlmaW5hbCBTdHJpbmcgeENhcHRpb24gPSBTdHJpbmcuZm9ybWF0KCIlcyAoJXMpIiwgLy8kTk9OLU5MUy0xJA0KKwkJCQlhYnMuZ2V0TGVnZW5kKCksIGFicy5nZXRVbml0KCkpOw0KKwkJeEF4aXMuZ2V0VGl0bGUoKS5nZXRDYXB0aW9uKCkuc2V0VmFsdWUoeENhcHRpb24pOw0KIAkJeEF4aXMuZ2V0VGl0bGUoKS5zZXRWaXNpYmxlKHRydWUpOw0KLQ0KKwkJeEF4aXMuc2V0Q2F0ZWdvcnlBeGlzKGZhbHNlKTsNCisJCWZpbmFsIFNjYWxlIHNjYWxlID0geEF4aXMuZ2V0U2NhbGUoKTsNCisJCXhBeGlzLnNldFNjYWxlKHNjYWxlKTsNCiAJCWZpbmFsIExpc3Q8UG9pbnQ+IGRhdGFQb2ludHMgPSBuZXcgQXJyYXlMaXN0PFBvaW50PigpOw0KIA0KIAkJZmluYWwgU2VyaWVzRGVmaW5pdGlvbiB5U2VyaWVzRGVmaW5pdGlvbiA9IFNlcmllc0RlZmluaXRpb25JbXBsLmNyZWF0ZSgpOw0KLQkJDQorDQogCQlmaW5hbCBDb21wYXJhdG9yPFBvaW50PiBjb21wYXJhdG9yID0gbmV3IENvbXBhcmF0b3I8UG9pbnQ+KCkgew0KIAkJCXB1YmxpYyBpbnQgY29tcGFyZShmaW5hbCBQb2ludCBwb2ludDEsIGZpbmFsIFBvaW50IHBvaW50Mikgew0KIAkJCQlpZiAocG9pbnQxLnggPT0gcG9pbnQyLngpIHsNCkBAIC0xNjcsNzYgKzE3MCw3MCBAQAogCQkJCWZpbmFsIFBvaW50IGJpcnRQb2ludCA9IG5ldyBQb2ludCh4Q29vcmQsIHlDb29yZCk7DQogCQkJCWRhdGFQb2ludHMuYWRkKGJpcnRQb2ludCk7DQogCQkJfQ0KLQ0KIAkJCS8vIHNvcnQgb24gWCBheGlzDQotCQkJDQogCQkJQ29sbGVjdGlvbnMuc29ydChkYXRhUG9pbnRzLCBjb21wYXJhdG9yKTsNCi0NCi0NCiAJCQlmaW5hbCBDb2xvckRlZmluaXRpb24gc2VyaWVDb2xvciA9IGdldENvbG9yRm9yU2VyaWUoYmlydENoYXJ0LmdldFNlcmllcygpLmluZGV4T2Yoc2VyaWUpKTsNCiANCi0NCi0JCQlmaW5hbCBMaW5lU2VyaWVzIGxpbmVTZXJpZXMgPSAoTGluZVNlcmllcykgTGluZVNlcmllc0ltcGwuY3JlYXRlKCk7DQotCQkJbGluZVNlcmllcy5zZXRTZXJpZXNJZGVudGlmaWVyKHNlcmllLmdldE5hbWUoKSk7DQotCQkJbGluZVNlcmllcy5zZXRDdXJ2ZShmYWxzZSk7DQotDQotCQkJZmluYWwgQXJyYXlMaXN0PERvdWJsZT4geUF4aXNWYWx1ZXMgPSBuZXcgQXJyYXlMaXN0PERvdWJsZT4oKTsNCi0JCQlmb3IgKFBvaW50IGRhdGFQb2ludCA6IGRhdGFQb2ludHMpIHsNCi0JCQkJeUF4aXNWYWx1ZXMuYWRkKGRhdGFQb2ludC55KTsNCi0JCQl9DQotCQkJZmluYWwgTnVtYmVyRGF0YVNldCBkYXRhU2V0ID0gTnVtYmVyRGF0YVNldEltcGwuY3JlYXRlKHlBeGlzVmFsdWVzKTsNCi0JCQlsaW5lU2VyaWVzLnNldERhdGFTZXQoZGF0YVNldCk7DQotCQkJbGluZVNlcmllcy5nZXRNYXJrZXJzKCkuY2xlYXIoKTsvL1JlbW92ZSB0aGlzIHRvIHNob3cgbWFya2VycyBmb3IgZWFjaCBwb2ludHMNCi0NCi0JCQlmaW5hbCBMaW5lQXR0cmlidXRlcyBsaW5lQXR0ciA9IExpbmVBdHRyaWJ1dGVzSW1wbC5jcmVhdGUoQ29sb3JEZWZpbml0aW9uSW1wbC5CTEFDSygpLA0KLQkJCQkJTGluZVN0eWxlLlNPTElEX0xJVEVSQUwsIDEpOw0KLQkJCWxpbmVBdHRyLnNldFZpc2libGUodHJ1ZSk7DQotCQkJbGluZUF0dHIuc2V0Q29sb3Ioc2VyaWVDb2xvcik7DQotCQkJbGluZVNlcmllcy5zZXRMaW5lQXR0cmlidXRlcyhsaW5lQXR0cik7DQotDQotCQkJZmluYWwgUG9pbnRbXSBsaW5lYXJSZWdyZXNzaW9uID0gY29tcHV0ZUxpbmVhclJlZ3Jlc3Npb24oZGF0YVBvaW50cyk7DQotCQkJZmluYWwgTGluZVNlcmllcyBsaW5lYXJSZWdTZXJpZXMgPSAoTGluZVNlcmllcykgTGluZVNlcmllc0ltcGwuY3JlYXRlKCk7DQotCQkJZmluYWwgQXJyYXlMaXN0PERvdWJsZT4gcmVncmVzc2lvbllBeGlzVmFsdWVzID0gbmV3IEFycmF5TGlzdDxEb3VibGU+KCk7DQotCQkJZm9yIChQb2ludCBwb2ludCA6IGxpbmVhclJlZ3Jlc3Npb24pIHsNCi0JCQkJCXJlZ3Jlc3Npb25ZQXhpc1ZhbHVlcy5hZGQocG9pbnQueSk7DQotCQkJfQ0KLQkJCWZpbmFsIE51bWJlckRhdGFTZXQgbGluZWFyUmVnRGF0YVNldCA9IE51bWJlckRhdGFTZXRJbXBsLmNyZWF0ZShyZWdyZXNzaW9uWUF4aXNWYWx1ZXMpOw0KLQkJCWxpbmVhclJlZ1Nlcmllcy5zZXREYXRhU2V0KGxpbmVhclJlZ0RhdGFTZXQpOw0KLQkJCWxpbmVhclJlZ1Nlcmllcy5nZXRNYXJrZXJzKCkuY2xlYXIoKTsNCi0NCi0JCQkvLyBsaW5lIGF0dHJpYnV0ZXMNCi0JCQlmaW5hbCBMaW5lQXR0cmlidXRlcyBsaW5lQXR0cjIgPSBMaW5lQXR0cmlidXRlc0ltcGwuY3JlYXRlKENvbG9yRGVmaW5pdGlvbkltcGwuQkxBQ0soKSwNCi0JCQkJCUxpbmVTdHlsZS5EQVNIRURfTElURVJBTCwgMSk7DQotCQkJbGluZUF0dHIyLnNldFZpc2libGUodHJ1ZSk7DQotCQkJbGluZUF0dHIyLnNldENvbG9yKHNlcmllQ29sb3IpOw0KLQkJCWxpbmVhclJlZ1Nlcmllcy5zZXRMaW5lQXR0cmlidXRlcyhsaW5lQXR0cjIpOw0KLQkNCisJCQlmaW5hbCBMaW5lU2VyaWVzIGxpbmVTZXJpZXMgPSBjcmVhdGVMaW5lU2VyaWVzKA0KKwkJCQkJZGF0YVBvaW50cy50b0FycmF5KG5ldyBQb2ludFswXSksIHNlcmllQ29sb3IsIA0KKwkJCQkJTGluZVN0eWxlLlNPTElEX0xJVEVSQUwsIHNlcmllLmdldE5hbWUoKSk7DQogCQkJeVNlcmllc0RlZmluaXRpb24uZ2V0U2VyaWVzKCkuYWRkKGxpbmVTZXJpZXMpOw0KKwkJCWZpbmFsIFBvaW50W10gbGluZWFyUmVncmVzc2lvbiA9IGNvbXB1dGVMaW5lYXJSZWdyZXNzaW9uKGRhdGFQb2ludHMpOw0KKwkJCWZpbmFsIExpbmVTZXJpZXMgbGluZWFyUmVnU2VyaWVzID0gY3JlYXRlTGluZVNlcmllcygNCisJCQkJCWxpbmVhclJlZ3Jlc3Npb24sIHNlcmllQ29sb3IsIExpbmVTdHlsZS5EQVNIRURfTElURVJBTCwgIiIpOyAvLyROT04tTkxTLTEkDQogCQkJeVNlcmllc0RlZmluaXRpb24uZ2V0U2VyaWVzKCkuYWRkKGxpbmVhclJlZ1Nlcmllcyk7DQotCQkJDQogCQl9DQotCQkNCisJCS8vQ3JlYXRpbmcgeCBheGlzIGxhYmVscw0KIAkJZmluYWwgQXJyYXlMaXN0PERvdWJsZT4geEF4aXNWYWx1ZXMgPSBuZXcgQXJyYXlMaXN0PERvdWJsZT4oKTsNCiAJCWZvciAoUG9pbnQgZGF0YVBvaW50IDogZGF0YVBvaW50cykgew0KLQkJCQl4QXhpc1ZhbHVlcy5hZGQoZGF0YVBvaW50LngpOw0KKwkJCQl4QXhpc1ZhbHVlcy5hZGQoRG91YmxlLnZhbHVlT2YoZGF0YVBvaW50LngpKTsNCiAJCX0NCiAJCWZpbmFsIE51bWJlckRhdGFTZXQgeEF4aXNEYXRhU2V0ID0gTnVtYmVyRGF0YVNldEltcGwuY3JlYXRlKHhBeGlzVmFsdWVzKTsNCi0JCQ0KIAkJZmluYWwgU2VyaWVzIHhBeGlzU2VyaWVzID0gU2VyaWVzSW1wbC5jcmVhdGUoKTsNCiAJCXhBeGlzU2VyaWVzLnNldERhdGFTZXQoeEF4aXNEYXRhU2V0KTsNCiAJCWZpbmFsIFNlcmllc0RlZmluaXRpb24geFNlcmllc0RlZmluaXRpb24gPSBTZXJpZXNEZWZpbml0aW9uSW1wbC5jcmVhdGUoKTsNCiAJCXhTZXJpZXNEZWZpbml0aW9uLmdldFNlcmllcygpLmFkZCh4QXhpc1Nlcmllcyk7DQogCQl4QXhpcy5nZXRTZXJpZXNEZWZpbml0aW9ucygpLmFkZCh4U2VyaWVzRGVmaW5pdGlvbik7DQogDQorCQljcmVhdGVZQXhpcyhjaGFydCwgb3JkLCB4QXhpcywgeVNlcmllc0RlZmluaXRpb24pOw0KKwkJY2hhcnRSZW5kZXJpbmcodGFyZ2V0Rm9sZGVyLCBmaWxlTmFtZSwgY2hhcnQpOw0KKwl9DQorCQ0KKwlwcml2YXRlIHN0YXRpYyBMaW5lU2VyaWVzIGNyZWF0ZUxpbmVTZXJpZXMoZmluYWwgUG9pbnRbXSBkYXRhUG9pbnRzLA0KKwkJCWZpbmFsIENvbG9yRGVmaW5pdGlvbiBzZXJpZUNvbG9yLCBmaW5hbCBMaW5lU3R5bGUgbGluZVN0eWxlLCBmaW5hbCBTdHJpbmcgbmFtZSkgew0KKwkJZmluYWwgTGluZVNlcmllcyBsaW5lU2VyaWVzID0gKExpbmVTZXJpZXMpIExpbmVTZXJpZXNJbXBsLmNyZWF0ZSgpOw0KKwkJbGluZVNlcmllcy5zZXRTZXJpZXNJZGVudGlmaWVyKG5hbWUpOw0KKwkJbGluZVNlcmllcy5zZXRDdXJ2ZShmYWxzZSk7DQorCQlmaW5hbCBBcnJheUxpc3Q8RG91YmxlPiB5QXhpc1ZhbHVlcyA9IG5ldyBBcnJheUxpc3Q8RG91YmxlPigpOw0KKwkJZm9yIChQb2ludCBwb2ludCA6IGRhdGFQb2ludHMpIHsNCisJCQl5QXhpc1ZhbHVlcy5hZGQoRG91YmxlLnZhbHVlT2YocG9pbnQueSkpOw0KKwkJfQ0KKwkJZmluYWwgTnVtYmVyRGF0YVNldCBkYXRhU2V0ID0gTnVtYmVyRGF0YVNldEltcGwuY3JlYXRlKHlBeGlzVmFsdWVzKTsNCisJCWxpbmVTZXJpZXMuc2V0RGF0YVNldChkYXRhU2V0KTsNCisJCWxpbmVTZXJpZXMuZ2V0TWFya2VycygpLmNsZWFyKCk7IC8vIFJlbW92ZSB0aGlzIHRvIHNob3cgbWFya2VycyBmb3IgZWFjaCAgcG9pbnRzDQorCQkvLyBsaW5lIGF0dHJpYnV0ZXMNCisJCWZpbmFsIExpbmVBdHRyaWJ1dGVzIGxpbmVBdHRyID0gTGluZUF0dHJpYnV0ZXNJbXBsDQorCQkJCS5jcmVhdGUoQ29sb3JEZWZpbml0aW9uSW1wbC5CTEFDSygpLCBsaW5lU3R5bGUsIDEpOw0KKwkJbGluZUF0dHIuc2V0VmlzaWJsZSh0cnVlKTsNCisJCWxpbmVBdHRyLnNldENvbG9yKHNlcmllQ29sb3IpOw0KKwkJbGluZVNlcmllcy5zZXRMaW5lQXR0cmlidXRlcyhsaW5lQXR0cik7DQorCQlyZXR1cm4gbGluZVNlcmllczsNCisJfQ0KKw0KKwlwcml2YXRlIHN0YXRpYyB2b2lkIGNyZWF0ZVlBeGlzKGZpbmFsIENoYXJ0V2l0aEF4ZXMgY2hhcnQsIGZpbmFsIEF4ZSBvcmQsDQorCQkJZmluYWwgQXhpcyB4QXhpcywgZmluYWwgU2VyaWVzRGVmaW5pdGlvbiB5U2VyaWVzRGVmaW5pdGlvbikgew0KIAkJZmluYWwgQXhpcyB5QXhpcyA9IGNoYXJ0LmdldFByaW1hcnlPcnRob2dvbmFsQXhpcyh4QXhpcyk7DQogCQl5QXhpcy5zZXRUeXBlKEF4aXNUeXBlLkxJTkVBUl9MSVRFUkFMKTsNCiAJCXlBeGlzLnNldEZvcm1hdFNwZWNpZmllcihOdW1iZXJGb3JtYXRTcGVjaWZpZXJJbXBsLmNyZWF0ZSgpKTsNCiAJCXlBeGlzLmdldFRpdGxlKCkuc2V0VmlzaWJsZSh0cnVlKTsNCi0NCi0JCXlBeGlzLmdldFRpdGxlKCkuZ2V0Q2FwdGlvbigpLnNldFZhbHVlKG9yZC5nZXRMZWdlbmQoKSArICIgKCIgKyBvcmQuZ2V0VW5pdCgpICsgIikiKTsgLy8kTk9OLU5MUy0xJA0KKwkJZmluYWwgU3RyaW5nIHlDYXB0aW9uID0gU3RyaW5nLmZvcm1hdCgiJXMgKCVzKSIsIC8vJE5PTi1OTFMtMSQNCisJCQkJb3JkLmdldExlZ2VuZCgpLCBvcmQuZ2V0VW5pdCgpKTsNCisJCXlBeGlzLmdldFRpdGxlKCkuZ2V0Q2FwdGlvbigpLnNldFZhbHVlKHlDYXB0aW9uKTsNCiAJCXlBeGlzLmdldFNlcmllc0RlZmluaXRpb25zKCkuYWRkKHlTZXJpZXNEZWZpbml0aW9uKTsNCi0JDQotCQkvL0NoYXJ0IHJlbmRlcmluZw0KKwl9DQorDQorCXByaXZhdGUgc3RhdGljIHZvaWQgY2hhcnRSZW5kZXJpbmcoZmluYWwgRmlsZSB0YXJnZXRGb2xkZXIsIGZpbmFsIFN0cmluZyBmaWxlTmFtZSwNCisJCQlmaW5hbCBDaGFydFdpdGhBeGVzIGNoYXJ0KSB0aHJvd3MgQ2hhcnRFeGNlcHRpb24gew0KIAkJZmluYWwgUGx1Z2luU2V0dGluZ3MgcFNldHRpbmdzID0gUGx1Z2luU2V0dGluZ3MuaW5zdGFuY2UoKTsNCiAJCWZpbmFsIElEZXZpY2VSZW5kZXJlciByZW5kZXIgPSBwU2V0dGluZ3MuZ2V0RGV2aWNlKCJkdi5QTkciKTsgLy8kTk9OLU5MUy0xJA0KIAkJcmVuZGVyLnNldFByb3BlcnR5KElEZXZpY2VSZW5kZXJlci5GSUxFX0lERU5USUZJRVIsIG5ldyBGaWxlKHRhcmdldEZvbGRlciwNCkBAIC0yNzEsNyArMjY4LDcgQEAKIAkJCXJldHVybiBuZXcgUG9pbnRbMF07DQogCQl9DQogCQlpZiAoKGludCkgc2l6ZSA9PSAxKSB7DQotCQkJUG9pbnQgcG9pbnQgPSBkYXRhUG9pbnRzLmdldCgwKTsNCisJCQlmaW5hbCBQb2ludCBwb2ludCA9IGRhdGFQb2ludHMuZ2V0KDApOw0KIAkJCXJldHVybiBuZXcgUG9pbnRbXSB7IG5ldyBQb2ludChwb2ludC54LCBwb2ludC55KSB9Ow0KIAkJfQ0KIAkJZG91YmxlIHN1bVhZID0gMC4wOw0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28udXRpbHMuY2hhcnQubWV0YW1vZGVsL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby51dGlscy5jaGFydC5tZXRhbW9kZWwvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggMjcxNGEwMC4uMjQyNzRjZiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby51dGlscy5jaGFydC5tZXRhbW9kZWwvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby51dGlscy5jaGFydC5tZXRhbW9kZWwvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTExLDQgKzExLDUgQEAKICBvcmcuZWNsaXBzZS5lbWYuZWNvcmU7dmlzaWJpbGl0eTo9cmVleHBvcnQKIEJ1bmRsZS1BY3RpdmF0aW9uUG9saWN5OiBsYXp5CiBFeHBvcnQtUGFja2FnZTogb3JnLmVjbGlwc2UubW9kaXNjby51dGlscy5jaGFydC5tZXRhbW9kZWwuaW50ZXJuYWwuY2hhcnQsCisgb3JnLmVjbGlwc2UubW9kaXNjby51dGlscy5jaGFydC5tZXRhbW9kZWwuaW50ZXJuYWwuY2hhcnQuaW1wbDt4LWludGVybmFsOj10cnVlLAogIG9yZy5lY2xpcHNlLm1vZGlzY28udXRpbHMuY2hhcnQubWV0YW1vZGVsLmludGVybmFsLmNoYXJ0LnV0aWw7eC1mcmllbmRzOj0ib3JnLmVjbGlwc2UubW9kaXNjby51dGlscy5jaGFydC5lZGl0IgpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby51dGlscy5jb3JlL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby51dGlscy5jb3JlL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IGFmMDM2ZGUuLjIwMzdjN2UgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28udXRpbHMuY29yZS9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnV0aWxzLmNvcmUvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTQsNyArNCw4IEBACiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLnV0aWxzLmNvcmUKIEJ1bmRsZS1WZXJzaW9uOiAxLjAuMC5xdWFsaWZpZXIKIEJ1bmRsZS1BY3RpdmF0b3I6IG9yZy5lY2xpcHNlLm1vZGlzY28udXRpbHMuY29yZS5pbnRlcm5hbC5BY3RpdmF0b3IKLVJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUKK1JlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUsCisgb3JnLmVjbGlwc2UuZW1mLmZhY2V0LnV0aWwuY29yZTtidW5kbGUtdmVyc2lvbj0iMS4wLjAiCiBCdW5kbGUtQWN0aXZhdGlvblBvbGljeTogbGF6eQogQnVuZGxlLVJlcXVpcmVkRXhlY3V0aW9uRW52aXJvbm1lbnQ6IEoyU0UtMS41CiBFeHBvcnQtUGFja2FnZTogb3JnLmVjbGlwc2UubW9kaXNjby51dGlscy5jb3JlLmludGVybmFsLmV4cG9ydGVkCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLnV0aWxzLmNvcmUvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vdXRpbHMvY29yZS9pbnRlcm5hbC9BY3RpdmF0b3IuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28udXRpbHMuY29yZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby91dGlscy9jb3JlL2ludGVybmFsL0FjdGl2YXRvci5qYXZhCmluZGV4IDAyM2QxYTMuLmY0Yzg2YjUgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28udXRpbHMuY29yZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby91dGlscy9jb3JlL2ludGVybmFsL0FjdGl2YXRvci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28udXRpbHMuY29yZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby91dGlscy9jb3JlL2ludGVybmFsL0FjdGl2YXRvci5qYXZhCkBAIC0xLDQ0ICsxLDUxIEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLSAqIENvcHlyaWdodCAoYykgMjAxMiBJTlJJQS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUNCi0gKiBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UNCi0gKiBQdWJsaWMgTGljZW5zZSB2MS4wIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQorICogQ29weXJpZ2h0IChjKSAyMDEyLCAyMDE1IElOUklBIGFuZCBNaWEtU29mdHdhcmUuDQorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZSANCisgKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAgd2hpY2ggDQorICogYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQgDQogICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCiAgKiANCi0gKiBDb250cmlidXRvcnM6IEd1aWxsYXVtZSBEb3V4IC0gSU5SSUEgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCi0gKiANCisgKiBDb250cmlidXRvcnM6DQorICogICAgR3VpbGxhdW1lIERvdXggLSBJTlJJQSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KKyAqICAgIEdy6WdvaXJlIER1cOkgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgyNzE1IC0gTnVtYmVyRm9ybWF0RXhjZXB0aW9uIGluIFN5c3RlbUluZm8uY29tcHV0ZUluZm8gKDE4MCkNCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KIHBhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby51dGlscy5jb3JlLmludGVybmFsOw0KIA0KLWltcG9ydCBvcmcub3NnaS5mcmFtZXdvcmsuQnVuZGxlQWN0aXZhdG9yOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUuUGx1Z2luOw0KIGltcG9ydCBvcmcub3NnaS5mcmFtZXdvcmsuQnVuZGxlQ29udGV4dDsNCiANCi0vKioNCi0gKiANCi0gKiBAYXV0aG9yIEd1aWxsYXVtZSBEb3V4DQotICoNCi0gKi8NCi1wdWJsaWMgY2xhc3MgQWN0aXZhdG9yIGltcGxlbWVudHMgQnVuZGxlQWN0aXZhdG9yIHsNCitAU3VwcHJlc3NXYXJuaW5ncygiUE1ELlVzZVNpbmdsZXRvbiIpDQorLy8gQFN1cHByZXNzV2FybmluZ3MoIlBNRC5Vc2VTaW5nbGV0b24iKSBXZSBjYW5ub3QgY29uZm9ybXMgdG8gdGhpcyBydWxlIGJlY2F1c2UNCisvLyB0aGlzIGNsYXNzIGlzIGFuIEVjbGlwc2UgcGx1Zy1pbiBhY3RpdmF0b3Igd2hpY2ggd2lsbCBiZSBpbnN0YW50aWF0ZWQgYnkgdGhlDQorLy8gRWNsaXBzZSBmcmFtZXdvcmsuDQorcHVibGljIGNsYXNzIEFjdGl2YXRvciBleHRlbmRzIFBsdWdpbiB7DQogDQotCXByaXZhdGUgc3RhdGljIEJ1bmRsZUNvbnRleHQgY29udGV4dDsNCisJcHJpdmF0ZSBzdGF0aWMgQWN0aXZhdG9yIHBsdWdpbjsNCiANCi0Jc3RhdGljIEJ1bmRsZUNvbnRleHQgZ2V0Q29udGV4dCgpIHsNCi0JCXJldHVybiBjb250ZXh0Ow0KKwlAT3ZlcnJpZGUNCisJQFN1cHByZXNzV2FybmluZ3MoIlBNRC5TaWduYXR1cmVEZWNsYXJlVGhyb3dzRXhjZXB0aW9uIikNCisJLy8gQFN1cHByZXNzV2FybmluZ3MoIlBNRC5TaWduYXR1cmVEZWNsYXJlVGhyb3dzRXhjZXB0aW9uIikgV2UgaGF2ZSB0byB1c2UNCisJLy8gdGhpcyBzaWduYXR1cmUgYmVjYXVzZSB0aGlzIGlzIGFuIG92ZXJyaWRlIG9mIGFuIEVjbGlwc2UgZnJhbWV3b3JrJ3MNCisJLy8gbWV0aG9kLg0KKwlwdWJsaWMgdm9pZCBzdGFydChmaW5hbCBCdW5kbGVDb250ZXh0IGJ1bmRsZUNvbnRleHQpIHRocm93cyBFeGNlcHRpb24gew0KKwkJc3VwZXIuc3RhcnQoYnVuZGxlQ29udGV4dCk7DQorCQlBY3RpdmF0b3IucGx1Z2luID0gdGhpczsNCiAJfQ0KIA0KLQkvKg0KLQkgKiAobm9uLUphdmFkb2MpDQotCSAqIEBzZWUgb3JnLm9zZ2kuZnJhbWV3b3JrLkJ1bmRsZUFjdGl2YXRvciNzdGFydChvcmcub3NnaS5mcmFtZXdvcmsuQnVuZGxlQ29udGV4dCkNCi0JICovDQotCXB1YmxpYyB2b2lkIHN0YXJ0KEJ1bmRsZUNvbnRleHQgYnVuZGxlQ29udGV4dCkgdGhyb3dzIEV4Y2VwdGlvbiB7DQotCQlBY3RpdmF0b3IuY29udGV4dCA9IGJ1bmRsZUNvbnRleHQ7DQorCUBPdmVycmlkZQ0KKwlAU3VwcHJlc3NXYXJuaW5ncygiUE1ELlNpZ25hdHVyZURlY2xhcmVUaHJvd3NFeGNlcHRpb24iKQ0KKwkvLyBAU3VwcHJlc3NXYXJuaW5ncygiUE1ELlNpZ25hdHVyZURlY2xhcmVUaHJvd3NFeGNlcHRpb24iKSBXZSBoYXZlIHRvIHVzZQ0KKwkvLyB0aGlzIHNpZ25hdHVyZSBiZWNhdXNlIHRoaXMgaXMgYW4gb3ZlcnJpZGUgb2YgYW4gRWNsaXBzZSBmcmFtZXdvcmsncw0KKwkvLyBtZXRob2QuDQorCXB1YmxpYyB2b2lkIHN0b3AoZmluYWwgQnVuZGxlQ29udGV4dCBidW5kbGVDb250ZXh0KSB0aHJvd3MgRXhjZXB0aW9uIHsNCisJCS8vIE5PUE1EOiBQTUQgc2F5ICJBc3NpZ25pbmcgYW4gT2JqZWN0IHRvIG51bGwgaXMgYSBjb2RlIHNtZWxsLiINCisJCS8vIE5vIGNob2ljZSB0byByaWdodCBpdCBpbiBhbm90aGVyIHdheSA6IHRoaXMgaXMgYW4gRWNsaXBzZSBwYXR0ZXJuLg0KKwkJQWN0aXZhdG9yLnBsdWdpbiA9IG51bGw7IC8vIE5PUE1EIGJ5IGdkdXBlIG9uIDMwLzAzLzEyIDEwOjE5DQorCQlzdXBlci5zdG9wKGJ1bmRsZUNvbnRleHQpOw0KIAl9DQogDQotCS8qDQotCSAqIChub24tSmF2YWRvYykNCi0JICogQHNlZSBvcmcub3NnaS5mcmFtZXdvcmsuQnVuZGxlQWN0aXZhdG9yI3N0b3Aob3JnLm9zZ2kuZnJhbWV3b3JrLkJ1bmRsZUNvbnRleHQpDQotCSAqLw0KLQlwdWJsaWMgdm9pZCBzdG9wKEJ1bmRsZUNvbnRleHQgYnVuZGxlQ29udGV4dCkgdGhyb3dzIEV4Y2VwdGlvbiB7DQotCQlBY3RpdmF0b3IuY29udGV4dCA9IG51bGw7DQorCXB1YmxpYyBzdGF0aWMgUGx1Z2luIGdldERlZmF1bHQoKSB7DQorCQlyZXR1cm4gQWN0aXZhdG9yLnBsdWdpbjsNCiAJfQ0KIA0KIH0NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLnV0aWxzLmNvcmUvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vdXRpbHMvY29yZS9pbnRlcm5hbC9leHBvcnRlZC9TeXN0ZW1JbmZvLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnV0aWxzLmNvcmUvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vdXRpbHMvY29yZS9pbnRlcm5hbC9leHBvcnRlZC9TeXN0ZW1JbmZvLmphdmEKaW5kZXggMTAxYzZhMC4uMGJkNGYxNyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby51dGlscy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL3V0aWxzL2NvcmUvaW50ZXJuYWwvZXhwb3J0ZWQvU3lzdGVtSW5mby5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28udXRpbHMuY29yZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby91dGlscy9jb3JlL2ludGVybmFsL2V4cG9ydGVkL1N5c3RlbUluZm8uamF2YQpAQCAtMSw1ICsxLDUgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQotICogQ29weXJpZ2h0IChjKSAyMDExIE1pYS1Tb2Z0d2FyZS4NCisgKiBDb3B5cmlnaHQgKGMpIDIwMTEsIDIwMTUgTWlhLVNvZnR3YXJlLCBhbmQgSU5SSUEuDQogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KICAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQpAQCAtNyw3ICs3LDggQEAKICAqDQogICogQ29udHJpYnV0b3JzOg0KICAqICAgIE5pY29sYXMgQnJvcyAoTWlhLVNvZnR3YXJlKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KLSAqICAgIEd1aWxsYXVtZSBEb3V4IChJTlJJQSkgLSAgcmVmYWN0b3JpbmcgYW5kIG1vdmUgdG8gYSBzZXBhcmF0ZSBwbHVnLWluDQorICogICAgR3VpbGxhdW1lIERvdXggKElOUklBKSAtIHJlZmFjdG9yaW5nIGFuZCBtb3ZlIHRvIGEgc2VwYXJhdGUgcGx1Zy1pbg0KKyAqICAgIEdy6WdvaXJlIER1cOkgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgyNzE1IC0gTnVtYmVyRm9ybWF0RXhjZXB0aW9uIGluIFN5c3RlbUluZm8uY29tcHV0ZUluZm8gKDE4MCkNCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCiBwYWNrYWdlIG9yZy5lY2xpcHNlLm1vZGlzY28udXRpbHMuY29yZS5pbnRlcm5hbC5leHBvcnRlZDsNCiANCkBAIC0yNyw2ICsyOCw5IEBACiBpbXBvcnQgamF2YS51dGlsLnJlZ2V4Lk1hdGNoZXI7DQogaW1wb3J0IGphdmEudXRpbC5yZWdleC5QYXR0ZXJuOw0KIA0KK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZmFjZXQudXRpbC5jb3JlLkxvZ2dlcjsNCitpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby51dGlscy5jb3JlLmludGVybmFsLkFjdGl2YXRvcjsNCisNCiAvKioNCiAgKiBDbGFzcyBwcm92aWRpbmcgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHN5c3RlbSB0aGF0IGFyZSBub3QgcHJvdmlkZWQgaW50ZXJuYWxseSBieSBKQVZBDQogICoNCkBAIC0xNzcsNyArMTgxLDExIEBACiAJCQlMaXN0PFN0cmluZz4gaW5mb3MgPSBnZXRJbmZvcygiQ2FwYWNpdHkiLCByZXN1bHQpOyAvLyROT04tTkxTLTEkDQogCQkJbG9uZyBtZW0gPSAwOw0KIAkJCWZvciAoU3RyaW5nIGluZm8gOiBpbmZvcykgew0KLQkJCQltZW0gKz0gTG9uZy5wYXJzZUxvbmcoaW5mbyk7DQorCQkJCXRyeSB7DQorCQkJCQltZW0gKz0gTG9uZy5wYXJzZUxvbmcoaW5mbyk7DQorCQkJCX0gY2F0Y2ggKE51bWJlckZvcm1hdEV4Y2VwdGlvbiBlKSB7DQorCQkJCQlMb2dnZXIubG9nV2FybmluZyhlLCBBY3RpdmF0b3IuZ2V0RGVmYXVsdCgpKTsNCisJCQkJfQ0KIAkJCX0NCiAJCQl0aGlzLm1lbW9yeSA9ICIiICsgbWVtOyAvLyROT04tTkxTLTEkDQogCQl9IGVsc2Ugew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93L01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDRjMzQyMWEuLjdhYTgyNjAgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtNyw3ICs3LDggQEAKIEJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yCiBCdW5kbGUtUmVxdWlyZWRFeGVjdXRpb25FbnZpcm9ubWVudDogSjJTRS0xLjUKIEV4cG9ydC1QYWNrYWdlOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm1vZGlzY293b3JrZmxvdywKLSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm1vZGlzY293b3JrZmxvdy5pbXBsO3gtZnJpZW5kczo9Im9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cuY29yZSIKKyBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm1vZGlzY293b3JrZmxvdy5pbXBsO3gtZnJpZW5kczo9Im9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cuY29yZSIsCisgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5tb2Rpc2Nvd29ya2Zsb3cudXRpbDt4LWludGVybmFsOj10cnVlCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLAogIG9yZy5lY2xpcHNlLmVtZi5lY29yZTt2aXNpYmlsaXR5Oj1yZWV4cG9ydAogQnVuZGxlLUFjdGl2YXRpb25Qb2xpY3k6IGxhenkK