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: Takao Fujiwara To: git-commits@fedoraproject.org Subject: [rpms/ibus] autotool: Support input purpose and hits to ibus-wayland Date: Sun, 31 May 2026 02:09:10 GMT Message-ID: <178019335026.1.9176754146655711510.rpms-ibus-761ca1f27315@fedoraproject.org> List-ID: X-Git-Repo: rpms/ibus X-Git-Branch: autotool X-Git-Rev: 761ca1f273159b9ecd4b3eece52d9f8cdac5489e QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvaWJ1cwpCcmFuY2gg OiBhdXRvdG9vbApDb21taXQgOiA3NjFjYTFmMjczMTU5YjllY2Q0YjNlZWNlNTJkOWY4Y2RhYzU0 ODllCkF1dGhvciA6IFRha2FvIEZ1aml3YXJhIDx0ZnVqaXdhckByZWRoYXQuY29tPgpEYXRlICAg OiAyMDI2LTAyLTA1VDIzOjMzOjE0KzA5OjAwClN0YXRzICA6ICsxMjMzLy0xIGluIDIgZmlsZShz KQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2lidXMvYy83NjFj YTFmMjczMTU5YjllY2Q0YjNlZWNlNTJkOWY4Y2RhYzU0ODllP2JyYW5jaD1hdXRvdG9vbAoKTG9n OgpTdXBwb3J0IGlucHV0IHB1cnBvc2UgYW5kIGhpdHMgdG8gaWJ1cy13YXlsYW5kCgotLS0KZGlm ZiAtLWdpdCBhL2lidXMtSEVBRC5wYXRjaCBiL2lidXMtSEVBRC5wYXRjaAppbmRleCBlNjlkZTI5 Li45ODRiOGU5IDEwMDY0NAotLS0gYS9pYnVzLUhFQUQucGF0Y2gKKysrIGIvaWJ1cy1IRUFELnBh dGNoCkBAIC0wLDAgKzEsMTIyOCBAQAorRnJvbSAzNmQyMTkzZWZlNTVjMDk5OTQ0MjM1NzVkZjlh NDdmZTJhNDkzNTJmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogZnVqaXdhcmF0IDx0 YWthby5mdWppd2FyYTFAZ21haWwuY29tPgorRGF0ZTogVGh1LCA1IEZlYiAyMDI2IDIwOjQxOjI1 ICswOTAwCitTdWJqZWN0OiBbUEFUQ0ggMS8zXSBjbGllbnQvd2F5bGFuZDogQWRkCisgdGV4dC1p bnB1dC11bnN0YWJsZS12My1jbGllbnQtcHJvdG9jb2wuaAorCistLS0KKyAuLi4vdGV4dC1pbnB1 dC11bnN0YWJsZS12My1jbGllbnQtcHJvdG9jb2wuaCAgfCA4MzcgKysrKysrKysrKysrKysrKysr CisgMSBmaWxlIGNoYW5nZWQsIDgzNyBpbnNlcnRpb25zKCspCisgY3JlYXRlIG1vZGUgMTAwNjQ0 IGNsaWVudC93YXlsYW5kL3RleHQtaW5wdXQtdW5zdGFibGUtdjMtY2xpZW50LXByb3RvY29sLmgK KworZGlmZiAtLWdpdCBhL2NsaWVudC93YXlsYW5kL3RleHQtaW5wdXQtdW5zdGFibGUtdjMtY2xp ZW50LXByb3RvY29sLmggYi9jbGllbnQvd2F5bGFuZC90ZXh0LWlucHV0LXVuc3RhYmxlLXYzLWNs aWVudC1wcm90b2NvbC5oCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAuLmRl YTk2Yjg5CistLS0gL2Rldi9udWxsCisrKysgYi9jbGllbnQvd2F5bGFuZC90ZXh0LWlucHV0LXVu c3RhYmxlLXYzLWNsaWVudC1wcm90b2NvbC5oCitAQCAtMCwwICsxLDgzNyBAQAorKy8qIEdlbmVy YXRlZCBieSB3YXlsYW5kLXNjYW5uZXIgMS4yNC4wICovCisrCisrI2lmbmRlZiBURVhUX0lOUFVU X1VOU1RBQkxFX1YzX0NMSUVOVF9QUk9UT0NPTF9ICisrI2RlZmluZSBURVhUX0lOUFVUX1VOU1RB QkxFX1YzX0NMSUVOVF9QUk9UT0NPTF9ICisrCisrI2luY2x1ZGUgPHN0ZGludC5oPgorKyNpbmNs dWRlIDxzdGRkZWYuaD4KKysjaW5jbHVkZSAid2F5bGFuZC1jbGllbnQuaCIKKysKKysjaWZkZWYg IF9fY3BsdXNwbHVzCisrZXh0ZXJuICJDIiB7CisrI2VuZGlmCisrCisrLyoqCisrICogQHBhZ2Ug cGFnZV90ZXh0X2lucHV0X3Vuc3RhYmxlX3YzIFRoZSB0ZXh0X2lucHV0X3Vuc3RhYmxlX3YzIHBy b3RvY29sCisrICogUHJvdG9jb2wgZm9yIGNvbXBvc2luZyB0ZXh0CisrICoKKysgKiBAc2VjdGlv biBwYWdlX2Rlc2NfdGV4dF9pbnB1dF91bnN0YWJsZV92MyBEZXNjcmlwdGlvbgorKyAqCisrICog VGhpcyBwcm90b2NvbCBhbGxvd3MgY29tcG9zaXRvcnMgdG8gYWN0IGFzIGlucHV0IG1ldGhvZHMg YW5kIHRvIHNlbmQgdGV4dAorKyAqIHRvIGFwcGxpY2F0aW9ucy4gQSB0ZXh0IGlucHV0IG9iamVj dCBpcyB1c2VkIHRvIG1hbmFnZSBzdGF0ZSBvZiB3aGF0IGFyZQorKyAqIHR5cGljYWxseSB0ZXh0 IGVudHJ5IGZpZWxkcyBpbiB0aGUgYXBwbGljYXRpb24uCisrICoKKysgKiBUaGlzIGRvY3VtZW50 IGFkaGVyZXMgdG8gdGhlIFJGQyAyMTE5IHdoZW4gdXNpbmcgd29yZHMgbGlrZSAibXVzdCIsCisr ICogInNob3VsZCIsICJtYXkiLCBldGMuCisrICoKKysgKiBXYXJuaW5nISBUaGUgcHJvdG9jb2wg ZGVzY3JpYmVkIGluIHRoaXMgZmlsZSBpcyBleHBlcmltZW50YWwgYW5kCisrICogYmFja3dhcmQg aW5jb21wYXRpYmxlIGNoYW5nZXMgbWF5IGJlIG1hZGUuIEJhY2t3YXJkIGNvbXBhdGlibGUgY2hh bmdlcworKyAqIG1heSBiZSBhZGRlZCB0b2dldGhlciB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGlu dGVyZmFjZSB2ZXJzaW9uIGJ1bXAuCisrICogQmFja3dhcmQgaW5jb21wYXRpYmxlIGNoYW5nZXMg YXJlIGRvbmUgYnkgYnVtcGluZyB0aGUgdmVyc2lvbiBudW1iZXIgaW4KKysgKiB0aGUgcHJvdG9j b2wgYW5kIGludGVyZmFjZSBuYW1lcyBhbmQgcmVzZXR0aW5nIHRoZSBpbnRlcmZhY2UgdmVyc2lv bi4KKysgKiBPbmNlIHRoZSBwcm90b2NvbCBpcyB0byBiZSBkZWNsYXJlZCBzdGFibGUsIHRoZSAn eicgcHJlZml4IGFuZCB0aGUKKysgKiB2ZXJzaW9uIG51bWJlciBpbiB0aGUgcHJvdG9jb2wgYW5k IGludGVyZmFjZSBuYW1lcyBhcmUgcmVtb3ZlZCBhbmQgdGhlCisrICogaW50ZXJmYWNlIHZlcnNp b24gbnVtYmVyIGlzIHJlc2V0LgorKyAqCisrICogQHNlY3Rpb24gcGFnZV9pZmFjZXNfdGV4dF9p bnB1dF91bnN0YWJsZV92MyBJbnRlcmZhY2VzCisrICogLSBAc3VicGFnZSBwYWdlX2lmYWNlX3p3 cF90ZXh0X2lucHV0X3YzIC0gdGV4dCBpbnB1dAorKyAqIC0gQHN1YnBhZ2UgcGFnZV9pZmFjZV96 d3BfdGV4dF9pbnB1dF9tYW5hZ2VyX3YzIC0gdGV4dCBpbnB1dCBtYW5hZ2VyCisrICogQHNlY3Rp b24gcGFnZV9jb3B5cmlnaHRfdGV4dF9pbnB1dF91bnN0YWJsZV92MyBDb3B5cmlnaHQKKysgKiA8 cHJlPgorKyAqCisrICogQ29weXJpZ2h0IMKpIDIwMTIsIDIwMTMgSW50ZWwgQ29ycG9yYXRpb24K KysgKiBDb3B5cmlnaHQgwqkgMjAxNSwgMjAxNiBKYW4gQXJuZSBQZXRlcnNlbgorKyAqIENvcHly aWdodCDCqSAyMDE3LCAyMDE4IFJlZCBIYXQsIEluYy4KKysgKiBDb3B5cmlnaHQgwqkgMjAxOCAg ICAgICBQdXJpc20gU1BDCisrICoKKysgKiBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5 LCBkaXN0cmlidXRlLCBhbmQgc2VsbCB0aGlzCisrICogc29mdHdhcmUgYW5kIGl0cyBkb2N1bWVu dGF0aW9uIGZvciBhbnkgcHVycG9zZSBpcyBoZXJlYnkgZ3JhbnRlZAorKyAqIHdpdGhvdXQgZmVl LCBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFwcGVhciBpbgorKyAq IGFsbCBjb3BpZXMgYW5kIHRoYXQgYm90aCB0aGF0IGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMg cGVybWlzc2lvbgorKyAqIG5vdGljZSBhcHBlYXIgaW4gc3VwcG9ydGluZyBkb2N1bWVudGF0aW9u LCBhbmQgdGhhdCB0aGUgbmFtZSBvZgorKyAqIHRoZSBjb3B5cmlnaHQgaG9sZGVycyBub3QgYmUg dXNlZCBpbiBhZHZlcnRpc2luZyBvciBwdWJsaWNpdHkKKysgKiBwZXJ0YWluaW5nIHRvIGRpc3Ry aWJ1dGlvbiBvZiB0aGUgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYywKKysgKiB3cml0dGVuIHBy aW9yIHBlcm1pc3Npb24uICBUaGUgY29weXJpZ2h0IGhvbGRlcnMgbWFrZSBubworKyAqIHJlcHJl c2VudGF0aW9ucyBhYm91dCB0aGUgc3VpdGFiaWxpdHkgb2YgdGhpcyBzb2Z0d2FyZSBmb3IgYW55 CisrICogcHVycG9zZS4gIEl0IGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBleHByZXNzIG9y IGltcGxpZWQKKysgKiB3YXJyYW50eS4KKysgKgorKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSUyBE SVNDTEFJTSBBTEwgV0FSUkFOVElFUyBXSVRIIFJFR0FSRCBUTyBUSElTCisrICogU09GVFdBUkUs IElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQK KysgKiBGSVRORVNTLCBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQkUg TElBQkxFIEZPUiBBTlkKKysgKiBTUEVDSUFMLCBJTkRJUkVDVCBPUiBDT05TRVFVRU5USUFMIERB TUFHRVMgT1IgQU5ZIERBTUFHRVMKKysgKiBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NIExPU1Mg T0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4KKysgKiBBTiBBQ1RJT04gT0YgQ09O VFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLAorKyAqIEFSSVNJTkcg T1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GCisr ICogVEhJUyBTT0ZUV0FSRS4KKysgKiA8L3ByZT4KKysgKi8KKytzdHJ1Y3Qgd2xfc2VhdDsKKytz dHJ1Y3Qgd2xfc3VyZmFjZTsKKytzdHJ1Y3QgendwX3RleHRfaW5wdXRfbWFuYWdlcl92MzsKKytz dHJ1Y3QgendwX3RleHRfaW5wdXRfdjM7CisrCisrI2lmbmRlZiBaV1BfVEVYVF9JTlBVVF9WM19J TlRFUkZBQ0UKKysjZGVmaW5lIFpXUF9URVhUX0lOUFVUX1YzX0lOVEVSRkFDRQorKy8qKgorKyAq IEBwYWdlIHBhZ2VfaWZhY2VfendwX3RleHRfaW5wdXRfdjMgendwX3RleHRfaW5wdXRfdjMKKysg KiBAc2VjdGlvbiBwYWdlX2lmYWNlX3p3cF90ZXh0X2lucHV0X3YzX2Rlc2MgRGVzY3JpcHRpb24K KysgKgorKyAqIFRoZSB6d3BfdGV4dF9pbnB1dF92MyBpbnRlcmZhY2UgcmVwcmVzZW50cyB0ZXh0 IGlucHV0IGFuZCBpbnB1dCBtZXRob2RzCisrICogYXNzb2NpYXRlZCB3aXRoIGEgc2VhdC4gSXQg cHJvdmlkZXMgZW50ZXIvbGVhdmUgZXZlbnRzIHRvIGZvbGxvdyB0aGUKKysgKiB0ZXh0IGlucHV0 IGZvY3VzIGZvciBhIHNlYXQuCisrICoKKysgKiBSZXF1ZXN0cyBhcmUgdXNlZCB0byBlbmFibGUv ZGlzYWJsZSB0aGUgdGV4dC1pbnB1dCBvYmplY3QgYW5kIHNldAorKyAqIHN0YXRlIGluZm9ybWF0 aW9uIGxpa2Ugc3Vycm91bmRpbmcgYW5kIHNlbGVjdGVkIHRleHQgb3IgdGhlIGNvbnRlbnQgdHlw ZS4KKysgKiBUaGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGVudGVyZWQgdGV4dCBpcyBzZW50IHRv IHRoZSB0ZXh0LWlucHV0IG9iamVjdAorKyAqIHZpYSB0aGUgcHJlZWRpdF9zdHJpbmcgYW5kIGNv bW1pdF9zdHJpbmcgZXZlbnRzLgorKyAqCisrICogVGV4dCBpcyB2YWxpZCBVVEYtOCBlbmNvZGVk LCBpbmRpY2VzIGFuZCBsZW5ndGhzIGFyZSBpbiBieXRlcy4gSW5kaWNlcworKyAqIG11c3Qgbm90 IHBvaW50IHRvIG1pZGRsZSBieXRlcyBpbnNpZGUgYSBjb2RlIHBvaW50OiB0aGV5IG11c3QgZWl0 aGVyCisrICogcG9pbnQgdG8gdGhlIGZpcnN0IGJ5dGUgb2YgYSBjb2RlIHBvaW50IG9yIHRvIHRo ZSBlbmQgb2YgdGhlIGJ1ZmZlci4KKysgKiBMZW5ndGhzIG11c3QgYmUgbWVhc3VyZWQgYmV0d2Vl biB0d28gdmFsaWQgaW5kaWNlcy4KKysgKgorKyAqIEZvY3VzIG1vdmluZyB0aHJvdWdob3V0IHN1 cmZhY2VzIHdpbGwgcmVzdWx0IGluIHRoZSBlbWlzc2lvbiBvZgorKyAqIHp3cF90ZXh0X2lucHV0 X3YzLmVudGVyIGFuZCB6d3BfdGV4dF9pbnB1dF92My5sZWF2ZSBldmVudHMuIFRoZSBmb2N1c2Vk CisrICogc3VyZmFjZSBtdXN0IGNvbW1pdCB6d3BfdGV4dF9pbnB1dF92My5lbmFibGUgYW5kCisr ICogendwX3RleHRfaW5wdXRfdjMuZGlzYWJsZSByZXF1ZXN0cyBhcyB0aGUga2V5Ym9hcmQgZm9j dXMgbW92ZXMgYWNyb3NzCisrICogZWRpdGFibGUgYW5kIG5vbi1lZGl0YWJsZSBlbGVtZW50cyBv ZiB0aGUgVUkuIFRob3NlIHR3byByZXF1ZXN0cyBhcmUgbm90CisrICogZXhwZWN0ZWQgdG8gYmUg cGFpcmVkIHdpdGggZWFjaCBvdGhlciwgdGhlIGNvbXBvc2l0b3IgbXVzdCBiZSBhYmxlIHRvCisr ICogaGFuZGxlIGNvbnNlY3V0aXZlIHNlcmllcyBvZiB0aGUgc2FtZSByZXF1ZXN0LgorKyAqCisr ICogU3RhdGUgaXMgc2VudCBieSB0aGUgc3RhdGUgcmVxdWVzdHMgKHNldF9zdXJyb3VuZGluZ190 ZXh0LAorKyAqIHNldF9jb250ZW50X3R5cGUgYW5kIHNldF9jdXJzb3JfcmVjdGFuZ2xlKSBhbmQg YSBjb21taXQgcmVxdWVzdC4gQWZ0ZXIgYW4KKysgKiBlbnRlciBldmVudCBvciBkaXNhYmxlIHJl cXVlc3QgYWxsIHN0YXRlIGluZm9ybWF0aW9uIGlzIGludmFsaWRhdGVkIGFuZAorKyAqIG5lZWRz IHRvIGJlIHJlc2VudCBieSB0aGUgY2xpZW50LgorKyAqIEBzZWN0aW9uIHBhZ2VfaWZhY2Vfendw X3RleHRfaW5wdXRfdjNfYXBpIEFQSQorKyAqIFNlZSBAcmVmIGlmYWNlX3p3cF90ZXh0X2lucHV0 X3YzLgorKyAqLworKy8qKgorKyAqIEBkZWZncm91cCBpZmFjZV96d3BfdGV4dF9pbnB1dF92MyBU aGUgendwX3RleHRfaW5wdXRfdjMgaW50ZXJmYWNlCisrICoKKysgKiBUaGUgendwX3RleHRfaW5w dXRfdjMgaW50ZXJmYWNlIHJlcHJlc2VudHMgdGV4dCBpbnB1dCBhbmQgaW5wdXQgbWV0aG9kcwor KyAqIGFzc29jaWF0ZWQgd2l0aCBhIHNlYXQuIEl0IHByb3ZpZGVzIGVudGVyL2xlYXZlIGV2ZW50 cyB0byBmb2xsb3cgdGhlCisrICogdGV4dCBpbnB1dCBmb2N1cyBmb3IgYSBzZWF0LgorKyAqCisr ICogUmVxdWVzdHMgYXJlIHVzZWQgdG8gZW5hYmxlL2Rpc2FibGUgdGhlIHRleHQtaW5wdXQgb2Jq ZWN0IGFuZCBzZXQKKysgKiBzdGF0ZSBpbmZvcm1hdGlvbiBsaWtlIHN1cnJvdW5kaW5nIGFuZCBz ZWxlY3RlZCB0ZXh0IG9yIHRoZSBjb250ZW50IHR5cGUuCisrICogVGhlIGluZm9ybWF0aW9uIGFi b3V0IHRoZSBlbnRlcmVkIHRleHQgaXMgc2VudCB0byB0aGUgdGV4dC1pbnB1dCBvYmplY3QKKysg KiB2aWEgdGhlIHByZWVkaXRfc3RyaW5nIGFuZCBjb21taXRfc3RyaW5nIGV2ZW50cy4KKysgKgor KyAqIFRleHQgaXMgdmFsaWQgVVRGLTggZW5jb2RlZCwgaW5kaWNlcyBhbmQgbGVuZ3RocyBhcmUg aW4gYnl0ZXMuIEluZGljZXMKKysgKiBtdXN0IG5vdCBwb2ludCB0byBtaWRkbGUgYnl0ZXMgaW5z aWRlIGEgY29kZSBwb2ludDogdGhleSBtdXN0IGVpdGhlcgorKyAqIHBvaW50IHRvIHRoZSBmaXJz dCBieXRlIG9mIGEgY29kZSBwb2ludCBvciB0byB0aGUgZW5kIG9mIHRoZSBidWZmZXIuCisrICog TGVuZ3RocyBtdXN0IGJlIG1lYXN1cmVkIGJldHdlZW4gdHdvIHZhbGlkIGluZGljZXMuCisrICoK KysgKiBGb2N1cyBtb3ZpbmcgdGhyb3VnaG91dCBzdXJmYWNlcyB3aWxsIHJlc3VsdCBpbiB0aGUg ZW1pc3Npb24gb2YKKysgKiB6d3BfdGV4dF9pbnB1dF92My5lbnRlciBhbmQgendwX3RleHRfaW5w dXRfdjMubGVhdmUgZXZlbnRzLiBUaGUgZm9jdXNlZAorKyAqIHN1cmZhY2UgbXVzdCBjb21taXQg endwX3RleHRfaW5wdXRfdjMuZW5hYmxlIGFuZAorKyAqIHp3cF90ZXh0X2lucHV0X3YzLmRpc2Fi bGUgcmVxdWVzdHMgYXMgdGhlIGtleWJvYXJkIGZvY3VzIG1vdmVzIGFjcm9zcworKyAqIGVkaXRh YmxlIGFuZCBub24tZWRpdGFibGUgZWxlbWVudHMgb2YgdGhlIFVJLiBUaG9zZSB0d28gcmVxdWVz dHMgYXJlIG5vdAorKyAqIGV4cGVjdGVkIHRvIGJlIHBhaXJlZCB3aXRoIGVhY2ggb3RoZXIsIHRo ZSBjb21wb3NpdG9yIG11c3QgYmUgYWJsZSB0bworKyAqIGhhbmRsZSBjb25zZWN1dGl2ZSBzZXJp ZXMgb2YgdGhlIHNhbWUgcmVxdWVzdC4KKysgKgorKyAqIFN0YXRlIGlzIHNlbnQgYnkgdGhlIHN0 YXRlIHJlcXVlc3RzIChzZXRfc3Vycm91bmRpbmdfdGV4dCwKKysgKiBzZXRfY29udGVudF90eXBl IGFuZCBzZXRfY3Vyc29yX3JlY3RhbmdsZSkgYW5kIGEgY29tbWl0IHJlcXVlc3QuIEFmdGVyIGFu CisrICogZW50ZXIgZXZlbnQgb3IgZGlzYWJsZSByZXF1ZXN0IGFsbCBzdGF0ZSBpbmZvcm1hdGlv biBpcyBpbnZhbGlkYXRlZCBhbmQKKysgKiBuZWVkcyB0byBiZSByZXNlbnQgYnkgdGhlIGNsaWVu dC4KKysgKi8KKytleHRlcm4gY29uc3Qgc3RydWN0IHdsX2ludGVyZmFjZSB6d3BfdGV4dF9pbnB1 dF92M19pbnRlcmZhY2U7CisrI2VuZGlmCisrI2lmbmRlZiBaV1BfVEVYVF9JTlBVVF9NQU5BR0VS X1YzX0lOVEVSRkFDRQorKyNkZWZpbmUgWldQX1RFWFRfSU5QVVRfTUFOQUdFUl9WM19JTlRFUkZB Q0UKKysvKioKKysgKiBAcGFnZSBwYWdlX2lmYWNlX3p3cF90ZXh0X2lucHV0X21hbmFnZXJfdjMg endwX3RleHRfaW5wdXRfbWFuYWdlcl92MworKyAqIEBzZWN0aW9uIHBhZ2VfaWZhY2VfendwX3Rl eHRfaW5wdXRfbWFuYWdlcl92M19kZXNjIERlc2NyaXB0aW9uCisrICoKKysgKiBBIGZhY3Rvcnkg Zm9yIHRleHQtaW5wdXQgb2JqZWN0cy4gVGhpcyBvYmplY3QgaXMgYSBnbG9iYWwgc2luZ2xldG9u LgorKyAqIEBzZWN0aW9uIHBhZ2VfaWZhY2VfendwX3RleHRfaW5wdXRfbWFuYWdlcl92M19hcGkg QVBJCisrICogU2VlIEByZWYgaWZhY2VfendwX3RleHRfaW5wdXRfbWFuYWdlcl92My4KKysgKi8K KysvKioKKysgKiBAZGVmZ3JvdXAgaWZhY2VfendwX3RleHRfaW5wdXRfbWFuYWdlcl92MyBUaGUg endwX3RleHRfaW5wdXRfbWFuYWdlcl92MyBpbnRlcmZhY2UKKysgKgorKyAqIEEgZmFjdG9yeSBm b3IgdGV4dC1pbnB1dCBvYmplY3RzLiBUaGlzIG9iamVjdCBpcyBhIGdsb2JhbCBzaW5nbGV0b24u CisrICovCisrZXh0ZXJuIGNvbnN0IHN0cnVjdCB3bF9pbnRlcmZhY2UgendwX3RleHRfaW5wdXRf bWFuYWdlcl92M19pbnRlcmZhY2U7CisrI2VuZGlmCisrCisrI2lmbmRlZiBaV1BfVEVYVF9JTlBV VF9WM19DSEFOR0VfQ0FVU0VfRU5VTQorKyNkZWZpbmUgWldQX1RFWFRfSU5QVVRfVjNfQ0hBTkdF X0NBVVNFX0VOVU0KKysvKioKKysgKiBAaW5ncm91cCBpZmFjZV96d3BfdGV4dF9pbnB1dF92Mwor KyAqIHRleHQgY2hhbmdlIHJlYXNvbgorKyAqCisrICogUmVhc29uIGZvciB0aGUgY2hhbmdlIG9m IHN1cnJvdW5kaW5nIHRleHQgb3IgY3Vyc29yIHBvc2lzaW9uLgorKyAqLworK2VudW0gendwX3Rl eHRfaW5wdXRfdjNfY2hhbmdlX2NhdXNlIHsKKysJLyoqCisrCSAqIGlucHV0IG1ldGhvZCBjYXVz ZWQgdGhlIGNoYW5nZQorKwkgKi8KKysJWldQX1RFWFRfSU5QVVRfVjNfQ0hBTkdFX0NBVVNFX0lO UFVUX01FVEhPRCA9IDAsCisrCS8qKgorKwkgKiBzb21ldGhpbmcgZWxzZSB0aGFuIHRoZSBpbnB1 dCBtZXRob2QgY2F1c2VkIHRoZSBjaGFuZ2UKKysJICovCisrCVpXUF9URVhUX0lOUFVUX1YzX0NI QU5HRV9DQVVTRV9PVEhFUiA9IDEsCisrfTsKKysjZW5kaWYgLyogWldQX1RFWFRfSU5QVVRfVjNf Q0hBTkdFX0NBVVNFX0VOVU0gKi8KKysKKysjaWZuZGVmIFpXUF9URVhUX0lOUFVUX1YzX0NPTlRF TlRfSElOVF9FTlVNCisrI2RlZmluZSBaV1BfVEVYVF9JTlBVVF9WM19DT05URU5UX0hJTlRfRU5V TQorKy8qKgorKyAqIEBpbmdyb3VwIGlmYWNlX3p3cF90ZXh0X2lucHV0X3YzCisrICogY29udGVu dCBoaW50CisrICoKKysgKiBDb250ZW50IGhpbnQgaXMgYSBiaXRtYXNrIHRvIGFsbG93IHRvIG1v ZGlmeSB0aGUgYmVoYXZpb3Igb2YgdGhlIHRleHQKKysgKiBpbnB1dC4KKysgKi8KKytlbnVtIHp3 cF90ZXh0X2lucHV0X3YzX2NvbnRlbnRfaGludCB7CisrCS8qKgorKwkgKiBubyBzcGVjaWFsIGJl aGF2aW9yCisrCSAqLworKwlaV1BfVEVYVF9JTlBVVF9WM19DT05URU5UX0hJTlRfTk9ORSA9IDB4 MCwKKysJLyoqCisrCSAqIHN1Z2dlc3Qgd29yZCBjb21wbGV0aW9ucworKwkgKi8KKysJWldQX1RF WFRfSU5QVVRfVjNfQ09OVEVOVF9ISU5UX0NPTVBMRVRJT04gPSAweDEsCisrCS8qKgorKwkgKiBz dWdnZXN0IHdvcmQgY29ycmVjdGlvbnMKKysJICovCisrCVpXUF9URVhUX0lOUFVUX1YzX0NPTlRF TlRfSElOVF9TUEVMTENIRUNLID0gMHgyLAorKwkvKioKKysJICogc3dpdGNoIHRvIHVwcGVyY2Fz ZSBsZXR0ZXJzIGF0IHRoZSBzdGFydCBvZiBhIHNlbnRlbmNlCisrCSAqLworKwlaV1BfVEVYVF9J TlBVVF9WM19DT05URU5UX0hJTlRfQVVUT19DQVBJVEFMSVpBVElPTiA9IDB4NCwKKysJLyoqCisr CSAqIHByZWZlciBsb3dlcmNhc2UgbGV0dGVycworKwkgKi8KKysJWldQX1RFWFRfSU5QVVRfVjNf Q09OVEVOVF9ISU5UX0xPV0VSQ0FTRSA9IDB4OCwKKysJLyoqCisrCSAqIHByZWZlciB1cHBlcmNh c2UgbGV0dGVycworKwkgKi8KKysJWldQX1RFWFRfSU5QVVRfVjNfQ09OVEVOVF9ISU5UX1VQUEVS Q0FTRSA9IDB4MTAsCisrCS8qKgorKwkgKiBwcmVmZXIgY2FzaW5nIGZvciB0aXRsZXMgYW5kIGhl YWRpbmdzIChjYW4gYmUgbGFuZ3VhZ2UgZGVwZW5kZW50KQorKwkgKi8KKysJWldQX1RFWFRfSU5Q VVRfVjNfQ09OVEVOVF9ISU5UX1RJVExFQ0FTRSA9IDB4MjAsCisrCS8qKgorKwkgKiBjaGFyYWN0 ZXJzIHNob3VsZCBiZSBoaWRkZW4KKysJICovCisrCVpXUF9URVhUX0lOUFVUX1YzX0NPTlRFTlRf SElOVF9ISURERU5fVEVYVCA9IDB4NDAsCisrCS8qKgorKwkgKiB0eXBlZCB0ZXh0IHNob3VsZCBu b3QgYmUgc3RvcmVkCisrCSAqLworKwlaV1BfVEVYVF9JTlBVVF9WM19DT05URU5UX0hJTlRfU0VO U0lUSVZFX0RBVEEgPSAweDgwLAorKwkvKioKKysJICoganVzdCBMYXRpbiBjaGFyYWN0ZXJzIHNo b3VsZCBiZSBlbnRlcmVkCisrCSAqLworKwlaV1BfVEVYVF9JTlBVVF9WM19DT05URU5UX0hJTlRf TEFUSU4gPSAweDEwMCwKKysJLyoqCisrCSAqIHRoZSB0ZXh0IGlucHV0IGlzIG11bHRpbGluZQor KwkgKi8KKysJWldQX1RFWFRfSU5QVVRfVjNfQ09OVEVOVF9ISU5UX01VTFRJTElORSA9IDB4MjAw LAorK307CisrI2VuZGlmIC8qIFpXUF9URVhUX0lOUFVUX1YzX0NPTlRFTlRfSElOVF9FTlVNICov CisrCisrI2lmbmRlZiBaV1BfVEVYVF9JTlBVVF9WM19DT05URU5UX1BVUlBPU0VfRU5VTQorKyNk ZWZpbmUgWldQX1RFWFRfSU5QVVRfVjNfQ09OVEVOVF9QVVJQT1NFX0VOVU0KKysvKioKKysgKiBA aW5ncm91cCBpZmFjZV96d3BfdGV4dF9pbnB1dF92MworKyAqIGNvbnRlbnQgcHVycG9zZQorKyAq CisrICogVGhlIGNvbnRlbnQgcHVycG9zZSBhbGxvd3MgdG8gc3BlY2lmeSB0aGUgcHJpbWFyeSBw dXJwb3NlIG9mIGEgdGV4dAorKyAqIGlucHV0LgorKyAqCisrICogVGhpcyBhbGxvd3MgYW4gaW5w dXQgbWV0aG9kIHRvIHNob3cgc3BlY2lhbCBwdXJwb3NlIGlucHV0IHBhbmVscyB3aXRoCisrICog ZXh0cmEgY2hhcmFjdGVycyBvciB0byBkaXNhbGxvdyBzb21lIGNoYXJhY3RlcnMuCisrICovCisr ZW51bSB6d3BfdGV4dF9pbnB1dF92M19jb250ZW50X3B1cnBvc2UgeworKwkvKioKKysJICogZGVm YXVsdCBpbnB1dCwgYWxsb3dpbmcgYWxsIGNoYXJhY3RlcnMKKysJICovCisrCVpXUF9URVhUX0lO UFVUX1YzX0NPTlRFTlRfUFVSUE9TRV9OT1JNQUwgPSAwLAorKwkvKioKKysJICogYWxsb3cgb25s eSBhbHBoYWJldGljIGNoYXJhY3RlcnMKKysJICovCisrCVpXUF9URVhUX0lOUFVUX1YzX0NPTlRF TlRfUFVSUE9TRV9BTFBIQSA9IDEsCisrCS8qKgorKwkgKiBhbGxvdyBvbmx5IGRpZ2l0cworKwkg Ki8KKysJWldQX1RFWFRfSU5QVVRfVjNfQ09OVEVOVF9QVVJQT1NFX0RJR0lUUyA9IDIsCisrCS8q KgorKwkgKiBpbnB1dCBhIG51bWJlciAoaW5jbHVkaW5nIGRlY2ltYWwgc2VwYXJhdG9yIGFuZCBz aWduKQorKwkgKi8KKysJWldQX1RFWFRfSU5QVVRfVjNfQ09OVEVOVF9QVVJQT1NFX05VTUJFUiA9 IDMsCisrCS8qKgorKwkgKiBpbnB1dCBhIHBob25lIG51bWJlcgorKwkgKi8KKysJWldQX1RFWFRf SU5QVVRfVjNfQ09OVEVOVF9QVVJQT1NFX1BIT05FID0gNCwKKysJLyoqCisrCSAqIGlucHV0IGFu IFVSTAorKwkgKi8KKysJWldQX1RFWFRfSU5QVVRfVjNfQ09OVEVOVF9QVVJQT1NFX1VSTCA9IDUs CisrCS8qKgorKwkgKiBpbnB1dCBhbiBlbWFpbCBhZGRyZXNzCisrCSAqLworKwlaV1BfVEVYVF9J TlBVVF9WM19DT05URU5UX1BVUlBPU0VfRU1BSUwgPSA2LAorKwkvKioKKysJICogaW5wdXQgYSBu YW1lIG9mIGEgcGVyc29uCisrCSAqLworKwlaV1BfVEVYVF9JTlBVVF9WM19DT05URU5UX1BVUlBP U0VfTkFNRSA9IDcsCisrCS8qKgorKwkgKiBpbnB1dCBhIHBhc3N3b3JkIChjb21iaW5lIHdpdGgg c2Vuc2l0aXZlX2RhdGEgaGludCkKKysJICovCisrCVpXUF9URVhUX0lOUFVUX1YzX0NPTlRFTlRf UFVSUE9TRV9QQVNTV09SRCA9IDgsCisrCS8qKgorKwkgKiBpbnB1dCBpcyBhIG51bWVyaWMgcGFz c3dvcmQgKGNvbWJpbmUgd2l0aCBzZW5zaXRpdmVfZGF0YSBoaW50KQorKwkgKi8KKysJWldQX1RF WFRfSU5QVVRfVjNfQ09OVEVOVF9QVVJQT1NFX1BJTiA9IDksCisrCS8qKgorKwkgKiBpbnB1dCBh IGRhdGUKKysJICovCisrCVpXUF9URVhUX0lOUFVUX1YzX0NPTlRFTlRfUFVSUE9TRV9EQVRFID0g MTAsCisrCS8qKgorKwkgKiBpbnB1dCBhIHRpbWUKKysJICovCisrCVpXUF9URVhUX0lOUFVUX1Yz X0NPTlRFTlRfUFVSUE9TRV9USU1FID0gMTEsCisrCS8qKgorKwkgKiBpbnB1dCBhIGRhdGUgYW5k IHRpbWUKKysJICovCisrCVpXUF9URVhUX0lOUFVUX1YzX0NPTlRFTlRfUFVSUE9TRV9EQVRFVElN RSA9IDEyLAorKwkvKioKKysJICogaW5wdXQgZm9yIGEgdGVybWluYWwKKysJICovCisrCVpXUF9U RVhUX0lOUFVUX1YzX0NPTlRFTlRfUFVSUE9TRV9URVJNSU5BTCA9IDEzLAorK307CisrI2VuZGlm IC8qIFpXUF9URVhUX0lOUFVUX1YzX0NPTlRFTlRfUFVSUE9TRV9FTlVNICovCisrCisrLyoqCisr ICogQGluZ3JvdXAgaWZhY2VfendwX3RleHRfaW5wdXRfdjMKKysgKiBAc3RydWN0IHp3cF90ZXh0 X2lucHV0X3YzX2xpc3RlbmVyCisrICovCisrc3RydWN0IHp3cF90ZXh0X2lucHV0X3YzX2xpc3Rl bmVyIHsKKysJLyoqCisrCSAqIGVudGVyIGV2ZW50CisrCSAqCisrCSAqIE5vdGlmaWNhdGlvbiB0 aGF0IHRoaXMgc2VhdCdzIHRleHQtaW5wdXQgZm9jdXMgaXMgb24gYSBjZXJ0YWluCisrCSAqIHN1 cmZhY2UuCisrCSAqCisrCSAqIElmIGNsaWVudCBoYXMgY3JlYXRlZCBtdWx0aXBsZSB0ZXh0IGlu cHV0IG9iamVjdHMsIGNvbXBvc2l0b3IKKysJICogbXVzdCBzZW5kIHRoaXMgZXZlbnQgdG8gYWxs IG9mIHRoZW0uCisrCSAqCisrCSAqIFdoZW4gdGhlIHNlYXQgaGFzIHRoZSBrZXlib2FyZCBjYXBh YmlsaXR5IHRoZSB0ZXh0LWlucHV0IGZvY3VzCisrCSAqIGZvbGxvd3MgdGhlIGtleWJvYXJkIGZv Y3VzLiBUaGlzIGV2ZW50IHNldHMgdGhlIGN1cnJlbnQgc3VyZmFjZQorKwkgKiBmb3IgdGhlIHRl eHQtaW5wdXQgb2JqZWN0LgorKwkgKi8KKysJdm9pZCAoKmVudGVyKSh2b2lkICpkYXRhLAorKwkJ ICAgICAgc3RydWN0IHp3cF90ZXh0X2lucHV0X3YzICp6d3BfdGV4dF9pbnB1dF92MywKKysJCSAg ICAgIHN0cnVjdCB3bF9zdXJmYWNlICpzdXJmYWNlKTsKKysJLyoqCisrCSAqIGxlYXZlIGV2ZW50 CisrCSAqCisrCSAqIE5vdGlmaWNhdGlvbiB0aGF0IHRoaXMgc2VhdCdzIHRleHQtaW5wdXQgZm9j dXMgaXMgbm8gbG9uZ2VyIG9uCisrCSAqIGEgY2VydGFpbiBzdXJmYWNlLiBUaGUgY2xpZW50IHNo b3VsZCByZXNldCBhbnkgcHJlZWRpdCBzdHJpbmcKKysJICogcHJldmlvdXNseSBzZXQuCisrCSAq CisrCSAqIFRoZSBsZWF2ZSBub3RpZmljYXRpb24gY2xlYXJzIHRoZSBjdXJyZW50IHN1cmZhY2Uu IEl0IGlzIHNlbnQKKysJICogYmVmb3JlIHRoZSBlbnRlciBub3RpZmljYXRpb24gZm9yIHRoZSBu ZXcgZm9jdXMuIEFmdGVyIGxlYXZlCisrCSAqIGV2ZW50LCBjb21wb3NpdG9yIG11c3QgaWdub3Jl IHJlcXVlc3RzIGZyb20gYW55IHRleHQgaW5wdXQKKysJICogaW5zdGFuY2VzIHVudGlsIG5leHQg ZW50ZXIgZXZlbnQuCisrCSAqCisrCSAqIFdoZW4gdGhlIHNlYXQgaGFzIHRoZSBrZXlib2FyZCBj YXBhYmlsaXR5IHRoZSB0ZXh0LWlucHV0IGZvY3VzCisrCSAqIGZvbGxvd3MgdGhlIGtleWJvYXJk IGZvY3VzLgorKwkgKi8KKysJdm9pZCAoKmxlYXZlKSh2b2lkICpkYXRhLAorKwkJICAgICAgc3Ry dWN0IHp3cF90ZXh0X2lucHV0X3YzICp6d3BfdGV4dF9pbnB1dF92MywKKysJCSAgICAgIHN0cnVj dCB3bF9zdXJmYWNlICpzdXJmYWNlKTsKKysJLyoqCisrCSAqIHByZS1lZGl0CisrCSAqCisrCSAq IE5vdGlmeSB3aGVuIGEgbmV3IGNvbXBvc2luZyB0ZXh0IChwcmUtZWRpdCkgc2hvdWxkIGJlIHNl dCBhdAorKwkgKiB0aGUgY3VycmVudCBjdXJzb3IgcG9zaXRpb24uIEFueSBwcmV2aW91c2x5IHNl dCBjb21wb3NpbmcgdGV4dAorKwkgKiBtdXN0IGJlIHJlbW92ZWQuIEFueSBwcmV2aW91c2x5IGV4 aXN0aW5nIHNlbGVjdGVkIHRleHQgbXVzdCBiZQorKwkgKiByZW1vdmVkLgorKwkgKgorKwkgKiBU aGUgYXJndW1lbnQgdGV4dCBjb250YWlucyB0aGUgcHJlLWVkaXQgc3RyaW5nIGJ1ZmZlci4KKysJ ICoKKysJICogVGhlIHBhcmFtZXRlcnMgY3Vyc29yX2JlZ2luIGFuZCBjdXJzb3JfZW5kIGFyZSBj b3VudGVkIGluIGJ5dGVzCisrCSAqIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHN1 Ym1pdHRlZCB0ZXh0IGJ1ZmZlci4gQ3Vyc29yCisrCSAqIHNob3VsZCBiZSBoaWRkZW4gd2hlbiBi b3RoIGFyZSBlcXVhbCB0byAtMS4KKysJICoKKysJICogVGhleSBjb3VsZCBiZSByZXByZXNlbnRl ZCBieSB0aGUgY2xpZW50IGFzIGEgbGluZSBpZiBib3RoIHZhbHVlcworKwkgKiBhcmUgdGhlIHNh bWUsIG9yIGFzIGEgdGV4dCBoaWdobGlnaHQgb3RoZXJ3aXNlLgorKwkgKgorKwkgKiBWYWx1ZXMg c2V0IHdpdGggdGhpcyBldmVudCBhcmUgZG91YmxlLWJ1ZmZlcmVkLiBUaGV5IG11c3QgYmUKKysJ ICogYXBwbGllZCBhbmQgcmVzZXQgdG8gaW5pdGlhbCBvbiB0aGUgbmV4dCB6d3BfdGV4dF9pbnB1 dF92My5kb25lCisrCSAqIGV2ZW50LgorKwkgKgorKwkgKiBUaGUgaW5pdGlhbCB2YWx1ZSBvZiB0 ZXh0IGlzIGFuIGVtcHR5IHN0cmluZywgYW5kIGN1cnNvcl9iZWdpbiwKKysJICogY3Vyc29yX2Vu ZCBhbmQgY3Vyc29yX2hpZGRlbiBhcmUgYWxsIDAuCisrCSAqLworKwl2b2lkICgqcHJlZWRpdF9z dHJpbmcpKHZvaWQgKmRhdGEsCisrCQkJICAgICAgIHN0cnVjdCB6d3BfdGV4dF9pbnB1dF92MyAq endwX3RleHRfaW5wdXRfdjMsCisrCQkJICAgICAgIGNvbnN0IGNoYXIgKnRleHQsCisrCQkJICAg ICAgIGludDMyX3QgY3Vyc29yX2JlZ2luLAorKwkJCSAgICAgICBpbnQzMl90IGN1cnNvcl9lbmQp OworKwkvKioKKysJICogdGV4dCBjb21taXQKKysJICoKKysJICogTm90aWZ5IHdoZW4gdGV4dCBz aG91bGQgYmUgaW5zZXJ0ZWQgaW50byB0aGUgZWRpdG9yIHdpZGdldC4KKysJICogVGhlIHRleHQg dG8gY29tbWl0IGNvdWxkIGJlIGVpdGhlciBqdXN0IGEgc2luZ2xlIGNoYXJhY3RlciBhZnRlcgor KwkgKiBhIGtleSBwcmVzcyBvciB0aGUgcmVzdWx0IG9mIHNvbWUgY29tcG9zaW5nIChwcmUtZWRp dCkuCisrCSAqCisrCSAqIFZhbHVlcyBzZXQgd2l0aCB0aGlzIGV2ZW50IGFyZSBkb3VibGUtYnVm ZmVyZWQuIFRoZXkgbXVzdCBiZQorKwkgKiBhcHBsaWVkIGFuZCByZXNldCB0byBpbml0aWFsIG9u IHRoZSBuZXh0IHp3cF90ZXh0X2lucHV0X3YzLmRvbmUKKysJICogZXZlbnQuCisrCSAqCisrCSAq IFRoZSBpbml0aWFsIHZhbHVlIG9mIHRleHQgaXMgYW4gZW1wdHkgc3RyaW5nLgorKwkgKi8KKysJ dm9pZCAoKmNvbW1pdF9zdHJpbmcpKHZvaWQgKmRhdGEsCisrCQkJICAgICAgc3RydWN0IHp3cF90 ZXh0X2lucHV0X3YzICp6d3BfdGV4dF9pbnB1dF92MywKKysJCQkgICAgICBjb25zdCBjaGFyICp0 ZXh0KTsKKysJLyoqCisrCSAqIGRlbGV0ZSBzdXJyb3VuZGluZyB0ZXh0CisrCSAqCisrCSAqIE5v dGlmeSB3aGVuIHRoZSB0ZXh0IGFyb3VuZCB0aGUgY3VycmVudCBjdXJzb3IgcG9zaXRpb24gc2hv dWxkCisrCSAqIGJlIGRlbGV0ZWQuCisrCSAqCisrCSAqIEJlZm9yZV9sZW5ndGggYW5kIGFmdGVy X2xlbmd0aCBhcmUgdGhlIG51bWJlciBvZiBieXRlcyBiZWZvcmUKKysJICogYW5kIGFmdGVyIHRo ZSBjdXJyZW50IGN1cnNvciBpbmRleCAoZXhjbHVkaW5nIHRoZSBzZWxlY3Rpb24pIHRvCisrCSAq IGRlbGV0ZS4KKysJICoKKysJICogSWYgYSBwcmVlZGl0IHRleHQgaXMgcHJlc2VudCwgaW4gZWZm ZWN0IGJlZm9yZV9sZW5ndGggaXMgY291bnRlZAorKwkgKiBmcm9tIHRoZSBiZWdpbm5pbmcgb2Yg aXQsIGFuZCBhZnRlcl9sZW5ndGggZnJvbSBpdHMgZW5kIChzZWUKKysJICogZG9uZSBldmVudCBz ZXF1ZW5jZSkuCisrCSAqCisrCSAqIFZhbHVlcyBzZXQgd2l0aCB0aGlzIGV2ZW50IGFyZSBkb3Vi bGUtYnVmZmVyZWQuIFRoZXkgbXVzdCBiZQorKwkgKiBhcHBsaWVkIGFuZCByZXNldCB0byBpbml0 aWFsIG9uIHRoZSBuZXh0IHp3cF90ZXh0X2lucHV0X3YzLmRvbmUKKysJICogZXZlbnQuCisrCSAq CisrCSAqIFRoZSBpbml0aWFsIHZhbHVlcyBvZiBib3RoIGJlZm9yZV9sZW5ndGggYW5kIGFmdGVy X2xlbmd0aCBhcmUgMC4KKysJICogQHBhcmFtIGJlZm9yZV9sZW5ndGggbGVuZ3RoIG9mIHRleHQg YmVmb3JlIGN1cnJlbnQgY3Vyc29yIHBvc2l0aW9uCisrCSAqIEBwYXJhbSBhZnRlcl9sZW5ndGgg bGVuZ3RoIG9mIHRleHQgYWZ0ZXIgY3VycmVudCBjdXJzb3IgcG9zaXRpb24KKysJICovCisrCXZv aWQgKCpkZWxldGVfc3Vycm91bmRpbmdfdGV4dCkodm9pZCAqZGF0YSwKKysJCQkJCXN0cnVjdCB6 d3BfdGV4dF9pbnB1dF92MyAqendwX3RleHRfaW5wdXRfdjMsCisrCQkJCQl1aW50MzJfdCBiZWZv cmVfbGVuZ3RoLAorKwkJCQkJdWludDMyX3QgYWZ0ZXJfbGVuZ3RoKTsKKysJLyoqCisrCSAqIGFw cGx5IGNoYW5nZXMKKysJICoKKysJICogSW5zdHJ1Y3QgdGhlIGFwcGxpY2F0aW9uIHRvIGFwcGx5 IGNoYW5nZXMgdG8gc3RhdGUgcmVxdWVzdGVkCisrCSAqIGJ5IHRoZSBwcmVlZGl0X3N0cmluZywg Y29tbWl0X3N0cmluZyBhbmQgZGVsZXRlX3N1cnJvdW5kaW5nX3RleHQKKysJICogZXZlbnRzLiBU aGUgc3RhdGUgcmVsYXRpbmcgdG8gdGhlc2UgZXZlbnRzIGlzIGRvdWJsZS1idWZmZXJlZCwKKysJ ICogYW5kIGVhY2ggb25lIG1vZGlmaWVzIHRoZSBwZW5kaW5nIHN0YXRlLiBUaGlzIGV2ZW50IHJl cGxhY2VzIHRoZQorKwkgKiBjdXJyZW50IHN0YXRlIHdpdGggdGhlIHBlbmRpbmcgc3RhdGUuCisr CSAqCisrCSAqIFRoZSBhcHBsaWNhdGlvbiBtdXN0IHByb2NlZWQgYnkgZXZhbHVhdGluZyB0aGUg Y2hhbmdlcyBpbiB0aGUKKysJICogZm9sbG93aW5nIG9yZGVyOgorKwkgKgorKwkgKiAxLiBSZXBs YWNlIGV4aXN0aW5nIHByZWVkaXQgc3RyaW5nIHdpdGggdGhlIGN1cnNvci4gMi4gRGVsZXRlCisr CSAqIHJlcXVlc3RlZCBzdXJyb3VuZGluZyB0ZXh0LiAzLiBJbnNlcnQgY29tbWl0IHN0cmluZyB3 aXRoIHRoZQorKwkgKiBjdXJzb3IgYXQgaXRzIGVuZC4gNC4gQ2FsY3VsYXRlIHN1cnJvdW5kaW5n IHRleHQgdG8gc2VuZC4gNS4KKysJICogSW5zZXJ0IG5ldyBwcmVlZGl0IHRleHQgaW4gY3Vyc29y IHBvc2l0aW9uLiA2LiBQbGFjZSBjdXJzb3IKKysJICogaW5zaWRlIHByZWVkaXQgdGV4dC4KKysJ ICoKKysJICogVGhlIHNlcmlhbCBudW1iZXIgcmVmbGVjdHMgdGhlIGxhc3Qgc3RhdGUgb2YgdGhl CisrCSAqIHp3cF90ZXh0X2lucHV0X3YzIG9iamVjdCBrbm93biB0byB0aGUgY29tcG9zaXRvci4g VGhlIHZhbHVlIG9mCisrCSAqIHRoZSBzZXJpYWwgYXJndW1lbnQgbXVzdCBiZSBlcXVhbCB0byB0 aGUgbnVtYmVyIG9mIGNvbW1pdAorKwkgKiByZXF1ZXN0cyBhbHJlYWR5IGlzc3VlZCBvbiB0aGF0 IG9iamVjdC4KKysJICoKKysJICogV2hlbiB0aGUgY2xpZW50IHJlY2VpdmVzIGEgZG9uZSBldmVu dCB3aXRoIGEgc2VyaWFsIGRpZmZlcmVudAorKwkgKiB0aGFuIHRoZSBudW1iZXIgb2YgcGFzdCBj b21taXQgcmVxdWVzdHMsIGl0IG11c3QgcHJvY2VlZCB3aXRoCisrCSAqIGV2YWx1YXRpbmcgYW5k IGFwcGx5aW5nIHRoZSBjaGFuZ2VzIGFzIG5vcm1hbCwgZXhjZXB0IGl0IHNob3VsZAorKwkgKiBu b3QgY2hhbmdlIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSB6d3BfdGV4dF9pbnB1dF92MyBvYmpl Y3QuCisrCSAqIEFsbCBwZW5kaW5nIHN0YXRlIHJlcXVlc3RzIChzZXRfc3Vycm91bmRpbmdfdGV4 dCwKKysJICogc2V0X2NvbnRlbnRfdHlwZSBhbmQgc2V0X2N1cnNvcl9yZWN0YW5nbGUpIG9uIHRo ZQorKwkgKiB6d3BfdGV4dF9pbnB1dF92MyBvYmplY3Qgc2hvdWxkIGJlIHNlbnQgYW5kIGNvbW1p dHRlZCBhZnRlcgorKwkgKiByZWNlaXZpbmcgYSB6d3BfdGV4dF9pbnB1dF92My5kb25lIGV2ZW50 IHdpdGggYSBtYXRjaGluZyBzZXJpYWwuCisrCSAqLworKwl2b2lkICgqZG9uZSkodm9pZCAqZGF0 YSwKKysJCSAgICAgc3RydWN0IHp3cF90ZXh0X2lucHV0X3YzICp6d3BfdGV4dF9pbnB1dF92MywK KysJCSAgICAgdWludDMyX3Qgc2VyaWFsKTsKKyt9OworKworKy8qKgorKyAqIEBpbmdyb3VwIGlm YWNlX3p3cF90ZXh0X2lucHV0X3YzCisrICovCisrc3RhdGljIGlubGluZSBpbnQKKyt6d3BfdGV4 dF9pbnB1dF92M19hZGRfbGlzdGVuZXIoc3RydWN0IHp3cF90ZXh0X2lucHV0X3YzICp6d3BfdGV4 dF9pbnB1dF92MywKKysJCQkgICAgICAgY29uc3Qgc3RydWN0IHp3cF90ZXh0X2lucHV0X3YzX2xp c3RlbmVyICpsaXN0ZW5lciwgdm9pZCAqZGF0YSkKKyt7CisrCXJldHVybiB3bF9wcm94eV9hZGRf bGlzdGVuZXIoKHN0cnVjdCB3bF9wcm94eSAqKSB6d3BfdGV4dF9pbnB1dF92MywKKysJCQkJICAg ICAodm9pZCAoKiopKHZvaWQpKSBsaXN0ZW5lciwgZGF0YSk7CisrfQorKworKyNkZWZpbmUgWldQ X1RFWFRfSU5QVVRfVjNfREVTVFJPWSAwCisrI2RlZmluZSBaV1BfVEVYVF9JTlBVVF9WM19FTkFC TEUgMQorKyNkZWZpbmUgWldQX1RFWFRfSU5QVVRfVjNfRElTQUJMRSAyCisrI2RlZmluZSBaV1Bf VEVYVF9JTlBVVF9WM19TRVRfU1VSUk9VTkRJTkdfVEVYVCAzCisrI2RlZmluZSBaV1BfVEVYVF9J TlBVVF9WM19TRVRfVEVYVF9DSEFOR0VfQ0FVU0UgNAorKyNkZWZpbmUgWldQX1RFWFRfSU5QVVRf VjNfU0VUX0NPTlRFTlRfVFlQRSA1CisrI2RlZmluZSBaV1BfVEVYVF9JTlBVVF9WM19TRVRfQ1VS U09SX1JFQ1RBTkdMRSA2CisrI2RlZmluZSBaV1BfVEVYVF9JTlBVVF9WM19DT01NSVQgNworKwor Ky8qKgorKyAqIEBpbmdyb3VwIGlmYWNlX3p3cF90ZXh0X2lucHV0X3YzCisrICovCisrI2RlZmlu ZSBaV1BfVEVYVF9JTlBVVF9WM19FTlRFUl9TSU5DRV9WRVJTSU9OIDEKKysvKioKKysgKiBAaW5n cm91cCBpZmFjZV96d3BfdGV4dF9pbnB1dF92MworKyAqLworKyNkZWZpbmUgWldQX1RFWFRfSU5Q VVRfVjNfTEVBVkVfU0lOQ0VfVkVSU0lPTiAxCisrLyoqCisrICogQGluZ3JvdXAgaWZhY2Vfendw X3RleHRfaW5wdXRfdjMKKysgKi8KKysjZGVmaW5lIFpXUF9URVhUX0lOUFVUX1YzX1BSRUVESVRf U1RSSU5HX1NJTkNFX1ZFUlNJT04gMQorKy8qKgorKyAqIEBpbmdyb3VwIGlmYWNlX3p3cF90ZXh0 X2lucHV0X3YzCisrICovCisrI2RlZmluZSBaV1BfVEVYVF9JTlBVVF9WM19DT01NSVRfU1RSSU5H X1NJTkNFX1ZFUlNJT04gMQorKy8qKgorKyAqIEBpbmdyb3VwIGlmYWNlX3p3cF90ZXh0X2lucHV0 X3YzCisrICovCisrI2RlZmluZSBaV1BfVEVYVF9JTlBVVF9WM19ERUxFVEVfU1VSUk9VTkRJTkdf VEVYVF9TSU5DRV9WRVJTSU9OIDEKKysvKioKKysgKiBAaW5ncm91cCBpZmFjZV96d3BfdGV4dF9p bnB1dF92MworKyAqLworKyNkZWZpbmUgWldQX1RFWFRfSU5QVVRfVjNfRE9ORV9TSU5DRV9WRVJT SU9OIDEKKysKKysvKioKKysgKiBAaW5ncm91cCBpZmFjZV96d3BfdGV4dF9pbnB1dF92MworKyAq LworKyNkZWZpbmUgWldQX1RFWFRfSU5QVVRfVjNfREVTVFJPWV9TSU5DRV9WRVJTSU9OIDEKKysv KioKKysgKiBAaW5ncm91cCBpZmFjZV96d3BfdGV4dF9pbnB1dF92MworKyAqLworKyNkZWZpbmUg WldQX1RFWFRfSU5QVVRfVjNfRU5BQkxFX1NJTkNFX1ZFUlNJT04gMQorKy8qKgorKyAqIEBpbmdy b3VwIGlmYWNlX3p3cF90ZXh0X2lucHV0X3YzCisrICovCisrI2RlZmluZSBaV1BfVEVYVF9JTlBV VF9WM19ESVNBQkxFX1NJTkNFX1ZFUlNJT04gMQorKy8qKgorKyAqIEBpbmdyb3VwIGlmYWNlX3p3 cF90ZXh0X2lucHV0X3YzCisrICovCisrI2RlZmluZSBaV1BfVEVYVF9JTlBVVF9WM19TRVRfU1VS Uk9VTkRJTkdfVEVYVF9TSU5DRV9WRVJTSU9OIDEKKysvKioKKysgKiBAaW5ncm91cCBpZmFjZV96 d3BfdGV4dF9pbnB1dF92MworKyAqLworKyNkZWZpbmUgWldQX1RFWFRfSU5QVVRfVjNfU0VUX1RF WFRfQ0hBTkdFX0NBVVNFX1NJTkNFX1ZFUlNJT04gMQorKy8qKgorKyAqIEBpbmdyb3VwIGlmYWNl X3p3cF90ZXh0X2lucHV0X3YzCisrICovCisrI2RlZmluZSBaV1BfVEVYVF9JTlBVVF9WM19TRVRf Q09OVEVOVF9UWVBFX1NJTkNFX1ZFUlNJT04gMQorKy8qKgorKyAqIEBpbmdyb3VwIGlmYWNlX3p3 cF90ZXh0X2lucHV0X3YzCisrICovCisrI2RlZmluZSBaV1BfVEVYVF9JTlBVVF9WM19TRVRfQ1VS U09SX1JFQ1RBTkdMRV9TSU5DRV9WRVJTSU9OIDEKKysvKioKKysgKiBAaW5ncm91cCBpZmFjZV96 d3BfdGV4dF9pbnB1dF92MworKyAqLworKyNkZWZpbmUgWldQX1RFWFRfSU5QVVRfVjNfQ09NTUlU X1NJTkNFX1ZFUlNJT04gMQorKworKy8qKiBAaW5ncm91cCBpZmFjZV96d3BfdGV4dF9pbnB1dF92 MyAqLworK3N0YXRpYyBpbmxpbmUgdm9pZAorK3p3cF90ZXh0X2lucHV0X3YzX3NldF91c2VyX2Rh dGEoc3RydWN0IHp3cF90ZXh0X2lucHV0X3YzICp6d3BfdGV4dF9pbnB1dF92Mywgdm9pZCAqdXNl cl9kYXRhKQorK3sKKysJd2xfcHJveHlfc2V0X3VzZXJfZGF0YSgoc3RydWN0IHdsX3Byb3h5ICop IHp3cF90ZXh0X2lucHV0X3YzLCB1c2VyX2RhdGEpOworK30KKysKKysvKiogQGluZ3JvdXAgaWZh Y2VfendwX3RleHRfaW5wdXRfdjMgKi8KKytzdGF0aWMgaW5saW5lIHZvaWQgKgorK3p3cF90ZXh0 X2lucHV0X3YzX2dldF91c2VyX2RhdGEoc3RydWN0IHp3cF90ZXh0X2lucHV0X3YzICp6d3BfdGV4 dF9pbnB1dF92MykKKyt7CisrCXJldHVybiB3bF9wcm94eV9nZXRfdXNlcl9kYXRhKChzdHJ1Y3Qg d2xfcHJveHkgKikgendwX3RleHRfaW5wdXRfdjMpOworK30KKysKKytzdGF0aWMgaW5saW5lIHVp bnQzMl90CisrendwX3RleHRfaW5wdXRfdjNfZ2V0X3ZlcnNpb24oc3RydWN0IHp3cF90ZXh0X2lu cHV0X3YzICp6d3BfdGV4dF9pbnB1dF92MykKKyt7CisrCXJldHVybiB3bF9wcm94eV9nZXRfdmVy c2lvbigoc3RydWN0IHdsX3Byb3h5ICopIHp3cF90ZXh0X2lucHV0X3YzKTsKKyt9CisrCisrLyoq CisrICogQGluZ3JvdXAgaWZhY2VfendwX3RleHRfaW5wdXRfdjMKKysgKgorKyAqIERlc3Ryb3kg dGhlIHdwX3RleHRfaW5wdXQgb2JqZWN0LiBBbHNvIGRpc2FibGVzIGFsbCBzdXJmYWNlcyBlbmFi bGVkCisrICogdGhyb3VnaCB0aGlzIHdwX3RleHRfaW5wdXQgb2JqZWN0LgorKyAqLworK3N0YXRp YyBpbmxpbmUgdm9pZAorK3p3cF90ZXh0X2lucHV0X3YzX2Rlc3Ryb3koc3RydWN0IHp3cF90ZXh0 X2lucHV0X3YzICp6d3BfdGV4dF9pbnB1dF92MykKKyt7CisrCXdsX3Byb3h5X21hcnNoYWxfZmxh Z3MoKHN0cnVjdCB3bF9wcm94eSAqKSB6d3BfdGV4dF9pbnB1dF92MywKKysJCQkgWldQX1RFWFRf SU5QVVRfVjNfREVTVFJPWSwgTlVMTCwgd2xfcHJveHlfZ2V0X3ZlcnNpb24oKHN0cnVjdCB3bF9w cm94eSAqKSB6d3BfdGV4dF9pbnB1dF92MyksIFdMX01BUlNIQUxfRkxBR19ERVNUUk9ZKTsKKyt9 CisrCisrLyoqCisrICogQGluZ3JvdXAgaWZhY2VfendwX3RleHRfaW5wdXRfdjMKKysgKgorKyAq IFJlcXVlc3RzIHRleHQgaW5wdXQgb24gdGhlIHN1cmZhY2UgcHJldmlvdXNseSBvYnRhaW5lZCBm cm9tIHRoZSBlbnRlcgorKyAqIGV2ZW50LgorKyAqCisrICogVGhpcyByZXF1ZXN0IG11c3QgYmUg aXNzdWVkIGV2ZXJ5IHRpbWUgdGhlIGZvY3VzZWQgdGV4dCBpbnB1dCBjaGFuZ2VzCisrICogdG8g YSBuZXcgb25lLCBpbmNsdWRpbmcgd2l0aGluIHRoZSBjdXJyZW50IHN1cmZhY2UuIFVzZQorKyAq IHp3cF90ZXh0X2lucHV0X3YzLmRpc2FibGUgd2hlbiB0aGVyZSBpcyBubyBsb25nZXIgYW55IGlu cHV0IGZvY3VzIG9uCisrICogdGhlIGN1cnJlbnQgc3VyZmFjZS4KKysgKgorKyAqIENsaWVudHMg bXVzdCBub3QgZW5hYmxlIG1vcmUgdGhhbiBvbmUgdGV4dCBpbnB1dCBvbiB0aGUgc2luZ2xlIHNl YXQKKysgKiBhbmQgc2hvdWxkIGRpc2FibGUgdGhlIGN1cnJlbnQgdGV4dCBpbnB1dCBiZWZvcmUg ZW5hYmxpbmcgdGhlIG5ldyBvbmUuCisrICogUmVxdWVzdHMgdG8gZW5hYmxlIGEgdGV4dCBpbnB1 dCB3aGVuIGFub3RoZXIgdGV4dCBpbnB1dCBpcyBlbmFibGVkCisrICogb24gdGhlIHNhbWUgc2Vh dCBtdXN0IGJlIGlnbm9yZWQgYnkgY29tcG9zaXRvci4KKysgKgorKyAqIFRoaXMgcmVxdWVzdCBy ZXNldHMgYWxsIHN0YXRlIGFzc29jaWF0ZWQgd2l0aCBwcmV2aW91cyBlbmFibGUsIGRpc2FibGUs CisrICogc2V0X3N1cnJvdW5kaW5nX3RleHQsIHNldF90ZXh0X2NoYW5nZV9jYXVzZSwgc2V0X2Nv bnRlbnRfdHlwZSwgYW5kCisrICogc2V0X2N1cnNvcl9yZWN0YW5nbGUgcmVxdWVzdHMsIGFzIHdl bGwgYXMgdGhlIHN0YXRlIGFzc29jaWF0ZWQgd2l0aAorKyAqIHByZWVkaXRfc3RyaW5nLCBjb21t aXRfc3RyaW5nLCBhbmQgZGVsZXRlX3N1cnJvdW5kaW5nX3RleHQgZXZlbnRzLgorKyAqCisrICog VGhlIHNldF9zdXJyb3VuZGluZ190ZXh0LCBzZXRfY29udGVudF90eXBlIGFuZCBzZXRfY3Vyc29y X3JlY3RhbmdsZQorKyAqIHJlcXVlc3RzIG11c3QgZm9sbG93IGlmIHRoZSB0ZXh0IGlucHV0IHN1 cHBvcnRzIHRoZSBuZWNlc3NhcnkKKysgKiBmdW5jdGlvbmFsaXR5LgorKyAqCisrICogU3RhdGUg c2V0IHdpdGggdGhpcyByZXF1ZXN0IGlzIGRvdWJsZS1idWZmZXJlZC4gSXQgd2lsbCBnZXQgYXBw bGllZCBvbgorKyAqIHRoZSBuZXh0IHp3cF90ZXh0X2lucHV0X3YzLmNvbW1pdCByZXF1ZXN0LCBh bmQgc3RheSB2YWxpZCB1bnRpbCB0aGUKKysgKiBuZXh0IGNvbW1pdHRlZCBlbmFibGUgb3IgZGlz YWJsZSByZXF1ZXN0LgorKyAqCisrICogVGhlIGNoYW5nZXMgbXVzdCBiZSBhcHBsaWVkIGJ5IHRo ZSBjb21wb3NpdG9yIGFmdGVyIGlzc3VpbmcgYQorKyAqIHp3cF90ZXh0X2lucHV0X3YzLmNvbW1p dCByZXF1ZXN0LgorKyAqLworK3N0YXRpYyBpbmxpbmUgdm9pZAorK3p3cF90ZXh0X2lucHV0X3Yz X2VuYWJsZShzdHJ1Y3QgendwX3RleHRfaW5wdXRfdjMgKnp3cF90ZXh0X2lucHV0X3YzKQorK3sK KysJd2xfcHJveHlfbWFyc2hhbF9mbGFncygoc3RydWN0IHdsX3Byb3h5ICopIHp3cF90ZXh0X2lu cHV0X3YzLAorKwkJCSBaV1BfVEVYVF9JTlBVVF9WM19FTkFCTEUsIE5VTEwsIHdsX3Byb3h5X2dl dF92ZXJzaW9uKChzdHJ1Y3Qgd2xfcHJveHkgKikgendwX3RleHRfaW5wdXRfdjMpLCAwKTsKKyt9 CisrCisrLyoqCisrICogQGluZ3JvdXAgaWZhY2VfendwX3RleHRfaW5wdXRfdjMKKysgKgorKyAq IEV4cGxpY2l0bHkgZGlzYWJsZSB0ZXh0IGlucHV0IG9uIHRoZSBjdXJyZW50IHN1cmZhY2UgKHR5 cGljYWxseSB3aGVuCisrICogdGhlcmUgaXMgbm8gZm9jdXMgb24gYW55IHRleHQgZW50cnkgaW5z aWRlIHRoZSBzdXJmYWNlKS4KKysgKgorKyAqIFN0YXRlIHNldCB3aXRoIHRoaXMgcmVxdWVzdCBp cyBkb3VibGUtYnVmZmVyZWQuIEl0IHdpbGwgZ2V0IGFwcGxpZWQgb24KKysgKiB0aGUgbmV4dCB6 d3BfdGV4dF9pbnB1dF92My5jb21taXQgcmVxdWVzdC4KKysgKi8KKytzdGF0aWMgaW5saW5lIHZv aWQKKyt6d3BfdGV4dF9pbnB1dF92M19kaXNhYmxlKHN0cnVjdCB6d3BfdGV4dF9pbnB1dF92MyAq endwX3RleHRfaW5wdXRfdjMpCisreworKwl3bF9wcm94eV9tYXJzaGFsX2ZsYWdzKChzdHJ1Y3Qg d2xfcHJveHkgKikgendwX3RleHRfaW5wdXRfdjMsCisrCQkJIFpXUF9URVhUX0lOUFVUX1YzX0RJ U0FCTEUsIE5VTEwsIHdsX3Byb3h5X2dldF92ZXJzaW9uKChzdHJ1Y3Qgd2xfcHJveHkgKikgendw X3RleHRfaW5wdXRfdjMpLCAwKTsKKyt9CisrCisrLyoqCisrICogQGluZ3JvdXAgaWZhY2Vfendw X3RleHRfaW5wdXRfdjMKKysgKgorKyAqIFNldHMgdGhlIHN1cnJvdW5kaW5nIHBsYWluIHRleHQg YXJvdW5kIHRoZSBpbnB1dCwgZXhjbHVkaW5nIHRoZSBwcmVlZGl0CisrICogdGV4dC4KKysgKgor KyAqIFRoZSBjbGllbnQgc2hvdWxkIG5vdGlmeSB0aGUgY29tcG9zaXRvciBvZiBhbnkgY2hhbmdl cyBpbiBhbnkgb2YgdGhlCisrICogdmFsdWVzIGNhcnJpZWQgd2l0aCB0aGlzIHJlcXVlc3QsIGlu Y2x1ZGluZyBjaGFuZ2VzIGNhdXNlZCBieSBoYW5kbGluZworKyAqIGluY29taW5nIHRleHQtaW5w dXQgZXZlbnRzIGFzIHdlbGwgYXMgY2hhbmdlcyBjYXVzZWQgYnkgb3RoZXIKKysgKiBtZWNoYW5p c21zIGxpa2Uga2V5Ym9hcmQgdHlwaW5nLgorKyAqCisrICogSWYgdGhlIGNsaWVudCBpcyB1bmF3 YXJlIG9mIHRoZSB0ZXh0IGFyb3VuZCB0aGUgY3Vyc29yLCBpdCBzaG91bGQgbm90CisrICogaXNz dWUgdGhpcyByZXF1ZXN0LCB0byBzaWduaWZ5IGxhY2sgb2Ygc3VwcG9ydCB0byB0aGUgY29tcG9z aXRvci4KKysgKgorKyAqIFRleHQgaXMgVVRGLTggZW5jb2RlZCwgYW5kIHNob3VsZCBpbmNsdWRl IHRoZSBjdXJzb3IgcG9zaXRpb24sIHRoZQorKyAqIGNvbXBsZXRlIHNlbGVjdGlvbiBhbmQgYWRk aXRpb25hbCBjaGFyYWN0ZXJzIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlbS4KKysgKiBUaGVyZSBpcyBh IG1heGltdW0gbGVuZ3RoIG9mIHdheWxhbmQgbWVzc2FnZXMsIHNvIHRleHQgY2FuIG5vdCBiZQor KyAqIGxvbmdlciB0aGFuIDQwMDAgYnl0ZXMuCisrICoKKysgKiBDdXJzb3IgaXMgdGhlIGJ5dGUg b2Zmc2V0IG9mIHRoZSBjdXJzb3Igd2l0aGluIHRleHQgYnVmZmVyLgorKyAqCisrICogQW5jaG9y IGlzIHRoZSBieXRlIG9mZnNldCBvZiB0aGUgc2VsZWN0aW9uIGFuY2hvciB3aXRoaW4gdGV4dCBi dWZmZXIuCisrICogSWYgdGhlcmUgaXMgbm8gc2VsZWN0ZWQgdGV4dCwgYW5jaG9yIGlzIHRoZSBz YW1lIGFzIGN1cnNvci4KKysgKgorKyAqIElmIGFueSBwcmVlZGl0IHRleHQgaXMgcHJlc2VudCwg aXQgaXMgcmVwbGFjZWQgd2l0aCBhIGN1cnNvciBmb3IgdGhlCisrICogcHVycG9zZSBvZiB0aGlz IGV2ZW50LgorKyAqCisrICogVmFsdWVzIHNldCB3aXRoIHRoaXMgcmVxdWVzdCBhcmUgZG91Ymxl LWJ1ZmZlcmVkLiBUaGV5IHdpbGwgZ2V0IGFwcGxpZWQKKysgKiBvbiB0aGUgbmV4dCB6d3BfdGV4 dF9pbnB1dF92My5jb21taXQgcmVxdWVzdCwgYW5kIHN0YXkgdmFsaWQgdW50aWwgdGhlCisrICog bmV4dCBjb21taXR0ZWQgZW5hYmxlIG9yIGRpc2FibGUgcmVxdWVzdC4KKysgKgorKyAqIFRoZSBp bml0aWFsIHN0YXRlIGZvciBhZmZlY3RlZCBmaWVsZHMgaXMgZW1wdHksIG1lYW5pbmcgdGhhdCB0 aGUgdGV4dAorKyAqIGlucHV0IGRvZXMgbm90IHN1cHBvcnQgc2VuZGluZyBzdXJyb3VuZGluZyB0 ZXh0LiBJZiB0aGUgZW1wdHkgdmFsdWVzCisrICogZ2V0IGFwcGxpZWQsIHN1YnNlcXVlbnQgYXR0 ZW1wdHMgdG8gY2hhbmdlIHRoZW0gbWF5IGhhdmUgbm8gZWZmZWN0LgorKyAqLworK3N0YXRpYyBp bmxpbmUgdm9pZAorK3p3cF90ZXh0X2lucHV0X3YzX3NldF9zdXJyb3VuZGluZ190ZXh0KHN0cnVj dCB6d3BfdGV4dF9pbnB1dF92MyAqendwX3RleHRfaW5wdXRfdjMsIGNvbnN0IGNoYXIgKnRleHQs IGludDMyX3QgY3Vyc29yLCBpbnQzMl90IGFuY2hvcikKKyt7CisrCXdsX3Byb3h5X21hcnNoYWxf ZmxhZ3MoKHN0cnVjdCB3bF9wcm94eSAqKSB6d3BfdGV4dF9pbnB1dF92MywKKysJCQkgWldQX1RF WFRfSU5QVVRfVjNfU0VUX1NVUlJPVU5ESU5HX1RFWFQsIE5VTEwsIHdsX3Byb3h5X2dldF92ZXJz aW9uKChzdHJ1Y3Qgd2xfcHJveHkgKikgendwX3RleHRfaW5wdXRfdjMpLCAwLCB0ZXh0LCBjdXJz b3IsIGFuY2hvcik7CisrfQorKworKy8qKgorKyAqIEBpbmdyb3VwIGlmYWNlX3p3cF90ZXh0X2lu cHV0X3YzCisrICoKKysgKiBUZWxscyB0aGUgY29tcG9zaXRvciB3aHkgdGhlIHRleHQgc3Vycm91 bmRpbmcgdGhlIGN1cnNvciBjaGFuZ2VkLgorKyAqCisrICogV2hlbmV2ZXIgdGhlIGNsaWVudCBk ZXRlY3RzIGFuIGV4dGVybmFsIGNoYW5nZSBpbiB0ZXh0LCBjdXJzb3IsIG9yCisrICogYW5jaG9y IHBvc2lzaW9uLCBpdCBtdXN0IGlzc3VlIHRoaXMgcmVxdWVzdCB0byB0aGUgY29tcG9zaXRvci4g VGhpcworKyAqIHJlcXVlc3QgaXMgaW50ZW5kZWQgdG8gZ2l2ZSB0aGUgaW5wdXQgbWV0aG9kIGEg Y2hhbmNlIHRvIHVwZGF0ZSB0aGUKKysgKiBwcmVlZGl0IHRleHQgaW4gYW4gYXBwcm9wcmlhdGUg d2F5LCBlLmcuIGJ5IHJlbW92aW5nIGl0IHdoZW4gdGhlIHVzZXIKKysgKiBzdGFydHMgdHlwaW5n IHdpdGggYSBrZXlib2FyZC4KKysgKgorKyAqIGNhdXNlIGRlc2NyaWJlcyB0aGUgc291cmNlIG9m IHRoZSBjaGFuZ2UuCisrICoKKysgKiBUaGUgdmFsdWUgc2V0IHdpdGggdGhpcyByZXF1ZXN0IGlz IGRvdWJsZS1idWZmZXJlZC4gSXQgbXVzdCBiZSBhcHBsaWVkCisrICogYW5kIHJlc2V0IHRvIGlu aXRpYWwgYXQgdGhlIG5leHQgendwX3RleHRfaW5wdXRfdjMuY29tbWl0IHJlcXVlc3QuCisrICoK KysgKiBUaGUgaW5pdGlhbCB2YWx1ZSBvZiBjYXVzZSBpcyBpbnB1dF9tZXRob2QuCisrICovCisr c3RhdGljIGlubGluZSB2b2lkCisrendwX3RleHRfaW5wdXRfdjNfc2V0X3RleHRfY2hhbmdlX2Nh dXNlKHN0cnVjdCB6d3BfdGV4dF9pbnB1dF92MyAqendwX3RleHRfaW5wdXRfdjMsIHVpbnQzMl90 IGNhdXNlKQorK3sKKysJd2xfcHJveHlfbWFyc2hhbF9mbGFncygoc3RydWN0IHdsX3Byb3h5ICop IHp3cF90ZXh0X2lucHV0X3YzLAorKwkJCSBaV1BfVEVYVF9JTlBVVF9WM19TRVRfVEVYVF9DSEFO R0VfQ0FVU0UsIE5VTEwsIHdsX3Byb3h5X2dldF92ZXJzaW9uKChzdHJ1Y3Qgd2xfcHJveHkgKikg endwX3RleHRfaW5wdXRfdjMpLCAwLCBjYXVzZSk7CisrfQorKworKy8qKgorKyAqIEBpbmdyb3Vw IGlmYWNlX3p3cF90ZXh0X2lucHV0X3YzCisrICoKKysgKiBTZXRzIHRoZSBjb250ZW50IHB1cnBv c2UgYW5kIGNvbnRlbnQgaGludC4gV2hpbGUgdGhlIHB1cnBvc2UgaXMgdGhlCisrICogYmFzaWMg cHVycG9zZSBvZiBhbiBpbnB1dCBmaWVsZCwgdGhlIGhpbnQgZmxhZ3MgYWxsb3cgdG8gbW9kaWZ5 IHNvbWUgb2YKKysgKiB0aGUgYmVoYXZpb3IuCisrICoKKysgKiBWYWx1ZXMgc2V0IHdpdGggdGhp cyByZXF1ZXN0IGFyZSBkb3VibGUtYnVmZmVyZWQuIFRoZXkgd2lsbCBnZXQgYXBwbGllZAorKyAq IG9uIHRoZSBuZXh0IHp3cF90ZXh0X2lucHV0X3YzLmNvbW1pdCByZXF1ZXN0LgorKyAqIFN1YnNl cXVlbnQgYXR0ZW1wdHMgdG8gdXBkYXRlIHRoZW0gbWF5IGhhdmUgbm8gZWZmZWN0LiBUaGUgdmFs dWVzCisrICogcmVtYWluIHZhbGlkIHVudGlsIHRoZSBuZXh0IGNvbW1pdHRlZCBlbmFibGUgb3Ig ZGlzYWJsZSByZXF1ZXN0LgorKyAqCisrICogVGhlIGluaXRpYWwgdmFsdWUgZm9yIGhpbnQgaXMg bm9uZSwgYW5kIHRoZSBpbml0aWFsIHZhbHVlIGZvciBwdXJwb3NlCisrICogaXMgbm9ybWFsLgor KyAqLworK3N0YXRpYyBpbmxpbmUgdm9pZAorK3p3cF90ZXh0X2lucHV0X3YzX3NldF9jb250ZW50 X3R5cGUoc3RydWN0IHp3cF90ZXh0X2lucHV0X3YzICp6d3BfdGV4dF9pbnB1dF92MywgdWludDMy X3QgaGludCwgdWludDMyX3QgcHVycG9zZSkKKyt7CisrCXdsX3Byb3h5X21hcnNoYWxfZmxhZ3Mo KHN0cnVjdCB3bF9wcm94eSAqKSB6d3BfdGV4dF9pbnB1dF92MywKKysJCQkgWldQX1RFWFRfSU5Q VVRfVjNfU0VUX0NPTlRFTlRfVFlQRSwgTlVMTCwgd2xfcHJveHlfZ2V0X3ZlcnNpb24oKHN0cnVj dCB3bF9wcm94eSAqKSB6d3BfdGV4dF9pbnB1dF92MyksIDAsIGhpbnQsIHB1cnBvc2UpOworK30K KysKKysvKioKKysgKiBAaW5ncm91cCBpZmFjZV96d3BfdGV4dF9pbnB1dF92MworKyAqCisrICog TWFya3MgYW4gYXJlYSBhcm91bmQgdGhlIGN1cnNvciBhcyBhIHgsIHksIHdpZHRoLCBoZWlnaHQg cmVjdGFuZ2xlIGluCisrICogc3VyZmFjZSBsb2NhbCBjb29yZGluYXRlcy4KKysgKgorKyAqIEFs bG93cyB0aGUgY29tcG9zaXRvciB0byBwdXQgYSB3aW5kb3cgd2l0aCB3b3JkIHN1Z2dlc3Rpb25z IG5lYXIgdGhlCisrICogY3Vyc29yLCB3aXRob3V0IG9ic3RydWN0aW5nIHRoZSB0ZXh0IGJlaW5n IGlucHV0LgorKyAqCisrICogSWYgdGhlIGNsaWVudCBpcyB1bmF3YXJlIG9mIHRoZSBwb3NpdGlv biBvZiBlZGl0ZWQgdGV4dCwgaXQgc2hvdWxkIG5vdAorKyAqIGlzc3VlIHRoaXMgcmVxdWVzdCwg dG8gc2lnbmlmeSBsYWNrIG9mIHN1cHBvcnQgdG8gdGhlIGNvbXBvc2l0b3IuCisrICoKKysgKiBW YWx1ZXMgc2V0IHdpdGggdGhpcyByZXF1ZXN0IGFyZSBkb3VibGUtYnVmZmVyZWQuIFRoZXkgd2ls bCBnZXQgYXBwbGllZAorKyAqIG9uIHRoZSBuZXh0IHp3cF90ZXh0X2lucHV0X3YzLmNvbW1pdCBy ZXF1ZXN0LCBhbmQgc3RheSB2YWxpZCB1bnRpbCB0aGUKKysgKiBuZXh0IGNvbW1pdHRlZCBlbmFi bGUgb3IgZGlzYWJsZSByZXF1ZXN0LgorKyAqCisrICogVGhlIGluaXRpYWwgdmFsdWVzIGRlc2Ny aWJpbmcgYSBjdXJzb3IgcmVjdGFuZ2xlIGFyZSBlbXB0eS4gVGhhdCBtZWFucworKyAqIHRoZSB0 ZXh0IGlucHV0IGRvZXMgbm90IHN1cHBvcnQgZGVzY3JpYmluZyB0aGUgY3Vyc29yIGFyZWEuIElm IHRoZQorKyAqIGVtcHR5IHZhbHVlcyBnZXQgYXBwbGllZCwgc3Vic2VxdWVudCBhdHRlbXB0cyB0 byBjaGFuZ2UgdGhlbSBtYXkgaGF2ZQorKyAqIG5vIGVmZmVjdC4KKysgKi8KKytzdGF0aWMgaW5s aW5lIHZvaWQKKyt6d3BfdGV4dF9pbnB1dF92M19zZXRfY3Vyc29yX3JlY3RhbmdsZShzdHJ1Y3Qg endwX3RleHRfaW5wdXRfdjMgKnp3cF90ZXh0X2lucHV0X3YzLCBpbnQzMl90IHgsIGludDMyX3Qg eSwgaW50MzJfdCB3aWR0aCwgaW50MzJfdCBoZWlnaHQpCisreworKwl3bF9wcm94eV9tYXJzaGFs X2ZsYWdzKChzdHJ1Y3Qgd2xfcHJveHkgKikgendwX3RleHRfaW5wdXRfdjMsCisrCQkJIFpXUF9U RVhUX0lOUFVUX1YzX1NFVF9DVVJTT1JfUkVDVEFOR0xFLCBOVUxMLCB3bF9wcm94eV9nZXRfdmVy c2lvbigoc3RydWN0IHdsX3Byb3h5ICopIHp3cF90ZXh0X2lucHV0X3YzKSwgMCwgeCwgeSwgd2lk dGgsIGhlaWdodCk7CisrfQorKworKy8qKgorKyAqIEBpbmdyb3VwIGlmYWNlX3p3cF90ZXh0X2lu cHV0X3YzCisrICoKKysgKiBBdG9taWNhbGx5IGFwcGxpZXMgc3RhdGUgY2hhbmdlcyByZWNlbnRs eSBzZW50IHRvIHRoZSBjb21wb3NpdG9yLgorKyAqCisrICogVGhlIGNvbW1pdCByZXF1ZXN0IGVz dGFibGlzaGVzIGFuZCB1cGRhdGVzIHRoZSBzdGF0ZSBvZiB0aGUgY2xpZW50LCBhbmQKKysgKiBt dXN0IGJlIGlzc3VlZCBhZnRlciBhbnkgY2hhbmdlcyB0byBhcHBseSB0aGVtLgorKyAqCisrICog VGV4dCBpbnB1dCBzdGF0ZSAoZW5hYmxlZCBzdGF0dXMsIGNvbnRlbnQgcHVycG9zZSwgY29udGVu dCBoaW50LAorKyAqIHN1cnJvdW5kaW5nIHRleHQgYW5kIGNoYW5nZSBjYXVzZSwgY3Vyc29yIHJl Y3RhbmdsZSkgaXMgY29uY2VwdHVhbGx5CisrICogZG91YmxlLWJ1ZmZlcmVkIHdpdGhpbiB0aGUg Y29udGV4dCBvZiBhIHRleHQgaW5wdXQsIGkuZS4gYmV0d2VlbiBhCisrICogY29tbWl0dGVkIGVu YWJsZSByZXF1ZXN0IGFuZCB0aGUgZm9sbG93aW5nIGNvbW1pdHRlZCBlbmFibGUgb3IgZGlzYWJs ZQorKyAqIHJlcXVlc3QuCisrICoKKysgKiBQcm90b2NvbCByZXF1ZXN0cyBtb2RpZnkgdGhlIHBl bmRpbmcgc3RhdGUsIGFzIG9wcG9zZWQgdG8gdGhlIGN1cnJlbnQKKysgKiBzdGF0ZSBpbiB1c2Ug YnkgdGhlIGlucHV0IG1ldGhvZC4gQSBjb21taXQgcmVxdWVzdCBhdG9taWNhbGx5IGFwcGxpZXMK KysgKiBhbGwgcGVuZGluZyBzdGF0ZSwgcmVwbGFjaW5nIHRoZSBjdXJyZW50IHN0YXRlLiBBZnRl ciBjb21taXQsIHRoZSBuZXcKKysgKiBwZW5kaW5nIHN0YXRlIGlzIGFzIGRvY3VtZW50ZWQgZm9y IGVhY2ggcmVsYXRlZCByZXF1ZXN0LgorKyAqCisrICogUmVxdWVzdHMgYXJlIGFwcGxpZWQgaW4g dGhlIG9yZGVyIG9mIGFycml2YWwuCisrICoKKysgKiBOZWl0aGVyIGN1cnJlbnQgbm9yIHBlbmRp bmcgc3RhdGUgYXJlIG1vZGlmaWVkIHVubGVzcyBub3RlZCBvdGhlcndpc2UuCisrICoKKysgKiBU aGUgY29tcG9zaXRvciBtdXN0IGNvdW50IHRoZSBudW1iZXIgb2YgY29tbWl0IHJlcXVlc3RzIGNv bWluZyBmcm9tCisrICogZWFjaCB6d3BfdGV4dF9pbnB1dF92MyBvYmplY3QgYW5kIHVzZSB0aGUg Y291bnQgYXMgdGhlIHNlcmlhbCBpbiBkb25lCisrICogZXZlbnRzLgorKyAqLworK3N0YXRpYyBp bmxpbmUgdm9pZAorK3p3cF90ZXh0X2lucHV0X3YzX2NvbW1pdChzdHJ1Y3QgendwX3RleHRfaW5w dXRfdjMgKnp3cF90ZXh0X2lucHV0X3YzKQorK3sKKysJd2xfcHJveHlfbWFyc2hhbF9mbGFncygo c3RydWN0IHdsX3Byb3h5ICopIHp3cF90ZXh0X2lucHV0X3YzLAorKwkJCSBaV1BfVEVYVF9JTlBV VF9WM19DT01NSVQsIE5VTEwsIHdsX3Byb3h5X2dldF92ZXJzaW9uKChzdHJ1Y3Qgd2xfcHJveHkg KikgendwX3RleHRfaW5wdXRfdjMpLCAwKTsKKyt9CisrCisrI2RlZmluZSBaV1BfVEVYVF9JTlBV VF9NQU5BR0VSX1YzX0RFU1RST1kgMAorKyNkZWZpbmUgWldQX1RFWFRfSU5QVVRfTUFOQUdFUl9W M19HRVRfVEVYVF9JTlBVVCAxCisrCisrCisrLyoqCisrICogQGluZ3JvdXAgaWZhY2VfendwX3Rl eHRfaW5wdXRfbWFuYWdlcl92MworKyAqLworKyNkZWZpbmUgWldQX1RFWFRfSU5QVVRfTUFOQUdF Ul9WM19ERVNUUk9ZX1NJTkNFX1ZFUlNJT04gMQorKy8qKgorKyAqIEBpbmdyb3VwIGlmYWNlX3p3 cF90ZXh0X2lucHV0X21hbmFnZXJfdjMKKysgKi8KKysjZGVmaW5lIFpXUF9URVhUX0lOUFVUX01B TkFHRVJfVjNfR0VUX1RFWFRfSU5QVVRfU0lOQ0VfVkVSU0lPTiAxCisrCisrLyoqIEBpbmdyb3Vw IGlmYWNlX3p3cF90ZXh0X2lucHV0X21hbmFnZXJfdjMgKi8KKytzdGF0aWMgaW5saW5lIHZvaWQK Kyt6d3BfdGV4dF9pbnB1dF9tYW5hZ2VyX3YzX3NldF91c2VyX2RhdGEoc3RydWN0IHp3cF90ZXh0 X2lucHV0X21hbmFnZXJfdjMgKnp3cF90ZXh0X2lucHV0X21hbmFnZXJfdjMsIHZvaWQgKnVzZXJf ZGF0YSkKKyt7CisrCXdsX3Byb3h5X3NldF91c2VyX2RhdGEoKHN0cnVjdCB3bF9wcm94eSAqKSB6 d3BfdGV4dF9pbnB1dF9tYW5hZ2VyX3YzLCB1c2VyX2RhdGEpOworK30KKysKKysvKiogQGluZ3Jv dXAgaWZhY2VfendwX3RleHRfaW5wdXRfbWFuYWdlcl92MyAqLworK3N0YXRpYyBpbmxpbmUgdm9p ZCAqCisrendwX3RleHRfaW5wdXRfbWFuYWdlcl92M19nZXRfdXNlcl9kYXRhKHN0cnVjdCB6d3Bf dGV4dF9pbnB1dF9tYW5hZ2VyX3YzICp6d3BfdGV4dF9pbnB1dF9tYW5hZ2VyX3YzKQorK3sKKysJ cmV0dXJuIHdsX3Byb3h5X2dldF91c2VyX2RhdGEoKHN0cnVjdCB3bF9wcm94eSAqKSB6d3BfdGV4 dF9pbnB1dF9tYW5hZ2VyX3YzKTsKKyt9CisrCisrc3RhdGljIGlubGluZSB1aW50MzJfdAorK3p3 cF90ZXh0X2lucHV0X21hbmFnZXJfdjNfZ2V0X3ZlcnNpb24oc3RydWN0IHp3cF90ZXh0X2lucHV0 X21hbmFnZXJfdjMgKnp3cF90ZXh0X2lucHV0X21hbmFnZXJfdjMpCisreworKwlyZXR1cm4gd2xf cHJveHlfZ2V0X3ZlcnNpb24oKHN0cnVjdCB3bF9wcm94eSAqKSB6d3BfdGV4dF9pbnB1dF9tYW5h Z2VyX3YzKTsKKyt9CisrCisrLyoqCisrICogQGluZ3JvdXAgaWZhY2VfendwX3RleHRfaW5wdXRf bWFuYWdlcl92MworKyAqCisrICogRGVzdHJveSB0aGUgd3BfdGV4dF9pbnB1dF9tYW5hZ2VyIG9i amVjdC4KKysgKi8KKytzdGF0aWMgaW5saW5lIHZvaWQKKyt6d3BfdGV4dF9pbnB1dF9tYW5hZ2Vy X3YzX2Rlc3Ryb3koc3RydWN0IHp3cF90ZXh0X2lucHV0X21hbmFnZXJfdjMgKnp3cF90ZXh0X2lu cHV0X21hbmFnZXJfdjMpCisreworKwl3bF9wcm94eV9tYXJzaGFsX2ZsYWdzKChzdHJ1Y3Qgd2xf cHJveHkgKikgendwX3RleHRfaW5wdXRfbWFuYWdlcl92MywKKysJCQkgWldQX1RFWFRfSU5QVVRf TUFOQUdFUl9WM19ERVNUUk9ZLCBOVUxMLCB3bF9wcm94eV9nZXRfdmVyc2lvbigoc3RydWN0IHds X3Byb3h5ICopIHp3cF90ZXh0X2lucHV0X21hbmFnZXJfdjMpLCBXTF9NQVJTSEFMX0ZMQUdfREVT VFJPWSk7CisrfQorKworKy8qKgorKyAqIEBpbmdyb3VwIGlmYWNlX3p3cF90ZXh0X2lucHV0X21h bmFnZXJfdjMKKysgKgorKyAqIENyZWF0ZXMgYSBuZXcgdGV4dC1pbnB1dCBvYmplY3QgZm9yIGEg Z2l2ZW4gc2VhdC4KKysgKi8KKytzdGF0aWMgaW5saW5lIHN0cnVjdCB6d3BfdGV4dF9pbnB1dF92 MyAqCisrendwX3RleHRfaW5wdXRfbWFuYWdlcl92M19nZXRfdGV4dF9pbnB1dChzdHJ1Y3Qgendw X3RleHRfaW5wdXRfbWFuYWdlcl92MyAqendwX3RleHRfaW5wdXRfbWFuYWdlcl92Mywgc3RydWN0 IHdsX3NlYXQgKnNlYXQpCisreworKwlzdHJ1Y3Qgd2xfcHJveHkgKmlkOworKworKwlpZCA9IHds X3Byb3h5X21hcnNoYWxfZmxhZ3MoKHN0cnVjdCB3bF9wcm94eSAqKSB6d3BfdGV4dF9pbnB1dF9t YW5hZ2VyX3YzLAorKwkJCSBaV1BfVEVYVF9JTlBVVF9NQU5BR0VSX1YzX0dFVF9URVhUX0lOUFVU LCAmendwX3RleHRfaW5wdXRfdjNfaW50ZXJmYWNlLCB3bF9wcm94eV9nZXRfdmVyc2lvbigoc3Ry dWN0IHdsX3Byb3h5ICopIHp3cF90ZXh0X2lucHV0X21hbmFnZXJfdjMpLCAwLCBOVUxMLCBzZWF0 KTsKKysKKysJcmV0dXJuIChzdHJ1Y3QgendwX3RleHRfaW5wdXRfdjMgKikgaWQ7CisrfQorKwor KyNpZmRlZiAgX19jcGx1c3BsdXMKKyt9CisrI2VuZGlmCisrCisrI2VuZGlmCistLSAKKzIuNTIu MAorCitGcm9tIGIwY2VjMDk3NDQ4OGQ5ZTk4ZTE2YjljNDA4NjEwNjJhMzFmZTA1NzEgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFp bC5jb20+CitEYXRlOiBUaHUsIDUgRmViIDIwMjYgMjA6NTc6MDYgKzA5MDAKK1N1YmplY3Q6IFtQ QVRDSCAyLzNdIHNyYy9pYnVzdHlwZXM6IFVwZGF0ZSBJQnVzSW5wdXRQdXJwb3NlIGFuZCBJQnVz SW5wdXRIaW50cworCitBZGQgSUJVU19JTlBVVF9QVVJQT1NFX0RBVEUsIElCVVNfSU5QVVRfUFVS UE9TRV9USU1FLAorSUJVU19JTlBVVF9QVVJQT1NFX0RBVEVUSU1FIHRvIElCdXNJbnB1dFB1cnBv c2UgYW5kCithZGQgSUJVU19JTlBVVF9ISU5UX0xBVElOLCBJQlVTX0lOUFVUX0hJTlRfTVVMVElM SU5FIHRvIElCdXNJbnB1dEhpbnRzCit0byBzdXBwb3J0IHRoZSBXYXlsYW5kIHRleHQtaW5wdXQg cHJvdG9jb2wgVjEsIFYzLgorCitCVUc9aHR0cHM6Ly9naXRodWIuY29tL2lidXMvaWJ1cy9wdWxs LzI4NTMKKy0tLQorIHNyYy9pYnVzdHlwZXMuaCB8IDIxICsrKysrKysrKysrKysrKysrKy0tLQor IDEgZmlsZSBjaGFuZ2VkLCAxOCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorCitkaWZm IC0tZ2l0IGEvc3JjL2lidXN0eXBlcy5oIGIvc3JjL2lidXN0eXBlcy5oCitpbmRleCAxODM2MDk2 Yi4uMTZhNWJjMDUgMTAwNjQ0CistLS0gYS9zcmMvaWJ1c3R5cGVzLmgKKysrKyBiL3NyYy9pYnVz dHlwZXMuaAorQEAgLTIsNyArMiw3IEBACisgLyogdmltOnNldCBldCBzdHM9NDogKi8KKyAvKiBp YnVzIC0gVGhlIElucHV0IEJ1cworICAqIENvcHlyaWdodCAoQykgMjAwOC0yMDEzIFBlbmcgSHVh bmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgorLSAqIENvcHlyaWdodCAoQykgMjAxMC0yMDI1 IFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgorKyAqIENvcHlyaWdo dCAoQykgMjAxMC0yMDI2IFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29t PgorICAqIENvcHlyaWdodCAoQykgMjAwOC0yMDI1IFJlZCBIYXQsIEluYy4KKyAgKgorICAqIFRo aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IKK0BAIC0yNzQsNiArMjc0LDEyIEBAIHR5cGVkZWYgdm9pZCAoKiBJQnVzRnJlZUZ1bmMpIChn cG9pbnRlciBvYmplY3QpOworICAqICAgICBjaGFyYWN0ZXJzIGFyZSBoaWRkZW4KKyAgKiBASUJV U19JTlBVVF9QVVJQT1NFX1RFUk1JTkFMOiBBbGxvdyBhbnkgY2hhcmFjdGVyLCBpbiBhZGRpdGlv biB0byBjb250cm9sCisgICogICAgIGNvZGVzLiBTaW5jZSAxLjUuMjQKKysgKiBASUJVU19JTlBV VF9QVVJQT1NFX0RBVEU6IElucHV0IGEgZGF0ZSBmb3IgdGhlIFdheWxhbmQgdGV4dC1pbnB1dCBw cm90b2NvbAorKyAqICAgICBWMS9WMy4gU2luY2UgMS41LjM0CisrICogQElCVVNfSU5QVVRfUFVS UE9TRV9USU1FOiBJbnB1dCBhIHRpbWUgZm9yIHRoZSBXYXlsYW5kIHRleHQtaW5wdXQgcHJvdG9j b2wKKysgKiAgICAgVjEvVjMuIFNpbmNlIDEuNS4zNAorKyAqIEBJQlVTX0lOUFVUX1BVUlBPU0Vf REFURVRJTUU6IElucHV0IGEgZGF0ZSBhbmQgdGltZSBmb3IgdGhlIFdheWxhbmQKKysgKiAgICAg dGV4dC1pbnB1dCBwcm90b2NvbCBWMS9WMy4gU2luY2UgMS41LjM0CisgICoKKyAgKiBEZXNjcmli ZXMgcHJpbWFyeSBwdXJwb3NlIG9mIHRoZSBpbnB1dCBjb250ZXh0LiAgVGhpcyBpbmZvcm1hdGlv bgorICAqIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgdG8gaW1wbGVtZW50IGludGVsbGlnZW50IGJl aGF2aW9yIGluCitAQCAtMzA4LDcgKzMxNCwxMCBAQCB0eXBlZGVmIGVudW0KKyAgICAgSUJVU19J TlBVVF9QVVJQT1NFX05BTUUsCisgICAgIElCVVNfSU5QVVRfUFVSUE9TRV9QQVNTV09SRCwKKyAg ICAgSUJVU19JTlBVVF9QVVJQT1NFX1BJTiwKKy0gICAgSUJVU19JTlBVVF9QVVJQT1NFX1RFUk1J TkFMCisrICAgIElCVVNfSU5QVVRfUFVSUE9TRV9URVJNSU5BTCwKKysgICAgSUJVU19JTlBVVF9Q VVJQT1NFX0RBVEUsCisrICAgIElCVVNfSU5QVVRfUFVSUE9TRV9USU1FLAorKyAgICBJQlVTX0lO UFVUX1BVUlBPU0VfREFURVRJTUUKKyB9IElCdXNJbnB1dFB1cnBvc2U7CisgCisgLyoqCitAQCAt MzMyLDYgKzM0MSwxMCBAQCB0eXBlZGVmIGVudW0KKyAgKiAgICAgdXBkYXRlIHBlcnNvbmFsaXpl ZCBkYXRhIChsaWtlIHR5cGluZyBoaXN0b3J5KS4gU2luY2UgMS41LjI2CisgICogQElCVVNfSU5Q VVRfSElOVF9ISURERU5fVEVYVDogVGhlIHRleHQgaXMgaGlkZGVuIChlLmcuIHBhc3N3b3JkIGZp ZWxkcykuCisgICogICAgIFNpbmNlIDEuNS4zNAorKyAqIEBJQlVTX0lOUFVUX0hJTlRfTEFUSU46 IEp1c3QgbGF0aW4gY2hhcmFjdGVycyBzaG91bGQgYmUgZW50ZXJlZCBmb3IgdGhlCisrICogICAg IHRleHQtaW5wdXQgcHJvdG9jb2wgVjEvVjMuIFNpbmNlIDEuNS4zNAorKyAqIEBJQlVTX0lOUFVU X0hJTlRfTVVMVElMSU5FOiBTdWdnZXN0IHRoZSB0ZXh0IGlucHV0IGlzIG11bHRpbGluZSBmb3Ig dGhlCisrICogICAgIHRleHQtaW5wdXQgcHJvdG9jb2wgVjEvVjMuIFNpbmNlIDEuNS4zNAorICAq CisgICogRGVzY3JpYmVzIGhpbnRzIHRoYXQgbWlnaHQgYmUgdGFrZW4gaW50byBhY2NvdW50IGJ5 IGVuZ2luZXMuICBOb3RlCisgICogdGhhdCBlbmdpbmVzIG1heSBhbHJlYWR5IHRhaWxvciB0aGVp ciBiZWhhdmlvdXIgYWNjb3JkaW5nIHRvIHRoZQorQEAgLTM2MCw3ICszNzMsOSBAQCB0eXBlZGVm IGVudW0KKyAgICAgSUJVU19JTlBVVF9ISU5UX0VNT0pJICAgICAgICAgICAgICAgPSAxIDw8IDks CisgICAgIElCVVNfSU5QVVRfSElOVF9OT19FTU9KSSAgICAgICAgICAgID0gMSA8PCAxMCwKKyAg ICAgSUJVU19JTlBVVF9ISU5UX1BSSVZBVEUgICAgICAgICAgICAgPSAxIDw8IDExLAorLSAgICBJ QlVTX0lOUFVUX0hJTlRfSElEREVOX1RFWFQgICAgICAgICA9IDEgPDwgMTIKKysgICAgSUJVU19J TlBVVF9ISU5UX0hJRERFTl9URVhUICAgICAgICAgPSAxIDw8IDEyLAorKyAgICBJQlVTX0lOUFVU X0hJTlRfTEFUSU4gICAgICAgICAgICAgICA9IDEgPDwgMTMsCisrICAgIElCVVNfSU5QVVRfSElO VF9NVUxUSUxJTkUgICAgICAgICAgID0gMSA8PCAxNAorIH0gSUJ1c0lucHV0SGludHM7CisgCisg LyoqCistLSAKKzIuNTIuMAorCitGcm9tIDdiMDE0YjU4NzI1OTUzMWMyNzkzNzc4YzczMTExZTBl NjFiNmMxNTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBmdWppd2FyYXQgPHRha2Fv LmZ1aml3YXJhMUBnbWFpbC5jb20+CitEYXRlOiBUaHUsIDUgRmViIDIwMjYgMjE6MTI6MzcgKzA5 MDAKK1N1YmplY3Q6IFtQQVRDSCAzLzNdIGNsaWVudC93YXlsYW5kOiBTdXBwb3J0IGlucHV0IHB1 cnBvc2UgYW5kIGhpbnRzCisKK0JVRz1odHRwczovL2dpdGh1Yi5jb20vaWJ1cy9pYnVzL3B1bGwv Mjg1MworLS0tCisgY2xpZW50L3dheWxhbmQvTWFrZWZpbGUuYW0gICAgIHwgICA2ICstCisgY2xp ZW50L3dheWxhbmQvaWJ1c3dheWxhbmRpbS5jIHwgMTkxICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLQorIDIgZmlsZXMgY2hhbmdlZCwgMTkzIGluc2VydGlvbnMoKyksIDQgZGVsZXRp b25zKC0pCisKK2RpZmYgLS1naXQgYS9jbGllbnQvd2F5bGFuZC9NYWtlZmlsZS5hbSBiL2NsaWVu dC93YXlsYW5kL01ha2VmaWxlLmFtCitpbmRleCA1MjkxNDgwMy4uMjUyNjk1NTcgMTAwNjQ0Cist LS0gYS9jbGllbnQvd2F5bGFuZC9NYWtlZmlsZS5hbQorKysrIGIvY2xpZW50L3dheWxhbmQvTWFr ZWZpbGUuYW0KK0BAIC0zLDcgKzMsNyBAQAorICMgaWJ1cyAtIFRoZSBJbnB1dCBCdXMKKyAjCisg IyBDb3B5cmlnaHQgKGMpIDIwMDctMjAxMyBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWls LmNvbT4KKy0jIENvcHlyaWdodCAoYykgMjAxOS0yMDI1IFRha2FvIEZ1aml3YXJhIDx0YWthby5m dWppd2FyYTFAZ21haWwuY29tPgorKyMgQ29weXJpZ2h0IChjKSAyMDE5LTIwMjYgVGFrYW8gRnVq aXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CisgIyBDb3B5cmlnaHQgKGMpIDIwMDct MjAxOSBSZWQgSGF0LCBJbmMuCisgIworICMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKK0BAIC0zNCw2ICszNCw3IEBA IHByb3RvY29sX3NvdXJjZXMgPSBcCisgICAgIGlucHV0LW1ldGhvZC11bnN0YWJsZS12Mi1jbGll bnQtcHJvdG9jb2wuaCBcCisgICAgIGlucHV0LW1ldGhvZC11bnN0YWJsZS12Mi1wcm90b2NvbC5j IFwKKyAgICAgdGV4dC1pbnB1dC11bnN0YWJsZS12MS1jbGllbnQtcHJvdG9jb2wuaCBcCisrICAg IHRleHQtaW5wdXQtdW5zdGFibGUtdjMtY2xpZW50LXByb3RvY29sLmggXAorICAgICB2aXJ0dWFs LWtleWJvYXJkLXVuc3RhYmxlLXYxLWNsaWVudC1wcm90b2NvbC5oIFwKKyAgICAgdmlydHVhbC1r ZXlib2FyZC11bnN0YWJsZS12MS1wcm90b2NvbC5jIFwKKyAgICAgJChOVUxMKQorQEAgLTk1LDYg Kzk2LDkgQEAgaW5wdXQtbWV0aG9kLXVuc3RhYmxlLXYyLXByb3RvY29sLmM6ICQoc3JjZGlyKS9p bnB1dC1tZXRob2QtdW5zdGFibGUtdjIueG1sCisgdGV4dC1pbnB1dC11bnN0YWJsZS12MS1jbGll bnQtcHJvdG9jb2wuaDogJCh3YXlsYW5kX3RleHRfcHJvdG9jb2xkaXIpL3RleHQtaW5wdXQtdW5z dGFibGUtdjEueG1sCisgCSQoQU1fVl9HRU4pJCh3YXlsYW5kX3NjYW5uZXIpIGNsaWVudC1oZWFk ZXIgJDwgJEAKKyAKKyt0ZXh0LWlucHV0LXVuc3RhYmxlLXYzLWNsaWVudC1wcm90b2NvbC5oOiAk KHdheWxhbmRfdGV4dF9wcm90b2NvbGRpcikvdGV4dC1pbnB1dC11bnN0YWJsZS12My54bWwKKysJ JChBTV9WX0dFTikkKHdheWxhbmRfc2Nhbm5lcikgY2xpZW50LWhlYWRlciAkPCAkQAorKworIHZp cnR1YWwta2V5Ym9hcmQtdW5zdGFibGUtdjEtY2xpZW50LXByb3RvY29sLmg6ICQoc3JjZGlyKS92 aXJ0dWFsLWtleWJvYXJkLXVuc3RhYmxlLXYxLnhtbAorIAkkKEFNX1ZfR0VOKSQod2F5bGFuZF9z Y2FubmVyKSBjbGllbnQtaGVhZGVyICQ8ICRACisgCitkaWZmIC0tZ2l0IGEvY2xpZW50L3dheWxh bmQvaWJ1c3dheWxhbmRpbS5jIGIvY2xpZW50L3dheWxhbmQvaWJ1c3dheWxhbmRpbS5jCitpbmRl eCBhMmM5MTMyMS4uNDk1OTE4ZTIgMTAwNjQ0CistLS0gYS9jbGllbnQvd2F5bGFuZC9pYnVzd2F5 bGFuZGltLmMKKysrKyBiL2NsaWVudC93YXlsYW5kL2lidXN3YXlsYW5kaW0uYworQEAgLTEsNyAr MSw3IEBACisgLyogLSotIG1vZGU6IEM7IGMtYmFzaWMtb2Zmc2V0OiA0OyBpbmRlbnQtdGFicy1t b2RlOiBuaWw7IC0qLSAqLworIC8qIHZpbTpzZXQgZXQgc3RzPTQ6ICovCisgLyogaWJ1cyAtIFRo ZSBJbnB1dCBCdXMKKy0gKiBDb3B5cmlnaHQgKEMpIDIwMTktMjAyNSBUYWthbyBGdWppd2FyYSA8 dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KKysgKiBDb3B5cmlnaHQgKEMpIDIwMTktMjAyNiBU YWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KKyAgKiBDb3B5cmlnaHQg KEMpIDIwMTMgSW50ZWwgQ29ycG9yYXRpb24KKyAgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAyNSBS ZWQgSGF0LCBJbmMuCisgICoKK0BAIC0zNSw2ICszNSw3IEBACisgI2luY2x1ZGUgImlucHV0LW1l dGhvZC11bnN0YWJsZS12MS1jbGllbnQtcHJvdG9jb2wuaCIKKyAjaW5jbHVkZSAiaW5wdXQtbWV0 aG9kLXVuc3RhYmxlLXYyLWNsaWVudC1wcm90b2NvbC5oIgorICNpbmNsdWRlICJ0ZXh0LWlucHV0 LXVuc3RhYmxlLXYxLWNsaWVudC1wcm90b2NvbC5oIgorKyNpbmNsdWRlICJ0ZXh0LWlucHV0LXVu c3RhYmxlLXYzLWNsaWVudC1wcm90b2NvbC5oIgorICNpbmNsdWRlICJ2aXJ0dWFsLWtleWJvYXJk LXVuc3RhYmxlLXYxLWNsaWVudC1wcm90b2NvbC5oIgorICNpbmNsdWRlICJpYnVzd2F5bGFuZGlt LmgiCisgCitAQCAtMTI0LDYgKzEyNSw4IEBAIHN0cnVjdCBfSUJ1c1dheWxhbmRJTVByaXZhdGUK KyAgICAgZ3VpbnQgcHJlZWRpdF9tb2RlOworICAgICBJQnVzTW9kaWZpZXJUeXBlIG1vZGlmaWVy czsKKyAgICAgZ2Jvb2xlYW4gaGlkaW5nX3ByZWVkaXRfdGV4dDsKKysgICAgSUJ1c0lucHV0SGlu dHMgaWJ1c19oaW50czsKKysgICAgSUJ1c0lucHV0UHVycG9zZSBpYnVzX3B1cnBvc2U7CisgCisg I2lmIEVOQUJMRV9TVVJST1VORElORworICAgICBJQnVzVGV4dCAqc3Vycm91bmRpbmdfdGV4dDsK K0BAIC04MzQsOSArODM3LDk4IEBAIGNvbnRleHRfcmVzZXRfdjEgKHZvaWQgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKmRhdGEsCisgc3RhdGljIHZvaWQKKyBjb250ZXh0X2NvbnRlbnRf dHlwZV92MSAodm9pZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqZGF0YSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHp3cF9pbnB1dF9tZXRob2RfY29udGV4dF92MSAq Y29udGV4dF92MSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaGludCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMy X3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludHMsCisgICAgICAgICAgICAgICAgICAg ICAgICAgIHVpbnQzMl90ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1cnBvc2UpCisgewor KyAgICBJQnVzV2F5bGFuZElNICp3bGltID0gZGF0YTsKKysgICAgSUJ1c1dheWxhbmRJTVByaXZh dGUgKnByaXY7CisrICAgIElCdXNJbnB1dEhpbnRzIGlidXNfaGludHMgPSBJQlVTX0lOUFVUX0hJ TlRfTk9ORTsKKysgICAgSUJ1c0lucHV0UHVycG9zZSBpYnVzX3B1cnBvc2UgPSBJQlVTX0lOUFVU X1BVUlBPU0VfRlJFRV9GT1JNOworKworKyAgICBnX3JldHVybl9pZl9mYWlsIChJQlVTX0lTX1dB WUxBTkRfSU0gKHdsaW0pKTsKKysgICAgcHJpdiA9IGlidXNfd2F5bGFuZF9pbV9nZXRfaW5zdGFu Y2VfcHJpdmF0ZSAod2xpbSk7CisrCisrICAgIC8qIFpXUF9URVhUX0lOUFVUX1YxX0NPTlRFTlRf SElOVF9QQVNTV09SRCA9PSBISURERU5fVEVYVCAmIFNFTlNJVElWRV9EQVRBCisrICAgICAqIFpX UF9URVhUX0lOUFVUX1YxX0NPTlRFTlRfSElOVF9ERUZBVUxUID09IEFVVE9fQ09NUExFVElPTiAm CisrICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFVVE9f Q09SUkVDVElPTiAmCisrICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEFVVE9fQ0FQSVRBTElaQVRJT04KKysgICAgICovCisrICAgIGlmIChoaW50cyAmIFpX UF9URVhUX0lOUFVUX1YxX0NPTlRFTlRfSElOVF9BVVRPX0NPTVBMRVRJT04pCisrICAgICAgICBp YnVzX2hpbnRzIHw9IElCVVNfSU5QVVRfSElOVF9XT1JEX0NPTVBMRVRJT047CisrICAgIGlmICho aW50cyAmIFpXUF9URVhUX0lOUFVUX1YxX0NPTlRFTlRfSElOVF9BVVRPX0NPUlJFQ1RJT04pCisr ICAgICAgICBpYnVzX2hpbnRzIHw9IElCVVNfSU5QVVRfSElOVF9TUEVMTENIRUNLOworKyAgICBp ZiAoaGludHMgJiBaV1BfVEVYVF9JTlBVVF9WMV9DT05URU5UX0hJTlRfQVVUT19DQVBJVEFMSVpB VElPTikKKysgICAgICAgIGlidXNfaGludHMgfD0gSUJVU19JTlBVVF9ISU5UX1VQUEVSQ0FTRV9T RU5URU5DRVM7CisrICAgIGlmIChoaW50cyAmIFpXUF9URVhUX0lOUFVUX1YxX0NPTlRFTlRfSElO VF9MT1dFUkNBU0UpCisrICAgICAgICBpYnVzX2hpbnRzIHw9IElCVVNfSU5QVVRfSElOVF9MT1dF UkNBU0U7CisrICAgIGlmIChoaW50cyAmIFpXUF9URVhUX0lOUFVUX1YxX0NPTlRFTlRfSElOVF9V UFBFUkNBU0UpCisrICAgICAgICBpYnVzX2hpbnRzIHw9IElCVVNfSU5QVVRfSElOVF9VUFBFUkNB U0VfQ0hBUlM7CisrICAgIGlmIChoaW50cyAmIFpXUF9URVhUX0lOUFVUX1YxX0NPTlRFTlRfSElO VF9USVRMRUNBU0UpCisrICAgICAgICBpYnVzX2hpbnRzIHw9IElCVVNfSU5QVVRfSElOVF9VUFBF UkNBU0VfV09SRFM7CisrICAgIGlmIChoaW50cyAmIFpXUF9URVhUX0lOUFVUX1YxX0NPTlRFTlRf SElOVF9ISURERU5fVEVYVCkKKysgICAgICAgIGlidXNfaGludHMgfD0gSUJVU19JTlBVVF9ISU5U X0hJRERFTl9URVhUOworKyAgICBpZiAoaGludHMgJiBaV1BfVEVYVF9JTlBVVF9WMV9DT05URU5U X0hJTlRfU0VOU0lUSVZFX0RBVEEpCisrICAgICAgICBpYnVzX2hpbnRzIHw9IElCVVNfSU5QVVRf SElOVF9QUklWQVRFOworKyAgICBpZiAoaGludHMgJiBaV1BfVEVYVF9JTlBVVF9WMV9DT05URU5U X0hJTlRfTEFUSU4pCisrICAgICAgICBpYnVzX2hpbnRzIHw9IElCVVNfSU5QVVRfSElOVF9MQVRJ TjsKKysgICAgaWYgKGhpbnRzICYgWldQX1RFWFRfSU5QVVRfVjFfQ09OVEVOVF9ISU5UX01VTFRJ TElORSkKKysgICAgICAgIGlidXNfaGludHMgfD0gSUJVU19JTlBVVF9ISU5UX01VTFRJTElORTsK KysKKysgICAgc3dpdGNoIChwdXJwb3NlKSB7CisrICAgIGNhc2UgWldQX1RFWFRfSU5QVVRfVjFf Q09OVEVOVF9QVVJQT1NFX05PUk1BTDoKKysgICAgICAgIGlidXNfcHVycG9zZSA9IElCVVNfSU5Q VVRfUFVSUE9TRV9GUkVFX0ZPUk07CisrICAgICAgICBicmVhazsKKysgICAgY2FzZSBaV1BfVEVY VF9JTlBVVF9WMV9DT05URU5UX1BVUlBPU0VfQUxQSEE6CisrICAgICAgICBpYnVzX3B1cnBvc2Ug PSBJQlVTX0lOUFVUX1BVUlBPU0VfQUxQSEE7CisrICAgICAgICBicmVhazsKKysgICAgY2FzZSBa V1BfVEVYVF9JTlBVVF9WMV9DT05URU5UX1BVUlBPU0VfRElHSVRTOgorKyAgICAgICAgaWJ1c19w dXJwb3NlID0gSUJVU19JTlBVVF9QVVJQT1NFX0RJR0lUUzsKKysgICAgICAgIGJyZWFrOworKyAg ICBjYXNlIFpXUF9URVhUX0lOUFVUX1YxX0NPTlRFTlRfUFVSUE9TRV9OVU1CRVI6CisrICAgICAg ICBpYnVzX3B1cnBvc2UgPSBJQlVTX0lOUFVUX1BVUlBPU0VfTlVNQkVSOworKyAgICAgICAgYnJl YWs7CisrICAgIGNhc2UgWldQX1RFWFRfSU5QVVRfVjFfQ09OVEVOVF9QVVJQT1NFX1BIT05FOgor KyAgICAgICAgaWJ1c19wdXJwb3NlID0gSUJVU19JTlBVVF9QVVJQT1NFX1BIT05FOworKyAgICAg ICAgYnJlYWs7CisrICAgIGNhc2UgWldQX1RFWFRfSU5QVVRfVjFfQ09OVEVOVF9QVVJQT1NFX1VS TDoKKysgICAgICAgIGlidXNfcHVycG9zZSA9IElCVVNfSU5QVVRfUFVSUE9TRV9VUkw7CisrICAg ICAgICBicmVhazsKKysgICAgY2FzZSBaV1BfVEVYVF9JTlBVVF9WMV9DT05URU5UX1BVUlBPU0Vf RU1BSUw6CisrICAgICAgICBpYnVzX3B1cnBvc2UgPSBJQlVTX0lOUFVUX1BVUlBPU0VfRU1BSUw7 CisrICAgICAgICBicmVhazsKKysgICAgY2FzZSBaV1BfVEVYVF9JTlBVVF9WMV9DT05URU5UX1BV UlBPU0VfTkFNRToKKysgICAgICAgIGlidXNfcHVycG9zZSA9IElCVVNfSU5QVVRfUFVSUE9TRV9O QU1FOworKyAgICAgICAgYnJlYWs7CisrICAgIGNhc2UgWldQX1RFWFRfSU5QVVRfVjFfQ09OVEVO VF9QVVJQT1NFX1BBU1NXT1JEOgorKyAgICAgICAgaWJ1c19wdXJwb3NlID0gSUJVU19JTlBVVF9Q VVJQT1NFX1BBU1NXT1JEOworKyAgICAgICAgYnJlYWs7CisrICAgIGNhc2UgWldQX1RFWFRfSU5Q VVRfVjFfQ09OVEVOVF9QVVJQT1NFX0RBVEU6CisrICAgICAgICBpYnVzX3B1cnBvc2UgPSBJQlVT X0lOUFVUX1BVUlBPU0VfREFURTsKKysgICAgICAgIGJyZWFrOworKyAgICBjYXNlIFpXUF9URVhU X0lOUFVUX1YxX0NPTlRFTlRfUFVSUE9TRV9USU1FOgorKyAgICAgICAgaWJ1c19wdXJwb3NlID0g SUJVU19JTlBVVF9QVVJQT1NFX1RJTUU7CisrICAgICAgICBicmVhazsKKysgICAgY2FzZSBaV1Bf VEVYVF9JTlBVVF9WMV9DT05URU5UX1BVUlBPU0VfREFURVRJTUU6CisrICAgICAgICBpYnVzX3B1 cnBvc2UgPSBJQlVTX0lOUFVUX1BVUlBPU0VfREFURVRJTUU7CisrICAgICAgICBicmVhazsKKysg ICAgY2FzZSBaV1BfVEVYVF9JTlBVVF9WMV9DT05URU5UX1BVUlBPU0VfVEVSTUlOQUw6CisrICAg ICAgICBpYnVzX3B1cnBvc2UgPSBJQlVTX0lOUFVUX1BVUlBPU0VfVEVSTUlOQUw7CisrICAgICAg ICBicmVhazsKKysgICAgZGVmYXVsdDoKKysgICAgICAgIGdfd2FybmluZyAoIldyb25nIHB1cnBv c2UgaW4gdGhlIGlucHV0LW1ldGhvZCBjb250ZXh0OiAlZCIsIHB1cnBvc2UpOworKyAgICB9Cisr CisrICAgIHByaXYtPmlidXNfaGludHMgPSBpYnVzX2hpbnRzOworKyAgICBwcml2LT5pYnVzX3B1 cnBvc2UgPSBpYnVzX3B1cnBvc2U7CisrCisrICAgIC8qIFVwZGF0ZSBwcml2LT5pYnVzX1toaW50 c3xwdXJwb3NlXSBhZnRlciBfY3JlYXRlX2lucHV0X2NvbnRleHRfZG9uZSgpCisrICAgICAqIGlz IGNhbGxlZC4KKysgICAgICovCisrICAgIGlmIChHX1VOTElLRUxZIChwcml2LT5pYnVzY29udGV4 dCkpIHsKKysgICAgICAgIGlidXNfaW5wdXRfY29udGV4dF9zZXRfY29udGVudF90eXBlIChwcml2 LT5pYnVzY29udGV4dCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpYnVzX3B1cnBvc2UsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWJ1c19oaW50cyk7CisrICAgIH0KKyB9CisgCisgCitAQCAtMTg2Myw2ICsxOTU1 LDkgQEAgX2NyZWF0ZV9pbnB1dF9jb250ZXh0X2RvbmUgKEdPYmplY3QgICAgICAqb2JqZWN0LAor ICAgICAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGdfZGJ1 c19wcm94eV9nZXRfb2JqZWN0X3BhdGggKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBHX0RCVVNfUFJPWFkgKHByaXYtPmlidXNjb250ZXh0KSkpOworKyAgICAgICAgaWJ1c19pbnB1 dF9jb250ZXh0X3NldF9jb250ZW50X3R5cGUgKHByaXYtPmlidXNjb250ZXh0LAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaXYtPmlidXNfcHVycG9zZSwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcml2LT5pYnVz X2hpbnRzKTsKKyAgICAgfQorIH0KKyAKK0BAIC0xOTA5LDYgKzIwMDQsOSBAQCBpbnB1dF9tZXRo b2RfYWN0aXZhdGUgKHZvaWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKmRhdGEsCisg ICAgICAgICBnX2Fzc2VydF9ub3RfcmVhY2hlZCAoKTsKKyAgICAgfQorIAorKyAgICBwcml2LT5p YnVzX2hpbnRzID0gSUJVU19JTlBVVF9ISU5UX05PTkU7CisrICAgIHByaXYtPmlidXNfcHVycG9z ZSA9IElCVVNfSU5QVVRfUFVSUE9TRV9GUkVFX0ZPUk07CisrCisgICAgIGdfYXNzZXJ0ICghcHJp di0+aWJ1c2NvbnRleHQpOworIAorICAgICBwcml2LT5jYW5jZWxsYWJsZSA9IGdfY2FuY2VsbGFi bGVfbmV3ICgpOworQEAgLTIwNzksOSArMjE3Nyw5NiBAQCBpbnB1dF9tZXRob2RfdGV4dF9jaGFu Z2VfY2F1c2VfdjIgKHZvaWQgICAgICAgICAgICAgICAgICAgICAgICpkYXRhLAorIHN0YXRpYyB2 b2lkCisgaW5wdXRfbWV0aG9kX2NvbnRlbnRfdHlwZV92MiAodm9pZCAgICAgICAgICAgICAgICAg ICAgICAgKmRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHp3cF9p bnB1dF9tZXRob2RfdjIgKmlucHV0X21ldGhvZF92MiwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1aW50MzJfdCAgICAgICAgICAgICAgICAgICAgaGludCwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1aW50MzJfdCAgICAgICAgICAgICAgICAgICAgaGludHMsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgICAgICAgICAgICAgICAgICAgIHB1 cnBvc2UpCisgeworKyAgICBJQnVzV2F5bGFuZElNICp3bGltID0gZGF0YTsKKysgICAgSUJ1c1dh eWxhbmRJTVByaXZhdGUgKnByaXY7CisrICAgIElCdXNJbnB1dEhpbnRzIGlidXNfaGludHMgPSBJ QlVTX0lOUFVUX0hJTlRfTk9ORTsKKysgICAgSUJ1c0lucHV0UHVycG9zZSBpYnVzX3B1cnBvc2Ug PSBJQlVTX0lOUFVUX1BVUlBPU0VfRlJFRV9GT1JNOworKworKyAgICBnX3JldHVybl9pZl9mYWls IChJQlVTX0lTX1dBWUxBTkRfSU0gKHdsaW0pKTsKKysgICAgcHJpdiA9IGlidXNfd2F5bGFuZF9p bV9nZXRfaW5zdGFuY2VfcHJpdmF0ZSAod2xpbSk7CisrCisrICAgIGlmIChoaW50cyAmIFpXUF9U RVhUX0lOUFVUX1YzX0NPTlRFTlRfSElOVF9DT01QTEVUSU9OKQorKyAgICAgICAgaWJ1c19oaW50 cyB8PSBJQlVTX0lOUFVUX0hJTlRfV09SRF9DT01QTEVUSU9OOworKyAgICBpZiAoaGludHMgJiBa V1BfVEVYVF9JTlBVVF9WM19DT05URU5UX0hJTlRfU1BFTExDSEVDSykKKysgICAgICAgIGlidXNf aGludHMgfD0gSUJVU19JTlBVVF9ISU5UX1NQRUxMQ0hFQ0s7CisrICAgIGlmIChoaW50cyAmIFpX UF9URVhUX0lOUFVUX1YzX0NPTlRFTlRfSElOVF9BVVRPX0NBUElUQUxJWkFUSU9OKQorKyAgICAg ICAgaWJ1c19oaW50cyB8PSBJQlVTX0lOUFVUX0hJTlRfVVBQRVJDQVNFX1NFTlRFTkNFUzsKKysg ICAgaWYgKGhpbnRzICYgWldQX1RFWFRfSU5QVVRfVjNfQ09OVEVOVF9ISU5UX0xPV0VSQ0FTRSkK KysgICAgICAgIGlidXNfaGludHMgfD0gSUJVU19JTlBVVF9ISU5UX0xPV0VSQ0FTRTsKKysgICAg aWYgKGhpbnRzICYgWldQX1RFWFRfSU5QVVRfVjNfQ09OVEVOVF9ISU5UX1VQUEVSQ0FTRSkKKysg ICAgICAgIGlidXNfaGludHMgfD0gSUJVU19JTlBVVF9ISU5UX1VQUEVSQ0FTRV9DSEFSUzsKKysg ICAgaWYgKGhpbnRzICYgWldQX1RFWFRfSU5QVVRfVjNfQ09OVEVOVF9ISU5UX1RJVExFQ0FTRSkK KysgICAgICAgIGlidXNfaGludHMgfD0gSUJVU19JTlBVVF9ISU5UX1VQUEVSQ0FTRV9XT1JEUzsK KysgICAgaWYgKGhpbnRzICYgWldQX1RFWFRfSU5QVVRfVjNfQ09OVEVOVF9ISU5UX0hJRERFTl9U RVhUKQorKyAgICAgICAgaWJ1c19oaW50cyB8PSBJQlVTX0lOUFVUX0hJTlRfSElEREVOX1RFWFQ7 CisrICAgIGlmIChoaW50cyAmIFpXUF9URVhUX0lOUFVUX1YzX0NPTlRFTlRfSElOVF9TRU5TSVRJ VkVfREFUQSkKKysgICAgICAgIGlidXNfaGludHMgfD0gSUJVU19JTlBVVF9ISU5UX1BSSVZBVEU7 CisrICAgIGlmIChoaW50cyAmIFpXUF9URVhUX0lOUFVUX1YzX0NPTlRFTlRfSElOVF9MQVRJTikK KysgICAgICAgIGlidXNfaGludHMgfD0gSUJVU19JTlBVVF9ISU5UX0xBVElOOworKyAgICBpZiAo aGludHMgJiBaV1BfVEVYVF9JTlBVVF9WM19DT05URU5UX0hJTlRfTVVMVElMSU5FKQorKyAgICAg ICAgaWJ1c19oaW50cyB8PSBJQlVTX0lOUFVUX0hJTlRfTVVMVElMSU5FOworKworKyAgICBzd2l0 Y2ggKHB1cnBvc2UpIHsKKysgICAgY2FzZSBaV1BfVEVYVF9JTlBVVF9WM19DT05URU5UX1BVUlBP U0VfTk9STUFMOgorKyAgICAgICAgaWJ1c19wdXJwb3NlID0gSUJVU19JTlBVVF9QVVJQT1NFX0ZS RUVfRk9STTsKKysgICAgICAgIGJyZWFrOworKyAgICBjYXNlIFpXUF9URVhUX0lOUFVUX1YzX0NP TlRFTlRfUFVSUE9TRV9BTFBIQToKKysgICAgICAgIGlidXNfcHVycG9zZSA9IElCVVNfSU5QVVRf UFVSUE9TRV9BTFBIQTsKKysgICAgICAgIGJyZWFrOworKyAgICBjYXNlIFpXUF9URVhUX0lOUFVU X1YzX0NPTlRFTlRfUFVSUE9TRV9ESUdJVFM6CisrICAgICAgICBpYnVzX3B1cnBvc2UgPSBJQlVT X0lOUFVUX1BVUlBPU0VfRElHSVRTOworKyAgICAgICAgYnJlYWs7CisrICAgIGNhc2UgWldQX1RF WFRfSU5QVVRfVjNfQ09OVEVOVF9QVVJQT1NFX05VTUJFUjoKKysgICAgICAgIGlidXNfcHVycG9z ZSA9IElCVVNfSU5QVVRfUFVSUE9TRV9OVU1CRVI7CisrICAgICAgICBicmVhazsKKysgICAgY2Fz ZSBaV1BfVEVYVF9JTlBVVF9WM19DT05URU5UX1BVUlBPU0VfUEhPTkU6CisrICAgICAgICBpYnVz X3B1cnBvc2UgPSBJQlVTX0lOUFVUX1BVUlBPU0VfUEhPTkU7CisrICAgICAgICBicmVhazsKKysg ICAgY2FzZSBaV1BfVEVYVF9JTlBVVF9WM19DT05URU5UX1BVUlBPU0VfVVJMOgorKyAgICAgICAg aWJ1c19wdXJwb3NlID0gSUJVU19JTlBVVF9QVVJQT1NFX1VSTDsKKysgICAgICAgIGJyZWFrOwor KyAgICBjYXNlIFpXUF9URVhUX0lOUFVUX1YzX0NPTlRFTlRfUFVSUE9TRV9FTUFJTDoKKysgICAg ICAgIGlidXNfcHVycG9zZSA9IElCVVNfSU5QVVRfUFVSUE9TRV9FTUFJTDsKKysgICAgICAgIGJy ZWFrOworKyAgICBjYXNlIFpXUF9URVhUX0lOUFVUX1YzX0NPTlRFTlRfUFVSUE9TRV9OQU1FOgor KyAgICAgICAgaWJ1c19wdXJwb3NlID0gSUJVU19JTlBVVF9QVVJQT1NFX05BTUU7CisrICAgICAg ICBicmVhazsKKysgICAgY2FzZSBaV1BfVEVYVF9JTlBVVF9WM19DT05URU5UX1BVUlBPU0VfUEFT U1dPUkQ6CisrICAgICAgICBpYnVzX3B1cnBvc2UgPSBJQlVTX0lOUFVUX1BVUlBPU0VfUEFTU1dP UkQ7CisrICAgICAgICBicmVhazsKKysgICAgY2FzZSBaV1BfVEVYVF9JTlBVVF9WM19DT05URU5U X1BVUlBPU0VfUElOOgorKyAgICAgICAgaWJ1c19wdXJwb3NlID0gSUJVU19JTlBVVF9QVVJQT1NF X1BJTjsKKysgICAgICAgIGJyZWFrOworKyAgICBjYXNlIFpXUF9URVhUX0lOUFVUX1YzX0NPTlRF TlRfUFVSUE9TRV9EQVRFOgorKyAgICAgICAgaWJ1c19wdXJwb3NlID0gSUJVU19JTlBVVF9QVVJQ T1NFX0RBVEU7CisrICAgICAgICBicmVhazsKKysgICAgY2FzZSBaV1BfVEVYVF9JTlBVVF9WM19D T05URU5UX1BVUlBPU0VfVElNRToKKysgICAgICAgIGlidXNfcHVycG9zZSA9IElCVVNfSU5QVVRf UFVSUE9TRV9USU1FOworKyAgICAgICAgYnJlYWs7CisrICAgIGNhc2UgWldQX1RFWFRfSU5QVVRf VjNfQ09OVEVOVF9QVVJQT1NFX0RBVEVUSU1FOgorKyAgICAgICAgaWJ1c19wdXJwb3NlID0gSUJV U19JTlBVVF9QVVJQT1NFX0RBVEVUSU1FOworKyAgICAgICAgYnJlYWs7CisrICAgIGNhc2UgWldQ X1RFWFRfSU5QVVRfVjNfQ09OVEVOVF9QVVJQT1NFX1RFUk1JTkFMOgorKyAgICAgICAgaWJ1c19w dXJwb3NlID0gSUJVU19JTlBVVF9QVVJQT1NFX1RFUk1JTkFMOworKyAgICAgICAgYnJlYWs7Cisr ICAgIGRlZmF1bHQ6CisrICAgICAgICBnX3dhcm5pbmcgKCJXcm9uZyBwdXJwb3NlIGluIHRoZSBp bnB1dC1tZXRob2QgY29udGV4dDogJWQiLCBwdXJwb3NlKTsKKysgICAgfQorKworKyAgICBwcml2 LT5pYnVzX2hpbnRzID0gaWJ1c19oaW50czsKKysgICAgcHJpdi0+aWJ1c19wdXJwb3NlID0gaWJ1 c19wdXJwb3NlOworKworKyAgICAvKiBVcGRhdGUgcHJpdi0+aWJ1c19baGludHN8cHVycG9zZV0g YWZ0ZXIgX2NyZWF0ZV9pbnB1dF9jb250ZXh0X2RvbmUoKQorKyAgICAgKiBpcyBjYWxsZWQuCisr ICAgICAqLworKyAgICBpZiAoR19VTkxJS0VMWSAocHJpdi0+aWJ1c2NvbnRleHQpKSB7CisrICAg ICAgICBpYnVzX2lucHV0X2NvbnRleHRfc2V0X2NvbnRlbnRfdHlwZSAocHJpdi0+aWJ1c2NvbnRl eHQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWJ1c19w dXJwb3NlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGli dXNfaGludHMpOworKyAgICB9CisgfQorIAorIAorLS0gCisyLjUyLjAKKwoKZGlmZiAtLWdpdCBh L2lidXMuc3BlYyBiL2lidXMuc3BlYwppbmRleCA5MGI2MTNiLi4zYmQ2MDY4IDEwMDY0NAotLS0g YS9pYnVzLnNwZWMKKysrIGIvaWJ1cy5zcGVjCkBAIC01Myw3ICs1Myw3IEBACiBOYW1lOiAgICAg ICAgICAgaWJ1cwogVmVyc2lvbjogICAgICAgIDEuNS4zNH5iZXRhMQogIyBodHRwczovL2dpdGh1 Yi5jb20vZmVkb3JhLWluZnJhL3JwbWF1dG9zcGVjL2lzc3Vlcy8xMDEKLVJlbGVhc2U6ICAgICAg ICAxJXs/ZGlzdH0KK1JlbGVhc2U6ICAgICAgICAyJXs/ZGlzdH0KIFN1bW1hcnk6ICAgICAgICBJ bnRlbGxpZ2VudCBJbnB1dCBCdXMgZm9yIExpbnV4IE9TCiBMaWNlbnNlOiAgICAgICAgTEdQTC0y LjEtb3ItbGF0ZXIKIFVSTDogICAgICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vaWJ1cy8lbmFt ZS93aWtpCkBAIC02Miw2ICs2Miw3IEBAIFNvdXJjZTE6ICAgICAgICBodHRwczovL2dpdGh1Yi5j b20vaWJ1cy8lbmFtZS9yZWxlYXNlcy9kb3dubG9hZC8le3NvdXJjZV92ZXJzaW9uCiBTb3VyY2Uy OiAgICAgICAgJXtuYW1lfS14aW5wdXQKIFNvdXJjZTM6ICAgICAgICAle25hbWV9LmNvbmYuNQog IyBQYXRjaDA6ICAgICAgICAgJSV7bmFtZX0tSEVBRC5wYXRjaAorUGF0Y2gwOiAgICAgICAgICV7 bmFtZX0tSEVBRC5wYXRjaAogIyBVbmRlciB0ZXN0aW5nICMxMzQ5MTQ4ICMxMzg1MzQ5ICMxMzUw MjkxICMxNDA2Njk5ICMxNDMyMjUyICMxNjAxNTc3CiBQYXRjaDE6ICAgICAgICAgJXtuYW1lfS0x Mzg1MzQ5LXNlZ3YtYnVzLXByb3h5LnBhdGNoCiAKQEAgLTU3NCw2ICs1NzUsOSBAQCBkY29uZiB1 cGRhdGUgfHwgOgogJXtfZGF0YWRpcn0vaW5zdGFsbGVkLXRlc3RzL2lidXMKIAogJWNoYW5nZWxv ZworKiBUaHUgRmViIDA1IDIwMjYgVGFrYW8gRnVqaXdhcmEgPHRmdWppd2FyQHJlZGhhdC5jb20+ IC0gMS41LjM0fmJldGExLTIKKy0gU3VwcG9ydCBpbnB1dCBwdXJwb3NlIGFuZCBoaXRzIHRvIGli dXMtd2F5bGFuZAorCiAqIFdlZCBGZWIgMDQgMjAyNiBUYWthbyBGdWppd2FyYSA8dGZ1aml3YXJA cmVkaGF0LmNvbT4gLSAxLjUuMzR+YmV0YTEtMQogLSBBZGQgSUJVU19JTlBVVF9ISU5UX0hJRERF Tl9URVhUCiAtIFNob3cgRW1vamkgYW5ub3RhdGlvbnMgaW4gR05PTUUK