JWdsb2JhbCBWRVJTSU9OICBAUEFDS0FHRV9WRVJTSU9OQAolZ2xvYmFsIFBhdGNobGV2ZWwgIEBQQUNLQUdFX1JFTEVBU0VACgpOYW1lOiAgICAgICAgICAgQFBBQ0tBR0VfTkFNRUAKVmVyc2lvbjogICAgICAgICV7VkVSU0lPTn0KUmVsZWFzZTogICAgICAgICV7UGF0Y2hsZXZlbH0KU3VtbWFyeTogICAgICAgIEltYWdlTWFnaWNrIGlzIGEgc29mdHdhcmUgc3VpdGUgdG8gY3JlYXRlLCBlZGl0LCBhbmQgY29tcG9zZSBiaXRtYXAgaW1hZ2VzLiBJdCBjYW4gcmVhZCwgY29udmVydCBhbmQgd3JpdGUgaW1hZ2VzIGluIGEgdmFyaWV0eSBvZiBmb3JtYXRzIChhYm91dCAyMDApIGluY2x1ZGluZyBHSUYsIEpQRUcsIEpQRUctMjAwMCwgUE5HLCBQREYsIFBob3RvQ0QsIFRJRkYsIGFuZCBEUFguIFVzZSBJbWFnZU1hZ2ljayB0byB0cmFuc2xhdGUsIGZsaXAsIG1pcnJvciwgcm90YXRlLCBzY2FsZSwgc2hlYXIgYW5kIHRyYW5zZm9ybSBpbWFnZXMsIGFkanVzdCBpbWFnZSBjb2xvcnMsIGFwcGx5IHZhcmlvdXMgc3BlY2lhbCBlZmZlY3RzLCBvciBkcmF3IHRleHQsIGxpbmVzLCBwb2x5Z29ucywgZWxsaXBzZXMgYW5kIEJlemllciBjdXJ2ZXMuCkdyb3VwOiAgICAgICAgICBBcHBsaWNhdGlvbnMvTXVsdGltZWRpYQpMaWNlbnNlOiAgICAgICAgaHR0cDovL3d3dy5pbWFnZW1hZ2ljay5vcmcvc2NyaXB0L2xpY2Vuc2UucGhwClVybDogICAgICAgICAgICBodHRwOi8vd3d3LmltYWdlbWFnaWNrLm9yZy8KU291cmNlMDogICAgICAgIGZ0cDovL2Z0cC5pbWFnZW1hZ2ljay5vcmcvcHViLyV7bmFtZX0vJXtuYW1lfS0le1ZFUlNJT059LSV7UGF0Y2hsZXZlbH0udGFyLmJ6MgoKQnVpbGRSb290OiAgICAgICV7X3RtcHBhdGh9LyV7bmFtZX0tJXt2ZXJzaW9ufS0le3JlbGVhc2V9LXJvb3QtJSgle19faWRfdX0gLW4pCkJ1aWxkUmVxdWlyZXM6ICBiemlwMi1kZXZlbCwgZnJlZXR5cGUtZGV2ZWwsIGxpYmpwZWctZGV2ZWwsIGxpYnBuZy1kZXZlbApCdWlsZFJlcXVpcmVzOiAgbGlidGlmZi1kZXZlbCwgZ2lmbGliLWRldmVsLCB6bGliLWRldmVsLCBwZXJsLWRldmVsID49IDUuOC4xCkJ1aWxkUmVxdWlyZXM6ICBnaG9zdHNjcmlwdC1kZXZlbCwgZGp2dWxpYnJlLWRldmVsCkJ1aWxkUmVxdWlyZXM6ICBsaWJ3bWYtZGV2ZWwsIGphc3Blci1kZXZlbCwgbGlidG9vbC1sdGRsLWRldmVsCkJ1aWxkUmVxdWlyZXM6ICBsaWJYMTEtZGV2ZWwsIGxpYlhleHQtZGV2ZWwsIGxpYlh0LWRldmVsCkJ1aWxkUmVxdWlyZXM6ICBsY21zLWRldmVsLCBsaWJ4bWwyLWRldmVsLCBsaWJyc3ZnMi1kZXZlbAoKJWRlc2NyaXB0aW9uCkltYWdlTWFnaWNrIGlzIGEgc29mdHdhcmUgc3VpdGUgdG8gY3JlYXRlLCBlZGl0LCBhbmQgY29tcG9zZSBiaXRtYXAgaW1hZ2VzLiBJdCBjYW4gcmVhZCwgY29udmVydCBhbmQgd3JpdGUgaW1hZ2VzIGluIGEgdmFyaWV0eSBvZiBmb3JtYXRzIChhYm91dCAxMDApIGluY2x1ZGluZyBEUFgsIEdJRiwgSlBFRywgSlBFRy0yMDAwLCBQREYsIFBob3RvQ0QsIFBORywgUG9zdHNjcmlwdCwgU1ZHLCBhbmQgVElGRi4gVXNlIEltYWdlTWFnaWNrIHRvIHRyYW5zbGF0ZSwgZmxpcCwgbWlycm9yLCByb3RhdGUsIHNjYWxlLCBzaGVhciBhbmQgdHJhbnNmb3JtIGltYWdlcywgYWRqdXN0IGltYWdlIGNvbG9ycywgYXBwbHkgdmFyaW91cyBzcGVjaWFsIGVmZmVjdHMsIG9yIGRyYXcgdGV4dCwgbGluZXMsIHBvbHlnb25zLCBlbGxpcHNlcyBhbmQgQul6aWVyIGN1cnZlcy4KClRoZSBmdW5jdGlvbmFsaXR5IG9mIEltYWdlTWFnaWNrIGlzIHR5cGljYWxseSB1dGlsaXplZCBmcm9tIHRoZSBjb21tYW5kIGxpbmUgb3IgeW91IGNhbiB1c2UgdGhlIGZlYXR1cmVzIGZyb20gcHJvZ3JhbXMgd3JpdHRlbiBpbiB5b3VyIGZhdm9yaXRlIHByb2dyYW1taW5nIGxhbmd1YWdlLiBDaG9vc2UgZnJvbSB0aGVzZSBpbnRlcmZhY2VzOiBHMkYgKEFkYSksIE1hZ2lja0NvcmUgKEMpLCBNYWdpY2tXYW5kIChDKSwgQ2hNYWdpY2sgKENoKSwgTWFnaWNrKysgKEMrKyksIEpNYWdpY2sgKEphdmEpLCBMLU1hZ2ljayAoTGlzcCksIG5NYWdpY2sgKE5la28vaGFYZSksIFBhc2NhbE1hZ2ljayAoUGFzY2FsKSwgUGVybE1hZ2ljayAoUGVybCksIE1hZ2lja1dhbmQgZm9yIFBIUCAoUEhQKSwgUHl0aG9uTWFnaWNrIChQeXRob24pLCBSTWFnaWNrIChSdWJ5KSwgb3IgVGNsTWFnaWNrIChUY2wvVEspLiBXaXRoIGEgbGFuZ3VhZ2UgaW50ZXJmYWNlLCB1c2UgSW1hZ2VNYWdpY2sgdG8gbW9kaWZ5IG9yIGNyZWF0ZSBpbWFnZXMgYXV0b21hZ2ljYWxseSBhbmQgZHluYW1pY2FsbHkuCgpJbWFnZU1hZ2ljayBpcyBmcmVlIHNvZnR3YXJlIGRlbGl2ZXJlZCBhcyBhIHJlYWR5LXRvLXJ1biBiaW5hcnkgZGlzdHJpYnV0aW9uIG9yIGFzIHNvdXJjZSBjb2RlIHRoYXQgeW91IG1heSBmcmVlbHkgdXNlLCBjb3B5LCBtb2RpZnksIGFuZCBkaXN0cmlidXRlIGluIGJvdGggb3BlbiBhbmQgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zLiBJdCBpcyBkaXN0cmlidXRlZCB1bmRlciBhbiBBcGFjaGUgMi4wLXN0eWxlIGxpY2Vuc2UsIGFwcHJvdmVkIGJ5IHRoZSBPU0kuCgpUaGUgSW1hZ2VNYWdpY2sgZGV2ZWxvcG1lbnQgcHJvY2VzcyBlbnN1cmVzIGEgc3RhYmxlIEFQSSBhbmQgQUJJLiBCZWZvcmUgZWFjaCBJbWFnZU1hZ2ljayByZWxlYXNlLCB3ZSBwZXJmb3JtIGEgY29tcHJlaGVuc2l2ZSBzZWN1cml0eSBhc3Nlc3NtZW50IHRoYXQgaW5jbHVkZXMgbWVtb3J5IGFuZCB0aHJlYWQgZXJyb3IgZGV0ZWN0aW9uIHRvIGhlbHAgcHJldmVudCBleHBsb2l0cy5JbWFnZU1hZ2ljayBpcyBmcmVlIHNvZnR3YXJlIGRlbGl2ZXJlZCBhcyBhIHJlYWR5LXRvLXJ1biBiaW5hcnkgZGlzdHJpYnV0aW9uIG9yIGFzIHNvdXJjZSBjb2RlIHRoYXQgeW91IG1heSBmcmVlbHkgdXNlLCBjb3B5LCBtb2RpZnksIGFuZCBkaXN0cmlidXRlIGluIGJvdGggb3BlbiBhbmQgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zLiBJdCBpcyBkaXN0cmlidXRlZCB1bmRlciBhbiBBcGFjaGUgMi4wLXN0eWxlIGxpY2Vuc2UsIGFwcHJvdmVkIGJ5IHRoZSBPU0kuCgpUaGUgSW1hZ2VNYWdpY2sgZGV2ZWxvcG1lbnQgcHJvY2VzcyBlbnN1cmVzIGEgc3RhYmxlIEFQSSBhbmQgQUJJLiBCZWZvcmUgZWFjaCBJbWFnZU1hZ2ljayByZWxlYXNlLCB3ZSBwZXJmb3JtIGEgY29tcHJlaGVuc2l2ZSBzZWN1cml0eSBhc3Nlc3NtZW50IHRoYXQgaW5jbHVkZXMgbWVtb3J5IGFuZCB0aHJlYWQgZXJyb3IgZGV0ZWN0aW9uIHRvIGhlbHAgcHJldmVudCBleHBsb2l0cy4KCiVwYWNrYWdlIGRldmVsClN1bW1hcnk6IExpYnJhcnkgbGlua3MgYW5kIGhlYWRlciBmaWxlcyBmb3IgSW1hZ2VNYWdpY2sgYXBwbGljYXRpb24gZGV2ZWxvcG1lbnQKR3JvdXA6IERldmVsb3BtZW50L0xpYnJhcmllcwpSZXF1aXJlczogJXtuYW1lfSA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQpSZXF1aXJlczogbGliWDExLWRldmVsLCBsaWJYZXh0LWRldmVsLCBsaWJYdC1kZXZlbApSZXF1aXJlczogZ2hvc3RzY3JpcHQtZGV2ZWwKUmVxdWlyZXM6IGJ6aXAyLWRldmVsClJlcXVpcmVzOiBmcmVldHlwZS1kZXZlbApSZXF1aXJlczogbGlidGlmZi1kZXZlbApSZXF1aXJlczogbGlianBlZy1kZXZlbApSZXF1aXJlczogbGNtcy1kZXZlbApSZXF1aXJlczogamFzcGVyLWRldmVsClJlcXVpcmVzOiBwa2djb25maWcKCiVkZXNjcmlwdGlvbiBkZXZlbApJbWFnZU1hZ2ljay1kZXZlbCBjb250YWlucyB0aGUgbGlicmFyeSBsaW5rcyBhbmQgaGVhZGVyIGZpbGVzIHlvdSdsbApuZWVkIHRvIGRldmVsb3AgSW1hZ2VNYWdpY2sgYXBwbGljYXRpb25zLiBJbWFnZU1hZ2ljayBpcyBhbiBpbWFnZQptYW5pcHVsYXRpb24gcHJvZ3JhbS4KCklmIHlvdSB3YW50IHRvIGNyZWF0ZSBhcHBsaWNhdGlvbnMgdGhhdCB3aWxsIHVzZSBJbWFnZU1hZ2ljayBjb2RlIG9yCkFQSXMsIHlvdSBuZWVkIHRvIGluc3RhbGwgSW1hZ2VNYWdpY2stZGV2ZWwgYXMgd2VsbCBhcyBJbWFnZU1hZ2ljay4KWW91IGRvIG5vdCBuZWVkIHRvIGluc3RhbGwgaXQgaWYgeW91IGp1c3Qgd2FudCB0byB1c2UgSW1hZ2VNYWdpY2ssCmhvd2V2ZXIuCgolcGFja2FnZSBkb2MKU3VtbWFyeTogSW1hZ2VNYWdpY2sgSFRNTCBkb2N1bWVudGF0aW9uCkdyb3VwOiBEb2N1bWVudGF0aW9uCgolZGVzY3JpcHRpb24gZG9jCkltYWdlTWFnaWNrIGRvY3VtZW50YXRpb24sIHRoaXMgcGFja2FnZSBjb250YWlucyB1c2FnZSAoZm9yIHRoZQpjb21tYW5kbGluZSB0b29scykgYW5kIEFQSSAoZm9yIHRoZSBsaWJyYXJpZXMpIGRvY3VtZW50YXRpb24gaW4gSFRNTCBmb3JtYXQuCk5vdGUgdGhpcyBkb2N1bWVudGF0aW9uIGNhbiBhbHNvIGJlIGZvdW5kIG9uIHRoZSBJbWFnZU1hZ2ljayB3ZWJzaXRlOgpodHRwOi8vd3d3LmltYWdlbWFnaWNrLm9yZy8KCgolcGFja2FnZSBwZXJsClN1bW1hcnk6IEltYWdlTWFnaWNrIHBlcmwgYmluZGluZ3MKR3JvdXA6IFN5c3RlbSBFbnZpcm9ubWVudC9MaWJyYXJpZXMKUmVxdWlyZXM6ICV7bmFtZX0gPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KUmVxdWlyZXM6IHBlcmwoOk1PRFVMRV9DT01QQVRfJShldmFsICJgJXtfX3Blcmx9IC1WOnZlcnNpb25gIjsgZWNobyAkdmVyc2lvbikpCgolZGVzY3JpcHRpb24gcGVybApQZXJsIGJpbmRpbmdzIHRvIEltYWdlTWFnaWNrLgoKSW5zdGFsbCBJbWFnZU1hZ2ljay1wZXJsIGlmIHlvdSB3YW50IHRvIHVzZSBhbnkgcGVybCBzY3JpcHRzIHRoYXQgdXNlCkltYWdlTWFnaWNrLgoKJXBhY2thZ2UgYysrClN1bW1hcnk6IEltYWdlTWFnaWNrIE1hZ2ljaysrIGxpYnJhcnkgKEMrKyBiaW5kaW5ncykKR3JvdXA6IFN5c3RlbSBFbnZpcm9ubWVudC9MaWJyYXJpZXMKUmVxdWlyZXM6ICV7bmFtZX0gPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KCiVkZXNjcmlwdGlvbiBjKysKVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBNYWdpY2srKyBsaWJyYXJ5LCBhIEMrKyBiaW5kaW5nIHRvIHRoZSBJbWFnZU1hZ2ljawpncmFwaGljcyBtYW5pcHVsYXRpb24gbGlicmFyeS4KCkluc3RhbGwgSW1hZ2VNYWdpY2stYysrIGlmIHlvdSB3YW50IHRvIHVzZSBhbnkgYXBwbGljYXRpb25zIHRoYXQgdXNlIE1hZ2ljaysrLgoKCiVwYWNrYWdlIGMrKy1kZXZlbApTdW1tYXJ5OiBDKysgYmluZGluZ3MgZm9yIHRoZSBJbWFnZU1hZ2ljayBsaWJyYXJ5Ckdyb3VwOiBEZXZlbG9wbWVudC9MaWJyYXJpZXMKUmVxdWlyZXM6ICV7bmFtZX0tYysrID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9ClJlcXVpcmVzOiAle25hbWV9LWRldmVsID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9CgolZGVzY3JpcHRpb24gYysrLWRldmVsCkltYWdlTWFnaWNrLWRldmVsIGNvbnRhaW5zIHRoZSBzdGF0aWMgbGlicmFyaWVzIGFuZCBoZWFkZXIgZmlsZXMgeW91J2xsCm5lZWQgdG8gZGV2ZWxvcCBJbWFnZU1hZ2ljayBhcHBsaWNhdGlvbnMgdXNpbmcgdGhlIE1hZ2ljaysrIEMrKyBiaW5kaW5ncy4KSW1hZ2VNYWdpY2sgaXMgYW4gaW1hZ2UgbWFuaXB1bGF0aW9uIHByb2dyYW0uCgpJZiB5b3Ugd2FudCB0byBjcmVhdGUgYXBwbGljYXRpb25zIHRoYXQgd2lsbCB1c2UgTWFnaWNrKysgY29kZQpvciBBUElzLCB5b3UnbGwgbmVlZCB0byBpbnN0YWxsIEltYWdlTWFnaWNrLWMrKy1kZXZlbCwgSW1hZ2VNYWdpY2stZGV2ZWwgYW5kCkltYWdlTWFnaWNrLgoKWW91IGRvbid0IG5lZWQgdG8gaW5zdGFsbCBpdCBpZiB5b3UganVzdCB3YW50IHRvIHVzZSBJbWFnZU1hZ2ljaywgb3IgaWYgeW91CndhbnQgdG8gZGV2ZWxvcC9jb21waWxlIGFwcGxpY2F0aW9ucyB1c2luZyB0aGUgSW1hZ2VNYWdpY2sgQyBpbnRlcmZhY2UsCmhvd2V2ZXIuCgoKJXByZXAKJXNldHVwIC1xIC1uICV7bmFtZX0tJXtWRVJTSU9OfS0le1BhdGNobGV2ZWx9CnNlZCAtaSAncy9saWJsdGRsLmxhL2xpYmx0ZGwuc28vZycgY29uZmlndXJlCmljb252IC1mIElTTy04ODU5LTEgLXQgVVRGLTggUkVBRE1FLnR4dCA+IFJFQURNRS50eHQudG1wCnRvdWNoIC1yIFJFQURNRS50eHQgUkVBRE1FLnR4dC50bXAKbXYgUkVBRE1FLnR4dC50bXAgUkVBRE1FLnR4dAojIGZvciAlZG9jCm1rZGlyIE1hZ2ljaysrL2V4YW1wbGVzCmNwIC1wIE1hZ2ljaysrL2RlbW8vKi5jcHAgTWFnaWNrKysvZGVtby8qLm1pZmYgTWFnaWNrKysvZXhhbXBsZXMKCiVidWlsZAolY29uZmlndXJlIC0tZW5hYmxlLXNoYXJlZCBcCiAgICAgICAgICAgLS1kaXNhYmxlLXN0YXRpYyBcCiAgICAgICAgICAgLS13aXRoLW1vZHVsZXMgXAogICAgICAgICAgIC0td2l0aC1wZXJsIFwKICAgICAgICAgICAtLXdpdGgteCBcCiAgICAgICAgICAgLS13aXRoLXRocmVhZHMgXAogICAgICAgICAgIC0td2l0aC1tYWdpY2tfcGx1c19wbHVzIFwKICAgICAgICAgICAtLXdpdGgtZ3NsaWIgXAogICAgICAgICAgIC0td2l0aC13bWYgXAogICAgICAgICAgIC0td2l0aC1sY21zIFwKICAgICAgICAgICAtLXdpdGgtcnN2ZyBcCiAgICAgICAgICAgLS13aXRoLXhtbCBcCiAgICAgICAgICAgLS13aXRoLXBlcmwtb3B0aW9ucz0iSU5TVEFMTERJUlM9dmVuZG9yICV7P3BlcmxfcHJlZml4fSBDQz0nJV9fY2MgLUwkUFdEL21hZ2ljay8ubGlicycgTERETEZMQUdTPSctc2hhcmVkIC1MJFBXRC9tYWdpY2svLmxpYnMnIiBcCiAgICAgICAgICAgLS13aXRob3V0LWRwcyBcCiAgICAgICAgICAgLS13aXRob3V0LWluY2x1ZGVkLWx0ZGwgLS13aXRoLWx0ZGwtaW5jbHVkZT0le19pbmNsdWRlZGlyfSBcCiAgICAgICAgICAgLS13aXRoLWx0ZGwtbGliPSV7X2xpYmRpcn0KIyBEaXNhYmxlIHJwYXRoCnNlZCAtaSAnc3xeaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0uKnxoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSIifGcnIGxpYnRvb2wKc2VkIC1pICdzfF5ydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSHxydW5wYXRoX3Zhcj1ESUVfUlBBVEhfRElFfGcnIGxpYnRvb2wKbWFrZQoKCiVpbnN0YWxsCnJtIC1yZiAkUlBNX0JVSUxEX1JPT1QKCm1ha2UgaW5zdGFsbCBERVNURElSPSRSUE1fQlVJTERfUk9PVCBJTlNUQUxMPSJpbnN0YWxsIC1wIgpjcCAtYSB3d3cvc291cmNlICRSUE1fQlVJTERfUk9PVCV7X2RhdGFkaXJ9L2RvYy8le25hbWV9LSV7VkVSU0lPTn0Kcm0gJFJQTV9CVUlMRF9ST09UJXtfbGliZGlyfS8qLmxhCgojIGZpeCB3ZWlyZCBwZXJsIE1hZ2ljay5zbyBwZXJtaXNzaW9ucwpjaG1vZCA3NTUgJFJQTV9CVUlMRF9ST09UJXtwZXJsX3ZlbmRvcmFyY2h9L2F1dG8vSW1hZ2UvTWFnaWNrL01hZ2ljay5zbwoKIyBwZXJsbWFnaWNrOiBmaXggcGVybCBwYXRoIG9mIGRlbW8gZmlsZXMKJXtfX3Blcmx9IC1NRXh0VXRpbHM6Ok1ha2VNYWtlciAtZSAnTVktPmZpeGluKEBBUkdWKScgUGVybE1hZ2ljay9kZW1vLyoucGwKCiMgcGVybG1hZ2ljazogY2xlYW51cCB2YXJpb3VzIHBlcmwgdGVtcGZpbGVzIGZyb20gdGhlIGJ1aWxkIHdoaWNoIGdldCBpbnN0YWxsZWQKZmluZCAkUlBNX0JVSUxEX1JPT1QgLW5hbWUgIiouYnMiIHx4YXJncyBybSAtZgpmaW5kICRSUE1fQlVJTERfUk9PVCAtbmFtZSAiLnBhY2tsaXN0IiB8eGFyZ3Mgcm0gLWYKZmluZCAkUlBNX0JVSUxEX1JPT1QgLW5hbWUgInBlcmxsb2NhbC5wb2QiIHx4YXJncyBybSAtZgoKIyBwZXJsbWFnaWNrOiBidWlsZCBmaWxlcyBsaXN0CmVjaG8gIiVkZWZhdHRyKC0scm9vdCxyb290LC0pIiA+IHBlcmwtcGtnLWZpbGVzCmZpbmQgJFJQTV9CVUlMRF9ST09ULyV7X2xpYmRpcn0vcGVybCogLXR5cGUgZiAtcHJpbnQgXAogICAgICAgIHwgc2VkICJzQF4kUlBNX0JVSUxEX1JPT1RAQGciID4gcGVybC1wa2ctZmlsZXMgCmZpbmQgJFJQTV9CVUlMRF9ST09UJXtwZXJsX3ZlbmRvcmFyY2h9IC10eXBlIGQgLXByaW50IFwKICAgICAgICB8IHNlZCAic0BeJFJQTV9CVUlMRF9ST09UQCVkaXIgQGciIFwKICAgICAgICB8IGdyZXAgLXYgJ14lZGlyICV7cGVybF92ZW5kb3JhcmNofSQnIFwKICAgICAgICB8IGdyZXAgLXYgJy9hdXRvJCcgPj4gcGVybC1wa2ctZmlsZXMgCmlmIFsgLXogcGVybC1wa2ctZmlsZXMgXSA7IHRoZW4KICAgIGVjaG8gIkVSUk9SOiBFTVBUWSBGSUxFIExJU1QiCiAgICBleGl0IC0xCmZpCgojIFRoZXNlIGRvbid0IGJlbG9uZyBoZXJlLCB3ZSBpbmNsdWRlIHRoZW0gaW4gJSVkb2MKcm0gJFJQTV9CVUlMRF9ST09UJXtfZGF0YWRpcn0vJXtuYW1lfS0le1ZFUlNJT059L3tDaGFuZ2VMb2csTElDRU5TRSxORVdTLnR4dH0KCiMgZml4IG11bHRpbGliIGlzc3VlcwolaWZhcmNoIHg4Nl82NCBzMzkweCBpYTY0IHBwYzY0IGFscGhhIHNwYXJjNjQKJWRlZmluZSB3b3Jkc2l6ZSA2NAolZWxzZQolZGVmaW5lIHdvcmRzaXplIDMyCiVlbmRpZgoKbXYgJFJQTV9CVUlMRF9ST09UJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9tYWdpY2svbWFnaWNrLWNvbmZpZy5oIFwKICAgJFJQTV9CVUlMRF9ST09UJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9tYWdpY2svbWFnaWNrLWNvbmZpZy0le3dvcmRzaXplfS5oCgpjYXQgPiRSUE1fQlVJTERfUk9PVCV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0vbWFnaWNrL21hZ2ljay1jb25maWcuaCA8PEVPRgojaWZuZGVmIElNQUdFTUFHSUNLX01VTFRJTElCCiNkZWZpbmUgSU1BR0VNQUdJQ0tfTVVMVElMSUIKCiNpbmNsdWRlIDxiaXRzL3dvcmRzaXplLmg+CgojaWYgX19XT1JEU0laRSA9PSAzMgojIGluY2x1ZGUgIm1hZ2ljay1jb25maWctMzIuaCIKI2VsaWYgX19XT1JEU0laRSA9PSA2NAojIGluY2x1ZGUgIm1hZ2ljay1jb25maWctNjQuaCIKI2Vsc2UKIyBlcnJvciAidW5leHBlY3RlZCB2YWx1ZSBmb3IgX19XT1JEU0laRSBtYWNybyIKI2VuZGlmCgojZW5kaWYKRU9GCgoKJWNsZWFuCnJtIC1yZiAkUlBNX0JVSUxEX1JPT1QKCgolcG9zdCAtcCAvc2Jpbi9sZGNvbmZpZwoKJXBvc3QgYysrIC1wIC9zYmluL2xkY29uZmlnCgolcG9zdHVuIC1wIC9zYmluL2xkY29uZmlnCgolcG9zdHVuIGMrKyAtcCAvc2Jpbi9sZGNvbmZpZwoKCiVmaWxlcwolZGVmYXR0cigtLHJvb3Qscm9vdCwtKQolZG9jIFF1aWNrU3RhcnQudHh0IENoYW5nZUxvZyBQbGF0Zm9ybXMudHh0CiVkb2MgUkVBRE1FLnR4dCBMSUNFTlNFIE5PVElDRSBBVVRIT1JTLnR4dCBORVdTLnR4dAole19saWJkaXJ9L2xpYk1hZ2lja0NvcmUuc28uKgole19saWJkaXJ9L2xpYk1hZ2lja1dhbmQuc28uKgole19iaW5kaXJ9L1thLXpdKgole19saWJkaXJ9LyV7bmFtZX0tJXtWRVJTSU9OfQole19kYXRhZGlyfS8le25hbWV9LSV7VkVSU0lPTn0KJXtfbWFuZGlyfS9tYW5bMTQ1XS9bYS16XSoKJXtfbWFuZGlyfS9tYW4xLyV7bmFtZX0uKgoKCiVmaWxlcyBkZXZlbAolZGVmYXR0cigtLHJvb3Qscm9vdCwtKQole19iaW5kaXJ9L01hZ2lja0NvcmUtY29uZmlnCiV7X2JpbmRpcn0vTWFnaWNrLWNvbmZpZwole19iaW5kaXJ9L01hZ2lja1dhbmQtY29uZmlnCiV7X2JpbmRpcn0vV2FuZC1jb25maWcKJXtfbGliZGlyfS9saWJNYWdpY2tDb3JlLnNvCiV7X2xpYmRpcn0vbGliTWFnaWNrV2FuZC5zbwole19saWJkaXJ9L3BrZ2NvbmZpZy9NYWdpY2tDb3JlLnBjCiV7X2xpYmRpcn0vcGtnY29uZmlnL0ltYWdlTWFnaWNrLnBjCiV7X2xpYmRpcn0vcGtnY29uZmlnL01hZ2lja1dhbmQucGMKJXtfbGliZGlyfS9wa2djb25maWcvV2FuZC5wYwolZGlyICV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0KJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9tYWdpY2sKJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS93YW5kCiV7X21hbmRpcn0vbWFuMS9NYWdpY2stY29uZmlnLioKJXtfbWFuZGlyfS9tYW4xL01hZ2lja0NvcmUtY29uZmlnLioKJXtfbWFuZGlyfS9tYW4xL1dhbmQtY29uZmlnLioKJXtfbWFuZGlyfS9tYW4xL01hZ2lja1dhbmQtY29uZmlnLioKCiVmaWxlcyBkb2MKJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKJWRvYyAle19kYXRhZGlyfS9kb2MvJXtuYW1lfS0le1ZFUlNJT059CgolZmlsZXMgYysrCiVkZWZhdHRyKC0scm9vdCxyb290LC0pCiVkb2MgTWFnaWNrKysvQVVUSE9SUyBNYWdpY2srKy9DaGFuZ2VMb2cgTWFnaWNrKysvTkVXUyBNYWdpY2srKy9SRUFETUUKJWRvYyB3d3cvTWFnaWNrKysvQ09QWUlORwole19saWJkaXJ9L2xpYk1hZ2ljaysrLnNvLioKCiVmaWxlcyBjKystZGV2ZWwKJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKJWRvYyBNYWdpY2srKy9leGFtcGxlcwole19iaW5kaXJ9L01hZ2ljaysrLWNvbmZpZwole19pbmNsdWRlZGlyfS8le25hbWV9L01hZ2ljaysrCiV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0vTWFnaWNrKysuaAole19saWJkaXJ9L2xpYk1hZ2ljaysrLnNvCiV7X2xpYmRpcn0vcGtnY29uZmlnL01hZ2ljaysrLnBjCiV7X2xpYmRpcn0vcGtnY29uZmlnL0ltYWdlTWFnaWNrKysucGMKJXtfbWFuZGlyfS9tYW4xL01hZ2ljaysrLWNvbmZpZy4qCgolZmlsZXMgcGVybCAtZiBwZXJsLXBrZy1maWxlcwolZGVmYXR0cigtLHJvb3Qscm9vdCwtKQole19tYW5kaXJ9L21hbjMvKgolZG9jIFBlcmxNYWdpY2svZGVtby8gUGVybE1hZ2ljay9DaGFuZ2Vsb2cgUGVybE1hZ2ljay9SRUFETUUudHh0CgoKJWNoYW5nZWxvZwoqIFN1biBNYXkgMDEgMjAwNSBDcmlzdHkgPGNyaXN0eUBteXN0aWMuZXMuZHVwb250LmNvbT4gMS4wLTAKKiAgUG9ydCBvZiBSZWRoYXQncyBSUE0gc2NyaXB0IHRvIHN1cHBvcnQgSW1hZ2VNYWdpY2suCg==