ZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2V2YWwudHh0IGIvcnVudGltZS9kb2MvZXZhbC50eHQKaW5kZXggNmMzMmYxNi4uZmE1MWMyYSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZXZhbC50eHQKKysrIGIvcnVudGltZS9kb2MvZXZhbC50eHQKQEAgLTEsNCArMSw0IEBACi0qZXZhbC50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgU2VwIDI1CisqZXZhbC50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgU2VwIDI5CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xNjI2LDcgKzE2MjYsOCBAQAogc29ydCgge2xpc3R9IFssIHtmdW5jfV0pCUxpc3QJc29ydCB7bGlzdH0sIHVzaW5nIHtmdW5jfSB0byBjb21wYXJlCiBzb3VuZGZvbGQoIHt3b3JkfSkJCVN0cmluZwlzb3VuZC1mb2xkIHt3b3JkfQogc3BlbGxiYWR3b3JkKCkJCQlTdHJpbmcJYmFkbHkgc3BlbGxlZCB3b3JkIGF0IGN1cnNvcgotc3BlbGxzdWdnZXN0KCB7d29yZH0gWywge21heH1dKQlMaXN0CXNwZWxsaW5nIHN1Z2dlc3Rpb25zCitzcGVsbHN1Z2dlc3QoIHt3b3JkfSBbLCB7bWF4fSBbLCB7Y2FwaXRhbH1dXSkKKwkJCQlMaXN0CXNwZWxsaW5nIHN1Z2dlc3Rpb25zCiBzcGxpdCgge2V4cHJ9IFssIHtwYXR9IFssIHtrZWVwZW1wdHl9XV0pCiAJCQkJTGlzdAltYWtlIExpc3QgZnJvbSB7cGF0fSBzZXBhcmF0ZWQge2V4cHJ9CiBzdHJmdGltZSgge2Zvcm1hdH1bLCB7dGltZX1dKQlTdHJpbmcJdGltZSBpbiBzcGVjaWZpZWQgZm9ybWF0CkBAIC00MDc2LDE5ICs0MDc3LDIzIEBACiAJCXVzZWQuCiAKIAkJCQkJCQkqc3BlbGxzdWdnZXN0KCkqCi1zcGVsbHN1Z2dlc3Qoe3dvcmR9IFssIHttYXh9XSkKK3NwZWxsc3VnZ2VzdCh7d29yZH0gWywge21heH0gWywge2NhcGl0YWx9XV0pCiAJCVJldHVybiBhIExpc3Qgd2l0aCBzcGVsbGluZyBzdWdnZXN0aW9ucyB0byByZXBsYWNlIHt3b3JkfS4KIAkJV2hlbiB7bWF4fSBpcyBnaXZlbiB1cCB0byB0aGlzIG51bWJlciBvZiBzdWdnZXN0aW9ucyBhcmUKIAkJcmV0dXJuZWQuICBPdGhlcndpc2UgdXAgdG8gMjUgc3VnZ2VzdGlvbnMgYXJlIHJldHVybmVkLgogCisJCVdoZW4gdGhlIHtjYXBpdGFsfSBhcmd1bWVudCBpcyBnaXZlbiBhbmQgaXQncyBub24temVybyBvbmx5CisJCXN1Z2dlc3Rpb25zIHdpdGggYSBsZWFkaW5nIGNhcGl0YWwgd2lsbCBiZSBnaXZlbi4gIFVzZSB0aGlzCisJCWFmdGVyIGEgbWF0Y2ggd2l0aCAnc3BlbGxjYXBjaGVjaycuCisKIAkJe3dvcmR9IGNhbiBiZSBhIGJhZGx5IHNwZWxsZWQgd29yZCBmb2xsb3dlZCBieSBvdGhlciB0ZXh0LgogCQlUaGlzIGFsbG93cyBmb3Igam9pbmluZyB0d28gd29yZHMgdGhhdCB3ZXJlIHNwbGl0LiAgVGhlCiAJCXN1Z2dlc3Rpb25zIGFsc28gaW5jbHVkZSB0aGUgZm9sbG93aW5nIHRleHQsIHRodXMgeW91IGNhbgogCQlyZXBsYWNlIGEgbGluZS4KIAogCQl7d29yZH0gbWF5IGFsc28gYmUgYSBnb29kIHdvcmQuICBTaW1pbGFyIHdvcmRzIHdpbGwgdGhlbiBiZQotCQlyZXR1cm5lZC4gIHt3b3JkfSBpdHNlbGYgaXMgYWxzbyBpbmNsdWRlZCwgbW9zdCBsaWtlbHkgYXMgdGhlCi0JCWZpcnN0IGVudHJ5LCB0aHVzIHRoaXMgY2FuIGJlIHVzZWQgdG8gY2hlY2sgc3BlbGxpbmcuCisJCXJldHVybmVkLiAge3dvcmR9IGl0c2VsZiBpcyBub3QgaW5jbHVkZWQgaW4gdGhlIHN1Z2dlc3Rpb25zLAorCQlhbHRob3VnaCBpdCBtYXkgYXBwZWFyIGNhcGl0YWxpemVkLgogCiAJCVRoZSBzcGVsbGluZyBpbmZvcm1hdGlvbiBmb3IgdGhlIGN1cnJlbnQgd2luZG93IGlzIHVzZWQuICBUaGUKIAkJJ3NwZWxsJyBvcHRpb24gbXVzdCBiZSBzZXQgYW5kIHRoZSB2YWx1ZXMgb2YgJ3NwZWxsbGFuZycgYW5kCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2JnL2JnX0JHLmRpZmYgYi9ydW50aW1lL3NwZWxsL2JnL2JnX0JHLmRpZmYKaW5kZXggM2Q5YmI5OC4uZTNjY2JiNiAxMDA2NDQKLS0tIGEvcnVudGltZS9zcGVsbC9iZy9iZ19CRy5kaWZmCisrKyBiL3J1bnRpbWUvc3BlbGwvYmcvYmdfQkcuZGlmZgpAQCAtMSw1ICsxLDUgQEAKICoqKiBiZ19CRy5vcmlnLmFmZglTdW4gQXVnIDI4IDIxOjM0OjQ0IDIwMDUKLS0tLSBiZ19CRy5hZmYJU3VuIEF1ZyAyOCAyMTozNDo0NCAyMDA1CistLS0gYmdfQkcuYWZmCVRodSBTZXAgMjkgMjE6NTk6MzEgMjAwNQogKioqKioqKioqKioqKioqCiAqKiogMSwyICoqKioKICEgU0VUIG1pY3Jvc29mdC1jcDEyNTEKQEAgLTMzLDEwICszMywxNTQgQEAKICAgTUFQIFDQCiAtIE1BUCBZ0wogICBNQVAgWNUKLS0tLSAxNzA2LDE3MTEgLS0tLQorLS0tIDE3MDYsMTg1NSAtLS0tCiAgIE1BUCBQ0AogICBNQVAgWNUKICsgCiArIFJFUCAyCiArIFJFUCBZINMKICsgUkVQINMgWQorKyAKKysgIyAgIEJ1bGdhcmlhbiBwaG9uZXRpYyB0cmFuc2Zvcm1hdGlvbiBydWxlcyBmb3IgdXNlIHdpdGggQXNwZWxsCisrICMgICBDb3B5cmlnaHQgKEMpIDIwMDMgQW50b24gWmlub3ZpZXYKKysgIworKyAjICAgVGhpcyBzb2Z0d2FyZSBtYXkgYmUgdXNlZCBhbmQgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgdGVybXMgYXMKKysgIyAgIHRoZSBvdGhlciBwYXJ0cyBvZiB0aGUgYmdvZmZpY2UgcHJvamVjdC4KKysgIworKyAjICAgQ2hhbmdlbG9nOgorKyAjCisrICMgICAxOS5JWC4yMDAzICBBbnRvbiBaaW5vdmlldiA8emlub3ZpZXZAZGViaWFuLm9yZz4KKysgIyAgICAgICAgICAgICAgIEluaXRpYWwgcmVsZWFzZQorKyAKKysgU0FMIHZlcnNpb24gICAgICAgICAxCisrIFNBTCBmb2xsb3d1cCAgICAgICAgMAorKyBTQUwgY29sbGFwc2VfcmVzdWx0IDEKKysgCisrIFNBTCDAICAgICAgICAgICAgICAgICAgICAgICAgICAg2gorKyBTQUwg2iAgICAgICAgICAgICAgICAgICAgICAgICAgINoKKysgU0FMIM4gICAgICAgICAgICAgICAgICAgICAgICAgICDTCisrIFNBTCDTICAgICAgICAgICAgICAgICAgICAgICAgICAg0worKyBTQUwgxSAgICAgICAgICAgICAgICAgICAgICAgICAgIMgKKysgU0FMIMggICAgICAgICAgICAgICAgICAgICAgICAgICDICisrIFNBTCDeICAgICAgICAgICAgICAgICAgICAgICAgICAg0worKyBTQUwg3yAgICAgICAgICAgICAgICAgICAgICAgICAgINoKKysgU0FMIMkgICAgICAgICAgICAgICAgICAgICAgICAgICBfCisrIFNBTCDcICAgICAgICAgICAgICAgICAgICAgICAgICAgXworKyBTQUwgwdHKICAgICAgICAgICAgICAgICAgICAgICAgIM/KCisrIFNBTCDBxCjBwsPExsfKy8zNz9DR0sPV1tfY2SktICAgzworKyBTQUwgwVQowcLDxMbHysvMzc/Q0dLD1dbX2NkpLSAgIM8KKysgU0FMIMHEJCAgICAgICAgICAgICAgICAgICAgICAgICDPCisrIFNBTCDBVCQgICAgICAgICAgICAgICAgICAgICAgICAgzworKyBTQUwgwSAgICAgICAgICAgICAgICAgICAgICAgICAgIM8KKysgU0FMIMLRyiAgICAgICAgICAgICAgICAgICAgICAgICDUygorKyBTQUwgwsQowcLDxMbHysvMzc/Q0dLD1dbX2NkpLSAgINQKKysgU0FMIMJUKMHCw8TGx8rLzM3P0NHSw9XW19jZKS0gICDUCisrIFNBTCDCxCQgICAgICAgICAgICAgICAgICAgICAgICAg1AorKyBTQUwgwlQkICAgICAgICAgICAgICAgICAgICAgICAgINQKKysgU0FMIMIgICAgICAgICAgICAgICAgICAgICAgICAgICDUCisrIFNBTCDD0cogICAgICAgICAgICAgICAgICAgICAgICAgygorKyBTQUwgw8QowcLDxMbHysvMzc/Q0dLD1dbX2NkpLSAgIMoKKysgU0FMIMNUKMHCw8TGx8rLzM3P0NHSw9XW19jZKS0gICDKCisrIFNBTCDDxCQgICAgICAgICAgICAgICAgICAgICAgICAgygorKyBTQUwgw1QkICAgICAgICAgICAgICAgICAgICAgICAgIMoKKysgU0FMIMMgICAgICAgICAgICAgICAgICAgICAgICAgICDKCisrIFNBTCDE0co8ICAgICAgICAgICAgICAgICAgICAgICAg0soKKysgU0FMIMTEKMHCw8TGx8rLzM3P0NHSw9XW19jZKS0gICDSCisrIFNBTCDEVCjBwsPExsfKy8zNz9DR0sPV1tfY2SktICAg0gorKyBTQUwgxMQkICAgICAgICAgICAgICAgICAgICAgICAgINIKKysgU0FMIMRUJCAgICAgICAgICAgICAgICAgICAgICAgICDSCisrIFNBTCDEICAgICAgICAgICAgICAgICAgICAgICAgICAg0gorKyBTQUwgxtHKICAgICAgICAgICAgICAgICAgICAgICAgINjKCisrIFNBTCDGxCjBwsPExsfKy8zNz9DR0sPV1tfY2SktICAg2AorKyBTQUwgxlQowcLDxMbHysvMzc/Q0dLD1dbX2NkpLSAgINgKKysgU0FMIMbEJCAgICAgICAgICAgICAgICAgICAgICAgICDYCisrIFNBTCDGVCQgICAgICAgICAgICAgICAgICAgICAgICAg2AorKyBTQUwgxiAgICAgICAgICAgICAgICAgICAgICAgICAgINgKKysgU0FMIMfRyiAgICAgICAgICAgICAgICAgICAgICAgICDRygorKyBTQUwgx8QowcLDxMbHysvMzc/Q0dLD1dbX2NkpLSAgINEKKysgU0FMIMdUKMHCw8TGx8rLzM3P0NHSw9XW19jZKS0gICDRCisrIFNBTCDHxCQgICAgICAgICAgICAgICAgICAgICAgICAg0QorKyBTQUwgx1QkICAgICAgICAgICAgICAgICAgICAgICAgINEKKysgU0FMIMcgICAgICAgICAgICAgICAgICAgICAgICAgICDRCisrIFNBTCDK0cogICAgICAgICAgICAgICAgICAgICAgICAgygorKyBTQUwgysQowcLDxMbHysvMzc/Q0dLD1dbX2NkpLSAgIMoKKysgU0FMIMpUKMHCw8TGx8rLzM3P0NHSw9XW19jZKS0gICDKCisrIFNBTCDKxCQgICAgICAgICAgICAgICAgICAgICAgICAgygorKyBTQUwgylQkICAgICAgICAgICAgICAgICAgICAgICAgIMoKKysgU0FMIMogICAgICAgICAgICAgICAgICAgICAgICAgICDKCisrIFNBTCDL0cogICAgICAgICAgICAgICAgICAgICAgICAgy8oKKysgU0FMIMvEKMHCw8TGx8rLzM3P0NHSw9XW19jZKS0gICDLCisrIFNBTCDLVCjBwsPExsfKy8zNz9DR0sPV1tfY2SktICAgyworKyBTQUwgy8QkICAgICAgICAgICAgICAgICAgICAgICAgIMsKKysgU0FMIMtUJCAgICAgICAgICAgICAgICAgICAgICAgICDLCisrIFNBTCDLICAgICAgICAgICAgICAgICAgICAgICAgICAgyworKyBTQUwgzNHKICAgICAgICAgICAgICAgICAgICAgICAgIMzKCisrIFNBTCDMxCjBwsPExsfKy8zNz9DR0sPV1tfY2SktICAgzAorKyBTQUwgzFQowcLDxMbHysvMzc/Q0dLD1dbX2NkpLSAgIMwKKysgU0FMIMzEJCAgICAgICAgICAgICAgICAgICAgICAgICDMCisrIFNBTCDMVCQgICAgICAgICAgICAgICAgICAgICAgICAgzAorKyBTQUwgzCAgICAgICAgICAgICAgICAgICAgICAgICAgIMwKKysgU0FMIM3RyiAgICAgICAgICAgICAgICAgICAgICAgICDNygorKyBTQUwgzcQowcLDxMbHysvMzc/Q0dLD1dbX2NkpLSAgIM0KKysgU0FMIM1UKMHCw8TGx8rLzM3P0NHSw9XW19jZKS0gICDNCisrIFNBTCDNxCQgICAgICAgICAgICAgICAgICAgICAgICAgzQorKyBTQUwgzVQkICAgICAgICAgICAgICAgICAgICAgICAgIM0KKysgU0FMIM0gICAgICAgICAgICAgICAgICAgICAgICAgICDNCisrIFNBTCDP0cogICAgICAgICAgICAgICAgICAgICAgICAgz8oKKysgU0FMIM/EKMHCw8TGx8rLzM3P0NHSw9XW19jZKS0gICDPCisrIFNBTCDPVCjBwsPExsfKy8zNz9DR0sPV1tfY2SktICAgzworKyBTQUwgz8QkICAgICAgICAgICAgICAgICAgICAgICAgIM8KKysgU0FMIM9UJCAgICAgICAgICAgICAgICAgICAgICAgICDPCisrIFNBTCDPICAgICAgICAgICAgICAgICAgICAgICAgICAgzworKyBTQUwg0NHKICAgICAgICAgICAgICAgICAgICAgICAgINDKCisrIFNBTCDQxCjBwsPExsfKy8zNz9DR0sPV1tfY2SktICAg0AorKyBTQUwg0FQowcLDxMbHysvMzc/Q0dLD1dbX2NkpLSAgINAKKysgU0FMINDEJCAgICAgICAgICAgICAgICAgICAgICAgICDQCisrIFNBTCDQVCQgICAgICAgICAgICAgICAgICAgICAgICAg0AorKyBTQUwg0CAgICAgICAgICAgICAgICAgICAgICAgICAgINAKKysgU0FMINHRyiAgICAgICAgICAgICAgICAgICAgICAgICDRygorKyBTQUwg0cQowcLDxMbHysvMzc/Q0dLD1dbX2NkpLSAgINEKKysgU0FMINFUKMHCw8TGx8rLzM3P0NHSw9XW19jZKS0gICDRCisrIFNBTCDRxCQgICAgICAgICAgICAgICAgICAgICAgICAg0QorKyBTQUwg0VQkICAgICAgICAgICAgICAgICAgICAgICAgINEKKysgU0FMINEgICAgICAgICAgICAgICAgICAgICAgICAgICDRCisrIFNBTCDS0co8ICAgICAgICAgICAgICAgICAgICAgICAg0soKKysgU0FMINLEKMHCw8TGx8rLzM3P0NHSw9XW19jZKS0gICDSCisrIFNBTCDSVCjBwsPExsfKy8zNz9DR0sPV1tfY2SktICAg0gorKyBTQUwg0sQkICAgICAgICAgICAgICAgICAgICAgICAgINIKKysgU0FMINJUJCAgICAgICAgICAgICAgICAgICAgICAgICDSCisrIFNBTCDSICAgICAgICAgICAgICAgICAgICAgICAgICAg0gorKyBTQUwg1NHKICAgICAgICAgICAgICAgICAgICAgICAgINTKCisrIFNBTCDUxCjBwsPExsfKy8zNz9DR0sPV1tfY2SktICAg1AorKyBTQUwg1FQowcLDxMbHysvMzc/Q0dLD1dbX2NkpLSAgINQKKysgU0FMINTEJCAgICAgICAgICAgICAgICAgICAgICAgICDUCisrIFNBTCDUVCQgICAgICAgICAgICAgICAgICAgICAgICAg1AorKyBTQUwg1CAgICAgICAgICAgICAgICAgICAgICAgICAgINQKKysgU0FMINXRyiAgICAgICAgICAgICAgICAgICAgICAgICDVygorKyBTQUwg1cQowcLDxMbHysvMzc/Q0dLD1dbX2NkpLSAgINUKKysgU0FMINVUKMHCw8TGx8rLzM3P0NHSw9XW19jZKS0gICDVCisrIFNBTCDVxCQgICAgICAgICAgICAgICAgICAgICAgICAg1QorKyBTQUwg1VQkICAgICAgICAgICAgICAgICAgICAgICAgINUKKysgU0FMINUgICAgICAgICAgICAgICAgICAgICAgICAgICDVCisrIFNBTCDW0cogICAgICAgICAgICAgICAgICAgICAgICAg1soKKysgU0FMINbEKMHCw8TGx8rLzM3P0NHSw9XW19jZKS0gICDWCisrIFNBTCDWVCjBwsPExsfKy8zNz9DR0sPV1tfY2SktICAg1gorKyBTQUwg1sQkICAgICAgICAgICAgICAgICAgICAgICAgINYKKysgU0FMINZUJCAgICAgICAgICAgICAgICAgICAgICAgICDWCisrIFNBTCDWICAgICAgICAgICAgICAgICAgICAgICAgICAg1gorKyBTQUwg19HKICAgICAgICAgICAgICAgICAgICAgICAgINfKCisrIFNBTCDXxCjBwsPExsfKy8zNz9DR0sPV1tfY2SktICAg1worKyBTQUwg11QowcLDxMbHysvMzc/Q0dLD1dbX2NkpLSAgINcKKysgU0FMINfEJCAgICAgICAgICAgICAgICAgICAgICAgICDXCisrIFNBTCDXVCQgICAgICAgICAgICAgICAgICAgICAgICAg1worKyBTQUwg1yAgICAgICAgICAgICAgICAgICAgICAgICAgINcKKysgU0FMINjRyiAgICAgICAgICAgICAgICAgICAgICAgICDYygorKyBTQUwg2MQowcLDxMbHysvMzc/Q0dLD1dbX2NkpLSAgINgKKysgU0FMINhUKMHCw8TGx8rLzM3P0NHSw9XW19jZKS0gICDYCisrIFNBTCDYxCQgICAgICAgICAgICAgICAgICAgICAgICAg2AorKyBTQUwg2FQkICAgICAgICAgICAgICAgICAgICAgICAgINgKKysgU0FMINggICAgICAgICAgICAgICAgICAgICAgICAgICDYCisrIFNBTCDZ0cogICAgICAgICAgICAgICAgICAgICAgICAg2MoKKysgU0FMINkowcLDxMbHysvMzc/Q0dLD1dbX2NkpLSAgICDYCisrIFNBTCDZJCAgICAgICAgICAgICAgICAgICAgICAgICAg2AorKyBTQUwg2SAgICAgICAgICAgICAgICAgICAgICAgICAgINkKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvZ2QvZ2RfR0IuZGlmZiBiL3J1bnRpbWUvc3BlbGwvZ2QvZ2RfR0IuZGlmZgppbmRleCA2MTZiYWU3Li5lYzQ3OTdjIDEwMDY0NAotLS0gYS9ydW50aW1lL3NwZWxsL2dkL2dkX0dCLmRpZmYKKysrIGIvcnVudGltZS9zcGVsbC9nZC9nZF9HQi5kaWZmCkBAIC0xLDE3ICsxLDE0IEBACiAqKiogZ2RfR0Iub3JpZy5hZmYJV2VkIEF1ZyAzMSAyMDo1MDowMiAyMDA1Ci0tLS0gZ2RfR0IuYWZmCVdlZCBBdWcgMzEgMjA6NTA6NDMgMjAwNQorLS0tIGdkX0dCLmFmZglGcmkgU2VwIDMwIDEzOjA0OjMwIDIwMDUKICoqKioqKioqKioqKioqKgogKioqIDE5ICoqKioKLS0tLSAxOSwzOSAtLS0tCistLS0gMTksMzE3IC0tLS0KICAgVFJZIGFoaW5yZGVzY2xnb3V0bWLgZi3yQUPsVPlCcEdTRE3oSVJQTE5FRulPJ1XzwNLM2UjJyAogKyAKICsgRk9MICDf4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+/wogKyBMT1cgIN/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7/CiArIFVQUCAg38DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3v8KICsgCi0rIFNPRk9GUk9NIGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVrg4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3r8KLSsgU09GT1RPICAgZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlYmN0ZWZnaGVqa2xubmVwa3JzdGV2dmtlc2VlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcHNlZWVlZWVlZWNlZWVlZWVlZWRuZWVlZWVlZWVlZWVwPwotKyAKICsgTUlEV09SRAknLQogKyAKICsgTUFQIDkKQEAgLTI0LDMgKzIxLDI4NCBAQAogKyBNQVAgY+cKICsgTUFQIHn//QogKyBNQVAgc98KKysgCisrICMgc291bmRzbGlrZSBtYXBwaW5nIGZyb20gQXNwZWxsCisrICMgQXNwZWxsIHBob25ldGljcyBmb3IgSXJpc2gsIGJ5IEtldmluIFNjYW5uZWxsIDxzY2FubmVsbEBzbHUuZWR1PgorKyAjIENvcHlyaWdodCAyMDAyLCAyMDAzIEtldmluIFAuIFNjYW5uZWxsLCBkaXN0cmlidXRlZCB1bmRlciBHTlUgR1BMCisrICMgdmVyc2lvbiAyLjAKKysgCisrIFNBTCBmb2xsb3d1cCAwICAgICAgICAgICAgICAgICAgICAjIGVsc2UgYnJlYWtzIFFVXiwgZS5nLgorKyBTQUwgY29sbGFwc2VfcmVzdWx0IDEgICAgICAgICAgICAgIyBubyBkb3VibGUgbGV0dGVycyBpbiByZXN1bHRpbmcgc3RyaW5ncworKyAKKysgU0FMIEFOQkhBTk4tLS0tLSAgICAgICAgICpOKiAgICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgYW5iaGFubmE/IG9ubHksIHNlZSBOQkgtLQorKyBTQUwgQU5CSEFJTi0tLS0tICAgICAgICAgKk4qICAgICAgIyBlcGVudGhldGljIHZvd2VsLCBhbmJoYWlubmU/IG9ubHksIHNlZSBOQkgtLQorKyBTQUwgQUVSR0EtLSAgICAgICAgICAgICAgKlIgICAgICAgIyBlcGVudGhldGljIGV4Y2VwdGlvbiwgc2VlIFJHLCBhZXJnYSBvbmx5CisrIFNBTCBBT1JHLSAgICAgICAgICAgICAgICAqUiAgICAgICAjIGVwZW50aGV0aWMgZXhjZXB0aW9uLCBzZWUgUkcsIFttc11hb3JnKiwgZXRjLgorKyBTQUwgQUVJTEctICAgICAgICAgICAgICAgKkwgICAgICAgIyBlcGVudGhldGljIGV4Y2VwdGlvbiwgR2FlaWxnZSogb25seSwgc2VlIExHIAorKyBTQUwgQUlMQkgtLSAgICAgICAgICAgICAgKkwqICAgICAgIyBlcGVudGhldGljIHZvd2VsLCBbYmNzXWFpbGJoKiBvbmx5LCBzZWUgTEJILS0KKysgU0FMIEFMQkjBRC0tLS0gICAgICAgICAgICpMICAgICAgICMgZ2FsYmjhZCBvbmx5LCBuZXh0IGZldyBhcmUgZXhjZXB0aW9ucyB0byBBTEJICisrIFNBTCBBTEJIwUlELS0tLS0gICAgICAgICAqTCAgICAgICAjIGdhbGJo4WlkIG9ubHkgKGNvaW5uZWFsYmjhaWTtcywgZXRjLiBiNCkKKysgU0FMIEFMQkhSLS0tICAgICAgICAgICAgICpMICAgICAgICMgcG9iYWxiaHJlaXRoLCBnYWxiaHJ1aXRoLCBldGMuIGV4Y2VwdC4gdG8gbmV4dAorKyBTQUwgQUxCSC0tICAgICAgICAgICAgICAgKkwqICAgICAgIyBlcGVudGhldGljIHZvd2VsCisrIFNBTCBBUkJIwUQtLS0tICAgICAgICAgICAqUiAgICAgICAjIG3zdGFyYmjhZCBvbmx5LCBleGNlcHRpb24gdG8gQVJCSCBlcGVudGguCisrIFNBTCBBUkJIwUlELS0tLS0gICAgICAgICAqUiAgICAgICAjIG3zdGFyYmjhaWQgb25seSwgICAiICAgICAgICIgICAiICAgICIgCisrIFNBTCBBUkJIVUlMLS0tLS0gICAgICAgICAqUiAgICAgICAjIGVwZW50aC4gZXhjZXB0aW9uLCBnYXJiaHVpbGxlIG9ubHksIGN1YXJiaCogYjQKKysgU0FMIEFSQkhVQS0tLS0gICAgICAgICAgICpSICAgICAgICMgZXBlbnRoLiBleGNlcHRpb24sIGVhZGFyYmh1YXMqIG9ubHkKKysgU0FMIEFSQkhJTi0tLS0gICAgICAgICAgICpSKiAgICAgICMgZXhjZXB0aW9uIHRvIG5leHQsIG1hcmJoaW50aW5uKiBvbmx5CisrIFNBTCBBUkJIKEVJKS0tLSAgICAgICAgICAqUiAgICAgICAjIGVwZW50aGV0aWMgZXhjZXB0aW9uIHRvIG5leHQsICp0YXJiaGVhbGFjaCwgZXRjLgorKyBTQUwgQVJCSC0tICAgICAgICAgICAgICAgKlIqICAgICAgIyBlcGVudGhldGljLCBnYXJiaCwgZGVhcmJoLCBldGMuIC0gW0lVXUFSQkggYjQKKysgU0FMIEFUSEZIKMHJ00FFSU9VKS0tLSAgICpIICAgICAgICMgYXRoZmhpbGwsdWF0aGZoZWlkaG1lYWNoLGV0Yy4tZXhjZXB0aW9uIHRvIG5leHQKKysgU0FMIEFUSChCQ0RGR0xNTlBSU1QpLSAgICogICAgICAgICMgYXRobGFzLCBtaW9uYXRocvosIGV0Yy4gLSBleGNlcHRpb24gdG8gVEgtPkgKKysgU0FMIEFESCAgICAgICAgICAgICAgICAgICogICAgICAgICMgYmxhZGhtLCBmZWFkaGFpbiwgdGFkaGFsbCwgYWRobWFkLCAtYWRoJCwgZXRjLgorKyBTQUwgQUdISS0tLSAgICAgICAgICAgICAgKiAgICAgICAgIyBleGNlcHRpb24gdG8gQUdILCBjb3JyYWdoaW9iIG9ubHkKKysgU0FMIEFHSExPSU4tLS0tLS0gICAgICAgICogICAgICAgICMgICAiICAgICAgICIgICIsIHBsZWljc2VhZ2hsLSBvbmx5IChub3QgYWdobG9pdCkKKysgU0FMIEFHSCAgICAgICAgICAgICAgICAgICogICAgICAgICMgc2xhZ2hk4W4sIHRyZWFnaGQsIHNhZ2hhcywgZXRjLgorKyBTQUwgQU9NSChGTE5TVCktLS0gICAgICAgKiAgICAgICAgIyBmYW9taFtmdF0tLGNhb21obiosbmFvbWgqIG9ubHksIE9NSCBleGNlcHRpb24KKysgU0FMIEEgICAgICAgICAgICAgICAgICAgICoKKysgU0FMIMFJUkctICAgICAgICAgICAgICAgICpSICAgICAgICMgZXBlbnRoZXRpYyBleGNlcHRpb24sIHNlZSBSRywgdOFpcmcqLCBldGMuCisrIFNBTCDBREhVLS0tICAgICAgICAgICAgICAqICAgICAgICAjIHDhZGh1aWxsZSBvbmx5LCBleGNlcHRpb24gdG8gbmV4dAorKyBTQUwgwURIICAgICAgICAgICAgICAgICAgKiAgICAgICAgIyDhZGj6aWwsIC3hZGgkIG9ubHkKKysgU0FMIMFUSEZILS0gICAgICAgICAgICAgICpIICAgICAgICMgdOF0aGZo6Wl0aGxlYW5uLCBnbuF0aGZoLSBvbmx5IGV4Y2VwdGlvbiB0byBuZXh0CisrIFNBTCDBVEgoQkNERkdMTU5QUlNUKS0gICAqICAgICAgICAjIGbhdGhzY+lhbCwgZ27hdGgqLCBibOF0aGZobGVhc2MsIGV0Yy4KKysgU0FMIMEgICAgICAgICAgICAgICAgICAgICoKKysgU0FMIEJBTkJIXiQgICAgICAgICAgICAgIEIqTipWICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgc2VlIE5CSC0tLCBiYW5iaCwgbm90IC1hcvpuCisrIFNBTCBCSEFOQkheJCAgICAgICAgICAgICBWKk4qViAgICAjIGVwZW50aGV0aWMgdm93ZWwsIHNlZSBOQkgtLQorKyBTQUwgQkFJTkJIXiQgICAgICAgICAgICAgQipOKlYgICAgIyBlcGVudGhldGljIHZvd2VsLCBzZWUgTkJILS0sIGJhaW5iaCBvbmx5CisrIFNBTCBCSEFJTkJIXiQgICAgICAgICAgICBWKk4qViAgICAjIGVwZW50aGV0aWMgdm93ZWwsIHNlZSBOQkgtLQorKyBTQUwgQkggICAgICAgICAgICAgICAgICAgViAgICAgICAgIyBpbmNsdWRlcyBiaCQsIGVjbGlwc2lzIG9mIEYgdmlhIGNvbGxhcHNpbmcKKysgU0FMIEIgICAgICAgICAgICAgICAgICAgIEIgICAgICAgICMgbm90ZSBlY2xpcHNpcyBvZiBQIHZpYSBjb2xsYXBzaW5nCisrIFNBTCBDSMlBREZBzS0tJCAgICAgICAgICBLKlRWICAgICAjIGV4Y2VwdGlvbiB0byBGQc0kLCAoYnLpYWd8ZG98be0pCisrIFNBTCBDSEVBUkNILS0gICAgICAgICAgICBLKlIqICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIGNoZWFyY2hhaWxsIG9ubHkKKysgU0FMIENFQVJDSC0tICAgICAgICAgICAgIEsqUiogICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgZz9jZWFyY2hhaWxsIG9ubHkKKysgU0FMIENIT05GICAgICAgICAgICAgICAgIEsqTipWICAgICMgZXBlbnRoZXRpYyB2b3dlbCxubyBkYXNoPT5oYW5kbGVzIEZBST9ESCRleGNlcHRzCisrIFNBTCBDT05GICAgICAgICAgICAgICAgICBLKk4qViAgICAjICAgICAiICAgICAgICAiICAgICIgICAiICAgICAiICAgICAgICIgICAgICAgIgorKyBTQUwgQ0FOQkgtLSAgICAgICAgICAgICAgSypOKiAgICAgIyBlcGVudGhldGljIHZvd2VsLCBzZWUgTkJILS0sIGc/Y2FuYmjhcyogb25seQorKyBTQUwgQ0hBTkJILS0gICAgICAgICAgICAgSypOKiAgICAgIyBlcGVudGhldGljIHZvd2VsLCBzZWUgTkJILS0sIGNoYW5iaOFzKiBvbmx5CisrIFNBTCBDT0xCSEEtLS0gICAgICAgICAgICBLKkwqICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIHNlZSBMQkgtLSwgZz9jb2xiaGHtPyBvbmx5CisrIFNBTCBDSE9MQkhBLS0tICAgICAgICAgICBLKkwqICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIHNlZSBMQkgtLSwgY2hvbGJoYe0/IG9ubHkKKysgU0FMIENVUkYgICAgICAgICAgICAgICAgIEsqUlYgICAgICMgZXhjZXB0aW9uIHRvIEbBJCwgZz9jdXJm4ShubmEpIG9ubHkKKysgU0FMIENIVVJGICAgICAgICAgICAgICAgIEsqUlYgICAgICMgZXhjZXB0aW9uIHRvIEbBJCwgY2h1cmbhKG5uYSkgb25seQorKyBTQUwgQ0ggICAgICAgICAgICAgICAgICAgSyAgICAgICAgIyBPSworKyBTQUwgQyAgICAgICAgICAgICAgICAgICAgSworKyBTQUwgREhPUkNILS0gICAgICAgICAgICAgSypSKiAgICAgIyBlcGVudGhldGljIHZvd2VsLCBkb3JjaGEgcm9vdCBvbmx5CisrIFNBTCBET1JDSC0tICAgICAgICAgICAgICBUKlIqICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIGRvcmNoYSByb290IG9ubHkKKysgU0FMIERIRUFSRiAgICAgICAgICAgICAgIFkqUiogICAgICMgZXBlbnRoZXRpYyB2b3dlbCxpbml0IG9ubHksIG5vIGRhc2g9PkZBzSBleGNlcHQKKysgU0FMIERFQVJGICAgICAgICAgICAgICAgIFQqUiogICAgICMgZXBlbnRoZXRpYyB2b3dlbCxpbml0aWFsIG9ubHkgKG5kLSBkb25lIGI0KQorKyBTQUwgREhFSVJGLSAgICAgICAgICAgICAgWSpSKiAgICAgIyBlcGVudGhldGljIHZvd2VsLCBpbml0aWFsIG9ubHkKKysgU0FMIERFSVJGLSAgICAgICAgICAgICAgIFQqUiogICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgKGxlYXMpP2RlaXJmKiBvbmx5CisrIFNBTCBESE9JTChCRiktICAgICAgICAgICBLKkwqICAgICAjIGVwZW50aGV0aWMsc2VlIExCSC0tLGluaXRpYWwgb25seSxkaG9pbChmZXxiaCkqCisrIFNBTCBET0lMKEJGKS0gICAgICAgICAgICBUKkwqICAgICAjIGVwZW50aGV0aWMsIHNlZSBMQkgtLSwgIiAgICAgICIgIChuZC0gZG9uZSBiNCkKKysgU0FMIERISUZFQVIgICAgICAgICAgICAgIFkqVipSICAgICMgZXhjZXB0aW9uIHRvIEZFQVIkLCBeZGhpZmVhciQgb25seQorKyBTQUwgRElGRUFSICAgICAgICAgICAgICAgVCpWKlIgICAgIyBleGNlcHRpb24gdG8gRkVBUiQsIF5kaWZlYXIkIG9ubHkgKG5kLSBiNCkKKysgU0FMIERIJCAgICAgICAgICAgICAgICAgIF8gICAgICAgICMgW2HhdV1kaCttb3N0IFtpb11kaCBkb25lIGI0LFtl6e3z+l1kaCBkb25lIGhlcmUKKysgU0FMIERIKEHBT9NV2iktICAgICAgICAgIEsgICAgICAgICMgYXRoZGj6Y2hhcywgYnXtZGhvbm4sIGNvbWhkaOFpbCwgZXRjLgorKyBTQUwgREgoRclJzSktICAgICAgICAgICAgWSAgICAgICAgIyBhdGhkaOlhbiwgY2FvcmRoZWFyZywgY2luZWRoZWlnaGlsdCwgZXRjLgorKyBTQUwgREhMKEFV2iktLSAgICAgICAgICAgSyAgICAgICAgIyBjb21oZGhs+nRoYWlnaCwgXmRobC0gIG9ubHkKKysgU0FMIERITChFSc0pLS0gICAgICAgICAgIFkgICAgICAgICMgKG3tfG5lYW1oKWRobChpc3RlYW58ZWF0aHztdGhp+iksIF5kaGwgIG9ubHkKKysgU0FMIERIUihBwU/TVdopLS0gICAgICAgIEsgICAgICAgICMgKmRocm9pbSxtYXJiaGRocmEqLCpkaHJb4XVdbWEsIF5kaHIgb25seQorKyBTQUwgREhSKMlFSc0pLS0gICAgICAgICAgWSAgICAgICAgIyAqZGhyZWFjaCxmZWlyZGhyaXMsKmRoculhY2h0LCpkaHJlYXNhY2h0LF5kaHIKKysgU0FMIEQgICAgICAgICAgICAgICAgICAgIFQgICAgICAgICMgbm90ZSBlY2xpcHNpcyBvZiBUIHZpYSBjb2xsYXBzaW5nCisrIFNBTCBFQUZBUi0tJCAgICAgICAgICAgICAqViAgICAgICAjIGdlYWZhciwgbWVhZmFyIG9ubHksIEZBUiQgZXhjZXB0aW9uCisrIFNBTCBFT0ZBUi0tJCAgICAgICAgICAgICAqICAgICAgICAjIHNpbGVudCB2ZXJiIGVuZGluZywgZXhjZXB0aW9uIHRvIE9GQVIkIGV4Y2VwdCEKKysgU0FMIEVJTEJILS0gICAgICAgICAgICAgICpMKiAgICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgc2VlIExCSC0tIGV4Y2VwdGlvbiBiZWxvdworKyBTQUwgRUlESChFSSktICAgICAgICAgICAgKiAgICAgICAgIyBhdWdtZW50cyBJREggcnVsZSxlaWRoZWFubix0ZWlkaGVhY2gsbWVpZGhpcixldGMKKysgU0FMIEVPTUgoRlQpLS0tICAgICAgICAgICogICAgICAgICMgbGVvbWhbZnRdLSBvbmx5LCBleGNlcHRpb24gdG8gLW9taCBydWxlCisrIFNBTCBFICAgICAgICAgICAgICAgICAgICAqCisrIFNBTCDJQVJCSC0tICAgICAgICAgICAgICAqUiAgICAgICAjIGVwZW50aGV0aWMgZXhjZXB0aW9uLCBn6WFyYmgtIG9ubHkKKysgU0FMIMlBUk0tICAgICAgICAgICAgICAgICpSICAgICAgICMgZXBlbnRoZXRpYyBleGNlcHRpb24sIOlhcm1oKyB06WFybWEgcm9vdCBvbmx5CisrIFNBTCDJQVJHLSAgICAgICAgICAgICAgICAqUiAgICAgICAjIGVwZW50aGV0aWMgZXhjZXB0aW9uLCDpYXJnaCsobOFuKT9s6WFyZ2FzIG9ubHkKKysgU0FMIMlJUkctICAgICAgICAgICAgICAgICpSICAgICAgICMgZXBlbnRoZXRpYyBleGNlcHRpb24sIOlpcmdoKyBhaWxs6WlyZ2Ugb25seQorKyBTQUwgyUlSQkgtLSAgICAgICAgICAgICAgKlIgICAgICAgIyBlcGVudGhldGljIGV4Y2VwdC4gbOlpcmJocmVpdGgqLCBzcOlpcmJoZWFuIG9ubHkKKysgU0FMIMlBTEJILS0gICAgICAgICAgICAgICpMICAgICAgICMgYulhbGJoYWNoIG9ubHksIGV4Y2VwdGlvbiB0byBBTEJICisrIFNBTCDJQUbBICAgICAgICAgICAgICAgICAqViogICAgICAjIOlhZuEgb25seSwgZXhjZXB0aW9uIHRvIEbBJAorKyBTQUwgySAgICAgICAgICAgICAgICAgICAgKgorKyBTQUwgRkhBSVJDSC0tICAgICAgICAgICAgKlIqICAgICAgIyBlcGVudGhldGljIHZvd2VsLCBmaGFpcmNoKiBvbmx5CisrIFNBTCBGQUlSQ0gtLSAgICAgICAgICAgICBWKlIqICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIChiaCk/ZmFpcmNoKiBvbmx5CisrIFNBTCBGSE9JUkYtICAgICAgICAgICAgICAqUiogICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIGZvaXJmZSByb290IG9ubHkKKysgU0FMIEZPSVJGLSAgICAgICAgICAgICAgIFYqUiogICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgaW5pdGlhbCAoYmgpP2ZvaXJmKiBvbmx5CisrIFNBTCBGSE9OTk1ILS0gICAgICAgICAgICAqTiogICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIHNlZSBOTUgtLSwgZmhvbm5taGFpP3IqIG9ubHkKKysgU0FMIEZPTk5NSC0tICAgICAgICAgICAgIFYqTiogICAgICMgICAgIiAgICAgICAgICIgICAgICIgICAgIiwgKGJoKT9mb25ubWhhaT9yKiBvbmx5CisrIFNBTCBGSE9JTE1ILS0gICAgICAgICAgICAqTCogICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIHNlZSBMTUgtLSwgZmhvaWxtaGUgb25seQorKyBTQUwgRk9JTE1ILS0gICAgICAgICAgICAgVipMKiAgICAgIyBlcGVudGhldGljIHZvd2VsLCBzZWUgTE1ILS0sIChiaCk/Zm9pbG1oZSBvbmx5CisrIFNBTCBGSE9MTUgtLSAgICAgICAgICAgICAqTCogICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIHNlZSBMTUgtLSwgZmhvbG1oKiBvbmx5CisrIFNBTCBGT0xNSC0tICAgICAgICAgICAgICBWKkwqICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIHNlZSBMTUgtLSwgKGJoKT9mb2xtaCogb25seQorKyBTQUwgRkVBREheJCAgICAgICAgICAgICAgViogICAgICAgIyBleGNlcHRpb24gdG8gdmVyYiBlbmRpbmcgYmVsb3csIGVjbGlwc2lzIGJ5IGx1Y2sKKysgU0FMIEZFQVJeJCAgICAgICAgICAgICAgIFYqUiAgICAgICMgICAgICIgICAgICAiICAgIiAgICAgIiAgICAgIiAgICAgICAgIiAgICAgIiAgICIgCisrIFNBTCBGSU5OXiQgICAgICAgICAgICAgICBWKk4gICAgICAjICAgICAiICAgICAgIiAgICIgICAgICIgICAgICIgICAgICAgICIgICAgICIgICAiIAorKyBTQUwgRkXBXiQgICAgICAgICAgICAgICAgViogICAgICAgIyAgICAgIiAgICAgICIgICAiICAgICAiICAgICAiICAgICAgICAiICAgICAiICAgIiAKKysgU0FMIEZBzV4kICAgICAgICAgICAgICAgIFYqICAgICAgICMgICAgICIgICAgICAiICAgIiAgICAgIiAgICAgIiAgICAgICAgIiAgICAgIiAgICIgCisrIFNBTCBGzV4kICAgICAgICAgICAgICAgICBWKiAgICAgICAjICAgICAiICAgICAgIiAgICIgICAgICIgICAgICIgICAgICAgICIgICAgICIgICAiIAorKyBTQUwgRkFJREgtLS0tJCAgICAgICAgICAgXyAgICAgICAgIyBzaWxlbnQgJ2YnIGluIHZlcmIgZW5kaW5nCisrIFNBTCBGQURILS0tJCAgICAgICAgICAgICBfICAgICAgICAjICAgIiAgICAgIiAgICIgICAiICAgICIKKysgU0FMIEZJREgtLS0kICAgICAgICAgICAgIF8gICAgICAgICMgICAiICAgICAiICAgIiAgICIgICAgIgorKyBTQUwgRkVBREgtLS0tJCAgICAgICAgICAgXyAgICAgICAgIyAgICIgICAgICIgICAiICAgIiAgICAiICAgIAorKyBTQUwgRkVBUi0tLSQgICAgICAgICAgICAgXyAgICAgICAgIyAgICIgICAgICIgICAiICAgIiAgICAiICAgIAorKyBTQUwgRkFSLS0kICAgICAgICAgICAgICAgXyAgICAgICAgIyAgICIgICAgICIgICAiICAgIiAgICAiCisrIFNBTCBGSU5OLS0tJCAgICAgICAgICAgICBfICAgICAgICAjICAgIiAgICAgIiAgICIgICAiICAgICIgICAgCisrIFNBTCBGQUlOTi0tLS0kICAgICAgICAgICBfICAgICAgICAjICAgIiAgICAgIiAgICIgICAiICAgICIgICAgCisrIFNBTCBGwS0kICAgICAgICAgICAgICAgICBfICAgICAgICAjICAgIiAgICAgIiAgICIgICAiICAgICIgCisrIFNBTCBGRcEtLSQgICAgICAgICAgICAgICBfICAgICAgICAjICAgIiAgICAgIiAgICIgICAiICAgICIgCisrIFNBTCBGQc0tLSQgICAgICAgICAgICAgICBfICAgICAgICAjICAgIiAgICAgIiAgICIgICAiICAgICIKKysgU0FMIEbNLSQgICAgICAgICAgICAgICAgIF8gICAgICAgICMgICAiICAgICAiICAgIiAgICIgICAgIgorKyBTQUwgRkFJTUkoRFMpLS0tLS0kICAgICAgXyAgICAgICAgIyAgICIgICAgICIgICAiICAgIiAgICAiICAobm8gZXhjZXB0aW9ucykKKysgU0FMIEZJTUkoRFMpLS0tLSQgICAgICAgIF8gICAgICAgICMgICAiICAgICAiICAgIiAgICIgICAgIiAgKG5vIGV4Y2VwdGlvbnMpCisrIFNBTCBGQUlEzVMtLS0tLSQgICAgICAgICBfICAgICAgICAjICAgIiAgICAgIiAgICIgICAiICAgICIgIChubyBleGNlcHRpb25zKQorKyBTQUwgRklEzVMtLS0tJCAgICAgICAgICAgXyAgICAgICAgIyAgICIgICAgICIgICAiICAgIiAgICAiICAobm8gZXhjZXB0aW9ucykKKysgU0FMIEZIICAgICAgICAgICAgICAgICAgIF8gICAgICAgICMgYWx3YXlzIHNpbGVudCAKKysgU0FMIEYgICAgICAgICAgICAgICAgICAgIFYKKysgU0FMIEdIQUlOTUgtLSAgICAgICAgICAgIEsqTiogICAgICMgZXBlbnRoZXRpYyB2b3dlbCxzZWUgTk1ILS0sXmdoYWlubWgqIG9ubHkKKysgU0FMIEdBSU5NSC0tICAgICAgICAgICAgIEsqTiogICAgICMgZXBlbnRoZXRpYyB2b3dlbCxzZWUgTk1ILS0sXmdhaW5taCogb25seSwgbmctIGI0CisrIFNBTCBHSEVBTExNSC0tICAgICAgICAgICBZKkwqICAgICAjIGVwZW50aGV0aWMgdm93ZWwsc2VlIExNSC0tLGdoZWFsbG1oYXIgb25seQorKyBTQUwgR0VBTExNSC0tICAgICAgICAgICAgSypMKiAgICAgIyBlcGVudGhldGljIHZvd2VsLHNlZSBMTUgtLSxnZWFsbG1oYXIgb25seQorKyBTQUwgR0xBRkFESCAgICAgICAgICAgICAgS0wqViogICAgIyBleGNlcHRpb24gdG8gRkFESCQsIG5vdCBnbGFmYXJuYWNoCisrIFNBTCBHSExBRkFESCAgICAgICAgICAgICBLTCpWKiAgICAjIGV4Y2VwdGlvbiB0byBGQURIJCAKKysgU0FMIEdMQUZBSURIICAgICAgICAgICAgIEtMKlYqICAgICMgZXhjZXB0aW9uIHRvIEZBSURIJCwgbm90IGdsYWZhaXJlCisrIFNBTCBHSExBRkFJREggICAgICAgICAgICBLTCpWKiAgICAjIGV4Y2VwdGlvbiB0byBGQUlESCQgCisrIFNBTCBHSCQgICAgICAgICAgICAgICAgICBfICAgICAgICAjIFthafN1XWdoLG1vc3Qgb2doIGRvbmUgYjQsW2Xh6e36XWdoIGFsbCB0ZXJtaW5hbAorKyBTQUwgR0goQcFP01XaKS0gICAgICAgICAgSyAgICAgICAgIyBib2JnaGFpc3RlLCBkZW9pcmdo4XMsIHNvZ2hvbnRhLCBldGMuCisrIFNBTCBHSChFyUnNKS0gICAgICAgICAgICBZICAgICAgICAjIGF0aGdoaW4sIGx1YXNnaOlhcmFpZ2gsIGV0Yy4KKysgU0FMIEdITChBwU/TVdopLS0gICAgICAgIEsgICAgICAgICMgYXJkZ2hs83JhY2gsIGZvbPpzZ2hsYW5082lyLCBldGMuCisrIFNBTCBHSEwoRclJKS0tICAgICAgICAgICBZICAgICAgICAjIGNvbWhnaGzpYXMsIGNvbWhnaGxlYWNh7Swgc2NvaWx0Z2hsZWFubiwgZXRjLgorKyBTQUwgR0hSKEHBT9NV2iktLSAgICAgICAgSyAgICAgICAgIyB07XJnaHLhLCBncmlhbmdocmFmLCBhb2lzZ2hy+nBhLCBldGMuIAorKyBTQUwgR0hSKEXJSc0pLS0gICAgICAgICAgWSAgICAgICAgIyBpZGlyZ2hy6WFz4W4sIGJyZWl0aGdocmVhbWFubmFjaCwgZXRjLgorKyBTQUwgR0hOKEHBT9NV2iktLSAgICAgICAgSyAgICAgICAgIyBkZWFzZ2hu4XRoLCBuZWFtaGdobuFjaCwgZXRjLgorKyBTQUwgR0hOKEXJSc0pLS0gICAgICAgICAgWSAgICAgICAgIyBsZW9yZ27tb21oLCBhb25naG7paXRoZWFjaCwgZXRjLgorKyBTQUwgRyAgICAgICAgICAgICAgICAgICAgSyAgICAgICAgIyBub3RlIGVjbGlwc2lzIG9mIEMgdmlhIGNvbGxhcHNpbmcKKysgU0FMIEggICAgICAgICAgICAgICAgICAgIEggICAgICAgICMgYmV0d2VlbiB2b3dlbHMrRmFyYW5oYe10LGZvcmhhbGxhLGV0Yy4KKysgU0FMIElBUkctICAgICAgICAgICAgICAgICpSICAgICAgICMgZXBlbnRoZXRpYyBleGNlcHRpb24sIGlhcmf6aWwsIHRpYXJn4WlsLCBldGMuCisrIFNBTCBJQVJCSC0tICAgICAgICAgICAgICAqUiAgICAgICAjIGlhcmJo4WlzLCBnaWFyYmhvc2NhLCBldGMuIGVwZW50aC4gZXhjZXB0aW9uCisrIFNBTCBJRElSQkgtLSAgICAgICAgICAgICAqVCpSICAgICAjIGlkaXJiaGVhcnQsIGlkaXJiaGxpYWluLCBldGMuLCBleGNlcHRpb24gdG8gSVJCSAorKyBTQUwgSVJCSFLaLS0tLSAgICAgICAgICAgKlIgICAgICAgIyBtdWlyYmhy+mNodCogb25seSwgZXhjZXB0aW9uIHRvIElSQkgtLQorKyBTQUwgSVJCSFUtLS0gICAgICAgICAgICAgKlIgICAgICAgIyBlb2NoYWlyYmh1aWxsZSxsaXRpcmJodWFtYSBvbmx5LCBleGNlcHQuIHRvIG5leHQKKysgU0FMIElSQkgtLSAgICAgICAgICAgICAgICpSKiAgICAgICMgKnNlaXJiaO1zLCB0YWlyYmgqLCB0b2lyYmgqLCBldGMuIGVwZW50aGV0aWMKKysgU0FMIElGzS0kICAgICAgICAgICAgICAgICpWICAgICAgICMgZXhjZXB0aW9uIHRvIEbNJCwgyUlGzSQgZG9uZSBiZWZvcmUKKysgU0FMIElOTUhFKEHBKS0tLS0gICAgICAgICpOICAgICAgICMgZXhjZXB0aW9uIHRvIG5leHQsYWlubWhlYXNhcnRoYSxpbm1oZWFiaHL6LCBldGMuCisrIFNBTCBJTk1IRS0tLSAgICAgICAgICAgICAqTiogICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIGlubWhlJCBvbmx5IGJ5IHByZXZpb3VzCisrIFNBTCBJTk5NSC0tICAgICAgICAgICAgICAqTiogICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIGZ1aW5ubWgtLCBjb2lubm1oZSBvbmx5CisrIFNBTCBJT05NSEFHLS0tLSAgICAgICAgICAqTiAgICAgICAjIGV4Y2VwdGlvbiB0byBuZXh0LCBtaW9ubWhhZ2FkaCBvbmx5CisrIFNBTCBJT05NSEEtLS0gICAgICAgICAgICAqTiogICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIGNpb25taGFyIG9ubHksIHNlZSBOTUgtLQorKyBTQUwgSVRIRkgoQUVJT1XByc3T2iktLS0gKkggICAgICAgIyBjaXRoZmhvbGMqLGNyaXRoZmh1YWNodCxmcml0aCogb25seS0gc2VlIG5leHQKKysgU0FMIElUSChCQ0RGR0xNTlBSU1QpLSAgICogICAgICAgICMgYWl0aHJpcywgZnJpdGgqLCBldGMuICBleGNlcHRpb24gdG8gVEgtPkgKKysgU0FMIElESChCQ0RGR0xNTlBSU1QpLSAgICogICAgICAgICMgZmVpZGhtLCB0cmFpZGhmaWwsIG9pZGhyZSwgZXRjLgorKyBTQUwgSUdIKENERUZJTE5SU1QpLSAgICAgKiAgICAgICAgIyBmb2lnaG5lLGNhaWdoZGXhbixvaWdocmlnaCxvaWdoZWFyLGZlaWdoaWwsZXRjLgorKyBTQUwgSSAgICAgICAgICAgICAgICAgICAgKgorKyBTQUwgzU9STS0gICAgICAgICAgICAgICAgKlIgICAgICAgIyBlcGVudGhldGljIGV4Y2VwdGlvbiwgZO1vcm1hLCBm7W9yLSBvbmx5CisrIFNBTCDNT01IKEJDREZHTE1OUFJTVCktLS0gKiAgICAgICAjIChwcnxyfGx8c258Z24p7W9taC0gb25seSwgZXhjZXB0aW9ucyB0byBvbWgtCisrIFNBTCDNVEhTLSAgICAgICAgICAgICAgICAqICAgICAgICAjIGNs7XRoc2VhY2ggb25seSAobm8gZXhjcC4gZm9yIGTtdGhyZWFiaCwgZXRjLikKKysgU0FMIM0gICAgICAgICAgICAgICAgICAgICoKKysgU0FMIEogICAgICAgICAgICAgICAgICAgIFQgICAgICAgICMgaW5pdGlhbCBqLCBkaW9zYy1qYWNh7SBvbmx5OyBiaXQgbGlrZSBzbGVuZGVyIGQKKysgU0FMIEsgICAgICAgICAgICAgICAgICAgIEsgICAgICAgICMga2FyYXTpIG9ubHkKKysgU0FMIExFQU5CSC0tICAgICAgICAgICAgIEwqTiogICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgKHVjaHQpP2xlYW5iaChhb2lzKT8sc2VlIE5CSC0tCisrIFNBTCBMSU5CSC0tICAgICAgICAgICAgICBMKk4qICAgICAjIGVwZW50aGV0aWMgdm93ZWwsICh1Y2h0KT9saW5iaCBvbmx5LCBzZWUgTkJILS0KKysgU0FMIExNSC0tICAgICAgICAgICAgICAgIEwgICAgICAgICMgZmVhbGxtaGFy+iwgZXRjLiwgZXBlbnRoLiBleGNlcHRpb24KKysgU0FMIExCSC0tICAgICAgICAgICAgICAgIEwgICAgICAgICMgdWFpbGxiaHJlYXMsIGV0Yy4sIGVwZW50aC4gZXhjZXB0aW9uCisrIFNBTCBMR0gtLSAgICAgICAgICAgICAgICBMICAgICAgICAjIHRpbXBlYWxsZ2hlYXJyLCBldGMuLCBlcGVudGguIGV4Y2VwdGlvbgorKyBTQUwgTChCR00pLSAgICAgICAgICAgICAgTCogICAgICAgIyBlcGVudGhldGljIHZvd2VsLCBzZWUgYWxzbyBVTENILS0KKysgU0FMIEwgICAgICAgICAgICAgICAgICAgIEwKKysgU0FMIE1PUkZBzS0tJCAgICAgICAgICAgIE0qUlYgICAgICMgZXhjZXB0aW9uIHRvIHNpbGVudCBGQc0kCisrIFNBTCBNQkFOQkheJCAgICAgICAgICAgICBNKk4qViAgICAjIGVwZW50aGV0aWMgdm93ZWwsIHNlZSBOQkgtLSwgbm90IC1hcvpuCisrIFNBTCBNQkFJTkJIXiQgICAgICAgICAgICBNKk4qViAgICAjIGVwZW50aGV0aWMgdm93ZWwsIHNlZSBOQkgtLQorKyBTQUwgTUJeICAgICAgICAgICAgICAgICAgTSAgICAgICAgIyBlY2xpcHNpcworKyBTQUwgTUhBUkYtICAgICAgICAgICAgICAgVipSKiAgICAgIyBlcGVudGhldGljIHZvd2VsCisrIFNBTCBNQVJGLSAgICAgICAgICAgICAgICBNKlIqICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIGluaXRpYWwgb25seQorKyBTQUwgTUhPREggICAgICAgICAgICAgICAgViogICAgICAgIyBPREggZXhjZXB0aW9uLCB1c3VhbGx5IGluaXRpYWwKKysgU0FMIE1PREggICAgICAgICAgICAgICAgIE0qICAgICAgICMgICIgICAgICIgICAgICwgICAiICAgICAgICIKKysgU0FMIE1IICAgICAgICAgICAgICAgICAgIFYgICAgICAgICMgaW5jbHVkZXMgbWgkLC93Lywvdi8gKyBzZWUgVU1ICisrIFNBTCBNICAgICAgICAgICAgICAgICAgICBNCisrIFNBTCBOQUZBzS0tICAgICAgICAgICAgICBOKlYgICAgICAjIGV4Y2VwdGlvbiB0byBGQc0kLCBzbmFmYe0gb25seQorKyBTQUwgTk5BUkItICAgICAgICAgICAgICAgTipSICAgICAgIyBleGNlcHRpb24gdG8gUkIgZXBlbnRoZXRpYywgaW9ubmFyYiogb25seQorKyBTQUwgTk5FQUxCSC0tICAgICAgICAgICAgTipMICAgICAgIyBleGNlcHRpb24gdG8gQUxCSCBlcGVudGhldGljLCBjb2lubmVhbGJo4SBvbmx5CisrIFNBTCBORE9SQ0gtLSAgICAgICAgICAgICBOKlIqICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIHNlZSBET1JDSC0tCisrIFNBTCBOREVBUkYtICAgICAgICAgICAgICBOKlIqICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIHNlZSBERUFSRi0KKysgU0FMIE5ERUlSRi0gICAgICAgICAgICAgIE4qUiogICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgc2VlIERFSVJGLQorKyBTQUwgTkRPSUwoQkYpLSAgICAgICAgICAgTipMKiAgICAgIyBlcGVudGhldGljIHZvd2VsLCBzZWUgRE9JTChCRiktCisrIFNBTCBORElGRUFSICAgICAgICAgICAgICBOKlYqUiAgICAjIGV4Y2VwdGlvbiB0byBGRUFSJCwgXm5kaWZlYXIkIG9ubHkKKysgU0FMIE5HQUlOTUgtLSAgICAgICAgICAgIE4qTiogICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgc2VlIEdBSU5NSC0tCisrIFNBTCBOR0VBTExNSC0tICAgICAgICAgICBOKkwqICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIHNlZSBHRUFMTE1ILQorKyBTQUwgTkdMQUZBREggICAgICAgICAgICAgTkwqViogICAgIyBleGNlcHRpb24gdG8gRkFESCQsIF5uZ2xhZmFkaCQgb25seQorKyBTQUwgTkdMQUZBSURIICAgICAgICAgICAgTkwqViogICAgIyBleGNlcHRpb24gdG8gRkFJREgkLCBebmdsYWZhaWRoJCBvbmx5CisrIFNBTCBOQ0hBKM1TKS0tLS0gICAgICAgICBOKiAgICAgICAjIGVwZW50aGV0aWMgdm93ZWwsICpzaD9lYW5jaGEo7XMpKixpb25jaGFzIG9ubHkKKysgU0FMIE5DSEFJUkQtLS0tLS0gICAgICAgIE4gICAgICAgICMgZXhjZXB0aW9uIHRvIG5leHQsIGRhb25jaGFpcmQqIG9ubHkKKysgU0FMIE5DSEFJKFJTKS0tLS0tICAgICAgIE4qICAgICAgICMgZXBlbnRoLiB0aW9uY2hhaXIqLCBpb25jaGFpcywgKnNoP2VhbmNoYWkqLCBldGMuCisrIFNBTCBOQ0hBSVRIRS0tLS0tLS0gICAgICBOKiAgICAgICAjICAgICAiICAgICAgICAiICAsIHNoP2VhbmNoYWl0aGUsIG5vdCBzZWFuY2hhaXRlCisrIFNBTCBOKERHKV4gICAgICAgICAgICAgICBOICAgICAgICAjIGVjbGlwc2lzCisrIFNBTCBOTUgtLSAgICAgICAgICAgICAgICBOICAgICAgICAjIGV4Y2VwdGlvbiB0byBOKEJNKS0sIHBpYW5taGFyLCBvbm5taGFpcmUsIGV0Yy4gCisrIFNBTCBOQkgtLSAgICAgICAgICAgICAgICBOICAgICAgICAjICAgICIgICAgICAgIiAgICIsIGFvbmJoZWFubmFjaCwgYnVuYmhyYXQsIGV0Yy4KKysgU0FMIE4oQk0pLSAgICAgICAgICAgICAgIE4qICAgICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgYmluYiwgYWlubSwgZXRjLgorKyBTQUwgTiAgICAgICAgICAgICAgICAgICAgTgorKyBTQUwgT0ZBUi0tJCAgICAgICAgICAgICAgKlYgICAgICAgIyBleGNlcHRpb24gdG8gRkFSJCwgRU9GQVIgZG9uZSBiNAorKyBTQUwgT0lSQ0gtLSAgICAgICAgICAgICAgKlIqICAgICAgIyBlcGVudGhldGljIHZvd2VsLCB0P29pcmNoKiBvbmx5CisrIFNBTCBPQ0FMQkgtLSAgICAgICAgICAgICAqSypMICAgICAjIGV4Y2VwdGlvbiB0byBBTEJIIC0gZm9jYWxiaOEqIG9ubHkKKysgU0FMIE9SQkjBLS0tICAgICAgICAgICAgICpSKiAgICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgZm9yYmjhcyBvbmx5CisrIFNBTCBPTk5DSEEtLS0gICAgICAgICAgICAqTiogICAgICAjIGVwZW50aGV0aWMgdm93ZWwgICBmaW9ubmNoYSwgRG9ubmNoYSBvbmx5CisrIFNBTCBPTUhBUkItICAgICAgICAgICAgICAqUiAgICAgICAjIGV4Y2VwdGlvbiB0byBlcGVudGguIFIoQkZHTSktLCBjb21oYXJiYSogb25seQorKyBTQUwgT01IKEJDREZHTE1OUFJTVCktICAgKiAgICAgICAgIyBjb21oLSwgRG9taG5hY2gsIGV0Yy4gKHNldmVyYWwgZXhjcHRzIGI0IHRoaXMpCisrIFNBTCBPVEgoQkNER0xNTlBSUyktICAgICAqICAgICAgICAjIGNvdGhyb20sIGJhb3RoY2hhaW50LCBnYW90aHNj4XRoLCBldGMuCisrIFNBTCBPREhBTy0tLS0gICAgICAgICAgICAqICAgICAgICAjIGZvZGhhbyogb25seSwgZXhjZXB0aW9uIHRvIG5leHQKKysgU0FMIE9ESChBQ0xOUiktICAgICAgICAgICogICAgICAgICMgYm9kaHLhbixtb2RobmFpZ2gsdG9kaGNoYe0sZm9kaGxhLGJvZGhhciBldGMuCisrIFNBTCBPR0hS2lAtLS0tLSAgICAgICAgICAqICAgICAgICAjIGZvZ2hy+nBhLCB0aGlzIGFuZCBuZXh0IGZldyBhcmUgT0dILT4qIGV4Y2VwdHMuCisrIFNBTCBPR0hMVUEtLS0tLSAgICAgICAgICAqICAgICAgICAjIHNvL2RvZ2hsdWFpc3RlKiBvbmx5CisrIFNBTCBPR0hBRi0tLS0gICAgICAgICAgICAqICAgICAgICAjIGRvZ2hhZmEgb25seQorKyBTQUwgT0dIKEHBQkNERkdMTU5QUlNUKS0gKiAgICAgICAgIyBvZ2hhbSwgZm9naGxhaW0sIGJvZ2hk82lyLCB0b2doY2jhbiwgZXRjLgorKyBTQUwgTyAgICAgICAgICAgICAgICAgICAgKgorKyBTQUwg01IoR00pLSAgICAgICAgICAgICAgKlIgICAgICAgIyBlcGVudGhldGljIGV4Y2VwdGlvbiwgKGZvcik/dGg/83JtYWNoLCDzcmdhLGV0Yy4KKysgU0FMINNHSCAgICAgICAgICAgICAgICAgICogICAgICAgICMg82doYT8kIG9ubHkKKysgU0FMINMgICAgICAgICAgICAgICAgICAgICoKKysgU0FMIFBIICAgICAgICAgICAgICAgICAgIFYgICAgICAgICMgT0sKKysgU0FMIFAgICAgICAgICAgICAgICAgICAgIEIKKysgU0FMIFFVICAgICAgICAgICAgICAgICAgIEtWICAgICAgICMgXnF1aW7tbiQsIF5xdWFydG8kIG9ubHkKKysgU0FMIFJBTkZBzS0tICAgICAgICAgICAgIFIqTlYgICAgICMgZXhjZXB0aW9uIHRvIHNpbGVudCBGQc0kLCAtY2h1YXJhbmZh7SBvbmx5CisrIFNBTCBSQUZBzS0tICAgICAgICAgICAgICBSKlYgICAgICAjIGV4Y2VwdGlvbiB0byBzaWxlbnQgRkHNJCwgYWxsICpncmFmLQorKyBTQUwgUlJCSEEtLS0gICAgICAgICAgICAgUiogICAgICAgIyBlcGVudGhldGljIHZvd2VsLCBjZWFycmJoKiBvbmx5LCBubyBjYXJyYmh1YW1hCisrIFNBTCBSRUFMTUgtLSAgICAgICAgICAgICBSKkwqICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIHNlZSBMTUgtLSwgdHJlYWxtaCogb25seQorKyBTQUwgUs1GRUFSXiQgICAgICAgICAgICAgUipWKlIgICAgIyBleGNlcHRpb24gdG8gRkVBUiQsIG5vdCBhdGhy7WZlYXIhCisrIFNBTCBST01IKEZUKS0tLSAgICAgICAgICBSKiAgICAgICAjIHByb21oW2Z0XS0gb25seSwgZXhjZXB0aW9uIHRvIC1vbWggcnVsZQorKyBTQUwgUkZFQU4tLS0tICAgICAgICAgICAgUiogICAgICAgIyBlcGVudGhldGljIHZvd2VsLCAoYmV8c2V8Z2EpaXJmZWFuIG9ubHkKKysgU0FMIFJGSU4tLS0kICAgICAgICAgICAgIFIqICAgICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgc2FtZSB3b3JkcyBhcyBwcmV2aW91cworKyBTQUwgUkJILS0gICAgICAgICAgICAgICAgUiAgICAgICAgIyBj7W9yYmh17SwgYWVyYmhyYXQsIGV0Yy4sIGVwZW50aC4gZXhjZXB0aW9uCisrIFNBTCBSTUgtLSAgICAgICAgICAgICAgICBSICAgICAgICAjIGlhcm1oYXIsIGzpaXJtaGVhcywgZXRjLiwgZXBlbnRoLiBleGNlcHRpb24KKysgU0FMIFJHSC0tICAgICAgICAgICAgICAgIFIgICAgICAgICMgZGFvcmdoYWxhciwgZXRjLiwgZXBlbnRoLiBleGNlcHRpb24KKysgU0FMIFJCTy0tICAgICAgICAgICAgICAgIFIgICAgICAgICMgY29zYXJib2xnIG9ubHksIGVwZW50aC4gZXhjZXB0aW9uCisrIFNBTCBSKEJHTSktICAgICAgICAgICAgICBSKiAgICAgICAjIGVwZW50aGV0aWMgdm93ZWwKKysgU0FMIFIgICAgICAgICAgICAgICAgICAgIFIKKysgU0FMIFNIT1JDSC0tICAgICAgICAgICAgIEgqUiogICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgc29yY2hhIHJvb3Qgb25seQorKyBTQUwgU09SQ0gtLSAgICAgICAgICAgICAgUypSKiAgICAgIyBlcGVudGhldGljIHZvd2VsLCBzb3JjaGEgcm9vdCBvbmx5CisrIFNBTCBTSE9JTEJILS0gICAgICAgICAgICBIKkwqICAgICAjIGVwZW50aGV0aWMsIHNlZSBMQkgtLQorKyBTQUwgU09JTEJILS0gICAgICAgICAgICAgUypMKiAgICAgIyBlcGVudGhldGljLCBzZWUgTEJILS0KKysgU0FMIFNIICAgICAgICAgICAgICAgICAgIEggICAgICAgICMgT0sKKysgU0FMIFMgICAgICAgICAgICAgICAgICAgIFMKKysgU0FMIFRBTE1ILS0gICAgICAgICAgICAgIFQqTCogICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgc2VlIExNSC0tLCB0YWxtaGFpZ2ggb25seQorKyBTQUwgVEhBTE1ILS0gICAgICAgICAgICAgSCpMKiAgICAgIyBlcGVudGhldGljIHZvd2VsLCBzZWUgTE1ILS0sICAgICIgICAgICAgIgorKyBTQUwgVElORihFSSktICAgICAgICAgICAgVCpOViAgICAgIyBleGNlcHRpb24gdG8gRihFQXxJKURIJCwgZD90aW5mKGVhfGkpZGggb25seQorKyBTQUwgVEhJTkYoRUkpLSAgICAgICAgICAgSCpOViAgICAgIyBleGNlcHRpb24gdG8gRihFQXxJKURIJCwgdGhpbmYoZWF8aSlkaCBvbmx5CisrIFNBTCBUQUZBLSAgICAgICAgICAgICAgICBUKlYgICAgICAjIGV4Y2VwdGlvbiB0byBGQUlOTiQsIGQ/dGFmYWlubiBvbmx5CisrIFNBTCBUSEFGQS0gICAgICAgICAgICAgICBIKlYgICAgICAjIGV4Y2VwdGlvbiB0byBGQUlOTiQsIHRoYWZhaW5uIG9ubHkKKysgU0FMIFRTT1JDSC0tICAgICAgICAgICAgIFQqUiogICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgc2VlIFNPUkNILS0KKysgU0FMIFRTT0lMQkgtLSAgICAgICAgICAgIFQqTCogICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgc2VlIFNPSUxCSC0tCisrIFNBTCBUU14gICAgICAgICAgICAgICAgICBUICAgICAgICAjIHByZWZpeC10CisrIFNBTCBUSCQgICAgICAgICAgICAgICAgICBfICAgICAgICAjIG5vIGV4Y2VwdGlvbnMKKysgU0FMIFRIICAgICAgICAgICAgICAgICAgIEgKKysgU0FMIFQgICAgICAgICAgICAgICAgICAgIFQKKysgU0FMIFVGQSjNUiktLSQgICAgICAgICAgICpWICAgICAgICMgZXhjZXB0aW9uIHRvIEZBUiQsIGJydWZhci9bY3JddWZh7SBvbmx5CisrIFNBTCBVQVJHLSAgICAgICAgICAgICAgICAqUiAgICAgICAjIGVwZW50aGV0aWMgZXhjZXB0aW9uLCBmdWFyZ2EqLCB0dWFyZ2FpbiBvbmx5CisrIFNBTCBVQUlSRy0gICAgICAgICAgICAgICAqUiAgICAgICAjIGVwZW50aGV0aWMgZXhjZXB0aW9uLCB0dWFpcmduKiBvbmx5CisrIFNBTCBVQVJCSC0tICAgICAgICAgICAgICAqUiAgICAgICAjIGVwZW50aGV0aWMgZXhjZXB0aW9uLCBmdWFyYmgqLCBjdWFyYmgqIG9ubHkgCisrIFNBTCBVQUxHQS0tICAgICAgICAgICAgICAqTCAgICAgICAjIGVwZW50aGV0aWMgZXhjZXB0aW9uLCBkdWFsZ2FzIG9ubHkKKysgU0FMIFVMTE1ILS0gICAgICAgICAgICAgICpMKiAgICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgc2VlIExNSC0tCisrIFNBTCBVTUggICAgICAgICAgICAgICAgICAqICAgICAgICAjIGN1bWhhY2h0LCB1bWhsYe1vY2h0LCBjaXVtaGFpcywgZXhjZXB0LiB0byBNSC0+VgorKyBTQUwgVVRIKEJDREdMTU5QUiktICAgICAgKiAgICAgICAgIyBzcnV0aCosIGd1dGhwaG9zdCBvbmx5LCBUSC0+SCBleGNlcHRpb24KKysgU0FMIFVMQ0gtLSAgICAgICAgICAgICAgICpMKiAgICAgICMgZXBlbnRoLiB2b3dlbCx1bGNoYSxbdG1ddWxjaOFuLGFtaHVsY2hhY2ggb25seQorKyBTQUwgVVJDSChB0yktLS0gICAgICAgICAgKlIqICAgICAgIyBlcGVudGhldGljIHZvd2VsLCB1cmNoYXIsIHVyY2hhbGwsIHVyY2jzaWQsIGV0Yy4KKysgU0FMIFVESCAgICAgICAgICAgICAgICAgICogICAgICAgICMgbXVkaCogb25seSAobGl0ZXJhcnkpCisrIFNBTCBVR0ggICAgICAgICAgICAgICAgICAqICAgICAgICAjIGJydWdoKiBvbmx5IChsaXRlcmFyeSkKKysgU0FMIFUgICAgICAgICAgICAgICAgICAgICoKKysgU0FMINpJUkctICAgICAgICAgICAgICAgICpSICAgICAgICMgZXBlbnRoZXRpYyBleGNlcHRpb24sIGxpb3T6aXJnKiBvbmx5LCBzZWUgUkcKKysgU0FMINpUSChCQ0RGTFBSKS0gICAgICAgICogICAgICAgICMgbPp0aGNobGVhc2EsIGT6dGhyYWNodCwgZXRjLiAtIFRILT5IIGV4Y2VwdGlvbgorKyBTQUwg2iAgICAgICAgICAgICAgICAgICAgKgorKyBTQUwgViAgICAgICAgICAgICAgICAgICAgVgorKyBTQUwgVyAgICAgICAgICAgICAgICAgICAgViAgICAgICAgIyB3aWd3YW0gb25seQorKyBTQUwgWChBRclJzSktXiAgICAgICAgICAgUyAgICAgICAgIyB4aWxlYWbzbiwgZXRjLgorKyBTQUwgWF4gICAgICAgICAgICAgICAgICAgKktTICAgICAgIyB4LWdoYSogb25seQorKyBTQUwgWCAgICAgICAgICAgICAgICAgICAgS1MgICAgICAgIyBNYXJ4YWNoIG9ubHkKKysgU0FMIFkgICAgICAgICAgICAgICAgICAgIFkgICAgICAgICMgefN58yBvbmx5CisrIFNBTCBaICAgICAgICAgICAgICAgICAgICBTICAgICAgICAjIHr6LCBwdXphbCwgZXRjLgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9zdi9zdl9TRS5kaWZmIGIvcnVudGltZS9zcGVsbC9zdi9zdl9TRS5kaWZmCmluZGV4IDg1OWIyMjUuLjNkZmM1MTUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3BlbGwvc3Yvc3ZfU0UuZGlmZgorKysgYi9ydW50aW1lL3NwZWxsL3N2L3N2X1NFLmRpZmYKQEAgLTEsMTYgKzEsMTMgQEAKICoqKiBzdl9TRS5vcmlnLmFmZglXZWQgQXVnIDMxIDIxOjAwOjE5IDIwMDUKLS0tLSBzdl9TRS5hZmYJV2VkIEF1ZyAzMSAyMTowMjo1MyAyMDA1CistLS0gc3ZfU0UuYWZmCUZyaSBTZXAgMzAgMTQ6MDk6MTkgMjAwNQogKioqKioqKioqKioqKioqCiAqKiogNiw3ICoqKioKLS0tLSA2LDI1IC0tLS0KKy0tLSA2LDIyIC0tLS0KICAgCiArIEZPTCAg3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/v8KICsgTE9XICDf4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+/wogKyBVUFAgIN/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d7/CiArIAotKyBTT0ZPRlJPTSBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFla4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3//AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d6/Ci0rIFNPRk9UTyAgIGViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXBzZWVlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcD8KLSsgCiArIE1BUCA5CiArIE1BUCBh4OHi4+TlCiArIE1BUCBl6Onq6wpAQCAtMjgsNyArMjUsNyBAQAogICAKICEgU0ZYICBDICBZICAxNgogICBTRlggIEMgIDAgIHQgIFthZWlvdXnl5PbpXQotLS0tIDMzLDM1IC0tLS0KKy0tLSAzMCwzMiAtLS0tCiAgIAogISBTRlggIEMgIFkgIDE1CiAgIFNGWCAgQyAgMCAgdCAgW2FlaW91eeXk9uldCkBAIC0zNyw0ICszNCwxMDggQEAKICAgU0ZYICBDICBlbiBuZXRzIGVuCiAtIFNGWCAgQyAgMCAgbmV0ICBuZXRzIFteZV1uCiAgIFNGWCAgQyAgMCAgbmV0cyAgW15lXW4KLS0tLSA0OCw0OSAtLS0tCistLS0gNDUsNDYgLS0tLQorKioqKioqKioqKioqKioqCisqKiogNDI3ICoqKioKKy0tLSA0NDEsNTQxIC0tLS0KKyAgU0ZYICBUICBlbCAgbGEgIGVsCisrIAorKyAjIHNvdW5kc2xpa2UgbWFwcGluZyBmcm9tIEFzcGVsbAorKyAjIHN3ZWRpc2hfcGhvbmV0LmRhdCAtIFN3ZWRpc2ggcGhvbmV0aWMgdHJhbnNmb3JtYXRpb24gcnVsZXMgZm9yIGFzcGVsbAorKyAjIENvcHlyaWdodCAoQykgMjAwMCAgTWFydGluIE5vcmLkY2sgIDxkOTVtYmFja0BkdGVrLmNoYWxtZXJzLnNlPgorKyAjIGRpc3RyaWJ1dGVkIHVuZGVyIEdOVSBHUEwKKysgIyB2ZXJzaW9uIDAuMgorKyAKKysgU0FMICYJJgorKyBTQUwgQAlACisrIFNBTCBBTkcoRUlZxNYpLV4JQU5JCSMgZvZybGVkZXQgYW4tIHNrYSBpbnRlIGJsaSBALWxqdWQKKysgU0FMIEFHTk82CUFLTk8JIyBhZ25vc3Rpa2VyIG9zdi4KKysgU0FMIEFHKElFKS02CUFLCSMgdm9rYWwrZyhpZSkgZ2VyIGVqIGotbGp1ZAorKyBTQUwgQQlBCisrIFNBTCBCQi08CV8KKysgU0FMIEIJUAorKyBTQUwgQ0NPLQlLCSMgYnJvY2NvbGksIHBpY2NvbG8KKysgU0FMIENDCUtTCSMgc3VjY2Vzc2l2LCBhY2Nlc3MsIHN1Y2PpCisrIFNBTCBDSAkmCSMgY2hva2xhZCBvc3YuCisrIFNBTCBDSwlLCSMgY2sgLT4gayBzb20gdmFubGlndAorKyBTQUwgQyhFSVnE1iktPAlTCSMgYyArIG1qdWsgdm9rYWwgLT4gcworKyBTQUwgQwlLCSMgYyArIGFubmF0IC0+IGsKKysgU0FMIERKKFXE1iktCUkJIyBkanVuZ2VsLCBkauR2ZWwsIGFkavYKKysgU0FMIERELQlfCisrIFNBTCBECVQKKysgU0FMIEVHKElFKS02CUVLCSMgdm9rYWwrZyhpZSkgZ2VyIGVqIGotbGp1ZAorKyBTQUwgRQlFCisrIFNBTCDJCUUKKysgU0FMIEZGCUYKKysgU0FMIEYJRgorKyBTQUwgRyhFSVnE1iktMwlJCSMgZyttanVrIHZva2FsIGdlciBqLWxqdWQKKysgU0FMIEdHNglLCisrIFNBTCBHTglATgkjIHVnbiwgbHVnbi4uLgorKyBTQUwgRwlLCisrIFNBTCBIKEFPVcVFSVnE1iktXglICSMgaCBpIGL2cmphbiBhdiBvcmQgaPZycworKyBTQUwgSChBVU/FRUlZxNYpLQlfCSMgYW5uYXJzIHN0dW10IGZyYW1m9nIgdm9rYWwKKysgU0FMIEhKCUkJIyBoai0+aiAoaGrkcnRhIG9zdi4pCisrIFNBTCBICUgKKysgU0FMIElHKElFKS02CUlLCSMgdm9rYWwrZyhpZSkgZ2VyIGVqIGotbGp1ZAorKyBTQUwgSQlJCisrIFNBTCBKCUkKKysgU0FMIEsoRUlZxNYpLV4JJgkjIGsrbWp1ayB2b2thbCBnZXIgc2plLWxqdWQKKysgU0FMIEtKCSYJIyBram9sCisrIFNBTCBLCUsKKysgU0FMIExKVS0JSQkjIGxqdWdhLCBsanVzCisrIFNBTCBMTC0JXworKyBTQUwgTAlMCisrIFNBTCBNTS0JXworKyBTQUwgTQlNCisrIFNBTCBORzYJQAorKyBTQUwgTk4tCV8KKysgU0FMIE4JTgorKyBTQUwgT1JJR0k4CU9SS0kJIyBzcGVjaWFsZmFsbAorKyBTQUwgT0coSUUpLTYJT0sJIyB2b2thbCtnKGllKSBnZXIgZWogai1sanVkCisrIFNBTCBPCU8KKysgU0FMIFBST0pFS1QJUFJPJkVLVAkjIHNwZWNpYWxmYWxsCisrIFNBTCBQU0FMVDwJU0FMVAkjIHNwZWNpYWxmYWxsCisrIFNBTCBQU0FMTTwJU0FMTQkjIHNwZWNpYWxmYWxsCisrIFNBTCBQUC0JXworKyBTQUwgUAlQCisrIFNBTCBRCUsKKysgU0FMIFJHSSQ2CVJHSQkjIGluZ2V0IGogaSBzbHV0ZXQKKysgU0FMIFJHQSQ2CVJJQQkjIGjkciDkciBkZXQgZORyZW1vdCBqIChhcmdhLGbkcmdhKQorKyBTQUwgUkdFJDYJUklFCSMgaORyIG9ja3PlIChOb3JnZSwg9nZlcmdlKQorKyBTQUwgUkdTJAlSSVMJIyByZ3MgaSBzbHV0ZXQKKysgU0FMIFJHJAlSSQkjIHJnIGkgc2x1dGV0CisrIFNBTCBSRAlUCSMgImJs9nR0IiBkCisrIFNBTCBSTglOCSMgImJs9nR0IiBuCisrIFNBTCBSVAlUCSMgImJs9nR0IiB0CisrIFNBTCBSTEQJVAkjIHbkcmxkCisrIFNBTCBSTAlMCSMgImJs9nR0IiBsCisrIFNBTCBSUwkmCSMgc2plLWxqdWQgKGZhcnMsIGfkcnNn5XJkKQorKyBTQUwgUlItCV8KKysgU0FMIFIJUgorKyBTQUwgU1MtCV8KKysgU0FMIFNDSElaNglTS0lUUwkjIHNwZWNpYWxmYWxsCisrIFNBTCBTQ0g2CSYKKysgU0FMIFNLSgkmCSMgc2tqb3J0YSwgc2tqdXRhCisrIFNBTCBTSgkmCSMgc2plLWxqdWQKKysgU0FMIFMJUworKyBTQUwgVElPTjleCVRJT04JIyB0aW9uZGUKKysgU0FMIFRJT042CSZPTgkjIHN0YXRpb24gb3N2LgorKyBTQUwgVFQtCV8KKysgU0FMIFQJVAorKyBTQUwgVUcoSUUpLTYJVUsJIyB2b2thbCtnKGllKSBnZXIgZWogai1sanVkCisrIFNBTCBVCVUKKysgU0FMIFYJRgorKyBTQUwgVwlGCisrIFNBTCBYOQlLUworKyBTQUwgWUcoSUUpLTYJWUsJIyB2b2thbCtnKGllKSBnZXIgZWogai1sanVkCisrIFNBTCBZCUkKKysgU0FMIFpaCVRTCisrIFNBTCBaCVMKKysgU0FMIMVUVElPOQlPVElPCSMgc3BlY2lhbGZhbGwgKGVqIHNqZS1sanVkKQorKyBTQUwgxVJUSU9OOQlPUlRJT04JIyBzcGVjaWFsZmFsbCAociBo9nJzKQorKyBTQUwgxUcoSUUpLTYJT0sJIyB2b2thbCtnKGllKSBnZXIgZWogai1sanVkCisrIFNBTCDFCU8KKysgU0FMIMRHKElFKS02CUVLCSMgdm9rYWwrZyhpZSkgZ2VyIGVqIGotbGp1ZAorKyBTQUwgxAlFCisrIFNBTCDWRyhJRSktNgnWSwkjIHZva2FsK2coaWUpIGdlciBlaiBqLWxqdWQKKysgU0FMINYJ1gpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC95aS95aS5kaWZmIGIvcnVudGltZS9zcGVsbC95aS95aS5kaWZmCmluZGV4IDA5OTQ4OGEuLjAxNWE4ZmMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3BlbGwveWkveWkuZGlmZgorKysgYi9ydW50aW1lL3NwZWxsL3lpL3lpLmRpZmYKQEAgLTYsNyArNiw3IEBACiArIDk5OTk5OQogICDXkteo15XXoNeY16LXnNei157Xoteg15gKICAg15PXltep15DWuNeR16LXoNeT15nXp9ehCi0qKiogL2Rldi9udWxsCVRodSBTZXAgMjkgMjA6MDY6NTcgMjAwNQorKioqIC9kZXYvbnVsbAlGcmkgU2VwIDMwIDE0OjE1OjQzIDIwMDUKIC0tLSB5aS5hZmYJTW9uIEF1ZyAxNSAyMzowNjowMCAyMDA1CiAqKioqKioqKioqKioqKioKICoqKiAwICoqKioK