From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Rex Dieter To: git-commits@fedoraproject.org Subject: [rpms/amarok] epel10: Load all XSPF tracks (kde#295199) Date: Mon, 06 Jul 2026 18:05:00 GMT Message-ID: <178336110050.1.7403113202606763203.rpms-amarok-885e2d5feaf7@fedoraproject.org> List-ID: X-Git-Repo: rpms/amarok X-Git-Branch: epel10 X-Git-Rev: 885e2d5feaf77471b32fb2644319464dd0dc0683 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvYW1hcm9rCkJyYW5j aCA6IGVwZWwxMApDb21taXQgOiA4ODVlMmQ1ZmVhZjc3NDcxYjMyZmIyNjQ0MzE5NDY0ZGQwZGMw NjgzCkF1dGhvciA6IFJleCBEaWV0ZXIgPHJkaWV0ZXJAZmVkb3JhcHJvamVjdC5vcmc+CkRhdGUg ICA6IDIwMTItMDMtMTVUMDg6Mjg6MTAtMDU6MDAKU3RhdHMgIDogKzc2MS8tMSBpbiAyIGZpbGUo cykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9hbWFyb2svYy84 ODVlMmQ1ZmVhZjc3NDcxYjMyZmIyNjQ0MzE5NDY0ZGQwZGMwNjgzP2JyYW5jaD1lcGVsMTAKCkxv ZzoKTG9hZCBhbGwgWFNQRiB0cmFja3MgKGtkZSMyOTUxOTkpCgotLS0KZGlmZiAtLWdpdCBhLzAw MDEtTG9hZC1hbGwtdHJhY2tzLWZyb20tWFNQRi11c2luZy1NZXRhUHJveHkucGF0Y2ggYi8wMDAx LUxvYWQtYWxsLXRyYWNrcy1mcm9tLVhTUEYtdXNpbmctTWV0YVByb3h5LnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlZTc4NDkKLS0tIC9kZXYvbnVsbAorKysgYi8w MDAxLUxvYWQtYWxsLXRyYWNrcy1mcm9tLVhTUEYtdXNpbmctTWV0YVByb3h5LnBhdGNoCkBAIC0w LDAgKzEsNzUzIEBACitkaWZmIC0tZ2l0IGEvc3JjL0NNYWtlTGlzdHMudHh0IGIvc3JjL0NNYWtl TGlzdHMudHh0CitpbmRleCA0MjQxZTY5Li5iYmUzZjc1IDEwMDY0NAorLS0tIGEvc3JjL0NNYWtl TGlzdHMudHh0CisrKysgYi9zcmMvQ01ha2VMaXN0cy50eHQKK0BAIC0yODQsNiArMjg0LDcgQEAg c2V0KGxpYm1ldGFpbXBsX1NSQ1MKKyAgICAgY29yZS1pbXBsL21ldGEvbXVsdGkvTXVsdGlUcmFj ay5jcHAKKyAgICAgY29yZS1pbXBsL21ldGEvY3VlL0N1ZUZpbGVTdXBwb3J0LmNwcAorICAgICBj b3JlLWltcGwvbWV0YS9wcm94eS9NZXRhUHJveHkuY3BwCisrICAgIGNvcmUtaW1wbC9tZXRhL3By b3h5L01ldGFQcm94eVdvcmtlci5jcHAKKyAgICAgY29yZS1pbXBsL21ldGEvc3RyZWFtL1N0cmVh bS5jcHAKKyAgICAgY29yZS1pbXBsL3BsYXlsaXN0cy90eXBlcy9maWxlL1BsYXlsaXN0RmlsZS5j cHAKKyAgICAgY29yZS1pbXBsL3N0YXRpc3RpY3MvcHJvdmlkZXJzL3VybC9QZXJtYW5lbnRVcmxT dGF0aXN0aWNzUHJvdmlkZXIuY3BwCitkaWZmIC0tZ2l0IGEvc3JjL2NvcmUtaW1wbC9jb2xsZWN0 aW9ucy9zdXBwb3J0L0NvbGxlY3Rpb25NYW5hZ2VyLmNwcCBiL3NyYy9jb3JlLWltcGwvY29sbGVj dGlvbnMvc3VwcG9ydC9Db2xsZWN0aW9uTWFuYWdlci5jcHAKK2luZGV4IDM3ZmUwM2EuLjkwODVi NWEgMTAwNjQ0CistLS0gYS9zcmMvY29yZS1pbXBsL2NvbGxlY3Rpb25zL3N1cHBvcnQvQ29sbGVj dGlvbk1hbmFnZXIuY3BwCisrKysgYi9zcmMvY29yZS1pbXBsL2NvbGxlY3Rpb25zL3N1cHBvcnQv Q29sbGVjdGlvbk1hbmFnZXIuY3BwCitAQCAtNDYzLDYgKzQ2Myw3IEBAIENvbGxlY3Rpb25NYW5h Z2VyOjp0cmFja0ZvclVybCggY29uc3QgS1VybCAmdXJsICkKKyAgICAgICAgIH0KKyAgICAgfQor IAorKyAgICAvL1RPRE86IGNyZWF0ZSBzcGVjaWZpYyBUcmFja1Byb3ZpZGVycyBmb3IgdGhlc2U6 CisgICAgIGlmKCB1cmwucHJvdG9jb2woKSA9PSBRTGF0aW4xU3RyaW5nKCJodHRwIikgfHwgdXJs LnByb3RvY29sKCkgPT0gUUxhdGluMVN0cmluZygibW1zIikgfHwKKyAgICAgICAgIHVybC5wcm90 b2NvbCgpID09IFFMYXRpbjFTdHJpbmcoInNtYiIpICkKKyAgICAgICAgIHJldHVybiBNZXRhOjpU cmFja1B0ciggbmV3IE1ldGFTdHJlYW06OlRyYWNrKCB1cmwgKSApOworZGlmZiAtLWdpdCBhL3Ny Yy9jb3JlLWltcGwvbWV0YS9wcm94eS9NZXRhUHJveHkuaCBiL3NyYy9jb3JlLWltcGwvbWV0YS9w cm94eS9NZXRhUHJveHkuaAoraW5kZXggZDgzMjliZS4uMDYwMjIzZiAxMDA2NDQKKy0tLSBhL3Ny Yy9jb3JlLWltcGwvbWV0YS9wcm94eS9NZXRhUHJveHkuaAorKysrIGIvc3JjL2NvcmUtaW1wbC9t ZXRhL3Byb3h5L01ldGFQcm94eS5oCitAQCAtMTcsNiArMTcsOCBAQAorICNpZm5kZWYgQU1BUk9L X01FVEFQUk9YWV9ICisgI2RlZmluZSBBTUFST0tfTUVUQVBST1hZX0gKKyAKKysjaW5jbHVkZSAi TWV0YVByb3h5V29ya2VyLmgiCisrCisgI2luY2x1ZGUgImNvcmUvbWV0YS9NZXRhLmgiCisgI2lu Y2x1ZGUgImNvcmUvY2FwYWJpbGl0aWVzL0NhcGFiaWxpdHkuaCIKKyAKK0BAIC04Miw2ICs4NCw3 IEBAIG5hbWVzcGFjZSBNZXRhUHJveHkKKyAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0RGlz Y051bWJlciggaW50IGRpc2NOdW1iZXIgKTsKKyAKKyAgICAgICAgICAgICB2aXJ0dWFsIHFpbnQ2 NCBsZW5ndGgoKSBjb25zdDsKKysgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0TGVuZ3RoKCBx aW50NjQgbGVuZ3RoICk7CisgICAgICAgICAgICAgdmlydHVhbCBpbnQgZmlsZXNpemUoKSBjb25z dDsKKyAgICAgICAgICAgICB2aXJ0dWFsIGludCBzYW1wbGVSYXRlKCkgY29uc3Q7CisgICAgICAg ICAgICAgdmlydHVhbCBpbnQgYml0cmF0ZSgpIGNvbnN0OworQEAgLTExMCwxMSArMTEzLDEyIEBA IG5hbWVzcGFjZSBNZXRhUHJveHkKKyAJCSAqIGFsbG93cyBzdWJjbGFzc2VzIHRvIGNyZWF0ZSBh biBpbnN0YW5jZSBvZiB0cmFja3Byb3ZpZGVyIHdoaWNoIHdpbGwgb25seSBjaGVjayB0aGUgVHJh Y2tQcm92aWRlcgorIAkJICogcGFzc2VkIHRvIGxvb2t1cFRyYWNrKFRyYWNrUHJvdmlkZXIqKSBm b3IgdGhlIHJlYWwgdHJhY2suCisgCQkgKi8KKy0JCVRyYWNrKCBjb25zdCBLVXJsICZ1cmwsIGJv b2wgYXdhaXRMb29rdXBOb3RpZmljYXRpb24pOworKyAgICAgICAgVHJhY2soIGNvbnN0IEtVcmwg JnVybCwgYm9vbCBhd2FpdExvb2t1cE5vdGlmaWNhdGlvbiApOworKworIAkJLyoqCisgCQkgKiBN ZXRhUHJveHkgd2lsbCBjaGVjayB0aGUgZ2l2ZW4gdHJhY2twcm92aWRlciBpZiBpdCBjYW4gcHJv dmlkZSB0aGUgdHJhY2sgZm9yIHRoZSBwcm94eSdzIHVybC4KKyAJCSAqLworLQkJdm9pZCBsb29r dXBUcmFjayhDb2xsZWN0aW9uczo6VHJhY2tQcm92aWRlciAqcHJvdmlkZXIpOworKyAgICAgICAg dm9pZCBsb29rdXBUcmFjayggQ29sbGVjdGlvbnM6OlRyYWNrUHJvdmlkZXIgKnByb3ZpZGVyICk7 CisgCisgICAgICAgICAvKioKKyAgICAgICAgICAqIE1ldGFQcm94eSB3aWxsIHVwZGF0ZSB0aGUg cHJveHkgd2l0aCB0aGUgdHJhY2suCitAQCAtMTIzLDcgKzEyNyw3IEBAIG5hbWVzcGFjZSBNZXRh UHJveHkKKyAKKyAgICAgICAgIHByaXZhdGU6CisgCQkJdm9pZCBpbml0KCBjb25zdCBLVXJsICZ1 cmwsIGJvb2wgYXdhaXRMb29rdXBOb3RpZmljYXRpb24gKTsKKy0gICAgICAgICAgICBQcml2YXRl ICogY29uc3QgZDsKKysgICAgICAgICAgICBQcml2YXRlICpjb25zdCBkOworICAgICB9OworIAor IH0KK2RpZmYgLS1naXQgYS9zcmMvY29yZS1pbXBsL21ldGEvcHJveHkvTWV0YVByb3h5LmNwcCBi L3NyYy9jb3JlLWltcGwvbWV0YS9wcm94eS9NZXRhUHJveHkuY3BwCitpbmRleCBkMTU3N2EyLi42 YTI3ZjBlIDEwMDY0NAorLS0tIGEvc3JjL2NvcmUtaW1wbC9tZXRhL3Byb3h5L01ldGFQcm94eS5j cHAKKysrKyBiL3NyYy9jb3JlLWltcGwvbWV0YS9wcm94eS9NZXRhUHJveHkuY3BwCitAQCAtMTcs NiArMTcsNyBAQAorICNpbmNsdWRlICJjb3JlLWltcGwvbWV0YS9wcm94eS9NZXRhUHJveHkuaCIK KyAjaW5jbHVkZSAiY29yZS1pbXBsL21ldGEvcHJveHkvTWV0YVByb3h5X3AuaCIKKyAjaW5jbHVk ZSAiY29yZS1pbXBsL21ldGEvcHJveHkvTWV0YVByb3h5X3AubW9jIgorKyNpbmNsdWRlICJjb3Jl LWltcGwvbWV0YS9wcm94eS9NZXRhUHJveHlXb3JrZXIuaCIKKyAKKyAjaW5jbHVkZSAiY29yZS9j YXBhYmlsaXRpZXMvRWRpdENhcGFiaWxpdHkuaCIKKyAKK0BAIC0yNyw2ICsyOCw3IEBACisgI2lu Y2x1ZGUgPFFUaW1lcj4KKyAKKyAjaW5jbHVkZSA8S1NoYXJlZFB0cj4KKysjaW5jbHVkZSA8dGhy ZWFkd2VhdmVyL1RocmVhZFdlYXZlci5oPgorIAorIHVzaW5nIG5hbWVzcGFjZSBNZXRhUHJveHk7 CisgCitAQCAtODMsMTggKzg1LDIwIEBAIE1ldGFQcm94eTo6VHJhY2s6OmluaXQoIGNvbnN0IEtV cmwgJnVybCwgYm9vbCBhd2FpdExvb2t1cE5vdGlmaWNhdGlvbiApCisgCWQtPnVybCA9IHVybDsK KyAgICAgZC0+cHJveHkgPSB0aGlzOworICAgICBkLT5jYWNoZWRMZW5ndGggPSAwOworLQorLQlp ZiggIWF3YWl0TG9va3VwTm90aWZpY2F0aW9uICkKKy0gICAgeworLSAgICAgICAgUU9iamVjdDo6 Y29ubmVjdCggQ29sbGVjdGlvbk1hbmFnZXI6Omluc3RhbmNlKCksIFNJR05BTCggdHJhY2tQcm92 aWRlckFkZGVkKCBDb2xsZWN0aW9uczo6VHJhY2tQcm92aWRlciogKSApLCBkLCBTTE9UKCBzbG90 TmV3VHJhY2tQcm92aWRlciggQ29sbGVjdGlvbnM6OlRyYWNrUHJvdmlkZXIqICkgKSApOworLSAg ICAgICAgUU9iamVjdDo6Y29ubmVjdCggQ29sbGVjdGlvbk1hbmFnZXI6Omluc3RhbmNlKCksIFNJ R05BTCggY29sbGVjdGlvbkFkZGVkKCBDb2xsZWN0aW9uczo6Q29sbGVjdGlvbiogKSApLCBkLCBT TE9UKCBzbG90TmV3Q29sbGVjdGlvbiggQ29sbGVjdGlvbnM6OkNvbGxlY3Rpb24qICkgKSApOwor LSAgICB9CistCisgICAgIGQtPmFsYnVtUHRyID0gTWV0YTo6QWxidW1QdHIoIG5ldyBQcm94eUFs YnVtKCBkICkgKTsKKyAgICAgZC0+YXJ0aXN0UHRyID0gTWV0YTo6QXJ0aXN0UHRyKCBuZXcgUHJv eHlBcnRpc3QoIGQgKSApOworICAgICBkLT5nZW5yZVB0ciA9IE1ldGE6OkdlbnJlUHRyKCBuZXcg UHJveHlHZW5yZSggZCApICk7CisgICAgIGQtPmNvbXBvc2VyUHRyID0gTWV0YTo6Q29tcG9zZXJQ dHIoIG5ldyBQcm94eUNvbXBvc2VyKCBkICkgKTsKKyAgICAgZC0+eWVhclB0ciA9IE1ldGE6Olll YXJQdHIoIG5ldyBQcm94eVllYXIoIGQgKSApOworKworKyAgICBpZiggIWF3YWl0TG9va3VwTm90 aWZpY2F0aW9uICkKKysgICAgeworKyAgICAgICAgV29ya2VyICp3b3JrZXIgPSBuZXcgV29ya2Vy KCBkLT51cmwgKTsKKysgICAgICAgIFFPYmplY3Q6OmNvbm5lY3QoIHdvcmtlciwgU0lHTkFMKGZp bmlzaGVkTG9va3VwKCBjb25zdCBNZXRhOjpUcmFja1B0ciAmICkpLAorKyAgICAgICAgICAgICAg ICBkLCBTTE9UKHNsb3RVcGRhdGVUcmFjayhNZXRhOjpUcmFja1B0cikpICk7CisrCisrICAgICAg ICBUaHJlYWRXZWF2ZXI6OldlYXZlcjo6aW5zdGFuY2UoKS0+ZW5xdWV1ZSggd29ya2VyICk7Cisr ICAgIH0KKyB9CisgCisgTWV0YVByb3h5OjpUcmFjazo6flRyYWNrKCkKK0BAIC0zNDUsNiArMzQ5 LDEyIEBAIE1ldGFQcm94eTo6VHJhY2s6Omxlbmd0aCgpIGNvbnN0CisgICAgIHJldHVybiBkLT5j YWNoZWRMZW5ndGg7CisgfQorIAorK3ZvaWQKKytNZXRhUHJveHk6OlRyYWNrOjpzZXRMZW5ndGgo IHFpbnQ2NCBsZW5ndGggKQorK3sKKysgICAgZC0+Y2FjaGVkTGVuZ3RoID0gbGVuZ3RoOworK30K KysKKyBpbnQKKyBNZXRhUHJveHk6OlRyYWNrOjpmaWxlc2l6ZSgpIGNvbnN0CisgeworQEAgLTQy NCw3ICs0MzQsNyBAQCBNZXRhUHJveHk6OlRyYWNrOjppbkNvbGxlY3Rpb24oKSBjb25zdAorICAg ICByZXR1cm4gZmFsc2U7CisgfQorIAorLUNvbGxlY3Rpb25zOjpDb2xsZWN0aW9uKgorK0NvbGxl Y3Rpb25zOjpDb2xsZWN0aW9uICoKKyBNZXRhUHJveHk6OlRyYWNrOjpjb2xsZWN0aW9uKCkgY29u c3QKKyB7CisgICAgIGlmKCBkLT5yZWFsVHJhY2sgKQorQEAgLTQ1MCw3ICs0NjAsMTEgQEAgTWV0 YVByb3h5OjpUcmFjazo6dW5zdWJzY3JpYmUoIE1ldGE6Ok9ic2VydmVyICpvYnNlcnZlciApCisg dm9pZAorIE1ldGFQcm94eTo6VHJhY2s6Omxvb2t1cFRyYWNrKCBDb2xsZWN0aW9uczo6VHJhY2tQ cm92aWRlciAqcHJvdmlkZXIgKQorIHsKKy0JZC0+c2xvdE5ld1RyYWNrUHJvdmlkZXIoIHByb3Zp ZGVyICk7CisrICAgIGlmKCBwcm92aWRlci0+cG9zc2libHlDb250YWluc1RyYWNrKCBkLT51cmwg KSApCisrICAgIHsKKysgICAgICAgIE1ldGE6OlRyYWNrUHRyIHRyYWNrID0gcHJvdmlkZXItPnRy YWNrRm9yVXJsKCBkLT51cmwgKTsKKysgICAgICAgIGQtPnNsb3RVcGRhdGVUcmFjayggdHJhY2sg KTsKKysgICAgfQorIH0KKyAKKyB2b2lkCitAQCAtNDcwLDcgKzQ4NCw3IEBAIE1ldGFQcm94eTo6 VHJhY2s6Omhhc0NhcGFiaWxpdHlJbnRlcmZhY2UoIENhcGFiaWxpdGllczo6Q2FwYWJpbGl0eTo6 VHlwZSB0eXBlICkKKyAgICAgcmV0dXJuIGZhbHNlOworIH0KKyAKKy1DYXBhYmlsaXRpZXM6OkNh cGFiaWxpdHkqCisrQ2FwYWJpbGl0aWVzOjpDYXBhYmlsaXR5ICoKKyBNZXRhUHJveHk6OlRyYWNr OjpjcmVhdGVDYXBhYmlsaXR5SW50ZXJmYWNlKCBDYXBhYmlsaXRpZXM6OkNhcGFiaWxpdHk6OlR5 cGUgdHlwZSApCisgeworICAgICBpZiggZC0+cmVhbFRyYWNrICkKK0BAIC00ODQsNyArNDk4LDcg QEAgTWV0YVByb3h5OjpUcmFjazo6Y3JlYXRlQ2FwYWJpbGl0eUludGVyZmFjZSggQ2FwYWJpbGl0 aWVzOjpDYXBhYmlsaXR5OjpUeXBlIHR5cGUKKyBib29sCisgTWV0YVByb3h5OjpUcmFjazo6b3Bl cmF0b3I9PSggY29uc3QgTWV0YTo6VHJhY2sgJnRyYWNrICkgY29uc3QKKyB7CistICAgIGNvbnN0 IE1ldGFQcm94eTo6VHJhY2sgKnByb3h5ID0gZHluYW1pY19jYXN0PGNvbnN0IE1ldGFQcm94eTo6 VHJhY2sqPiggJnRyYWNrICk7CisrICAgIGNvbnN0IE1ldGFQcm94eTo6VHJhY2sgKnByb3h5ID0g ZHluYW1pY19jYXN0PGNvbnN0IE1ldGFQcm94eTo6VHJhY2sgKj4oICZ0cmFjayApOworICAgICBp ZiggcHJveHkgJiYgZC0+cmVhbFRyYWNrICkKKyAgICAgICAgIHJldHVybiBkLT5yZWFsVHJhY2sg PT0gcHJveHktPmQtPnJlYWxUcmFjazsKKyAgICAgZWxzZSBpZiggcHJveHkgKQorZGlmZiAtLWdp dCBhL3NyYy9jb3JlLWltcGwvbWV0YS9wcm94eS9NZXRhUHJveHlXb3JrZXIuaCBiL3NyYy9jb3Jl LWltcGwvbWV0YS9wcm94eS9NZXRhUHJveHlXb3JrZXIuaAorbmV3IGZpbGUgbW9kZSAxMDA2NDQK K2luZGV4IDAwMDAwMDAuLjU1N2YyOWQKKy0tLSAvZGV2L251bGwKKysrKyBiL3NyYy9jb3JlLWlt cGwvbWV0YS9wcm94eS9NZXRhUHJveHlXb3JrZXIuaAorQEAgLTAsMCArMSw0MiBAQAorKy8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCisrICogQ29weXJpZ2h0IChjKSAyMDEyIEJhcnQg Q2VybmVlbHMgPGJhcnQuY2VybmVlbHNAa2RlLm9yZz4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICoKKysgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKyAqIFRoaXMgcHJvZ3Jh bSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5 IGl0IHVuZGVyICAgICAgICAqCisrICogdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgICAgICAgICoKKysg KiBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciAgICAgICAgICAgKgorKyAqIHZlcnNpb24uICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAqCisrICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKysgKiBUaGlzIHBy b2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwg YnV0IFdJVEhPVVQgQU5ZICAgICAgKgorKyAqIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgICAgICAq CisrICogUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGZvciBtb3JlIGRldGFpbHMuICAgICAgICAgICAgICoKKysgKiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKgorKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nIHdpdGggICAgICAgICAqCisrICogdGhp cyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAg ICAgICAgICAgICAgICAgICAgICAgICAgICoKKysgKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKi8KKysKKysjaWZuZGVmIE1FVEFQUk9YWV9NRVRBUFJPWFlXT1JLRVJfSAorKyNkZWZpbmUg TUVUQVBST1hZX01FVEFQUk9YWVdPUktFUl9ICisrCisrI2luY2x1ZGUgPGNvcmUvY29sbGVjdGlv bnMvc3VwcG9ydC9UcmFja0ZvclVybFdvcmtlci5oPgorKyNpbmNsdWRlIDxjb3JlL2NvbGxlY3Rp b25zL0NvbGxlY3Rpb24uaD4KKysKKytuYW1lc3BhY2UgTWV0YVByb3h5IHsKKysKKytjbGFzcyBX b3JrZXIgOiBwdWJsaWMgQW1hcm9rOjpUcmFja0ZvclVybFdvcmtlcgorK3sKKysgICAgUV9PQkpF Q1QKKysgICAgcHVibGljOgorKyAgICAgICAgZXhwbGljaXQgV29ya2VyKCBjb25zdCBLVXJsICZ1 cmwgKTsKKysKKysgICAgICAgIC8vVHJhY2tGb3JVcmxXb3JrZXIgdmlydHVhbCBtZXRob2RzCisr ICAgICAgICB2aXJ0dWFsIHZvaWQgcnVuKCk7CisrCisrICAgIHByaXZhdGUgc2xvdHM6CisrICAg ICAgICB2b2lkIHNsb3ROZXdUcmFja1Byb3ZpZGVyKCBDb2xsZWN0aW9uczo6VHJhY2tQcm92aWRl ciAqbmV3VHJhY2tQcm92aWRlciApOworKyAgICAgICAgdm9pZCBzbG90TmV3Q29sbGVjdGlvbigg Q29sbGVjdGlvbnM6OkNvbGxlY3Rpb24gKm5ld0NvbGxlY3Rpb24gKTsKKysKKyt9OworKworK30g Ly8gbmFtZXNwYWNlIE1ldGFQcm94eQorKworKyNlbmRpZiAvLyBNRVRBUFJPWFlfTUVUQVBST1hZ V09SS0VSX0gKK2RpZmYgLS1naXQgYS9zcmMvY29yZS1pbXBsL21ldGEvcHJveHkvTWV0YVByb3h5 V29ya2VyLmNwcCBiL3NyYy9jb3JlLWltcGwvbWV0YS9wcm94eS9NZXRhUHJveHlXb3JrZXIuY3Bw CituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uMGNkZTI4MAorLS0tIC9kZXYv bnVsbAorKysrIGIvc3JjL2NvcmUtaW1wbC9tZXRhL3Byb3h5L01ldGFQcm94eVdvcmtlci5jcHAK K0BAIC0wLDAgKzEsODIgQEAKKysvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyAq IENvcHlyaWdodCAoYykgMjAxMiBCYXJ0IENlcm5lZWxzIDxiYXJ0LmNlcm5lZWxzQGtkZS5vcmc+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisrICogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICoKKysgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlciAgICAgICAgKgorKyAqIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG cmVlIFNvZnR3YXJlICAgICAgICAqCisrICogRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBv ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgICAgICAgICAgICoK KysgKiB2ZXJzaW9uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKyAqICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAqCisrICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSAgICAgICoKKysgKiBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBICAgICAgKgorKyAqIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLiAgICAgICAgICAg ICAqCisrICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKysgKiBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9u ZyB3aXRoICAgICAgICAgKgorKyAqIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8v d3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICAgICAgICAgICAgICAgICAgICAgICAgICAqCisrICoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisrCisrI2luY2x1ZGUgIk1ldGFQcm94eVdv cmtlci5oIgorKworKyNpbmNsdWRlICJjb3JlLWltcGwvY29sbGVjdGlvbnMvc3VwcG9ydC9Db2xs ZWN0aW9uTWFuYWdlci5oIgorKworK25hbWVzcGFjZSBNZXRhUHJveHkgeworKworK1dvcmtlcjo6 V29ya2VyKCBjb25zdCBLVXJsICZ1cmwgKQorKyAgICA6IEFtYXJvazo6VHJhY2tGb3JVcmxXb3Jr ZXIoIHVybCApCisreworKworK30KKysKKyt2b2lkCisrV29ya2VyOjpydW4oKQorK3sKKysgICAg TWV0YTo6VHJhY2tQdHIgdHJhY2sgPSBDb2xsZWN0aW9uTWFuYWdlcjo6aW5zdGFuY2UoKS0+dHJh Y2tGb3JVcmwoIG1fdXJsICk7CisrCisrICAgIC8vbm8gVHJhY2tQcm92aWRlciBoYXMgYSB0cmFj ayBmb3IgdXMgeWV0LCBxdWVyeSBuZXcgb25lcyB0aGF0IGFyZSBhZGRlZC4KKysgICAgaWYoIHRy YWNrLmlzTnVsbCgpICkKKysgICAgeworKyAgICAgICAgLy9UT0RPOiBzaG91bGQgb25seSBoYXZl IHRvIGNvbm5lY3RvIHRvIFRyYWNrUHJvdmlkZXIgc2lnbmFscy4KKysgICAgICAgIC8vRWFjaCBD b2xsZWN0aW9uIGNvbnRhaW5zIGEgVHJhY2tQcm92aWRlcgorKyAgICAgICAgY29ubmVjdCggQ29s bGVjdGlvbk1hbmFnZXI6Omluc3RhbmNlKCksCisrICAgICAgICAgICAgICAgICBTSUdOQUwodHJh Y2tQcm92aWRlckFkZGVkKCBDb2xsZWN0aW9uczo6VHJhY2tQcm92aWRlciAqICkpLAorKyAgICAg ICAgICAgICAgICAgU0xPVChzbG90TmV3VHJhY2tQcm92aWRlciggQ29sbGVjdGlvbnM6OlRyYWNr UHJvdmlkZXIgKiApKSApOworKyAgICAgICAgY29ubmVjdCggQ29sbGVjdGlvbk1hbmFnZXI6Omlu c3RhbmNlKCksCisrICAgICAgICAgICAgICAgICBTSUdOQUwoY29sbGVjdGlvbkFkZGVkKCBDb2xs ZWN0aW9uczo6Q29sbGVjdGlvbiAqICkpLAorKyAgICAgICAgICAgICAgICAgU0xPVChzbG90TmV3 Q29sbGVjdGlvbiggQ29sbGVjdGlvbnM6OkNvbGxlY3Rpb24gKiApKSApOworKworKyAgICAgICAg cmV0dXJuOworKyAgICB9CisrCisrICAgIGVtaXQoIGZpbmlzaGVkTG9va3VwKCB0cmFjayApICk7 CisrfQorKworK3ZvaWQKKytXb3JrZXI6OnNsb3ROZXdUcmFja1Byb3ZpZGVyKCBDb2xsZWN0aW9u czo6VHJhY2tQcm92aWRlciAqbmV3VHJhY2tQcm92aWRlciApCisreworKyAgICBpZiggIW5ld1Ry YWNrUHJvdmlkZXIgKQorKyAgICB7CisrICAgICAgICByZXR1cm47CisrICAgIH0KKysKKysgICAg aWYoIG5ld1RyYWNrUHJvdmlkZXItPnBvc3NpYmx5Q29udGFpbnNUcmFjayggbV91cmwgKSApCisr ICAgIHsKKysgICAgICAgIE1ldGE6OlRyYWNrUHRyIHRyYWNrID0gbmV3VHJhY2tQcm92aWRlci0+ dHJhY2tGb3JVcmwoIG1fdXJsICk7CisrICAgICAgICBlbWl0KCBmaW5pc2hlZExvb2t1cCggdHJh Y2sgKSApOworKyAgICB9CisrfQorKworK3ZvaWQKKytXb3JrZXI6OnNsb3ROZXdDb2xsZWN0aW9u KCBDb2xsZWN0aW9uczo6Q29sbGVjdGlvbiAqbmV3Q29sbGVjdGlvbiApCisreworKyAgICBpZigg IW5ld0NvbGxlY3Rpb24gKQorKyAgICB7CisrICAgICAgICByZXR1cm47CisrICAgIH0KKysKKysg ICAgaWYoIG5ld0NvbGxlY3Rpb24tPnBvc3NpYmx5Q29udGFpbnNUcmFjayggbV91cmwgKSApCisr ICAgIHsKKysgICAgICAgIE1ldGE6OlRyYWNrUHRyIHRyYWNrID0gbmV3Q29sbGVjdGlvbi0+dHJh Y2tGb3JVcmwoIG1fdXJsICk7CisrICAgICAgICBlbWl0KCBmaW5pc2hlZExvb2t1cCggdHJhY2sg KSApOworKyAgICB9CisrfQorKworK30gLy8gbmFtZXNwYWNlIE1ldGFQcm94eQorZGlmZiAtLWdp dCBhL3NyYy9jb3JlLWltcGwvbWV0YS9wcm94eS9NZXRhUHJveHlfcC5oIGIvc3JjL2NvcmUtaW1w bC9tZXRhL3Byb3h5L01ldGFQcm94eV9wLmgKK2luZGV4IDc5MjY3NWQuLmFjOGVmYjAgMTAwNjQ0 CistLS0gYS9zcmMvY29yZS1pbXBsL21ldGEvcHJveHkvTWV0YVByb3h5X3AuaAorKysrIGIvc3Jj L2NvcmUtaW1wbC9tZXRhL3Byb3h5L01ldGFQcm94eV9wLmgKK0BAIC00Myw3ICs0Myw3IEBAIGNs YXNzIE1ldGFQcm94eTo6VHJhY2s6OlByaXZhdGUgOiBwdWJsaWMgUU9iamVjdCwgcHVibGljIE1l dGE6Ok9ic2VydmVyCisgCisgICAgICAgICBNZXRhOjpUcmFja1B0ciByZWFsVHJhY2s7CisgCist ICAgICAgICBRTGlzdDxNZXRhOjpPYnNlcnZlcio+IG9ic2VydmVyczsKKysgICAgICAgIFFMaXN0 PE1ldGE6Ok9ic2VydmVyICo+IG9ic2VydmVyczsKKyAKKyAgICAgICAgIFFTdHJpbmcgY2FjaGVk QXJ0aXN0OworICAgICAgICAgUVN0cmluZyBjYWNoZWRBbGJ1bTsKK0BAIC04MiwzNCArODIsNiBA QCBjbGFzcyBNZXRhUHJveHk6OlRyYWNrOjpQcml2YXRlIDogcHVibGljIFFPYmplY3QsIHB1Ymxp YyBNZXRhOjpPYnNlcnZlcgorICAgICAgICAgfQorIAorICAgICBwdWJsaWMgc2xvdHM6CistICAg ICAgICB2b2lkIHNsb3ROZXdUcmFja1Byb3ZpZGVyKCBDb2xsZWN0aW9uczo6VHJhY2tQcm92aWRl ciAqbmV3VHJhY2tQcm92aWRlciApCistICAgICAgICB7CistICAgICAgICAgICAgaWYgKCAhbmV3 VHJhY2tQcm92aWRlciApCistICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICByZXR1cm47 CistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIGlmKCBuZXdUcmFja1Byb3ZpZGVyLT5w b3NzaWJseUNvbnRhaW5zVHJhY2soIHVybCApICkKKy0gICAgICAgICAgICB7CistICAgICAgICAg ICAgICAgIE1ldGE6OlRyYWNrUHRyIHRyYWNrID0gbmV3VHJhY2tQcm92aWRlci0+dHJhY2tGb3JV cmwoIHVybCApOworLSAgICAgICAgICAgICAgICBzbG90VXBkYXRlVHJhY2soIHRyYWNrICk7Cist ICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgdm9pZCBzbG90TmV3Q29sbGVj dGlvbiggQ29sbGVjdGlvbnM6OkNvbGxlY3Rpb24gKm5ld0NvbGxlY3Rpb24gKQorLSAgICAgICAg eworLSAgICAgICAgICAgIGlmICggIW5ld0NvbGxlY3Rpb24gKQorLSAgICAgICAgICAgIHsKKy0g ICAgICAgICAgICAgICAgcmV0dXJuOworLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICBp ZiggbmV3Q29sbGVjdGlvbi0+cG9zc2libHlDb250YWluc1RyYWNrKCB1cmwgKSApCistICAgICAg ICAgICAgeworLSAgICAgICAgICAgICAgICBNZXRhOjpUcmFja1B0ciB0cmFjayA9IG5ld0NvbGxl Y3Rpb24tPnRyYWNrRm9yVXJsKCB1cmwgKTsKKy0gICAgICAgICAgICAgICAgc2xvdFVwZGF0ZVRy YWNrKCB0cmFjayApOworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKyAgICAgICAgIHZv aWQgc2xvdFVwZGF0ZVRyYWNrKCBNZXRhOjpUcmFja1B0ciB0cmFjayApCisgICAgICAgICB7Cisg ICAgICAgICAgICAgaWYoIHRyYWNrICkKK2RpZmYgLS1naXQgYS9zcmMvY29yZS1pbXBsL3BsYXls aXN0cy90eXBlcy9maWxlL3hzcGYvWFNQRlBsYXlsaXN0LmNwcCBiL3NyYy9jb3JlLWltcGwvcGxh eWxpc3RzL3R5cGVzL2ZpbGUveHNwZi9YU1BGUGxheWxpc3QuY3BwCitpbmRleCA0Y2I0OWZiLi4w MWNmMWU2IDEwMDY0NAorLS0tIGEvc3JjL2NvcmUtaW1wbC9wbGF5bGlzdHMvdHlwZXMvZmlsZS94 c3BmL1hTUEZQbGF5bGlzdC5jcHAKKysrKyBiL3NyYy9jb3JlLWltcGwvcGxheWxpc3RzL3R5cGVz L2ZpbGUveHNwZi9YU1BGUGxheWxpc3QuY3BwCitAQCAtMjMzLDggKzIzMyw3IEBAIFhTUEZQbGF5 bGlzdDo6dHJhY2tDb3VudCgpIGNvbnN0CisgTWV0YTo6VHJhY2tMaXN0CisgWFNQRlBsYXlsaXN0 Ojp0cmFja3MoKQorIHsKKy0gICAgLy9JZiB5b3UgZG8gbm90IGxvYWQgYmVmb3JlLCBtX3RyYWNr cworLSAgICAvL2NhbiBiZSBlbXB0eSBiZWZvcmUgdXNhZ2UuCisrICAgIC8vSWYgeW91IGRvIG5v dCBsb2FkLCBtX3RyYWNrcyBjYW4gYmUgZW1wdHkgYmVmb3JlIHVzYWdlLgorICAgICB0cmlnZ2Vy VHJhY2tMb2FkKCk7CisgCisgICAgIHJldHVybiBtX3RyYWNrczsKK0BAIC0yNTEsNzYgKzI1MCwx NCBAQCBYU1BGUGxheWxpc3Q6OnRyaWdnZXJUcmFja0xvYWQoKQorIAorICAgICBmb3JlYWNoKCBj b25zdCBYU1BGVHJhY2sgJnRyYWNrLCB4c3BmVHJhY2tzICkKKyAgICAgeworLSAgICAgICAgTWV0 YTo6VHJhY2tQdHIgdHJhY2tQdHI7CistICAgICAgICBpZiggIXRyYWNrLmlkZW50aWZpZXIuaXNF bXB0eSgpICkKKy0gICAgICAgICAgICB0cmFja1B0ciA9IENvbGxlY3Rpb25NYW5hZ2VyOjppbnN0 YW5jZSgpLT50cmFja0ZvclVybCggdHJhY2suaWRlbnRpZmllciApOworLSAgICAgICAgZWxzZQor LSAgICAgICAgICAgIHRyYWNrUHRyID0gQ29sbGVjdGlvbk1hbmFnZXI6Omluc3RhbmNlKCktPnRy YWNrRm9yVXJsKCB0cmFjay5sb2NhdGlvbiApOworLSAgICAgICAgaWYoIHRyYWNrUHRyICkKKy0g ICAgICAgIHsKKy0gICAgICAgICAgICAvKioKKy0gICAgICAgICAgICAgKiBOT1RFOiBJZiB0aGlz IGlzIGEgTWV0YVByb3h5OjpUcmFjaywgaXQgcHJvYmFibHkgaXNuJ3QgcGxheWFibGUgeWV0LAor LSAgICAgICAgICAgICAqICAgICAgIGJ1dCB0aGF0J3Mgb2theS4gSG93ZXZlciwgaXQncyBub3Qg YSBnb29kIGlkZWEgdG8gZ2V0IGFub3RoZXIKKy0gICAgICAgICAgICAgKiAgICAgICBvbmUgZnJv bSB0aGUgc2FtZSBwcm92aWRlciwgc2luY2UgdGhlIHByb3h5IHByb2JhYmx5IG1lYW5zIHRoYXQK Ky0gICAgICAgICAgICAgKiAgICAgICBtYWtpbmcgb25lIGludm9sdmVzIHF1aXRlIGEgYml0IG9m IHdvcmsuCistICAgICAgICAgICAgICogICAgICAgICAtIEFuZHkgQ29kZXIgPGFuZHJldy5jb2Rl ckBnbWFpbC5jb20+CistICAgICAgICAgICAgICovCistICAgICAgICAgICAgaWYoICF0cmFja1B0 ci0+aXNQbGF5YWJsZSgpICYmICggdHlwZWlkKCAqIHRyYWNrUHRyLmRhdGEoKSApICE9IHR5cGVp ZCggTWV0YVByb3h5OjpUcmFjayApICkgKQorLSAgICAgICAgICAgICAgICB0cmFja1B0ciA9IENv bGxlY3Rpb25NYW5hZ2VyOjppbnN0YW5jZSgpLT50cmFja0ZvclVybCggdHJhY2suaWRlbnRpZmll ciApOworLSAgICAgICAgfQorLQorLSAgICAgICAgaWYoIHRyYWNrUHRyICkKKy0gICAgICAgIHsK Ky0gICAgICAgICAgICBpZiggdHlwZWlkKCAqIHRyYWNrUHRyLmRhdGEoKSApID09IHR5cGVpZCgg TWV0YVN0cmVhbTo6VHJhY2sgKSApCistICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICBN ZXRhU3RyZWFtOjpUcmFjayAqIHN0cmVhbVRyYWNrID0gZHluYW1pY19jYXN0PE1ldGFTdHJlYW06 OlRyYWNrICo+ICggdHJhY2tQdHIuZGF0YSgpICk7CistICAgICAgICAgICAgICAgIGlmICggc3Ry ZWFtVHJhY2sgKQorLSAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICBzdHJl YW1UcmFjay0+c2V0VGl0bGUoIHRyYWNrLnRpdGxlICk7CistICAgICAgICAgICAgICAgICAgICBz dHJlYW1UcmFjay0+c2V0QWxidW0oIHRyYWNrLmFsYnVtICk7CistICAgICAgICAgICAgICAgICAg ICBzdHJlYW1UcmFjay0+c2V0QXJ0aXN0KCB0cmFjay5jcmVhdG9yICk7CistICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICAgICAgZWxzZSBpZiggdHlwZWlkKCAqIHRy YWNrUHRyLmRhdGEoKSApID09IHR5cGVpZCggTWV0YTo6VGltZWNvZGVUcmFjayApICkKKy0gICAg ICAgICAgICB7CistICAgICAgICAgICAgICAgIE1ldGE6OlRpbWVjb2RlVHJhY2sgKiB0aW1lY29k ZVRyYWNrID0KKy0gICAgICAgICAgICAgICAgICAgICAgICBkeW5hbWljX2Nhc3Q8TWV0YTo6VGlt ZWNvZGVUcmFjayAqPiggdHJhY2tQdHIuZGF0YSgpICk7CistICAgICAgICAgICAgICAgIGlmKCB0 aW1lY29kZVRyYWNrICkKKy0gICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAg dGltZWNvZGVUcmFjay0+YmVnaW5NZXRhRGF0YVVwZGF0ZSgpOworLSAgICAgICAgICAgICAgICAg ICAgdGltZWNvZGVUcmFjay0+c2V0VGl0bGUoIHRyYWNrLnRpdGxlICk7CistICAgICAgICAgICAg ICAgICAgICB0aW1lY29kZVRyYWNrLT5zZXRBbGJ1bSggdHJhY2suYWxidW0gKTsKKy0gICAgICAg ICAgICAgICAgICAgIHRpbWVjb2RlVHJhY2stPnNldEFydGlzdCggdHJhY2suY3JlYXRvciApOwor LSAgICAgICAgICAgICAgICAgICAgdGltZWNvZGVUcmFjay0+ZW5kTWV0YURhdGFVcGRhdGUoKTsK Ky0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICBtX3Ry YWNrcyA8PCB0cmFja1B0cjsKKy0gICAgICAgIH0KKy0KKy0KKy0gICAgICAgIC8vIHdoeSBkbyB3 ZSBuZWVkIHRoaXM/IHNxbHBsYXlsaXN0IGlzIG5vdCBkb2luZyB0aGlzCistICAgICAgICAvLyB3 ZSBkb24ndCB3YW50IChwcm9iYWJseSkgdW5wbGF5YWJsZSB0cmFja3MKKy0gICAgICAgIC8vIGFu ZCBpdCBjYXVzZXMgcHJvYmxlbXMgZm9yIG1lIChEYW5pZWxXKSBhcyBsb25nCistICAgICAgICAv LyBhbWFyb2sgbm90IHJlc3BlY3RzIFRyYWNrOjppc1BsYXlhYmxlKCkKKy0gICAgICAgIC8qZWxz ZSB7CistCistICAgICAgICAgICAgTWV0YVByb3h5OjpUcmFjayAqcHJveHlUcmFjayA9IG5ldyBN ZXRhUHJveHk6OlRyYWNrKCB0cmFjay5sb2NhdGlvbiApOworLSAgICAgICAgICAgIHsKKy0gICAg ICAgICAgICAgICAgLy9GaWxsIGluIHZhbHVlcyBmcm9tIHhzcGYuLgorLSAgICAgICAgICAgICAg ICBRVmFyaWFudE1hcCBtYXA7CistICAgICAgICAgICAgICAgIG1hcC5pbnNlcnQoIE1ldGE6OkZp ZWxkOjpUSVRMRSwgdHJhY2sudGl0bGUgKTsKKy0gICAgICAgICAgICAgICAgbWFwLmluc2VydCgg TWV0YTo6RmllbGQ6OkFMQlVNLCB0cmFjay5hbGJ1bSApOworLSAgICAgICAgICAgICAgICBtYXAu aW5zZXJ0KCBNZXRhOjpGaWVsZDo6QVJUSVNULCB0cmFjay5jcmVhdG9yICk7CistICAgICAgICAg ICAgICAgIG1hcC5pbnNlcnQoIE1ldGE6OkZpZWxkOjpMRU5HVEgsIHRyYWNrLmR1cmF0aW9uICk7 CistICAgICAgICAgICAgICAgIG1hcC5pbnNlcnQoIE1ldGE6OkZpZWxkOjpUUkFDS05VTUJFUiwg dHJhY2sudHJhY2tOdW0gKTsKKy0gICAgICAgICAgICAgICAgbWFwLmluc2VydCggTWV0YTo6Rmll bGQ6OlVSTCwgdHJhY2subG9jYXRpb24gKTsKKy0gICAgICAgICAgICAgICAgTWV0YTo6RmllbGQ6 OnVwZGF0ZVRyYWNrKCBwcm94eVRyYWNrLCBtYXAgKTsKKy0gICAgICAgICAgICB9CistICAgICAg ICAgICAgbV90cmFja3MgPDwgTWV0YTo6VHJhY2tQdHIoIHByb3h5VHJhY2sgKTsKKy0gICAgLy8g ICAgICAgICBtX3RyYWNrcyA8PCBDb2xsZWN0aW9uTWFuYWdlcjo6aW5zdGFuY2UoKS0+dHJhY2tG b3JVcmwoIHRyYWNrLmxvY2F0aW9uICk7CistICAgICAgICB9Ki8KKy0KKysgICAgICAgTWV0YVBy b3h5OjpUcmFjayAqcHJveHlUcmFjayA9IG5ldyBNZXRhUHJveHk6OlRyYWNrKCB0cmFjay5sb2Nh dGlvbiApOworKyAgICAgICAvL0ZpbGwgaW4gdmFsdWVzIGZyb20geHNwZi4uCisrICAgICAgIHBy b3h5VHJhY2stPnNldE5hbWUoIHRyYWNrLnRpdGxlICk7CisrICAgICAgIHByb3h5VHJhY2stPnNl dEFsYnVtKCB0cmFjay5hbGJ1bSApOworKyAgICAgICBwcm94eVRyYWNrLT5zZXRBcnRpc3QoIHRy YWNrLmNyZWF0b3IgKTsKKysgICAgICAgcHJveHlUcmFjay0+c2V0TGVuZ3RoKCB0cmFjay5kdXJh dGlvbiApOworKyAgICAgICBwcm94eVRyYWNrLT5zZXRUcmFja051bWJlciggdHJhY2sudHJhY2tO dW0gKTsKKysgICAgICAgbV90cmFja3MgPDwgTWV0YTo6VHJhY2tQdHIoIHByb3h5VHJhY2sgKTsK KyAgICAgfQorIAorICAgICBtX3RyYWNrc0xvYWRlZCA9IHRydWU7CitkaWZmIC0tZ2l0IGEvc3Jj L2NvcmUvY29sbGVjdGlvbnMvc3VwcG9ydC9UcmFja0ZvclVybFdvcmtlci5oIGIvc3JjL2NvcmUv Y29sbGVjdGlvbnMvc3VwcG9ydC9UcmFja0ZvclVybFdvcmtlci5oCitpbmRleCA2NGQyM2JkLi4x NmQ3NjRlIDEwMDY0NAorLS0tIGEvc3JjL2NvcmUvY29sbGVjdGlvbnMvc3VwcG9ydC9UcmFja0Zv clVybFdvcmtlci5oCisrKysgYi9zcmMvY29yZS9jb2xsZWN0aW9ucy9zdXBwb3J0L1RyYWNrRm9y VXJsV29ya2VyLmgKK0BAIC0zNSwxNyArMzUsMTcgQEAgY2xhc3MgQU1BUk9LX0NPUkVfRVhQT1JU IFRyYWNrRm9yVXJsV29ya2VyIDogcHVibGljIFRocmVhZFdlYXZlcjo6Sm9iCisgeworICAgICBR X09CSkVDVAorIHB1YmxpYzoKKy0gICAgVHJhY2tGb3JVcmxXb3JrZXIgKCBjb25zdCBLVXJsICZ1 cmwgKTsKKy0gICAgVHJhY2tGb3JVcmxXb3JrZXIgKCBjb25zdCBRU3RyaW5nICZ1cmwgKTsKKysg ICAgVHJhY2tGb3JVcmxXb3JrZXIoIGNvbnN0IEtVcmwgJnVybCApOworKyAgICBUcmFja0ZvclVy bFdvcmtlciggY29uc3QgUVN0cmluZyAmdXJsICk7CisgICAgIH5UcmFja0ZvclVybFdvcmtlcigp OworIAorLSAgICB2aXJ0dWFsIHZvaWQgcnVuICgpID0gMDsKKysgICAgdmlydHVhbCB2b2lkIHJ1 bigpID0gMDsKKyBzaWduYWxzOgorLSAgICB2b2lkIGZpbmlzaGVkTG9va3VwICggY29uc3QgTWV0 YTo6VHJhY2tQdHIgICZ0cmFjayApOworKyAgICB2b2lkIGZpbmlzaGVkTG9va3VwKCBjb25zdCBN ZXRhOjpUcmFja1B0ciAmdHJhY2sgKTsKKyAKKyBwcm90ZWN0ZWQ6CistICAgIEtVcmwgbVVybDsK Ky0gICAgTWV0YTo6VHJhY2tQdHIgbVRyYWNrOworKyAgICBLVXJsIG1fdXJsOworKyAgICBNZXRh OjpUcmFja1B0ciBtX3RyYWNrOworIAorIHByaXZhdGUgc2xvdHM6CisgICAgIHZvaWQgY29tcGxl dGVKb2IoKTsKK2RpZmYgLS1naXQgYS9zcmMvY29yZS9jb2xsZWN0aW9ucy9zdXBwb3J0L1RyYWNr Rm9yVXJsV29ya2VyLmNwcCBiL3NyYy9jb3JlL2NvbGxlY3Rpb25zL3N1cHBvcnQvVHJhY2tGb3JV cmxXb3JrZXIuY3BwCitpbmRleCA3ZThmMjg5Li4yOGQ5MmJiIDEwMDY0NAorLS0tIGEvc3JjL2Nv cmUvY29sbGVjdGlvbnMvc3VwcG9ydC9UcmFja0ZvclVybFdvcmtlci5jcHAKKysrKyBiL3NyYy9j b3JlL2NvbGxlY3Rpb25zL3N1cHBvcnQvVHJhY2tGb3JVcmxXb3JrZXIuY3BwCitAQCAtMTYsMTQg KzE2LDE4IEBACisgCisgI2luY2x1ZGUgIlRyYWNrRm9yVXJsV29ya2VyLmgiCisgCistQW1hcm9r OjpUcmFja0ZvclVybFdvcmtlcjo6VHJhY2tGb3JVcmxXb3JrZXIgKCBjb25zdCBLVXJsICZ1cmwg KSA6IFRocmVhZFdlYXZlcjo6Sm9iKCksIG1VcmwgKCB1cmwgKQorK0FtYXJvazo6VHJhY2tGb3JV cmxXb3JrZXI6OlRyYWNrRm9yVXJsV29ya2VyKCBjb25zdCBLVXJsICZ1cmwgKQorKyAgICA6IFRo cmVhZFdlYXZlcjo6Sm9iKCkKKysgICAgLCBtX3VybCggdXJsICkKKyB7CistICAgIGNvbm5lY3Qg KCB0aGlzLCBTSUdOQUwgKCBkb25lICggVGhyZWFkV2VhdmVyOjpKb2IqICkgKSwgU0xPVCAoIGNv bXBsZXRlSm9iKCkgKSApOworKyAgICBjb25uZWN0KCB0aGlzLCBTSUdOQUwoZG9uZSggVGhyZWFk V2VhdmVyOjpKb2IgKiApKSwgU0xPVCggY29tcGxldGVKb2IoKSkgKTsKKyB9CisgCistQW1hcm9r OjpUcmFja0ZvclVybFdvcmtlcjo6VHJhY2tGb3JVcmxXb3JrZXIoIGNvbnN0IFFTdHJpbmcgJnVy bCApIDogVGhyZWFkV2VhdmVyOjpKb2IoKSwgbVVybCAoIEtVcmwgKCB1cmwgKSApCisrQW1hcm9r OjpUcmFja0ZvclVybFdvcmtlcjo6VHJhY2tGb3JVcmxXb3JrZXIoIGNvbnN0IFFTdHJpbmcgJnVy bCApCisrICAgIDogVGhyZWFkV2VhdmVyOjpKb2IoKQorKyAgICAsIG1fdXJsKCBLVXJsKCB1cmwg KSApCisgeworLSAgICBjb25uZWN0ICggdGhpcywgU0lHTkFMICggZG9uZSAoIFRocmVhZFdlYXZl cjo6Sm9iKiApICksIFNMT1QgKCBjb21wbGV0ZUpvYigpICkgKTsKKysgICAgY29ubmVjdCggdGhp cywgU0lHTkFMKGRvbmUoIFRocmVhZFdlYXZlcjo6Sm9iICogKSksIFNMT1QoIGNvbXBsZXRlSm9i KCkpICk7CisgfQorIAorIEFtYXJvazo6VHJhY2tGb3JVcmxXb3JrZXI6On5UcmFja0ZvclVybFdv cmtlcigpCitAQCAtMzIsNiArMzYsNiBAQCBBbWFyb2s6OlRyYWNrRm9yVXJsV29ya2VyOjp+VHJh Y2tGb3JVcmxXb3JrZXIoKQorIHZvaWQKKyBBbWFyb2s6OlRyYWNrRm9yVXJsV29ya2VyOjpjb21w bGV0ZUpvYigpCisgeworLSAgICBlbWl0ICggZmluaXNoZWRMb29rdXAgKCBtVHJhY2sgKSApOwor KyAgICBlbWl0KCBmaW5pc2hlZExvb2t1cCggbV90cmFjayApICk7CisgICAgIGRlbGV0ZUxhdGVy KCk7CisgfQorZGlmZiAtLWdpdCBhL3NyYy9zZXJ2aWNlcy9hbXBhY2hlL0FtcGFjaGVTZXJ2aWNl Q29sbGVjdGlvbi5oIGIvc3JjL3NlcnZpY2VzL2FtcGFjaGUvQW1wYWNoZVNlcnZpY2VDb2xsZWN0 aW9uLmgKK2luZGV4IGE0OGM4ZjIuLmNjNDk3NzUgMTAwNjQ0CistLS0gYS9zcmMvc2VydmljZXMv YW1wYWNoZS9BbXBhY2hlU2VydmljZUNvbGxlY3Rpb24uaAorKysrIGIvc3JjL3NlcnZpY2VzL2Ft cGFjaGUvQW1wYWNoZVNlcnZpY2VDb2xsZWN0aW9uLmgKK0BAIC0yNSwxNCArMjUsMTYgQEAgY2xh c3MgQW1wYWNoZVRyYWNrRm9yVXJsV29ya2VyIDogcHVibGljIEFtYXJvazo6VHJhY2tGb3JVcmxX b3JrZXIKKyB7CisgICAgIFFfT0JKRUNUCisgICAgIHB1YmxpYzoKKy0gICAgICAgIEFtcGFjaGVU cmFja0ZvclVybFdvcmtlciggY29uc3QgS1VybCAmdXJsLCBNZXRhUHJveHk6OlRyYWNrUHRyIHRy YWNrLCBjb25zdCBRU3RyaW5nICZzZXJ2ZXIsIGNvbnN0IFFTdHJpbmcgJnNlc3Npb25JZCwgU2Vy dmljZUJhc2UqIHNlcnZpY2UpOworKyAgICAgICAgQW1wYWNoZVRyYWNrRm9yVXJsV29ya2VyKCBj b25zdCBLVXJsICZ1cmwsIE1ldGFQcm94eTo6VHJhY2tQdHIgdHJhY2ssCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFFTdHJpbmcgJnNlcnZlciwgY29uc3QgUVN0cmlu ZyAmc2Vzc2lvbklkLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZXJ2aWNl QmFzZSAqc2VydmljZSk7CisgICAgICAgICB+QW1wYWNoZVRyYWNrRm9yVXJsV29ya2VyKCk7Cist ICAgICAgICB2aXJ0dWFsIHZvaWQgcnVuICgpOworKyAgICAgICAgdmlydHVhbCB2b2lkIHJ1bigp OworICAgICAgICAgdm9pZCBwYXJzZVRyYWNrKCBjb25zdCBRU3RyaW5nICZ4bWwgKTsKKyAgICAg c2lnbmFsczoKKyAgICAgICAgIHZvaWQgYXV0aGVudGljYXRpb25OZWVkZWQoKTsKKyAgICAgcHJp dmF0ZToKKy0gICAgICAgIE1ldGFQcm94eTo6VHJhY2tQdHIgbVByb3h5OworKyAgICAgICAgTWV0 YVByb3h5OjpUcmFja1B0ciBtX3Byb3h5OworICAgICAgICAgaW50IG1fdXJsVHJhY2tJZDsKKyAg ICAgICAgIGludCBtX3VybEFsYnVtSWQ7CisgICAgICAgICBpbnQgbV91cmxBcnRpc3RJZDsKK0BA IC00NCw3ICs0Niw3IEBAIGNsYXNzIEFtcGFjaGVUcmFja0ZvclVybFdvcmtlciA6IHB1YmxpYyBB bWFyb2s6OlRyYWNrRm9yVXJsV29ya2VyCisgICAgICAgICBRU3RyaW5nIG1fc2VydmVyOworICAg ICAgICAgUVN0cmluZyBtX3Nlc3Npb25JZDsKKyAKKy0gICAgICAgIFNlcnZpY2VCYXNlKiBtX3Nl cnZpY2U7CisrICAgICAgICBTZXJ2aWNlQmFzZSAqbV9zZXJ2aWNlOworIH07CisgCisgbmFtZXNw YWNlIENvbGxlY3Rpb25zIHsKK0BAIC01OSwxMSArNjEsMTIgQEAgY2xhc3MgQW1wYWNoZVNlcnZp Y2VDb2xsZWN0aW9uIDogcHVibGljIFNlcnZpY2VDb2xsZWN0aW9uCisgICAgIFFfT0JKRUNUCisg CisgcHVibGljOgorLSAgICBBbXBhY2hlU2VydmljZUNvbGxlY3Rpb24oIFNlcnZpY2VCYXNlICog c2VydmljZSwgY29uc3QgUVN0cmluZyAmc2VydmVyLCBjb25zdCBRU3RyaW5nICZzZXNzaW9uSWQg KTsKKysgICAgQW1wYWNoZVNlcnZpY2VDb2xsZWN0aW9uKCBTZXJ2aWNlQmFzZSAqc2VydmljZSwg Y29uc3QgUVN0cmluZyAmc2VydmVyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IFFTdHJpbmcgJnNlc3Npb25JZCApOworIAorICAgICB2aXJ0dWFsIH5BbXBhY2hlU2Vydmlj ZUNvbGxlY3Rpb24oKTsKKyAKKy0gICAgdmlydHVhbCBRdWVyeU1ha2VyKiBxdWVyeU1ha2VyKCk7 CisrICAgIHZpcnR1YWwgUXVlcnlNYWtlciAqcXVlcnlNYWtlcigpOworIAorICAgICB2aXJ0dWFs IFFTdHJpbmcgY29sbGVjdGlvbklkKCkgY29uc3Q7CisgICAgIHZpcnR1YWwgUVN0cmluZyBwcmV0 dHlOYW1lKCkgY29uc3Q7CitAQCAtNzYsMTYgKzc5LDEzIEBAIHNpZ25hbHM6CisgCisgcHVibGlj IHNsb3RzOgorICAgICB2b2lkIHNsb3RBdXRoZW50aWNhdGlvbk5lZWRlZCgpOworLSAgICB2b2lk IHNsb3RMb29rdXBDb21wbGV0ZSggY29uc3QgTWV0YTo6VHJhY2tQdHImICk7CisrICAgIHZvaWQg c2xvdExvb2t1cENvbXBsZXRlKCBjb25zdCBNZXRhOjpUcmFja1B0ciAmICk7CisgCisgcHJpdmF0 ZToKKy0gICAgLyp2b2lkIHBhcnNlQWxidW0oIGNvbnN0IFFTdHJpbmcgJnhtbCApOworLSAgICB2 b2lkIHBhcnNlQXJ0aXN0KCBjb25zdCBRU3RyaW5nICZ4bWwgKTsqLworLQorICAgICBRU3RyaW5n IG1fc2VydmVyOworICAgICBRU3RyaW5nIG1fc2Vzc2lvbklkOworIAorLSAgICBBbXBhY2hlVHJh Y2tGb3JVcmxXb3JrZXIgKiBtX3RyYWNrRm9yVXJsV29ya2VyOworKyAgICBBbXBhY2hlVHJhY2tG b3JVcmxXb3JrZXIgKm1fdHJhY2tGb3JVcmxXb3JrZXI7CisgfTsKKyAKKyB9IC8vbmFtZXNwYWNl IENvbGxlY3Rpb25zCistLSAKKzEuNy41LjQKKworZGlmZiAtLWdpdCBhL3NyYy9zZXJ2aWNlcy9h bXBhY2hlL0FtcGFjaGVTZXJ2aWNlQ29sbGVjdGlvbi5jcHAgYi9zcmMvc2VydmljZXMvYW1wYWNo ZS9BbXBhY2hlU2VydmljZUNvbGxlY3Rpb24uY3BwCitpbmRleCBiNjg0ZTM0Li5jM2I1MTE1IDEw MDY0NAorLS0tIGEvc3JjL3NlcnZpY2VzL2FtcGFjaGUvQW1wYWNoZVNlcnZpY2VDb2xsZWN0aW9u LmNwcAorKysrIGIvc3JjL3NlcnZpY2VzL2FtcGFjaGUvQW1wYWNoZVNlcnZpY2VDb2xsZWN0aW9u LmNwcAorQEAgLTI3LDcgKzI3LDkgQEAKKyAKKyB1c2luZyBuYW1lc3BhY2UgQ29sbGVjdGlvbnM7 CisgCistQW1wYWNoZVNlcnZpY2VDb2xsZWN0aW9uOjpBbXBhY2hlU2VydmljZUNvbGxlY3Rpb24o IFNlcnZpY2VCYXNlICogc2VydmljZSwgY29uc3QgUVN0cmluZyAmc2VydmVyLCBjb25zdCBRU3Ry aW5nICZzZXNzaW9uSWQgKQorK0FtcGFjaGVTZXJ2aWNlQ29sbGVjdGlvbjo6QW1wYWNoZVNlcnZp Y2VDb2xsZWN0aW9uKCBTZXJ2aWNlQmFzZSAqc2VydmljZSwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUVN0cmluZyAmc2VydmVyLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBRU3RyaW5nICZzZXNzaW9uSWQgKQorICAgICA6IFNlcnZpY2VDb2xsZWN0aW9uKCBzZXJ2aWNl LCAiQW1wYWNoZUNvbGxlY3Rpb24iLCAiQW1wYWNoZUNvbGxlY3Rpb24iICkKKyAgICAgLCBtX3Nl cnZlciggc2VydmVyICkKKyAgICAgLCBtX3Nlc3Npb25JZCggc2Vzc2lvbklkICkKK0BAIC01OCw3 ICs2MCw3IEBAIEFtcGFjaGVTZXJ2aWNlQ29sbGVjdGlvbjo6cHJldHR5TmFtZSgpIGNvbnN0Cisg fQorIAorIGJvb2wKKy1BbXBhY2hlU2VydmljZUNvbGxlY3Rpb246OnBvc3NpYmx5Q29udGFpbnNU cmFjayhjb25zdCBLVXJsICYgdXJsKSBjb25zdAorK0FtcGFjaGVTZXJ2aWNlQ29sbGVjdGlvbjo6 cG9zc2libHlDb250YWluc1RyYWNrKCBjb25zdCBLVXJsICZ1cmwgKSBjb25zdAorIHsKKyAgICAg cmV0dXJuIHVybC51cmwoKS5jb250YWlucyggbV9zZXJ2ZXIgKTsKKyB9CitAQCAtNzAsNzcgKzcy LDgyIEBAIEFtcGFjaGVTZXJ2aWNlQ29sbGVjdGlvbjo6c2xvdEF1dGhlbnRpY2F0aW9uTmVlZGVk KCkKKyB9CisgCisgTWV0YTo6VHJhY2tQdHIKKy1BbXBhY2hlU2VydmljZUNvbGxlY3Rpb246OnRy YWNrRm9yVXJsKCBjb25zdCBLVXJsICYgdXJsICkKKytBbXBhY2hlU2VydmljZUNvbGxlY3Rpb246 OnRyYWNrRm9yVXJsKCBjb25zdCBLVXJsICZ1cmwgKQorIHsKKy0gICAgTWV0YVByb3h5OjpUcmFj ayogcHRyYWNrID0gbmV3IE1ldGFQcm94eTo6VHJhY2soIHVybC51cmwoKSwgdHJ1ZSApOworLSAg ICBNZXRhUHJveHk6OlRyYWNrUHRyIHRyYWNrcHRyKHB0cmFjayk7CistICAgIEFtcGFjaGVUcmFj a0ZvclVybFdvcmtlciAqIHdvcmtlciA9ICBuZXcgQW1wYWNoZVRyYWNrRm9yVXJsV29ya2VyKHVy bCwgdHJhY2twdHIsIG1fc2VydmVyLCBtX3Nlc3Npb25JZCwgc2VydmljZSgpICk7CistLy8gICAg IGNvbm5lY3QoIHdvcmtlciwgU0lHTkFMKCBmaW5pc2hlZExvb2t1cCAoIGNvbnN0IE1ldGE6OlRy YWNrUHRyJiApICksIHRoaXMsCistLy8gICAgICAgICAgICAgIFNMT1QoIHNsb3RMb29rdXBDb21w bGV0ZSggY29uc3QgTWV0YTo6VHJhY2tQdHImICkgKSApOworLSAgICBjb25uZWN0KCB3b3JrZXIs IFNJR05BTCggYXV0aGVudGljYXRpb25OZWVkZWQoKSApLCB0aGlzLAorLSAgICAgICAgICAgICBT TE9UKCBzbG90QXV0aGVudGljYXRpb25OZWVkZWQoKSApICk7CisrICAgIE1ldGFQcm94eTo6VHJh Y2sgKnB0cmFjayA9IG5ldyBNZXRhUHJveHk6OlRyYWNrKCB1cmwudXJsKCksIHRydWUgKTsKKysg ICAgTWV0YVByb3h5OjpUcmFja1B0ciB0cmFja3B0ciggcHRyYWNrICk7CisrICAgIEFtcGFjaGVU cmFja0ZvclVybFdvcmtlciAqd29ya2VyID0gbmV3IEFtcGFjaGVUcmFja0ZvclVybFdvcmtlcigg dXJsLCB0cmFja3B0ciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3NlcnZlciwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3Nl c3Npb25JZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlKCkgKTsKKysgICAgY29ubmVjdCggd29ya2Vy LCBTSUdOQUwoYXV0aGVudGljYXRpb25OZWVkZWQoKSksIFNMT1Qoc2xvdEF1dGhlbnRpY2F0aW9u TmVlZGVkKCkpICk7CisgICAgIFRocmVhZFdlYXZlcjo6V2VhdmVyOjppbnN0YW5jZSgpLT5lbnF1 ZXVlKCB3b3JrZXIgKTsKKyAKKyAgICAgcmV0dXJuIE1ldGE6OlRyYWNrUHRyOjpzdGF0aWNDYXN0 KCB0cmFja3B0ciApOworIH0KKysKKyB2b2lkIEFtcGFjaGVTZXJ2aWNlQ29sbGVjdGlvbjo6c2xv dExvb2t1cENvbXBsZXRlKCBjb25zdCBNZXRhOjpUcmFja1B0ciYgKQorIHsKKyB9CisgCisgdm9p ZCBBbXBhY2hlVHJhY2tGb3JVcmxXb3JrZXI6OnBhcnNlVHJhY2soIGNvbnN0IFFTdHJpbmcgJnht bCApCisgeworLS8vICAgICBERUJVR19CTE9DSworLQorLS8vICAgICAgZGVidWcoKSA8PCAiUmVj ZWl2ZWQgdHJhY2sgcmVzcG9uc2U6ICIgPDwgeG1sOworLQorLSAgICAgLy9zbyBsZXRzIGZpZ3Vy ZSBvdXQgd2hhdCB3ZSBnb3QgaGVyZToKKysgICAgLy9zbyBsZXRzIGZpZ3VyZSBvdXQgd2hhdCB3 ZSBnb3QgaGVyZToKKyAgICAgUURvbURvY3VtZW50IGRvYyggInJlcGx5IiApOworICAgICBkb2Mu c2V0Q29udGVudCggeG1sICk7CistICAgIFFEb21FbGVtZW50IHJvb3QgPSBkb2MuZmlyc3RDaGls ZEVsZW1lbnQoInJvb3QiKTsKKy0gICAgUURvbUVsZW1lbnQgc29uZyA9IHJvb3QuZmlyc3RDaGls ZEVsZW1lbnQoInNvbmciKTsKKysgICAgUURvbUVsZW1lbnQgcm9vdCA9IGRvYy5maXJzdENoaWxk RWxlbWVudCggInJvb3QiICk7CisrICAgIFFEb21FbGVtZW50IHNvbmcgPSByb290LmZpcnN0Q2hp bGRFbGVtZW50KCAic29uZyIgKTsKKyAKKy0gICAgbV91cmxUcmFja0lkID0gc29uZy5hdHRyaWJ1 dGUoICJpZCIsICIwIikudG9JbnQoKTsKKysgICAgbV91cmxUcmFja0lkID0gc29uZy5hdHRyaWJ1 dGUoICJpZCIsICIwIiApLnRvSW50KCk7CisgCistICAgIFFEb21FbGVtZW50IGVsZW1lbnQgPSBz b25nLmZpcnN0Q2hpbGRFbGVtZW50KCJ0aXRsZSIpOworKyAgICBRRG9tRWxlbWVudCBlbGVtZW50 ID0gc29uZy5maXJzdENoaWxkRWxlbWVudCggInRpdGxlIiApOworIAorICAgICBRU3RyaW5nIHRp dGxlID0gZWxlbWVudC50ZXh0KCk7CisgICAgIGlmICggdGl0bGUuaXNFbXB0eSgpICkgdGl0bGUg PSAiVW5rbm93biI7CisgCistICAgIGVsZW1lbnQgPSBzb25nLmZpcnN0Q2hpbGRFbGVtZW50KCJ1 cmwiKTsKKysgICAgZWxlbWVudCA9IHNvbmcuZmlyc3RDaGlsZEVsZW1lbnQoICJ1cmwiICk7Cisg CisgICAgIG1fdXJsVHJhY2sgPSBuZXcgTWV0YTo6QW1wYWNoZVRyYWNrKCB0aXRsZSwgbV9zZXJ2 aWNlICk7CisgICAgIE1ldGE6OlRyYWNrUHRyIHRyYWNrUHRyKCBtX3VybFRyYWNrICk7CisgCist ICAgIC8vZGVidWcoKSA8PCAiQWRkaW5nIHRyYWNrOiAiIDw8ICB0aXRsZTsKKyAgICAgbV91cmxU cmFjay0+c2V0VWlkVXJsKCBlbGVtZW50LnRleHQoKSApOworICAgICBtX3VybFRyYWNrLT5zZXRJ ZCggbV91cmxUcmFja0lkICk7CisgCistICAgIGVsZW1lbnQgPSBzb25nLmZpcnN0Q2hpbGRFbGVt ZW50KCJ0aW1lIik7CisrICAgIGVsZW1lbnQgPSBzb25nLmZpcnN0Q2hpbGRFbGVtZW50KCAidGlt ZSIgKTsKKyAgICAgbV91cmxUcmFjay0+c2V0TGVuZ3RoKCBlbGVtZW50LnRleHQoKS50b0ludCgp ICogMTAwMCApOworIAorLSAgICBlbGVtZW50ID0gc29uZy5maXJzdENoaWxkRWxlbWVudCgidHJh Y2siKTsKKysgICAgZWxlbWVudCA9IHNvbmcuZmlyc3RDaGlsZEVsZW1lbnQoICJ0cmFjayIgKTsK KyAgICAgbV91cmxUcmFjay0+c2V0VHJhY2tOdW1iZXIoIGVsZW1lbnQudGV4dCgpLnRvSW50KCkg KTsKKyAKKy0gICAgUURvbUVsZW1lbnQgYWxidW1FbGVtZW50ID0gc29uZy5maXJzdENoaWxkRWxl bWVudCgiYWxidW0iKTsKKy0gICAgLy9tX3VybEFsYnVtSWQgPSBhbGJ1bUVsZW1lbnQuYXR0cmli dXRlKCAiaWQiLCAiMCIpLnRvSW50KCk7CisrICAgIFFEb21FbGVtZW50IGFsYnVtRWxlbWVudCA9 IHNvbmcuZmlyc3RDaGlsZEVsZW1lbnQoICJhbGJ1bSIgKTsKKysgICAgbV91cmxBbGJ1bUlkID0g YWxidW1FbGVtZW50LmF0dHJpYnV0ZSggImlkIiwgIjAiICkudG9JbnQoKTsKKyAKKy0gICAgTWV0 YTo6QW1wYWNoZUFsYnVtICogYWxidW0gPSBuZXcgTWV0YTo6QW1wYWNoZUFsYnVtKCBhbGJ1bUVs ZW1lbnQudGV4dCgpICk7CisrICAgIE1ldGE6OkFtcGFjaGVBbGJ1bSAqYWxidW0gPSBuZXcgTWV0 YTo6QW1wYWNoZUFsYnVtKCBhbGJ1bUVsZW1lbnQudGV4dCgpICk7CisgCistICAgIFFEb21FbGVt ZW50IGFydEVsZW1lbnQgPSBzb25nLmZpcnN0Q2hpbGRFbGVtZW50KCJhcnQiKTsKKysgICAgUURv bUVsZW1lbnQgYXJ0RWxlbWVudCA9IHNvbmcuZmlyc3RDaGlsZEVsZW1lbnQoICJhcnQiICk7Cisg ICAgIGFsYnVtLT5zZXRDb3ZlclVybCggYXJ0RWxlbWVudC50ZXh0KCkgKTsKKyAKKyAgICAgYWxi dW0tPmFkZFRyYWNrKCB0cmFja1B0ciApOworICAgICBtX3VybFRyYWNrLT5zZXRBbGJ1bVB0cigg TWV0YTo6QWxidW1QdHIoIGFsYnVtICkgKTsKKyAKKy0gICAgUURvbUVsZW1lbnQgYXJ0aXN0RWxl bWVudCA9IHNvbmcuZmlyc3RDaGlsZEVsZW1lbnQoImFydGlzdCIpOworLSAgICBNZXRhOjpTZXJ2 aWNlQXJ0aXN0ICogYXJ0aXN0ID0gbmV3IE1ldGE6OlNlcnZpY2VBcnRpc3QoIGFydGlzdEVsZW1l bnQudGV4dCgpICk7CisrICAgIFFEb21FbGVtZW50IGFydGlzdEVsZW1lbnQgPSBzb25nLmZpcnN0 Q2hpbGRFbGVtZW50KCAiYXJ0aXN0IiApOworKyAgICBNZXRhOjpTZXJ2aWNlQXJ0aXN0ICphcnRp c3QgPSBuZXcgTWV0YTo6U2VydmljZUFydGlzdCggYXJ0aXN0RWxlbWVudC50ZXh0KCkgKTsKKyAK KyAgICAgTWV0YTo6QXJ0aXN0UHRyIGFydGlzdFB0ciggYXJ0aXN0ICk7CisgICAgIG1fdXJsVHJh Y2stPnNldEFydGlzdCggYXJ0aXN0UHRyICk7CisgICAgIGFsYnVtLT5zZXRBbGJ1bUFydGlzdCgg YXJ0aXN0UHRyICk7CisgfQorIAorLUFtcGFjaGVUcmFja0ZvclVybFdvcmtlcjo6QW1wYWNoZVRy YWNrRm9yVXJsV29ya2VyKGNvbnN0IEtVcmwgJnVybCwgTWV0YVByb3h5OjpUcmFja1B0ciB0cmFj aywgY29uc3QgUVN0cmluZyAmc2VydmVyLCBjb25zdCBRU3RyaW5nICZzZXNzaW9uSWQsIFNlcnZp Y2VCYXNlKiBzZXJ2aWNlKSA6IEFtYXJvazo6VHJhY2tGb3JVcmxXb3JrZXIodXJsKSwgbVByb3h5 KHRyYWNrKSwgbV9zZXJ2ZXIoc2VydmVyKSwgbV9zZXNzaW9uSWQoc2Vzc2lvbklkKSwgbV9zZXJ2 aWNlKHNlcnZpY2UpCisrQW1wYWNoZVRyYWNrRm9yVXJsV29ya2VyOjpBbXBhY2hlVHJhY2tGb3JV cmxXb3JrZXIoIGNvbnN0IEtVcmwgJnVybCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTWV0YVByb3h5OjpUcmFja1B0ciB0cmFjaywKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUVN0 cmluZyAmc2VydmVyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBRU3RyaW5nICZzZXNzaW9uSWQsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlcnZpY2VCYXNlICpzZXJ2aWNlICkK KysgICAgOiBBbWFyb2s6OlRyYWNrRm9yVXJsV29ya2VyKCB1cmwgKQorKyAgICAsIG1fcHJveHko IHRyYWNrICkKKysgICAgLCBtX3NlcnZlciggc2VydmVyICkKKysgICAgLCBtX3Nlc3Npb25JZCgg c2Vzc2lvbklkICkKKysgICAgLCBtX3NlcnZpY2UoIHNlcnZpY2UgKQorIHsKKyB9CisgCitAQCAt MTUwLDggKzE1Nyw2IEBAIEFtcGFjaGVUcmFja0ZvclVybFdvcmtlcjo6fkFtcGFjaGVUcmFja0Zv clVybFdvcmtlcigpCisgdm9pZAorIEFtcGFjaGVUcmFja0ZvclVybFdvcmtlcjo6cnVuKCkKKyB7 CistICAgIC8vIERFQlVHX0JMT0NLOworLQorICAgICBtX3VybFRyYWNrID0gMDsKKyAgICAgbV91 cmxBbGJ1bSA9IDA7CisgICAgIG1fdXJsQXJ0aXN0ID0gMDsKK0BAIC0xNjIsOSArMTY3LDkgQEAg QW1wYWNoZVRyYWNrRm9yVXJsV29ya2VyOjpydW4oKQorIAorICAgICAvL3NlbmQgdXJsX3RvX3Nv bmcgdG8gQW1wYWNoZQorIAorLSAgICBRU3RyaW5nIHJlcXVlc3RVcmwgPSBRU3RyaW5nKCAiJTEv c2VydmVyL3htbC5zZXJ2ZXIucGhwP2FjdGlvbj11cmxfdG9fc29uZyZhdXRoPSUyJnVybD0lMyIp CistICAgIC4gYXJnKCAgbV9zZXJ2ZXIsICBtX3Nlc3Npb25JZCwgIFFVcmw6OnRvUGVyY2VudEVu Y29kaW5nKCBtVXJsLnVybCgpICkgKTsKKy0gICAgLy8gICAgIGRlYnVnKCkgPDwgInJlcXVlc3Qg dXJsOiAiIDw8IHJlcXVlc3RVcmw7CisrICAgIFFTdHJpbmcgcmVxdWVzdFVybCA9CisrICAgICAg ICAgICAgUVN0cmluZyggIiUxL3NlcnZlci94bWwuc2VydmVyLnBocD9hY3Rpb249dXJsX3RvX3Nv bmcmYXV0aD0lMiZ1cmw9JTMiICkKKysgICAgICAgICAgICAgICAgICAgIC5hcmcoIG1fc2VydmVy LCBtX3Nlc3Npb25JZCwgUVVybDo6dG9QZXJjZW50RW5jb2RpbmcoIG1fdXJsLnVybCgpICkgKTsK KyAKKyAgICAgUU5ldHdvcmtSZXF1ZXN0IHJlcSggcmVxdWVzdFVybCApOworICAgICBRTmV0d29y a1JlcGx5ICpyZXBseSA9IFRoZTo6bmV0d29ya0FjY2Vzc01hbmFnZXIoKS0+Z2V0KCByZXEgKTsK K0BAIC0xNzgsNyArMTgzLDcgQEAgQW1wYWNoZVRyYWNrRm9yVXJsV29ya2VyOjpydW4oKQorICAg ICAgICAgfQorICAgICB9CisgICAgIHBhcnNlVHJhY2soIHJlcGx5LT5yZWFkQWxsKCkgKTsKKy0g ICAgbVRyYWNrID0gTWV0YTo6VHJhY2tQdHIoIG1fdXJsVHJhY2sgKTsKKy0gICAgbVByb3h5LT51 cGRhdGVUcmFjayggbVRyYWNrICk7CisrICAgIG1fdHJhY2sgPSBNZXRhOjpUcmFja1B0ciggbV91 cmxUcmFjayApOworKyAgICBtX3Byb3h5LT51cGRhdGVUcmFjayggbV90cmFjayApOworICAgICBy ZXBseS0+ZGVsZXRlTGF0ZXIoKTsKKyB9CgpkaWZmIC0tZ2l0IGEvYW1hcm9rLnNwZWMgYi9hbWFy b2suc3BlYwppbmRleCBmYmI4M2U1Li40YmRmMTZlIDEwMDY0NAotLS0gYS9hbWFyb2suc3BlYwor KysgYi9hbWFyb2suc3BlYwpAQCAtMiw3ICsyLDcgQEAKIE5hbWU6ICAgIGFtYXJvawogU3VtbWFy eTogTWVkaWEgcGxheWVyCiBWZXJzaW9uOiAyLjUuMAotUmVsZWFzZTogNyV7P2Rpc3R9CitSZWxl YXNlOiA4JXs/ZGlzdH0KIAogIyBLREUgZS5WLiBtYXkgZGV0ZXJtaW5lIHRoYXQgZnV0dXJlIEdQ TCB2ZXJzaW9ucyBhcmUgYWNjZXB0ZWQKIExpY2Vuc2U6IEdQTHYyIG9yIEdQTHYzCkBAIC0xOSw2 ICsxOSw5IEBAIFBhdGNoMDogIGFtYXJvay0yLjUuMC1vbmxpbmVkb2MucGF0Y2gKICMjIHVwc3Ry ZWFtIHBhdGNoZXMKICMgaHR0cHM6Ly9idWdzLmtkZS5vcmcvc2hvd19idWcuY2dpP2lkPTI5MDEy MwogUGF0Y2gxMDA6IGFtYXJvay0yLjUuMC1rZGU0OF9jb250ZXh0X3ZpZXcucGF0Y2ggCisjIExv YWQgYWxsIHRyYWNrcyBmcm9tIFhTUEYgdXNpbmcgTWV0YVByb3h5LgorIyBodHRwczovL2J1Z3Mu a2RlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjk1MTk5CitQYXRjaDEwMTogMDAwMS1Mb2FkLWFsbC10 cmFja3MtZnJvbS1YU1BGLXVzaW5nLU1ldGFQcm94eS5wYXRjaAogCiBCdWlsZFJlcXVpcmVzOiBj dXJsLWRldmVsCiBCdWlsZFJlcXVpcmVzOiBkZXNrdG9wLWZpbGUtdXRpbHMKQEAgLTkwLDYgKzkz LDcgQEAgQnVpbGRBcmNoOiBub2FyY2gKICVwYXRjaDAgLXAxIC1iIC5vbmxpbmVkb2MKICNwYXRj aDUwIC1wMSAtYiAucXRzY3JpcHRfbm90X3JlcXVpcmVkCiAlcGF0Y2gxMDAgLXAxIC1iIC5rZGU0 OF9jb250ZXh0X3ZpZXcKKyVwYXRjaDEwMSAtcDEgLWIgLmxvYWRhbGxfeHNwZgogCiAKICVidWls ZApAQCAtMTc5LDYgKzE4Myw5IEBAIGZpCiAKIAogJWNoYW5nZWxvZworKiBUdWUgTWFyIDEzIDIw MTIgUmV4IERpZXRlciA8cmRpZXRlckBmZWRvcmFwcm9qZWN0Lm9yZz4gMi41LjAtOAorLSBMb2Fk IGFsbCBYU1BGIHRyYWNrcyAoa2RlIzI5NTE5OSkKKwogKiBUdWUgRmViIDI4IDIwMTIgRmVkb3Jh IFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbC1lbmdAbGlzdHMuZmVkb3JhcHJvamVjdC5vcmc+IC0g Mi41LjAtNwogLSBSZWJ1aWx0IGZvciBjKysgQUJJIGJyZWFrYWdlCiAK