LyoKICogQ29weXJpZ2h0IDE5OTkgSnVsaW8gQ2VzYXIgR2F6cXVlegogKiBDb3B5cmlnaHQgMjAwNSBKb3PpIE1hbnVlbCBGZXJyZXIgT3J0aXoKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqLwoKI2luY2x1ZGUgIndpbmRlZi5oIgojaW5jbHVkZSAibW1kZGsuaCIKCkxBTkdVQUdFIExBTkdfU1BBTklTSCwgU1VCTEFOR19ORVVUUkFMCgpTVFJJTkdUQUJMRQpCRUdJTgoKLyogTU1TWVMgZXJyb3JzICovCiAgIE1NU1lTRVJSX05PRVJST1IsICJFbCBjb21hbmRvIGVzcGVjaWZpY2FkbyBmdWUgZWplY3V0YWRvLiIKICAgTU1TWVNFUlJfRVJST1IsICJFcnJvciBleHRlcm5vIGluZGVmaW5pZG8uIgogICBNTVNZU0VSUl9CQURERVZJQ0VJRCwgIlVuIGlkZW50aWZpY2Fkb3IgZGUgZGlzcG9zaXRpdm8gcXVlIGhhIHNpZG8gdXNhZG8gZXN04SBmdWVyYSBkZSByYW5nbyBwYXJhIHN1IHNpc3RlbWEuIgogICBNTVNZU0VSUl9OT1RFTkFCTEVELCAiRWwgbWFuZWphZG9yIG5vIGZ1ZSBhY3RpdmFkby4iCiAgIE1NU1lTRVJSX0FMTE9DQVRFRCwgIkVsIGRpc3Bvc2l0aXZvIGVzcGVjaWZpY2FkbyBh+m4gZXN04SBlbiB1c28uIEVzcGVyZSBoYXN0YSBxdWUgZXN06SBsaWJyZSBlIGludGVudGUgbnVldmFtZW50ZS4iCiAgIE1NU1lTRVJSX0lOVkFMSEFORExFLCAiRWwgaGFuZGxlIGRlIGRpc3Bvc2l0aXZvIGVzcGVjaWZpY2FkbyBlcyBpbnbhbGlkby4iCiAgIE1NU1lTRVJSX05PRFJJVkVSLCAioU5vIGhheSB1biBtYW5lamFkb3IgaW5zdGFsYWRvIGVuIHN1IHNpc3RlbWEhXG4iCiAgIE1NU1lTRVJSX05PTUVNLCAiTm8gaGF5IHN1ZmljaWVudGUgbWVtb3JpYSBkaXNwb25pYmxlIHBhcmEgZXN0YSB0YXJlYS4gQ2llcnJlIHVuYSBvIG3hcyBhcGxpY2FjaW9uZXMgcGFyYSBhdW1lbnRhciBsYSBtZW1vcmlhIGRpc3BvbmlibGUgZSBpbnTpbnRlbG8gZGUgbnVldm8uIgogICBNTVNZU0VSUl9OT1RTVVBQT1JURUQsICJFc3RhIGZ1bmNp824gbm8gZXN04SBzb3BvcnRhZGEuIFVzZSBsYSBmdW5jafNuIENhcGFjaWRhZGVzIHBhcmEgZGV0ZXJtaW5hciBxdekgZnVuY2lvbmVzIHkgbWVuc2FqZXMgc29wb3J0YSBlbCBtYW5lamFkb3IuIgogICBNTVNZU0VSUl9CQURFUlJOVU0sICJTZSBoYSBlc3BlY2lmaWNhZG8gdW4gbvptZXJvIGRlIGVycm9yIHF1ZSBubyBlc3ThIGRlZmluaWRvIGVuIGVsIHNpc3RlbWEuIgogICBNTVNZU0VSUl9JTlZBTEZMQUcsICJTZSBoYSBwYXNhZG8gdW5hIGJhbmRlcmEgbm8gduFsaWRhIGEgdW5hIGZ1bmNp824gZGVsIHNpc3RlbWEuIgogICBNTVNZU0VSUl9JTlZBTFBBUkFNLCAiU2UgaGEgcGFzYWRvIHVuIHBhcuFtZXRybyBubyB24WxpZG8gYSB1bmEgZnVuY2nzbiBkZWwgc2lzdGVtYS4iCgovKiBXQVZFIGVycm9ycyAqLwogICBXQVZFUlJfQkFERk9STUFULCAiRWwgZm9ybWF0byBlc3BlY2lmaWNhZG8gbm8gZXN04SBzb3BvcnRhZG8gbyBubyBwdWVkZSBzZXIgdHJhZHVjaWRvLiBVc2UgbGEgZnVuY2nzbiBDYXBhY2lkYWRlcyBwYXJhIGRldGVybWluYXIgbG9zIGZvcm1hdG9zIHNvcG9ydGFkb3MuIgogICBXQVZFUlJfU1RJTExQTEFZSU5HLCAiRXN0YSBvcGVyYWNp824gbm8gcHVlZGUgZWplY3V0YXJzZSBtaWVudHJhcyBjb250aW76YSBsYSByZXByb2R1Y2Np824uIFJlaW5pY2llIGVsIGRpc3Bvc2l0aXZvLCBvIGVzcGVyZSBoYXN0YSBxdWUgbGEgcmVwcm9kdWNjafNuIHRlcm1pbmUuIgogICBXQVZFUlJfVU5QUkVQQVJFRCwgIkxhIGNhYmVjZXJhIGRlIG9uZGEgbm8gZXN04SBwcmVwYXJhZGEuIFVzZSBsYSBmdW5jafNuIFByZXBhcmFyIHBhcmEgcHJlcGFyYXJsYSwgZSBpbnTpbnRlbG8gZGUgbnVldm8uIgogICBXQVZFUlJfU1lOQywgIk5vIHB1ZWRlIGFicmlyc2UgZWwgZGlzcG9zaXRpdm8gc2luIHVzYXIgbGEgYmFuZGVyYSBXQVZFX0FMTE9XU1lOQy4gVXRpbO1jZWxhLCBlIGludOludGVsbyBkZSBudWV2by4iCgovKiBNSURJIGVycm9ycyAqLwogICBNSURJRVJSX1VOUFJFUEFSRUQsICJMYSBjYWJlY2VyYSBNSURJIG5vIGVzdOEgcHJlcGFyYWRhLiBVc2UgbGEgZnVuY2nzbiBQcmVwYXJhciBwYXJhIHByZXBhcmFybGEsIGUgaW506W50ZWxvIGRlIG51ZXZvLiIKICAgTUlESUVSUl9TVElMTFBMQVlJTkcsICJFc3RhIG9wZXJhY2nzbiBubyBwdWVkZSBlamVjdXRhcnNlIG1pZW50cmFzIHNlIGNvbnRpbvphIHRvY2FuZG8uIFJlaW5pY2llIGVsIGRpc3Bvc2l0aXZvLCBvIGVzcGVyYSBoYXN0YSBxdWUgdGVybWluZSBkZSB0b2Nhci4iCiAgIE1JRElFUlJfTk9NQVAsICJObyBzZSBlbmNvbnRy8yB1biBtYXBhIE1JREkuIFB1ZWRlIGhhYmVyIHVuIHByb2JsZW1hIGNvbiBlbCBjb250cm9sYWRvciwgZWwgZWwgZmljaGVybyBNSURJTUFQLkNGRyBwdWVkZSBmYWx0YXIgbyBlc3RhciBjb3JydXB0by4iCiAgIE1JRElFUlJfTk9UUkVBRFksICJFbCBwdWVydG8gZXN04SB0cmFuc21pdGllbmRvIGRhdG9zIGFsIGRpc3Bvc2l0aXZvLiBFc3BlcmEgaGFzdGEgcXVlIGxvcyBkYXRvcyBoYXlhbiBzaWRvIHRyYW5zbWl0aWRvcywgZSBpbnRlbnRlIG51ZXZhbWVudGUuIgogICBNSURJRVJSX05PREVWSUNFLCAiTGEgY29uZmlndXJhY2nzbiBhY3R1YWwgZGVsIG1hcGVhZG9yIE1JREkgcmVmaWVyZSBhIHVuIGRpc3Bvc2l0aXZvIE1JREkgcXVlIG5vIGVzdOEgaW5zdGFsYWRvIGVuIGVsIHNpc3RlbWEuIFVzZSBlbCBtYXBlYWRvciBNSURJIHBhcmEgZWRpdGFyIGxhIGNvbmZpZ3VyYWNp824uIgogICBNSURJRVJSX0lOVkFMSURTRVRVUCwgIkxhIGNvbmZpZ3VyYWNp824gYWN0dWFsIGRlIE1JREkgZXN04SBkYfFhZGEuIENvcGllIGVsIGZpY2hlcm8gTUlESU1BUC5DRkcgb3JpZ2luYWwgYWwgZGlyZWN0b3JpbyBTWVNURU0gZGUgV2luZG93cyBTWVNURU0sIGUgaW50ZW50ZSBudWV2YW1lbnRlLiIKCiAgIC8qIE1DSSBlcnJvcnMgKi8KICAgTUNJRVJSX0lOVkFMSURfREVWSUNFX0lELCAiSWRlbnRpZmljYWRvciBkZSBkaXNwb3NpdGl2byBNQ0kgaW524WxpZG8uIFVzZSBlbCBpZGVudGlmaWNhZG9yIGRldnVlbHRvIGFsIGFicmlyIGVsIGRpc3Bvc2l0aXZvIE1DSS4iCiAgIE1DSUVSUl9VTlJFQ09HTklaRURfS0VZV09SRCwgIkVsIGNvbnRyb2xhZG9yIG5vIHB1ZWRlIHJlY29ub2NlciBlbCBwYXLhbWV0cm8gZGUgY29tYW5kbyBlc3BlY2lmaWNhZG8uIgogICBNQ0lFUlJfVU5SRUNPR05JWkVEX0NPTU1BTkQsICJFbCBjb250cm9sYWRvciBubyBwdWVkZSByZWNvbm9jZXIgZWwgY29tYW5kbyBlc3BlY2lmaWNhZG8uIgogICBNQ0lFUlJfSEFSRFdBUkUsICJIYXkgdW4gcHJvYmxlbWEgY29uIHN1IGRpc3Bvc2l0aXZvLiBBc2Vn+nJlc2UgZGUgcXVlIGVzdOkgZnVuY2lvbmFuZG8gY29ycmVjdGFtZW50ZSBvIGNvbnRhY3RlIGFsIGZhYnJpY2FudGUgZGVsIGRpc3Bvc2l0aXZvLiIKICAgTUNJRVJSX0lOVkFMSURfREVWSUNFX05BTUUsICJFbCBkaXNwb3NpdGl2byBlc3BlY2lmaWNhZG8gbm8gZXN04SBhYmllcnRvIG8gbm8gZXMgcmVjb25vY2lkbyBwb3IgTUNJLiIKICAgTUNJRVJSX09VVF9PRl9NRU1PUlksICJObyBoYXkgc3VmaWNpZW50ZSBtZW1vcmlhIHBhcmEgZXN0YSB0YXJlYS5cbkNpZXJyZSB1bmEgbyBt4XMgYXBsaWNhY2lvbmVzIHBhcmEgYXVtZW50YXIgbGEgbWVtb3JpYSBkaXNwb25pYmxlIGUgaW50ZW50ZSBudWV2YW1lbnRlLiIKICAgTUNJRVJSX0RFVklDRV9PUEVOLCAiRWwgbm9tYnJlIGRlIGRpc3Bvc2l0aXZvIHlhIGVzdOEgc2llbmRvIHVzYWRvIGNvbW8gdW4gYWxpYXMgcG9yIGVzdGEgYXBsaWNhY2nzbi4gVXNlIHVuIGFsaWFzIPpuaWNvLiIKICAgTUNJRVJSX0NBTk5PVF9MT0FEX0RSSVZFUiwgIkhheSB1biBwcm9ibGVtYSBubyBkZXRlY3RhYmxlIGVuIGxhIGNhcmdhIGRlbCBjb250cm9sYWRvciBkZSBkaXNwb3NpdGl2byBlc3BlY2lmaWNhZG8uIgogICBNQ0lFUlJfTUlTU0lOR19DT01NQU5EX1NUUklORywgIk5vIHNlIGhhIGVzcGVjaWZpY2FkbyB1biBjb21hbmRvLiIKICAgTUNJRVJSX1BBUkFNX09WRVJGTE9XLCAiTGEgY2FkZW5hIGRlIHNhbGlkYSBlcyBtdXkgZ3JhbmRlIHBhcmEgY2FiZXIgZW4gZWwgYnVmZmVyIGRlIHJldG9ybm8uIEF1bWVudGUgZWwgdGFtYfFvIGRlbCBidWZmZXIuIgogICBNQ0lFUlJfTUlTU0lOR19TVFJJTkdfQVJHVU1FTlQsICJFbCBjb21hbmRvIGVzcGVjaWZpY2FkbyByZXF1aWVyZSB1biBwYXLhbWV0cm8gZGUgY2FkZW5hIGRlIGNhcmFjdGVyZXMuIFBvciBmYXZvciBwcm92ZWEgdW5vLiIKICAgTUNJRVJSX0JBRF9JTlRFR0VSLCAiRWwgZW50ZXJvIGVzcGVjaWZpY2FkbyBlcyBpbnbhbGlkbyBwYXJhIGVzdGUgY29tYW5kby4iCiAgIE1DSUVSUl9QQVJTRVJfSU5URVJOQUwsICJFbCBjb250cm9sYWRvciBkZSBkaXNwb3NpdGl2byBkZXZvbHZp8yB1biB0aXBvIGRlIHJldG9ybm8gaW524WxpZG8uIENvbnRhY3RlIGFsIGZhYnJpY2FudGUgZGVsIGRpc3Bvc2l0aXZvIHBhcmEgb2J0ZW5lciB1biBudWV2byBjb250cm9sYWRvci4iCiAgIE1DSUVSUl9EUklWRVJfSU5URVJOQUwsICJIYXkgdW4gcHJvYmxlbWEgY29uIGVsIGNvbnRyb2xhZG9yIGRlIGRpc3Bvc2l0aXZvLiBDb250YWN0ZSBhbCBmYWJyaWNhbnRlIGRlbCBkaXNwb3NpdGl2byBwYXJhIG9idGVuZXIgdW4gbnVldm8gY29udHJvbGFkb3IuIgogICBNQ0lFUlJfTUlTU0lOR19QQVJBTUVURVIsICJFbCBjb21hbmRvIGVzcGVjaWZpY2FkbyByZXF1aWVyZSB1biBwYXLhbWV0cm8uIFBvciBmYXZvciBwcm92ZWEgdW5vLiIKICAgTUNJRVJSX1VOU1VQUE9SVEVEX0ZVTkNUSU9OLCAiRWwgZGlzcG9zaXRpdm8gTUNJIHF1ZSBlc3ThIHVzYW5kbyBubyBzb3BvcnRhIGVsIGNvbWFuZG8gZXNwZWNpZmljYWRvLiIKICAgTUNJRVJSX0ZJTEVfTk9UX0ZPVU5ELCAiTm8gc2UgZW5jdWVudHJhIGVsIGZpY2hlcm8gZXNwZWNpZmljYWRvLiBBc2Vn+nJlc2UgcXVlIGVsIHBhdGggeSBlbCBub21icmUgZGVsIGZpY2hlcm8gc29uIGNvcnJlY3Rvcy4iCiAgIE1DSUVSUl9ERVZJQ0VfTk9UX1JFQURZLCAiRWwgY29udHJvbGFkb3IgZGUgZGlzcG9zaXRpdm8gbm8gZXN04SBsaXN0by4iCiAgIE1DSUVSUl9JTlRFUk5BTCwgIlVuIHByb2JsZW1hIGhhIG9jdXJyaWRvIGluaWNpYWxpemFuZG8gZWwgTUNJLiBJbnRlbnRlIHJlaW5pY2lhciBXaW5kb3dzLiIKICAgTUNJRVJSX0RSSVZFUiwgIkhheSB1biBwcm9ibGVtYSBjb24gZWwgY29udHJvbGFkb3IgZGVsIGRpc3Bvc2l0aXZvLiBFbCBjb250cm9sYWRvciBzZSBoYSBjZXJyYWRvLiBJbnRlbnRlIHJlZW52aWFyIGVsIGNvbWFuZG8uIgogICBNQ0lFUlJfQ0FOTk9UX1VTRV9BTEwsICJVdGlsaWNlIHVuIG5vbWJyZSBkZSBkaXNwb3NpdGl2byBlc3BlY+1maWNvIHBhcmEgZXN0ZSBjb21hbmRvLiIKICAgTUNJRVJSX01VTFRJUExFLCAiSGFuIG9jdXJyaWRvIGVycm9yZXMgZW4gbeFzIGRlIHVuIGRpc3Bvc2l0aXZvLiBFc3BlY2lmaXF1ZSBjYWRhIGNvbWFuZG8geSBkaXNwb3NpdGl2byBwb3Igc2VwYXJhZG8gcGFyYSBkZXRlcm1pbmFyIHF1ZSBkaXNwb3NpdGl2b3MgY2F1c2Fyb24gZWwgZXJyb3IuIgogICBNQ0lFUlJfRVhURU5TSU9OX05PVF9GT1VORCwgIk5vIHB1ZWRlIGRldGVybWluYXJzZSBlbCB0aXBvIGRlIGRpc3Bvc2l0aXZvIGEgcGFydGlyIGRlIGxhIGV4dGVuc2nzbiBkZSBmaWNoZXJvIGRhZGEuIgogICBNQ0lFUlJfT1VUT0ZSQU5HRSwgIkVsIHBhcuFtZXRybyBlc3BlY2lmaWNhZG8gZXN04SBmdWVyYSBkZWwgcmFuZ28gcGFyYSBlbCBjb21hbmRvIGVzcGVjaWZpY2Fkby4iCiAgIE1DSUVSUl9GTEFHU19OT1RfQ09NUEFUSUJMRSwgIkxvcyBwYXLhbWV0cm9zIGVzcGVjaWZpY2Fkb3Mgbm8gcHVlZGVuIHVzYXJzZSBqdW50b3MuIgogICBNQ0lFUlJfRklMRV9OT1RfU0FWRUQsICJObyBwdWVkZSBncmFiYXJzZSBlbCBmaWNoZXJvIGVzcGVjaWZpY2Fkby4gQXNlZ/pyZXNlIGRlIHRlbmVyIHN1ZmljaWVudGUgZXNwYWNpbyBlbiBkaXNjbyBvIGRlIHF1ZSBwZXJtYW5lY2UgY29uZWN0YWRvIGEgbGEgcmVkLiIKICAgTUNJRVJSX0RFVklDRV9UWVBFX1JFUVVJUkVELCAiTm8gcHVlZGUgZW5jb250cmFyc2UgZWwgZGlzcG9zaXRpdm8gZXNwZWNpZmljYWRvLiBBc2Vn+nJlc2UgZGUgcXVlIGVzdOEgaW5zdGFsYWRvIG8gZGUgcXVlIGVsIG5vbWJyZSBkZWwgZGlzcG9zaXRpdm8gZXN04SBlc2NyaXRvIGNvcnJlY3RhbWVudGUuIgogICBNQ0lFUlJfREVWSUNFX0xPQ0tFRCwgIkVsIGRpc3Bvc2l0aXZvIGVzcGVjaWZpY2FkbyBlc3ThIHNpZW5kbyBjZXJyYWRvLiBFc3BlcmUgdW5vcyBzZWd1bmRvcyBlIGludGVudGUgbnVldmFtZW50ZS4iCiAgIE1DSUVSUl9EVVBMSUNBVEVfQUxJQVMsICJFbCBhbGlhcyBlc3BlY2lmaWNhZG8geWEgZXN04SBzaWVuZG8gdXNhZG8gcG9yIGVzdGEgYXBsaWNhY2nzbi4gVXNlIHVuIGFsaWFzIPpuaWNvLiIKICAgTUNJRVJSX0JBRF9DT05TVEFOVCwgIkVsIHBhcuFtZXRybyBlc3BlY2lmaWNhZG8gZXMgaW524WxpZG8gcGFyYSBlc3RlIGNvbWFuZG8uIgogICBNQ0lFUlJfTVVTVF9VU0VfU0hBUkVBQkxFLCAiRWwgY29udHJvbGFkb3IgZGUgZGlzcG9zaXRpdm8geWEgZXN04SBlbiB1c28uIFBhcmEgY29tcGFydGlybG8sIHVzZSBlbCBwYXLhbWV0cm8gJ2NvbXBhcnRpYmxlJyAoJ3NoYXJlYWJsZScpIGNvbiBjYWRhIGNvbWFuZG8gJ2FicmlyJyAoJ29wZW4nKS4iCiAgIE1DSUVSUl9NSVNTSU5HX0RFVklDRV9OQU1FLCAiRWwgY29tYW5kbyBlc3BlY2lmaWNhZG8gcmVxdWllcmUgdW4gYWxpYXMsIGZpY2hlcm8sIGNvbnRyb2xhZG9yIG8gbm9tYnJlIGRlIGRpc3Bvc2l0aXZvLiBQb3IgZmF2b3IgcHJvdmVhIHVuby4iCiAgIE1DSUVSUl9CQURfVElNRV9GT1JNQVQsICJFbCB2YWxvciBlc3BlY2lmaWNhZG8gcGFyYSBlbCBmb3JtYXRvIGRlIHRpZW1wbyBlcyBpbnbhbGlkby4gVmVyaWZpcXVlIGxvcyBmb3JtYXRvcyB24WxpZG9zIGVuIGxhIGRvY3VtZW50YWNp824gZGUgTUNJLiIKICAgTUNJRVJSX05PX0NMT1NJTkdfUVVPVEUsICJVbmEgY29taWxsYSBkZSBjaWVycmUgZXN04SBmYWx0YW5kbyBlbiBlbCB2YWxvciBkZWwgcGFy4W1ldHJvLiBQb3IgZmF2b3IgcHJvdmVhIHVuYS4iCiAgIE1DSUVSUl9EVVBMSUNBVEVfRkxBR1MsICJVbiBwYXLhbWV0cm8gbyB2YWxvciBmdWUgZXNwZWNpZmljYWRvIGRvcyB2ZWNlcy4gRXNwZWNpZu1xdWVsbyB1bmEgc29sYSB2ZXouIgogICBNQ0lFUlJfSU5WQUxJRF9GSUxFLCAiRWwgZmljaGVybyBlc3BlY2lmaWNhZG8gbm8gcHVlZGUgc2VyIHRvY2FkbyBlbiBlbCBkaXNwb3NpdGl2byBNQ0kgZXNwZWNpZmljYWRvLiBFbCBmaWNoZXJvIHB1ZWRlIGVzdGFyIGNvcnJ1cHRvIG8gZW4gdW4gZm9ybWF0byBpbmNvcnJlY3RvLiIKICAgTUNJRVJSX05VTExfUEFSQU1FVEVSX0JMT0NLLCAiU2UgaGEgcGFzYWRvIHVuIGJsb3F1ZSBkZSBwYXLhbWV0cm9zIG51bG8gYWwgTUNJLiIKICAgTUNJRVJSX1VOTkFNRURfUkVTT1VSQ0UsICJObyBwdWVkZSBndWFyZGFyc2UgdW4gZmljaGVybyBzaW4gbm9tYnJlLiBQcm92ZWEgdW4gbm9tYnJlIHBhcmEgZWwgZmljaGVyby4iCiAgIE1DSUVSUl9ORVdfUkVRVUlSRVNfQUxJQVMsICJEZWJlIGVzcGVjaWZpY2FyIHVuIGFsaWFzIGN1YW5kbyB1dGlsaWNlIGVsIHBhcuFtZXRybyAnbnVldm8nLiIKICAgTUNJRVJSX05PVElGWV9PTl9BVVRPX09QRU4sICJObyBwdWVkZSB1c2FyIGVsIGZsYWcgJ25vdGlmaWNhcicgY29uIGRpc3Bvc2l0aXZvcyBkZSBhcGVydHVyYSBhdXRvbeF0aWNhLiIKICAgTUNJRVJSX05PX0VMRU1FTlRfQUxMT1dFRCwgIk5vIHB1ZWRlIHVzYXIgdW4gbm9tYnJlIGRlIGZpY2hlcm8gY29uIGVsIGRpc3Bvc2l0aXZvIGVzcGVjaWZpY2Fkby4iCiAgIE1DSUVSUl9OT05BUFBMSUNBQkxFX0ZVTkNUSU9OLCAiTm8gcHVlZGVuIGVqZWN1dGFyc2UgbG9zIGNvbWFuZG9zIGVuIGVsIG9yZGVuIGVzcGVjaWZpY2Fkby4gQ29ycmlqYSBsYSBzZWN1ZW5jaWEgZGUgY29tYW5kb3MgZSBpbnRlbnRlIG51ZXZhbWVudGUuIgogICBNQ0lFUlJfSUxMRUdBTF9GT1JfQVVUT19PUEVOLCAiTm8gcHVlZGUgZWplY3V0YXJzZSBlbCBjb21hbmRvIGVzcGVjaWZpY2FkbyBlbiB1biBkaXNwb3NpdGl2byBkZSBhcGVydHVyYSBhdXRvbeF0aWNhLiBFc3BlcmUgaGFzdGEgcXVlIGVsIGRpc3Bvc2l0aXZvIGVzdOkgY2VycmFkbyBlIGludGVudGUgbnVldmFtZW50ZS4iCiAgIE1DSUVSUl9GSUxFTkFNRV9SRVFVSVJFRCwgIkVsIG5vbWJyZSBkZWwgZmljaGVybyBlcyBpbnbhbGlkby4gQXNlZ/pyZXNlIGRlIHF1ZSBlbCBub21icmUgZGVsIGZpY2hlcm8gbm8gZXMgbWF5b3IgZGUgOCBjYXJhY3RlcmVzLCBzZWd1aWRvIHBvciB1biBwdW50byB5IHVuYSBleHRlbnNp824uIgogICBNQ0lFUlJfRVhUUkFfQ0hBUkFDVEVSUywgIk5vIHB1ZWRlIGVzcGVjaWZpY2FyIGNhcmFjdGVyZXMgZXh0cmEgZGVzcHXpcyBkZSB1bmEgY2FkZW5hIGVuY2VycmFkYSBlbnRyZSBjb21pbGxhcy4iCiAgIE1DSUVSUl9ERVZJQ0VfTk9UX0lOU1RBTExFRCwgIkVsIGRpc3Bvc2l0aXZvIGVzcGVjaWZpY2FkbyBubyBlc3ThIGluc3RhbGFkbyBlbiBlbCBzaXN0ZW1hLiBVc2UgbGEgb3BjafNuIENvbnRyb2xhZG9yZXMgZW4gZWwgUGFuZWwgZGUgQ29udHJvbCBwYXJhIGluc3RhbGFyIGVsIGRpc3Bvc2l0aXZvLiIKICAgTUNJRVJSX0dFVF9DRCwgIk5vIHB1ZWRlIGFjY2VkZXJzZSBhbCBmaWNoZXJvIG8gZGlzcG9zaXRpdm8gTUNJIGVzcGVjaWZpY2Fkby4gSW50ZW50ZSBjYW1iaWFuZG8gZGUgZGlyZWN0b3JpbyBvIHJlaW5pY2lhbmRvIGVsIGVxdWlwby4iCiAgIE1DSUVSUl9TRVRfQ0QsICJObyBwdWVkZSBhY2NlZGVyc2UgYWwgZmljaGVybyBvIGRpc3Bvc2l0aXZvIE1DSSBlc3BlY2lmaWNhZG8gcG9ycXVlIGxhIGFwbGljYWNp824gbm8gcHVlZGUgY2FtYmlhciBkZSBkaXJlY3RvcmlvLiIKICAgTUNJRVJSX1NFVF9EUklWRSwgIk5vIHB1ZWRlIGFjY2VkZXJzZSBhbCBmaWNoZXJvIG8gZGlzcG9zaXRpdm8gTUNJIGVzcGVjaWZpY2FkbyBwb3JxdWUgbGEgYXBsaWNhY2nzbiBubyBwdWVkZSBjYW1iaWFyIGRlIHVuaWRhZC4iCiAgIE1DSUVSUl9ERVZJQ0VfTEVOR1RILCAiRXNwZWNpZmlxdWUgdW4gZGlzcG9zaXRpdm8gbyBub21icmUgZGUgY29udHJvbGFkb3IgZGUgbWVub3MgZGUgNzkgY2FyYWN0ZXJlcy4iCiAgIE1DSUVSUl9ERVZJQ0VfT1JEX0xFTkdUSCwgIkVzcGVjaWZpcXVlIHVuIGRpc3Bvc2l0aXZvIG8gbm9tYnJlIGRlIGNvbnRyb2xhZG9yIGRlIG1lbm9zIGRlIDY5IGNhcmFjdGVyZXMuIgogICBNQ0lFUlJfTk9fSU5URUdFUiwgIkVsIGNvbWFuZG8gZXNwZWNpZmljYWRvIHJlcXVpZXJlIHVuIHBhcuFtZXRybyBlbnRlcm8uIFBvciBmYXZvciBwcm92ZWEgdW5vLiIKICAgTUNJRVJSX1dBVkVfT1VUUFVUU0lOVVNFLCAiVG9kb3MgbG9zIGRpc3Bvc2l0aXZvcyBxdWUgcHVlZGVuIHRvY2FyIGZpY2hlcm9zIGVuIGVzdGUgZm9ybWF0byBlc3ThbiBlbiB1c28uIEVzcGVyZSBoYXN0YSBxdWUgc2UgbGliZXJlIHVuIGRpc3Bvc2l0aXZvIGUgaW50ZW50ZSBudWV2YW1lbnRlLiIKICAgTUNJRVJSX1dBVkVfU0VUT1VUUFVUSU5VU0UsICJObyBwdWVkZSBwcmVwYXJhcnNlIGVsIGRpc3Bvc2l0aXZvIGRlIGZvcm1hIGRlIG9uZGEgcGFyYSByZXByb2R1Y2Np824gcG9ycXVlIGVzdOEgZW4gdXNvLiBFc3BlcmUgaGFzdGEgcXVlIGVsIGRpc3Bvc2l0aXZvIGVzdOkgbGlicmUgZSBpbnRlbnRlIG51ZXZhbWVudGUuIgogICBNQ0lFUlJfV0FWRV9JTlBVVFNJTlVTRSwgIlRvZG9zIGxvcyBkaXNwb3NpdGl2b3MgcXVlIHB1ZWRlbiBncmFiYXIgZmljaGVyb3MgZW4gZXN0ZSBmb3JtYXRvIGVzdOFuIGVuIHVzby4gRXNwZXJlIGhhc3RhIHF1ZSBzZSBsaWJlcmUgdW4gZGlzcG9zaXRpdm8gZSBpbnRlbnRlIG51ZXZhbWVudGUuIgogICBNQ0lFUlJfV0FWRV9TRVRJTlBVVElOVVNFLCAiTm8gcHVlZGUgcHJlcGFyYXJzZSBlbCBkaXNwb3NpdGl2byBkZSBmb3JtYSBkZSBvbmRhIHBhcmEgZ3JhYmFjafNuIHBvcnF1ZSBlc3ThIGVuIHVzby4gRXNwZXJlIGhhc3RhIHF1ZSBlbCBkaXNwb3NpdGl2byBlc3TpIGxpYnJlIGUgaW50ZW50ZSBudWV2YW1lbnRlLiIKICAgTUNJRVJSX1dBVkVfT1VUUFVUVU5TUEVDSUZJRUQsICJDdWFscXVpZXIgZGlzcG9zaXRpdm8gY29tcGF0aWJsZSBkZSByZXByb2R1Y2Np824gZGUgZm9ybWEgZGUgb25kYSBwdWVkZSBzZXIgdXNhZG8uIgogICBNQ0lFUlJfV0FWRV9JTlBVVFVOU1BFQ0lGSUVELCAiQ3VhbHF1aWVyIGRpc3Bvc2l0aXZvIGNvbXBhdGlibGUgZGUgZ3JhYmFjafNuIGRlIGZvcm1hIGRlIG9uZGEgcHVlZGUgc2VyIHVzYWRvLiIKICAgTUNJRVJSX1dBVkVfT1VUUFVUU1VOU1VJVEFCTEUsICJObyBoYXkgbmluZ/puIGRpc3Bvc2l0aXZvIGRlIGZvcm1hIGRlIG9uZGEgaW5zdGFsYWRvIGNhcGF6IGRlIHJlcHJvZHVjaXIgZmljaGVyb3MgZW4gZXN0ZSBmb3JtYXRvLiBVc2UgbGEgb3BjafNuIERpc3Bvc2l0aXZvcyBwYXJhIGluc3RhbGFyIGVsIGRpc3Bvc2l0aXZvIGRlIGZvcm1hIGRlIG9uZGEuIgogICBNQ0lFUlJfV0FWRV9TRVRPVVRQVVRVTlNVSVRBQkxFLCJFbCBkaXNwb3NpdGl2byBjb24gZWwgcXVlIGludGVudGEgcmVwcm9kdWNpciBubyBwdWVkZSByZWNvbm9jZXIgZWwgZm9ybWF0byBkZSBmaWNoZXJvLiIKICAgTUNJRVJSX1dBVkVfSU5QVVRTVU5TVUlUQUJMRSwgIk5vIGhheSBuaW5n+m4gZGlzcG9zaXRpdm8gZGUgZm9ybWEgZGUgb25kYSBpbnN0YWxhZG8gY2FwYXogZGUgZ3JhYmFyIGZpY2hlcm9zIGVuIGVzdGUgZm9ybWF0by4gVXNlIGxhIG9wY2nzbiBEaXNwb3NpdGl2b3MgcGFyYSBpbnN0YWxhciBlbCBkaXNwb3NpdGl2byBkZSBmb3JtYSBkZSBvbmRhLiIKICAgTUNJRVJSX1dBVkVfU0VUSU5QVVRVTlNVSVRBQkxFLCAiRWwgZGlzcG9zaXRpdm8gY29uIGVsIHF1ZSBpbnRlbnRhIGdyYWJhciBubyBwdWVkZSByZWNvbm9jZXIgZWwgZm9ybWF0byBkZSBmaWNoZXJvLiIKICAgTUNJRVJSX05PX1dJTkRPVywgIk5vIGhheSB1bmEgdmVudGFuYS4iCiAgIE1DSUVSUl9DUkVBVEVXSU5ET1csICJObyBwdWVkZSBjcmVhcnNlIG8gdXNhciB1bmEgdmVudGFuYS4iCiAgIE1DSUVSUl9GSUxFX1JFQUQsICJObyBwdWVkZSBsZWVyc2UgZWwgZmljaGVybyBlc3BlY2lmaWNhZG8uIEFzZWf6cmVzZSBkZSBxdWUgZWwgZmljaGVybyBh+m4gZXN04SBwcmVzZW50ZSwgbyByZXZpc2Ugc3UgZGlzY28gbyBjb25leGnzbiBkZSByZWQuIgogICBNQ0lFUlJfRklMRV9XUklURSwgIk5vIHB1ZWRlIGdyYWJhcnNlIGVsIGZpY2hlcm8gZXNwZWNpZmljYWRvLiBBc2Vn+nJlc2UgZGUgdGVuZXIgc3VmaWNpZW50ZSBlc3BhY2lvIGVuIGRpc2NvIG8gZGUgcXVlIHBlcm1hbmVjZSBjb25lY3RhZG8gYSBsYSByZWQuIgogICBNQ0lFUlJfU0VRX0RJVl9JTkNPTVBBVElCTEUsICJMb3MgZm9ybWF0b3MgZGUgdGllbXBvIGRlICIic29uZyBwb2ludGVyIiIgeSBTTVBURSBzb24gbXV0dWFtZW50ZSBleGNsdXNpdm9zLiBObyBwdWVkZW4gdXRpbGl6YXJzZSBhIGxhIHZlei4iCiAgIE1DSUVSUl9TRVFfTk9NSURJUFJFU0VOVCwgIkVsIHNpc3RlbWEgbm8gdGllbmUgZGlzcG9zaXRpdm9zIE1JREkgaW5zdGFsYWRvcy4gVXNlIGxhIG9wY2nzbiBDb250cm9sYWRvcmVzIGVuIGVsIFBhbmVsIGRlIENvbnRyb2wgcGFyYSBpbnN0YWxhciBlbCBkaXNwb3NpdGl2by4iCiAgIE1DSUVSUl9TRVFfUE9SVF9JTlVTRSwgIkVsIHB1ZXJ0byBNSURJIGVzcGVjaWZpY2FkbyB5YSBlc3ThIGVuIHVzby4gRXNwZXJlIGhhc3RhIHF1ZSBlc3TpIGxpYnJlIGUgaW50ZW50ZSBudWV2YW1lbnRlLiIKICAgTUNJRVJSX1NFUV9QT1JUX01BUE5PREVWSUNFLCAiTGEgY29uZmlndXJhY2nzbiBhY3R1YWwgZGVsIG1hcGVhZG9yIE1JREkgcmVmaWVyZSBhIHVuIGRpc3Bvc2l0aXZvIE1JREkgcXVlIG5vIGVzdOEgaW5zdGFsYWRvIGVuIGVsIHNpc3RlbWEuIFVzZSBlbCBsYSBvcGNp824gZGVsIG1hcGVhZG9yIE1JREkgZW4gZWwgUGFuZWwgZGUgQ29udHJvbCBwYXJhIGVkaXRhciBsYSBjb25maWd1cmFjafNuLiIKICAgTUNJRVJSX1NFUV9QT1JUX01JU0NFUlJPUiwgIkhhIG9jdXJyaWRvIHVuIGVycm9yIGNvbiBlbCBwdWVydG8gZXNwZWNpZmljYWRvLiIKICAgTUNJRVJSX1NFUV9QT1JUX05PTkVYSVNURU5ULCAiRWwgZGlzcG9zaXRpdm8gTUlESSBlc3BlY2lmaWNhZG8gbm8gZXN04SBpbnN0YWxhZG8gZW4gZWwgc2lzdGVtYS4gVXNlIGxhIG9wY2nzbiBEaXNwb3NpdGl2b3MgZW4gZWwgUGFuZWwgZGUgQ29udHJvbCBwYXJhIGluc3RhbGFyIHVuIGRpc3Bvc2l0aXZvIE1JREkuIgogICBNQ0lFUlJfU0VRX1BPUlRVTlNQRUNJRklFRCwgIkVsIHNpc3RlbWEgbm8gdGllbmUgYWN0dWFsbWVudGUgdW4gcHVlcnRvIE1JREkgZXNwZWNpZmljYWRvLiIKICAgTUNJRVJSX1NFUV9USU1FUiwgIlRvZG9zIGxvcyB0ZW1wb3JpemFkb3JlcyBkZSBtdWx0aW1lZGlhIGVzdOFuIHNpZW5kbyB1c2Fkb3MgcG9yIG90cmFzIGFwbGljYWNpb25lcy4gQ2llcnJlIHVuYSBkZSBlc2FzIGFwbGljYWNpb25lcyBlIGludGVudGUgbnVldmFtZW50ZS4iCgpFTkQK