Ci8qIQogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKiBcZmlsZSBtYl9hY2Nlc3MuaAogKgogKiBcYnJpZWYKICogICAgRnVuY3Rpb25zIGZvciBtYWNyb2Jsb2NrIG5laWdoYm9yaG9vZHMKICoKICogXGF1dGhvcgogKiAgICAgTWFpbiBjb250cmlidXRvcnMgKHNlZSBjb250cmlidXRvcnMuaCBmb3IgY29weXJpZ2h0LCBhZGRyZXNzIGFuZCBhZmZpbGlhdGlvbiBkZXRhaWxzKQogKiAgICAgLSBLYXJzdGVuIFP8aHJpbmcgICAgICAgICAgPHN1ZWhyaW5nQGhoaS5kZT4KICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICovCgojaWZuZGVmIF9NQl9BQ0NFU1NfSF8KI2RlZmluZSBfTUJfQUNDRVNTX0hfCgp2b2lkIENoZWNrQXZhaWxhYmlsaXR5T2ZOZWlnaGJvcnModm9pZCk7Cgp2b2lkICgqZ2V0TmVpZ2hib3VyKSh1bnNpZ25lZCBpbnQgY3Vycl9tYl9uciwgaW50IHhOLCBpbnQgeU4sIGludCBpc19jaHJvbWEsIFBpeGVsUG9zICpwaXgpOwp2b2lkIGdldEFmZk5laWdoYm91cih1bnNpZ25lZCBpbnQgY3Vycl9tYl9uciwgaW50IHhOLCBpbnQgeU4sIGludCBpc19jaHJvbWEsIFBpeGVsUG9zICpwaXgpOwp2b2lkIGdldE5vbkFmZk5laWdoYm91cih1bnNpZ25lZCBpbnQgY3Vycl9tYl9uciwgaW50IHhOLCBpbnQgeU4sIGludCBpc19jaHJvbWEsIFBpeGVsUG9zICpwaXgpOwp2b2lkIGdldEx1bWE0eDROZWlnaGJvdXIgKGludCBjdXJyX21iX25yLCBpbnQgYmxvY2tfeCwgaW50IGJsb2NrX3ksIFBpeGVsUG9zICpwaXgpOwp2b2lkIGdldENocm9tYTR4NE5laWdoYm91ciAoaW50IGN1cnJfbWJfbnIsIGludCBibG9ja194LCBpbnQgYmxvY2tfeSwgUGl4ZWxQb3MgKnBpeCk7CmludCAgbWJfaXNfYXZhaWxhYmxlKGludCBtYkFkZHIsIGludCBjdXJyTWJBZGRyKTsKdm9pZCBnZXRfbWJfcG9zIChpbnQgbWJfYWRkciwgaW50ICp4LCBpbnQqeSwgaW50IGlzX2Nocm9tYSk7CnZvaWQgKCpnZXRfbWJfYmxvY2tfcG9zKSAoaW50IG1iX2FkZHIsIGludCAqeCwgaW50KnkpOwp2b2lkIGdldF9tYl9ibG9ja19wb3Nfbm9ybWFsIChpbnQgbWJfYWRkciwgaW50ICp4LCBpbnQqeSk7CnZvaWQgZ2V0X21iX2Jsb2NrX3Bvc19tYmFmZiAoaW50IG1iX2FkZHIsIGludCAqeCwgaW50KnkpOwoKCgojZW5kaWYK