ZGlmZiAtLWdpdCBhL0VQUGx1cy5zbG4gYi9FUFBsdXMuc2xuCmluZGV4IDAyZmE4MjEuLmY0MTI4MGYgMTAwNjQ0Ci0tLSBhL0VQUGx1cy5zbG4KKysrIGIvRVBQbHVzLnNsbgpAQCAtMSw0ICsxLDQgQEAKLe+7vworCiBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyBTb2x1dGlvbiBGaWxlLCBGb3JtYXQgVmVyc2lvbiAxMi4wMAogIyBWaXN1YWwgU3R1ZGlvIDIwMTMKIFZpc3VhbFN0dWRpb1ZlcnNpb24gPSAxMi4wLjMwMTEwLjAKQEAgLTksMTggKzksMTIgQEAKIAkJTG9jYWxUZXN0UnVuLnRlc3RydW5jb25maWcgPSBMb2NhbFRlc3RSdW4udGVzdHJ1bmNvbmZpZwogCUVuZFByb2plY3RTZWN0aW9uCiBFbmRQcm9qZWN0Ci1Qcm9qZWN0KCJ7RkFFMDRFQzAtMzAxRi0xMUQzLUJGNEItMDBDMDRGNzlFRkJDfSIpID0gIkVQUGx1cyIsICJFUFBsdXNcRVBQbHVzLmNzcHJvaiIsICJ7N0IyODgwMjYtNTUwMi00QTM5LUJGNDEtNzdFMDg2RjNFNEEzfSIKLUVuZFByb2plY3QKLVByb2plY3QoIntGQUUwNEVDMC0zMDFGLTExRDMtQkY0Qi0wMEMwNEY3OUVGQkN9IikgPSAiRVBQbHVzU2FtcGxlcyIsICJTYW1wbGVBcHBcRVBQbHVzU2FtcGxlcy5jc3Byb2oiLCAiezA2QkYzQzY4LUU3RDQtNDU3OS05MEJFLUUzNkRBQ0U1NjRFRn0iCi1FbmRQcm9qZWN0Ci1Qcm9qZWN0KCJ7RkFFMDRFQzAtMzAxRi0xMUQzLUJGNEItMDBDMDRGNzlFRkJDfSIpID0gIkVQUGx1c1Rlc3QiLCAiRVBQbHVzVGVzdFxFUFBsdXNUZXN0LmNzcHJvaiIsICJ7RTdCQ0VERTAtRUFERC00MzdCLTg2RDUtNDlEMTkyMjE2OTQ4fSIKLUVuZFByb2plY3QKLVByb2plY3QoIntGQUUwNEVDMC0zMDFGLTExRDMtQkY0Qi0wMEMwNEY3OUVGQkN9IikgPSAiRVBQbHVzV2ViU2FtcGxlIiwgIkVQUGx1c1dlYlNhbXBsZVxFUFBsdXNXZWJTYW1wbGUuY3Nwcm9qIiwgInsxQkYzMEE1Mi02MTQ5LTQzMkQtODJGNi03MjUyNTBFNUM2NjJ9IgotRW5kUHJvamVjdAotUHJvamVjdCgie0ZBRTA0RUMwLTMwMUYtMTFEMy1CRjRCLTAwQzA0Rjc5RUZCQ30iKSA9ICJFUFBsdXNFeGNlbENhbGN1bGF0aW9uRGVtbyIsICJFUFBsdXNFeGNlbENhbGN1bGF0aW9uU2FtcGxlXEVQUGx1c0V4Y2VsQ2FsY3VsYXRpb25EZW1vLmNzcHJvaiIsICJ7OTRDQkNFRkMtRERCRi00RjU0LThBRUEtNEM0MEJCRDI4ODFCfSIKLUVuZFByb2plY3QKIFByb2plY3QoIntGQUUwNEVDMC0zMDFGLTExRDMtQkY0Qi0wMEMwNEY3OUVGQkN9IikgPSAiRVBQbHVzU0RLIiwgIkVQUGx1c1xFUFBsdXNTREsuY3Nwcm9qIiwgInsyNTY1OTdGMS02N0U1LTQ3OEQtQjVCOC0zQkJCNDdDQjNEM0Z9IgogRW5kUHJvamVjdAorUHJvamVjdCgie0ZBRTA0RUMwLTMwMUYtMTFEMy1CRjRCLTAwQzA0Rjc5RUZCQ30iKSA9ICJOZXRDb3JlVGVzdHMiLCAiTmV0Q29yZVRlc3RzXE5ldENvcmVUZXN0cy5jc3Byb2oiLCAiezdENTlGQUE2LUE1M0YtNDY3Mi04Mzg3LTkyODE3MzE1MDlGMn0iCitFbmRQcm9qZWN0CitQcm9qZWN0KCJ7RkFFMDRFQzAtMzAxRi0xMUQzLUJGNEItMDBDMDRGNzlFRkJDfSIpID0gIk5ldEZyYW1ld29ya1Rlc3RzIiwgIk5ldEZyYW1ld29ya1Rlc3RzXE5ldEZyYW1ld29ya1Rlc3RzLmNzcHJvaiIsICJ7QkQzNUMwRDItM0E0Qy00MUFCLTgzMDAtNzM0RjZDQUI5NzMzfSIKK0VuZFByb2plY3QKIEdsb2JhbAogCUdsb2JhbFNlY3Rpb24oU29sdXRpb25Db25maWd1cmF0aW9uUGxhdGZvcm1zKSA9IHByZVNvbHV0aW9uCiAJCURlYnVnfEFueSBDUFUgPSBEZWJ1Z3xBbnkgQ1BVCkBAIC0zNCw4MSArMjgsNiBAQAogCQlSZWxlYXNlfHg4NiA9IFJlbGVhc2V8eDg2CiAJRW5kR2xvYmFsU2VjdGlvbgogCUdsb2JhbFNlY3Rpb24oUHJvamVjdENvbmZpZ3VyYXRpb25QbGF0Zm9ybXMpID0gcG9zdFNvbHV0aW9uCi0JCXs3QjI4ODAyNi01NTAyLTRBMzktQkY0MS03N0UwODZGM0U0QTN9LkRlYnVnfEFueSBDUFUuQWN0aXZlQ2ZnID0gRGVidWd8QW55IENQVQotCQl7N0IyODgwMjYtNTUwMi00QTM5LUJGNDEtNzdFMDg2RjNFNEEzfS5EZWJ1Z3xBbnkgQ1BVLkJ1aWxkLjAgPSBEZWJ1Z3xBbnkgQ1BVCi0JCXs3QjI4ODAyNi01NTAyLTRBMzktQkY0MS03N0UwODZGM0U0QTN9LkRlYnVnfE1peGVkIFBsYXRmb3Jtcy5BY3RpdmVDZmcgPSBEZWJ1Z3xBbnkgQ1BVCi0JCXs3QjI4ODAyNi01NTAyLTRBMzktQkY0MS03N0UwODZGM0U0QTN9LkRlYnVnfE1peGVkIFBsYXRmb3Jtcy5CdWlsZC4wID0gRGVidWd8QW55IENQVQotCQl7N0IyODgwMjYtNTUwMi00QTM5LUJGNDEtNzdFMDg2RjNFNEEzfS5EZWJ1Z3x4ODYuQWN0aXZlQ2ZnID0gRGVidWd8QW55IENQVQotCQl7N0IyODgwMjYtNTUwMi00QTM5LUJGNDEtNzdFMDg2RjNFNEEzfS5SZWxlYXNlIDQuMHxBbnkgQ1BVLkFjdGl2ZUNmZyA9IFJlbGVhc2V8QW55IENQVQotCQl7N0IyODgwMjYtNTUwMi00QTM5LUJGNDEtNzdFMDg2RjNFNEEzfS5SZWxlYXNlIDQuMHxBbnkgQ1BVLkJ1aWxkLjAgPSBSZWxlYXNlfEFueSBDUFUKLQkJezdCMjg4MDI2LTU1MDItNEEzOS1CRjQxLTc3RTA4NkYzRTRBM30uUmVsZWFzZSA0LjB8TWl4ZWQgUGxhdGZvcm1zLkFjdGl2ZUNmZyA9IFJlbGVhc2V8QW55IENQVQotCQl7N0IyODgwMjYtNTUwMi00QTM5LUJGNDEtNzdFMDg2RjNFNEEzfS5SZWxlYXNlIDQuMHxNaXhlZCBQbGF0Zm9ybXMuQnVpbGQuMCA9IFJlbGVhc2V8QW55IENQVQotCQl7N0IyODgwMjYtNTUwMi00QTM5LUJGNDEtNzdFMDg2RjNFNEEzfS5SZWxlYXNlIDQuMHx4ODYuQWN0aXZlQ2ZnID0gUmVsZWFzZXxBbnkgQ1BVCi0JCXs3QjI4ODAyNi01NTAyLTRBMzktQkY0MS03N0UwODZGM0U0QTN9LlJlbGVhc2V8QW55IENQVS5BY3RpdmVDZmcgPSBSZWxlYXNlfEFueSBDUFUKLQkJezdCMjg4MDI2LTU1MDItNEEzOS1CRjQxLTc3RTA4NkYzRTRBM30uUmVsZWFzZXxBbnkgQ1BVLkJ1aWxkLjAgPSBSZWxlYXNlfEFueSBDUFUKLQkJezdCMjg4MDI2LTU1MDItNEEzOS1CRjQxLTc3RTA4NkYzRTRBM30uUmVsZWFzZXxNaXhlZCBQbGF0Zm9ybXMuQWN0aXZlQ2ZnID0gUmVsZWFzZXxBbnkgQ1BVCi0JCXs3QjI4ODAyNi01NTAyLTRBMzktQkY0MS03N0UwODZGM0U0QTN9LlJlbGVhc2V8TWl4ZWQgUGxhdGZvcm1zLkJ1aWxkLjAgPSBSZWxlYXNlfEFueSBDUFUKLQkJezdCMjg4MDI2LTU1MDItNEEzOS1CRjQxLTc3RTA4NkYzRTRBM30uUmVsZWFzZXx4ODYuQWN0aXZlQ2ZnID0gUmVsZWFzZXxBbnkgQ1BVCi0JCXswNkJGM0M2OC1FN0Q0LTQ1NzktOTBCRS1FMzZEQUNFNTY0RUZ9LkRlYnVnfEFueSBDUFUuQWN0aXZlQ2ZnID0gRGVidWd8QW55IENQVQotCQl7MDZCRjNDNjgtRTdENC00NTc5LTkwQkUtRTM2REFDRTU2NEVGfS5EZWJ1Z3xBbnkgQ1BVLkJ1aWxkLjAgPSBEZWJ1Z3xBbnkgQ1BVCi0JCXswNkJGM0M2OC1FN0Q0LTQ1NzktOTBCRS1FMzZEQUNFNTY0RUZ9LkRlYnVnfE1peGVkIFBsYXRmb3Jtcy5BY3RpdmVDZmcgPSBEZWJ1Z3xBbnkgQ1BVCi0JCXswNkJGM0M2OC1FN0Q0LTQ1NzktOTBCRS1FMzZEQUNFNTY0RUZ9LkRlYnVnfE1peGVkIFBsYXRmb3Jtcy5CdWlsZC4wID0gRGVidWd8QW55IENQVQotCQl7MDZCRjNDNjgtRTdENC00NTc5LTkwQkUtRTM2REFDRTU2NEVGfS5EZWJ1Z3x4ODYuQWN0aXZlQ2ZnID0gRGVidWd8QW55IENQVQotCQl7MDZCRjNDNjgtRTdENC00NTc5LTkwQkUtRTM2REFDRTU2NEVGfS5SZWxlYXNlIDQuMHxBbnkgQ1BVLkFjdGl2ZUNmZyA9IFJlbGVhc2UgNC4wfEFueSBDUFUKLQkJezA2QkYzQzY4LUU3RDQtNDU3OS05MEJFLUUzNkRBQ0U1NjRFRn0uUmVsZWFzZSA0LjB8QW55IENQVS5CdWlsZC4wID0gUmVsZWFzZSA0LjB8QW55IENQVQotCQl7MDZCRjNDNjgtRTdENC00NTc5LTkwQkUtRTM2REFDRTU2NEVGfS5SZWxlYXNlIDQuMHxNaXhlZCBQbGF0Zm9ybXMuQWN0aXZlQ2ZnID0gUmVsZWFzZSA0LjB8QW55IENQVQotCQl7MDZCRjNDNjgtRTdENC00NTc5LTkwQkUtRTM2REFDRTU2NEVGfS5SZWxlYXNlIDQuMHxNaXhlZCBQbGF0Zm9ybXMuQnVpbGQuMCA9IFJlbGVhc2UgNC4wfEFueSBDUFUKLQkJezA2QkYzQzY4LUU3RDQtNDU3OS05MEJFLUUzNkRBQ0U1NjRFRn0uUmVsZWFzZSA0LjB8eDg2LkFjdGl2ZUNmZyA9IFJlbGVhc2UgNC4wfEFueSBDUFUKLQkJezA2QkYzQzY4LUU3RDQtNDU3OS05MEJFLUUzNkRBQ0U1NjRFRn0uUmVsZWFzZXxBbnkgQ1BVLkFjdGl2ZUNmZyA9IFJlbGVhc2V8QW55IENQVQotCQl7MDZCRjNDNjgtRTdENC00NTc5LTkwQkUtRTM2REFDRTU2NEVGfS5SZWxlYXNlfEFueSBDUFUuQnVpbGQuMCA9IFJlbGVhc2V8QW55IENQVQotCQl7MDZCRjNDNjgtRTdENC00NTc5LTkwQkUtRTM2REFDRTU2NEVGfS5SZWxlYXNlfE1peGVkIFBsYXRmb3Jtcy5BY3RpdmVDZmcgPSBSZWxlYXNlfEFueSBDUFUKLQkJezA2QkYzQzY4LUU3RDQtNDU3OS05MEJFLUUzNkRBQ0U1NjRFRn0uUmVsZWFzZXxNaXhlZCBQbGF0Zm9ybXMuQnVpbGQuMCA9IFJlbGVhc2V8QW55IENQVQotCQl7MDZCRjNDNjgtRTdENC00NTc5LTkwQkUtRTM2REFDRTU2NEVGfS5SZWxlYXNlfHg4Ni5BY3RpdmVDZmcgPSBSZWxlYXNlfEFueSBDUFUKLQkJe0U3QkNFREUwLUVBREQtNDM3Qi04NkQ1LTQ5RDE5MjIxNjk0OH0uRGVidWd8QW55IENQVS5BY3RpdmVDZmcgPSBEZWJ1Z3xBbnkgQ1BVCi0JCXtFN0JDRURFMC1FQURELTQzN0ItODZENS00OUQxOTIyMTY5NDh9LkRlYnVnfEFueSBDUFUuQnVpbGQuMCA9IERlYnVnfEFueSBDUFUKLQkJe0U3QkNFREUwLUVBREQtNDM3Qi04NkQ1LTQ5RDE5MjIxNjk0OH0uRGVidWd8TWl4ZWQgUGxhdGZvcm1zLkFjdGl2ZUNmZyA9IERlYnVnfEFueSBDUFUKLQkJe0U3QkNFREUwLUVBREQtNDM3Qi04NkQ1LTQ5RDE5MjIxNjk0OH0uRGVidWd8TWl4ZWQgUGxhdGZvcm1zLkJ1aWxkLjAgPSBEZWJ1Z3xBbnkgQ1BVCi0JCXtFN0JDRURFMC1FQURELTQzN0ItODZENS00OUQxOTIyMTY5NDh9LkRlYnVnfHg4Ni5BY3RpdmVDZmcgPSBEZWJ1Z3xBbnkgQ1BVCi0JCXtFN0JDRURFMC1FQURELTQzN0ItODZENS00OUQxOTIyMTY5NDh9LlJlbGVhc2UgNC4wfEFueSBDUFUuQWN0aXZlQ2ZnID0gUmVsZWFzZSA0LjB8QW55IENQVQotCQl7RTdCQ0VERTAtRUFERC00MzdCLTg2RDUtNDlEMTkyMjE2OTQ4fS5SZWxlYXNlIDQuMHxBbnkgQ1BVLkJ1aWxkLjAgPSBSZWxlYXNlIDQuMHxBbnkgQ1BVCi0JCXtFN0JDRURFMC1FQURELTQzN0ItODZENS00OUQxOTIyMTY5NDh9LlJlbGVhc2UgNC4wfE1peGVkIFBsYXRmb3Jtcy5BY3RpdmVDZmcgPSBSZWxlYXNlIDQuMHxBbnkgQ1BVCi0JCXtFN0JDRURFMC1FQURELTQzN0ItODZENS00OUQxOTIyMTY5NDh9LlJlbGVhc2UgNC4wfE1peGVkIFBsYXRmb3Jtcy5CdWlsZC4wID0gUmVsZWFzZSA0LjB8QW55IENQVQotCQl7RTdCQ0VERTAtRUFERC00MzdCLTg2RDUtNDlEMTkyMjE2OTQ4fS5SZWxlYXNlIDQuMHx4ODYuQWN0aXZlQ2ZnID0gUmVsZWFzZSA0LjB8QW55IENQVQotCQl7RTdCQ0VERTAtRUFERC00MzdCLTg2RDUtNDlEMTkyMjE2OTQ4fS5SZWxlYXNlfEFueSBDUFUuQWN0aXZlQ2ZnID0gUmVsZWFzZXxBbnkgQ1BVCi0JCXtFN0JDRURFMC1FQURELTQzN0ItODZENS00OUQxOTIyMTY5NDh9LlJlbGVhc2V8QW55IENQVS5CdWlsZC4wID0gUmVsZWFzZXxBbnkgQ1BVCi0JCXtFN0JDRURFMC1FQURELTQzN0ItODZENS00OUQxOTIyMTY5NDh9LlJlbGVhc2V8TWl4ZWQgUGxhdGZvcm1zLkFjdGl2ZUNmZyA9IFJlbGVhc2V8QW55IENQVQotCQl7RTdCQ0VERTAtRUFERC00MzdCLTg2RDUtNDlEMTkyMjE2OTQ4fS5SZWxlYXNlfE1peGVkIFBsYXRmb3Jtcy5CdWlsZC4wID0gUmVsZWFzZXxBbnkgQ1BVCi0JCXtFN0JDRURFMC1FQURELTQzN0ItODZENS00OUQxOTIyMTY5NDh9LlJlbGVhc2V8eDg2LkFjdGl2ZUNmZyA9IFJlbGVhc2V8QW55IENQVQotCQl7MUJGMzBBNTItNjE0OS00MzJELTgyRjYtNzI1MjUwRTVDNjYyfS5EZWJ1Z3xBbnkgQ1BVLkFjdGl2ZUNmZyA9IERlYnVnfEFueSBDUFUKLQkJezFCRjMwQTUyLTYxNDktNDMyRC04MkY2LTcyNTI1MEU1QzY2Mn0uRGVidWd8QW55IENQVS5CdWlsZC4wID0gRGVidWd8QW55IENQVQotCQl7MUJGMzBBNTItNjE0OS00MzJELTgyRjYtNzI1MjUwRTVDNjYyfS5EZWJ1Z3xNaXhlZCBQbGF0Zm9ybXMuQWN0aXZlQ2ZnID0gRGVidWd8QW55IENQVQotCQl7MUJGMzBBNTItNjE0OS00MzJELTgyRjYtNzI1MjUwRTVDNjYyfS5EZWJ1Z3xNaXhlZCBQbGF0Zm9ybXMuQnVpbGQuMCA9IERlYnVnfEFueSBDUFUKLQkJezFCRjMwQTUyLTYxNDktNDMyRC04MkY2LTcyNTI1MEU1QzY2Mn0uRGVidWd8eDg2LkFjdGl2ZUNmZyA9IERlYnVnfEFueSBDUFUKLQkJezFCRjMwQTUyLTYxNDktNDMyRC04MkY2LTcyNTI1MEU1QzY2Mn0uUmVsZWFzZSA0LjB8QW55IENQVS5BY3RpdmVDZmcgPSBSZWxlYXNlIDQuMHxBbnkgQ1BVCi0JCXsxQkYzMEE1Mi02MTQ5LTQzMkQtODJGNi03MjUyNTBFNUM2NjJ9LlJlbGVhc2UgNC4wfEFueSBDUFUuQnVpbGQuMCA9IFJlbGVhc2UgNC4wfEFueSBDUFUKLQkJezFCRjMwQTUyLTYxNDktNDMyRC04MkY2LTcyNTI1MEU1QzY2Mn0uUmVsZWFzZSA0LjB8TWl4ZWQgUGxhdGZvcm1zLkFjdGl2ZUNmZyA9IFJlbGVhc2UgNC4wfEFueSBDUFUKLQkJezFCRjMwQTUyLTYxNDktNDMyRC04MkY2LTcyNTI1MEU1QzY2Mn0uUmVsZWFzZSA0LjB8TWl4ZWQgUGxhdGZvcm1zLkJ1aWxkLjAgPSBSZWxlYXNlIDQuMHxBbnkgQ1BVCi0JCXsxQkYzMEE1Mi02MTQ5LTQzMkQtODJGNi03MjUyNTBFNUM2NjJ9LlJlbGVhc2UgNC4wfHg4Ni5BY3RpdmVDZmcgPSBSZWxlYXNlIDQuMHxBbnkgQ1BVCi0JCXsxQkYzMEE1Mi02MTQ5LTQzMkQtODJGNi03MjUyNTBFNUM2NjJ9LlJlbGVhc2V8QW55IENQVS5BY3RpdmVDZmcgPSBSZWxlYXNlfEFueSBDUFUKLQkJezFCRjMwQTUyLTYxNDktNDMyRC04MkY2LTcyNTI1MEU1QzY2Mn0uUmVsZWFzZXxBbnkgQ1BVLkJ1aWxkLjAgPSBSZWxlYXNlfEFueSBDUFUKLQkJezFCRjMwQTUyLTYxNDktNDMyRC04MkY2LTcyNTI1MEU1QzY2Mn0uUmVsZWFzZXxNaXhlZCBQbGF0Zm9ybXMuQWN0aXZlQ2ZnID0gUmVsZWFzZXxBbnkgQ1BVCi0JCXsxQkYzMEE1Mi02MTQ5LTQzMkQtODJGNi03MjUyNTBFNUM2NjJ9LlJlbGVhc2V8TWl4ZWQgUGxhdGZvcm1zLkJ1aWxkLjAgPSBSZWxlYXNlfEFueSBDUFUKLQkJezFCRjMwQTUyLTYxNDktNDMyRC04MkY2LTcyNTI1MEU1QzY2Mn0uUmVsZWFzZXx4ODYuQWN0aXZlQ2ZnID0gUmVsZWFzZXxBbnkgQ1BVCi0JCXs5NENCQ0VGQy1EREJGLTRGNTQtOEFFQS00QzQwQkJEMjg4MUJ9LkRlYnVnfEFueSBDUFUuQWN0aXZlQ2ZnID0gRGVidWd8QW55IENQVQotCQl7OTRDQkNFRkMtRERCRi00RjU0LThBRUEtNEM0MEJCRDI4ODFCfS5EZWJ1Z3xBbnkgQ1BVLkJ1aWxkLjAgPSBEZWJ1Z3xBbnkgQ1BVCi0JCXs5NENCQ0VGQy1EREJGLTRGNTQtOEFFQS00QzQwQkJEMjg4MUJ9LkRlYnVnfE1peGVkIFBsYXRmb3Jtcy5BY3RpdmVDZmcgPSBEZWJ1Z3xBbnkgQ1BVCi0JCXs5NENCQ0VGQy1EREJGLTRGNTQtOEFFQS00QzQwQkJEMjg4MUJ9LkRlYnVnfE1peGVkIFBsYXRmb3Jtcy5CdWlsZC4wID0gRGVidWd8QW55IENQVQotCQl7OTRDQkNFRkMtRERCRi00RjU0LThBRUEtNEM0MEJCRDI4ODFCfS5EZWJ1Z3x4ODYuQWN0aXZlQ2ZnID0gRGVidWd8QW55IENQVQotCQl7OTRDQkNFRkMtRERCRi00RjU0LThBRUEtNEM0MEJCRDI4ODFCfS5SZWxlYXNlIDQuMHxBbnkgQ1BVLkFjdGl2ZUNmZyA9IFJlbGVhc2UgNC4wfEFueSBDUFUKLQkJezk0Q0JDRUZDLUREQkYtNEY1NC04QUVBLTRDNDBCQkQyODgxQn0uUmVsZWFzZSA0LjB8QW55IENQVS5CdWlsZC4wID0gUmVsZWFzZSA0LjB8QW55IENQVQotCQl7OTRDQkNFRkMtRERCRi00RjU0LThBRUEtNEM0MEJCRDI4ODFCfS5SZWxlYXNlIDQuMHxNaXhlZCBQbGF0Zm9ybXMuQWN0aXZlQ2ZnID0gUmVsZWFzZSA0LjB8QW55IENQVQotCQl7OTRDQkNFRkMtRERCRi00RjU0LThBRUEtNEM0MEJCRDI4ODFCfS5SZWxlYXNlIDQuMHxNaXhlZCBQbGF0Zm9ybXMuQnVpbGQuMCA9IFJlbGVhc2UgNC4wfEFueSBDUFUKLQkJezk0Q0JDRUZDLUREQkYtNEY1NC04QUVBLTRDNDBCQkQyODgxQn0uUmVsZWFzZSA0LjB8eDg2LkFjdGl2ZUNmZyA9IFJlbGVhc2UgNC4wfEFueSBDUFUKLQkJezk0Q0JDRUZDLUREQkYtNEY1NC04QUVBLTRDNDBCQkQyODgxQn0uUmVsZWFzZXxBbnkgQ1BVLkFjdGl2ZUNmZyA9IFJlbGVhc2V8QW55IENQVQotCQl7OTRDQkNFRkMtRERCRi00RjU0LThBRUEtNEM0MEJCRDI4ODFCfS5SZWxlYXNlfEFueSBDUFUuQnVpbGQuMCA9IFJlbGVhc2V8QW55IENQVQotCQl7OTRDQkNFRkMtRERCRi00RjU0LThBRUEtNEM0MEJCRDI4ODFCfS5SZWxlYXNlfE1peGVkIFBsYXRmb3Jtcy5BY3RpdmVDZmcgPSBSZWxlYXNlfEFueSBDUFUKLQkJezk0Q0JDRUZDLUREQkYtNEY1NC04QUVBLTRDNDBCQkQyODgxQn0uUmVsZWFzZXxNaXhlZCBQbGF0Zm9ybXMuQnVpbGQuMCA9IFJlbGVhc2V8QW55IENQVQotCQl7OTRDQkNFRkMtRERCRi00RjU0LThBRUEtNEM0MEJCRDI4ODFCfS5SZWxlYXNlfHg4Ni5BY3RpdmVDZmcgPSBSZWxlYXNlfEFueSBDUFUKIAkJezI1NjU5N0YxLTY3RTUtNDc4RC1CNUI4LTNCQkI0N0NCM0QzRn0uRGVidWd8QW55IENQVS5BY3RpdmVDZmcgPSBEZWJ1Z3xBbnkgQ1BVCiAJCXsyNTY1OTdGMS02N0U1LTQ3OEQtQjVCOC0zQkJCNDdDQjNEM0Z9LkRlYnVnfEFueSBDUFUuQnVpbGQuMCA9IERlYnVnfEFueSBDUFUKIAkJezI1NjU5N0YxLTY3RTUtNDc4RC1CNUI4LTNCQkI0N0NCM0QzRn0uRGVidWd8TWl4ZWQgUGxhdGZvcm1zLkFjdGl2ZUNmZyA9IERlYnVnfEFueSBDUFUKQEAgLTEyNyw2ICs0Niw0MiBAQAogCQl7MjU2NTk3RjEtNjdFNS00NzhELUI1QjgtM0JCQjQ3Q0IzRDNGfS5SZWxlYXNlfE1peGVkIFBsYXRmb3Jtcy5CdWlsZC4wID0gUmVsZWFzZXxBbnkgQ1BVCiAJCXsyNTY1OTdGMS02N0U1LTQ3OEQtQjVCOC0zQkJCNDdDQjNEM0Z9LlJlbGVhc2V8eDg2LkFjdGl2ZUNmZyA9IFJlbGVhc2V8QW55IENQVQogCQl7MjU2NTk3RjEtNjdFNS00NzhELUI1QjgtM0JCQjQ3Q0IzRDNGfS5SZWxlYXNlfHg4Ni5CdWlsZC4wID0gUmVsZWFzZXxBbnkgQ1BVCisJCXs3RDU5RkFBNi1BNTNGLTQ2NzItODM4Ny05MjgxNzMxNTA5RjJ9LkRlYnVnfEFueSBDUFUuQWN0aXZlQ2ZnID0gRGVidWd8QW55IENQVQorCQl7N0Q1OUZBQTYtQTUzRi00NjcyLTgzODctOTI4MTczMTUwOUYyfS5EZWJ1Z3xBbnkgQ1BVLkJ1aWxkLjAgPSBEZWJ1Z3xBbnkgQ1BVCisJCXs3RDU5RkFBNi1BNTNGLTQ2NzItODM4Ny05MjgxNzMxNTA5RjJ9LkRlYnVnfE1peGVkIFBsYXRmb3Jtcy5BY3RpdmVDZmcgPSBEZWJ1Z3xBbnkgQ1BVCisJCXs3RDU5RkFBNi1BNTNGLTQ2NzItODM4Ny05MjgxNzMxNTA5RjJ9LkRlYnVnfE1peGVkIFBsYXRmb3Jtcy5CdWlsZC4wID0gRGVidWd8QW55IENQVQorCQl7N0Q1OUZBQTYtQTUzRi00NjcyLTgzODctOTI4MTczMTUwOUYyfS5EZWJ1Z3x4ODYuQWN0aXZlQ2ZnID0gRGVidWd8QW55IENQVQorCQl7N0Q1OUZBQTYtQTUzRi00NjcyLTgzODctOTI4MTczMTUwOUYyfS5EZWJ1Z3x4ODYuQnVpbGQuMCA9IERlYnVnfEFueSBDUFUKKwkJezdENTlGQUE2LUE1M0YtNDY3Mi04Mzg3LTkyODE3MzE1MDlGMn0uUmVsZWFzZSA0LjB8QW55IENQVS5BY3RpdmVDZmcgPSBEZWJ1Z3xBbnkgQ1BVCisJCXs3RDU5RkFBNi1BNTNGLTQ2NzItODM4Ny05MjgxNzMxNTA5RjJ9LlJlbGVhc2UgNC4wfEFueSBDUFUuQnVpbGQuMCA9IERlYnVnfEFueSBDUFUKKwkJezdENTlGQUE2LUE1M0YtNDY3Mi04Mzg3LTkyODE3MzE1MDlGMn0uUmVsZWFzZSA0LjB8TWl4ZWQgUGxhdGZvcm1zLkFjdGl2ZUNmZyA9IERlYnVnfEFueSBDUFUKKwkJezdENTlGQUE2LUE1M0YtNDY3Mi04Mzg3LTkyODE3MzE1MDlGMn0uUmVsZWFzZSA0LjB8TWl4ZWQgUGxhdGZvcm1zLkJ1aWxkLjAgPSBEZWJ1Z3xBbnkgQ1BVCisJCXs3RDU5RkFBNi1BNTNGLTQ2NzItODM4Ny05MjgxNzMxNTA5RjJ9LlJlbGVhc2UgNC4wfHg4Ni5BY3RpdmVDZmcgPSBEZWJ1Z3xBbnkgQ1BVCisJCXs3RDU5RkFBNi1BNTNGLTQ2NzItODM4Ny05MjgxNzMxNTA5RjJ9LlJlbGVhc2UgNC4wfHg4Ni5CdWlsZC4wID0gRGVidWd8QW55IENQVQorCQl7N0Q1OUZBQTYtQTUzRi00NjcyLTgzODctOTI4MTczMTUwOUYyfS5SZWxlYXNlfEFueSBDUFUuQWN0aXZlQ2ZnID0gUmVsZWFzZXxBbnkgQ1BVCisJCXs3RDU5RkFBNi1BNTNGLTQ2NzItODM4Ny05MjgxNzMxNTA5RjJ9LlJlbGVhc2V8QW55IENQVS5CdWlsZC4wID0gUmVsZWFzZXxBbnkgQ1BVCisJCXs3RDU5RkFBNi1BNTNGLTQ2NzItODM4Ny05MjgxNzMxNTA5RjJ9LlJlbGVhc2V8TWl4ZWQgUGxhdGZvcm1zLkFjdGl2ZUNmZyA9IFJlbGVhc2V8QW55IENQVQorCQl7N0Q1OUZBQTYtQTUzRi00NjcyLTgzODctOTI4MTczMTUwOUYyfS5SZWxlYXNlfE1peGVkIFBsYXRmb3Jtcy5CdWlsZC4wID0gUmVsZWFzZXxBbnkgQ1BVCisJCXs3RDU5RkFBNi1BNTNGLTQ2NzItODM4Ny05MjgxNzMxNTA5RjJ9LlJlbGVhc2V8eDg2LkFjdGl2ZUNmZyA9IFJlbGVhc2V8QW55IENQVQorCQl7N0Q1OUZBQTYtQTUzRi00NjcyLTgzODctOTI4MTczMTUwOUYyfS5SZWxlYXNlfHg4Ni5CdWlsZC4wID0gUmVsZWFzZXxBbnkgQ1BVCisJCXtCRDM1QzBEMi0zQTRDLTQxQUItODMwMC03MzRGNkNBQjk3MzN9LkRlYnVnfEFueSBDUFUuQWN0aXZlQ2ZnID0gRGVidWd8QW55IENQVQorCQl7QkQzNUMwRDItM0E0Qy00MUFCLTgzMDAtNzM0RjZDQUI5NzMzfS5EZWJ1Z3xBbnkgQ1BVLkJ1aWxkLjAgPSBEZWJ1Z3xBbnkgQ1BVCisJCXtCRDM1QzBEMi0zQTRDLTQxQUItODMwMC03MzRGNkNBQjk3MzN9LkRlYnVnfE1peGVkIFBsYXRmb3Jtcy5BY3RpdmVDZmcgPSBEZWJ1Z3xBbnkgQ1BVCisJCXtCRDM1QzBEMi0zQTRDLTQxQUItODMwMC03MzRGNkNBQjk3MzN9LkRlYnVnfE1peGVkIFBsYXRmb3Jtcy5CdWlsZC4wID0gRGVidWd8QW55IENQVQorCQl7QkQzNUMwRDItM0E0Qy00MUFCLTgzMDAtNzM0RjZDQUI5NzMzfS5EZWJ1Z3x4ODYuQWN0aXZlQ2ZnID0gRGVidWd8QW55IENQVQorCQl7QkQzNUMwRDItM0E0Qy00MUFCLTgzMDAtNzM0RjZDQUI5NzMzfS5EZWJ1Z3x4ODYuQnVpbGQuMCA9IERlYnVnfEFueSBDUFUKKwkJe0JEMzVDMEQyLTNBNEMtNDFBQi04MzAwLTczNEY2Q0FCOTczM30uUmVsZWFzZSA0LjB8QW55IENQVS5BY3RpdmVDZmcgPSBEZWJ1Z3xBbnkgQ1BVCisJCXtCRDM1QzBEMi0zQTRDLTQxQUItODMwMC03MzRGNkNBQjk3MzN9LlJlbGVhc2UgNC4wfEFueSBDUFUuQnVpbGQuMCA9IERlYnVnfEFueSBDUFUKKwkJe0JEMzVDMEQyLTNBNEMtNDFBQi04MzAwLTczNEY2Q0FCOTczM30uUmVsZWFzZSA0LjB8TWl4ZWQgUGxhdGZvcm1zLkFjdGl2ZUNmZyA9IERlYnVnfEFueSBDUFUKKwkJe0JEMzVDMEQyLTNBNEMtNDFBQi04MzAwLTczNEY2Q0FCOTczM30uUmVsZWFzZSA0LjB8TWl4ZWQgUGxhdGZvcm1zLkJ1aWxkLjAgPSBEZWJ1Z3xBbnkgQ1BVCisJCXtCRDM1QzBEMi0zQTRDLTQxQUItODMwMC03MzRGNkNBQjk3MzN9LlJlbGVhc2UgNC4wfHg4Ni5BY3RpdmVDZmcgPSBEZWJ1Z3xBbnkgQ1BVCisJCXtCRDM1QzBEMi0zQTRDLTQxQUItODMwMC03MzRGNkNBQjk3MzN9LlJlbGVhc2UgNC4wfHg4Ni5CdWlsZC4wID0gRGVidWd8QW55IENQVQorCQl7QkQzNUMwRDItM0E0Qy00MUFCLTgzMDAtNzM0RjZDQUI5NzMzfS5SZWxlYXNlfEFueSBDUFUuQWN0aXZlQ2ZnID0gUmVsZWFzZXxBbnkgQ1BVCisJCXtCRDM1QzBEMi0zQTRDLTQxQUItODMwMC03MzRGNkNBQjk3MzN9LlJlbGVhc2V8QW55IENQVS5CdWlsZC4wID0gUmVsZWFzZXxBbnkgQ1BVCisJCXtCRDM1QzBEMi0zQTRDLTQxQUItODMwMC03MzRGNkNBQjk3MzN9LlJlbGVhc2V8TWl4ZWQgUGxhdGZvcm1zLkFjdGl2ZUNmZyA9IFJlbGVhc2V8QW55IENQVQorCQl7QkQzNUMwRDItM0E0Qy00MUFCLTgzMDAtNzM0RjZDQUI5NzMzfS5SZWxlYXNlfE1peGVkIFBsYXRmb3Jtcy5CdWlsZC4wID0gUmVsZWFzZXxBbnkgQ1BVCisJCXtCRDM1QzBEMi0zQTRDLTQxQUItODMwMC03MzRGNkNBQjk3MzN9LlJlbGVhc2V8eDg2LkFjdGl2ZUNmZyA9IFJlbGVhc2V8QW55IENQVQorCQl7QkQzNUMwRDItM0E0Qy00MUFCLTgzMDAtNzM0RjZDQUI5NzMzfS5SZWxlYXNlfHg4Ni5CdWlsZC4wID0gUmVsZWFzZXxBbnkgQ1BVCiAJRW5kR2xvYmFsU2VjdGlvbgogCUdsb2JhbFNlY3Rpb24oU29sdXRpb25Qcm9wZXJ0aWVzKSA9IHByZVNvbHV0aW9uCiAJCUhpZGVTb2x1dGlvbk5vZGUgPSBGQUxTRQpkaWZmIC0tZ2l0IGEvRVBQbHVzL0VQUGx1c1NESy5jc3Byb2ogYi9FUFBsdXMvRVBQbHVzU0RLLmNzcHJvagppbmRleCA0MmZjNGFlLi40YTI4ZWViIDEwMDY0NAotLS0gYS9FUFBsdXMvRVBQbHVzU0RLLmNzcHJvagorKysgYi9FUFBsdXMvRVBQbHVzU0RLLmNzcHJvagpAQCAtNiw3ICs2LDcgQEAKICAgICA8U2lnbkFzc2VtYmx5PnRydWU8L1NpZ25Bc3NlbWJseT4KICAgICA8QXNzZW1ibHlPcmlnaW5hdG9yS2V5RmlsZT5PcGVuT2ZmaWNlWG1sLnNuazwvQXNzZW1ibHlPcmlnaW5hdG9yS2V5RmlsZT4KICAgICA8UGFja2FnZUlkPkFwcHNoZWV0LkVQUGx1czwvUGFja2FnZUlkPgotICAgIDxWZXJzaW9uPjEuMC4wPC9WZXJzaW9uPgorICAgIDxWZXJzaW9uPjEuMC4xPC9WZXJzaW9uPgogICAgIDxEZWZhdWx0SXRlbUV4Y2x1ZGVzPiQoRGVmYXVsdEl0ZW1FeGNsdWRlcyk7UHJvcGVydGllcy9Bc3NlbWJseUluZm8uY3M7Rm9ybXVsYVBhcnNpbmcvTGV4aWNhbEFuYWx5c2lzL1Rva2VuU2VwYXJhdG9ySGFuZGxlcnMvKio7Rm9ybXVsYVBhcnNpbmcvTGV4aWNhbEFuYWx5c2lzL1Rva2VuSGFuZGxlci5jcztGb3JtdWxhUGFyc2luZy9FeGNlbC9GdW5jdGlvbnMvTWF0aC9SYW5rLmNzPC9EZWZhdWx0SXRlbUV4Y2x1ZGVzPgogICAgIDxEZWZpbmVDb25zdGFudHM+Q29yZTtTVEFOREFSRDIwPC9EZWZpbmVDb25zdGFudHM+CiAgIDwvUHJvcGVydHlHcm91cD4KZGlmZiAtLWdpdCBhL0VQUGx1cy9FeGNlbFdvcmtzaGVldC5jcyBiL0VQUGx1cy9FeGNlbFdvcmtzaGVldC5jcwppbmRleCAyZDEzNzFmLi5jMTk0ZTg4IDEwMDY0NAotLS0gYS9FUFBsdXMvRXhjZWxXb3Jrc2hlZXQuY3MKKysrIGIvRVBQbHVzL0V4Y2VsV29ya3NoZWV0LmNzCkBAIC00LDcgKzQsNyBAQAogICogRVBQbHVzIHByb3ZpZGVzIHNlcnZlci1zaWRlIGdlbmVyYXRpb24gb2YgRXhjZWwgMjAwNy8yMDEwIHNwcmVhZHNoZWV0cy4KICAqIFNlZSBodHRwOi8vd3d3LmNvZGVwbGV4LmNvbS9FUFBsdXMgZm9yIGRldGFpbHMuCiAgKgotICogQ29weXJpZ2h0IChDKSAyMDExICBKYW4gS+RsbG1hbgorICogQ29weXJpZ2h0IChDKSAyMDExICBKYW4gS8OkbGxtYW4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0yNiw5ICsyNiw5IEBACiAgKiAKICAqIEF1dGhvcgkJCQkJCQlDaGFuZ2UJCQkJCQlEYXRlCiAgKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIEphbiBL5GxsbWFuCQkgICAgSW5pdGlhbCBSZWxlYXNlCQkgICAgICAgIDIwMTEtMTEtMDIKLSAqIEphbiBL5GxsbWFuICAgICAgICAgIFRvdGFsIHJld3JpdGUgICAgICAgICAgICAgICAyMDEwLTAzLTAxCi0gKiBKYW4gS+RsbG1hbgkJICAgIExpY2Vuc2UgY2hhbmdlZCBHUEwtLT5MR1BMICAyMDExLTEyLTI3CisgKiBKYW4gS8OkbGxtYW4JCSAgICBJbml0aWFsIFJlbGVhc2UJCSAgICAgICAgMjAxMS0xMS0wMgorICogSmFuIEvDpGxsbWFuICAgICAgICAgIFRvdGFsIHJld3JpdGUgICAgICAgICAgICAgICAyMDEwLTAzLTAxCisgKiBKYW4gS8OkbGxtYW4JCSAgICBMaWNlbnNlIGNoYW5nZWQgR1BMLS0+TEdQTCAgMjAxMS0xMi0yNwogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiB1c2luZyBTeXN0ZW07CiB1c2luZyBTeXN0ZW0uWG1sOwpAQCAtMTQzNiwxNiArMTQzNiw0MCBAQAogICAgICAgICAgICAgfTsKICAgICAgICAgfQogCi0gICAgICAgIHByaXZhdGUgRGF0ZVRpbWUgRHVyYXRpb25Gcm9tT0FEYXRlKGRvdWJsZSB2YWx1ZSkKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgRGF0ZVRpbWUgX2V4Y2VsRXBvY2ggPSBuZXcgRGF0ZVRpbWUoMTg5OSwgMTIsIDMwKTsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBzdGF0aWMgRGF0ZVRpbWUgSW5jb3JyZWN0RHVyYXRpb25Gcm9tT0FEYXRlKGRvdWJsZSB2YWx1ZSkKICAgICAgICAgewotICAgICAgICAgICAgLy8gQ29udmVydCB0aGUgRHVyYXRpb24gdmFsdWUgaW50byB0aGUgY29ycmVzcG9uZGluZyBEYXRlVGltZSB2YWx1ZS4KLSAgICAgICAgICAgIC8vIFRoZSBEdXJhdGlvbiB2YWx1ZSBpcyBwYXNzZWQgaW4gYXMgYSBmcmFjdGlvbmFsIE9mZmljZSBBdXRvbWF0aW9uIGRvdWJsZSB2YWx1ZXMgd2hlcmUgdGhlIAotICAgICAgICAgICAgLy8gd2hvbGUgcG9ydGlvbiBpcyB0aGUgbnVtYmVyIG9mIGRheXMgYW5kIHRoZSBmcmFjdGlvbmFsIHBvcnRpb24gb2YgdGhlIG51bWJlciBpcyB0aGUgaG91cnMuCi0gICAgICAgICAgICAvLyBGb3IgZXhhbXBsZSwgdGhlIER1cmF0aW9uIHZhbHVlIC0xLjUgcmVwcmVzZW50cyBhIG5lZ2F0aXZlIGR1cmF0aW9uIG9mIG9uZSBkYXkgYW5kIDEyIGhvdXJzLgotICAgICAgICAgICAgLy8gV2UgdXNlIHRoaXMgdGVjaG5pcXVlIHJhdGhlciB0aGFuIGNhbGxpbmcgdGhlICdEYXRlVGltZS5Gcm9tT0FEYXRlKCknIG1ldGhvZCwgYmVjYXVzZQotICAgICAgICAgICAgLy8gdGhpcyB0ZWNobmlxdWUgd29ya3MgZm9yIGJvdGggcG9zaXRpdmUgYW5kIG5lZ2F0aXZlIGR1cmF0aW9uIHZhbHVlcy4gdW5saWtlICdEYXRlVGltZS5Gcm9tT0FEYXRlKCknCi0gICAgICAgICAgICAvLyB3aGljaCB5aWVsZHMgdGhlIHdyb25nIHJlc3VsdCBmb3IgbmVnYXRpdmUgRHVyYXRpb24gdmFsdWVzLgotICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlVGltZSgxODk5LCAxMiwgMzApICsgVGltZVNwYW4uRnJvbURheXModmFsdWUpOworICAgICAgICAgICAgLy8gVGhpcyBiZWhhdmlvciBpcyB3cm9uZy4gUmVhbCBPQURhdGUgdmFsdWVzIGhhdmUgYSBkaXNjb250aW51aXR5IG9uIDMwIERlY2VtYmVyIDE4OTkuCisgICAgICAgICAgICAvLyBGb3IgcmVhbCBPQURhdGUgdmFsdWVzLCB0aGUgbmVnYXRpdmUgc2lnbiBhcHBsaWVzIG9ubHkgdG8gdGhlIGludGVnZXIgcG9ydGlvbiBvZgorICAgICAgICAgICAgLy8gdGhlIGZsb2F0LCAqbm90KiB0byB0aGUgZGVjaW1hbCBwb3J0aW9uLiBGb3IgZXhhbXBsZSwgLTAuNSBhbmQgMC41IGJvdGggcmVmZXIgdG8gdGhlCisgICAgICAgICAgICAvLyBzYW1lIGRhdGUsIGFuZCAtMS41IGlzIGFjdHVhbGx5IDE4OTktMTItMjkgMTI6MDAgKDEgZGF5IGJlZm9yZSAxODk5LTEyLTMwIDAwOjAwCisgICAgICAgICAgICAvLyBwbHVzIDAuNSBkYXlzKSwgKm5vdCogMTg5OS0xMi0yOCAxMjowMCAoMS41IGRheXMgYmVmb3JlIDE4OTktMTItMzAgMDA6MDApLgorICAgICAgICAgICAgLy8gCisgICAgICAgICAgICAvLyBVbmZvcnR1bmF0ZWx5LCBBcHBTaGVldCdzIGR1cmF0aW9uLWhhbmRsaW5nIGNvZGUgZ2V0cyB0aGlzIHZlcnkgd3JvbmcsIGFuZCB0cmVhdHMgdGhlCisgICAgICAgICAgICAvLyBkdXJhdGlvbiBhcyB0aGUgb2Zmc2V0IGZyb20gMTg5OS0xMi0zMCAwMDowMC4gVGhpcyBpcyBjb3JyZWN0IGZvciBwb3NpdGl2ZSBkdXJhdGlvbnMsCisgICAgICAgICAgICAvLyBidXQgaXQncyB3cm9uZyBmb3IgbmVnYXRpdmUgZHVyYXRpb25zLiBUaGlzIGNvZGUgdHJpZXMgdG8gZml4IHRoZSBidWcgdGhhdCBleGlzdHMgaW4KKyAgICAgICAgICAgIC8vIEFwcFNoZWV0J3MgZHVyYXRpb24taGFuZGxpbmcgY29kZSBoZXJlLCBhbmQgaXQgc3VjY2VlZHMgaW4gc29tZSBjYXNlcyBhbmQgZmFpbHMgaW4KKyAgICAgICAgICAgIC8vIG90aGVycy4KKyAgICAgICAgICAgIC8vIAorICAgICAgICAgICAgLy8gVGhpcyBjb2RlIGFsc28gYnJlYWtzIGRhdGUvdGltZSBoYW5kbGluZyBmb3IgZGF0ZXMgYmVmb3JlIDE4OTktMTItMzAgMDA6MDAgaW4gc29tZQorICAgICAgICAgICAgLy8gY2FzZXMuIFNwZWNpZmljYWxseSwgZGF0ZXMgZW5kIHVwIGJlaW5nIG9mZnNldCBieSBvbmUgZGF5LgorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIFJlZ2FyZGxlc3MsIGNoYW5naW5nIHRoaXMgYmVoYXZpb3IgaXMgcmlza3ksIHNvIHRoaXMgY29kZSBzaW1wbHkgcmVwbGljYXRlcyB0aGUKKyAgICAgICAgICAgIC8vIGV4aXN0aW5nIGJlaGF2aW9yIGZvciAKKyAgICAgICAgICAgIGlmICh2YWx1ZSA+PSAwKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiBEYXRlVGltZS5Gcm9tT0FEYXRlKHZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIFRoaXMgbG9va3MgbGlrZSBhIHZlcnkgY29tcGxpY2F0ZWQgd2F5IHRvIGNhbGwgVGltZVNwYW4uRnJvbURheXModmFsdWUpLCBidXQKKyAgICAgICAgICAgICAgICAvLyBUaW1lU3Bhbi5Gcm9tRGF5cyBhY3R1YWxseSBvbmx5IGd1YXJhbnRlZXMgbWlsbGlzZWNvbmQgcHJlY2lzaW9uLCBhbmQgY3JpdGljYWxseQorICAgICAgICAgICAgICAgIC8vIHJvdW5kaW5nIGlzIGRpZmZlcmVudCBvbiAuTkVUIENvcmUsIHJlc3VsdGluZyBpbiB2YWx1ZXMgbGlrZSAoZS5nLikgMzoxNTowMCBiZWluZworICAgICAgICAgICAgICAgIC8vIGluY29ycmVjdGx5IHJvdW5kZWQuCisgICAgICAgICAgICAgICAgdmFyIG9mZnNldCA9IERhdGVUaW1lLkZyb21PQURhdGUoLXZhbHVlKSAtIF9leGNlbEVwb2NoOworICAgICAgICAgICAgICAgIHJldHVybiBfZXhjZWxFcG9jaCAtIG9mZnNldDsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIHByaXZhdGUgdm9pZCBTZXRWYWx1ZUZyb21YbWwoWG1sVGV4dFJlYWRlciB4ciwgc3RyaW5nIHR5cGUsIGludCBzdHlsZUlELCBpbnQgcm93LCBpbnQgY29sKQpAQCAtMTUwMCw3ICsxNTI0LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMgPj0gLTY1NzQzNS4wICYmIHJlcyA8IDI5NTg0NjUuOTk5OTk5OSkKICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBHZXQgdGhlIER1cmF0aW9uIHZhbHVlIGV4cHJlc3NlZCBhcyBhIERhdGVUaW1lLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIF92YWx1ZXMuU2V0VmFsdWUocm93LCBjb2wsIER1cmF0aW9uRnJvbU9BRGF0ZShyZXMpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdmFsdWVzLlNldFZhbHVlKHJvdywgY29sLCBJbmNvcnJlY3REdXJhdGlvbkZyb21PQURhdGUocmVzKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICB7CmRpZmYgLS1naXQgYS9FUFBsdXNUZXN0L0VQUGx1c1Rlc3QuY3Nwcm9qIGIvRVBQbHVzVGVzdC9FUFBsdXNUZXN0LmNzcHJvagppbmRleCAwNDZlMmRiLi40Y2M3YWM1IDEwMDY0NAotLS0gYS9FUFBsdXNUZXN0L0VQUGx1c1Rlc3QuY3Nwcm9qCisrKyBiL0VQUGx1c1Rlc3QvRVBQbHVzVGVzdC5jc3Byb2oKQEAgLTEsNCArMSw0IEBACi3vu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KIDxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iMTIuMCIgRGVmYXVsdFRhcmdldHM9IkJ1aWxkIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KICAgPFByb3BlcnR5R3JvdXA+CiAgICAgPENvbmZpZ3VyYXRpb24gQ29uZGl0aW9uPSIgJyQoQ29uZmlndXJhdGlvbiknID09ICcnICI+RGVidWc8L0NvbmZpZ3VyYXRpb24+CkBAIC0xMCw3ICsxMCw3IEBACiAgICAgPEFwcERlc2lnbmVyRm9sZGVyPlByb3BlcnRpZXM8L0FwcERlc2lnbmVyRm9sZGVyPgogICAgIDxSb290TmFtZXNwYWNlPkVQUGx1c1Rlc3Q8L1Jvb3ROYW1lc3BhY2U+CiAgICAgPEFzc2VtYmx5TmFtZT5FUFBsdXNUZXN0PC9Bc3NlbWJseU5hbWU+Ci0gICAgPFRhcmdldEZyYW1ld29ya1ZlcnNpb24+djQuNTwvVGFyZ2V0RnJhbWV3b3JrVmVyc2lvbj4KKyAgICA8VGFyZ2V0RnJhbWV3b3JrVmVyc2lvbj52NC43LjI8L1RhcmdldEZyYW1ld29ya1ZlcnNpb24+CiAgICAgPEZpbGVBbGlnbm1lbnQ+NTEyPC9GaWxlQWxpZ25tZW50PgogICAgIDxQcm9qZWN0VHlwZUd1aWRzPnszQUMwOTZEMC1BMUMyLUUxMkMtMTM5MC1BODMzNTgwMUZEQUJ9O3tGQUUwNEVDMC0zMDFGLTExRDMtQkY0Qi0wMEMwNEY3OUVGQkN9PC9Qcm9qZWN0VHlwZUd1aWRzPgogICAgIDxGaWxlVXBncmFkZUZsYWdzPgpkaWZmIC0tZ2l0IGEvTmV0Q29yZVRlc3RzL05ldENvcmVUZXN0cy5jc3Byb2ogYi9OZXRDb3JlVGVzdHMvTmV0Q29yZVRlc3RzLmNzcHJvagpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOGRhZjZkCi0tLSAvZGV2L251bGwKKysrIGIvTmV0Q29yZVRlc3RzL05ldENvcmVUZXN0cy5jc3Byb2oKQEAgLTAsMCArMSwxOCBAQAorPFByb2plY3QgU2RrPSJNaWNyb3NvZnQuTkVULlNkayI+CisgIDxQcm9wZXJ0eUdyb3VwPgorICAgIDxUYXJnZXRGcmFtZXdvcms+bmV0Ni4wPC9UYXJnZXRGcmFtZXdvcms+CisgICAgPE51bGxhYmxlPmVuYWJsZTwvTnVsbGFibGU+CisgICAgPExhbmdWZXJzaW9uPjEwLjA8L0xhbmdWZXJzaW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPFBhY2thZ2VSZWZlcmVuY2UgSW5jbHVkZT0iRmx1ZW50QXNzZXJ0aW9ucyIgVmVyc2lvbj0iNi42LjAiIC8+CisgICAgPFBhY2thZ2VSZWZlcmVuY2UgSW5jbHVkZT0iTVNUZXN0LlRlc3RBZGFwdGVyIiBWZXJzaW9uPSIyLjIuOCIvPgorICAgIDxQYWNrYWdlUmVmZXJlbmNlIEluY2x1ZGU9Ik1TVGVzdC5UZXN0RnJhbWV3b3JrIiBWZXJzaW9uPSIyLjIuOCIgLz4KKyAgICA8UGFja2FnZVJlZmVyZW5jZSBJbmNsdWRlPSJNaWNyb3NvZnQuTkVULlRlc3QuU0RLIiBWZXJzaW9uPSIxNy4xLjAiLz4KKyAgICA8UGFja2FnZVJlZmVyZW5jZSBJbmNsdWRlPSJTeXN0ZW0uVGV4dC5FbmNvZGluZy5Db2RlUGFnZXMiIFZlcnNpb249IjQuMy4wIiAvPgorCisgICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0iLi5cRVBQbHVzXEVQUGx1c1NESy5jc3Byb2oiIC8+CisgICAgCisgICAgPE5vbmUgSW5jbHVkZT0iVGVzdFdvcmtib29rcy8qKiIgQ29weVRvT3V0cHV0RGlyZWN0b3J5PSJQcmVzZXJ2ZU5ld2VzdCIvPgorICA8L0l0ZW1Hcm91cD4KKzwvUHJvamVjdD4KZGlmZiAtLWdpdCBhL05ldENvcmVUZXN0cy9UZXN0V29ya2Jvb2tzL1RpbWVzLnhsc3ggYi9OZXRDb3JlVGVzdHMvVGVzdFdvcmtib29rcy9UaW1lcy54bHN4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjNGE3MWMKLS0tIC9kZXYvbnVsbAorKysgYi9OZXRDb3JlVGVzdHMvVGVzdFdvcmtib29rcy9UaW1lcy54bHN4CkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL05ldENvcmVUZXN0cy9UaW1lVGVzdC5jcyBiL05ldENvcmVUZXN0cy9UaW1lVGVzdC5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOWNjMDM4Ci0tLSAvZGV2L251bGwKKysrIGIvTmV0Q29yZVRlc3RzL1RpbWVUZXN0LmNzCkBAIC0wLDAgKzEsNjUgQEAKK++7v3VzaW5nIFN5c3RlbTsKK3VzaW5nIFN5c3RlbS5JTzsKK3VzaW5nIFN5c3RlbS5MaW5xOwordXNpbmcgU3lzdGVtLlRleHQ7Cit1c2luZyBGbHVlbnRBc3NlcnRpb25zOwordXNpbmcgTWljcm9zb2Z0LlZpc3VhbFN0dWRpby5UZXN0VG9vbHMuVW5pdFRlc3Rpbmc7Cit1c2luZyBPZmZpY2VPcGVuWG1sOworCituYW1lc3BhY2UgTmV0Q29yZVRlc3RzOworCitbVGVzdENsYXNzXQorcHVibGljIGNsYXNzIFRpbWVUZXN0Cit7CisgICAgc3RhdGljIFRpbWVUZXN0KCkKKyAgICB7CisgICAgICAgIEVuY29kaW5nLlJlZ2lzdGVyUHJvdmlkZXIoQ29kZVBhZ2VzRW5jb2RpbmdQcm92aWRlci5JbnN0YW5jZSk7CisgICAgfQorICAgIAorICAgIFtUZXN0TWV0aG9kXQorICAgIHB1YmxpYyB2b2lkIFRlc3RJbmNvcnJlY3REdXJhdGlvbkZyb21PQURhdGUoKQorICAgIHsKKyAgICAgICAgRXhjZWxXb3Jrc2hlZXQuSW5jb3JyZWN0RHVyYXRpb25Gcm9tT0FEYXRlKDIuNzUpLlNob3VsZCgpLkJlKG5ldygxOTAwLCAxLCAxLCAxOCwgMCwgMCkpOworICAgICAgICBFeGNlbFdvcmtzaGVldC5JbmNvcnJlY3REdXJhdGlvbkZyb21PQURhdGUoMS43NSkuU2hvdWxkKCkuQmUobmV3KDE4OTksIDEyLCAzMSwgMTgsIDAsIDApKTsKKyAgICAgICAgRXhjZWxXb3Jrc2hlZXQuSW5jb3JyZWN0RHVyYXRpb25Gcm9tT0FEYXRlKDAuNzUpLlNob3VsZCgpLkJlKG5ldygxODk5LCAxMiwgMzAsIDE4LCAwLCAwKSk7CisgICAgICAgIEV4Y2VsV29ya3NoZWV0LkluY29ycmVjdER1cmF0aW9uRnJvbU9BRGF0ZSgwLjUpLlNob3VsZCgpLkJlKG5ldygxODk5LCAxMiwgMzAsIDEyLCAwLCAwKSk7CisgICAgICAgIEV4Y2VsV29ya3NoZWV0LkluY29ycmVjdER1cmF0aW9uRnJvbU9BRGF0ZSgwLjI1KS5TaG91bGQoKS5CZShuZXcoMTg5OSwgMTIsIDMwLCA2LCAwLCAwKSk7CisKKyAgICAgICAgRXhjZWxXb3Jrc2hlZXQuSW5jb3JyZWN0RHVyYXRpb25Gcm9tT0FEYXRlKDApLlNob3VsZCgpLkJlKG5ldygxODk5LCAxMiwgMzAsIDAsIDAsIDApKTsKKyAgICAgICAgCisgICAgICAgIEV4Y2VsV29ya3NoZWV0LkluY29ycmVjdER1cmF0aW9uRnJvbU9BRGF0ZSgtMC4yNSkuU2hvdWxkKCkuQmUobmV3KDE4OTksIDEyLCAyOSwgMTgsIDAsIDApKTsKKyAgICAgICAgRXhjZWxXb3Jrc2hlZXQuSW5jb3JyZWN0RHVyYXRpb25Gcm9tT0FEYXRlKC0wLjUpLlNob3VsZCgpLkJlKG5ldygxODk5LCAxMiwgMjksIDEyLCAwLCAwKSk7CisgICAgICAgIEV4Y2VsV29ya3NoZWV0LkluY29ycmVjdER1cmF0aW9uRnJvbU9BRGF0ZSgtMC43NSkuU2hvdWxkKCkuQmUobmV3KDE4OTksIDEyLCAyOSwgNiwgMCwgMCkpOworICAgICAgICBFeGNlbFdvcmtzaGVldC5JbmNvcnJlY3REdXJhdGlvbkZyb21PQURhdGUoLTEuNzUpLlNob3VsZCgpLkJlKG5ldygxODk5LCAxMiwgMjgsIDYsIDAsIDApKTsKKyAgICAgICAgRXhjZWxXb3Jrc2hlZXQuSW5jb3JyZWN0RHVyYXRpb25Gcm9tT0FEYXRlKC0yLjc1KS5TaG91bGQoKS5CZShuZXcoMTg5OSwgMTIsIDI3LCA2LCAwLCAwKSk7CisgICAgfQorCisgICAgW1Rlc3RNZXRob2RdCisgICAgcHVibGljIHZvaWQgVGVzdERhdGVQYXJzZSgpCisgICAgeworICAgICAgICB1c2luZyB2YXIgcGFja2FnZSA9IG5ldyBFeGNlbFBhY2thZ2UobmV3IEZpbGVJbmZvKEdldFRlc3RXb3JrYm9va1BhdGgoIlRpbWVzLnhsc3giKSkpOworICAgICAgICB2YXIgc2hlZXQgPSBwYWNrYWdlLldvcmtib29rLldvcmtzaGVldHMuRmlyc3QoKTsKKworICAgICAgICBzaGVldC5DZWxsc1siQjMiXS5WYWx1ZS5TaG91bGQoKS5CZShuZXcgRGF0ZVRpbWUoMTg5OSwgMTIsIDMwLCAzLCAxNSwgMzApKTsKKyAgICAgICAgc2hlZXQuQ2VsbHNbIkMzIl0uVmFsdWUuU2hvdWxkKCkuQmUobmV3IERhdGVUaW1lKDE4OTksIDEyLCAzMCwgMywgMTUsIDApKTsKKyAgICAgICAgc2hlZXQuQ2VsbHNbIkQzIl0uVmFsdWUuU2hvdWxkKCkuQmUoMC4xMzU0MTY2NjY2NjY2NjY2Nik7CisgICAgICAgIHNoZWV0LkNlbGxzWyJFMyJdLlZhbHVlLlNob3VsZCgpLkJlKG5ldyBEYXRlVGltZSgxODk5LCAxMiwgMzAsIDMsIDE1LCAzMCkpOworICAgICAgICBzaGVldC5DZWxsc1siRjMiXS5WYWx1ZS5TaG91bGQoKS5CZSgwLjEzNTc2Mzg4ODg4ODg4ODg4KTsKKyAgICAgICAgc2hlZXQuQ2VsbHNbIkczIl0uVmFsdWUuU2hvdWxkKCkuQmUoMC4xMzU0MTY2NjY2NjY2NjY2Nik7CisgICAgICAgIHNoZWV0LkNlbGxzWyJIMyJdLlZhbHVlLlNob3VsZCgpLkJlKG5ldyBEYXRlVGltZSgxODk5LCAxMiwgMzAsIDMsIDE1LCAzMCkpOworICAgICAgICAKKyAgICAgICAgc2hlZXQuQ2VsbHNbIkI3Il0uVmFsdWUuU2hvdWxkKCkuQmUobmV3IERhdGVUaW1lKDE4OTksIDEyLCAzMCwgMjMsIDU5LCA1OSkpOworICAgICAgICBzaGVldC5DZWxsc1siQzciXS5WYWx1ZS5TaG91bGQoKS5CZShuZXcgRGF0ZVRpbWUoMTg5OSwgMTIsIDMwLCAyMywgNTksIDApKTsKKyAgICAgICAgc2hlZXQuQ2VsbHNbIkQ3Il0uVmFsdWUuU2hvdWxkKCkuQmUoMC45OTkzMDU1NTU1NTU1NTU2KTsKKyAgICAgICAgc2hlZXQuQ2VsbHNbIkU3Il0uVmFsdWUuU2hvdWxkKCkuQmUobmV3IERhdGVUaW1lKDE4OTksIDEyLCAzMCwgMjMsIDU5LCA1OSkpOworICAgICAgICBzaGVldC5DZWxsc1siRjciXS5WYWx1ZS5TaG91bGQoKS5CZSgwLjk5OTk4ODQyNTkyNTkyNik7CisgICAgICAgIHNoZWV0LkNlbGxzWyJHNyJdLlZhbHVlLlNob3VsZCgpLkJlKDAuOTk5MzA1NTU1NTU1NTU1Nik7CisgICAgICAgIHNoZWV0LkNlbGxzWyJINyJdLlZhbHVlLlNob3VsZCgpLkJlKG5ldyBEYXRlVGltZSgxODk5LCAxMiwgMzAsIDIzLCA1OSwgNTkpKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBzdHJpbmcgR2V0VGVzdFdvcmtib29rUGF0aChzdHJpbmcgZmlsZW5hbWUpCisgICAgeworICAgICAgICB2YXIgYXNzZW1ibHlQYXRoID0gUGF0aC5HZXREaXJlY3RvcnlOYW1lKHR5cGVvZihUaW1lVGVzdCkuQXNzZW1ibHkuTG9jYXRpb24pITsKKyAgICAgICAgcmV0dXJuIFBhdGguQ29tYmluZShhc3NlbWJseVBhdGgsICJUZXN0V29ya2Jvb2tzIiwgZmlsZW5hbWUpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL05ldEZyYW1ld29ya1Rlc3RzL05ldEZyYW1ld29ya1Rlc3RzLmNzcHJvaiBiL05ldEZyYW1ld29ya1Rlc3RzL05ldEZyYW1ld29ya1Rlc3RzLmNzcHJvagpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNDJmY2Y1Ci0tLSAvZGV2L251bGwKKysrIGIvTmV0RnJhbWV3b3JrVGVzdHMvTmV0RnJhbWV3b3JrVGVzdHMuY3Nwcm9qCkBAIC0wLDAgKzEsMTggQEAKKzxQcm9qZWN0IFNkaz0iTWljcm9zb2Z0Lk5FVC5TZGsiPgorICA8UHJvcGVydHlHcm91cD4KKyAgICA8VGFyZ2V0RnJhbWV3b3JrPm5ldDQ3MjwvVGFyZ2V0RnJhbWV3b3JrPgorICAgIDxOdWxsYWJsZT5lbmFibGU8L051bGxhYmxlPgorICAgIDxMYW5nVmVyc2lvbj4xMC4wPC9MYW5nVmVyc2lvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxQYWNrYWdlUmVmZXJlbmNlIEluY2x1ZGU9IkZsdWVudEFzc2VydGlvbnMiIFZlcnNpb249IjYuNi4wIiAvPgorICAgIDxQYWNrYWdlUmVmZXJlbmNlIEluY2x1ZGU9Ik1TVGVzdC5UZXN0QWRhcHRlciIgVmVyc2lvbj0iMi4yLjgiLz4KKyAgICA8UGFja2FnZVJlZmVyZW5jZSBJbmNsdWRlPSJNU1Rlc3QuVGVzdEZyYW1ld29yayIgVmVyc2lvbj0iMi4yLjgiIC8+CisgICAgPFBhY2thZ2VSZWZlcmVuY2UgSW5jbHVkZT0iTWljcm9zb2Z0Lk5FVC5UZXN0LlNESyIgVmVyc2lvbj0iMTcuMS4wIi8+CisgICAgPFBhY2thZ2VSZWZlcmVuY2UgSW5jbHVkZT0iU3lzdGVtLlRleHQuRW5jb2RpbmcuQ29kZVBhZ2VzIiBWZXJzaW9uPSI0LjMuMCIgLz4KKworICAgIDxQcm9qZWN0UmVmZXJlbmNlIEluY2x1ZGU9Ii4uXEVQUGx1c1xFUFBsdXNTREsuY3Nwcm9qIiAvPgorCisgICAgPE5vbmUgSW5jbHVkZT0iVGVzdFdvcmtib29rcy8qKiIgQ29weVRvT3V0cHV0RGlyZWN0b3J5PSJQcmVzZXJ2ZU5ld2VzdCIvPgorICA8L0l0ZW1Hcm91cD4KKzwvUHJvamVjdD4KZGlmZiAtLWdpdCBhL05ldEZyYW1ld29ya1Rlc3RzL1Rlc3RXb3JrYm9va3MvVGltZXMueGxzeCBiL05ldEZyYW1ld29ya1Rlc3RzL1Rlc3RXb3JrYm9va3MvVGltZXMueGxzeApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYzRhNzFjCi0tLSAvZGV2L251bGwKKysrIGIvTmV0RnJhbWV3b3JrVGVzdHMvVGVzdFdvcmtib29rcy9UaW1lcy54bHN4CkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL05ldEZyYW1ld29ya1Rlc3RzL1RpbWVUZXN0LmNzIGIvTmV0RnJhbWV3b3JrVGVzdHMvVGltZVRlc3QuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWRkZGRiZQotLS0gL2Rldi9udWxsCisrKyBiL05ldEZyYW1ld29ya1Rlc3RzL1RpbWVUZXN0LmNzCkBAIC0wLDAgKzEsNjUgQEAKK++7v3VzaW5nIFN5c3RlbTsKK3VzaW5nIFN5c3RlbS5JTzsKK3VzaW5nIFN5c3RlbS5MaW5xOwordXNpbmcgU3lzdGVtLlRleHQ7Cit1c2luZyBGbHVlbnRBc3NlcnRpb25zOwordXNpbmcgTWljcm9zb2Z0LlZpc3VhbFN0dWRpby5UZXN0VG9vbHMuVW5pdFRlc3Rpbmc7Cit1c2luZyBPZmZpY2VPcGVuWG1sOworCituYW1lc3BhY2UgTmV0RnJhbWV3b3JrVGVzdHM7CisKK1tUZXN0Q2xhc3NdCitwdWJsaWMgY2xhc3MgVGltZVRlc3QKK3sKKyAgICBzdGF0aWMgVGltZVRlc3QoKQorICAgIHsKKyAgICAgICAgRW5jb2RpbmcuUmVnaXN0ZXJQcm92aWRlcihDb2RlUGFnZXNFbmNvZGluZ1Byb3ZpZGVyLkluc3RhbmNlKTsKKyAgICB9CisgICAgCisgICAgW1Rlc3RNZXRob2RdCisgICAgcHVibGljIHZvaWQgVGVzdEluY29ycmVjdER1cmF0aW9uRnJvbU9BRGF0ZSgpCisgICAgeworICAgICAgICBFeGNlbFdvcmtzaGVldC5JbmNvcnJlY3REdXJhdGlvbkZyb21PQURhdGUoMi43NSkuU2hvdWxkKCkuQmUobmV3KDE5MDAsIDEsIDEsIDE4LCAwLCAwKSk7CisgICAgICAgIEV4Y2VsV29ya3NoZWV0LkluY29ycmVjdER1cmF0aW9uRnJvbU9BRGF0ZSgxLjc1KS5TaG91bGQoKS5CZShuZXcoMTg5OSwgMTIsIDMxLCAxOCwgMCwgMCkpOworICAgICAgICBFeGNlbFdvcmtzaGVldC5JbmNvcnJlY3REdXJhdGlvbkZyb21PQURhdGUoMC43NSkuU2hvdWxkKCkuQmUobmV3KDE4OTksIDEyLCAzMCwgMTgsIDAsIDApKTsKKyAgICAgICAgRXhjZWxXb3Jrc2hlZXQuSW5jb3JyZWN0RHVyYXRpb25Gcm9tT0FEYXRlKDAuNSkuU2hvdWxkKCkuQmUobmV3KDE4OTksIDEyLCAzMCwgMTIsIDAsIDApKTsKKyAgICAgICAgRXhjZWxXb3Jrc2hlZXQuSW5jb3JyZWN0RHVyYXRpb25Gcm9tT0FEYXRlKDAuMjUpLlNob3VsZCgpLkJlKG5ldygxODk5LCAxMiwgMzAsIDYsIDAsIDApKTsKKworICAgICAgICBFeGNlbFdvcmtzaGVldC5JbmNvcnJlY3REdXJhdGlvbkZyb21PQURhdGUoMCkuU2hvdWxkKCkuQmUobmV3KDE4OTksIDEyLCAzMCwgMCwgMCwgMCkpOworICAgICAgICAKKyAgICAgICAgRXhjZWxXb3Jrc2hlZXQuSW5jb3JyZWN0RHVyYXRpb25Gcm9tT0FEYXRlKC0wLjI1KS5TaG91bGQoKS5CZShuZXcoMTg5OSwgMTIsIDI5LCAxOCwgMCwgMCkpOworICAgICAgICBFeGNlbFdvcmtzaGVldC5JbmNvcnJlY3REdXJhdGlvbkZyb21PQURhdGUoLTAuNSkuU2hvdWxkKCkuQmUobmV3KDE4OTksIDEyLCAyOSwgMTIsIDAsIDApKTsKKyAgICAgICAgRXhjZWxXb3Jrc2hlZXQuSW5jb3JyZWN0RHVyYXRpb25Gcm9tT0FEYXRlKC0wLjc1KS5TaG91bGQoKS5CZShuZXcoMTg5OSwgMTIsIDI5LCA2LCAwLCAwKSk7CisgICAgICAgIEV4Y2VsV29ya3NoZWV0LkluY29ycmVjdER1cmF0aW9uRnJvbU9BRGF0ZSgtMS43NSkuU2hvdWxkKCkuQmUobmV3KDE4OTksIDEyLCAyOCwgNiwgMCwgMCkpOworICAgICAgICBFeGNlbFdvcmtzaGVldC5JbmNvcnJlY3REdXJhdGlvbkZyb21PQURhdGUoLTIuNzUpLlNob3VsZCgpLkJlKG5ldygxODk5LCAxMiwgMjcsIDYsIDAsIDApKTsKKyAgICB9CisKKyAgICBbVGVzdE1ldGhvZF0KKyAgICBwdWJsaWMgdm9pZCBUZXN0RGF0ZVBhcnNlKCkKKyAgICB7CisgICAgICAgIHVzaW5nIHZhciBwYWNrYWdlID0gbmV3IEV4Y2VsUGFja2FnZShuZXcgRmlsZUluZm8oR2V0VGVzdFdvcmtib29rUGF0aCgiVGltZXMueGxzeCIpKSk7CisgICAgICAgIHZhciBzaGVldCA9IHBhY2thZ2UuV29ya2Jvb2suV29ya3NoZWV0cy5GaXJzdCgpOworCisgICAgICAgIHNoZWV0LkNlbGxzWyJCMyJdLlZhbHVlLlNob3VsZCgpLkJlKG5ldyBEYXRlVGltZSgxODk5LCAxMiwgMzAsIDMsIDE1LCAzMCkpOworICAgICAgICBzaGVldC5DZWxsc1siQzMiXS5WYWx1ZS5TaG91bGQoKS5CZShuZXcgRGF0ZVRpbWUoMTg5OSwgMTIsIDMwLCAzLCAxNSwgMCkpOworICAgICAgICBzaGVldC5DZWxsc1siRDMiXS5WYWx1ZS5TaG91bGQoKS5CZSgwLjEzNTQxNjY2NjY2NjY2NjY2KTsKKyAgICAgICAgc2hlZXQuQ2VsbHNbIkUzIl0uVmFsdWUuU2hvdWxkKCkuQmUobmV3IERhdGVUaW1lKDE4OTksIDEyLCAzMCwgMywgMTUsIDMwKSk7CisgICAgICAgIHNoZWV0LkNlbGxzWyJGMyJdLlZhbHVlLlNob3VsZCgpLkJlKDAuMTM1NzYzODg4ODg4ODg4ODgpOworICAgICAgICBzaGVldC5DZWxsc1siRzMiXS5WYWx1ZS5TaG91bGQoKS5CZSgwLjEzNTQxNjY2NjY2NjY2NjY2KTsKKyAgICAgICAgc2hlZXQuQ2VsbHNbIkgzIl0uVmFsdWUuU2hvdWxkKCkuQmUobmV3IERhdGVUaW1lKDE4OTksIDEyLCAzMCwgMywgMTUsIDMwKSk7CisgICAgICAgIAorICAgICAgICBzaGVldC5DZWxsc1siQjciXS5WYWx1ZS5TaG91bGQoKS5CZShuZXcgRGF0ZVRpbWUoMTg5OSwgMTIsIDMwLCAyMywgNTksIDU5KSk7CisgICAgICAgIHNoZWV0LkNlbGxzWyJDNyJdLlZhbHVlLlNob3VsZCgpLkJlKG5ldyBEYXRlVGltZSgxODk5LCAxMiwgMzAsIDIzLCA1OSwgMCkpOworICAgICAgICBzaGVldC5DZWxsc1siRDciXS5WYWx1ZS5TaG91bGQoKS5CZSgwLjk5OTMwNTU1NTU1NTU1NTYpOworICAgICAgICBzaGVldC5DZWxsc1siRTciXS5WYWx1ZS5TaG91bGQoKS5CZShuZXcgRGF0ZVRpbWUoMTg5OSwgMTIsIDMwLCAyMywgNTksIDU5KSk7CisgICAgICAgIHNoZWV0LkNlbGxzWyJGNyJdLlZhbHVlLlNob3VsZCgpLkJlKDAuOTk5OTg4NDI1OTI1OTI2KTsKKyAgICAgICAgc2hlZXQuQ2VsbHNbIkc3Il0uVmFsdWUuU2hvdWxkKCkuQmUoMC45OTkzMDU1NTU1NTU1NTU2KTsKKyAgICAgICAgc2hlZXQuQ2VsbHNbIkg3Il0uVmFsdWUuU2hvdWxkKCkuQmUobmV3IERhdGVUaW1lKDE4OTksIDEyLCAzMCwgMjMsIDU5LCA1OSkpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHN0cmluZyBHZXRUZXN0V29ya2Jvb2tQYXRoKHN0cmluZyBmaWxlbmFtZSkKKyAgICB7CisgICAgICAgIHZhciBhc3NlbWJseVBhdGggPSBQYXRoLkdldERpcmVjdG9yeU5hbWUodHlwZW9mKFRpbWVUZXN0KS5Bc3NlbWJseS5Mb2NhdGlvbikhOworICAgICAgICByZXR1cm4gUGF0aC5Db21iaW5lKGFzc2VtYmx5UGF0aCwgIlRlc3RXb3JrYm9va3MiLCBmaWxlbmFtZSk7CisgICAgfQorfQo=