ZGlmZiAtLWdpdCBhL2Qvc2VoZXIvaGFldXNlci9tb2ViZWwvc2NobHVlc3NlbGJyZXR0LmMgYi9kL3NlaGVyL2hhZXVzZXIvbW9lYmVsL3NjaGx1ZXNzZWxicmV0dC5jCmluZGV4IGYzOWYwNGUuLmIwNzY2N2UgMTAwNjQ0Ci0tLSBhL2Qvc2VoZXIvaGFldXNlci9tb2ViZWwvc2NobHVlc3NlbGJyZXR0LmMKKysrIGIvZC9zZWhlci9oYWV1c2VyL21vZWJlbC9zY2hsdWVzc2VsYnJldHQuYwpAQCAtMyw3ICszLDcgQEAKIC8vIExldHp0ZSBBZW5kZXJ1bmc6ICAgIDAyLjA2LjIwMDEKIC8vIE9yaWdpbmFsOiAgICAgICAgICAgIFN3aWZ0CiAvLyBOZXVlIFZlcnNpb246ICAgICAgICBTZWxldmVuCi0vLyDcYmVybm9tbWVuOiAgICAgICAgICAyMy4wMS4yMDA2CisvLyDDnGJlcm5vbW1lbjogICAgICAgICAgMjMuMDEuMjAwNgogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIC8qIENoYW5nZWxvZwogICAgKiAyMS4wNi4yMDA3LCBaZXNzdHJhCmRpZmYgLS1naXQgYS9kL3NlaGVyL2hhZXVzZXIvdG9vbHMvZ2VuZXJhdG9yLmMgYi9kL3NlaGVyL2hhZXVzZXIvdG9vbHMvZ2VuZXJhdG9yLmMKaW5kZXggMzI1NGMyYi4uYWMwMzM4NiAxMDA2NDQKLS0tIGEvZC9zZWhlci9oYWV1c2VyL3Rvb2xzL2dlbmVyYXRvci5jCisrKyBiL2Qvc2VoZXIvaGFldXNlci90b29scy9nZW5lcmF0b3IuYwpAQCAtNDkzLDcgKzQ5Myw3IEBACiAgIH0KIAogICAvLyBGYWxscyB3aXIgZGllIGV2YWxfY29zdCBhdXNnZXJlaXp0IGhhYmVuLCBhYmVyIG5vY2ggbmljaHQKLSAgLy8gYWxsZSBFaW50cuRnZSBiZWFyYmVpdGV0IHd1cmRlbiwgd2lyZCBqZXR6dCBkaWUgbmFlY2hzdGUKKyAgLy8gYWxsZSBFaW50csOkZ2UgYmVhcmJlaXRldCB3dXJkZW4sIHdpcmQgamV0enQgZGllIG5hZWNoc3RlCiAgIC8vIFJ1bmRlIGdlc3RhcnRldAogICBpZiAoaSA+PSAwKQogICB7CkBAIC01NDAsNyArNTQwLDcgQEAKICAgfQogCiAgIC8vIEZhbGxzIHdpciBkaWUgZXZhbF9jb3N0IGF1c2dlcmVpenQgaGFiZW4sIGFiZXIgbm9jaCBuaWNodAotICAvLyBhbGxlIEVpbnRy5GdlIGJlYXJiZWl0ZXQgd3VyZGVuLCB3aXJkIGpldHp0IGRpZSBuYWVjaHN0ZQorICAvLyBhbGxlIEVpbnRyw6RnZSBiZWFyYmVpdGV0IHd1cmRlbiwgd2lyZCBqZXR6dCBkaWUgbmFlY2hzdGUKICAgLy8gUnVuZGUgZ2VzdGFydGV0CiAgIGlmIChpID49IDApCiAgIHsKZGlmZiAtLWdpdCBhL2RvYy9iZWlzcGllbGUvbWFzdGVyL29wZmVyc3RvY2suYyBiL2RvYy9iZWlzcGllbGUvbWFzdGVyL29wZmVyc3RvY2suYwppbmRleCAwNDhhNDYxLi45MGQ4MzgxIDEwMDY0NAotLS0gYS9kb2MvYmVpc3BpZWxlL21hc3Rlci9vcGZlcnN0b2NrLmMKKysrIGIvZG9jL2JlaXNwaWVsZS9tYXN0ZXIvb3BmZXJzdG9jay5jCkBAIC05Nyw3ICs5Nyw3IEBACiAJLy8gSGllciB3aXJkIGRlciBNYXN0ZXIgYXVmZ2VydWZlbiwgZGVyIGRhcyBBbGlnbm1lbnQgZGVyIFNwaWVsZXIKIAkvLyBkYW5uIGFlbmRlcnQuCiAJaWYoIE9TX01BU1RFUi0+YWRkQWxpZ25tZW50KCBQTCwgYW56LzMgKSA+IDAgKSB7Ci0JCS8vIEVpZ2VudGxpY2gga/ZubnRlIG1hbiBoaWVyIGF1Y2ggZGllIE1lbGR1bmcgYXVzZ2ViZW4sIGFiZXIKKwkJLy8gRWlnZW50bGljaCBrw7ZubnRlIG1hbiBoaWVyIGF1Y2ggZGllIE1lbGR1bmcgYXVzZ2ViZW4sIGFiZXIKIAkJLy8gZGVyIFNwaWVsZXIgc29sbCBkZW4gVW50ZXJzY2hpZWQgendpc2NoZW4gQWxpZ25tZW50IGdlYWVuZGVydAogCQkvLyB1bnQgQWxpZ25tZW50IG5pY2h0IGdlYWVuZGVydCBzZWhlbiBrb2VubmVuLgogCX0KZGlmZiAtLWdpdCBhL2RvYy9iZWlzcGllbGUvbWFzdGVyL29wZmVyc3RvY2ttYXN0ZXIuYyBiL2RvYy9iZWlzcGllbGUvbWFzdGVyL29wZmVyc3RvY2ttYXN0ZXIuYwppbmRleCAzM2EwODFmLi41NmRiYTA2IDEwMDY0NAotLS0gYS9kb2MvYmVpc3BpZWxlL21hc3Rlci9vcGZlcnN0b2NrbWFzdGVyLmMKKysrIGIvZG9jL2JlaXNwaWVsZS9tYXN0ZXIvb3BmZXJzdG9ja21hc3Rlci5jCkBAIC02OCw3ICs2OCw3IEBACiB9CiAKIC8vIERpZXNlIEZ1bmt0aW9uIGlzdCBkaWUgZWluZ2V0bGljaGUgRnVua3Rpb24sIGRpZSAiZ2VtYXN0ZXJ0IiB3ZXJkZW4KLS8vIHNvbGwsIGFsc28gZvxyIG1laHJlcmUgT3BmZXJzdG9lY2tlIGdlbWVpbnNhbSBiZW51dHp0IHdpcmQuCisvLyBzb2xsLCBhbHNvIGbDvHIgbWVocmVyZSBPcGZlcnN0b2Vja2UgZ2VtZWluc2FtIGJlbnV0enQgd2lyZC4KIC8vIERlciBPcGZlcnN0b2NrIHVlYmVyZ2lidCBkYXMgU3BpZWxlcm9iamVrdCB1bmQgZGllIGdld3VlbnNjaHRlCiAvLyBBbGlnbm1lbnRhZW5kZXJ1bmcsIGFscyBFcmdlYm5pcyB3aXJkIDEgZ2VsaWVmZXJ0LCB3ZW5uIGVpbmUgQWVuZGVydW5nCiAvLyB2b3JnZW5vbW1lbiB3dXJkZSAoMCBzb25zdCkgdW5kIGRhcyBBbGlnbm1lbnQgZGVzIFNwaWVsZXJzIGVudHNwcmVjaGVuZApkaWZmIC0tZ2l0IGEvcC9kYWVtb24vcGF0aGQuYyBiL3AvZGFlbW9uL3BhdGhkLmMKaW5kZXggMTdkMzRhZC4uYTNkZTE3ZSAxMDA2NDQKLS0tIGEvcC9kYWVtb24vcGF0aGQuYworKysgYi9wL2RhZW1vbi9wYXRoZC5jCkBAIC0zNTYsNyArMzU2LDcgQEAKIH0KIAogLy8gRGllIEZ1bmt0aW9uIGdpYnQgYWxsZSBkZW0gcGF0aGQgYmVrYW5udGVuIFJhZXVtZSBhbHMgTWFwcGluZyB2b24gQXJyYXlzCi0vLyB6dXJ1ZWNrLiBTY2hs/HNzZWwgZGVzIE1hcHBpbmdzIHNpbmQgZGFiZWkgR2ViaWV0ZS4KKy8vIHp1cnVlY2suIFNjaGzDvHNzZWwgZGVzIE1hcHBpbmdzIHNpbmQgZGFiZWkgR2ViaWV0ZS4KIHB1YmxpYyBtYXBwaW5nIGdldF9yb29tcygpCiB7CiAgIHN0cmluZyAqc3VibWFwczsKQEAgLTk3Niw3ICs5NzYsNyBAQAogfQogCiAKLS8vIFp1bSBEZWJ1Z2dlbi4gTnVyIGb8ciBUaWFtYWsuIEJ6dy4gbnVuIGZ1ZXIgWm9vaywgVmFuaW9uLCBSdW1hdGEKKy8vIFp1bSBEZWJ1Z2dlbi4gTnVyIGbDvHIgVGlhbWFrLiBCencuIG51biBmdWVyIFpvb2ssIFZhbmlvbiwgUnVtYXRhCiAjZGVmaW5lIEFMTE9XRUQgKHsiem9vayIsInZhbmlvbiIsInJ1bWF0YSIsInplc3N0cmEiLCJodW1uaSJ9KQogI2RlZmluZSBNQVRDSCh4LHkpIChzaXplb2YocmVnZXhwKHgseSkpKQogcHVibGljIG1hcHBpbmcgZ2V0X3BhdGhtYXAoKQpkaWZmIC0tZ2l0IGEvcC9zZXJ2aWNlL3BhZHJlaWMvbW5wYy9tb3ZpbmcuYyBiL3Avc2VydmljZS9wYWRyZWljL21ucGMvbW92aW5nLmMKaW5kZXggODViZjRkNC4uYzg2ODc1NyAxMDA2NDQKLS0tIGEvcC9zZXJ2aWNlL3BhZHJlaWMvbW5wYy9tb3ZpbmcuYworKysgYi9wL3NlcnZpY2UvcGFkcmVpYy9tbnBjL21vdmluZy5jCkBAIC0yNjksNyArMjY5LDcgQEAKICAgICAgICAgIGVsc2UgaWYgKGZpbGVfc2l6ZSh2Yz1pbXBsb2RlKGV4cGxvZGUoZm4sIi8iKVswLi48Ml0sIi8iKQogICAgICAgICAgICAgICAgICAgKyIvdmlydHVhbF9jb21waWxlci5jIik+MCkKICAgICAgICAgIHsKLSAgICAgICAgICAgIC8vIHdlbm4gZWluIFZDIGV4aXN0aWVydCwgcHL8ZmVuIG9iIGRpZXNlciBQYXJhT2JqZWN0ZSB1bnRlcnN0dWV0enQKKyAgICAgICAgICAgIC8vIHdlbm4gZWluIFZDIGV4aXN0aWVydCwgcHLDvGZlbiBvYiBkaWVzZXIgUGFyYU9iamVjdGUgdW50ZXJzdHVldHp0CiAgICAgICAgICAgICAvLyB3ZW5uIGphLCBkYW5uIHRlc3RlbiBvYiBzaWNoIFJhdW0gbGFkZW4gbGFlc3N0Li4uCiAgICAgICAgICAgICBpZiAoKCFjYXRjaCh0bXA9KGludCljYWxsX290aGVyKHZjLCJOb1BhcmFPYmplY3RzIikpICYmICghdG1wKSkgJiYKICAgICAgICAgICAgICAgICAoIWNhdGNoKGNhbGxfb3RoZXIoIGZuLCAiPz8/IiApKSkpCkBAIC0zMDUsNyArMzA1LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgKHNpemVvZihtb3V0KSA+IDEgPyBtb3V0WzFdIDogIiIpICsgIi5cbiIgKTsKICAgICAgIH0KIAotICAgICAgLy8gbnVuIGRpZSBNZWxkdW5nIGb8ciBkYXMgIkJldHJldGVuIiBkZXMgUmF1bWVzLi4uCisgICAgICAvLyBudW4gZGllIE1lbGR1bmcgZsO8ciBkYXMgIkJldHJldGVuIiBkZXMgUmF1bWVzLi4uCiAKICAgICAgIGlmICggbWV0aG9kICYgTV9UUE9SVCApCiAgICAgICAgIHRleHRpbiA9IChzdHJpbmcpIFF1ZXJ5UHJvcChQX01NU0dJTik7CmRpZmYgLS1naXQgYS9yb29tL2RlYXRoL2RlYXRoX21hcmtfaG9va2VkLmMgYi9yb29tL2RlYXRoL2RlYXRoX21hcmtfaG9va2VkLmMKaW5kZXggMGUwOWU4Zi4uZDIwN2QwYSAxMDA2NDQKLS0tIGEvcm9vbS9kZWF0aC9kZWF0aF9tYXJrX2hvb2tlZC5jCisrKyBiL3Jvb20vZGVhdGgvZGVhdGhfbWFya19ob29rZWQuYwpAQCAtNDQsNyArNDQsNyBAQAogICBlbnZpcm9ubWVudCgpLT5tb3ZlKCIvcm9vbS9kZWF0aC92aXJ0dWFsL2RlYXRoX3Jvb21fIitnZXR1aWQoZW52aXJvbm1lbnQoKSksCiAJCSAgICAgTV9HT3xNX1NJTEVOVHxNX05PX1NIT1d8TV9OT0NIRUNLKTsKICAgLy8gRGVyIGZvbGdlbmRlIENvZGUgdmVyaGluZGVydCwgZGFzcyBlaW4gdW5iZWRhY2h0ZXIgTWFnaWVyIGltIGluaXQKLSAgLy8gb2RlciBleGl0IGVpbmVuIFNwaWVsZXIgdPZ0ZXQsIHVuZCBpaG4gZGlya2V0IGRhbmFjaCBtb3ZldC4KKyAgLy8gb2RlciBleGl0IGVpbmVuIFNwaWVsZXIgdMO2dGV0LCB1bmQgaWhuIGRpcmtldCBkYW5hY2ggbW92ZXQuCiAgIGVudmlyb25tZW50KCktPlNldFByb3AoUF9UTVBfTU9WRV9IT09LLCh7dGltZSgpKzEwLHRoaXNfb2JqZWN0KCksImNhdGNoX2RpZV9tb3ZlIn0pKTsgIAogfQogCmRpZmYgLS1naXQgYS9zZWN1cmUva3JhdXRtYXN0ZXIuYyBiL3NlY3VyZS9rcmF1dG1hc3Rlci5jCmluZGV4IDFiNWY2ZDguLmNjODQwMDUgMTAwNjQ0Ci0tLSBhL3NlY3VyZS9rcmF1dG1hc3Rlci5jCisrKyBiL3NlY3VyZS9rcmF1dG1hc3Rlci5jCkBAIC00MTQsNyArNDE0LDcgQEAKICAgIHJldHVybiAxOwogfQogCi0vLyBIaWxmc2Z1bmt0aW9uIHdpcmQgenVtIGVpbnBhcnNlbiBiZW72dGlndAorLy8gSGlsZnNmdW5rdGlvbiB3aXJkIHp1bSBlaW5wYXJzZW4gYmVuw7Z0aWd0CiAvLyB3YW5kZWx0IHouQi4gZGVuIHN0cmluZyB2b24gImggNTAwIiBpbiAoeyAzLCA1MDAgfSkgdW0KIHByaXZhdGUgbm9tYXNrIDxzdHJpbmd8aW50PiogYnVpbGRBdHRyQXJyKHN0cmluZyBhdHRyKQogewpAQCAtMTEzNCw3ICsxMTM0LDcgQEAKIG1hcHBpbmcgbWFrZV9wb3Rpb24ob2JqZWN0KiBwbGFudHMpCiB7CiAgIC8vIC0+IG1hcHB0IG5pY2h0LU9iamVrdCB6dSAwLCBhYmVyIDAgaXN0IGF1Y2ggbmUgZ3VlbHRpZ2UgUGxhbnRJRC4gRGFoZXIKLSAgLy8gbfxzc2VuIHplcnN0b2VydGVuIE9iamVrdGUgdm9yaGVyIHJhdXMuCisgIC8vIG3DvHNzZW4gemVyc3RvZXJ0ZW4gT2JqZWt0ZSB2b3JoZXIgcmF1cy4KICAgLy8gVE9ETzogZHJhdWYgdmVybGFzc2VuLCBkYXNzIG51ciBpbnRha3RlIE9iamVrdCBlbnRoYWx0ZW4gc2luZD8KICAgaWYgKG1lbWJlcihwbGFudHMsIDApID49IDApCiAgICAgcmFpc2VfZXJyb3Ioc3ByaW50ZigibWFrZV9wb3Rpb24oKSBnb3QgaW52YWxpZCBvYmplY3QgaW4gcGxhbnQgYXJyYXkgIgpkaWZmIC0tZ2l0IGEvc3BlbGxib29rcy9hYl9zcGVsbHMuYyBiL3NwZWxsYm9va3MvYWJfc3BlbGxzLmMKaW5kZXggMDYzNzM1OS4uZDcwNmExZiAxMDA2NDQKLS0tIGEvc3BlbGxib29rcy9hYl9zcGVsbHMuYworKysgYi9zcGVsbGJvb2tzL2FiX3NwZWxscy5jCkBAIC03OSw3ICs3OSw3IEBACiAgICAgICAgICAgICAgLy8gRGFtYWdlIFR5cGU6IE1hZ2ljCiAgICAgICAgICAgICAgU0lfTUFHSUNfVFlQRTogKHsgTVRfQU5HUklGRiB9KSwKICAgICAgICAgICAgICBTSV9TUEVMTDogKFsgU1BfTkFNRTogInBmZWlsIiBdKSwKLSAgICAgICAgICAgICAvLyBCb25pIGb8ciBoaW50ZXJlIEthbXBmcmVpaGVuCisgICAgICAgICAgICAgLy8gQm9uaSBmw7xyIGhpbnRlcmUgS2FtcGZyZWloZW4KICAgICAgICAgICAgICBTSV9TS0lMTERBTUFHRV9CWV9ST1c6IChbMjoxMTAsMzo1MCw0OjEwXSksCiAgICAgICAgICAgICAgT0ZGU0VUKFNJX1NLSUxMREFNQUdFX0JZX1JPVyk6IChbMjo1MCwzOjIwLDQ6NV0pCiAgICAgICAgICAgICAgXSkpOwpkaWZmIC0tZ2l0IGEvc3RkL3BsYXllci9pbnZtYXN0ZXIvaW52bWFzdGVyLmMgYi9zdGQvcGxheWVyL2ludm1hc3Rlci9pbnZtYXN0ZXIuYwppbmRleCA2ZWNhYzkxLi5iNzY5ODIyIDEwMDY0NAotLS0gYS9zdGQvcGxheWVyL2ludm1hc3Rlci9pbnZtYXN0ZXIuYworKysgYi9zdGQvcGxheWVyL2ludm1hc3Rlci9pbnZtYXN0ZXIuYwpAQCAtMSw1ICsxLDUgQEAKIC8vIGludm1hc3Rlci5jIGJ5IE5hY2h0d2luZEBNRyBWMS4xICg1LjMuMjAwMSkKLS8vIEEgc21hbGwgbWFzdGVyIHRoYXQgcHJvdmlkZXMgYSBncmFwaGljYWwgZGlzcGxheSBvZiB0aGUgcGxheWVytHMKKy8vIEEgc21hbGwgbWFzdGVyIHRoYXQgcHJvdmlkZXMgYSBncmFwaGljYWwgZGlzcGxheSBvZiB0aGUgcGxheWVywrRzCiAvLyBlcXVpcG1lbnQuIAogI3ByYWdtYSBzdHJvbmdfdHlwZXMKICNwcmFnbWEgc2F2ZV90eXBlcyxydHRfY2hlY2tzCkBAIC02Nyw3ICs2Nyw3IEBACiAKIHZvaWQgU2hvd0ludihvYmplY3QgcGxheWVyLCBzdHJpbmcgYXJnKTsKIAotLy8gb2ssIGxldLRzIGp1c3QgcmVhZCBpbiB0aGUgZ3JhcGhpY3MuLi4KKy8vIG9rLCBsZXTCtHMganVzdCByZWFkIGluIHRoZSBncmFwaGljcy4uLgogLy8gcmVhbGx5IHRha2VzIHNvbWUgdGltZSAofjI1MCBldmFsIHRpY2tzKSBidXQgaXMgb25seSBkb25lCiAvLyBvbmNlIGluIGFuIHVwdGltZQogdm9pZCBjcmVhdGUoKQpkaWZmIC0tZ2l0IGEvc3RkL3BsYXllci9zaGFkb3dzL21vcnBoX3NoYWRvdy5jIGIvc3RkL3BsYXllci9zaGFkb3dzL21vcnBoX3NoYWRvdy5jCmluZGV4IGFmYzk3YzQuLmYxZmYwMWYgMTAwNjQ0Ci0tLSBhL3N0ZC9wbGF5ZXIvc2hhZG93cy9tb3JwaF9zaGFkb3cuYworKysgYi9zdGQvcGxheWVyL3NoYWRvd3MvbW9ycGhfc2hhZG93LmMKQEAgLTEwLDggKzEwLDggQEAKIC8vICAgT2JqZWt0IGVyc3RlbGx0OiAxNC4wOC4wMSwgVHJveQogLy8KIC8vICAgRGllc2VyIHNoYWRvdyBpbXBsZW1lbnRpZXJ0IGdlbmVyaXNjaGUgVmVyd2FuZGx1bmdlbi4gSW0gR2VnZW5zYXR6IG9kZXIKLS8vICAgaW4gRXJn5G56dW5nIHp1bSBUYXJuaGVsbSBzaW5kIGRpZXNlIG5pY2h0IGF1ZiBkaWUgQmVzY2hyZWlidW5nCi0vLyAgIGJlc2NocuRua3QsIHNvbmRlcm4gc2NobGFnZW4gc2ljaCBhdWNoIGluIGFuZGVyZW4gUHJvcGVydGllcyBuaWVkZXIuCisvLyAgIGluIEVyZ8Okbnp1bmcgenVtIFRhcm5oZWxtIHNpbmQgZGllc2UgbmljaHQgYXVmIGRpZSBCZXNjaHJlaWJ1bmcKKy8vICAgYmVzY2hyw6Rua3QsIHNvbmRlcm4gc2NobGFnZW4gc2ljaCBhdWNoIGluIGFuZGVyZW4gUHJvcGVydGllcyBuaWVkZXIuCiAvLwogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCkBAIC00MiwxMyArNDIsMTMgQEAKIC8vICAgc3RhcnRfc2hhZG93KCBTcGllbGVyLCBQcm9wZXJ0aWVzICkKIC8vCiAvLyAgIFN0YXJ0ZXQgZGFzIFNoYWRvd2luZyB2b24gU3BpZWxlci4gUHJvcGVydGllcyBpc3QgZWluIE1hcHBpbmcgbWl0Ci0vLyAgIGRlbiB6dSDkbmRlcm5kZW4gUHJvcGVydGllcy4gRG9ydCBuaWNodCB2b3JoYW5kZW5lIFByb3BlcnRpZXMgd2VyZGVuCisvLyAgIGRlbiB6dSDDpG5kZXJuZGVuIFByb3BlcnRpZXMuIERvcnQgbmljaHQgdm9yaGFuZGVuZSBQcm9wZXJ0aWVzIHdlcmRlbgogLy8gICB6dW0gU3BpZWxlciBkdXJjaGdlcmVpY2h0LiBFcyB3ZXJkZW4gZG9ydCBlbnR3ZWRlciBlaW56ZWxuZSBXZXJ0ZQotLy8gICBlcndhcnRldCAoQmVpc3BpZWw6IChbIFBfR0VOREVSOiBNQUxFIF0pKSwgZGllIGRhbm4gZvxyIGFsbGUgUmFzc2VuCi0vLyAgIGdlbHRlbiwgb2RlciBjbG9zdXJlcywgZGllIGRhbm4gYXVzZ2Vm/GhydCB3ZXJkZW4gdW50ZXIg3GJlcmdhYmUgZGVyCisvLyAgIGVyd2FydGV0IChCZWlzcGllbDogKFsgUF9HRU5ERVI6IE1BTEUgXSkpLCBkaWUgZGFubiBmw7xyIGFsbGUgUmFzc2VuCisvLyAgIGdlbHRlbiwgb2RlciBjbG9zdXJlcywgZGllIGRhbm4gYXVzZ2Vmw7xocnQgd2VyZGVuIHVudGVyIMOcYmVyZ2FiZSBkZXIKIC8vICAgU3BpZWxlcnJhc3NlIGFscyBQYXJhbWV0ZXIgb2RlciBhYmVyIE1hcHBpbmdzIG1pdCBkZW4gUmFzc2VubmFtZW4KIC8vICAgKEJlaXNwaWVsOiAoWyBQX0dFTkRFUjogKFsgIk1lbnNjaCI6IE5FVVRFUiwgIkVsZiI6IEZFTUFMRSwKLS8vICAgIlp3ZXJnIjogTUFMRSwgLi4uIF0poF0pKS4gSXN0IGVpbmUgUmFzc2UgaW4gZGVtIFJhc3Nlbm1hcHBpbmcgbmljaHQKKy8vICAgIlp3ZXJnIjogTUFMRSwgLi4uIF0pwqBdKSkuIElzdCBlaW5lIFJhc3NlIGluIGRlbSBSYXNzZW5tYXBwaW5nIG5pY2h0CiAvLyAgIHZvcmhhbmRlbiwgc28gd2lyZCBkYXMgUHJvcGVydHkgenVtIFNwaWVsZXIgZHVyY2hnZXJlaWNodC4gU3BlemllbGwKIC8vICAgYmVoYW5kZWx0IHdlcmRlbiBQX0lEUyAoc2llaGUgX3F1ZXJ5X2lkcygpKSB1bmQgUF9OQU1FIChzaWVoZQogLy8gICBfcXVlcnlfbmFtZSgpKS4gCkBAIC03MCw3ICs3MCw3IEBACiAvLwogLy8gICBzdG9wX3NoYWRvdygpCiAvLwotLy8gICBCZWVuZGV0IGRhcyBTaGFkb3dpbmcgdW5kIHplcnN09nJ0IGRpZXNlcyBPYmpla3QKKy8vICAgQmVlbmRldCBkYXMgU2hhZG93aW5nIHVuZCB6ZXJzdMO2cnQgZGllc2VzIE9iamVrdAogLy8KIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGludCBzdG9wX3NoYWRvdyggLyogdm9pZCAqLyApCkBAIC04Niw3ICs4Niw3IEBACiAvLyAgIF9xdWVyeV9wcm9wZXJ0eSggUHJvcGVydHkgKQogLy8KIC8vICAgR2VuZXJpc2NoZSBQcm9wZXJ0eS1NYXNraWVydW5nLiBsaWVmZXJ0IGF1cyBtb3JwaF9wcm9wZXJ0aWVzIGRlbiB6dXIKLS8vICAgUmFzc2UgZGVzIFRy5GdlcnMgcGFzc2VuZGVuIEVpbnRyYWcuCisvLyAgIFJhc3NlIGRlcyBUcsOkZ2VycyBwYXNzZW5kZW4gRWludHJhZy4KIC8vCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBub21hc2sgc3RhdGljIG1peGVkIF9xdWVyeV9wcm9wZXJ0eSggc3RyaW5nIHByb3AgKQpAQCAtMTE5LDcgKzExOSw3IEBACiAvLwogLy8gICBfcXVlcnlfYXJ0aWNsZSgpCiAvLwotLy8gICBQcm9wZXJ0eS1NYXNraWVydW5nIGb8ciBQX0FSVElDTEUKKy8vICAgUHJvcGVydHktTWFza2llcnVuZyBmw7xyIFBfQVJUSUNMRQogLy8KIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGludCBfcXVlcnlfYXJ0aWNsZSggLyogdm9pZCAqLyApCkBAIC0xMzEsNyArMTMxLDcgQEAKIC8vCiAvLyAgIF9xdWVyeV9hdmVyYWdlX3NpemUoKQogLy8KLS8vICAgUHJvcGVydHktTWFza2llcnVuZyBm/HIgUF9BVkVSQUdFX1NJWkUKKy8vICAgUHJvcGVydHktTWFza2llcnVuZyBmw7xyIFBfQVZFUkFHRV9TSVpFCiAvLwogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogaW50IF9xdWVyeV9hdmVyYWdlX3NpemUoIC8qIHZvaWQgKi8gKQpAQCAtMTQzLDcgKzE0Myw3IEBACiAvLwogLy8gICBfcXVlcnlfYXZlcmFnZV93ZWlnaHQoKQogLy8KLS8vICAgUHJvcGVydHktTWFza2llcnVuZyBm/HIgUF9BVkVSQUdFX1dFSUdIVAorLy8gICBQcm9wZXJ0eS1NYXNraWVydW5nIGbDvHIgUF9BVkVSQUdFX1dFSUdIVAogLy8KIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGludCBfcXVlcnlfYXZlcmFnZV93ZWlnaHQoIC8qIHZvaWQgKi8gKQpAQCAtMTU1LDcgKzE1NSw3IEBACiAvLwogLy8gICBfcXVlcnlfYm9keSgpCiAvLwotLy8gICBQcm9wZXJ0eS1NYXNraWVydW5nIGb8ciBQX0JPRFkKKy8vICAgUHJvcGVydHktTWFza2llcnVuZyBmw7xyIFBfQk9EWQogLy8KIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGludCBfcXVlcnlfYm9keSggLyogdm9pZCAqLyApCkBAIC0xNjcsNyArMTY3LDcgQEAKIC8vCiAvLyAgIF9xdWVyeV9nZW5kZXIoKQogLy8KLS8vICAgUHJvcGVydHktTWFza2llcnVuZyBm/HIgUF9HRU5ERVIKKy8vICAgUHJvcGVydHktTWFza2llcnVuZyBmw7xyIFBfR0VOREVSCiAvLwogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogaW50IF9xdWVyeV9nZW5kZXIoIC8qIHZvaWQgKi8gKQpAQCAtMTc5LDcgKzE3OSw3IEBACiAvLwogLy8gICBfcXVlcnlfaGFuZHMoKQogLy8KLS8vICAgUHJvcGVydHktTWFza2llcnVuZyBm/HIgUF9IQU5EUworLy8gICBQcm9wZXJ0eS1NYXNraWVydW5nIGbDvHIgUF9IQU5EUwogLy8KIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIG1peGVkIF9xdWVyeV9oYW5kcyggLyogdm9pZCAqLyApCkBAIC0xOTEsNDQgKzE5MSw0NCBAQAogLy8KIC8vICAgX3F1ZXJ5X2lkcygpCiAvLwotLy8gICBQcm9wZXJ0eS1NYXNraWVydW5nIGb8ciBQX0lEUyAtIE5pY2h0LVN0YW5kYXJkLCBkYSBqZSBuYWNoIFVyc3BydW5ncy0KLS8vICAgZ2VzY2hsZWNodCBkZXMgU3BpZWxlcnMgenVz5HR6bGljaGUgaWRzIGbkbGxpZyB3ZXJkZW4uIEFibGF1ZjogRXMgZ2lidAorLy8gICBQcm9wZXJ0eS1NYXNraWVydW5nIGbDvHIgUF9JRFMgLSBOaWNodC1TdGFuZGFyZCwgZGEgamUgbmFjaCBVcnNwcnVuZ3MtCisvLyAgIGdlc2NobGVjaHQgZGVzIFNwaWVsZXJzIHp1c8OkdHpsaWNoZSBpZHMgZsOkbGxpZyB3ZXJkZW4uIEFibGF1ZjogRXMgZ2lidAogLy8gICA1IFNjaHJpdHRlLCBiZWkgZGVyZW4gamV3ZWlsaWdlbSBWZXJzYWdlbiBkaWUgaWRzIGRlcyBTcGllbGVycyBkdXJjaC0KIC8vICAgZ2VyZWljaHQgd2VyZGVuOgogLy8gICAxLiBQX0lEUyBpc3QgaW0gcHJvcGVydHktbWFwcGluZyB2b3JoYW5kZW4KIC8vICAgMi4gYSkgZXMgaXN0IGVpbiBzdHJpbmcgb2RlciBlaW4gYXJyYXk6IGVzIHdpcmQgYW4gZGllIGlkcyBkZXMgU3BpZWxlcnMKLS8vICAgICAgICAgYW5nZWjkbmd0IHVuZCB6dXL8Y2tnZWdlYmVuLgotLy8gICAgICBiKSBlcyBpc3QgZWluZSBjbG9zdXJlLiBEaWVzZSB3aXJkIGF1c2dlZvxocnQgdW50ZXIg3GJlcmdhYmUgZGVyCisvLyAgICAgICAgIGFuZ2Vow6RuZ3QgdW5kIHp1csO8Y2tnZWdlYmVuLgorLy8gICAgICBiKSBlcyBpc3QgZWluZSBjbG9zdXJlLiBEaWVzZSB3aXJkIGF1c2dlZsO8aHJ0IHVudGVyIMOcYmVyZ2FiZSBkZXIKIC8vICAgICAgICAgU3BpZWxlci1pZHMsIGRlciBSYXNzZSBkZXMgU3BpZWxlcnMgdW5kIGRlciBHZXNjaGxlY2h0ZXIKIC8vICAgICAgICAgKGRpZXNlcyBPYmpla3RzIHVuZCBkZXMgU3BpZWxlcnMpLiBEZXIgRXJnZWJuaXN3ZXJ0IGRlciBjbG9zdXJlCi0vLyAgICAgICAgIHdpcmQgZGlyZWt0IHp1cvxja2dlZ2ViZW4uCi0vLyAgICAgIGMpIGVzIGlzdCBlaW4gbWFwcGluZy4gSGllciBuZWhtZW4gd2lyIG51biBkYXMg/GJsaWNoZSBSYXNzZW5uYW1lbi0KKy8vICAgICAgICAgd2lyZCBkaXJla3QgenVyw7xja2dlZ2ViZW4uCisvLyAgICAgIGMpIGVzIGlzdCBlaW4gbWFwcGluZy4gSGllciBuZWhtZW4gd2lyIG51biBkYXMgw7xibGljaGUgUmFzc2VubmFtZW4tCiAvLyAgICAgICAgIG1hcHBpbmcgYW4gLT4gMy4pCi0vLyAgIDMuIEb8ciBkaWUgUmFzc2UgZGVzIFNwaWVsZXJzIHdpcmQgZWluIEVpbnRyYWcgZ2VzdWNodAorLy8gICAzLiBGw7xyIGRpZSBSYXNzZSBkZXMgU3BpZWxlcnMgd2lyZCBlaW4gRWludHJhZyBnZXN1Y2h0CiAvLyAgICAgIGEpIGVyIGlzdCBlaW4gc3RyaW5nIG9kZXIgZWluIGFycmF5OiBlciB3aXJkIGFuIGRpZSBpZHMgZGVzIFNwaWVsZXJzCi0vLyAgICAgICAgIGFuZ2Vo5G5ndCB1bmQgenVy/GNrZ2VnZWJlbi4KLS8vICAgICAgYikgZXIgaXN0IGVpbmUgY2xvc3VyZS4gRGllc2Ugd2lyZCBhdXNnZWb8aHJ0IHVudGVyINxiZXJnYWJlIGRlcgorLy8gICAgICAgICBhbmdlaMOkbmd0IHVuZCB6dXLDvGNrZ2VnZWJlbi4KKy8vICAgICAgYikgZXIgaXN0IGVpbmUgY2xvc3VyZS4gRGllc2Ugd2lyZCBhdXNnZWbDvGhydCB1bnRlciDDnGJlcmdhYmUgZGVyCiAvLyAgICAgICAgIFNwaWVsZXItaWRzLCBkZXIgUmFzc2UgZGVzIFNwaWVsZXJzIHVuZCBkZXIgR2VzY2hsZWNodGVyCiAvLyAgICAgICAgIChkaWVzZXMgT2JqZWt0cyB1bmQgZGVzIFNwaWVsZXJzKS4gRGVyIEVyZ2Vibmlzd2VydCBkZXIgY2xvc3VyZQotLy8gICAgICAgICB3aXJkIGRpcmVrdCB6dXL8Y2tnZWdlYmVuLgorLy8gICAgICAgICB3aXJkIGRpcmVrdCB6dXLDvGNrZ2VnZWJlbi4KIC8vICAgICAgYykgZXIgaXN0IGVpbiBtYXBwaW5nLiBFcyB3aXJkIGFuZ2Vub21tZW4sIGRhc3MgamUgR2VzY2hsZWNodCBESUVTRVMKIC8vICAgICAgICAgT2JqZWt0cyBlaW4gRWludHJhZyB2b3JoYW5kZW4gaXN0LiAtPiA0LikKLS8vICAgNC4gRvxyIGRhcyBHZXNjaGxlY2h0IGRpZXNlcyBPYmpla3RzIHdpcmQgZWluIEVpbnRyYWcgZ2VzdWNodAorLy8gICA0LiBGw7xyIGRhcyBHZXNjaGxlY2h0IGRpZXNlcyBPYmpla3RzIHdpcmQgZWluIEVpbnRyYWcgZ2VzdWNodAogLy8gICAgICBhKSBlciBpc3QgZWluIHN0cmluZyBvZGVyIGVpbiBhcnJheTogZXIgd2lyZCBhbiBkaWUgaWRzIGRlcyBTcGllbGVycwotLy8gICAgICAgICBhbmdlaORuZ3QgdW5kIHp1cvxja2dlZ2ViZW4uCi0vLyAgICAgIGIpIGVyIGlzdCBlaW5lIGNsb3N1cmUuIERpZXNlIHdpcmQgYXVzZ2Vm/GhydCB1bnRlciDcYmVyZ2FiZSBkZXIKKy8vICAgICAgICAgYW5nZWjDpG5ndCB1bmQgenVyw7xja2dlZ2ViZW4uCisvLyAgICAgIGIpIGVyIGlzdCBlaW5lIGNsb3N1cmUuIERpZXNlIHdpcmQgYXVzZ2Vmw7xocnQgdW50ZXIgw5xiZXJnYWJlIGRlcgogLy8gICAgICAgICBTcGllbGVyLWlkcywgZGVyIFJhc3NlIGRlcyBTcGllbGVycyB1bmQgZGVyIEdlc2NobGVjaHRlcgogLy8gICAgICAgICAoZGllc2VzIE9iamVrdHMgdW5kIGRlcyBTcGllbGVycykuIERlciBFcmdlYm5pc3dlcnQgZGVyIGNsb3N1cmUKLS8vICAgICAgICAgd2lyZCBkaXJla3QgenVy/GNrZ2VnZWJlbi4KKy8vICAgICAgICAgd2lyZCBkaXJla3QgenVyw7xja2dlZ2ViZW4uCiAvLyAgICAgIGMpIGVyIGlzdCBlaW4gbWFwcGluZy4gRXMgd2lyZCBhbmdlbm9tbWVuLCBkYXNzIGplIEdlc2NobGVjaHQgREVTCiAvLyAgICAgICAgIFNwaWVsZXJzIGVpbiBFaW50cmFnIHZvcmhhbmRlbiBpc3QuIC0+IDUuKQotLy8gICA1LiBG/HIgZGFzIEdlc2NobGVjaHQgZGVzIFNwaWVsZXJzIHdpcmQgZWluIEVpbnRyYWcgZ2VzdWNodAorLy8gICA1LiBGw7xyIGRhcyBHZXNjaGxlY2h0IGRlcyBTcGllbGVycyB3aXJkIGVpbiBFaW50cmFnIGdlc3VjaHQKIC8vICAgICAgYSkgZXIgaXN0IGVpbiBzdHJpbmcgb2RlciBlaW4gYXJyYXk6IGVyIHdpcmQgYW4gZGllIGlkcyBkZXMgU3BpZWxlcnMKLS8vICAgICAgICAgYW5nZWjkbmd0IHVuZCB6dXL8Y2tnZWdlYmVuLgotLy8gICAgICBiKSBlciBpc3QgZWluZSBjbG9zdXJlLiBEaWVzZSB3aXJkIGF1c2dlZvxocnQgdW50ZXIg3GJlcmdhYmUgZGVyCisvLyAgICAgICAgIGFuZ2Vow6RuZ3QgdW5kIHp1csO8Y2tnZWdlYmVuLgorLy8gICAgICBiKSBlciBpc3QgZWluZSBjbG9zdXJlLiBEaWVzZSB3aXJkIGF1c2dlZsO8aHJ0IHVudGVyIMOcYmVyZ2FiZSBkZXIKIC8vICAgICAgICAgU3BpZWxlci1pZHMsIGRlciBSYXNzZSBkZXMgU3BpZWxlcnMgdW5kIGRlciBHZXNjaGxlY2h0ZXIKIC8vICAgICAgICAgKGRpZXNlcyBPYmpla3RzIHVuZCBkZXMgU3BpZWxlcnMpLiBEZXIgRXJnZWJuaXN3ZXJ0IGRlciBjbG9zdXJlCi0vLyAgICAgICAgIHdpcmQgZGlyZWt0IHp1cvxja2dlZ2ViZW4uCisvLyAgICAgICAgIHdpcmQgZGlyZWt0IHp1csO8Y2tnZWdlYmVuLgogLy8KIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIG1peGVkIF9xdWVyeV9pZHMoIC8qIHZvaWQgKi8gKQpAQCAtMzA5LDcgKzMwOSw3IEBACiAvLwogLy8gICBfcXVlcnlfaXNfbW9ycGhlZCgpCiAvLwotLy8gICBQcm9wZXJ0eS1NZXRob2RlIGb8ciAiaXNfbW9ycGhlZCIKKy8vICAgUHJvcGVydHktTWV0aG9kZSBmw7xyICJpc19tb3JwaGVkIgogLy8KIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGludCBfcXVlcnlfaXNfbW9ycGhlZCggLyogdm9pZCAqLyApCkBAIC0zMjEsNyArMzIxLDcgQEAKIC8vCiAvLyAgIF9xdWVyeV9tYXhfaGFuZHMoKQogLy8KLS8vICAgUHJvcGVydHktTWFza2llcnVuZyBm/HIgUF9NQVhfSEFORFMKKy8vICAgUHJvcGVydHktTWFza2llcnVuZyBmw7xyIFBfTUFYX0hBTkRTCiAvLwogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogaW50IF9xdWVyeV9tYXhfaGFuZHMoIC8qIHZvaWQgKi8gKQpAQCAtMzMzLDcgKzMzMyw3IEBACiAvLwogLy8gICBfcXVlcnlfbW1zZ2luKCkKIC8vCi0vLyAgIFByb3BlcnR5LU1hc2tpZXJ1bmcgZvxyIFBfTU1TR0lOCisvLyAgIFByb3BlcnR5LU1hc2tpZXJ1bmcgZsO8ciBQX01NU0dJTgogLy8KIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHN0cmluZyBfcXVlcnlfbW1zZ2luKCAvKiB2b2lkICovICkKQEAgLTM0NSw3ICszNDUsNyBAQAogLy8KIC8vICAgX3F1ZXJ5X21tc2dvdXQoKQogLy8KLS8vICAgUHJvcGVydHktTWFza2llcnVuZyBm/HIgUF9NTVNHT1VUCisvLyAgIFByb3BlcnR5LU1hc2tpZXJ1bmcgZsO8ciBQX01NU0dPVVQKIC8vCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBzdHJpbmcgX3F1ZXJ5X21tc2dvdXQoIC8qIHZvaWQgKi8gKQpAQCAtMzU3LDcgKzM1Nyw3IEBACiAvLwogLy8gICBfcXVlcnlfbXNnaW4oKQogLy8KLS8vICAgUHJvcGVydHktTWFza2llcnVuZyBm/HIgUF9NU0dJTgorLy8gICBQcm9wZXJ0eS1NYXNraWVydW5nIGbDvHIgUF9NU0dJTgogLy8KIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHN0cmluZyBfcXVlcnlfbXNnaW4oIC8qIHZvaWQgKi8gKQpAQCAtMzY5LDcgKzM2OSw3IEBACiAvLwogLy8gICBfcXVlcnlfbXNnb3V0KCkKIC8vCi0vLyAgIFByb3BlcnR5LU1hc2tpZXJ1bmcgZvxyIFBfTVNHT1VUCisvLyAgIFByb3BlcnR5LU1hc2tpZXJ1bmcgZsO8ciBQX01TR09VVAogLy8KIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHN0cmluZyBfcXVlcnlfbXNnb3V0KCAvKiB2b2lkICovICkKQEAgLTM4MSw5ICszODEsOSBAQAogLy8KIC8vICAgX3F1ZXJ5X25hbWUoKQogLy8KLS8vICAgUHJvcGVydHktTWV0aG9kZSBm/HIgUF9OQU1FLiBMZWlkZXIgaXN0IGRpZSBwbGF5ZXItc2hlbGwgc28gZ3JvdHRpZywKLS8vICAgZGFzcyD8YmVyYWxsIGFuZ2Vub21tZW4gd2lyZCwgUXVlcnlQcm9wKFBfTkFNRSkgbGllZmVyZSBlaW5lbiBTdHJpbmcgOi18Ci0vLyAgIFZvbGxzdORuZGlnZXMgUHJvcGVydHkgZGFoZXIgdW50ZXIgX3F1ZXJ5X25hbWVfZnVsbCgpLgorLy8gICBQcm9wZXJ0eS1NZXRob2RlIGbDvHIgUF9OQU1FLiBMZWlkZXIgaXN0IGRpZSBwbGF5ZXItc2hlbGwgc28gZ3JvdHRpZywKKy8vICAgZGFzcyDDvGJlcmFsbCBhbmdlbm9tbWVuIHdpcmQsIFF1ZXJ5UHJvcChQX05BTUUpIGxpZWZlcmUgZWluZW4gU3RyaW5nIDotfAorLy8gICBWb2xsc3TDpG5kaWdlcyBQcm9wZXJ0eSBkYWhlciB1bnRlciBfcXVlcnlfbmFtZV9mdWxsKCkuCiAvLwogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogc3RyaW5nIF9xdWVyeV9uYW1lKCAvKiB2b2lkICovICkKQEAgLTQwNCw3ICs0MDQsNyBAQAogLy8KIC8vICAgX3F1ZXJ5X25hbWVfZnVsbCgpCiAvLwotLy8gICBQcm9wZXJ0eS1NZXRob2RlIGb8ciAibmFtZV9mdWxsIi4KKy8vICAgUHJvcGVydHktTWV0aG9kZSBmw7xyICJuYW1lX2Z1bGwiLgogLy8KIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIG1peGVkIF9xdWVyeV9uYW1lX2Z1bGwoIC8qIHZvaWQgKi8gKQpAQCAtNDI1LDcgKzQyNSw3IEBACiAvLwogLy8gICBfcXVlcnlfcHJlc2F5KCkKIC8vCi0vLyAgIFByb3BlcnR5LU1hc2tpZXJ1bmcgZvxyIFBfUFJFU0FZCisvLyAgIFByb3BlcnR5LU1hc2tpZXJ1bmcgZsO8ciBQX1BSRVNBWQogLy8KIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHN0cmluZyBfcXVlcnlfcHJlc2F5KCAvKiB2b2lkICovICkKQEAgLTQzNyw3ICs0MzcsNyBAQAogLy8KIC8vICAgX3F1ZXJ5X3JhY2UoKQogLy8KLS8vICAgUHJvcGVydHktTWFza2llcnVuZyBm/HIgUF9SQUNFCisvLyAgIFByb3BlcnR5LU1hc2tpZXJ1bmcgZsO8ciBQX1JBQ0UKIC8vCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBzdHJpbmcgX3F1ZXJ5X3JhY2UoIC8qIHZvaWQgKi8gKQpAQCAtNDQ5LDcgKzQ0OSw3IEBACiAvLwogLy8gICBfcXVlcnlfcmFjZXN0cmluZygpCiAvLwotLy8gICBQcm9wZXJ0eS1NYXNraWVydW5nIGb8ciBQX1JBQ0VTVFJJTkcKKy8vICAgUHJvcGVydHktTWFza2llcnVuZyBmw7xyIFBfUkFDRVNUUklORwogLy8KIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHN0cmluZyogX3F1ZXJ5X3JhY2VzdHJpbmcoIC8qIHZvaWQgKi8gKQpAQCAtNDYxLDcgKzQ2MSw3IEBACiAvLwogLy8gICBfcXVlcnlfc2l6ZSgpCiAvLwotLy8gICBQcm9wZXJ0eS1NYXNraWVydW5nIGb8ciBQX1NJWkUKKy8vICAgUHJvcGVydHktTWFza2llcnVuZyBmw7xyIFBfU0laRQogLy8KIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGludCBfcXVlcnlfc2l6ZSggLyogdm9pZCAqLyApCkBAIC00NzMsNyArNDczLDcgQEAKIC8vCiAvLyAgIF9xdWVyeV90aXRsZSgpCiAvLwotLy8gICBQcm9wZXJ0eS1NYXNraWVydW5nIGb8ciBQX1RJVExFCisvLyAgIFByb3BlcnR5LU1hc2tpZXJ1bmcgZsO8ciBQX1RJVExFCiAvLwogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogc3RyaW5nIF9xdWVyeV90aXRsZSggLyogdm9pZCAqLyApCkBAIC00ODUsNyArNDg1LDcgQEAKIC8vCiAvLyAgIF9xdWVyeV93ZWlnaHQoKQogLy8KLS8vICAgUHJvcGVydHktTWFza2llcnVuZyBm/HIgUF9XRUlHSFQKKy8vICAgUHJvcGVydHktTWFza2llcnVuZyBmw7xyIFBfV0VJR0hUCiAvLwogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogaW50IF9xdWVyeV93ZWlnaHQoIC8qIHZvaWQgKi8gKQpAQCAtNTg1LDcgKzU4NSw3IEBACiAvLwogLy8gICByZW1vdmUoIFNjaG5hdXplICkKIC8vCi0vLyAgIGF1ZnLkdW1lbgorLy8gICBhdWZyw6R1bWVuCiAvLwogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogdmFyYXJncyBpbnQgcmVtb3ZlKCBpbnQgc2lsZW50ICkKZGlmZiAtLWdpdCBhL3N0ZC9yb29tL2tyYWV1dGVybGFkZW4uYyBiL3N0ZC9yb29tL2tyYWV1dGVybGFkZW4uYwppbmRleCBjZjk5NzkzLi5lZGYzNGJiIDEwMDY0NAotLS0gYS9zdGQvcm9vbS9rcmFldXRlcmxhZGVuLmMKKysrIGIvc3RkL3Jvb20va3JhZXV0ZXJsYWRlbi5jCkBAIC00MSw3ICs0MSw3IEBACiAKICAgU2V0UHJvcChQX0JVWV9PTkxZX1BMQU5UUywxKTsKICAgLyoKLSAgc2V0ZXVpZChnZXR1aWQoKSk7IC8vIHdpcmQgenVtIHNwZWljaGVybiBiZW72dGlndAorICBzZXRldWlkKGdldHVpZCgpKTsgLy8gd2lyZCB6dW0gc3BlaWNoZXJuIGJlbsO2dGlndAogICBpbnQgc2k9c2l6ZW9mKGNvdW50KTsKICAgLy8gZnVlciBqZWRlIFBsYW50SUQgZWluZW4gRWludHJhZyBhbmxlZ2VuLCBkLmguIHdlbm4gaW4gY291bnQgbm9jaAogICAvLyBuaWNodCBnZW51ZyB2b3JoYW5kZW4gc2luZCwgd2VyZGVuIGZlaGxlbmRlIEVpbnRyYWVnZSBlcmdhZW56dC4KQEAgLTE1MCw3ICsxNTAsNyBAQAogICAgcmV0dXJuIHZhbC12YWwlMTA7IAogfQogCi0vLyBnaWJ0IGRlbiBQcmVpcyB6dXL8Y2ssIGRlciB6dW0gQW5rYXVmIGRlcyBPYmpla3RlcyB2ZXJ3ZW5kZXQgd2VyZGVuIHNvbGwKKy8vIGdpYnQgZGVuIFByZWlzIHp1csO8Y2ssIGRlciB6dW0gQW5rYXVmIGRlcyBPYmpla3RlcyB2ZXJ3ZW5kZXQgd2VyZGVuIHNvbGwKIHN0YXRpYyB2YXJhcmdzIGludCBRdWVyeVZhbHVlKG9iamVjdCBvYiwgaW50IHZhbHVlLCBvYmplY3QgcGxheWVyKQogewogICAgcmV0dXJuIDo6UXVlcnlWYWx1ZShvYiwgcmVhbFZhbHVlKG9iLCBwbGF5ZXIpLCBwbGF5ZXIpOwo=