From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22464 invoked by alias); 9 Nov 2014 18:17:44 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 22439 invoked by uid 89); 9 Nov 2014 18:17:42 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-Spam-User: qpsmtpd, 2 recipients X-HELO: mail-oi0-f46.google.com Received: from mail-oi0-f46.google.com (HELO mail-oi0-f46.google.com) (209.85.218.46) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Sun, 09 Nov 2014 18:17:40 +0000 Received: by mail-oi0-f46.google.com with SMTP id g201so4431896oib.5 for ; Sun, 09 Nov 2014 10:17:38 -0800 (PST) MIME-Version: 1.0 X-Received: by 10.202.54.194 with SMTP id d185mr2696884oia.77.1415557058385; Sun, 09 Nov 2014 10:17:38 -0800 (PST) Received: by 10.182.120.136 with HTTP; Sun, 9 Nov 2014 10:17:38 -0800 (PST) Date: Sun, 09 Nov 2014 18:17:00 -0000 Message-ID: Subject: [Patch, libstdc++/63775] Fix regex bracket expression parsing From: Tim Shen To: "libstdc++" , gcc-patches Content-Type: multipart/mixed; boundary=001a113cd0a09ffb800507710fa7 X-SW-Source: 2014-11/txt/msg00748.txt.bz2 --001a113cd0a09ffb800507710fa7 Content-Type: text/plain; charset=UTF-8 Content-length: 58 Bootstrapped and tested. Thanks! -- Regards, Tim Shen --001a113cd0a09ffb800507710fa7 Content-Type: text/plain; charset=US-ASCII; name="a.diff" Content-Disposition: attachment; filename="a.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i2aq45s80 Content-length: 15560 Y29tbWl0IDFjYjVmNGUwMThlNTJkOTRlNDkwMmJkMjQyNGI4ZDVlNzVkOTE3 YzIKQXV0aG9yOiB0aW1zaGVuIDx0aW1zaGVuQGdvb2dsZS5jb20+CkRhdGU6 ICAgU2F0IE5vdiA4IDE4OjE5OjU2IDIwMTQgLTA4MDAKCiAgICAJUFIgbGli c3RkYysrLzYzNzc1CiAgICAJKiBpbmNsdWRlL2JpdHMvcmVnZXhfY29tcGls ZXIuaCAoX0NvbXBpbGVyPD46Ol9NX2V4cHJlc3Npb25fdGVybSwKICAgIAlf QnJhY2tldE1hdGNoZXI8Pjo6X01fbWFrZV9yYW5nZSk6IFRocm93IHJlZ2V4 X2Vyb3JyIG9uIGludmFsaWQgcmFuZ2UKICAgIAlsaWtlIFt6LWFdLiBDaGFu Z2UgX01fZXhwcmVzc2lvbl90ZXJtIGludGVyZmFjZS4KICAgIAkqIGluY2x1 ZGUvYml0cy9yZWdleF9jb21waWxlci50Y2MgKAogICAgCV9Db21waWxlcjw+ OjpfTV9pbnNlcnRfYnJhY2tldF9tYXRjaGVyLAogICAgCV9Db21waWxlcjw+ OjpfTV9leHByZXNzaW9uX3Rlcm0pOiBSZXdyaXRlIGJyYWNrZXQgZXhwcmVz c2lvbiBwYXJzaW5nLgogICAgCSogdGVzdHN1aXRlLzI4X3JlZ2V4L2FsZ29y aXRobXMvcmVnZXhfbWF0Y2gvY3N0cmluZ19icmFja2V0XzAxLmNjOgogICAg CUFkZCB0ZXN0Y2FzZXMgYW5kIG1vdmUgZmlsZSBvdXQgb2YgZXh0ZW5kZWQu CgpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL2luY2x1ZGUvYml0cy9yZWdl eF9jb21waWxlci5oIGIvbGlic3RkYysrLXYzL2luY2x1ZGUvYml0cy9yZWdl eF9jb21waWxlci5oCmluZGV4IDFiYmMwOWQuLmQ4ODgwY2MgMTAwNjQ0Ci0t LSBhL2xpYnN0ZGMrKy12My9pbmNsdWRlL2JpdHMvcmVnZXhfY29tcGlsZXIu aAorKysgYi9saWJzdGRjKystdjMvaW5jbHVkZS9iaXRzL3JlZ2V4X2NvbXBp bGVyLmgKQEAgLTExOCw3ICsxMTgsOCBAQCBfR0xJQkNYWF9CRUdJTl9OQU1F U1BBQ0VfVkVSU0lPTgogCiAgICAgICB0ZW1wbGF0ZTxib29sIF9faWNhc2Us IGJvb2wgX19jb2xsYXRlPgogCXZvaWQKLQlfTV9leHByZXNzaW9uX3Rlcm0o X0JyYWNrZXRNYXRjaGVyPF9UcmFpdHNULCBfX2ljYXNlLCBfX2NvbGxhdGU+ JgorCV9NX2V4cHJlc3Npb25fdGVybShwYWlyPGJvb2wsIF9DaGFyVD4mIF9f bGFzdF9jaGFyLAorCQkJICAgX0JyYWNrZXRNYXRjaGVyPF9UcmFpdHNULCBf X2ljYXNlLCBfX2NvbGxhdGU+JgogCQkJICAgX19tYXRjaGVyKTsKIAogICAg ICAgaW50CkBAIC0zOTAsNiArMzkxLDggQEAgX0dMSUJDWFhfQkVHSU5fTkFN RVNQQUNFX1ZFUlNJT04KICAgICAgIHZvaWQKICAgICAgIF9NX21ha2VfcmFu Z2UoX0NoYXJUIF9fbCwgX0NoYXJUIF9fcikKICAgICAgIHsKKwlpZiAoX19s ID4gX19yKQorCSAgX190aHJvd19yZWdleF9lcnJvcihyZWdleF9jb25zdGFu dHM6OmVycm9yX3JhbmdlKTsKIAlfTV9yYW5nZV9zZXQucHVzaF9iYWNrKG1h a2VfcGFpcihfTV90cmFuc2xhdG9yLl9NX3RyYW5zZm9ybShfX2wpLAogCQkJ CQkgX01fdHJhbnNsYXRvci5fTV90cmFuc2Zvcm0oX19yKSkpOwogI2lmZGVm IF9HTElCQ1hYX0RFQlVHCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvaW5j bHVkZS9iaXRzL3JlZ2V4X2NvbXBpbGVyLnRjYyBiL2xpYnN0ZGMrKy12My9p bmNsdWRlL2JpdHMvcmVnZXhfY29tcGlsZXIudGNjCmluZGV4IDM0OWQ5MmEu LmI5ZGE0OTEgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9pbmNsdWRlL2Jp dHMvcmVnZXhfY29tcGlsZXIudGNjCisrKyBiL2xpYnN0ZGMrKy12My9pbmNs dWRlL2JpdHMvcmVnZXhfY29tcGlsZXIudGNjCkBAIC00MTUsOCArNDE1LDE3 IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAgICAgX01f aW5zZXJ0X2JyYWNrZXRfbWF0Y2hlcihib29sIF9fbmVnKQogICAgIHsKICAg ICAgIF9CcmFja2V0TWF0Y2hlcjxfVHJhaXRzVCwgX19pY2FzZSwgX19jb2xs YXRlPiBfX21hdGNoZXIoX19uZWcsIF9NX3RyYWl0cyk7CisgICAgICBwYWly PGJvb2wsIF9DaGFyVD4gX19sYXN0X2NoYXI7IC8vIE9wdGlvbmFsPF9DaGFy VD4KKyAgICAgIF9fbGFzdF9jaGFyLmZpcnN0ID0gZmFsc2U7CisgICAgICBp ZiAoIShfTV9mbGFncyAmIHJlZ2V4X2NvbnN0YW50czo6RUNNQVNjcmlwdCkp CisJaWYgKF9NX3RyeV9jaGFyKCkpCisJICB7CisJICAgIF9fbWF0Y2hlci5f TV9hZGRfY2hhcihfTV92YWx1ZVswXSk7CisJICAgIF9fbGFzdF9jaGFyLmZp cnN0ID0gdHJ1ZTsKKwkgICAgX19sYXN0X2NoYXIuc2Vjb25kID0gX01fdmFs dWVbMF07CisJICB9CiAgICAgICB3aGlsZSAoIV9NX21hdGNoX3Rva2VuKF9T Y2FubmVyVDo6X1NfdG9rZW5fYnJhY2tldF9lbmQpKQotCV9NX2V4cHJlc3Np b25fdGVybShfX21hdGNoZXIpOworCV9NX2V4cHJlc3Npb25fdGVybShfX2xh c3RfY2hhciwgX19tYXRjaGVyKTsKICAgICAgIF9fbWF0Y2hlci5fTV9yZWFk eSgpOwogICAgICAgX01fc3RhY2sucHVzaChfU3RhdGVTZXFUKAogCQkgICAg ICAqX01fbmZhLApAQCAtNDI3LDcgKzQzNiw4IEBAIF9HTElCQ1hYX0JFR0lO X05BTUVTUEFDRV9WRVJTSU9OCiAgIHRlbXBsYXRlPGJvb2wgX19pY2FzZSwg Ym9vbCBfX2NvbGxhdGU+CiAgICAgdm9pZAogICAgIF9Db21waWxlcjxfVHJh aXRzVD46OgotICAgIF9NX2V4cHJlc3Npb25fdGVybShfQnJhY2tldE1hdGNo ZXI8X1RyYWl0c1QsIF9faWNhc2UsIF9fY29sbGF0ZT4mIF9fbWF0Y2hlcikK KyAgICBfTV9leHByZXNzaW9uX3Rlcm0ocGFpcjxib29sLCBfQ2hhclQ+JiBf X2xhc3RfY2hhciwKKwkJICAgICAgIF9CcmFja2V0TWF0Y2hlcjxfVHJhaXRz VCwgX19pY2FzZSwgX19jb2xsYXRlPiYgX19tYXRjaGVyKQogICAgIHsKICAg ICAgIGlmIChfTV9tYXRjaF90b2tlbihfU2Nhbm5lclQ6Ol9TX3Rva2VuX2Nv bGxzeW1ib2wpKQogCV9fbWF0Y2hlci5fTV9hZGRfY29sbGF0aW5nX2VsZW1l bnQoX01fdmFsdWUpOwpAQCAtNDM1LDI3ICs0NDUsNTAgQEAgX0dMSUJDWFhf QkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KIAlfX21hdGNoZXIuX01fYWRkX2Vx dWl2YWxlbmNlX2NsYXNzKF9NX3ZhbHVlKTsKICAgICAgIGVsc2UgaWYgKF9N X21hdGNoX3Rva2VuKF9TY2FubmVyVDo6X1NfdG9rZW5fY2hhcl9jbGFzc19u YW1lKSkKIAlfX21hdGNoZXIuX01fYWRkX2NoYXJhY3Rlcl9jbGFzcyhfTV92 YWx1ZSwgZmFsc2UpOwotICAgICAgZWxzZSBpZiAoX01fdHJ5X2NoYXIoKSkg Ly8gW2EKKyAgICAgIC8vIFBPU0lYIGRvZXNuJ3QgcGVybWl0ICctJyBhcyBh IHN0YXJ0LXJhbmdlIGNoYXIgKHNheSBbYS16LS0wXSksCisgICAgICAvLyBl eGNlcHQgdGhhdCB0aGUgJy0nIGlzIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaW4g dGhlIGJyYWNrZXQgZXhwcmVzc2lvbgorICAgICAgLy8gKFstLTBdKS4gRUNN QVNjcmlwdCB0cmVhdHMgYWxsICctJyBhZnRlciBhIHJhbmdlIGFzIGEgbm9y bWFsIGNoYXJhY3Rlci4KKyAgICAgIC8vIEFsc28gc2VlIGFib3ZlLCB3aGVy ZSBfTV9leHByZXNzaW9uX3Rlcm0gZ2V0cyBjYWxsZWQuCisgICAgICAvLwor ICAgICAgLy8gQXMgYSByZXN1bHQsIFBPU0lYIHJlamVjdHMgWy0tLS0tXSwg YnV0IEVDTUFTY3JpcHQgZG9lc24ndC4KKyAgICAgIC8vIEJvb3N0ICgxLjU3 LjApIGFsd2F5cyB1c2VzIFBPU0lYIHN0eWxlIGV2ZW4gaW4gaXRzIEVDTUFT Y3JpcHQgc3ludGF4LgorICAgICAgLy8gQ2xhbmcgKDMuNSkgYWx3YXlzIHVz ZXMgRUNNQVNjcmlwdCBzdHlsZSBldmVuIGluIGl0cyBQT1NJWCBzeW50YXgu CisgICAgICAvLworICAgICAgLy8gSXQgdHVybnMgb3V0IHRoYXQgbm8gb25l IHJlYWRzIEJORnMgOykKKyAgICAgIGVsc2UgaWYgKF9NX3RyeV9jaGFyKCkp CiAJewotCSAgYXV0byBfX2NoID0gX01fdmFsdWVbMF07Ci0JICBpZiAoX01f dHJ5X2NoYXIoKSkKKwkgIGlmICghX19sYXN0X2NoYXIuZmlyc3QpCisJICAg IHsKKwkgICAgICBpZiAoX01fdmFsdWVbMF0gPT0gJy0nCisJCSAgJiYgIShf TV9mbGFncyAmIHJlZ2V4X2NvbnN0YW50czo6RUNNQVNjcmlwdCkpCisJCV9f dGhyb3dfcmVnZXhfZXJyb3IocmVnZXhfY29uc3RhbnRzOjplcnJvcl9yYW5n ZSk7CisJICAgICAgX19tYXRjaGVyLl9NX2FkZF9jaGFyKF9NX3ZhbHVlWzBd KTsKKwkgICAgICBfX2xhc3RfY2hhci5maXJzdCA9IHRydWU7CisJICAgICAg X19sYXN0X2NoYXIuc2Vjb25kID0gX01fdmFsdWVbMF07CisJICAgIH0KKwkg IGVsc2UKIAkgICAgewotCSAgICAgIGlmIChfTV92YWx1ZVswXSA9PSAnLScp IC8vIFthLQorCSAgICAgIGlmIChfTV92YWx1ZVswXSA9PSAnLScpCiAJCXsK LQkJICBpZiAoX01fdHJ5X2NoYXIoKSkgLy8gW2Etel0KKwkJICBpZiAoX01f dHJ5X2NoYXIoKSkKIAkJICAgIHsKLQkJICAgICAgX19tYXRjaGVyLl9NX21h a2VfcmFuZ2UoX19jaCwgX01fdmFsdWVbMF0pOwotCQkgICAgICByZXR1cm47 CisJCSAgICAgIF9fbWF0Y2hlci5fTV9tYWtlX3JhbmdlKF9fbGFzdF9jaGFy LnNlY29uZCAsIF9NX3ZhbHVlWzBdKTsKKwkJICAgICAgX19sYXN0X2NoYXIu Zmlyc3QgPSBmYWxzZTsKKwkJICAgIH0KKwkJICBlbHNlCisJCSAgICB7CisJ CSAgICAgIGlmIChfTV9zY2FubmVyLl9NX2dldF90b2tlbigpCisJCQkgICE9 IF9TY2FubmVyVDo6X1NfdG9rZW5fYnJhY2tldF9lbmQpCisJCQlfX3Rocm93 X3JlZ2V4X2Vycm9yKHJlZ2V4X2NvbnN0YW50czo6ZXJyb3JfcmFuZ2UpOwor CQkgICAgICBfX21hdGNoZXIuX01fYWRkX2NoYXIoX01fdmFsdWVbMF0pOwog CQkgICAgfQotCQkgIC8vIElmIHRoZSBkYXNoIGlzIHRoZSBsYXN0IGNoYXJh Y3RlciBpbiB0aGUgYnJhY2tldAotCQkgIC8vIGV4cHJlc3Npb24sIGl0IGlz IG5vdCBzcGVjaWFsLgotCQkgIGlmIChfTV9zY2FubmVyLl9NX2dldF90b2tl bigpCi0JCSAgICAgICE9IF9TY2FubmVyVDo6X1NfdG9rZW5fYnJhY2tldF9l bmQpCi0JCSAgICBfX3Rocm93X3JlZ2V4X2Vycm9yKHJlZ2V4X2NvbnN0YW50 czo6ZXJyb3JfcmFuZ2UpOwogCQl9Ci0JICAgICAgX19tYXRjaGVyLl9NX2Fk ZF9jaGFyKF9NX3ZhbHVlWzBdKTsKKwkgICAgICBlbHNlCisJCXsKKwkJICBf X21hdGNoZXIuX01fYWRkX2NoYXIoX01fdmFsdWVbMF0pOworCQkgIF9fbGFz dF9jaGFyLnNlY29uZCA9IF9NX3ZhbHVlWzBdOworCQl9CiAJICAgIH0KLQkg IF9fbWF0Y2hlci5fTV9hZGRfY2hhcihfX2NoKTsKIAl9CiAgICAgICBlbHNl IGlmIChfTV9tYXRjaF90b2tlbihfU2Nhbm5lclQ6Ol9TX3Rva2VuX3F1b3Rl ZF9jbGFzcykpCiAJX19tYXRjaGVyLl9NX2FkZF9jaGFyYWN0ZXJfY2xhc3Mo X01fdmFsdWUsCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvdGVzdHN1aXRl LzI4X3JlZ2V4L2FsZ29yaXRobXMvcmVnZXhfbWF0Y2gvY3N0cmluZ19icmFj a2V0XzAxLmNjIGIvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8yOF9yZWdleC9h bGdvcml0aG1zL3JlZ2V4X21hdGNoL2NzdHJpbmdfYnJhY2tldF8wMS5jYwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OGRjODNjCi0t LSAvZGV2L251bGwKKysrIGIvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8yOF9y ZWdleC9hbGdvcml0aG1zL3JlZ2V4X21hdGNoL2NzdHJpbmdfYnJhY2tldF8w MS5jYwpAQCAtMCwwICsxLDEyNCBAQAorLy8geyBkZy1vcHRpb25zICItc3Rk PWdudSsrMTEiIH0KKworLy8KKy8vIDIwMTMtMDgtMDEgIFRpbSBTaGVuIDx0 aW1zaGVuOTFAZ21haWwuY29tPgorLy8KKy8vIENvcHlyaWdodCAoQykgMjAx My0yMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorLy8KKy8v IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgSVNPIEMrKyBMaWJyYXJ5 LiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUKKy8vIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZQor Ly8gdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieSB0aGUKKy8vIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyIHZlcnNpb24gMywgb3IgKGF0IHlvdXIgb3B0aW9uKQorLy8g YW55IGxhdGVyIHZlcnNpb24uCisvLworLy8gVGhpcyBsaWJyYXJ5IGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws CisvLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZgorLy8gTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQor Ly8gR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KKy8vCisvLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZworLy8gd2l0 aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5v dCBzZWUKKy8vIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKwor Ly8gMjguMTEuMiByZWdleF9tYXRjaAorLy8gVGVzdHMgRXh0ZW5kZWQgYnJh Y2tldCBleHByZXNzaW9uIGFnYWluc3QgYSBDLXN0cmluZy4KKworI2luY2x1 ZGUgPHJlZ2V4PgorI2luY2x1ZGUgPHRlc3RzdWl0ZV9ob29rcy5oPgorI2lu Y2x1ZGUgPHRlc3RzdWl0ZV9yZWdleC5oPgorCit1c2luZyBuYW1lc3BhY2Ug X19nbnVfdGVzdDsKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKK3ZvaWQKK3Rl c3QwMSgpCit7CisgIGJvb2wgdGVzdCBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQp KSA9IHRydWU7CisKKyAgeworICAgIHN0ZDo6cmVnZXggIHJlKCJwcmUvW3ph LXhdIiwgc3RkOjpyZWdleDo6ZXh0ZW5kZWQpOworICAgIFZFUklGWSggcmVn ZXhfbWF0Y2hfZGVidWcoInByZS96IiwgcmUpICk7CisgICAgVkVSSUZZKCBy ZWdleF9tYXRjaF9kZWJ1ZygicHJlL2EiLCByZSkgKTsKKyAgICBWRVJJRlko ICFyZWdleF9tYXRjaF9kZWJ1ZygicHJlL3kiLCByZSkgKTsKKyAgfQorICB7 CisgICAgc3RkOjpyZWdleCAgcmUoInByZS9bWzp1UFBlcjpdXSIsIHN0ZDo6 cmVnZXg6OmV4dGVuZGVkKTsKKyAgICBWRVJJRlkoIHJlZ2V4X21hdGNoX2Rl YnVnKCJwcmUvWiIsIHJlKSApOworICAgIFZFUklGWSggIXJlZ2V4X21hdGNo X2RlYnVnKCJwcmUvXyIsIHJlKSApOworICAgIFZFUklGWSggIXJlZ2V4X21h dGNoX2RlYnVnKCJwcmUvYSIsIHJlKSApOworICAgIFZFUklGWSggIXJlZ2V4 X21hdGNoX2RlYnVnKCJwcmUvMCIsIHJlKSApOworICB9CisgIHsKKyAgICBz dGQ6OnJlZ2V4ICByZSgicHJlL1tbOmxPV2VyOl1dIiwgc3RkOjpyZWdleDo6 ZXh0ZW5kZWQgfCBzdGQ6OnJlZ2V4OjppY2FzZSk7CisgICAgVkVSSUZZKCBy ZWdleF9tYXRjaF9kZWJ1ZygicHJlL1oiLCByZSkgKTsKKyAgICBWRVJJRlko IHJlZ2V4X21hdGNoX2RlYnVnKCJwcmUvYSIsIHJlKSApOworICB9CisgIHsK KyAgICBzdGQ6OnJlZ2V4ICByZSgicHJlL1tbOnc6XVsudGlsZGUuXV0iLCBz dGQ6OnJlZ2V4OjpleHRlbmRlZCk7CisgICAgVkVSSUZZKCByZWdleF9tYXRj aF9kZWJ1ZygicHJlL34iLCByZSkgKTsKKyAgICBWRVJJRlkoIHJlZ2V4X21h dGNoX2RlYnVnKCJwcmUvXyIsIHJlKSApOworICAgIFZFUklGWSggcmVnZXhf bWF0Y2hfZGVidWcoInByZS9hIiwgcmUpICk7CisgICAgVkVSSUZZKCByZWdl eF9tYXRjaF9kZWJ1ZygicHJlLzAiLCByZSkgKTsKKyAgfQorICB7CisgICAg c3RkOjpyZWdleCAgcmUoInByZS9bWz1hPV1dIiwgc3RkOjpyZWdleDo6ZXh0 ZW5kZWQpOworICAgIFZFUklGWSggcmVnZXhfbWF0Y2hfZGVidWcoInByZS9h IiwgcmUpICk7CisgICAgVkVSSUZZKCByZWdleF9tYXRjaF9kZWJ1ZygicHJl L0EiLCByZSkgKTsKKyAgfQorfQorCit2b2lkCit0ZXN0MDIoKQoreworICBi b29sIHRlc3QgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgPSB0cnVlOworCisg IHRyeQorICB7CisgICAgc3RkOjpyZWdleCByZSgiWy0tLS0tXSIsIHN0ZDo6 cmVnZXg6OmV4dGVuZGVkKTsKKyAgfQorICBjYXRjaCAoY29uc3Qgc3RkOjpy ZWdleF9lcnJvciYgZSkKKyAgeworICAgIFZFUklGWShlLmNvZGUoKSA9PSBz dGQ6OnJlZ2V4X2NvbnN0YW50czo6ZXJyb3JfcmFuZ2UpOworICB9CisgIHN0 ZDo6cmVnZXggcmUoIlstLS0tLV0iLCBzdGQ6OnJlZ2V4OjpFQ01BU2NyaXB0 KTsKK30KKwordm9pZAordGVzdDAzKCkKK3sKKyAgYm9vbCB0ZXN0IF9fYXR0 cmlidXRlX18oKHVudXNlZCkpID0gdHJ1ZTsKKworICB0cnkKKyAgeworICAg IHN0ZDo6cmVnZXggcmUoIlt6LWFdIiwgc3RkOjpyZWdleDo6ZXh0ZW5kZWQp OworICB9CisgIGNhdGNoIChjb25zdCBzdGQ6OnJlZ2V4X2Vycm9yJiBlKQor ICB7CisgICAgVkVSSUZZKGUuY29kZSgpID09IHN0ZDo6cmVnZXhfY29uc3Rh bnRzOjplcnJvcl9yYW5nZSk7CisgIH0KK30KKwordm9pZAordGVzdDA0KCkK K3sKKyAgYm9vbCB0ZXN0IF9fYXR0cmlidXRlX18oKHVudXNlZCkpID0gdHJ1 ZTsKKworICBzdGQ6OnJlZ2V4IHJlKCJbLTAtOWEtel0iKTsKKyAgVkVSSUZZ KHJlZ2V4X21hdGNoX2RlYnVnKCItIiwgcmUpKTsKKyAgVkVSSUZZKHJlZ2V4 X21hdGNoX2RlYnVnKCIxIiwgcmUpKTsKKyAgVkVSSUZZKHJlZ2V4X21hdGNo X2RlYnVnKCJ3IiwgcmUpKTsKKyAgcmUuYXNzaWduKCJbLTAtOWEtel0iLCBy ZWdleF9jb25zdGFudHM6OmJhc2ljKTsKKyAgVkVSSUZZKHJlZ2V4X21hdGNo X2RlYnVnKCItIiwgcmUpKTsKKyAgVkVSSUZZKHJlZ2V4X21hdGNoX2RlYnVn KCIxIiwgcmUpKTsKKyAgVkVSSUZZKHJlZ2V4X21hdGNoX2RlYnVnKCJ3Iiwg cmUpKTsKK30KKworaW50CittYWluKCkKK3sKKyAgdGVzdDAxKCk7CisgIHRl c3QwMigpOworICB0ZXN0MDMoKTsKKyAgdGVzdDA0KCk7CisgIHJldHVybiAw OworfQpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8yOF9y ZWdleC9hbGdvcml0aG1zL3JlZ2V4X21hdGNoL2V4dGVuZGVkL2NzdHJpbmdf YnJhY2tldF8wMS5jYyBiL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvMjhfcmVn ZXgvYWxnb3JpdGhtcy9yZWdleF9tYXRjaC9leHRlbmRlZC9jc3RyaW5nX2Jy YWNrZXRfMDEuY2MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNh MmE1ZjUuLjAwMDAwMDAKLS0tIGEvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8y OF9yZWdleC9hbGdvcml0aG1zL3JlZ2V4X21hdGNoL2V4dGVuZGVkL2NzdHJp bmdfYnJhY2tldF8wMS5jYworKysgL2Rldi9udWxsCkBAIC0xLDc1ICswLDAg QEAKLS8vIHsgZGctb3B0aW9ucyAiLXN0ZD1nbnUrKzExIiB9Ci0KLS8vCi0v LyAyMDEzLTA4LTAxICBUaW0gU2hlbiA8dGltc2hlbjkxQGdtYWlsLmNvbT4K LS8vCi0vLyBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNCBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KLS8vCi0vLyBUaGlzIGZpbGUgaXMgcGFydCBv ZiB0aGUgR05VIElTTyBDKysgTGlicmFyeS4gIFRoaXMgbGlicmFyeSBpcyBm cmVlCi0vLyBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yIG1vZGlmeSBpdCB1bmRlciB0aGUKLS8vIHRlcm1zIG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlCi0v LyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMs IG9yIChhdCB5b3VyIG9wdGlvbikKLS8vIGFueSBsYXRlciB2ZXJzaW9uLgot Ly8KLS8vIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotLy8gYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YKLS8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLS8vIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0vLwotLy8gWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgYWxvbmcKLS8vIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg dGhlIGZpbGUgQ09QWUlORzMuICBJZiBub3Qgc2VlCi0vLyA8aHR0cDovL3d3 dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0KLS8vIDI4LjExLjIgcmVnZXhfbWF0 Y2gKLS8vIFRlc3RzIEV4dGVuZGVkIGJyYWNrZXQgZXhwcmVzc2lvbiBhZ2Fp bnN0IGEgQy1zdHJpbmcuCi0KLSNpbmNsdWRlIDxyZWdleD4KLSNpbmNsdWRl IDx0ZXN0c3VpdGVfaG9va3MuaD4KLSNpbmNsdWRlIDx0ZXN0c3VpdGVfcmVn ZXguaD4KLQotdXNpbmcgbmFtZXNwYWNlIF9fZ251X3Rlc3Q7Ci11c2luZyBu YW1lc3BhY2Ugc3RkOwotCi12b2lkCi10ZXN0MDEoKQotewotICBib29sIHRl c3QgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgPSB0cnVlOwotCi0gIHsKLSAg ICBzdGQ6OnJlZ2V4ICByZSgicHJlL1t6YS14XSIsIHN0ZDo6cmVnZXg6OmV4 dGVuZGVkKTsKLSAgICBWRVJJRlkoIHJlZ2V4X21hdGNoX2RlYnVnKCJwcmUv eiIsIHJlKSApOwotICAgIFZFUklGWSggcmVnZXhfbWF0Y2hfZGVidWcoInBy ZS9hIiwgcmUpICk7Ci0gICAgVkVSSUZZKCAhcmVnZXhfbWF0Y2hfZGVidWco InByZS95IiwgcmUpICk7Ci0gIH0KLSAgewotICAgIHN0ZDo6cmVnZXggIHJl KCJwcmUvW1s6dVBQZXI6XV0iLCBzdGQ6OnJlZ2V4OjpleHRlbmRlZCk7Ci0g ICAgVkVSSUZZKCByZWdleF9tYXRjaF9kZWJ1ZygicHJlL1oiLCByZSkgKTsK LSAgICBWRVJJRlkoICFyZWdleF9tYXRjaF9kZWJ1ZygicHJlL18iLCByZSkg KTsKLSAgICBWRVJJRlkoICFyZWdleF9tYXRjaF9kZWJ1ZygicHJlL2EiLCBy ZSkgKTsKLSAgICBWRVJJRlkoICFyZWdleF9tYXRjaF9kZWJ1ZygicHJlLzAi LCByZSkgKTsKLSAgfQotICB7Ci0gICAgc3RkOjpyZWdleCAgcmUoInByZS9b WzpsT1dlcjpdXSIsIHN0ZDo6cmVnZXg6OmV4dGVuZGVkIHwgc3RkOjpyZWdl eDo6aWNhc2UpOwotICAgIFZFUklGWSggcmVnZXhfbWF0Y2hfZGVidWcoInBy ZS9aIiwgcmUpICk7Ci0gICAgVkVSSUZZKCByZWdleF9tYXRjaF9kZWJ1Zygi cHJlL2EiLCByZSkgKTsKLSAgfQotICB7Ci0gICAgc3RkOjpyZWdleCAgcmUo InByZS9bWzp3Ol1bLnRpbGRlLl1dIiwgc3RkOjpyZWdleDo6ZXh0ZW5kZWQp OwotICAgIFZFUklGWSggcmVnZXhfbWF0Y2hfZGVidWcoInByZS9+IiwgcmUp ICk7Ci0gICAgVkVSSUZZKCByZWdleF9tYXRjaF9kZWJ1ZygicHJlL18iLCBy ZSkgKTsKLSAgICBWRVJJRlkoIHJlZ2V4X21hdGNoX2RlYnVnKCJwcmUvYSIs IHJlKSApOwotICAgIFZFUklGWSggcmVnZXhfbWF0Y2hfZGVidWcoInByZS8w IiwgcmUpICk7Ci0gIH0KLSAgewotICAgIHN0ZDo6cmVnZXggIHJlKCJwcmUv W1s9YT1dXSIsIHN0ZDo6cmVnZXg6OmV4dGVuZGVkKTsKLSAgICBWRVJJRlko IHJlZ2V4X21hdGNoX2RlYnVnKCJwcmUvYSIsIHJlKSApOwotICAgIFZFUklG WSggcmVnZXhfbWF0Y2hfZGVidWcoInByZS9BIiwgcmUpICk7Ci0gIH0KLX0K LQotaW50Ci1tYWluKCkKLXsKLSAgdGVzdDAxKCk7Ci0gIHJldHVybiAwOwot fQo= --001a113cd0a09ffb800507710fa7--