SXMgdGhpcyB5b3VyIG93biBkZXNpZ24gb3IgYXJlIHlvdSB1c2luZyB0aGUgUElDMzJNWDc5NUY1 MTJMIFBsdWcgaW4gCm1vZHVsZSBvbiBhIE1pY3JvY2hpcCBldmFsIGJvYXJkP8KgIElmIHRoZSBs YXR0ZXIsIHRoZW4gcGluIDY2IG9uIHRoZSBJQyAKKGkuZS4gUkExNCkgaXMgcGluIDU3IG9uIHRo ZSBQSU0uCgpodHRwczovL3d3dy5taWNyb2NoaXAuY29tL2ZvcnVtcy9tNzYzNDI0LmFzcHgjNzYz NDI0CgpSZWdhcmRzCgpNaWtlCgpPbiAwNy8xMS8yMDE5IDIxOjMzLCBEYXZpZCBWYW4gSG9ybiB3 cm90ZToKPiBUcmllZCB0aGlzIGFzIHdlbGwgaW4gYSBzZXBhcmF0ZSBwcm9qZWN0Lgo+IFJBMTQg YWx3YXlzIHJlYWRzIGhpZ2gsIGFuZCBJIGNhbid0IGV2ZW4gbWFrZSBpdCB0b2dnbGUhCj4KPgo+ IC8vIDggTUh6IFh0YWwsIEZQTExJRElWID0gRElWXzIgc2V0cyA0IE1IeiBpbnRvIFBMTAo+IC8v IEZQTExNVUwgPSBNVUxfMjAgc2V0cyA4MCBNSHogb3V0cHV0IGZyb20gUExMCj4gLy8gRlBMTE9E SVYgPSBESVZfMSBzZXRzIDgwIE1IeiBDUFUgY2xvY2suCj4KPiAvLyBQSUMzMk1YNzk1RjUxMkwg Q29uZmlndXJhdGlvbiBCaXQgU2V0dGluZ3MKPiAvLyAnQycgc291cmNlIGxpbmUgY29uZmlnIHN0 YXRlbWVudHMKPiAvLyBERVZDRkczCj4gI3ByYWdtYSBjb25maWcgVVNFUklEID0gMHhGRkZGICAg ICAgICAgIC8vIEVudGVyIEhleGFkZWNpbWFsIHZhbHVlIChFbnRlciBIZXhhZGVjaW1hbCB2YWx1 ZSkKPiAjcHJhZ21hIGNvbmZpZyBGU1JTU0VMID0gUFJJT1JJVFlfNyAgICAgLy8gU1JTIFNlbGVj dCAoU1JTIFByaW9yaXR5IDcpCj4gI3ByYWdtYSBjb25maWcgRk1JSUVOID0gT0ZGICAgICAgICAg ICAgIC8vIEV0aGVybmV0IFJNSUkvTUlJIEVuYWJsZSAoUk1JSSBFbmFibGVkKQo+ICNwcmFnbWEg Y29uZmlnIEZFVEhJTyA9IE9GRiAgICAgICAgICAgICAvLyBFdGhlcm5ldCBJL08gUGluIFNlbGVj dCAoQWx0ZXJuYXRlIEV0aGVybmV0IEkvTykKPiAjcHJhZ21hIGNvbmZpZyBGQ0FOSU8gPSBPRkYg ICAgICAgICAgICAgLy8gQ0FOIEkvTyBQaW4gU2VsZWN0IChBbHRlcm5hdGUgQ0FOIEkvTykKPiAj cHJhZ21hIGNvbmZpZyBGVVNCSURJTyA9IE9GRiAgICAgICAgICAgLy8gVVNCIFVTSUQgU2VsZWN0 aW9uIChDb250cm9sbGVkIGJ5IFBvcnQgRnVuY3Rpb24pCj4gI3ByYWdtYSBjb25maWcgRlZCVVNP TklPID0gT0ZGICAgICAgICAgICAvLyBVU0IgVkJVUyBPTiBTZWxlY3Rpb24gKENvbnRyb2xsZWQg YnkgVVNCIE1vZHVsZSkKPgo+IC8vIERFVkNGRzIKPiAjcHJhZ21hIGNvbmZpZyBGUExMSURJViA9 IERJVl8yICAgICAgICAgLy8gUExMIElucHV0IERpdmlkZXIgKDJ4IERpdmlkZXIpCj4gI3ByYWdt YSBjb25maWcgRlBMTE1VTCA9IE1VTF8yMCAgICAgICAgIC8vIFBMTCBNdWx0aXBsaWVyICgyMHgg TXVsdGlwbGllcikKPiAjcHJhZ21hIGNvbmZpZyBVUExMSURJViA9IERJVl8xMiAgICAgICAgLy8g VVNCIFBMTCBJbnB1dCBEaXZpZGVyICgxMnggRGl2aWRlcikKPiAjcHJhZ21hIGNvbmZpZyBVUExM RU4gPSBPRkYgICAgICAgICAgICAgLy8gVVNCIFBMTCBFbmFibGUgKERpc2FibGVkIGFuZCBCeXBh c3NlZCkKPiAjcHJhZ21hIGNvbmZpZyBGUExMT0RJViA9IERJVl8xICAgICAgICAgLy8gU3lzdGVt IFBMTCBPdXRwdXQgQ2xvY2sgRGl2aWRlciAoUExMIERpdmlkZSBieSAxKQo+Cj4gLy8gREVWQ0ZH MQo+ICNwcmFnbWEgY29uZmlnIEZOT1NDID0gUFJJUExMICAgICAgICAgICAvLyBPc2NpbGxhdG9y IFNlbGVjdGlvbiBCaXRzIChQcmltYXJ5IE9zYyB3L1BMTCAoWFQrLEhTKyxFQytQTEwpKQo+ICNw cmFnbWEgY29uZmlnIEZTT1NDRU4gPSBPRkYgICAgICAgICAgICAvLyBTZWNvbmRhcnkgT3NjaWxs YXRvciBFbmFibGUgKERpc2FibGVkKQo+ICNwcmFnbWEgY29uZmlnIElFU08gPSBPRkYgICAgICAg ICAgICAgICAvLyBJbnRlcm5hbC9FeHRlcm5hbCBTd2l0Y2ggT3ZlciAoRGlzYWJsZWQpCj4gI3By YWdtYSBjb25maWcgUE9TQ01PRCA9IEhTICAgICAgICAgICAgIC8vIFByaW1hcnkgT3NjaWxsYXRv ciBDb25maWd1cmF0aW9uIChIUyBvc2MgbW9kZSkKPiAjcHJhZ21hIGNvbmZpZyBPU0NJT0ZOQyA9 IE9GRiAgICAgICAgICAgLy8gQ0xLTyBPdXRwdXQgU2lnbmFsIEFjdGl2ZSBvbiB0aGUgT1NDTyBQ aW4gKERpc2FibGVkKQo+ICNwcmFnbWEgY29uZmlnIEZQQkRJViA9IERJVl84ICAgICAgICAgICAv LyBQZXJpcGhlcmFsIENsb2NrIERpdmlzb3IgKFBiX0NsayBpcyBTeXNfQ2xrLzIpCj4KPiAjcHJh Z21hIGNvbmZpZyBGQ0tTTSA9IENTRENNRCAgICAgICAgICAgLy8gQ2xvY2sgU3dpdGNoaW5nIGFu ZCBNb25pdG9yIFNlbGVjdGlvbiAoQ2xvY2sgU3dpdGNoIERpc2FibGUsIEZTQ00gRGlzYWJsZWQp Cj4gI3ByYWdtYSBjb25maWcgV0RUUFMgPSBQUzEwNDg1NzYgICAgICAgIC8vIFdhdGNoZG9nIFRp bWVyIFBvc3RzY2FsZXIgKDE6MTA0ODU3NikKPiAjcHJhZ21hIGNvbmZpZyBGV0RURU4gPSBPRkYg ICAgICAgICAgICAgLy8gV2F0Y2hkb2cgVGltZXIgRW5hYmxlIChXRFQgRGlzYWJsZWQgKFNXRFRF TiBCaXQgQ29udHJvbHMpKQo+Cj4gLy8gREVWQ0ZHMAo+ICNwcmFnbWEgY29uZmlnIERFQlVHID0g T0ZGICAgICAgICAgICAgICAvLyBCYWNrZ3JvdW5kIERlYnVnZ2VyIEVuYWJsZSAoRGVidWdnZXIg aXMgZGlzYWJsZWQpCj4gI3ByYWdtYSBjb25maWcgSUNFU0VMID0gSUNTX1BHeDIgICAgICAgIC8v IElDRS9JQ0QgQ29tbSBDaGFubmVsIFNlbGVjdCAoSUNFIEVNVUMyL0VNVUQyIHBpbnMgc2hhcmVk IHdpdGggUEdDMi9QR0QyKQo+ICNwcmFnbWEgY29uZmlnIFBXUCA9IE9GRiAgICAgICAgICAgICAg ICAvLyBQcm9ncmFtIEZsYXNoIFdyaXRlIFByb3RlY3QgKERpc2FibGUpCj4gI3ByYWdtYSBjb25m aWcgQldQID0gT0ZGICAgICAgICAgICAgICAgIC8vIEJvb3QgRmxhc2ggV3JpdGUgUHJvdGVjdCBi aXQgKFByb3RlY3Rpb24gRGlzYWJsZWQpCj4gI3ByYWdtYSBjb25maWcgQ1AgPSBPRkYgICAgICAg ICAgICAgICAgIC8vIENvZGUgUHJvdGVjdCAoUHJvdGVjdGlvbiBEaXNhYmxlZCkKPgo+IC8vICNw cmFnbWEgY29uZmlnIHN0YXRlbWVudHMgc2hvdWxkIHByZWNlZGUgcHJvamVjdCBmaWxlIGluY2x1 ZGVzLgo+IC8vIFVzZSBwcm9qZWN0IGVudW1zIGluc3RlYWQgb2YgI2RlZmluZSBmb3IgT04gYW5k IE9GRi4KPgo+ICNpbmNsdWRlIDx4Yy5oPgo+Cj4gdm9pZCBtYWluKHZvaWQpIHsKPgo+ICAgICAg aW50IHRlbXA7Cj4KPiAgICAgIHdoaWxlICgxKSB7Cj4gICAgICAgICAgLy93aGlsZSAoMSkgewo+ ICAgICAgICAgICAgICBUUklTQUNMUiA9ICgxIDw8IDE0KTsgLy8gT3V0cHV0Cj4gICAgICAgICAg ICAgIFBPUlRBU0VUID0gKDEgPDwgMTQpOyAvLyBUb2dnbGUKPiAgICAgICAgICAgICAgUE9SVEFD TFIgPSAoMSA8PCAxNCk7IC8vIEkvTyBwaW4gaXMgc29saWRseSBsb3cgd2hlbiB0aGlzIGxvb3Ag cnVucwo+ICAgICAgICAgLy8gfQo+ICAgICAgICAgIFRSSVNBU0VUID0gKDEgPDwgMTQpOyAvLyBJ bnB1dAo+ICAgICAgICAgIHRlbXAgPSBQT1JUQTsKPiAgICAgICAgICB0ZW1wICY9ICgxIDw8IDE0 KTsgLy9NYXNrIG9mZiBhbGwgYnV0IGJpdCAxNAo+ICAgICAgICAgIGlmICgwID09IHRlbXApIHsK PiAgICAgICAgICAgICAgd2hpbGUgKDEpIHsKPiAgICAgICAgICAgICAgICAgIHRlbXArKzsgLy8g aGFuZyBoZXJlIGlmIGlucHV0IGlzIGxvdwo+ICAgICAgICAgICAgICB9Cj4gICAgICAgICAgfSBl bHNlIHsKPiAgICAgICAgICAgICAgd2hpbGUgKDEpIHsKPiAgICAgICAgICAgICAgICAgIHRlbXAr KzsgLy8gaGFuZyBoZXJlIGlmIGlucHV0IGlzICBoaWdoCj4gICAgICAgICAgICAgIH0KPiAgICAg ICAgICB9Cj4gICAgICB9Cj4gfQo+IC0tCj4gRGF2aWQgVmFuSG9ybgo+IExlYWQgSGFyZHdhcmUg RW5naW5lZXIKPgo+IEJhY2tjb3VudHJ5IEFjY2VzcywgSW5jLgo+IDI4MjAgV2lsZGVybmVzcyBQ bCwgVW5pdCBICj4gQm91bGRlciwgQ08gwqA4MDMwMSBVU0EKPiBwaG9uZTrCoDMwMy00MTctMTM0 NSDCoHgxMTAKPiBlbWFpbDrCoGRhdmlkLnZhbmhvcm5AYmFja2NvdW50cnlhY2Nlc3MuY29tCj4K PgoKLS0gCmh0dHA6Ly93d3cucGljbGlzdC5jb20vdGVjaHJlZi9waWNsaXN0IFBJQy9TWCBGQVEg JiBsaXN0IGFyY2hpdmUKVmlldy9jaGFuZ2UgeW91ciBtZW1iZXJzaGlwIG9wdGlvbnMgYXQKaHR0 cDovL21haWxtYW4ubWl0LmVkdS9tYWlsbWFuL2xpc3RpbmZvL3BpY2xpc3QK .