LyoKICogTG9jYWxlIGRlZmluaXRpb25zIGZvciBCZWxhcnVzaWFuCiAqCiAqIENvcHlyaWdodCAyMDAyIEFsZXhhbmRyZSBKdWxsaWFyZCBmb3IgQ29kZVdlYXZlcnMKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqLwoKI3ByYWdtYSBjb2RlX3BhZ2UoMTI1MSkKClNUUklOR1RBQkxFIExBTkdVQUdFIExBTkdfQkVMQVJVU0lBTiwgU1VCTEFOR19ERUZBVUxUCnsKICBMT0NBTEVfRk9OVFNJR05BVFVSRSBMIlx4MDIwM1x4ODAwMFx4Mzg0OFx4MDAwMFx4MDAwMFx4MDAwMFx4MDAwMFx4MDAwMFx4MDAwNFx4MDAwMFx4MDAwMFx4MDAwMlx4MDAwNFx4MDAwMFx4MDAwMFx4MDIwMiIKICBMT0NBTEVfSUNBTEVOREFSVFlQRSAiMSIKICBMT0NBTEVfSUNFTlRVUlkgIjEiCiAgTE9DQUxFX0lDT1VOVFJZICIzNzUiCiAgTE9DQUxFX0lDVVJSRElHSVRTICIyIgogIExPQ0FMRV9JQ1VSUkVOQ1kgIjMiCiAgTE9DQUxFX0lEQVRFICIxIgogIExPQ0FMRV9JREFZTFpFUk8gIjEiCiAgTE9DQUxFX0lERUZBVUxUQU5TSUNPREVQQUdFICIxMjUxIgogIExPQ0FMRV9JREVGQVVMVENPREVQQUdFICI4NjYiCiAgTE9DQUxFX0lERUZBVUxUQ09VTlRSWSAiMzc1IgogIExPQ0FMRV9JREVGQVVMVEVCQ0RJQ0NPREVQQUdFICI1MDAiCiAgTE9DQUxFX0lERUZBVUxUTEFOR1VBR0UgIjA0MjMiCiAgTE9DQUxFX0lERUZBVUxUTUFDQ09ERVBBR0UgIjEwMDA3IgogIExPQ0FMRV9JREVGQVVMVFVOSVhDT0RFUEFHRSAiMTI1MSIKICBMT0NBTEVfSURJR0lUUyAiMiIKICBMT0NBTEVfSURJR0lUU1VCU1RJVFVUSU9OICIxIgogIExPQ0FMRV9JRklSU1REQVlPRldFRUsgIjAiCiAgTE9DQUxFX0lGSVJTVFdFRUtPRllFQVIgIjAiCiAgTE9DQUxFX0lJTlRMQ1VSUkRJR0lUUyAiMiIKICBMT0NBTEVfSUxBTkdVQUdFICIwNDIzIgogIExPQ0FMRV9JTERBVEUgIjEiCiAgTE9DQUxFX0lMWkVSTyAiMSIKICBMT0NBTEVfSU1FQVNVUkUgIjAiCiAgTE9DQUxFX0lNT05MWkVSTyAiMSIKICBMT0NBTEVfSU5FR0NVUlIgIjgiCiAgTE9DQUxFX0lORUdOVU1CRVIgIjEiCiAgTE9DQUxFX0lORUdTRVBCWVNQQUNFICIxIgogIExPQ0FMRV9JTkVHU0lHTlBPU04gIjEiCiAgTE9DQUxFX0lORUdTWU1QUkVDRURFUyAiMCIKICBMT0NBTEVfSU9QVElPTkFMQ0FMRU5EQVIgIjAiCiAgTE9DQUxFX0lQQVBFUlNJWkUgIjkiCiAgTE9DQUxFX0lQT1NTRVBCWVNQQUNFICIxIgogIExPQ0FMRV9JUE9TU0lHTlBPU04gIjEiCiAgTE9DQUxFX0lQT1NTWU1QUkVDRURFUyAiMCIKICBMT0NBTEVfSVRJTUUgIjEiCiAgTE9DQUxFX0lUSU1FTUFSS1BPU04gIjAiCiAgTE9DQUxFX0lUTFpFUk8gIjAiCiAgTE9DQUxFX1MxMTU5ICIiCiAgTE9DQUxFX1MyMzU5ICIiCiAgTE9DQUxFX1NBQkJSRVZDVFJZTkFNRSAiQkxSIgogIExPQ0FMRV9TQUJCUkVWREFZTkFNRTEgIu/tIgogIExPQ0FMRV9TQUJCUkVWREFZTkFNRTIgIuCiIgogIExPQ0FMRV9TQUJCUkVWREFZTkFNRTMgIvHwIgogIExPQ0FMRV9TQUJCUkVWREFZTkFNRTQgIvf2IgogIExPQ0FMRV9TQUJCUkVWREFZTkFNRTUgIu/yIgogIExPQ0FMRV9TQUJCUkVWREFZTkFNRTYgIvHhIgogIExPQ0FMRV9TQUJCUkVWREFZTkFNRTcgIu3kIgogIExPQ0FMRV9TQUJCUkVWTEFOR05BTUUgIkJFTCIKICBMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTEgItHy8yIKICBMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTIgIsv+8iIKICBMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTMgItHg6iIKICBMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTQgIsrw4CIKICBMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTUgIszg6SIKICBMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTYgItf98CIKICBMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTcgIsuz7yIKICBMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTggIsbtsyIKICBMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTkgIsLl8CIKICBMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTEwICLK4PEiCiAgTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxMSAiy7PxIgogIExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTIgItHt5SIKICBMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTEzICIiCiAgTE9DQUxFX1NDT1VOVFJZICJCZWxhcnVzIgogIExPQ0FMRV9TQ1VSUkVOQ1kgIvDz4S4iCiAgTE9DQUxFX1NEQVRFICIuIgogIExPQ0FMRV9TREFZTkFNRTEgIu/g7f/k5+Xr4OoiCiAgTE9DQUxFX1NEQVlOQU1FMiAi4KLy7vDg6iIKICBMT0NBTEVfU0RBWU5BTUUzICLx5fDg5OAiCiAgTE9DQUxFX1NEQVlOQU1FNCAi9+D24uXwIgogIExPQ0FMRV9TREFZTkFNRTUgIu//8u2z9uAiCiAgTE9DQUxFX1NEQVlOQU1FNiAi8fPh7vLgIgogIExPQ0FMRV9TREFZTkFNRTcgIu3/5Ofl6/8iCiAgTE9DQUxFX1NERUNJTUFMICIsIgogIExPQ0FMRV9TRU5HQ09VTlRSWSAiQmVsYXJ1cyIKICBMT0NBTEVfU0VOR0NVUlJOQU1FICJCZWxhcnVzaWFuIFJ1YmxlIgogIExPQ0FMRV9TRU5HTEFOR1VBR0UgIkJlbGFydXNpYW4iCiAgTE9DQUxFX1NHUk9VUElORyAiMzszIgogIExPQ0FMRV9TSU5UTFNZTUJPTCAiQllSIgogIExPQ0FMRV9TSVNPMzE2NkNUUllOQU1FICJCWSIKICBMT0NBTEVfU0lTTzYzOUxBTkdOQU1FICJiZSIKICBMT0NBTEVfU0xBTkdVQUdFICJCZWxhcnVzaWFuIgogIExPQ0FMRV9TTElTVCAiOyIKICBMT0NBTEVfU0xPTkdEQVRFICJkIE1NTU0geXl5eSIKICBMT0NBTEVfU01PTkRFQ0lNQUxTRVAgIiwiCiAgTE9DQUxFX1NNT05HUk9VUElORyAiMzszIgogIExPQ0FMRV9TTU9OVEhOQU1FMSAi0fLz5Ofl7fwiCiAgTE9DQUxFX1NNT05USE5BTUUyICLL/vL7IgogIExPQ0FMRV9TTU9OVEhOQU1FMyAi0eDq4OKz6iIKICBMT0NBTEVfU01PTlRITkFNRTQgIsrw4PHg4rPqIgogIExPQ0FMRV9TTU9OVEhOQU1FNSAizODpIgogIExPQ0FMRV9TTU9OVEhOQU1FNiAi1/3w4uXt/CIKICBMT0NBTEVfU01PTlRITkFNRTcgIsuz7+Xt/CIKICBMT0NBTEVfU01PTlRITkFNRTggIsbts+Ll7fwiCiAgTE9DQUxFX1NNT05USE5BTUU5ICLC5fDg8eXt/CIKICBMT0NBTEVfU01PTlRITkFNRTEwICLK4PHy8Pv37bPqIgogIExPQ0FMRV9TTU9OVEhOQU1FMTEgIsuz8fLg7+DkIgogIExPQ0FMRV9TTU9OVEhOQU1FMTIgItHt5ebg7fwiCiAgTE9DQUxFX1NNT05USE5BTUUxMyAiIgogIExPQ0FMRV9TTU9OVEhPVVNBTkRTRVAgIiAiCiAgTE9DQUxFX1NOQU1FICJiZS1CWSIKICBMT0NBTEVfU05BVElWRUNUUllOQU1FICLB5evg8PPx/CIKICBMT0NBTEVfU05BVElWRUNVUlJOQU1FICLw8+Hl6/wiCiAgTE9DQUxFX1NOQVRJVkVESUdJVFMgIjAxMjM0NTY3ODkiCiAgTE9DQUxFX1NOQVRJVkVMQU5HTkFNRSAiweXr4PDz8erg/yIKICBMT0NBTEVfU05FR0FUSVZFU0lHTiAiLSIKICBMT0NBTEVfU1BPU0lUSVZFU0lHTiAiIgogIExPQ0FMRV9TU0NSSVBUUyAiQ3lybDsiCiAgTE9DQUxFX1NTSE9SVERBVEUgImRkLk1NLnl5eXkiCiAgTE9DQUxFX1NTT1JUTkFNRSAiRGVmYXVsdCIKICBMT0NBTEVfU1RIT1VTQU5EICIgIgogIExPQ0FMRV9TVElNRSAiOiIKICBMT0NBTEVfU1RJTUVGT1JNQVQgIkg6bW06c3MiCiAgTE9DQUxFX1NZRUFSTU9OVEggIk1NTU0geXl5eSIKCiAgTEdSUElEX1dFU1RFUk5fRVVST1BFK0xHUlBJRF9SRVNfQkFTRSAiV2VzdGVybiBFdXJvcGUgYW5kIFVuaXRlZCBTdGF0ZXMiCiAgTEdSUElEX0NFTlRSQUxfRVVST1BFK0xHUlBJRF9SRVNfQkFTRSAiQ2VudHJhbCBFdXJvcGUiCiAgTEdSUElEX0JBTFRJQytMR1JQSURfUkVTX0JBU0UgIkJhbHRpYyIKICBMR1JQSURfR1JFRUsrTEdSUElEX1JFU19CQVNFICJHcmVlayIKICBMR1JQSURfQ1lSSUxMSUMrTEdSUElEX1JFU19CQVNFICJDeXJpbGxpYyIKICBMR1JQSURfVFVSS0lTSCtMR1JQSURfUkVTX0JBU0UgIlR1cmtpYyIKICBMR1JQSURfSkFQQU5FU0UrTEdSUElEX1JFU19CQVNFICJKYXBhbmVzZSIKICBMR1JQSURfS09SRUFOK0xHUlBJRF9SRVNfQkFTRSAiS29yZWFuIgogIExHUlBJRF9UUkFESVRJT05BTF9DSElORVNFK0xHUlBJRF9SRVNfQkFTRSAiVHJhZGl0aW9uYWwgQ2hpbmVzZSIKICBMR1JQSURfU0lNUExJRklFRF9DSElORVNFK0xHUlBJRF9SRVNfQkFTRSAiU2ltcGxpZmllZCBDaGluZXNlIgogIExHUlBJRF9USEFJK0xHUlBJRF9SRVNfQkFTRSAiVGhhaSIKICBMR1JQSURfSEVCUkVXK0xHUlBJRF9SRVNfQkFTRSAiSGVicmV3IgogIExHUlBJRF9BUkFCSUMrTEdSUElEX1JFU19CQVNFICJBcmFiaWMiIAogIExHUlBJRF9WSUVUTkFNRVNFK0xHUlBJRF9SRVNfQkFTRSAiVmlldG5hbWVzZSIKICBMR1JQSURfSU5ESUMrTEdSUElEX1JFU19CQVNFICJJbmRpYyIKICBMR1JQSURfR0VPUkdJQU4rTEdSUElEX1JFU19CQVNFICJHZW9yZ2lhbiIKICBMR1JQSURfQVJNRU5JQU4rTEdSUElEX1JFU19CQVNFICJBcm1lbmlhbiIKfQo=