MS4gSU5UUk9EVUNDSdNOCgpXaW5lIGVzIHVuIHByb2dyYW1hIHF1ZSBwZXJtaXRlIGxhIGVqZWN1Y2nzbiBkZSBwcm9ncmFtYXMgZGUgTWljcm9zb2Z0IFdpbmRvd3MKKGluY2x1eWVuZG8gZWplY3V0YWJsZXMgZGUgRE9TLCBXaW5kb3dzIDMueCB5IFdpbjMyKSBzb2JyZSBVbml4LiBDb25zaXN0ZSBlbiB1bgpwcm9ncmFtYSBjYXJnYWRvciBxdWUgY2FyZ2EgeSBlamVjdXRhIHVuIGJpbmFyaW8gZGUgTWljcm9zb2Z0IFdpbmRvd3MsIHkgdW5hCmxpYnJlcu1hIChsbGFtYWRhIFdpbmVsaWIpIHF1ZSBpbXBsZW1lbnRhIGxhcyBsbGFtYWRhcyBhIGxhIEFQSSBkZSBXaW5kb3dzCnVzYW5kbyBzdXMgZXF1aXZhbGVudGVzIFVuaXggbyBYMTEuIExhIGxpYnJlcu1hIHB1ZWRlIHRhbWJp6W4gdXRpbGl6YXJzZSBwYXJhCnBvcnRhciBj82RpZ28gV2luMzIgYSBlamVjdXRhYmxlcyBVbml4IG5hdGl2b3MuCgpXaW5lIGVzIHNvZnR3YXJlIGxpYnJlLCBwdWJsaWNhZG8gYmFqbyBsYSBsaWNlbmNpYSBHTlUgTEdQTDsgdmVhIGVsIGZpY2hlcm8KTElDRU5TRSBwYXJhIGxvcyBkZXRhbGxlcy4KCjIuIElOSUNJTyBSwVBJRE8KCkN1YW5kbyBjb21waWxlIGRlc2RlIGVsIGPzZGlnbyBmdWVudGUsIHNlIHJlY29taWVuZGEgdXRpbGl6YXIgZWwgSW5zdGFsYWRvciBkZQpXaW5lIHBhcmEgY29udHJ1aXIgZSBpbnN0YWxhciBXaW5lLiBEZXNkZSBlbCBkaXJlY3RvcmlvIHN1cGVyaW9yIGRlbCBj82RpZ28gZGUKV2luZSAoZWwgY3VhbCBjb250aWVuZSBlc3RlIGZpY2hlcm8pLCBlamVjdXRlOgoKLi90b29scy93aW5laW5zdGFsbAoKRWplY3V0ZSBwcm9ncmFtYXMgY29uICJ3aW5lIFtvcGNpb25lc10gcHJvZ3JhbWEiLiBQYXJhIG3hcyBpbmZvcm1hY2nzbiB5CnJlc29sdWNp824gZGUgcHJvYmxlbWFzLCBsZWEgZWwgcmVzdG8gZGUgZXN0ZSBmaWNoZXJvLCBsYSBw4WdpbmEgZGUgbWFudWFsIGRlCldpbmUsIGxvcyBmaWNoZXJvcyBlbiBlbCBkaXJlY3RvcmlvIGRlIGRvY3VtZW50YWNp824gZGVsIGPzZGlnbyBmdWVudGUgZGUgV2luZQoodmVhICJET0NVTUVOVEFDSdNOIikgeSwgZXNwZWPtZmljYW1lbnRlLCBsYSBudW1lcm9zYSBpbmZvcm1hY2nzbiBxdWUgc2UKZW5jdWVudHJhIGVuIGh0dHA6Ly93d3cud2luZWhxLm9yZy4KCjMuIFJFUVVJU0lUT1MKClBhcmEgY29tcGlsYXIgeSBlamVjdXRhciBXaW5lLCBkZWJlcuEgdGVuZXIgdW5vIGRlIGxvcyBzaWd1aWVudGVzOgoKICBMaW51eCB2ZXJzafNuIDIuMC4zNiBvIHN1cGVyaW9yCiAgRnJlZUJTRCA1LjMgbyBzdXBlcmlvcgogIFNvbGFyaXMgeDg2IDIuNSBvIHN1cGVyaW9yCiAgTmV0QlNELWN1cnJlbnQKCllhIHF1ZSBXaW5lIHJlcXVpZXJlIHNvcG9ydGUgZGUgaGlsb3MgYSBuaXZlbCBkZSBu+mNsZW8gcGFyYSBlamVjdXRhcnNlLCBz82xvCnNlIHNvcG9ydGFuIGxvcyBzaXN0ZW1hcyBvcGVyYXRpdm9zIGFycmliYSBtZW5jaW9uYWRvcy4KT3Ryb3Mgc2lzdGVtYXMgb3BlcmF0aXZvcyBxdWUgc29wb3J0YW4gaGlsb3MgZGUgbvpjbGVvIHB1ZWRlbiBzZXIgc29wb3J0YWRvcyBlbgplbCBmdXR1cm8uCgpJbmZvcm1hY2nzbiBkZSBMaW51eDoKICBBIHBlc2FyIGRlIHF1ZSBMaW51eCAyLjIueCBkZWJlcu1hIGZ1bmNpb25hciB0b2Rhdu1hIHkgTGludXggMi4wLnggYfpuIHBvZHLtYQogIGZ1bmNpb25hciAodmVyc2lvbmVzIGFudGlndWFzIGRlIDIuMC54IHRlbu1hbiBwcm9ibGVtYXMgcmVsYWNpb25hZG9zIGNvbiBsb3MKICBoaWxvcyksIGVzIG1lam9yIHRlbmVyIHVuIG76Y2xlbyBhY3R1YWwgY29tbyBsb3MgMi40LnguCgpJbmZvcm1hY2nzbiBkZSBGcmVlQlNEOgogIFdpbmUgZGViZXLtYSBjb25zdHJ1aXJzZSBzb2JyZSBGcmVlQlNEIDQueCB5IEZyZWVCU0QgNS54LCBwZXJvIHZlcnNpb25lcwogIGFudGVyaW9yZXMgYSBGcmVlQlNEIDUuMyBnZW5lcmFsbWVudGUgbm8gZnVuY2lvbmFy4W4gYWRlY3VhZGFtZW50ZS4KCiAgTeFzIGluZm9ybWFjafNuIHNlIHB1ZWRlIGVuY29udHJhciBlbiBlbCDhcmJvbCBkZSBwb3J0ZXMgZGUgRnJlZUJTRCBlbgogIDxmdHA6Ly9mdHAuZnJlZWJzZC5vcmcvcHViL0ZyZWVCU0QvcG9ydHMvcG9ydHMvZW11bGF0b3JzL3dpbmUvPi4KCkluZm9ybWFjafNuIGRlIFNvbGFyaXM6CiAgTG8gbeFzIHByb2JhYmxlIGVzIHF1ZSBuZWNlc2l0ZSBjb25zdHJ1aXIgY29uIGVsIGNvbmp1bnRvIGRlIGhlcnJhbWllbnRhcyBHTlUKICAoZ2NjLCBnYXMsIGV0Yy4pLiBBZHZlcnRlbmNpYTogZWwgaW5zdGFsYXIgZ2FzICpubyogYXNlZ3VyYSBxdWUgc2VhIHV0aWxpemFkbwogIHBvciBnY2MuIFNlIGRpY2UgcXVlIHJlY29tcGlsYXIgZ2NjIHRyYXMgbGEgaW5zdGFsYWNp824gZGUgZ2FzIG8gZW5sYXphcgogIHNpbWLzbGljYW1lbnRlIGNjLCBhcyB5IGxkIGEgbGFzIGhlcnJhbWllbnRhcyBnbnUgZXMgbmVjZXNhcmlvLgoKSW5mb3JtYWNp824gZGUgTmV0QlNEOgogIEFzZWf6cmVzZSBkZSBxdWUgcG9zZWUgbGFzIG9wY2lvbmVzIFVTRVJfTERULCBTWVNWU0hNLCBTWVNWU0VNLCB5IFNZU1ZNU0cKICBhY3RpdmFkYXMgZW4gc3UgbvpjbGVvLgoKCgpTaXN0ZW1hcyBkZSBmaWNoZXJvcyBzb3BvcnRhZG9zOgogIFdpbmUgZGViZXLtYSBlamVjdXRhcnNlIGVuIGxhIG1heW9y7WEgZGUgbG9zIHNpc3RlbWFzIGRlIGZpY2hlcm9zLiBTaW4KICBlbWJhcmdvLCBXaW5lIG5vIGNvbnNlZ3VpcuEgaW5pY2lhcnNlIHNpIHVtc2RvcyBlcyB1dGlsaXphZG8gcGFyYSBlbAogIGRpcmVjdG9yaW8gL3RtcC4gVW5vcyBjdWFudG9zIHByb2JsZW1hcyBkZSBjb21wYXRpYmlsaWRhZCBzZSBoYW4gcmVwb3J0YWRvCiAgdGFtYmnpbiBhbCB1dGlsaXphciBmaWNoZXJvcyBhY2NlZGlkb3MgYSB0cmF26XMgZGUgU2FtYmEuIEFkZW3hcywgY29tbyBkZQogIG1vbWVudG8gTlRGUyBz82xvIHB1ZWRlIHNlciB1dGlsaXphZG8gY29uIHNlZ3VyaWRhZCBjb24gYWNjZXNvIGRlIHPzbG8KICBsZWN0dXJhLCByZWNvbWVuZGFtb3Mgbm8gdXRpbGl6YXIgTlRGUywgeWEgcXVlIGxvcyBwcm9ncmFtYXMgV2luZG93cwogIG5lY2VzaXRhbiBhY2Nlc28gZGUgZXNjcml0dXJhIGVuIGNhc2kgY3VhbHF1aWVyIHNpdGlvLiBFbiBlbCBjYXNvIGRlIGZpY2hlcm9zCiAgTlRGUywgY/NwaWVsb3MgYSB1bmEgbG9jYWxpemFjafNuIGVzY3JpYmlibGUuCgpSZXF1aXNpdG9zIGLhc2ljb3M6CiAgTmVjZXNpdGEgdGVuZXIgbG9zIGZpY2hlcm9zIGRlIGluY2x1c2nzbiBkZSBkZXNhcnJvbGxvIGRlIFgxMSBpbnN0YWxhZG9zCiAgKGxsYW1hZG9zIHhsaWI2Zy1kZXYgZW4gRGViaWFuIHkgWEZyZWU4Ni1kZXZlbCBlbiBSZWRIYXQpLgoKUmVxdWlzaXRvcyBkZSBoZXJyYW1pZW50YSBkZSBjb25zdHJ1Y2Np8246CiAgU29icmUgc2lzdGVtYXMgeDg2IHNlIHJlcXVpZXJlIGdjYyA+PSAyLjcuMi4KICBWZXJzaW9uZXMgbeFzIGFudGlndWFzIHF1ZSBsYSAyLjcuMi4zIHB1ZWRlbiB0ZW5lciBwcm9ibGVtYXMgY3VhbmRvIGNpZXJ0b3MKICBmaWNoZXJvcyBzZWFuIGNvbXBpbGFkb3MgY29uIG9wdGltaXphY2nzbiwgYSBtZW51ZG8gZGViaWRvIGEgcHJvYmxlbWFzIGNvbiBlbAogIG1hbmVqbyBkZSBmaWNoZXJvcyBkZSBjYWJlY2VyYS4gcGdjYyBhY3R1YWxtZW50ZSBubyBmdW5jaW9uYSBjb24gV2luZS4gTGEKICBjYXVzYSBkZSBlc3RlIHByb2JsZW1hIHNlIGRlc2Nvbm9jZS4KCiAgUG9yIHN1cHVlc3RvIHRhbWJp6W4gbmVjZXNpdGEgIm1ha2UiIChwcmVmZXJpYmxlbWVudGUgR05VIG1ha2UpLgoKICBUYW1iaeluIG5lY2VzaXRhIGZsZXggdmVyc2nzbiAyLjUgbyBzdXBlcmlvciB5IGJpc29uLiBTaSBlc3ThIHV0aWxpemFuZG8KICBSZWRIYXQgbyBEZWJpYW4sIGluc3RhbGUgbG9zIHBhcXVldGVzIGZsZXggeSBiaXNvbi4KCkxpYnJlcu1hcyBkZSBzb3BvcnRlIGFkaWNpb25hbGVzOgogIFNpIGRlc2VhIHNvcG9ydGUgZGUgaW1wcmVzafNuIENVUFMsIHBvciBmYXZvciBpbnN0YWxlIGxvcyBwYXF1ZXRlcyBjdXBzIHkKICBjdXBzLWRldmVsLgoKUGFyYSBsb3MgcmVxdWlzaXRvcyBlbiBlbCBjYXNvIGRlIHF1ZSBwcmV0ZW5kYSBjb25zdHJ1aXIgdXN0ZWQgbWlzbW8gbGEKZG9jdW1lbnRhY2nzbiwgdmVhIGxhIHNlY2Np824gIkRPQ1VNRU5UQUNJ004iLgoKNC4gQ09NUElMQUNJ004KCkVuIGVsIGNhc28gZGUgcXVlIGVsaWphIG5vIHV0aWxpemFyIHdpbmVpbnN0YWxsLCBlamVjdXRlIGxvcyBzaWd1aWVudGVzCmNvbWFuZG9zIHBhcmEgY29uc3RydWlyIFdpbmU6CgouL2NvbmZpZ3VyZQptYWtlIGRlcGVuZAptYWtlCgpFc3RvIGNvbnN0cnVpcuEgZWwgcHJvZ3JhbWEgIndpbmUiIHkgbnVtZXJvc2FzIGxpYnJlcu1hcy9iaW5hcmlvcyBkZSBzb3BvcnRlLgpFbCBwcm9ncmFtYSAid2luZSIgY2FyZ2Fy4SB5IGVqZWN1dGFy4SBlamVjdXRhYmxlcyBkZSBXaW5kb3dzLgpMYSBsaWJyZXLtYSAibGlid2luZSIgKCJXaW5lbGliIikgcHVlZGUgdXRpbGl6YXJzZSBwYXJhIGNvbXBpbGFyIHkgZW5sYXphcgpj82RpZ28gZnVlbnRlIGRlIFdpbmRvd3MgYmFqbyBVbml4LgoKUGFyYSB2ZXIgbGFzIG9wY2lvbmVzIGRlIGNvbmZpZ3VyYWNp824gcGFyYSBsYSBjb21waWxhY2nzbiwgaGFnYSAuL2NvbmZpZ3VyZQotLWhlbHAuCgpQYXJhIGFjdHVhbGl6YXIgYSBudWV2YSB2ZXJzafNuIHVzYW5kbyB1biBmaWNoZXJvIGRlIHBhcmNoZXMsIHByaW1lcm8gaGFnYSBjZAphbCBkaXJlY3RvcmlvIHN1cGVyaW9yIGRlIGxhIHZlcnNp824gKGVsIHF1ZSBjb250aWVuZSBlc3RlIGZpY2hlcm8gUkVBRE1FKS4KRW50b25jZXMgaGFnYSB1biAibWFrZSBjbGVhbiIsIHkgcGFyY2hlZSBsYSB2ZXJzafNuIGNvbjoKCiAgICBndW56aXAgLWMgZmljaGVyby1wYXJjaGUgfCBwYXRjaCAtcDEKCmRvbmRlICJmaWNoZXJvLXBhcmNoZSIgZXMgZWwgbm9tYnJlIGRlbCBmaWNoZXJvIGRlIHBhcmNoZXMgKGFsZ28gY29tbwpXaW5lLWFhbW1kZC5kaWZmLmd6KS4gRW50b25jZXMgcHVlZGUgdm9sdmVyIGEgZWplY3V0YXIgIi4vY29uZmlndXJlIiwgeSBsdWVnbwoibWFrZSBkZXBlbmQgJiYgbWFrZSIuCgo1LiBDT05GSUdVUkFDSdNOCgpVbmEgdmV6IHF1ZSBXaW5lIGhhIHNpZG8gY29uc3RydWlkbyBjb3JyZWN0YW1lbnRlLCBwdWVkZSBoYWNlciAibWFrZSBpbnN0YWxsIjsKZXN0byBpbnN0YWxhcuEgZWwgZWplY3V0YWJsZSBkZSB3aW5lLCBsYSBw4WdpbmEgZGUgbWFudWFsIGRlIFdpbmUsIHkgb3Ryb3MKY3VhbnRvcyBmaWNoZXJvcyBuZWNlc2FyaW9zLgoKTm8gb2x2aWRlIGRlc2luc3RhbGFyIGFudGVzIGN1YWxxdWllciBpbnN0YWxhY2nzbiBhbnRlcmlvciBkZSBXaW5lIGNvbmZsaWN0aXZhLgpJbnRlbnRlICJkcGtnIC1yIHdpbmUiIG8gInJwbSAtZSB3aW5lIiBvICJtYWtlIHVuaW5zdGFsbCIgYW50ZXMgZGUgaW5zdGFsYXIuCgpTaSBkZXNlYSBsZWVyIGxhIGRvY3VtZW50YWNp824gcXVlIHByb3BvcmNpb25hZGEgY29uIGVsIGPzZGlnbyBkZSBXaW5lLCB2ZWEgbGEKc2VjY2nzbiAiRE9DVU1FTlRBQ0nTTiIuCgpXaW5lIHJlcXVpZXJlIHVuIGZpY2hlcm8gZGUgY29uZmlndXJhY2nzbiBsbGFtYWRvICJjb25maWciIGVuIHN1IGRpcmVjdG9yaW8Kfi8ud2luZS4gRWwgZm9ybWF0byBkZSBlc3RlIGZpY2hlcm8gc2UgZXhwbGljYSBlbiBsYSBw4WdpbmEgZGUgbWFudWFsIGRlbApmaWNoZXJvIGRlIGNvbmZpZ3VyYWNp824gKGRvY3VtZW50YXRpb24vd2luZS5jb25mLm1hbikuCkVsIGZpY2hlcm8gZG9jdW1lbnRhdGlvbi9zYW1wbGVzL2NvbmZpZyBjb250aWVuZSB1biBlamVtcGxvIGRlIGZpY2hlcm8gZGUKY29uZmlndXJhY2nzbiBxdWUgdGllbmUgcXVlIGFkYXB0YXJzZSB5IGNvcGlhcnNlIGEgbGEgbG9jYWxpemFjafNuIG1lbmNpb25hZGEKYXJyaWJhLgoKVmVhIGxhIHpvbmEgZGUgU29wb3J0ZSBlbiBodHRwOi8vd3d3LndpbmVocS5vcmcvIHBhcmEgbeFzIGNvbnNlam9zIGRlCmNvbmZpZ3VyYWNp824uCgpFbiBlbCBjYXNvIGRlIHF1ZSB0ZW5nYSBwcm9ibGVtYXMgZGUgY2FyZ2EgZGUgbGlicmVy7WFzIChwLiBlai4gIkVycm9yIHdoaWxlCmxvYWRpbmcgc2hhcmVkIGxpYnJhcmllczogbGlibnRkbGwuc28iKSwgYXNlZ/pyZXNlIGRlIGHxYWRpciBsYSBydXRhIGRlIGxhcwpsaWJyZXLtYXMgYSAvZXRjL2xkLnNvLmNvbmYgeSBlamVjdXRhciBsZGNvbmZpZyBjb21vIHJvb3QuCgo2LiBFSkVDVVRBTkRPIFBST0dSQU1BUwoKQ3VhbmRvIGludm9xdWUgV2luZSwgcHVlZGUgZXNwZWNpZmljYXIgbGEgcnV0YSBjb21wbGV0YSBhbCBlamVjdXRhYmxlLCBvIHPzbG8KZWwgbm9tYnJlIGRlbCBmaWNoZXJvLgoKUG9yIGVqZW1wbG86IHBhcmEgZWplY3V0YXIgZWwgU29saXRhcmlvOgoKICB3aW5lIHNvbCAgICAgICAgICAgICAgICAgICAodXNhbmRvIGxhIHJ1dGEgZGUgYvpzcXVlZGEgaW5kaWNhZGEgZW4gZWwgZmljaGVybwogIHdpbmUgc29sLmV4ZSAgICAgICAgICAgICAgICBkZSBjb25maWd1cmFjafNuIHBhcmEgZW5jb250cmFyIGVsIGZpY2hlcm8pCgogIHdpbmUgYzpcXHdpbmRvd3NcXHNvbC5leGUgICh1c2FuZG8gbGEgc2ludGF4aXMgZGUgbm9tYnJlIGRlIGZpY2hlcm8gZGUgRE9TKQoKICB3aW5lIC91c3Ivd2luZG93cy9zb2wuZXhlICAodXNhbmRvIGxhIHNpbnRheGlzIGRlIG5vbWJyZSBkZSBmaWNoZXJvIGRlIFVuaXgpCgogIHdpbmUgc29sLmV4ZSAvcGFyYW1ldHJvMSAtcGFyYW1ldHJvMiBwYXJhbWV0cm8zCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxsYW1hbmRvIGFsIHByb2dyYW1hIGNvbiBwYXLhbWV0cm9zKQoKTm90YTogbGEgcnV0YSBkZWwgZmljaGVybyB0YW1iaeluIHNlIGHxYWRpcuEgYSBsYSBydXRhIGN1YW5kbyBzZSBwcm9wb3JjaW9uZSB1bgogICAgICBub21icmUgY29tcGxldG8gZW4gbGEgbO1uZWEgZGUgY29tYW5kb3MuCgpXaW5lIHRvZGF27WEgbm8gZXN04SBjb21wbGV0bywgcG9yIGxvIHF1ZSBhbGd1bm9zIHByb2dyYW1hcyBwdWVkZW4gZmFsbGFyLiBTaQpjb25maWd1cmEgd2luZWRiZyBjb3JyZWN0YW1lbnRlIGRlIGFjdWVyZG8gY29uIGRvY3VtZW50YXRpb24vZGVidWdnZXIuc2dtbCwKZW50cmFy4SBlbiB1biBkZXB1cmFkb3IgcGFyYSBxdWUgcHVlZGEgaW52ZXN0aWdhciB5IGNvcnJlZ2lyIGVsIHByb2JsZW1hLgpQYXJhIG3hcyBpbmZvcm1hY2nzbiBzb2JyZSBj821vIGhhY2VyIGVzdG8sIHBvciBmYXZvciBsZWEgZWwgZmljaGVybwpkb2N1bWVudGF0aW9uL2RlYnVnZ2luZy5zZ21sLgoKRGViZXLtYSBoYWNlciBjb3BpYSBkZSBzZWd1cmlkYWQgZGUgdG9kb3Mgc3VzIGZpY2hlcm9zIGltcG9ydGFudGVzIGEgbG9zIGTpCmFjY2VzbyBkZXNkZSBXaW5lLCBvIHV0aWxpemFyIHVuYSBjb3BpYSBlc3BlY2lhbCBwYXJhIFdpbmUgZGUgZWxsb3MsIHlhIHF1ZSBoYQpoYWJpZG8gYWxndW5vcyBjYXNvcyBkZSB1c3VhcmlvcyByZXBvcnRhbmRvIGNvcnJ1cGNp824gZGUgZmljaGVyb3MuIE5PIGVqZWN1dGUKRXhwbG9yZXIsIHBvciBsbyB0YW50bywgc2kgbm8gcG9zZWUgdW5hIGNvcGlhIGRlIHNlZ3VyaWRhZCBhZGVjdWFkYSwgeWEgcXVlCnJlbm9tYnJhL2NvcnJvbXBlIGEgdmVjZXMgYWxndW5vcyBkaXJlY3Rvcmlvcy4gVGFtcG9jbyBvdHJhcyBhcGxpY2FjaW9uZXMgTVMKY29tbyBwLiBlai4gTWVzc2VuZ2VyIHNvbiBzZWd1cmFzLCB5YSBxdWUgbGFuemFuIGRlIGFsZ/puIG1vZG8gRXhwbG9yZXIuIEVzdGEKY29ycnVwY2nzbiBwYXJ0aWN1bGFyICghJCEkISQhJC5wZnIpIHB1ZWRlIGNvcnJlZ2lyc2UgYWwgbWVub3MgcGFyY2lhbG1lbnRlCnV0aWxpemFuZG8gaHR0cDovL2hvbWUubmV4Z28uZGUvYW5kaS5tb2hyL2Rvd25sb2FkL2RlY29ycnVwdF9leHBsb3JlcgoKNy4gRE9DVU1FTlRBQ0nTTgoKQWxndW5hIGRvY3VtZW50YWNp824gKHZhcmlhcyBnde1hcyBkZSBXaW5lLCBldGMuKSBwdWVkZSBlbmNvbnRyYXJzZSBlbiBlbApkaXJlY3RvcmlvIGRvY3VtZW50YXRpb24vIChhcGFydGUgZGUgcXVlIHRhbWJp6W4gZXN04SBkaXNwb25pYmxlIGVuIFdpbmVIUSkuCgpTaSBkZXNlYSBwcm9jZXNhciBsb3MgZmljaGVyb3MgU0dNTCBkZSBhbGztLCBwdWVkZSBlamVjdXRhciAibWFrZSBkb2MiCmVuIGVsIGRpcmVjdG9yaW8gZG9jdW1lbnRhdGlvbi8uClBhcmEgaGFjZXJsbyByZXF1aWVyZSBlbCBwYXF1ZXRlIGRlIGhlcnJhbWllbnRhcyBzZ21sIChwYXJhIGRiMmh0bWwsIGRiMnBzLApkYjJwZGYpIGRlIG5vbWJyZToKRG9pbmcgc28gcmVxdWlyZXMgdGhlLi4uIChCT1JSQVIpCkRlYmlhbjogICAgICAgICBkb2Nib29rLXV0aWxzCk1hbmRyYWtlOiAgICAgICBzZ21sLXRvb2xzLUEuQi5DLUREbWRrClN1U0U6ICAgICAgICAgICBkb2Nia3Rscy1BLkJCLkMtREQKCjguIE9CVEVOSUVORE8gTcFTIElORk9STUFDSdNOCgpXV1c6ICAgIFVuYSBncmFuIGNhbnRpZGFkIGRlIGluZm9ybWFjafNuIHNvYnJlIFdpbmUgZXN04SBkaXNwb25pYmxlIGVuIFdpbmVIUQogICAgICAgIGVuIGh0dHA6Ly93d3cud2luZWhxLm9yZy8gOiB2YXJpYXMgZ3XtYXMgZGUgV2luZSwgYmFzZSBkZSBkYXRvcyBkZQogICAgICAgIGFwbGljYWNpb25lcywgcmVnaXN0cm8gZGUgYnVncy4gRXN0ZSBlcyBwcm9iYWJsZW1lbnRlIGVsIG1lam9yIHB1bnRvIGRlCiAgICAgICAgcGFydGlkYS4KCkZBUTogICAgTGEgRkFRIGRlIFdpbmUgc2UgZW5jdWVudHJhIGVuIGh0dHA6Ly93d3cud2luZWhxLm9yZy9GQVEKClVzZW5ldDogUHVlZGUgZGlzY3V0aXIgc29icmUgdGVtYXMgcmVsYWNpb25hZG9zIGNvbiBXaW5lIHkgb2J0ZW5lciBheXVkYSBlbgogICAgICAgIGNvbXAuZW11bGF0b3JzLm1zLXdpbmRvd3Mud2luZS4KCkJ1Z3M6ICAgUmVwb3J0ZSBidWdzIGFsIEJ1Z3ppbGxhIGRlIFdpbmUgZW4gaHR0cDovL2J1Z3Mud2luZWhxLm9yZwogICAgICAgIFBvciBmYXZvciwgYnVzcXVlIGVuIGxhIGJhc2UgZGUgZGF0b3MgZGUgYnVnemlsbGEgcGFyYSBjb21wcm9iYXIgc2kgc3UKICAgICAgICBwcm9ibGVtYSB5YSBzZSBlbmN1ZW50cmEgYW50ZXMgZGUgZW52aWFyIHVuIGluZm9ybWUgZGUgYnVnLiBQdWVkZQogICAgICAgIHRhbWJp6W4gZW52aWFyIGluZm9ybWVzIGRlIGJ1Z3MgYSBjb21wLmVtdWxhdG9ycy5tcy13aW5kb3dzLndpbmUuCiAgICAgICAgUG9yIGZhdm9yLCBsZWEgZWwgZmljaGVybyBkb2N1bWVudGF0aW9uL2J1Z3Muc2dtbCBwYXJhIHZlciBxdekKICAgICAgICBpbmZvcm1hY2nzbiBzZSByZXF1aWVyZS4KCklSQzogICAgSGF5IGRpc3Bvbm9ibGUgYXl1ZGEgb25saW5lIGVuIGVsIGNhbmFsICNXaW5lSFEgZGUgaXJjLmZyZWVub2RlLm5ldC4KCkNWUzogICAgRWwg4XJib2wgYWN0dWFsIGRlIGRlc2Fycm9sbG8gZGUgV2luZSBlc3ThIGRpc3BvbmlibGUgYSB0cmF26XMgZGUgQ1ZTLgogICAgICAgIFZheWEgYSBodHRwOi8vd3d3LndpbmVocS5vcmcvY3ZzIHBhcmEgbeFzIGluZm9ybWFjafNuLgoKTGlzdGFzIGRlIGNvcnJlbzoKICAgICAgICBIYXkgdmFyaWFzIGxpc3RhcyBkZSBjb3JyZW8gcGFyYSBkZXNhcnJvbGxhZG9yZXMgZGUgV2luZTsgdmVhCiAgICAgICAgaHR0cDovL3d3dy53aW5laHEub3JnL2ZvcnVtcyBwYXJhIG3hcyBpbmZvcm1hY2nzbi4KClNpIGHxYWRlIGFsZ28sIG8gY29ycmlnZSBhbGf6biBidWcsIHBvciBmYXZvciBlbnbtZSB1biBwYXJjaGUgKGVuIGZvcm1hdG8KJ2RpZmYgLXUnKSBhIGxhIGxpc3RhIHdpbmUtcGF0Y2hlc0B3aW5laHEub3JnIHBhcmEgc3UgaW5jbHVzafNuIGVuIGxhIHNpZ3VpZW50ZQp2ZXJzafNuLgoKLS0KQWxleGFuZHJlIEp1bGxpYXJkCmp1bGxpYXJkQHdpbmVocS5vcmcK