LyoKICogTG9jYWxlIGRlZmluaXRpb25zIGZvciBQb3J0dWd1ZXNlIChCcmF6aWwpCiAqCiAqIENvcHlyaWdodCAyMDAyIEFsZXhhbmRyZSBKdWxsaWFyZCBmb3IgQ29kZVdlYXZlcnMKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqLwoKI3ByYWdtYSBjb2RlX3BhZ2UoMTI1MikKClNUUklOR1RBQkxFIExBTkdVQUdFIExBTkdfUE9SVFVHVUVTRSwgU1VCTEFOR19QT1JUVUdVRVNFX0JSQVpJTElBTgp7CiAgTE9DQUxFX0ZPTlRTSUdOQVRVUkUgTCJceDAwMmZceDgwMDBceDM4MDhceDAwMDBceDAwMDBceDAwMDBceDAwMDBceDAwMDBceDAwMDFceDAwMDBceDAwMDBceDQwMDBceDAwMTNceDAwMDBceDAwMDBceGM1ZDQiCiAgTE9DQUxFX0lDQUxFTkRBUlRZUEUgIjEiCiAgTE9DQUxFX0lDRU5UVVJZICIxIgogIExPQ0FMRV9JQ09VTlRSWSAiNTUiCiAgTE9DQUxFX0lDVVJSRElHSVRTICIyIgogIExPQ0FMRV9JQ1VSUkVOQ1kgIjAiCiAgTE9DQUxFX0lEQVRFICIxIgogIExPQ0FMRV9JREFZTFpFUk8gIjAiCiAgTE9DQUxFX0lERUZBVUxUQU5TSUNPREVQQUdFICIxMjUyIgogIExPQ0FMRV9JREVGQVVMVENPREVQQUdFICI4NTAiCiAgTE9DQUxFX0lERUZBVUxUQ09VTlRSWSAiNTUiCiAgTE9DQUxFX0lERUZBVUxURUJDRElDQ09ERVBBR0UgIjUwMCIKICBMT0NBTEVfSURFRkFVTFRMQU5HVUFHRSAiMDQxNiIKICBMT0NBTEVfSURFRkFVTFRNQUNDT0RFUEFHRSAiMTAwMDAiCiAgTE9DQUxFX0lERUZBVUxUVU5JWENPREVQQUdFICIyODU5MSIKICBMT0NBTEVfSURJR0lUUyAiMiIKICBMT0NBTEVfSURJR0lUU1VCU1RJVFVUSU9OICIxIgogIExPQ0FMRV9JRklSU1REQVlPRldFRUsgIjYiCiAgTE9DQUxFX0lGSVJTVFdFRUtPRllFQVIgIjAiCiAgTE9DQUxFX0lJTlRMQ1VSUkRJR0lUUyAiMiIKICBMT0NBTEVfSUxBTkdVQUdFICIwNDE2IgogIExPQ0FMRV9JTERBVEUgIjEiCiAgTE9DQUxFX0lMWkVSTyAiMSIKICBMT0NBTEVfSU1FQVNVUkUgIjAiCiAgTE9DQUxFX0lNT05MWkVSTyAiMCIKICBMT0NBTEVfSU5FR0NVUlIgIjAiCiAgTE9DQUxFX0lORUdOVU1CRVIgIjEiCiAgTE9DQUxFX0lORUdTRVBCWVNQQUNFICIwIgogIExPQ0FMRV9JTkVHU0lHTlBPU04gIjAiCiAgTE9DQUxFX0lORUdTWU1QUkVDRURFUyAiMSIKICBMT0NBTEVfSU5FVVRSQUwgIjAiCiAgTE9DQUxFX0lPUFRJT05BTENBTEVOREFSICIwIgogIExPQ0FMRV9JUEFQRVJTSVpFICI5IgogIExPQ0FMRV9JUE9TU0VQQllTUEFDRSAiMCIKICBMT0NBTEVfSVBPU1NJR05QT1NOICIzIgogIExPQ0FMRV9JUE9TU1lNUFJFQ0VERVMgIjEiCiAgTE9DQUxFX0lSRUFESU5HTEFZT1VUICIwIgogIExPQ0FMRV9JVElNRSAiMSIKICBMT0NBTEVfSVRJTUVNQVJLUE9TTiAiMCIKICBMT0NBTEVfSVRMWkVSTyAiMSIKICBMT0NBTEVfUzExNTkgIiIKICBMT0NBTEVfUzIzNTkgIiIKICBMT0NBTEVfU0FCQlJFVkNUUllOQU1FICJCUkEiCiAgTE9DQUxFX1NBQkJSRVZEQVlOQU1FMSAic2VnIgogIExPQ0FMRV9TQUJCUkVWREFZTkFNRTIgInRlciIKICBMT0NBTEVfU0FCQlJFVkRBWU5BTUUzICJxdWEiCiAgTE9DQUxFX1NBQkJSRVZEQVlOQU1FNCAicXVpIgogIExPQ0FMRV9TQUJCUkVWREFZTkFNRTUgInNleCIKICBMT0NBTEVfU0FCQlJFVkRBWU5BTUU2ICJz4WIiCiAgTE9DQUxFX1NBQkJSRVZEQVlOQU1FNyAiZG9tIgogIExPQ0FMRV9TQUJCUkVWTEFOR05BTUUgIlBUQiIKICBMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTEgImphbiIKICBMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTIgImZldiIKICBMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTMgIm1hciIKICBMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTQgImFiciIKICBMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTUgIm1haSIKICBMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTYgImp1biIKICBMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTcgImp1bCIKICBMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTggImFnbyIKICBMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTkgInNldCIKICBMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTEwICJvdXQiCiAgTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxMSAibm92IgogIExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTIgImRleiIKICBMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTEzICIiCiAgTE9DQUxFX1NDT1VOVFJZICJCcmF6aWwiCiAgTE9DQUxFX1NDVVJSRU5DWSAiUiQgIgogIExPQ0FMRV9TREFURSAiLyIKICBMT0NBTEVfU0RBWU5BTUUxICJzZWd1bmRhLWZlaXJhIgogIExPQ0FMRV9TREFZTkFNRTIgInRlcudhLWZlaXJhIgogIExPQ0FMRV9TREFZTkFNRTMgInF1YXJ0YS1mZWlyYSIKICBMT0NBTEVfU0RBWU5BTUU0ICJxdWludGEtZmVpcmEiCiAgTE9DQUxFX1NEQVlOQU1FNSAic2V4dGEtZmVpcmEiCiAgTE9DQUxFX1NEQVlOQU1FNiAic+FiYWRvIgogIExPQ0FMRV9TREFZTkFNRTcgImRvbWluZ28iCiAgTE9DQUxFX1NERUNJTUFMICIsIgogIExPQ0FMRV9TRU5HQ09VTlRSWSAiQnJhemlsIgogIExPQ0FMRV9TRU5HQ1VSUk5BTUUgIkJyYXppbGlhbiBSZWFsIgogIExPQ0FMRV9TRU5HTEFOR1VBR0UgIlBvcnR1Z3Vlc2UiCiAgTE9DQUxFX1NHUk9VUElORyAiMzswIgogIExPQ0FMRV9TSU5UTFNZTUJPTCAiQlJMIgogIExPQ0FMRV9TSVNPMzE2NkNUUllOQU1FICJCUiIKICBMT0NBTEVfU0lTTzYzOUxBTkdOQU1FICJwdCIKICBMT0NBTEVfU0xBTkdVQUdFICJQb3J0dWd1ZXNlIChCcmF6aWwpIgogIExPQ0FMRV9TTElTVCAiOyIKICBMT0NBTEVfU0xPTkdEQVRFICJkZGRkLCBkJyBkZSAnTU1NTScgZGUgJ3l5eXkiCiAgTE9DQUxFX1NNT05ERUNJTUFMU0VQICIsIgogIExPQ0FMRV9TTU9OR1JPVVBJTkcgIjM7MCIKICBMT0NBTEVfU01PTlRITkFNRTEgImphbmVpcm8iCiAgTE9DQUxFX1NNT05USE5BTUUyICJmZXZlcmVpcm8iCiAgTE9DQUxFX1NNT05USE5BTUUzICJtYXLnbyIKICBMT0NBTEVfU01PTlRITkFNRTQgImFicmlsIgogIExPQ0FMRV9TTU9OVEhOQU1FNSAibWFpbyIKICBMT0NBTEVfU01PTlRITkFNRTYgImp1bmhvIgogIExPQ0FMRV9TTU9OVEhOQU1FNyAianVsaG8iCiAgTE9DQUxFX1NNT05USE5BTUU4ICJhZ29zdG8iCiAgTE9DQUxFX1NNT05USE5BTUU5ICJzZXRlbWJybyIKICBMT0NBTEVfU01PTlRITkFNRTEwICJvdXR1YnJvIgogIExPQ0FMRV9TTU9OVEhOQU1FMTEgIm5vdmVtYnJvIgogIExPQ0FMRV9TTU9OVEhOQU1FMTIgImRlemVtYnJvIgogIExPQ0FMRV9TTU9OVEhOQU1FMTMgIiIKICBMT0NBTEVfU01PTlRIT1VTQU5EU0VQICIuIgogIExPQ0FMRV9TTkFNRSAicHQtQlIiCiAgTE9DQUxFX1NOQVRJVkVDVFJZTkFNRSAiQnJhc2lsIgogIExPQ0FMRV9TTkFUSVZFQ1VSUk5BTUUgIlJlYWwiCiAgTE9DQUxFX1NOQVRJVkVESUdJVFMgIjAxMjM0NTY3ODkiCiAgTE9DQUxFX1NOQVRJVkVESVNQTEFZTkFNRSAiUG9ydHVndepzIChCcmFzaWwpIgogIExPQ0FMRV9TTkFUSVZFTEFOR05BTUUgIlBvcnR1Z3XqcyIKICBMT0NBTEVfU05FR0FUSVZFU0lHTiAiLSIKICBMT0NBTEVfU09QRU5UWVBFTEFOR1VBR0VUQUcgIlBURyAiCiAgTE9DQUxFX1NQT1NJVElWRVNJR04gIiIKICBMT0NBTEVfU1NDUklQVFMgIkxhdG47IgogIExPQ0FMRV9TU0hPUlREQVRFICJkL00veXl5eSIKICBMT0NBTEVfU1NIT1JUVElNRSAiSEg6bW0iCiAgTE9DQUxFX1NTT1JUTkFNRSAiRGVmYXVsdCIKICBMT0NBTEVfU1RIT1VTQU5EICIuIgogIExPQ0FMRV9TVElNRSAiOiIKICBMT0NBTEVfU1RJTUVGT1JNQVQgIkhIOm1tOnNzIgogIExPQ0FMRV9TWUVBUk1PTlRIICJNTU1NJyBkZSAneXl5eSIKCiAgTEdSUElEX1dFU1RFUk5fRVVST1BFK0xHUlBJRF9SRVNfQkFTRSAiRXVyb3BhIE9jaWRlbnRhbCBlIEVzdGFkb3MgVW5pZG9zIgogIExHUlBJRF9DRU5UUkFMX0VVUk9QRStMR1JQSURfUkVTX0JBU0UgIkV1cm9wYSBDZW50cmFsIgogIExHUlBJRF9CQUxUSUMrTEdSUElEX1JFU19CQVNFICJC4Wx0aWNvIgogIExHUlBJRF9HUkVFSytMR1JQSURfUkVTX0JBU0UgIkdyZWdvIgogIExHUlBJRF9DWVJJTExJQytMR1JQSURfUkVTX0JBU0UgIkNpcu1saWNvIgogIExHUlBJRF9UVVJLSVNIK0xHUlBJRF9SRVNfQkFTRSAiVHVyY28iCiAgTEdSUElEX0pBUEFORVNFK0xHUlBJRF9SRVNfQkFTRSAiSmFwb27qcyIKICBMR1JQSURfS09SRUFOK0xHUlBJRF9SRVNfQkFTRSAiQ29yZWFubyIKICBMR1JQSURfVFJBRElUSU9OQUxfQ0hJTkVTRStMR1JQSURfUkVTX0JBU0UgIkNoaW7qcyBUcmFkaWNpb25hbCIKICBMR1JQSURfU0lNUExJRklFRF9DSElORVNFK0xHUlBJRF9SRVNfQkFTRSAiQ2hpbupzIFNpbXBsaWZpY2FkbyIKICBMR1JQSURfVEhBSStMR1JQSURfUkVTX0JBU0UgIlRhaWxhbmTqcyIKICBMR1JQSURfSEVCUkVXK0xHUlBJRF9SRVNfQkFTRSAiSGVicmFpY28iCiAgTEdSUElEX0FSQUJJQytMR1JQSURfUkVTX0JBU0UgIsFyYWJlIiAKICBMR1JQSURfVklFVE5BTUVTRStMR1JQSURfUkVTX0JBU0UgIlZpZXRuYW1pdGEiCiAgTEdSUElEX0lORElDK0xHUlBJRF9SRVNfQkFTRSAiSW5kaWFubyIKICBMR1JQSURfR0VPUkdJQU4rTEdSUElEX1JFU19CQVNFICJHZW9yZ2lhbm8iCiAgTEdSUElEX0FSTUVOSUFOK0xHUlBJRF9SRVNfQkFTRSAiQXJt6m5pbyIKfQo=