LyoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQogKi8KLyogRE8gTk9UIEVESVQhISAtIHRoaXMgZmlsZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZAogKiAgICAgICAgICAgICAgICAgZnJvbSAucyBmaWxlIGJ5IGF3ayAtZiBzMmguYXdrCiAqLwovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogKiBDb3B5cmlnaHQgqSBBUk0gTGltaXRlZCAxOTk4LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKiAKICogICBJbnRlZ3JhdG9yIGFkZHJlc3MgbWFwCiAqIAogKiAJTk9URTogVGhpcyBpcyBhIG11bHRpLWhvc3RlZCBoZWFkZXIgZmlsZSBmb3IgdXNlIHdpdGggdUhBTCBhbmQKICogCSAgICAgIHN1cHBvcnRlZCBkZWJ1Z2dlcnMuCiAqIAogKiAJJElkOiBwbGF0Zm9ybS5zLHYgMS4zMiAyMDAwLzAyLzE4IDEwOjUxOjM5IGFzaW1zIEV4cCAkCiAqIAogKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCiNpZm5kZWYgX19hZGRyZXNzX2gKI2RlZmluZSBfX2FkZHJlc3NfaCAgICAgICAgICAgICAgICAgICAgIDEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKiAgSW50ZWdyYXRvciBkZWZpbml0aW9ucwogKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqICBNZW1vcnkgZGVmaW5pdGlvbnMKICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqICBJbnRlZ3JhdG9yIG1lbW9yeSBtYXAKICogCiAqLwojZGVmaW5lIElOVEVHUkFUT1JfQk9PVF9ST01fTE8gICAgICAgICAgMHgwMDAwMDAwMAojZGVmaW5lIElOVEVHUkFUT1JfQk9PVF9ST01fSEkgICAgICAgICAgMHgyMDAwMDAwMAojZGVmaW5lIElOVEVHUkFUT1JfQk9PVF9ST01fQkFTRSAgICAgICAgSU5URUdSQVRPUl9CT09UX1JPTV9ISQkgLyogIE5vcm1hbCBwb3NpdGlvbiAqLwojZGVmaW5lIElOVEVHUkFUT1JfQk9PVF9ST01fU0laRSAgICAgICAgU1pfNTEySwoKLyogCiAqICBOZXcgQ29yZSBNb2R1bGVzIGhhdmUgZGlmZmVyZW50IGFtb3VudHMgb2YgU1NSQU0sIHRoZSBhbW91bnQgb2YgU1NSQU0KICogIGZpdHRlZCBjYW4gYmUgZm91bmQgaW4gSERSX1NUQVQuCiAqIAogKiAgVGhlIHN5bWJvbCBJTlRFR1JBVE9SX1NTUkFNX1NJWkUgaXMga2VwdCwgaG93ZXZlciB0aGlzIG5vdyByZWZlcnMgdG8KICogIHRoZSBtaW5pbXVtIGFtb3VudCBvZiBTU1JBTSBmaXR0ZWQgb24gYW55IGNvcmUgbW9kdWxlLgogKiAKICogIE5ldyBDb3JlIE1vZHVsZXMgYWxzbyBhbGlhcyB0aGUgU1NSQU0uCiAqIAogKi8KI2RlZmluZSBJTlRFR1JBVE9SX1NTUkFNX0JBU0UgICAgICAgICAgIDB4MDAwMDAwMDAKI2RlZmluZSBJTlRFR1JBVE9SX1NTUkFNX0FMSUFTX0JBU0UgICAgIDB4MTA4MDAwMDAKI2RlZmluZSBJTlRFR1JBVE9SX1NTUkFNX1NJWkUgICAgICAgICAgIFNaXzI1NksKCiNkZWZpbmUgSU5URUdSQVRPUl9GTEFTSF9CQVNFICAgICAgICAgICAweDI0MDAwMDAwCiNkZWZpbmUgSU5URUdSQVRPUl9GTEFTSF9TSVpFICAgICAgICAgICBTWl8zMk0KCiNkZWZpbmUgSU5URUdSQVRPUl9NQlJEX1NTUkFNX0JBU0UgICAgICAweDI4MDAwMDAwCiNkZWZpbmUgSU5URUdSQVRPUl9NQlJEX1NTUkFNX1NJWkUgICAgICBTWl81MTJLCgovKiAKICogIFNEUkFNIGlzIGEgU0lNTSB0aGVyZWZvcmUgdGhlIHNpemUgaXMgbm90IGtub3duLgogKiAKICovCiNkZWZpbmUgSU5URUdSQVRPUl9TRFJBTV9CQVNFICAgICAgICAgICAweDAwMDQwMDAwCgojZGVmaW5lIElOVEVHUkFUT1JfU0RSQU1fQUxJQVNfQkFTRSAgICAgMHg4MDAwMDAwMAojZGVmaW5lIElOVEVHUkFUT1JfSERSMF9TRFJBTV9CQVNFICAgICAgMHg4MDAwMDAwMAojZGVmaW5lIElOVEVHUkFUT1JfSERSMV9TRFJBTV9CQVNFICAgICAgMHg5MDAwMDAwMAojZGVmaW5lIElOVEVHUkFUT1JfSERSMl9TRFJBTV9CQVNFICAgICAgMHhBMDAwMDAwMAojZGVmaW5lIElOVEVHUkFUT1JfSERSM19TRFJBTV9CQVNFICAgICAgMHhCMDAwMDAwMAoKLyogCiAqICBMb2dpYyBleHBhbnNpb24gbW9kdWxlcwogKiAKICovCiNkZWZpbmUgSU5URUdSQVRPUl9MT0dJQ19NT0RVTEVTX0JBU0UgICAweEMwMDAwMDAwCiNkZWZpbmUgSU5URUdSQVRPUl9MT0dJQ19NT0RVTEUwX0JBU0UgICAweEMwMDAwMDAwCiNkZWZpbmUgSU5URUdSQVRPUl9MT0dJQ19NT0RVTEUxX0JBU0UgICAweEQwMDAwMDAwCiNkZWZpbmUgSU5URUdSQVRPUl9MT0dJQ19NT0RVTEUyX0JBU0UgICAweEUwMDAwMDAwCiNkZWZpbmUgSU5URUdSQVRPUl9MT0dJQ19NT0RVTEUzX0JBU0UgICAweEYwMDAwMDAwCgovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICogIEludGVncmF0b3IgaGVhZGVyIGNhcmQgcmVnaXN0ZXJzCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKiAKICovCiNkZWZpbmUgSU5URUdSQVRPUl9IRFJfSURfT0ZGU0VUICAgICAgICAweDAwCiNkZWZpbmUgSU5URUdSQVRPUl9IRFJfUFJPQ19PRkZTRVQgICAgICAweDA0CiNkZWZpbmUgSU5URUdSQVRPUl9IRFJfT1NDX09GRlNFVCAgICAgICAweDA4CiNkZWZpbmUgSU5URUdSQVRPUl9IRFJfQ1RSTF9PRkZTRVQgICAgICAweDBDCiNkZWZpbmUgSU5URUdSQVRPUl9IRFJfU1RBVF9PRkZTRVQgICAgICAweDEwCiNkZWZpbmUgSU5URUdSQVRPUl9IRFJfTE9DS19PRkZTRVQgICAgICAweDE0CiNkZWZpbmUgSU5URUdSQVRPUl9IRFJfU0RSQU1fT0ZGU0VUICAgICAweDIwCiNkZWZpbmUgSU5URUdSQVRPUl9IRFJfSU5JVF9PRkZTRVQgICAgICAweDI0CSAvKiAgQ005eDYgKi8KI2RlZmluZSBJTlRFR1JBVE9SX0hEUl9JQ19PRkZTRVQgICAgICAgIDB4NDAKI2RlZmluZSBJTlRFR1JBVE9SX0hEUl9TUERCQVNFX09GRlNFVCAgIDB4MTAwCiNkZWZpbmUgSU5URUdSQVRPUl9IRFJfU1BEVE9QX09GRlNFVCAgICAweDIwMAoKI2RlZmluZSBJTlRFR1JBVE9SX0hEUl9CQVNFICAgICAgICAgICAgIDB4MTAwMDAwMDAKI2RlZmluZSBJTlRFR1JBVE9SX0hEUl9JRCAgICAgICAgICAgICAgIChJTlRFR1JBVE9SX0hEUl9CQVNFICsgSU5URUdSQVRPUl9IRFJfSURfT0ZGU0VUKQojZGVmaW5lIElOVEVHUkFUT1JfSERSX1BST0MgICAgICAgICAgICAgKElOVEVHUkFUT1JfSERSX0JBU0UgKyBJTlRFR1JBVE9SX0hEUl9QUk9DX09GRlNFVCkKI2RlZmluZSBJTlRFR1JBVE9SX0hEUl9PU0MgICAgICAgICAgICAgIChJTlRFR1JBVE9SX0hEUl9CQVNFICsgSU5URUdSQVRPUl9IRFJfT1NDX09GRlNFVCkKI2RlZmluZSBJTlRFR1JBVE9SX0hEUl9DVFJMICAgICAgICAgICAgIChJTlRFR1JBVE9SX0hEUl9CQVNFICsgSU5URUdSQVRPUl9IRFJfQ1RSTF9PRkZTRVQpCiNkZWZpbmUgSU5URUdSQVRPUl9IRFJfU1RBVCAgICAgICAgICAgICAoSU5URUdSQVRPUl9IRFJfQkFTRSArIElOVEVHUkFUT1JfSERSX1NUQVRfT0ZGU0VUKQojZGVmaW5lIElOVEVHUkFUT1JfSERSX0xPQ0sgICAgICAgICAgICAgKElOVEVHUkFUT1JfSERSX0JBU0UgKyBJTlRFR1JBVE9SX0hEUl9MT0NLX09GRlNFVCkKI2RlZmluZSBJTlRFR1JBVE9SX0hEUl9TRFJBTSAgICAgICAgICAgIChJTlRFR1JBVE9SX0hEUl9CQVNFICsgSU5URUdSQVRPUl9IRFJfU0RSQU1fT0ZGU0VUKQojZGVmaW5lIElOVEVHUkFUT1JfSERSX0lOSVQgICAgICAgICAgICAgKElOVEVHUkFUT1JfSERSX0JBU0UgKyBJTlRFR1JBVE9SX0hEUl9JTklUX09GRlNFVCkKI2RlZmluZSBJTlRFR1JBVE9SX0hEUl9JQyAgICAgICAgICAgICAgIChJTlRFR1JBVE9SX0hEUl9CQVNFICsgSU5URUdSQVRPUl9IRFJfSUNfT0ZGU0VUKQojZGVmaW5lIElOVEVHUkFUT1JfSERSX1NQREJBU0UgICAgICAgICAgKElOVEVHUkFUT1JfSERSX0JBU0UgKyBJTlRFR1JBVE9SX0hEUl9TUERCQVNFX09GRlNFVCkKI2RlZmluZSBJTlRFR1JBVE9SX0hEUl9TUERUT1AgICAgICAgICAgIChJTlRFR1JBVE9SX0hEUl9CQVNFICsgSU5URUdSQVRPUl9IRFJfU1BEVE9QX09GRlNFVCkKCiNkZWZpbmUgSU5URUdSQVRPUl9IRFJfQ1RSTF9MRUQgICAgICAgICAweDAxCiNkZWZpbmUgSU5URUdSQVRPUl9IRFJfQ1RSTF9NQlJEX0RFVEVDSCAweDAyCiNkZWZpbmUgSU5URUdSQVRPUl9IRFJfQ1RSTF9SRU1BUCAgICAgICAweDA0CiNkZWZpbmUgSU5URUdSQVRPUl9IRFJfQ1RSTF9SRVNFVCAgICAgICAweDA4CiNkZWZpbmUgSU5URUdSQVRPUl9IRFJfQ1RSTF9ISUdIVkVDVE9SUyAweDEwCiNkZWZpbmUgSU5URUdSQVRPUl9IRFJfQ1RSTF9CSUdfRU5ESUFOICAweDIwCiNkZWZpbmUgSU5URUdSQVRPUl9IRFJfQ1RSTF9GQVNUQlVTICAgICAweDQwCiNkZWZpbmUgSU5URUdSQVRPUl9IRFJfQ1RSTF9TWU5DICAgICAgICAweDgwCgojZGVmaW5lIElOVEVHUkFUT1JfSERSX09TQ19DT1JFXzEwTUh6ICAgMHgxMDIKI2RlZmluZSBJTlRFR1JBVE9SX0hEUl9PU0NfQ09SRV8xNU1IeiAgIDB4MTA3CiNkZWZpbmUgSU5URUdSQVRPUl9IRFJfT1NDX0NPUkVfMjBNSHogICAweDEwQwojZGVmaW5lIElOVEVHUkFUT1JfSERSX09TQ19DT1JFXzI1TUh6ICAgMHgxMTEKI2RlZmluZSBJTlRFR1JBVE9SX0hEUl9PU0NfQ09SRV8zME1IeiAgIDB4MTE2CiNkZWZpbmUgSU5URUdSQVRPUl9IRFJfT1NDX0NPUkVfMzVNSHogICAweDExQgojZGVmaW5lIElOVEVHUkFUT1JfSERSX09TQ19DT1JFXzQwTUh6ICAgMHgxMjAKI2RlZmluZSBJTlRFR1JBVE9SX0hEUl9PU0NfQ09SRV80NU1IeiAgIDB4MTI1CiNkZWZpbmUgSU5URUdSQVRPUl9IRFJfT1NDX0NPUkVfNTBNSHogICAweDEyQQojZGVmaW5lIElOVEVHUkFUT1JfSERSX09TQ19DT1JFXzU1TUh6ICAgMHgxMkYKI2RlZmluZSBJTlRFR1JBVE9SX0hEUl9PU0NfQ09SRV82ME1IeiAgIDB4MTM0CiNkZWZpbmUgSU5URUdSQVRPUl9IRFJfT1NDX0NPUkVfNjVNSHogICAweDEzOQojZGVmaW5lIElOVEVHUkFUT1JfSERSX09TQ19DT1JFXzcwTUh6ICAgMHgxM0UKI2RlZmluZSBJTlRFR1JBVE9SX0hEUl9PU0NfQ09SRV83NU1IeiAgIDB4MTQzCiNkZWZpbmUgSU5URUdSQVRPUl9IRFJfT1NDX0NPUkVfODBNSHogICAweDE0OAojZGVmaW5lIElOVEVHUkFUT1JfSERSX09TQ19DT1JFXzg1TUh6ICAgMHgxNEQKI2RlZmluZSBJTlRFR1JBVE9SX0hEUl9PU0NfQ09SRV85ME1IeiAgIDB4MTUyCiNkZWZpbmUgSU5URUdSQVRPUl9IRFJfT1NDX0NPUkVfOTVNSHogICAweDE1NwojZGVmaW5lIElOVEVHUkFUT1JfSERSX09TQ19DT1JFXzEwME1IeiAgMHgxNUMKI2RlZmluZSBJTlRFR1JBVE9SX0hEUl9PU0NfQ09SRV8xMDVNSHogIDB4MTYxCiNkZWZpbmUgSU5URUdSQVRPUl9IRFJfT1NDX0NPUkVfMTEwTUh6ICAweDE2NgojZGVmaW5lIElOVEVHUkFUT1JfSERSX09TQ19DT1JFXzExNU1IeiAgMHgxNkIKI2RlZmluZSBJTlRFR1JBVE9SX0hEUl9PU0NfQ09SRV8xMjBNSHogIDB4MTcwCiNkZWZpbmUgSU5URUdSQVRPUl9IRFJfT1NDX0NPUkVfMTI1TUh6ICAweDE3NQojZGVmaW5lIElOVEVHUkFUT1JfSERSX09TQ19DT1JFXzEzME1IeiAgMHgxN0EKI2RlZmluZSBJTlRFR1JBVE9SX0hEUl9PU0NfQ09SRV8xMzVNSHogIDB4MTdGCiNkZWZpbmUgSU5URUdSQVRPUl9IRFJfT1NDX0NPUkVfMTQwTUh6ICAweDE4NAojZGVmaW5lIElOVEVHUkFUT1JfSERSX09TQ19DT1JFXzE0NU1IeiAgMHgxODkKI2RlZmluZSBJTlRFR1JBVE9SX0hEUl9PU0NfQ09SRV8xNTBNSHogIDB4MThFCiNkZWZpbmUgSU5URUdSQVRPUl9IRFJfT1NDX0NPUkVfMTU1TUh6ICAweDE5MwojZGVmaW5lIElOVEVHUkFUT1JfSERSX09TQ19DT1JFXzE2ME1IeiAgMHgxOTgKI2RlZmluZSBJTlRFR1JBVE9SX0hEUl9PU0NfQ09SRV9NQVNLICAgIDB4N0ZGCgojZGVmaW5lIElOVEVHUkFUT1JfSERSX09TQ19NRU1fMTBNSHogICAgMHgxMEMwMDAKI2RlZmluZSBJTlRFR1JBVE9SX0hEUl9PU0NfTUVNXzE1TUh6ICAgIDB4MTE2MDAwCiNkZWZpbmUgSU5URUdSQVRPUl9IRFJfT1NDX01FTV8yME1IeiAgICAweDEyMDAwMAojZGVmaW5lIElOVEVHUkFUT1JfSERSX09TQ19NRU1fMjVNSHogICAgMHgxMkEwMDAKI2RlZmluZSBJTlRFR1JBVE9SX0hEUl9PU0NfTUVNXzMwTUh6ICAgIDB4MTM0MDAwCiNkZWZpbmUgSU5URUdSQVRPUl9IRFJfT1NDX01FTV8zM01IeiAgICAweDEzQTAwMAojZGVmaW5lIElOVEVHUkFUT1JfSERSX09TQ19NRU1fNDBNSHogICAgMHgxNDgwMDAKI2RlZmluZSBJTlRFR1JBVE9SX0hEUl9PU0NfTUVNXzUwTUh6ICAgIDB4MTVDMDAwCiNkZWZpbmUgSU5URUdSQVRPUl9IRFJfT1NDX01FTV82ME1IeiAgICAweDE3MDAwMAojZGVmaW5lIElOVEVHUkFUT1JfSERSX09TQ19NRU1fNjZNSHogICAgMHgxN0MwMDAKI2RlZmluZSBJTlRFR1JBVE9SX0hEUl9PU0NfTUVNX01BU0sgICAgIDB4N0ZGMDAwCgojZGVmaW5lIElOVEVHUkFUT1JfSERSX09TQ19CVVNfTU9ERV9DTTd4MCAgMHgwCiNkZWZpbmUgSU5URUdSQVRPUl9IRFJfT1NDX0JVU19NT0RFX0NNOXgwICAweDA4MDAwMDAKI2RlZmluZSBJTlRFR1JBVE9SX0hEUl9PU0NfQlVTX01PREVfQ005eDYgIDB4MTAwMDAwMAojZGVmaW5lIElOVEVHUkFUT1JfSERSX09TQ19CVVNfTU9ERV9DTTEweDAwICAweDE4MDAwMDAKI2RlZmluZSBJTlRFR1JBVE9SX0hEUl9PU0NfQlVTX01PREVfTUFTSyAgMHgxODAwMDAwCgojZGVmaW5lIElOVEVHUkFUT1JfSERSX1NEUkFNX1NQRF9PSyAgICAgKDEgPDwgNSkKCgovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICogIEludGVncmF0b3Igc3lzdGVtIHJlZ2lzdGVycwogKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICogCiAqLwoKLyogCiAqICBTeXN0ZW0gQ29udHJvbGxlcgogKiAKICovCiNkZWZpbmUgSU5URUdSQVRPUl9TQ19JRF9PRkZTRVQgICAgICAgICAweDAwCiNkZWZpbmUgSU5URUdSQVRPUl9TQ19PU0NfT0ZGU0VUICAgICAgICAweDA0CiNkZWZpbmUgSU5URUdSQVRPUl9TQ19DVFJMU19PRkZTRVQgICAgICAweDA4CiNkZWZpbmUgSU5URUdSQVRPUl9TQ19DVFJMQ19PRkZTRVQgICAgICAweDBDCiNkZWZpbmUgSU5URUdSQVRPUl9TQ19ERUNfT0ZGU0VUICAgICAgICAweDEwCiNkZWZpbmUgSU5URUdSQVRPUl9TQ19BUkJfT0ZGU0VUICAgICAgICAweDE0CiNkZWZpbmUgSU5URUdSQVRPUl9TQ19QQ0lFTkFCTEVfT0ZGU0VUICAweDE4CiNkZWZpbmUgSU5URUdSQVRPUl9TQ19MT0NLX09GRlNFVCAgICAgICAweDFDCgojZGVmaW5lIElOVEVHUkFUT1JfU0NfQkFTRSAgICAgICAgICAgICAgMHgxMTAwMDAwMAojZGVmaW5lIElOVEVHUkFUT1JfU0NfSUQgICAgICAgICAgICAgICAgKElOVEVHUkFUT1JfU0NfQkFTRSArIElOVEVHUkFUT1JfU0NfSURfT0ZGU0VUKQojZGVmaW5lIElOVEVHUkFUT1JfU0NfT1NDICAgICAgICAgICAgICAgKElOVEVHUkFUT1JfU0NfQkFTRSArIElOVEVHUkFUT1JfU0NfT1NDX09GRlNFVCkKI2RlZmluZSBJTlRFR1JBVE9SX1NDX0NUUkxTICAgICAgICAgICAgIChJTlRFR1JBVE9SX1NDX0JBU0UgKyBJTlRFR1JBVE9SX1NDX0NUUkxTX09GRlNFVCkKI2RlZmluZSBJTlRFR1JBVE9SX1NDX0NUUkxDICAgICAgICAgICAgIChJTlRFR1JBVE9SX1NDX0JBU0UgKyBJTlRFR1JBVE9SX1NDX0NUUkxDX09GRlNFVCkKI2RlZmluZSBJTlRFR1JBVE9SX1NDX0RFQyAgICAgICAgICAgICAgIChJTlRFR1JBVE9SX1NDX0JBU0UgKyBJTlRFR1JBVE9SX1NDX0RFQ19PRkZTRVQpCiNkZWZpbmUgSU5URUdSQVRPUl9TQ19BUkIgICAgICAgICAgICAgICAoSU5URUdSQVRPUl9TQ19CQVNFICsgSU5URUdSQVRPUl9TQ19BUkJfT0ZGU0VUKQojZGVmaW5lIElOVEVHUkFUT1JfU0NfUENJRU5BQkxFICAgICAgICAgKElOVEVHUkFUT1JfU0NfQkFTRSArIElOVEVHUkFUT1JfU0NfUENJRU5BQkxFX09GRlNFVCkKI2RlZmluZSBJTlRFR1JBVE9SX1NDX0xPQ0sgICAgICAgICAgICAgIChJTlRFR1JBVE9SX1NDX0JBU0UgKyBJTlRFR1JBVE9SX1NDX0xPQ0tfT0ZGU0VUKQoKI2RlZmluZSBJTlRFR1JBVE9SX1NDX09TQ19TWVNfMTBNSHogICAgIDB4MjAKI2RlZmluZSBJTlRFR1JBVE9SX1NDX09TQ19TWVNfMTVNSHogICAgIDB4MzQKI2RlZmluZSBJTlRFR1JBVE9SX1NDX09TQ19TWVNfMjBNSHogICAgIDB4NDgKI2RlZmluZSBJTlRFR1JBVE9SX1NDX09TQ19TWVNfMjVNSHogICAgIDB4NUMKI2RlZmluZSBJTlRFR1JBVE9SX1NDX09TQ19TWVNfMzNNSHogICAgIDB4N0MKI2RlZmluZSBJTlRFR1JBVE9SX1NDX09TQ19TWVNfTUFTSyAgICAgIDB4RkYKCiNkZWZpbmUgSU5URUdSQVRPUl9TQ19PU0NfUENJXzI1TUh6ICAgICAweDEwMAojZGVmaW5lIElOVEVHUkFUT1JfU0NfT1NDX1BDSV8zM01IeiAgICAgMHgwCiNkZWZpbmUgSU5URUdSQVRPUl9TQ19PU0NfUENJX01BU0sgICAgICAweDEwMAoKI2RlZmluZSBJTlRFR1JBVE9SX1NDX0NUUkxfU09GVFJTVCAgICAgICgxIDw8IDApCiNkZWZpbmUgSU5URUdSQVRPUl9TQ19DVFJMX25GTFZQUEVOICAgICAoMSA8PCAxKQojZGVmaW5lIElOVEVHUkFUT1JfU0NfQ1RSTF9uRkxXUCAgICAgICAgKDEgPDwgMikKI2RlZmluZSBJTlRFR1JBVE9SX1NDX0NUUkxfVVJUUzAgICAgICAgICgxIDw8IDQpCiNkZWZpbmUgSU5URUdSQVRPUl9TQ19DVFJMX1VEVFIwICAgICAgICAoMSA8PCA1KQojZGVmaW5lIElOVEVHUkFUT1JfU0NfQ1RSTF9VUlRTMSAgICAgICAgKDEgPDwgNikKI2RlZmluZSBJTlRFR1JBVE9SX1NDX0NUUkxfVURUUjEgICAgICAgICgxIDw8IDcpCgovKiAKICogIEV4dGVybmFsIEJ1cyBJbnRlcmZhY2UKICogCiAqLwojZGVmaW5lIElOVEVHUkFUT1JfRUJJX0JBU0UgICAgICAgICAgICAgMHgxMjAwMDAwMCAKCiNkZWZpbmUgSU5URUdSQVRPUl9FQklfQ1NSMF9PRkZTRVQgICAgICAweDAwCiNkZWZpbmUgSU5URUdSQVRPUl9FQklfQ1NSMV9PRkZTRVQgICAgICAweDA0CiNkZWZpbmUgSU5URUdSQVRPUl9FQklfQ1NSMl9PRkZTRVQgICAgICAweDA4CiNkZWZpbmUgSU5URUdSQVRPUl9FQklfQ1NSM19PRkZTRVQgICAgICAweDBDCiNkZWZpbmUgSU5URUdSQVRPUl9FQklfTE9DS19PRkZTRVQgICAgICAweDIwCgojZGVmaW5lIElOVEVHUkFUT1JfRUJJX0NTUjAgICAgICAgICAgICAgKElOVEVHUkFUT1JfRUJJX0JBU0UgKyBJTlRFR1JBVE9SX0VCSV9DU1IwX09GRlNFVCkKI2RlZmluZSBJTlRFR1JBVE9SX0VCSV9DU1IxICAgICAgICAgICAgIChJTlRFR1JBVE9SX0VCSV9CQVNFICsgSU5URUdSQVRPUl9FQklfQ1NSMV9PRkZTRVQpCiNkZWZpbmUgSU5URUdSQVRPUl9FQklfQ1NSMiAgICAgICAgICAgICAoSU5URUdSQVRPUl9FQklfQkFTRSArIElOVEVHUkFUT1JfRUJJX0NTUjJfT0ZGU0VUKQojZGVmaW5lIElOVEVHUkFUT1JfRUJJX0NTUjMgICAgICAgICAgICAgKElOVEVHUkFUT1JfRUJJX0JBU0UgKyBJTlRFR1JBVE9SX0VCSV9DU1IzX09GRlNFVCkKI2RlZmluZSBJTlRFR1JBVE9SX0VCSV9MT0NLICAgICAgICAgICAgIChJTlRFR1JBVE9SX0VCSV9CQVNFICsgSU5URUdSQVRPUl9FQklfTE9DS19PRkZTRVQpCgojZGVmaW5lIElOVEVHUkFUT1JfRUJJXzhfQklUICAgICAgICAgICAgMHgwMAojZGVmaW5lIElOVEVHUkFUT1JfRUJJXzE2X0JJVCAgICAgICAgICAgMHgwMQojZGVmaW5lIElOVEVHUkFUT1JfRUJJXzMyX0JJVCAgICAgICAgICAgMHgwMgojZGVmaW5lIElOVEVHUkFUT1JfRUJJX1dSSVRFX0VOQUJMRSAgICAgMHgwNAojZGVmaW5lIElOVEVHUkFUT1JfRUJJX1NZTkMgICAgICAgICAgICAgMHgwOAojZGVmaW5lIElOVEVHUkFUT1JfRUJJX1dTXzIgICAgICAgICAgICAgMHgwMAojZGVmaW5lIElOVEVHUkFUT1JfRUJJX1dTXzMgICAgICAgICAgICAgMHgxMAojZGVmaW5lIElOVEVHUkFUT1JfRUJJX1dTXzQgICAgICAgICAgICAgMHgyMAojZGVmaW5lIElOVEVHUkFUT1JfRUJJX1dTXzUgICAgICAgICAgICAgMHgzMAojZGVmaW5lIElOVEVHUkFUT1JfRUJJX1dTXzYgICAgICAgICAgICAgMHg0MAojZGVmaW5lIElOVEVHUkFUT1JfRUJJX1dTXzcgICAgICAgICAgICAgMHg1MAojZGVmaW5lIElOVEVHUkFUT1JfRUJJX1dTXzggICAgICAgICAgICAgMHg2MAojZGVmaW5lIElOVEVHUkFUT1JfRUJJX1dTXzkgICAgICAgICAgICAgMHg3MAojZGVmaW5lIElOVEVHUkFUT1JfRUJJX1dTXzEwICAgICAgICAgICAgMHg4MAojZGVmaW5lIElOVEVHUkFUT1JfRUJJX1dTXzExICAgICAgICAgICAgMHg5MAojZGVmaW5lIElOVEVHUkFUT1JfRUJJX1dTXzEyICAgICAgICAgICAgMHhBMAojZGVmaW5lIElOVEVHUkFUT1JfRUJJX1dTXzEzICAgICAgICAgICAgMHhCMAojZGVmaW5lIElOVEVHUkFUT1JfRUJJX1dTXzE0ICAgICAgICAgICAgMHhDMAojZGVmaW5lIElOVEVHUkFUT1JfRUJJX1dTXzE1ICAgICAgICAgICAgMHhEMAojZGVmaW5lIElOVEVHUkFUT1JfRUJJX1dTXzE2ICAgICAgICAgICAgMHhFMAojZGVmaW5lIElOVEVHUkFUT1JfRUJJX1dTXzE3ICAgICAgICAgICAgMHhGMAoKCiNkZWZpbmUgSU5URUdSQVRPUl9DVF9CQVNFICAgICAgICAgICAgICAweDEzMDAwMDAwCSAvKiAgQ291bnRlci9UaW1lcnMgKi8KI2RlZmluZSBJTlRFR1JBVE9SX0lDX0JBU0UgICAgICAgICAgICAgIDB4MTQwMDAwMDAJIC8qICBJbnRlcnJ1cHQgQ29udHJvbGxlciAqLwojZGVmaW5lIElOVEVHUkFUT1JfUlRDX0JBU0UgICAgICAgICAgICAgMHgxNTAwMDAwMAkgLyogIFJlYWwgVGltZSBDbG9jayAqLwojZGVmaW5lIElOVEVHUkFUT1JfVUFSVDBfQkFTRSAgICAgICAgICAgMHgxNjAwMDAwMAkgLyogIFVBUlQgMCAqLwojZGVmaW5lIElOVEVHUkFUT1JfVUFSVDFfQkFTRSAgICAgICAgICAgMHgxNzAwMDAwMAkgLyogIFVBUlQgMSAqLwojZGVmaW5lIElOVEVHUkFUT1JfS0JEX0JBU0UgICAgICAgICAgICAgMHgxODAwMDAwMAkgLyogIEtleWJvYXJkICovCiNkZWZpbmUgSU5URUdSQVRPUl9NT1VTRV9CQVNFICAgICAgICAgICAweDE5MDAwMDAwCSAvKiAgTW91c2UgKi8KCi8qIAogKiAgTEVEJ3MgJiBTd2l0Y2hlcwogKiAKICovCiNkZWZpbmUgSU5URUdSQVRPUl9EQkdfQUxQSEFfT0ZGU0VUICAgICAweDAwCiNkZWZpbmUgSU5URUdSQVRPUl9EQkdfTEVEU19PRkZTRVQgICAgICAweDA0CiNkZWZpbmUgSU5URUdSQVRPUl9EQkdfU1dJVENIX09GRlNFVCAgICAweDA4CgojZGVmaW5lIElOVEVHUkFUT1JfREJHX0JBU0UgICAgICAgICAgICAgMHgxQTAwMDAwMAojZGVmaW5lIElOVEVHUkFUT1JfREJHX0FMUEhBICAgICAgICAgICAgKElOVEVHUkFUT1JfREJHX0JBU0UgKyBJTlRFR1JBVE9SX0RCR19BTFBIQV9PRkZTRVQpCiNkZWZpbmUgSU5URUdSQVRPUl9EQkdfTEVEUyAgICAgICAgICAgICAoSU5URUdSQVRPUl9EQkdfQkFTRSArIElOVEVHUkFUT1JfREJHX0xFRFNfT0ZGU0VUKQojZGVmaW5lIElOVEVHUkFUT1JfREJHX1NXSVRDSCAgICAgICAgICAgKElOVEVHUkFUT1JfREJHX0JBU0UgKyBJTlRFR1JBVE9SX0RCR19TV0lUQ0hfT0ZGU0VUKQoKCiNkZWZpbmUgSU5URUdSQVRPUl9HUElPX0JBU0UgICAgICAgICAgICAweDFCMDAwMDAwCSAvKiAgR1BJTyAqLwoKLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqICBLTUkga2V5Ym9hcmQvbW91c2UgZGVmaW5pdGlvbnMKICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqLwovKiBQUzIgS2V5Ym9hcmQgaW50ZXJmYWNlICovCiNkZWZpbmUgS01JMF9CQVNFICAgICAgICAgICAgICAgICAgICAgICBJTlRFR1JBVE9SX0tCRF9CQVNFCQkKCi8qIFBTMiBNb3VzZSBpbnRlcmZhY2UgKi8KI2RlZmluZSBLTUkxX0JBU0UgICAgICAgICAgICAgICAgICAgICAgIElOVEVHUkFUT1JfTU9VU0VfQkFTRQoKLyogS01JIGRlZmluaXRpb25zIGFyZSBub3cgaW4gaW5jbHVkZS9hc20tYXJtL2hhcmR3YXJlL2FtYmFfa21pLmggLS0gcm1rICovCgovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICogIFdoZXJlIGluIHRoZSBtZW1vcnkgbWFwIGRvZXMgUENJIGxpdmU/CiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKiAgVGhpcyByZXByZXNlbnRzIGEgZmFpcmx5IGxpYmVyYWwgdXNhZ2Ugb2YgYWRkcmVzcyBzcGFjZS4gIEV2ZW4gdGhvdWdoCiAqICB0aGUgVjMgb25seSBoYXMgdHdvIHdpbmRvd3MgKHRoZXJlZm9yZSB3ZSBuZWVkIHRvIG1hcCBzdHVmZiBvbiB0aGUgZmx5KSwKICogIHdlIG1haW50YWluIHRoZSBzYW1lIGFkZHJlc3NlcywgZXZlbiBpZiB0aGV5J3JlIG5vdCBtYXBwZWQuCiAqIAogKi8KI2RlZmluZSBQSFlTX1BDSV9NRU1fQkFTRSAgICAgICAgICAgICAgIDB4NDAwMDAwMDAgICAvKiA1MTJNIHRvIHh4eCAqLwovKiAgdW51c2VkIDI1Nk0gZnJvbSBBMDAwMDAwMC1BRkZGRkZGRiBtaWdodCBiZSB1c2VkIGZvciBJMk8gPz8/CiAqLwojZGVmaW5lIFBIWVNfUENJX0lPX0JBU0UgICAgICAgICAgICAgICAgMHg2MDAwMDAwMCAgIC8qIDE2TSB0byB4eHggKi8KLyogIHVudXNlZCAoMTI4LTE2KU0gZnJvbSBCMTAwMDAwMC1CN0ZGRkZGRgogKi8KI2RlZmluZSBQSFlTX1BDSV9DT05GSUdfQkFTRSAgICAgICAgICAgIDB4NjEwMDAwMDAgICAvKiAxNk0gdG8geHh4ICovCi8qICB1bnVzZWQgKCgxMjgtMTYpTSAtIDY0SykgZnJvbSBYWFgKICovCiNkZWZpbmUgUEhZU19QQ0lfVjNfQkFTRSAgICAgICAgICAgICAgICAweDYyMDAwMDAwCgojZGVmaW5lIFBDSV9EUkFNU0laRSAgICAgICAgICAgICAgICAgICAgSU5URUdSQVRPUl9TU1JBTV9TSVpFCQoKLyogJ2V4cG9ydCcgdGhlc2UgdG8gVUhBTCAqLwojZGVmaW5lIFVIQUxfUENJX0lPICAgICAgICAgICAgICAgICAgICAgUENJX0lPX0JBU0UKI2RlZmluZSBVSEFMX1BDSV9NRU0gICAgICAgICAgICAgICAgICAgIFBDSV9NRU1fQkFTRQojZGVmaW5lIFVIQUxfUENJX0FMTE9DX0lPX0JBU0UgICAgICAgICAgMHgwMDAwNDAwMAojZGVmaW5lIFVIQUxfUENJX0FMTE9DX01FTV9CQVNFICAgICAgICAgUENJX01FTV9CQVNFCiNkZWZpbmUgVUhBTF9QQ0lfTUFYX1NMT1QgICAgICAgICAgICAgICAyMAoJCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKiAgU3RhcnQgb2YgdUhBTCBkZWZpbml0aW9ucwogKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICovCgovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICogIEludGVncmF0b3IgSW50ZXJydXB0IENvbnRyb2xsZXJzCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKiAKICogIE9mZnNldHMgZnJvbSBpbnRlcnJ1cHQgY29udHJvbGxlciBiYXNlIAogKiAKICogIFN5c3RlbSBDb250cm9sbGVyIGludGVycnVwdCBjb250cm9sbGVyIGJhc2UgaXMKICogCiAqIAlJTlRFR1JBVE9SX0lDX0JBU0UgKyAoaGVhZGVyX251bWJlciA8PCA2KQogKiAKICogIENvcmUgTW9kdWxlIGludGVycnVwdCBjb250cm9sbGVyIGJhc2UgaXMKICogCiAqIAlJTlRFR1JBVE9SX0hEUl9JQyAKICogCiAqLwojZGVmaW5lIElSUV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgMAojZGVmaW5lIElSUV9SQVdfU1RBVFVTICAgICAgICAgICAgICAgICAgMHgwNAojZGVmaW5lIElSUV9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgMHgwOAojZGVmaW5lIElSUV9FTkFCTEVfU0VUICAgICAgICAgICAgICAgICAgMHgwOAojZGVmaW5lIElSUV9FTkFCTEVfQ0xFQVIgICAgICAgICAgICAgICAgMHgwQwoKI2RlZmluZSBJTlRfU09GVF9TRVQgICAgICAgICAgICAgICAgICAgIDB4MTAKI2RlZmluZSBJTlRfU09GVF9DTEVBUiAgICAgICAgICAgICAgICAgIDB4MTQKCiNkZWZpbmUgRklRX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAweDIwCiNkZWZpbmUgRklRX1JBV19TVEFUVVMgICAgICAgICAgICAgICAgICAweDI0CiNkZWZpbmUgRklRX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAweDI4CiNkZWZpbmUgRklRX0VOQUJMRV9TRVQgICAgICAgICAgICAgICAgICAweDI4CiNkZWZpbmUgRklRX0VOQUJMRV9DTEVBUiAgICAgICAgICAgICAgICAweDJDCgoKLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqICBJbnRlcnJ1cHRzCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKiAKICogIAogKiAgRWFjaCBDb3JlIE1vZHVsZSBoYXMgdHdvIGludGVycnVwdHMgY29udHJvbGxlcnMsIG9uZSBvbiB0aGUgY29yZSBtb2R1bGUKICogIGl0c2VsZiBhbmQgb25lIGluIHRoZSBzeXN0ZW0gY29udHJvbGxlciBvbiB0aGUgbW90aGVyYm9hcmQuICBUaGUKICogIFJFQURfSU5UIG1hY3JvIGluIHRhcmdldC5zIHJlYWRzIGJvdGggaW50ZXJydXB0IGNvbnRyb2xsZXJzIGFuZCByZXR1cm5zCiAqICBhIDMyIGJpdCBiaXRtYXNrLCBiaXRzIDAgdG8gMjMgYXJlIGludGVycnVwdHMgZnJvbSB0aGUgc3lzdGVtIGNvbnRyb2xsZXIKICogIGFuZCBiaXRzIDI0IHRvIDMxIGFyZSBmcm9tIHRoZSBjb3JlIG1vZHVsZS4KICogIAogKiAgVGhlIGZvbGxvd2luZyBkZWZpbml0aW9ucyByZWxhdGUgdG8gdGhlIGJpdG1hc2sgcmV0dXJuZWQgYnkgUkVBRF9JTlQuCiAqIAogKi8KCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKiAgTEVEJ3MgLSBUaGUgaGVhZGVyIExFRCBpcyBub3QgYWNjZXNzaWJsZSB2aWEgdGhlIHVIQUwgQVBJCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKiAKICovCiNkZWZpbmUgR1JFRU5fTEVEICAgICAgICAgICAgICAgICAgICAgICAweDAxCiNkZWZpbmUgWUVMTE9XX0xFRCAgICAgICAgICAgICAgICAgICAgICAweDAyCiNkZWZpbmUgUkVEX0xFRCAgICAgICAgICAgICAgICAgICAgICAgICAweDA0CiNkZWZpbmUgR1JFRU5fTEVEXzIgICAgICAgICAgICAgICAgICAgICAweDA4CiNkZWZpbmUgQUxMX0xFRFMgICAgICAgICAgICAgICAgICAgICAgICAweDBGCgojZGVmaW5lIExFRF9CQU5LICAgICAgICAgICAgICAgICAgICAgICAgSU5URUdSQVRPUl9EQkdfTEVEUwoKLyogCiAqICBNZW1vcnkgZGVmaW5pdGlvbnMgLSBydW4gdUhBTCBvdXQgb2YgU1NSQU0uCiAqIAogKi8KI2RlZmluZSB1SEFMX01FTU9SWV9TSVpFICAgICAgICAgICAgICAgIElOVEVHUkFUT1JfU1NSQU1fU0laRQoKLyogCiAqICBBcHBsaWNhdGlvbiBGbGFzaAogKiAKICovCiNkZWZpbmUgRkxBU0hfQkFTRSAgICAgICAgICAgICAgICAgICAgICBJTlRFR1JBVE9SX0ZMQVNIX0JBU0UKI2RlZmluZSBGTEFTSF9TSVpFICAgICAgICAgICAgICAgICAgICAgIElOVEVHUkFUT1JfRkxBU0hfU0laRQojZGVmaW5lIEZMQVNIX0VORCAgICAgICAgICAgICAgICAgICAgICAgKEZMQVNIX0JBU0UgKyBGTEFTSF9TSVpFIC0gMSkKI2RlZmluZSBGTEFTSF9CTE9DS19TSVpFICAgICAgICAgICAgICAgIFNaXzEyOEsKCi8qIAogKiAgQm9vdCBGbGFzaAogKiAKICovCiNkZWZpbmUgRVBST01fQkFTRSAgICAgICAgICAgICAgICAgICAgICBJTlRFR1JBVE9SX0JPT1RfUk9NX0hJCiNkZWZpbmUgRVBST01fU0laRSAgICAgICAgICAgICAgICAgICAgICBJTlRFR1JBVE9SX0JPT1RfUk9NX1NJWkUKI2RlZmluZSBFUFJPTV9FTkQgICAgICAgICAgICAgICAgICAgICAgIChFUFJPTV9CQVNFICsgRVBST01fU0laRSAtIDEpCgovKiAKICogIENsZWFuIGJhc2UgLSBkdW1teQogKiAKICovCiNkZWZpbmUgQ0xFQU5fQkFTRSAgICAgICAgICAgICAgICAgICAgICBFUFJPTV9CQVNFCgovKiAKICogIFRpbWVyIGRlZmluaXRpb25zCiAqIAogKiAgT25seSB1c2UgdGltZXIgMSAmIDIKICogIChib3RoIHJ1biBhdCAyNE1IeiBhbmQgd2lsbCBuZWVkIHRoZSBjbG9jayBkaXZpZGVyIHNldCB0byAxNikuCiAqIAogKiAgVGltZXIgMCBydW5zIGF0IGJ1cyBmcmVxdWVuY3kgYW5kIHRoZXJlZm9yZSBjb3VsZCB2YXJ5IGFuZCBjdXJyZW50bHkKICogIHVIQUwgY2FuJ3QgaGFuZGxlIHRoYXQuCiAqIAogKi8KCiNkZWZpbmUgSU5URUdSQVRPUl9USU1FUjBfQkFTRSAgICAgICAgICBJTlRFR1JBVE9SX0NUX0JBU0UKI2RlZmluZSBJTlRFR1JBVE9SX1RJTUVSMV9CQVNFICAgICAgICAgIChJTlRFR1JBVE9SX0NUX0JBU0UgKyAweDEwMCkKI2RlZmluZSBJTlRFR1JBVE9SX1RJTUVSMl9CQVNFICAgICAgICAgIChJTlRFR1JBVE9SX0NUX0JBU0UgKyAweDIwMCkKCiNkZWZpbmUgTUFYX1RJTUVSICAgICAgICAgICAgICAgICAgICAgICAyCiNkZWZpbmUgTUFYX1BFUklPRCAgICAgICAgICAgICAgICAgICAgICA2OTkwNTAKI2RlZmluZSBUSUNLU19QRVJfdVNFQyAgICAgICAgICAgICAgICAgIDI0CgovKiAKICogIFRoZXNlIGFyZSB1c2Vjb25kcyBOT1QgdGlja3MuICAKICogCiAqLwojZGVmaW5lIG1TRUNfMSAgICAgICAgICAgICAgICAgICAgICAgICAgMTAwMAojZGVmaW5lIG1TRUNfNSAgICAgICAgICAgICAgICAgICAgICAgICAgKG1TRUNfMSAqIDUpCiNkZWZpbmUgbVNFQ18xMCAgICAgICAgICAgICAgICAgICAgICAgICAobVNFQ18xICogMTApCiNkZWZpbmUgbVNFQ18yNSAgICAgICAgICAgICAgICAgICAgICAgICAobVNFQ18xICogMjUpCiNkZWZpbmUgU0VDXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAobVNFQ18xICogMTAwMCkKCiNkZWZpbmUgSU5URUdSQVRPUl9DU1JfQkFTRSAgICAgICAgICAgICAweDEwMDAwMDAwCiNkZWZpbmUgSU5URUdSQVRPUl9DU1JfU0laRSAgICAgICAgICAgICAweDEwMDAwMDAwCgojZW5kaWYKCi8qIAlFTkQgKi8K