<?xml version="1.0" encoding="UTF-8"?>
<zaznam xmlns="http://portal.gov.cz/rejstriky/ISRS/1.2/"><data><identifikator><idSmlouvy>30854072</idSmlouvy><idVerze>32940588</idVerze></identifikator><odkaz>https://smlouvy.gov.cz/smlouva/32940588</odkaz><casZverejneni>2025-04-16T10:47:55+02:00</casZverejneni><smlouva><subjekt><datovaSchranka>jwaeuen</datovaSchranka><nazev>Krajská nemocnice Liberec, a.s.</nazev><ico>27283933</ico><adresa>Husova 1430/34, 46001 Liberec, CZ</adresa></subjekt><smluvniStrana><nazev>PAREXEL INTERNATIONAL (IRL) LIMITED</nazev><ico>x</ico><adresa>70 SIR JOHN ROGERSON'S QUAY DUBLIN 2</adresa></smluvniStrana><predmet>Smlouva o provedení klinického hodnocení</predmet><datumUzavreni>2025-04-15</datumUzavreni><cisloSmlouvy>S2025/00327/00</cisloSmlouvy><hodnotaBezDph>1266000</hodnotaBezDph></smlouva><prilohy><priloha><data>77u/IAoKVEhJUyBDTElOSUNBTCBTSVRFIEFHUkVFTUVOVAoKVEFUTyBTTUxPVVZBIFMgS0xJTklDS8OdTSBQUkFDT1ZJxaBUxJpNCgogCgooaGVyZWluYWZ0ZXIg4oCcQWdyZWVtZW7FpcOzCgooZMOhbGUgamVuIOKAnnNtbG91dmHigJwpCgogCgogCgppcyBlZmZlY3RpdmUgd2hlbiBzaWduZWQgYnkgYWxsIHBhcnRpZXMgYXMgb2YgdGhlIGRheSBvZgpwdWJsaWNhdGlvbiBpbiB0aGUgcmVnaXN0ZXIgb2YgY29udHJhY3RzIChoZXJlaW5hZnRlcgrigJxFZmZlY3RpdmUgZG5l4oCcKQoKbmFiw712w6Egw7rEjWlubm9zdGkgcG8gcG9kcGlzdSB2xaFlbWkgc21sdXZuw61taQpzdHJhbmFtaSBrZSBkbmkgdXZlxZllaiBuxJtuw60gdiByZWdpc3RydSBzbWx1diAoZMOhbGUgamVuCuKAnmRhdHVtIMO6xI1pbm5vc3Rp4oCcKQoKIAoKIAoKYW5kIGlzIG1hZGUgYnkgYW5kIGJldHdlZW4KCmEgdXphdsOtcsOhIHNlIG1lemkgdMSbbWl0byBzbWx1dm7DrW1pIHN0cmFuYW1pCgogCgogCgogCgogCgogCgooMSkgUGFyZXhlbCBJbnRlcm5hdGlvbmFsIChJUkwpIExpbWl0ZWQgKDEpIFBhcmV4ZWwgSW50ZXJuYXRpb25hbCAoSVJMKSBMaW1pdGVkCjcwIFNpciBKb2huIFJvZ2Vyc29uJ3MgUXVheSA3MCBTaXIgSm9obiBSb2dlcnNvbidzIFF1YXkKRHVibGluIDIgRHVibGluIDIKSXJlbGFuZCBJcnNrbwoKKGhlcmVpbmHFiGVyIOKAnENST+KAnCkgKGTDoWxlIGplbiDigJ5DUk/igJwpCgphbmQgJgoKIAoKIAoKKDIpIEtyYWpza8OhIG5lbW9jbmljZSBMaWJlcmVjLCBhLiBzLgoKKDIpIEtyYWpza8OhIG5lbW9jbmljZSBMaWJlcmVjLCBhLiBzLgoKIAoKSHVzb3ZhIDE0MzAvMzQKCjQ2MCAwMSBMaWJlcmVjCgpDemVjaCBSZXB1YmxpYwoKQ29tcGFueSBOdW1iZXI6IDI3MiA4MyA5MzMKClZBVCBOby46IENaWjcyODM5MzMKClJlcHJlc2VudGVkIGJ5CgphbmQgQ2hhaXJtYW4gb2YgdGhlIEJvYXJkIG9mIERpcmVjdG9ycwoKRGlyZWN0b3IKCkh1c292YSAxNDMwLzM0Cgo0NjAgMDEgTGliZXJlYwoKxIxlc2vDoSByZXB1Ymxpa2EKCknEjDogMjcyIDgzIDkzMwoKREnEjDogQ1oyNzI4MzkzMwpKZWRuYWrDrWPDrToKCnDFmWVkc2VkYSBwxZllZHN0YXZlbnN0dmEKCsWZZWRpdGVsIGEKCiAKCihoZXJlaW5hxYhlciDigJxJbnN0aXR1dGlvbuKAnCkKCihkw6FsZSBqZW4g4oCeemRyYXZvdG5pY2vDqSB6YcWZw616ZW7DreKAnCkKCiAKCmFuZAoKJgoKIAoKIAoKKDMpIF8KCigzKSBfCgogCgpLcmFqc2vDoSBuZW1vY25pY2UgTGliZXJlYywgYS5zLgpHYXN0cm9lbnRlcm9sb2dpZQoKSHVzb3ZhIDE0MzAvMzQKCjQ2MCAwMSBMaWJlcmVjCgpDemVjaCBSZXB1YmxpYwoKS3JhanNrw6EgbmVtb2NuaWNlIExpYmVyZWMsIGEucy4KR2FzdHJvZW50ZXJvbG9naWUKCkh1c292YSAxNDMwLzM0Cgo0NjAgMDEgTGliZXJlYwoKxIxlc2vDoSByZXB1Ymxpa2EKCiAKCihoZXJlaW5hxYhlciDigJxJbnZlc3RpZ2F0b8Wlw7MKCihkw6FsZSBqZW4g4oCeemtvdcWhZWrDrWPDreKAnCkKCiAKCiAKCnJlZ2FyZGluZwoKdiBzb3V2aXNsb3N0aSBzCgogCgpQcm90b2NvbCBObzogMTQwNC0wMDQ0IChoZXJlaW5hZnRlciDigJxQcm90b2NvbOKAnCkKCnByb3Rva29sZW0gxI0uOiAxNDA0LTAwNDQgKGTDoWxlIGplbiDigJ5wcm90b2tvbOKAnCkKCiAKCuKAnEEgcmFuZG9taXNlZCwgZG91YmxlLWJsaW5kLCBwbGFjZWJvLWNvbnRyb2xsZWQsCm11bHRpY2VudHJlLCBQaGFzZSBJSUkgdHJpYWwgZXZhbHVhdGluZyBsb25nLXRlcm0gZWZqw61jYWN5CmFuZCBzYWZldHkgb2ZzdXJ2b2R1dGlkZSB3ZWVrbHkgaW5qZWN0aW9ucyBpbiBhZHVsdApwYXJ0aWNpcGFudHMgd2l0aCBtbS1jaXJyaG90aWMgbW0tYWxjb2hvbGljCnN0ZWF0b2hlcGF0aXRpcy9tZXRhYm9saWMgZHlzZsW+bWN0aW9uLWFzc29jaWF0ZWQKc3RlYXRvaGVwYXRpdGlzIChOQVNIL01BU0ggKSBhbmQgKCBGMiApIC0gKCBGMyApIHN0YWdlIG9mCmxpdmVyZmlicm9zaXPigJwgKGhlcmVpbmFmdGVyIOKAnFN0dWR54oCcKQoK4oCeUnVtbG9taXpvdnVtw60sIGR2b2ppdMSbIHp1c2xlcGVuw7osIHBsYWNlYmVtCmtvbnRyb2xvdmFuw6EgbXVsdGljZW50cmlja8OhIHN0dWRpZSBmw6F6ZSAzIGhvZG5vdMOtY8OtCmRsb3Vob2RvYm91IMO6xI1pbm5vc3QgYSBiZXpwZcSNbm9zdCBzdXJ2b2R1dGlkdQpwb2TDoXZhbsOpaG8gamVkbm91IHTDvWRuxJsgaW5qZWvEjW7EmyB1IGRvc3DEm2zDvWNoIHBhY2llbnTFrwpzIG5lY2lyaG90aWNrb3UgbmVhbGtvaG9saWNrb3Ugc3RlYXRvaGVwYXRpdGlkb3UgLwpzdGVhdG9oZXBhdGl0aWRvdSBhc29jaW92YW5vdSBzIG1ldGFib2xpY2tvdSBkeXNmdW5rY8OtCihOQVNIL01BU0gpIGEgc3RhZGllbWphdGVtw61maWJyw7N6eSBGMuKAlEYg4oCcIChkw6FsZSBqZW4K4oCec3R1ZGll4oCcKQoKIAoKU3Vydm9kdXRpZGUgKGhlcmVpbmFmdGVyIOKAnFN0dWR5IERydWc3NykKClN1cnZvZHV0aWQgKGTDoWxlIGplbiDigJ5ob2Rub2NlbsO9IHDFmcOtcHJhdmVr4oCcKQoKIAoKIAoKIAoKIAoKMjg0NjQxXzE0MDQtT080NF9DWkVfQ1pFNF9JTlNUIFBJIENTQS1CaWxpbmd1YTFfMjAyNTA0MDlfMS5vCgpTdHJhbmEgMSB6IDY1CgogCgogCgpvZgoKIAoKU1BPTlNPUjogQm9laHJpbmdlciBJbmdlbGhlaW0gSW50ZXJuYXRpb25hbCBHbWJICgpaQURBVkFURUxFOiBCb2VocmluZ2VyIEluZ2VsaGVpbSBJbnRlcm5hdGlvbmFsCkdtYkgKCiAKCkJpbmdlciBTdHJhc3NlIDE3MwpE4oCUNTUyIDE2IEluZ2VsaGVpbQpHZXJtYW55CgpCaW5nZXIgU3RyYXNzZSAxNzMKROKAlDU1MjE2IEluZ2VsaGVpbQpOxJttZWNrbwoKIAoKaGVyZWluIGFmdGVyIOKAnFNQT05TT1IiCgpkw6FsZSBqZW4g4oCeWkFEQVZBVEVM4oCcCgogCgogCgpDUk8sIEluc3RpdHV0aW9uLCBhbmQgSW52ZXN0aWdhdG9yIGFyZSBoZXJlaW5hZnRlciByZWZlcnJlZAp0byBpbmRpdmlkdWFsbHkgYXMgYSDigJxQYXJ0eeKAnCBhbmQgY29sbGVjdGl2ZWx5IGFzIHRoZSDigJxQYWx0aWVz4oCcLgoKQ1JPLCBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIGEgemtvdcWhZWrDrWPDrSBqc291IGTDoWxlCm96bmHEjW92w6FuaSBzYW1vc3RhdG7EmyBqYWtvIOKAnnN0cmFuYeKAnCBuZWJvIHNwb2xlxI1uxJsgamFrbwrigJ5zdHJhbnnigJwuCgogCgogCgpXSEVSRUFTLCBTUE9OU09SIGlzIHRoZSBzcG9uc29yIG9mIHRoZSBtdWx0aeKAlApjZW50ZXIvbXVsdGnigJRjZW50cmUgU3R1ZHkgdG8gY2xpbmljYWxseSBldmFsdWF0ZSB0aGUgU3R1ZHkKRHJ1ZyBhbmQgQ1JPIChvciBpdHMgQWZmaWxpYXRlKSBoYXMgYmVlbiByZXRhaW5lZCBieQpTUE9OU09SICh1bmRlciAmIHNlcGFyYXRlIHdyaXR0ZW4gYWdyZWVtZW50KSB0byBhY3QgYXMKU1BPTlNPUsOJIGNvbnRyYWN0b3IgYW5kIGRlc2lnbmVlIGluIG1hbmFnaW5nIHRoZQpTdHVkeSBmb3IgU1BPTlNPUjsgYW5kCgpWWkhMRURFTSBLIFRPTVUsIMW+ZSBaQURBVkFURUwgamUgemFkYXZhdGVsZW0KbXVsdGljZW50cmlja2UnIHN0dWRpZSwgamVqw61txb4gY8OtbGVtIGplIGtsaW5pY2vDqSBob2Rub2NlbsOtCmhvZG5vY2Vuw6lobyBwxZnDrXByYXZrdSwgYSBDUk8gKG5lYm8gamVqw60gcMWZaWRydcW+ZW7DqQpzcG9sZcSNbm9zdCkgYnlsYSBuYWphdGEgWkFEQVZBVEVMRU0gKHYgcsOhbWNpCnNhbW9zdGF0bmUgcMOtc2VtbsOpIHNtbG91dnkpLCBhYnkgamVkbmFsYSBqYWtvIHBvdsSbxZllbsOhCm9zb2JhIFpBREFWQVRFTEUgcMWZaSDFmcOtemVuw60gc3R1ZGllIHBybwpaQURBVkFURUxFOyBhCgogCgpXSEVSRUFTIEluc3RpdHV0aW9uIHNoYWxsIEZ1bGx5IENvb3BlcmF0ZSB3aXRoIENSTyBhbmQKc2hhbGwgcGVubml0IENSTyB0byBwZXJmb25uIGFueSBhbmQgYWxsIG9mIHRoZSBTUE9OU09Sw4kKU3R1ZHkgb2JsaWdhdGlvbnMgYW5kIHRvIGV4ZXJjaXNlIGFueSBhbmQgYWxsIG9mClNQT05TT1LDiSBTdHVkeSByaWdodHMgdGhhdCBsaWUgV2l0aCBTUE9OU09SIG9uIHRoZQpiYXNpcyBvZiBBcHBsaWNhYmxlIExhdyBhbmQgR0NQIHJlZ3VsYXRpb25zIGFzIHRob3VnaApzdWNoIHJpZ2h0cyB3ZXJlIENSTyxzIG93biByaWdodHMsIGFzIGhhcyBiZWVuIGRlbGVnYXRlZApieSBTUE9OU09SIHRvIENSTzsgYW5kCgpWWkhMRURFTSBLIFRPTVUsIMW+ZSBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIGJ1ZGUgcGxuxJsKc3BvbHVwcmFjb3ZhdCBzZSBDUk8gJiB1bW/Fvm7DrSBDUk8gdnlrb27DoXZhdCBqYWtla29saQphdsWhZWNobnkgcG92aW5ub3N0aSBaQURBVkFURUxFIHN0dWRpZSBhIHVwbGF0xYhvdmF0Cmpha8Oha29saSAmIFbFoWVjaG5hIHByw6F2YSBaQURBVkFURUxFLCBrdGVyw6EKWkFEQVZBVEVMIG3DoSBuYSB6w6FrbGFkxJsgcMWZw61zbHXFoW7DvWNoIHrDoWtvbsWvCmFwxZllZHBpc8WvIHVwcmF2dWrDrWPDrWNoIHNwcsOhdm5vdSBrbGluaWNrb3UgcHJheMOtIChTS1ApLApqYWtvIGJ5IHRhdG8gcHLDoXZhIGJ5bGEgdmxhc3Ruw61taSBwcsOhdnkgb3JnYW5pemFjZSBDUk8sCmphayBrIHRvbXUgWkFEQVZBVEVMIHptb2NuaWwgc3BvbGXEjW5vc3QgQ1JPOyBhCgogCgpXSEVSRUFTLCBJbnZlc3RpZ2F0b3IgaXMgYW4gZW1wbG95ZWUgb2YgSW5zdGl0dXRpb247IGFuZAoKVlpITEVERU0gS1RPTVUsIMW+ZSB6a291xaFlasOtY8OtIGplIHphbcSbc3RuYW5jZW0KemRyYXZvdG5pY2vDqWhvIHphxZnDrXplbsOtOyBhCgogCgpXSEVSRUFTLCB0aGlzIEFncmVlbWVudCBleHBsYWlucyB0aGUgam9pbnQgYW5kIHNldmVyYWwKb2JsaWdhdGlvbnMgYW5kIHJpZ2h0cyBvZiBJbnN0aXR1dGlvbiBhbmQgSW52ZXN0aWdhdG9yLCBhbmQKdGhlIG9ibGlnYXRpb25zIGFuZCByaWdodHMgb2YgQ1JPIHdpdGggcmVzcGVjdCB0byB0aGUKcGVyZm9ybWFuY2Ugb2YgdGhlIFN0dWR5OyBhbmQKClZaSExFREVNIEtUT01VLCDFvmUgdGF0byBzbWxvdXZhIG9iamFzxYh1amUKc3BvbGXEjW7DqSBhc2Ftb3N0YXRuw6kgesOhdmF6a3kgYXByw6F2YSB6ZHJhdm90bmlja8OpaG8KemHFmcOtemVuw60gYXprb3XFoWVqw61jxa9sbywgamFrb8W+dG8gaXrDoXZhemt5IGFwcsOhdmEgQ1JPCnTDvWthasOtY8OtIHNlIHByb3bDoWTEm27DrSB0w6l0byBzdHVkaWU7IGEKCiAKCldIRVJFQVMsIHVuZGVyIHRoaXMgQWdyZWVtZW50IENSTyBkb2VzIG5vdCBhY3QsIG9yCnB1cnBvcnQgdG8gYWN0LCBhcyBTUE9OU09SJ1MgY29udHJhY3R1YWwgYWdlbnQsIGJ1dCByYXRoZXIKYXMgU1BPTlNPUidTIGFwcG9pbnRlZCBkZXNpZ25lZSBmb3IgbWFuYWdpbmcgdGhlIFN0dWR5LgoKVlpITEVERU0gS1RPTVUsIMW+ZSBwb2RsZSB0w6l0byBzbWxvdXZ5IENSTwpuZXZ5c3R1cHVqZSBhbmkgbmVob2Rsw6EgdnlzdHVwb3ZhdCBqYWtvIHNtbHV2bsOtIGFnZW50ClpBREFWQVRFTEUsIGFsZSBqYWtvIHrDoXN0dXBjZSBqbWVub3ZhbsO9ClpBREFWQVRFTEVNIHBybyDFmcOtemVuw60gdMOpdG8gc3R1ZGllLgoKIAoKIAoKMS4gREVGSU5JVElPTlMKCjEuIFZZTUVaRU7DjSBQT0pNw5oKCiAKCjEuMS4gRGVmaW5pdGlvbnMgZm9yIHRlcm1zIHVzZWQgaW4gdGhpcyBBZ3JlZW1lbnQgYXJlIGluCkV4aGliaXQgQi4KCiAKCiAKCjEuMS4gVnltZXplbsOtIHBvam3FryBwb3XFvsOtdmFuw71jaCB2dGV0byBzbWxvdXbEmyBzZQpuYWNow6F6w60gdiBQxZnDrWxvemUgQi4KCiAKCjI4NDY0MV8xNDA0LU9PNDRfQ1pFX0NaRTRfSU5TVCBQSSBDU0EgXyBCaWxpbmd1YWxfMjAyNTA0MDlfMS4wCgpTdHJhbmEgMiB6IDY1CgogCgogCgpDT05EVUNUIE9GIFRIRSBTVFVEWQoKUFJPVsOBRMSaTsONIFNUVURJRQoKIAoKMi4xLgoKSW5zdGl0dXRpb24gYWdyZWVzLCBhbmQgY29tbWl0cyBpdHNlbGYgdG8gQ1JPLCB0bwphbGxvdyBJbnZlc3RpZ2F0b3IgYW5kIG90aGVyIFN0dWR5IFBlcnNvbm5lbCB0bwpjb25kdWN0IHRoZSBTdHVkeSBhdCBJbnN0aXR1dGlvbiwgYW5kIHdhcnJhbnRzIHRoYXQKSW52ZXN0aWdhdG9yIGFuZCBvdGhlciBTdHVkeSBQZXJzb25uZWwgYXJlIGVtcGxveWVkCmJ5IEluc3RpdHV0aW9uLgoKMi4xLgoKWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBzb3VobGFzw60gYSB6YXZhenVqZSBzZSBDUk8sIMW+ZQpaa291xaFlasOtY8OtbXUgYSBvc3RhdG7DrW11IHBlcnNvbsOhbHUgc3R1ZGllIHVtb8W+bsOtCnByb3bDoWTEm3Qgc3R1ZGlpIHZlIHpkcmF2b3RuaWNrw6ltIHphxZnDrXplbsOtLAphIHphcnXEjXVqZSwgxb5lIHprb3XFoWVqw61jw60gYSBvc3RhdG7DrSBwZXJzb27DoWwgc3R1ZGllIGpzb3UKemFtxJtzdG5hbmNpIHpkcmF2b3RuaWNrw6lobyB6YcWZw616ZW7DrS4KCiAKCjIuMi4KCkludmVzdGlnYXRvciBhZ3JlZXMsIGFuZCBjb21taXRzIGl0c2VsZiB0byBDUk8sIHRvCmNvbmR1Y3QgdGhlIFN0dWR5IGF0IEluc3RpdHV0aW9uIGFuZCB3YXJyYW50cyB0aGF0CmhlL3NoZSBpcyBlbXBsb3llZCBieSBJbnN0aXR1dGlvbi4gSW52ZXN0aWdhdG9yIHNoYWxsCnBlcnNvbmFsbHkgc3VwZXJ2aXNlIHRoZSBjb25kdWN0IG9mIHRoZSBTdHVkeSBieSB0aGUKU3R1ZHkgUGVyc29ubmVsIHRvIHRoZSBmdWxsIGV4dGVudCBjb250ZW1wbGF0ZWQgYnkgdGhlClByb3RvY29sIGFuZCBieSBBcHBsaWNhYmxlIExhdy4KCjIuMi4KClprb3XFoWVqw61jw60gc291aGxhc8OtIGF6YXZhenVqZSBzZSBDUk8ga3RvbXUsIMW+ZQpidWRlIHByb3bDoWTEm3Qgc3R1ZGlpIHZlIHpkcmF2b3RuaWNrw6ltIHphxZnDrXplbsOtLAphemFydcSNdWplLCDFvmUgamUgemFtxJtzdG5hbmNlbSB6ZHJhdm90bmlja8OpaG8KemHFmcOtemVuw60uIFprb3XFoWVqw61jw60gYnVkZSB2eWtvbsOhdmF0IG9zb2Juw60gZG9obGVkCm5hZCBwcm92w6FkxJtuw61tIHN0dWRpZSB6ZSBzdHJhbnkgcGVyc29uw6FsdSBzdHVkaWUKdnBsbsOpbSByb3pzYWh1IGRhbsOpbSBwcm90b2tvbGVtIGFwbGF0bsO9bWkKesOha29ueS4KCiAKCjIuMy4KCkludmVzdGlnYXRvciBhbmQgSW5zdGl0dXRpb24gYWNrbm93bGVkZ2UgdGhhdApTUE9OU09SIGlzIHRoZSBzcG9uc29yIG9mIHRoZSBTdHVkeSwgYW5kIGFzIHN1Y2ggaXMKYW4gaW50ZW5kZWQgdGhpcmTigJRwYXJ0eSBiZW5lxYhjaWFyeSBvZiB0aGlzCkFncmVlbWVudCwgd2hlcmVhcyBTUE9OU09SIHRyYW5zZmVycyBhbnkgb3IgYWxsCm9mIHRoZSBTUE9OU09SJ1MgU3R1ZHnigJRyZWxhdGVkIGZ1bmN0aW9ucyB0byBDUk8gaW4KY29tcGxpYW5jZSB3aXRoIElDSOKAlEdDUC4gSW4gYWRkaXRpb24gdG8gdGhlCmZvcmVnb2luZywgSW52ZXN0aWdhdG9yIGFuZCBJbnN0aXR1dGlvbiBhZ3JlZSB0aGF0CkNSTyBtYXkgZGlzY2xvc2UgYW55IGFuZCBhbGwgSW5mb3JtYXRpb24gYW5kL29yCmRvY3VtZW50cyByZWxhdGluZyB0byB0aGlzIEFncmVlbWVudCwgYW5kL29yIHJlbGF0aW5nCnRvIEludmVzdGlnYXRvxaVzIGFuZCBJbnN0aXR1dGlvxI9zIHBhbHRpY2lwYXRpb24gaW4gdGhlClN0dWR5IChpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIGFueSBSZXBvcnRzIG9yCm90aGVyIGRvY3VtZW50cyBvciBtYXRlcmlhbHMgcHJvdmlkZWQgYnkKSW52ZXN0aWdhdG9yIG9yIEluc3RpdHV0aW9uIHRvIENSTyBoZXJldW5kZXIpLCB0bwpTUE9OU09SLiBBbGwgcmVmZXJlbmNlcyB0byBTUE9OU09SIGhlcmVpbgood2hldGhlciBpbiB0aGUgY29udGV4dCBvZiBkZWxpdmVyeSBvZiBJbmZvcm1hdGlvbiwKc3VibWlzc2lvbiBvZiBhcHBsaWNhdGlvbnMsIGZpbmFuY2lhbCB0ZXJtcywgb3IKYW55dGhpbmcgZWxzZSkgZGVyaXZlIGZyb20gU1BPTlNPUsOJIHN0YXR1cyBhcwpzdWNoLCBhcyBzZXQgb3V0IGJ5IEFwcGxpY2FibGUgTGF3IGFuZCBHQ1AKcmVndWxhdGlvbnMsIGFuZCBJbnZlc3RpZ2F0b3IgYW5kIEluc3RpdHV0aW9uIGFncmVlIHRvCmFsbCBzdWNoIGluc3RhbmNlcy4gSW52ZXN0aWdhdG9yIGFuZCBJbnN0aXR1dGlvbiB3aWxsCkZ1bGx5IENvb3BlcmF0ZSBXaXRoIENSTyxzIHJlcXVlc3RzIHJlbGF0aW5nIHRvClNQT05TT1IuCgoyLjMuCgpaa291xaFlasOtY8OtIGEgWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBiZXJvdSBuYSB2xJtkb23DrQomIHNvdWhsYXPDrSBzIHTDrW0sIMW+ZSBaQURBVkFURUwgamUgemFkYXZhdGVsZW0Kc3R1ZGllIGEgamFrbyB0YWtvdsO9IGplIG9wcsOhdm7Em25vdSB0xZlldMOtIHN0cmFub3UgdMOpdG8Kc21sb3V2eSwgcMWZacSNZW3FviBaQURBVkFURUwgcMWZZXbDoWTDrSB2ZcWha2Vyw6kKc3bDqSBmdW5rY2Ugc291dmlzZWrDrWPDrSBzZSBzdHVkacOtIG5hIENSTyB2IHNvdWxhZHUKcyBJQ0jigJRTS1AuIEtyb23EmyBWw73FoWUgdXZlZGVuw6lobyBzb3VobGFzw60KemtvdcWhZWrDrWPDrSBhemRyYXZvdG5pY2tlJyB6YcWZw616ZW7DrSBzdMOtbSwgxb5lIENSTwptxa/FvmUgenDFmcOtc3R1cG5pdCBaQURBVkFURUxJIGpha2Vrb2xpIG5lYm8KdsWhZWNobnkgaW5mb3JtYWNlIGEvbmVibyBkb2t1bWVudHkgc291dmlzZWrDrWPDrQpzIHRvdXRvIHNtbG91dm91IGEvbmVibyBzb3V2aXNlasOtY8OtIHPDusSNYXN0w60KWmtvdcWhZWrDrWPDrWhvIGF6ZHJhdm90bmlja2UnaG8gemHFmcOtemVuw60gdmUgc3R1ZGlpCihtaW1vIGppbsOpIHbEjWV0bsSbIGpha8O9Y2hrb2xpIFpwcsOhdiBuZWJvIGppbsO9Y2gKZG9rdW1lbnTFryDEjWkgbWF0ZXJpw6Fsxa8sIGt0ZXLDqSB6a291xaFlasOtY8OtIG5lYm8KWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBwb3NreXRub3UgbmEgesOha2xhZMSbIHTDqXRvCnNtbG91dnkgQ1JPKS4gVmXFoWtlcsOpIG9ka2F6eSBuYSBaQURBVkFURUxFCnYgdG9tdG8gZG9rdW1lbnR1IChhxaUgdcW+IFYgc291dmlzbG9zdGkgcyBwxZllZMOhbsOtbQppbmZvcm1hY8OtLCBwxZllZGxvxb5lbsOtbSDFvsOhZG9zdMOtLCBmJ21hbsSNbsOtbWkKcG9kbcOtbmthbWkgbmVibyDEjcOtbWtvbGkgamluw71tKSBzZSBvZHZvenVqw60gb2QKcG9zdGF2ZW7DrSBaQURBVkFURUxFIGpha28gdGFrb3bDqWhvLCBqYWsgc3Rhbm92w60KcGxhdG7DqSB6w6Frb255IGFwxZllZHBpc3kgU0tQLCBwxZlpxI1lbcW+IHprb3XFoWVqw61jw60KYXpkcmF2b3RuaWNrZScgemHFmcOtemVuw60gc2UgdsWhZW1pIHTEm21pdG8gcMWZw61wYWR5CnNvdWhsYXPDrS4gWmtvdcWhZWrDrWPDrSBhemRyYXZvdG5pY2tlJyB6YcWZw616ZW7DrSBidWRvdQpwbG7EmyBzcG9sdXByYWNvdmF0IHDFmWkgxb7DoWRvc3RlY2ggemUgc3RyYW55IENSTwp0w71rYWrDrWPDrWNoIHNlIFpBREFWQVRFTEUuCgogCgoyLjQuCgpJbnZlc3RpZ2F0b3IgYW5kIEluc3RpdHV0aW9uIGFja25vd2xlZGdlIHRoYXQgQ1JPIGlzCnRoZSByZWNpcGllbnQgb2YgU2VydmljZXMgZGVzY3JpYmVkIGluIHRoaXMgQWdyZWVtZW50CmFuZCwgZm9yIHRoZSBhdm9pZGFuY2Ugb2YgYW55IGRvdWJ0LCB0aGF0IFNQT05TT1IKaXMgbm90IHRoZSByZWNpcGllbnQgb2YgU2VydmljZXMgZGVzY3JpYmVkIGluIHRoaXMKQWdyZWVtZW50LgoKMi40LgoKWmtvdcWhZWrDrWPDrSBhIFpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gYmVyb3UgbmEgVsSbZG9tw60sCsW+ZSBDUk8gamUgcMWZw61qZW1jZW0gU2x1xb5lYiB1dmVkZW7DvWNoIFZ0w6l0bwpzbWxvdXbEmyBhxb5lIChwcm8gemFicsOhbsSbbsOtIGpha8O9bWtvbGkgcG9jaHliw6FtKQpaQURBVkFURUwgbmVuw60gcMWZw61qZW1jZW0gU2x1xb5lYiB1dmVkZW7DvWNoCnYgdMOpdG8gc21sb3V2xJsuCgogCgogCgoyLjUuCgpJbnN0aXR1dGlvbiBhbmQgSW52ZXN0aWdhdG9yIHNwZWNpxYhjYWxseSBhZ3JlZSwgYW5kCmNvbW1pdCB0aGVtc2VsdmVzIHRvIENSTywgdG8gKGFuZCBXYXJyYW50IHRoYXQKU3R1ZHkgUGVyc29ubmVsIHdpbGwpIGNvbmR1Y3QgdGhlIFN0dWR5IGluICYgZGlsaWdlbnQsCmVmZmljaWVudCwgYW5kIHNraWxmdWwgbWFubmVyLCBpbiBzdHJpY3QgY29tcGxpYW5jZSB3aXRoCnRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGlzIEFncmVlbWVudCwgdGhlClByb3RvY29sIGluY2x1ZGluZyBzdWJzZXF1ZW50IGFtZW5kbWVudHMsIGFueQoKIAoKMi41LgoKWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBhemtvdcWhZWrDrWPDrSBrb25rcmV0bsSbCnNvdWhsYXPDrSBhemF2YXp1asOtIHNlIENSTyAoJiB6YXJ1xI11asOtIHRvdMOpxb4KaW9wZXJzb27DoWx1IHN0dWRpZSksIMW+ZSBidWRvdSBwcm92w6FkxJt0IHN0dWRpaQpwZcSNbGl2xJssIGVmZWt0aXZuxJsgYW9kYm9txJssIHDFmcOtc27EmyB2c291bGFkdQpzcG9kbcOtbmthbWkgdMOpdG8gc21sb3V2eSwgcHJvdG9rb2xlbSB2xI1ldG7Emwpuw6FzbGVkbsO9Y2ggZG9kYXRrxa8sIHZlxaFrZXLDvW1pIGtvbmtyw6l0bsOtbWkKCiAKCjI4NDY0MV8xNDA0LTAwNDRfQ1pFX0NaRTRfSU5TVCBQSSBDU0EgXyBCaWxpbmd1YWxfMjAyNTA0MDlfMS4wClN0cmFuYSAzIHogNjUKCiAKCiAKCnNwZWNpZmljIFN0dWR5IEluc3RydWN0aW9ucyBwcm92aWRlZCBpbiB3cml0dGVuLApBcHBsaWNhYmxlIExhdywgYWxsIHJlcXVpcmVtZW50cyBvZiB0aGUgSW5zdGl0dXRpb24sCmFuZCBhbnkgb3RoZXIgcHJvZmVzc2lvbmFsIHN0YW5kYXJkcyBhcHBsaWNhYmxlIHRvCnRoZWlyIHByb2Zlc3Npb25hbCBpbmR1c3RyaWVzIGFuZCBmbGVsZHMuIE5laXRoZXIKSW5zdGl0dXRpb24gbm9yIEludmVzdGlnYXRvciBub3QgYW55IFN0dWR5IFBlcnNvbm5lbApzaGFsbCBjb21taXQgYW55IG5lZ2xpZ2VudCBhY3RzIG9yIGFueSB3aWxsZnVsCm1pc2NvbmR1Y3QgaW4gY29ubmVjdGlvbiB3aXRoIHRoZSBTdHVkeS4gSW5zdGl0dXRpb24KYW5kIEludmVzdGlnYXRvciBhY2NlcHQgcmVzcG9uc2liaWxpdHkgZm9yIHRoZSBhY3RzIGFuZAplbWlzc2lvbnMgb2YgYWxsIFN0dWR5IFBlcnNvbm5lbCBpbiB0aGUgU3R1ZHkuCgpww61zZW1uw71taSBwb2t5bnkga2Ugc3R1ZGlpLCBwbGF0bsO9bWkgWsOha29ueSwgVsWhZW1pCnBvxb5hZGF2a3kgemRyYXZvdG5pY2vDqWhvIHphxZnDrXplbsOtIGEgdmXFoWtlcsO9bWkKZGFsxaHDrW1pIG9kYm9tw71taSBzdGFuZGFyZHkgdnp0YWh1asOtY8OtbWkgc2UgayBqZWppY2gKb2Rib3Jub3N0aSAmIHBvbGkgcMWvc29ibm9zdGkuIFpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60KYW5pIHprb3XFoWVqw61jw60gxI1pIGpha8O9a29saSDEjWxlbiBwZXJzb27DoWx1IHN0dWRpZQpuZXNww6FjaGFqw60gxb7DoWRuw70gbmVkYmFsb3N0bsOtIMSNaW4gYW5pIFrDoW3Em21lCnBvY2h5YmVuw60gdiBzb3V2aXNsb3N0aSBzZSBzdHVkacOtLiBaZHJhdm90bmlja8OpCnphxZnDrXplbsOtIGEgemtvdcWhZWrDrWPDrSBwxZlpasOtbWFqw60gb2Rwb3bEm2Rub3N0IHphIGtvbsOhbsOtCiYgbmVrb27DoW7DrSBWxaFlY2ggxI1sZW7FryBwZXJzb27DoWx1IHN0dWRpZSB2ZSBzdHVkaWkuCgogCgogCgogCgogCgogCgogCgp0aGV5IGFuZCBTdHVkeSBQZXJzb25uZWwgYXJlIG5vdCBwcmVzZW50bHkgdW5kZXIgYW55CmFncmVlbWVudCBvciBvYmxpZ2F0aW9uIHdoaWNoIGNvbmZsaWN0cyB3aXRoIHRoZQpkdXRpZXMgYW5kIG9ibGlnYXRpb25zIG93ZWQgdG8gQ1JPIG9yIFNQT05TT1IKdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGFuZCBmdXJ0aGVyIGFncmVlIG5vdCB0bwp1bmRlcnRha2UgYW55IHN1Y2ggb2JsaWdhdGlvbiBvciBhZ3JlZW1lbnQgZHVyaW5nCnRoZSBjb3Vyc2Ugb2YgdGhlIFN0dWR5IGFuZCBzaGFsbCBlbnN1cmUgdGhhdCBubyBTdHVkeQpQZXJzb25uZWwgd2lsbCB1bmRlcnRha2UgYW55IHN1Y2ggb2JsaWdhdGlvbiBvcgphZ3JlZW1lbnQgZHVyaW5nIHRoZSBjb3Vyc2Ugb2YgdGhlIFN0dWR5LgoKIAoKMi42LiBDUk8gb3IgaXRzIGRlc2lnbmVlIHNoYWxsIG9idGFpbiB0aGUgd3JpdHRlbiBhcHByb3ZhbCAyLjYuIFDFmWVkIHphaMOhamVuw61tIHN0dWRpZSB2ZSB6ZHJhdm90bmlja8OpbSB6YcWZw616ZW7DrQpvZiB0aGUgYXBwcm9wcmlhdGUgRXRoaWNzIENvbW1pdHRlZSAoRUMpIHByaW9yIHRvIFrDrXNrw6EgQ1JPIG5lYm8gasOtbSBwb3bEm8WZZW7DoSBvc29iYSBww61zZW1uw70gc291aGxhcwpjb21tZW5jZW1lbnQgb2YgdGhlIFN0dWR5IGF0IHRoZSBJbnN0aXR1dGlvbi4gcMWZw61zbHXFoW7DqSBldGlja8OpIGtvbWlzZSAoRUspLgoKMi43LiBJZiByZXF1aXJlZCBieSBBcHBsaWNhYmxlIExhdywgQ1JPIHNoYWxsIG1ha2UsIG9yIDIuNy4gViBwxZnDrXBhZMSbLCDFvmUgdGFrIGJ1ZGUgdnnFvmFkb3ZhdCBwxZnDrXNsdcWhbsO9IFrDoWtvbiwKcHJvY3VyZSB0aGF0IFNQT05TT1IgbWFrZXMsIHRoZSBuZWNlc3NhcnkgcHJvdmVkZSBDUk8gbmV6Ynl0bsOhIHBvZMOhbsOtIMSNaSBvem7DoW1lbsOtCnN1Ym1pc3Npb25zIG9yIG5vdGlmaWNhdGlvbnMgdG8gdGhlIHJlZ3VsYXRvcnkgcmVndWxhxI1uw61tIG9yZ8OhbsWvbSBhL25lYm8gcMWZw61zbHXFoW7DqSBldGlja8OpIGtvbWlzaQphdXRob3JpdGllcyBhbmQvb3IgYXBwcm9wcmlhdGUgRXRoaWNzIENvbW1pdHRlZSAoRUspLCBwxZnDrXBhZG7EmyB6YWppc3TDrSwgYWJ5IHRhayBwcm92ZWRsCihFQykuIFRoZSBTdHVkeSBtYXkgbm90IGNvbW1lbmNlIHVudGlsIHRoZSBaQURBVkFURUwuIERva3VkIG5lYnVkZSB6a291xaFlasOtY8OtCkludmVzdGlnYXRvciBoYXMgYmVlbiBpbmZvcm1lZCBieSBDUk8gdGhhdCBzdWNoIGluZm9ubm92w6FuIHplIHN0cmFueSBDUk8sIMW+ZSBieWxhIHRhdG8gc2NodsOhbGVuw60KYXV0aG9yaXphdGlvbnMgaGF2ZSBiZWVuIGdyYW50ZWQuIHrDrXNrw6FuYSwgbmVzbcOtIGLDvXQgc3R1ZGllIHphaMOhamVuYS4KCjIuOC4gSW52ZXN0aWdhdG9yIHNoYWxsLCBwcmlvciB0byBhIFN1YmplY8WlcyBwYWx0aWNpcGF0aW9uIGluIDIuOC4gUMWZZWQgemFow6FqIGVuw61tIMO6xI1hc3RpIFN1Ympla3TFryBob2Rub2NlbsOtIHZlIHN0dWRpaQp0aGUgU3R1ZHksIG9idGFpbiB0aGUgU3ViamVjdCdzIHdyaXR0ZW4gaW5mb3JtZWQgWsOtc2vDoSB6a291xaFlasOtY8OtIHDDrXNlbW7DvSBpbmZvcm1vdmFuw70gc291aGxhcwpjb25zZW50IHRvIHBhbHRpY2lwYXRlIGluIHRoZSBTdHVkeS4gRWFjaCBTdWJqZWPFpXMgU3ViamVrdHUgaG9kbm9jZW7DrSBzIMO6xI1hc3RpIHZlIHN0dWRpaS4gUMOtc2VtbsO9CndyaXR0ZW5pbmZvcm1lZCBjb25zZW50IHNoYWxsYmUgaW4gJiBmb3JtIHRoYXRpcyBpbiBpbmZvcm1vdmFuw70gc291aGxhcyBrYcW+ZGUnaG8gc3ViamVrdHUgaG9kbm9jZW7DrQphY2NvcmRhbmNlIHdpdGggdGhlIFByb3RvY29sLiBidWRlIG3DrXQgcG9kb2J1LCBrdGVyw6EgamUgdiBzb3VsYWR1IHMgcHJvdG9rb2xlbS4KCjIuOS4gSW5zdGl0dXRpb24gYW5kIEludmVzdGlnYXRvciBzaGFsbCAoaSkga2VlcCAmIGRldGFpbGVkIGFuZCAyLjkuIFpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gYSB6a291xaFlasOtY8OtIGJ1ZG91IChpKQp3cml0dGVuIGludmVudG9yeSBvZiBhbGwgY2xpbmljYWwgc3VwcGxpZXMsIGVxdWlwbWVudCB1Y2hvdsOhdmF0IHBvZHJvYm7DvSAmIHDDrXNlbW7DvSBpbnZlbnTDocWZIHZlxaFrZXLDvWNoCmFuZCBTdHVkeSBEcnVnIHByb3ZpZGVkIGJ5IFNQT05TT1Igb3IgQ1JPIG9yIGtsaW5pY2vDvWNoIHBvbcWvY2VrLCB2eWJhdmVuw60gYSBob2Rub2NlbsOpaG8KaXRzIEFmZmlsaWF0ZXMgYW5kIHNoYWxsIHN0b3JlIHN1Y2ggbWF0ZXJpYWxzIGFjY29yZGluZyBwxZnDrXByYXZrdSwga3RlcmUnIHBvc2t5dGwgWkFEQVZBVEVMIG5lYm8gQ1JPCnRvIHRoZSBQcm90b2NvbCBvciBTdHVkeSBJbnN0cnVjdGlvbnMgYW5kIChpaSkgcmV0YWluIGFsbCBuZWJvIGplasOtIHDFmWlkcnXFvmVuw6kgc3BvbGXEjW5vc3RpLCBhIGJ1ZG91IHR5dG8KbmVjZXNzYXJ5IFN1YmplY3QgcmVjb3JkcyBhbmQvb3IgZG9jdW1lbnRzIHdoZXRoZXIgbWF0ZXJpw6FseSB1Y2hvdsOhdmF0IHYgc291bGFkdSBzIHByb3Rva29sZW0gbmVibwplbGVjdHJvbmljLCBwYXBlciwgb3IgaW4gYW55IG90aGVyIGZvcm0gcmVsYXRpbmcgdG8gdGhlIHBva3lueSBrZSBzdHVkacOtICYgKGlpKSBidWRvdSB1Y2hvdsOhdmF0IHZlxaFrZXLDqQpTdHVkeSBmb3IgdHdlbnR54oCUZmx2ZSAoMjUpIHllYXJzIGFmdGVyIHRoZSBlbmQgb3IgdGhlIG5lemJ5dG7DqSB6w6F6bmFteSBzdWJqZWt0dSBob2Rub2NlbsOtIGEvbmVibwpwcmVtYXR1cmUgdGVybWluYXRpb24gb2YgdGhlIFN0dWR5LiBJbnN0aXR1dGlvbiBhbmQgZG9rdW1lbnR5LCBhxaUgamnFviBWIGVsZWt0cm9uaWNrw6ksIHBhcMOtcm92w6ksIG5lYm8KSW52ZXN0aWdhdG9yIHNoYWxsIHByb3ZpZGUgdG8gQ1JPIG9yIGl0cyBBZmZpbGlhdGVzIGFsbCBqYWvDqWtvbGkgamluw6kgcG9kb2LEmywga3RlcsOpIHNvdXZpc8OtIHNlIHN0dWRpw60sIHBvIGRvYnUKc3R1ZHkgZGF0YSBjb2xsZWN0ZWQgb24gY2FzZXJlcG9ydGZvcm1zIGFzaW5zdHJ1Y3RlZCBkdmFjZXRpIHDEm3RpICgyNSkgbGV0IHBvIGtvbmNpIG5lYm8gcMWZZWTEjWFzbsOpbQpieSBDUk8uIHVrb27EjWVuw60gc3R1ZGllLiBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIGEgemtvdcWhZWrDrWPDrQoKcMWZZWRhasOtIENSTyBuZWJvIGplasOtbSBwxZlpZHJ1xb5lbsO9bSBzcG9sZcSNbm9zdGVtCnZlxaFrZXLDqSDDumRhamUgemUgc3R1ZGllIHNocm9tw6HFvmTEm27DqSBWIHrDoXpuYW1lY2gKc3ViaiBla3TFryBob2Rub2NlbsOtIGRsZSBwb2t5bsWvIENSTy4KCjIuMTAuIEluc3RpdHV0aW9uIGFuZCBJbnZlc3RpZ2F0b3IgYWdyZWUgYW5kIFdhcnJhbnQgdGhhdCAyLjEwLiBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIGF6a291xaFlasOtY8OtIHNvdWhsYXPDrSBzIHTDrW0KCigmIHByb2hsYcWhdWrDrSwgxb5lIHNlIHRvIHTDvWvDoSBpcGVyc29uw6FsdSBzdHVkaWUpLCDFvmUKYWt0dcOhbG7EmyBuZWpzb3UgVsOhesOhbsOtIMW+w6Fkbm91IHNtbG91dm91IG5lYm8KesOhdmF6a2VtLCBrdGVyw6kganNvdSB2cm96cG9ydSBzcG92aW5ub3N0bWkKYXrDoXZhemt5IFbFr8SNaSBDUk8gWkFEQVZBVEVMSSBwb2RsZSB0w6l0bwpzbWxvdXZ5LCBhIGTDoWxlIHNvdWhsYXPDrSBzIHTDrW0sIMW+ZSBzZSBWIHByxa9ixJtodSB0w6l0bwpzdHVkaWUgbmV6YVbDocW+b3Uga8W+w6FkbsO9bSB0YWtvdsO9bSB6w6F2YXprxa9tIMSNaQpzbWxvdXbDoW0gJiB6YWppc3TDrSwgYWJ5IHNlIGvFvsOhZG7DvW0gdGFrb3bDvW0KesOhdmF6a8WvbSDEjWkgc21sb3V2w6FtIG5lemF2w6F6YWwgcG8gZG9idSB0cnbDoW7DrSB0w6l0bwpzdHVkaWUgYW5pIHBlcnNvbsOhbCBzdHVkaWUuCgogCgoyODQ2NDFfMTQwNC1PTzQ0X0NaRV9DWkU0X0lOU1QgUEkgQ1NBIF8gQmlsaW5ndWFsXzIwMjUwNDA5XzEuMApTdHJhbmEgNCB6IDY1CgogCgogCgoyLjExLgoKSW5zdGl0dXRpb24gYW5kIEludmVzdGlnYXRvciBoZXJlYnkgYWNrbm93bGVkZ2UgYW5kCmFncmVlIHRoYXQgZWFjaCBoYXMgcmVjZWl2ZWQgc3VmZmljaWVudCBJbmZvcm1hdGlvbgpyZWdhcmRpbmcgdGhlaXIgcmVzcGVjdGl2ZSBwYXJ0aWNpcGF0aW9uIGluIHRoZSBTdHVkeS4KSW4gYWRkaXRpb24sIEludmVzdGlnYXRvciBmdXJ0aGVyIHdhcnJhbnRzIChpKSB0aGF0CmhlL3NoZSBoYXMgZGlzdHJpYnV0ZWQgYWxsIHJlbGV2YW50IEluZm9ybWF0aW9uIHRvIHRoZQpTdHVkeSBQZXJzb25uZWwgd2hvIGhhdmUgJiBuZWVkIHRvIGtub3cgc3VjaApJbmZvcm1hdGlvbiBpbiBvcmRlciB0byBwZXJmb3JtIHRoZWlyIGFzc2lnbmVkIHRhc2tzCm9uIHRoZSBTdHVkeSwgYW5kIChpaSkgdGhhdCBoZS9zaGUsIGFuZCBhbGwgU3R1ZHkKUGVyc29ubmVsIChhcyBhcHBsaWNhYmxlKSwgaGFzIHJlYWQgYW5kIHVuZGVyc3RhbmRzCnN1Y2ggSW5mb3JtYXRpb24uCgoyLjExLgoKWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBhWmtvdcWhZWrDrWPDrSB0w61tdG8gYmVyb3UgbmEKdsSbZG9tw60gYXNvdWhsYXPDrSBzdMOtbSwgxb5lIG9iYSBvYmRyxb5lbGkgZG9zdGF0ZWsKaW5mb3JtYWPDrSB0w71rYWrDrWPDrWNoIHNlIGplamljaCDDusSNYXN0aSB2ZSBzdHVkaWkuIEtyb23Emwp0b2hvIHprb3XFoWVqw61jw60gZGFsZSB6YXJ1xI11amUsIMW+ZSAoaSkgcMWZZWRhbCBWxaFlY2hueQpkxa9sZcW+aXTDqSBpbmZvcm1hY2UgcGVyc29uw6FsdSBzdHVkaWUsIGt0ZXLDvSB0eXRvCmluZm9ybWFjZSBwb3TFmWVidWplIHpuYXQgWiBkxa92b2R1IHByb3bDoWTEm27DrSBqaW0KcMWZacWZYXplbsO9Y2ggw7prb2zFryB2ZSBzdHVkaWksIGHFvmUgKGlpKSB6a291xaFlasOtY8OtCmF2xaFpY2huaSDEjWxlbm92w6kgcGVyc29uw6FsdSBzdHVkaWUgKGRsZSBzaXR1YWNlKSBzaQpwxZllxI1ldGxpIGEgcG9yb3p1bcSbbGkgdMSbbXRvIGluZm9ybWFjw61tLgoKIAoKMi4xMi4KCkluc3RpdHV0aW9uIHNoYWxsLCB0aHJvdWdob3V0IHRoZSBkdXJhdGlvbiBvZiB0aGUgU3R1ZHksCnByb3ZpZGUsIGtlZXAgYXZhaWxhYmxlIHRvIHRoZSBTdHVkeSBQZXJzb25uZWwgYW5kCm1haW50YWluIGFsbCBuZWNlc3NhcnkgUmVzb3VyY2VzIGZvciB0aGUgYWRlcXVhdGUKcGVyZm9ybWFuY2Ugb2YgdGhlIFN0dWR5LiBJbnZlc3RpZ2F0b3Igc2hhbGwsCnRocm91Z2hvdXQgdGhlIGR1cmF0aW9uIG9mIHRoZSBTdHVkeSwgZW5zdXJlIHRoYXQKYWRlcXVhdGUgU3R1ZHkgUGVyc29ubmVsIGFyZSBhdmFpbGFibGUgdG8gY29tcGxldGUKdGhlIFN0dWR5LiBJbnN0aXR1dGlvbiBhbmQgSW52ZXN0aWdhdG9yIHNoYWxsIGluZm9ybQpDUk8gcHJvbXB0bHkgaW4gd3JpdGluZyAoaW5jbHVkaW5nIGJ5IGVtYWlsKSBhYm91dAphbGwgY2hhbmdlcyBpbXBhY3RpbmcgdGhlIFJlc291cmNlcyBhbmQvb3IgdGhlIFN0dWR5ClBlcnNvbm5lbC4KCjIuMTIuCgpWIHByxa9ixJtodSB0cnbDoW7DrSB0w6l0byBzdHVkaWUgYnVkZSBaZHJhdm90bmlja8OpCnphxZnDrXplbsOtIHBvc2t5dG92YXQsIG3DrXQgayBkaXNwb3ppY2kgcHJvIHBvdMWZZWJ5CnBlcnNvbsOhbHUgc3R1ZGllICYgdWNob3bDoXZhdCB2ZcWha2Vyw6kgbmV6Ynl0bmUgWmRyb2plCnBybyBkb3N0YXRlxI1uw6kgcHJvdsOhZMSbbsOtIHN0dWRpZS4gViBwcsWvYsSbaHUgdHJ2w6Fuw60Kc3R1ZGllIHprb3XFoWVqw61jw60gemFqaXN0w60sIGFieSBieWwgayBkb2tvbsSNZW7DrSBzdHVkaWUKZG9zdGF0ZcSNbsO9IHBvxI1ldCDEjWxlbsWvIHBlcnNvbsOhbHUgc3R1ZGllLgpaZHJhdm90bmlja8OpIHphxZnDrXplbsOtICYgemtvdcWhZWrDrWPDrSBidWRvdSBuZXByb2RsZW7Emwpww61zZW1uxJsgaW5mb3Jtb3ZhdCBDUk8gKFbEjWV0bsSbIGVsZWt0cm9uaWNrZQpmb3JteSkgKCkgdmXFoWtlcsO9Y2ggem3Em27DoWNoLCBrdGVyw6kgYnkgbW9obHkgbcOtdCB2bGl2Cm5hIHpkcm9qZSBhL25lYm8gcGVyc29uw6FsIHN0dWRpZS4KCiAKCjIuMTMuCgpUaGUgUHJvdG9jb2wsIGluY2x1ZGluZyBhbnkgYW1lbmRtZW50cyB0aGVyZXRvLApjb25zdGl0dXRlcyBhbiBpbnRlZ3JhbCBwYXJ0IG9mIHRoaXMgQWdyZWVtZW50IGJ5CnJlZmVyZW5jZS4gSW4gY2FzZSBvZiBhbnkgaW5jb25zaXN0ZW5jeSBiZXR3ZWVuIHRoaXMKQWdyZWVtZW50IGFuZCB0aGUgUHJvdG9jb2wsIHRoZSBQcm90b2NvbCBzaGFsbCB0YWtlCnByZWNlZGVuY2Ugb24gbWF0dGVycyBvZiBtZWRpY2luZSwgc2NpZW5jZSBhbmQKY29uZHVjdCBvZiB0aGUgU3R1ZHk7IG90aGVyd2lzZSB0aGUgdGVybXMgb2YgdGhpcwpBZ3JlZW1lbnQgc2hhbGwgcHJldmFpbC4KCjIuMTMuCgpQcm90b2tvbCwgdsSNZXRuxJsgdmXFoWtlcsO9Y2ggamVobyBkb2RhdGvFrywgcMWZZWRzdGF2dWplCm5lZHInaHJvdSBzb3XEjcOhc3QgdMOpdG8gc21sb3V2eSBwcm9zdMWZZWRuaWN0dsOtbQpvZGthenUuIFYgcMWZw61wYWTEmyBqYWtlaG9rb2xpIG5lc291bGFkdSBtZXppIHRvdXRvCnNtbG91dm91IGFwcm90b2tvbGVtIGJ1ZGUgdnphbGXFvml0b3N0ZWNoCmzDqWthxZlzdHbDrSwgdsSbZHkgYXByb3ZhZMSbbsOtIHN0dWRpZSByb3pob2R1asOtY8OtCnByb3Rva29sOyB2IG9zdGF0bsOtY2ggcMWZw61wYWRlY2ggYnVkb3Ugcm96aG9kdWrDrWPDrQpwb2Rtw61ua3kgdMOpdG8gc21sb3V2eS4KCiAKCjIuMTQuCgpVbmRlciB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQgSW5zdGl0dXRpb24gYW5kCkludmVzdGlnYXRvciBhZ3JlZSB0byBjb21wZW5zYXRlIENSTyBhbmQKU1BPTlNPUiwgYXMgYXBwbGljYWJsZSwgZm9yIGFsbCBjb3N0cyBhcmlzaW5nIG91dCBvZgpJbnN0aXR1dGlvcsWlcyBhbmQvb3IgSW52ZXN0aWdhdG9yYXMgYnJlYWNoIG9mIHRoaXMKQWdyZWVtZW50LgoKMi4xNAoKWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBhIHprb3XFoWVqw61jw60gemEgcG9kbcOtbmVrIHTDqXRvCnNtbG91dnkgc291aGxhc8OtIHMgZmluYW7EjW7DrSBrb21wZW56YWPDrSBDUk8KJiBaQURBVkFURUxFLCBkbGUgc2l0dWFjZSwgemEgdmXFoWtlcsOpIG7DoWtsYWR5CnBseW5vdWPDrSB6cG9ydcWhZW7DrSB0w6l0byBzbWxvdXZ5IHpkcmF2b3RuaWNrw71tCnphxZnDrXplbsOtbSBhL25lYm8gemtvdcWhZWrDrWPDrW0uCgogCgoyLjE1LgoKSW5zdGl0dXRpb24gYW5kIEludmVzdGlnYXRvciBhZ3JlZSB0aGF0IGlmIGFueSBTdHVkeQpQZXJzb25uZWwgaXMgJiBnb3Zlcm5tZW50IGVtcGxveWVlLCBvZmZpY2lhbCBhbmQvb3IKcGVyZm9ybWluZyAmIGdvdmVybm1lbnRhbCBmdW5jdGlvbiwgc3VjaApyZWxhdGlvbnNoaXAgbWF5IGJlIGRpc2Nsb3NlZCB0byB0aGUgU1BPTlNPUiBhbmQKYW55IGNvbXBlbnNhdGlvbiB0aGF0IHN1Y2ggaW5kaXZpZHVhbCByZWNlaXZlcyB3aXRoCnJlc3BlY3QgdG8gdGhlIFN0dWR5IG1heSBiZSBkaXNjbG9zZWQgdG8gdGhlCkluc3RpdHV0aW9uIGFuZCBpcyBoZXJlYnkgYXBwcm92ZWQuCgoyLjE1CgpaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIGEgemtvdcWhZWrDrWPDrSBzb3VobGFzw60sIMW+ZSBwb2t1ZApidWRlIGt0ZXLDvWtvbGkgxI1sZW4gcGVyc29uw6FsdSBzdHVkaWUgemFtxJtzdG5hbmNlbSDEjWkKw7rFmWVkbsWvPGVtIHZsYWR5IGEvbmVibyBidWRlIHZ5a29uYXZhdCB2bGFkbmkKZnVua2NpLCBaQURBVkFURUwgYnVkZSBvIHRvbXRvIHZ6dGFodQppbmZvcm1vdsOhbiAmIGZpbmFuxI1uw60gb2RtxJtuYSwga3Rlcm91IHRlbnRvIGplZGluZWMKb2JkcsW+w60gViBzb3V2aXNsb3N0aSBzZSBzdHVkacOtLCBtxa/FvmUgYsO9dCBzZMSbbGVuYQpaZHJhdm90bmlja2UnbXUgemHFmcOtemVuw60sIGNvxb4gc2UgdMOtbXRvIHVtb8W+xYh1aiBlLgoKIAoKIAoKMi4xNi4KCkluc3RpdHV0aW9uIGFuZCBJbnZlc3RpZ2F0b3IgV2FycmFudCB0aGF0IG5laXRoZXIgdGhleSwKbm9yIGFueSBTdHVkeSBQZXJzb25uZWwgYXJlIG9mZmljaWFscywgYWdlbnRzLCBvcgpyZXByZXNlbnRhdGl2ZXMgb2YgYW55IGdvdmVybm1lbnQgb3IgcG9saXRpY2FsIHBhcnR5Cm9yIGludGVybmF0aW9uYWwgb3JnYW5pemF0aW9uIHdoZXJlIHRoZXkgbWF5IGJlIGluCnBvc2l0aW9ucyBvZiBhdXRob3JpdHkgdG8gYmUgYWJsZSB0byBpbXByb3Blcmx5IGhlbHAKQ1JPIG9yIFNQT05TT1Igb2J0YWluICYgYnVzaW5lc3MgYWR2YW50YWdlLgpJbnN0aXR1dGlvbiBhbmQgSW52ZXN0aWdhdG9yIGZ1cnRoZXIgV2FycmFudCB0aGF0Cm5laXRoZXIgdGhleSBub3QgYW55IFN0dWR5IFBlcnNvbm5lbCBzaGFsbCBtYWtlIGFueQpwYXltZW50LCBlaXRoZXIgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSwgb2YgYW55IG1vbmV5Cm9yIG90aGVyIGNvbnNpZGVyYXRpb24gKGhlcmVpbmFmdGVyIFBheW1lbnQpLCB0bwoKIAoKMi4xNi4KClpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gYVprb3XFoWVqw61jw60gcHJvaGxhxaF1asOtCmF6YXJ1xI11anInLCDFvmUgYW5pIG9uaSwgYW5pIHBlcnNvbmFsIHN0dWRpZSBuZWpzb3UKdmXFmWVqbsO9bWkgxI1pbml0ZWxpLCBqZWRuYXRlbGkgbmVibyB6YXN0dXBjaSBqYWtla29saXYKdmzDoWR5IG5lYm8gcG9saXRpY2vDqSBzdHJhbnkgbmVibyBtZXppbsOhcm9kbsOtCm9yZ2FuaXphY2UsIHZuaWNoxb4gYnkgbW9obGkgemFzdMOhdmF0IHBvemljZQpzcHJhdm9tb2NlbWksIGt0ZXLDqSBieSBqaW0gdW1vxb5uaWx5IG5lcGF0xZlpxI1uxJsKcG9tw6FoYXQgQ1JPIG5lYm8gWkFEQVZBVEVMSSBresOtc2vDoW7DrQpvYmNob2Ruw60gVsO9aG9keS4gWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBhIHprb3XFoWVqw61jw60KZGFsZSB6YXJ1xI11asOtLCDFvmUgYW5pIG9uaSwgYW5pIHBlcnNvbmFsIHN0dWRpZQpuZXVza3V0ZcSNbsOtIMW+YWRub3UgcGxhdGJ1LCBhxaUgamnFviBwxZnDrW1vLCDEjWkgbmVwxZnDrW1vLAoKIAoKMjg0NjQxXzE0MDQtMDA0NF9DWkVfQ1pFNF9JTlNUIFBJIENTQSBfIEJpbGluZ3VhbF8yMDI1MDQwOV8xLjAKU3RyYW5hIDUgeiA2NQoKIAoKIAoKZ292ZXJubWVudCBvciBwb2xpdGljYWwgcGFydHkgb2ZmaWNpYWxzLCBvZmZpY2lhbHMgb2YKaW50ZXJuYXRpb25hbCBvcmdhbml6YXRpb25zLCBjYW5kaWRhdGVzIGZvciBwdWJsaWMKb2ZmbGNlLCBvciByZXByZXNlbnRhdGl2ZXMgb2Ygb3RoZXIgYnVzaW5lc3NlcyBvcgpwZXJzb25zIGFjdGluZyBvbiBiZWhhbGYgb2YgYW55IG9mIHRoZSBmb3JlZ29pbmcKKGhlcmVpbmFmdGVyIGNvbGxlY3RpdmVseSBPZmZsY2lhbHMpIHdoZXJlIHN1Y2gKUGF5bWVudCB3b3VsZCBjb25zdGl0dXRlIHZpb2xhdGlvbiBvZiBhbnkgbGF3LAppbmNsdWRpbmcgdGhlIFUuUy4gRm9yZWlnbiBDb3JydXB0IFByYWN0aWNlcyBBY3QuIEluCm5vIGV2ZW50IHNoYWxsIEluc3RpdHV0aW9uLCBJbnZlc3RpZ2F0b3IsIG9yIGFueSBTdHVkeQpQZXJzb25uZWwgbWFrZSBhbnkgUGF5bWVudCBlaXRoZXIgZGlyZWN0bHkgb3IKaW5kaXJlY3RseSB0byBPZmZsY2lhbHMgaWYgc3VjaCBQYXltZW50IGlzIGZvciB0aGUKcHVycG9zZSBvZiBpbmZsdWVuY2luZyBkZWNpc2lvbnMgb3IgYWN0aW9ucyB3aXRoCnJlc3BlY3QgdG8gdGhlIHN1YmplY3QgbWF0dGVyIG9mIHRoaXMgQWdyZWVtZW50IG9yIGFueQpvdGhlciBhc3BlY3Qgb2YgQ1JPLHMgb3IgU1BPTlNPUsOJIGJ1c2luZXNzLgpJbnN0aXR1dGlvbiBhbmQgSW52ZXN0aWdhdG9yIHNoYWxsIHJlcG9ydCBhbnkgdmlvbGF0aW9uCm9mIHRoaXMgd2FycmFudHkgcHJvbXB0bHkgdG8gQ1JPIGFuZCBhZ3JlZSB0bwpyZXNwb25kIHRvIGFueSBDUk8gaW5xdWlyaWVzIGFib3V0IGFueSBwb3RlbnRpYWwKdmlvbGF0aW9ucyBhbmQgbWFrZSBhcHByb3ByaWF0ZSByZWNvcmRzIGF2YWlsYWJsZSB0bwpDUk8gb3IgU1BPTlNPUiB1cG9uIHJlcXVlc3QuIEF0IGFueSB0aW1lIHVwb24KdGhlIHJlcXVlc3Qgb2YgQ1JPLCBJbnN0aXR1dGlvbiBhbmQgSW52ZXN0aWdhdG9yIGFncmVlCnRvIHByb21wdGx5IGNlcnRpZnkgaW4gd3JpdGluZyB0aGVpciBvbmdvaW5nCmNvbXBsaWFuY2UgKGFuZCB0aGUgY29tcGxpYW5jZSBvZiBhbGwgb3RoZXIgU3R1ZHkKUGVyc29ubmVsKSB3aXRoIHRoZSB3YXJyYW50aWVzIGNvbnRhaW5lZCBpbiB0aGlzClNlY3Rpb24uCgrFvsOhZG5lIGZpbmFuxI1uw60gxI3DoXN0a3kgxI1pIGppbsOpIG9kbcSbbnkgKGTDoWxlIGplbgoK4oCecGxhdGJh4oCcKSBWbMOhZG7DrW0gxI1pbml0ZWzFr20gbmVibyDEjWluaXRlbMWvbQpwb2xpdGlja8O9Y2ggc3RyYW4sIMSNaW5pdGVsxa9tIG1lemluw6Fyb2Ruw61jaAoKb3JnYW5pemFjw60sIGthbmRpZMOhdMWvbSBuYSB2ZcWZZWpuw6kgZnVua2NlIG5lYm8KesOhc3R1cGPFr20gamluw71jaCBwb2RuaWvFryBuZWJvIG9zb2LDoW0gamVkbmFqw61jw61tCmptw6luZW0ga3RlcsOpaG9rb2xpdiAyIFbDvcWhZSB1dmVkZW7DvWNoIHN1Ympla3TFrwooc3BvbGXEjW7EmyBkw6FsZSBqZW4g4oCexI1pbml0ZWxlJ+KAnCksIGtkeSBieSB0YWtvdsOhIHBsYXRiYQpwxZllZHN0YXZvdmFsYSBwb3J1xaFlbsOtIGpha2Vob2tvbGl2IFrDoWtvbmEsIFbEjWV0bsSbCmFtZXJpY2vDqWhvIHrDoWtvbmEgKCkgemFocmFuacSNbsOtY2gga29ydXDEjW7DrWNoCnByYWt0aWvDoWNoLiBaYSDFvsOhZG7DvWNoIG9rb2xub3N0w60gbmVzbcOtIFpkcmF2b3RuaWNrw6kKemHFmcOtemVuw60sIHprb3XFoWVqw61jw60gbmVibyBwZXJzb27DoWwgc3R1ZGllIHVocmFkaXQKamFrb3Vrb2xpdiBwbGF0YnUgxI1pbml0ZWzFr20sIHDFmWlsbmUgxI1pIG5lcMWZw61tbywgcG9rdWQKYnkgw7rEjWVsZW0gdGFrb3ZlIHBsYXRieSBieWxvIG92bGl2bsSbbsOtIHJvemhvZG51dMOtCm5lYm8ga3Jva8WvIHVza3V0ZcSNbsSbbsO9Y2ggcyBvaGxlZGVtIG5hIHDFmWVkbcSbdCB0w6l0bwpzbWxvdXZ5IG5lYm8gbmEgbGlib3ZvbG7DvSBhc3Bla3QgcG9kbmlrw6Fuw60Kc3BvbGXEjW5vc3RpIENSTyBuZWJvIFpBREFWQVRFTEUuClpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gYSB6a291xaFlasOtY8OtIG5lcHJvZGxlbsSbIG9obMOhc8OtCkNSTyBqYWtla29saSBwb3J1xaFlbsOtIGFzb3VobGFzw60sIMW+ZSBvZHBvdsOtIG5hCmpha8Opa29saSBkb3RhenkgQ1JPIHTDvWthasOtY8OtIHNlIHBvdGVuY2nDoWxuw61obwpwb3J1xaFlbsOtIGEgbmEgdnnFvsOhZMOhbsOtIFpwxZnDrXN0dXBuw60gcMWZw61zbHXFoW7DqSBaw6F6bmFteQpDUk8gbmVibyBaQURBVkFURUxJLiBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtCmF6a291xaFlasOtY8OtIHNvdWhsYXPDrSwgxb5lIGtkeWtvbGkgbmEgxb7DoWRvc3QgQ1JPCm5lcHJvZGxlbsSbIHBvdHZyZMOtIHDDrXNlbW5vdSBmb25ub3Ugc3ZlIHBva3JhxI11asOtY8OtCmRvZHLFvm92w6Fuw60gesOhcnVrIHV2ZWRlbsO9Y2ggViB0b210byBvZGTDrWx1IChqYWtvxb50bwppIGplamljaCBkb2Ryxb5vdsOhbsOtIHplIHN0cmFueSBWxaFlY2ggb3N0YXRuw61jaCDEjWxlbsWvCnBlcnNvbsOhbHUgc3R1ZGllKS4KCiAKCiAKCiAKCiAKCiAKCiAKCjIuMTcuIEl0IGlzIGV4cGVjdGVkIHRoYXQgdGhlIFN0dWR5IHNoYWxsIHRha2UgcGxhY2UgXyAyLjE3LiBQxZllZHBva2zDoWTDoSBzZSwgxb5lIHN0dWRpZSBidWRlIHByb2LDrWhhdCB2IG9iZG9iw60gLgpfLiBfLgoKMy4gUkVQT1JUUyxNT05JVE9SSU5HIEFORCAzLiBITMOBxaBFTsONIE1PTklUT1JPVsOBTsONCkNPT1BFUkFUSU9OIEEgU1BPTFVQUsOBQ0UKCjMuMS4gSW52ZXN0aWdhdG9yIHNoYWxsIHN1Ym1pdCB0byBDUk8sIGFuZCBDUk8gaGFzIGEgMy4xLiBaa291xaFlasOtY8OtIHDFmWVkbG/FvsOtIENSTyAoYSBDUk8gbcOhIHBvZGxlIHTDqXRvCnJpZ2h0IHRvIGNsYWltIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBhbGwgY29tcGxldGVkIHNtbG91dnkgbmEgbsSbIG7DoXJvaykgVsWhZWNobnkgdnlwaGzEm25lJyBmb3JtdWzDocWZZQplQ1JGcyBvciBDUkZzIHJlc3VsdGluZyBmcm9tIHRoZSBTdHVkeSB3aXRoaW4gJiBlQ1JGIG5lYm8gQ1JGIHrDrXNrYW7DqSB2csOhbWNpIHTDqXRvIHN0dWRpZQpyZWFzb25hYmxlIHRpbWUgcGVyaW9kIGFuZCBpbiBhY2NvcmRhbmNlIHdpdGggYW55IHYgcMWZaW3Em8WZZW5lJ20gxI1hc292w6ltIG9iZG9iw60gYSB2IHNvdWxhZHUKU3R1ZHkgSW5zdHJ1Y3Rpb25zLiBJbnZlc3RpZ2F0b3Igd2FycmFudHMgdGhhdCBhbGwgcyBqYWvDvW1pa29saSBwb2t5bnkga2Ugc3R1ZGlpLiBaa291xaFlasOtY8OtIHphcnXEjXVqZSwgxb5lCmVDUkZzIG9yIENSRnMgc3VibWl0dGVkIHRvIENSTyBhcmUgdHJ1ZSwgY29tcGxldGUsIFbFoWVjaG55IGZvcm11bMOhxZllIGVDUkYgbmVibyBDUkYgcMWZZWRsb8W+ZW7DqSBDUk8KY29ycmVjdCBhbmQgYWNjdXJhdGVseSByZWZsZWN0IHRoZSByZXN1bHRzIG9mIHRoZSBTdHVkeSBidWRvdSBwcmF2ZGl2w6ksIMO6cGxuw6ksIHNwcsOhdm7DqSBhIGJ1ZG91IHDFmWVzbsSbCmFuZCB0aGUgU2VydmljZXMuIEluc3RpdHV0aW9uIGFuZCBJbnZlc3RpZ2F0b3Igc2hhbGwgem9icmF6b3ZhdCB2w71zbGVka3kgc3R1ZGllIGEgc2x1xb5lYi4gS3JvbcSbIHRvaG8KYWxzbyBwcm92aWRlIENSTyB3aXRoIGNvcGllcyBvZiBhbGwgUmVwb3J0cywgYW5kIGFueSBwxZllZGFqw60gWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBhIHprb3XFoWVqw61jw60gQ1JPIGtvcGllCnVwZGF0ZXMgdGhhdCBhcmUgcmVxdWlyZWQgYnkgdGhlIEVDLiB2ZcWha2Vyw71jaCBacHLDoXYgYSB2ZcWha2Vyw71jaCBuZWpub3bEm2rFocOtY2ggaW5mb3JtYWPDrSwKCmt0ZXLDqSB2ecW+YWR1amUgRUsuCjMuMi4gSW5zdGl0dXRpb24gYW5kIEludmVzdGlnYXRvciBzaGFsbCBGdWxseSBDb29wZXJhdGUgMy4yLiBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIGF6a291xaFlasOtY8OtIGJ1ZG91IHBsbsSbCgp3aXRoIENSTyBhbmQgd2lsbCBtZWV0IHdpdGggcmVwcmVzZW50YXRpdmVzIG9mIENSTywKb3IgaXRzIGRlc2lnbmVlLCBhdCBtdXR1YWxseSBjb252ZW5pZW50IHRpbWVzCmFjY29yZGluZyB0byAmIHNjaGVkdWxlIHNldCBmb3J0aCBpbiBTdHVkeSBJbnN0cnVjdGlvbnMKZm9yIG1vbml0b3JpbmcgdmlzaXRzLCBjb25zdWx0YXRpb25zIGFuZCB0byBhbGxvdyBkaXJlY3QKaW5zcGVjdGlvbiBvZiBhbGwgU3R1ZHkgcmVsYXRlZCByZWNvcmRzLCBpbmNsdWRpbmcKU3ViamVjdCBtZWRpY2FsIGZsbGVzLCBhcyByZXF1ZXN0ZWQgYnkgQ1JPIGFuZCBmb3IgYW55Cm90aGVyIHB1cnBvc2VzIHJlbGF0aW5nIHRvIHRoZSBTdHVkeSBhcyBkZWVtZWQKCiAKCnNwb2x1cHJhY292YXQgc2UgQ1JPICYgc2V0a2Fqw60gc2Ugc2UgesOhc3R1cGNpIENSTwpuZWJvIHMgamVqaWNoIHBvdsSbxZllbsO9bWkgb3NvYmFtaSBWIG9ib3VzdHJhbm7EmwpwxZlpamF0ZWxub3UgZG9idSBwb2RsZSBoYXJtb25vZ3JhbXUgdXZlZGVuw6lobwp2IHBva3luZWNoIGtlIHN0dWRpaSB6YSDDusSNZWxlbSBtb25pdG9yb3ZhY8OtY2gKbsOhdsWhdMSbdiwga29uenVsdGFjw60gYSB1bW/Fvm7Em27DrSBwxZnDrW3DqSBrb250cm9seSBWxaFlY2gKWsOhem5hbcWvIHNvdXZpc2Vqw61jw61jaCBzZSBzdHVkacOtLCBWxI1ldG7EmyB6ZHJhdm90bsOtY2gKWsOhem5hbcWvIHN1Ympla3TFryBob2Rub2NlbsOtLCBqYWsgYnVkZSB2ecW+YWRvdmF0CgogCgoyODQ2NDFfMTQwNC1PTzQ0X0NaRV9DWkU0X0lOU1QgUEkgQ1NBIF8gQmlsaW5ndWFsXzIwMjUwNDA5XzEuMApTdHJhbmEgNiB6IDY1CgogCgogCgpuZWNlc3NhcnkgYnkgQ1JPLiBJbnZlc3RpZ2F0b3Igc2hhbGwgZW5zdXJlIHRoYXQgYWxsClN0dWR5IFBlcnNvbm5lbCBGdWxseSBDb29wZXJhdGVzIHdpdGggQ1JPLAppbmNsdWRpbmcgbWVldGluZyB3aXRoIHBlcnNvbm5lbCBvZiBDUk8sIG9yIGl0cwpkZXNpZ25lZSwgYXMgc2V0IGZvcnRoIGluIHRoZSBwcmVjZWRpbmcgc2VudGVuY2UuCgpDUk8sICYgemEgamFrw71taWtvbGkgamluw71taSDDusSNZWx5IHNvdXZpc2Vqw61jw61taSBzZQpzdHVkacOtLCBqYWsgdXpuw6EgemEgbmV6Ynl0bsOpIENSTy4gWmtvdcWhZWrDrWPDrSB6YWppc3TDrSwKYWJ5IHZlxaFrZXLDvSBwZXJzb25hbCBzdHVkaWUgcGxuxJsgc3BvbHVwcmFjb3ZhbApzIENSTywgJiB0byBWxI1ldG7EmyBzY2jFr3rDrSBzIHBlcnNvbsOhbGVtIENSTyAobmVibwpzIGplasOtbWkgcG9WxJvFmWVuw71taSBvc29iYW1pKSwgamFrIGplIHV2ZWRlbm8KdiBwxZllZGNob3rDrSBWxJt0xJsuCgogCgpBVURJVFMgQU5EIFJFR1VMQVRPUlkgSU5TUEVDVElPTlMKCkFVRElUWSBBIEtPTlRST0xOw40gSU5TUEVLQ0UKCiAKCjQuMS4KCkluc3RpdHV0aW9uIGFuZCBJbnZlc3RpZ2F0b3Igc2hhbGwgRnVsbHkgQ29vcGVyYXRlCndpdGggYXVkaXRzIG9yIGluc3BlY3Rpb25zLCBhcHBsaWNhYmxlIHRvIHRoZSBTdHVkeSwKcGVyZm9ybWVkIGR1cmluZyBvciBhZnRlciBjb21wbGV0aW9uIG9mIHRoZSBTdHVkeSwgYnkKU1BPTlNPUiBvciBDUk8uIEluc3RpdHV0aW9uIGFuZCBJbnZlc3RpZ2F0b3Igc2hhbGwKYWxsb3cgU1BPTlNPUiwgQ1JPIGFuZCBnb3Zlcm5tZW50YWwgb3IKcmVndWxhdG9yeSBhdXRob3JpdGllcywgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byB0aGUKVS5TLiBGb29kIGFuZCBEcnVnIEFkbWluaXN0cmF0aW9uLCBhY2Nlc3MgdG8KUmVzb3VyY2VzIHVzZWQgdG8gcGVyZm9ybSB0YXNrcyByZWxhdGVkIHRvIHRoZSBTdHVkeSwKc2hhbGwgbWFrZSBhbGwgcmVxdWVzdGVkIGRvY3VtZW50cyBhdmFpbGFibGUgdG8gdGhlbQphbmQgc2hhbGwgcHJvdmlkZSB0aGVtIHdpdGggYW55IGZ1cnRoZXIgSW5mb3JtYXRpb24KYXMgbWF5IGJlIHJlcXVlc3RlZC4KCjQuMS4KClpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gYVprb3XFoWVqw61jw60gYnVkb3UgcGxuxJsKc3BvbHVwcmFjb3ZhdCBwxZlpIGF1ZGl0ZWNoIMSNaSBpbnNwZWtjcidjaCwga3RlcmUnIHNlCnTDvWthasOtIHN0dWRpZSwgcHJvdsOhZMSbbsO9Y2ggYsSbaGVtIHN0dWRpZSBuZWJvIHBvCmplasOtbSBkb2tvbsSNZW7DrSB6ZSBzdHJhbnkgWkFEQVZBVEVMRSBuZWJvCkNSTy4gWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBhWmtvdcWhZWrDrWPDrSB1bW/Fvm7DrQpaQURBVkFURUxJLCBDUk8gJiB2bMOhZG7DrW0gbmVibyByZWd1bGHEjW7DrW0Kb3Jnw6Fuxa9tLCBtaW1vIGppbsOpIFbEjWV0bsSbIGFtZXJpY2tlaG8gw5rFmWFkdSBwcm8Ka29udHJvbHUgcG90cmF2aW4gYWxlJ8SNaVYsIHDFmcOtc3R1cCBrZSB6ZHJvasWvbQp2eXXFvsOtdmFuw71tIGtwcm9WYWTEm27DrSDDumtvbsWvIHZzb3V2aXNsb3N0aSBzZQpzdHVkacOtLCBacMWZw61zdHVwbsOtIGppbSBWxaFlY2hueSBwb8W+YWRvdmFuw6kKZG9rdW1lbnR5ICYgcG9za3l0bm91amltamFrZSdrb2xpIGRhbMWhw60gSW5mb3JtYWNlLAprdGVyw6kgYnVkb3UgdGl0byBwb8W+YWRvdmF0LgoKIAoKNC4yLgoKSW4gdGhlIGV2ZW50IHRoZSBhdWRpdCBvciByZWd1bGF0b3J5IGluc3BlY3Rpb24KaWRlbnRpZmllcyAmIGxhY2sgb2YgY29tcGxpYW5jZSB3aXRoIHRoaXMgQWdyZWVtZW50Cm9uIHRoZSBwYXJ0IG9mIEluc3RpdHV0aW9uIG9yIEludmVzdGlnYXRvciAob3IgZmFpbHVyZSBieQphbnkgU3R1ZHkgUGVyc29ubmVsIHRvIGFjdCBpbiBhY2NvcmRhbmNlIHdpdGggdGhlCnRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoaXMgQWdyZWVtZW50KSwgQ1JPIG1heQp0ZXJtaW5hdGUgdGhpcyBBZ3JlZW1lbnQgaW4gYWNjb3JkYW5jZSB3aXRoIFNlY3Rpb24KMTYuMS5hLgoKNC4yLgoKViBwxZnDrXBhZMSbLCDFvmUgYXVkaXQgbmVibyBpbnNwZWtjZSByZWd1bGHEjW7Fr3JvIG9yZ2FudQp6amlzdMOtIG5lZG9zdGF0a3kgdiBkb2Ryxb5vdsOhbsOtIHTDqXRvIHNtbG91dnkgemUgc3RyYW55CnpkcmF2b3RuaWNrw6lobyB6YcWZw616ZW7DrSBuZWJvIFprb3XFoWVqcidjcidobyAobmVibwpuZWplZG7DoW7DrSB2IHNvdWxhZHUgcyBwb2Rtw61ua2FtaSB0w6l0byBzbWxvdXZ5IHplCnN0cmFueSBuxJtrdGVyw6lobyDEjWxlbmEgcGVyc29uw6FsdSBzdHVkaWUpLCBtxa/FvmUgQ1JPCnR1dG8gc21sb3V2dSB1a29uxI1pdCBWIHNvdWxhZHUgcyBvZGTDrWxlbSAxNi4xLjIxLgoKIAoKNC4zLgoKSW5zdGl0dXRpb24gYW5kIEludmVzdGlnYXRvciBzaGFsbCBpbW1lZGlhdGVseSBub3RpZnkKQ1JPIGJ5IHRlbGVwaG9uZSwgZW1haWwgb3IgZmF4IGlmICYgZ292ZXJubWVudGFsIG9yCnJlZ3VsYXRvcnkgYXV0aG9yaXR5LCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHRoZQpTdGF0ZSBJbnN0aXR1dGUgZm9yIERydWcgQ29udHJvbCAoU8OaS0wpLCByZXF1ZXN0cyB0bwpjYXJyeSBvdXQgYW4gaW5zcGVjdGlvbiBvZiBJbnN0aXR1dGlvcsWlcyBmYWNpbGl0aWVzLCBvcgpkb2VzIHNvLiBJbnN0aXR1dGlvbiBhbmQgSW52ZXN0aWdhdG9yIHNoYWxsIGFsbG93ClNQT05TT1IgYW5kIENSTyB0byBiZSBwcmVzZW50IGR1cmluZyBzdWNoCmluc3BlY3Rpb24sIGFuZCBzaGFsbCBwcm92aWRlIHRvIFNQT05TT1IgYW5kIENSTwpjb3BpZXMgb2YgYWxsIG1hdGVyaWFscywgY29ycmVzcG9uZGVuY2UsIFN0YXRlbWVudHMsCmZvcm1zIGFuZCByZWNvcmRzIHRoYXQgSW5zdGl0dXRpb24gYW5kIEludmVzdGlnYXRvcgpyZWNlaXZlcywgb2J0YWlucyBvciBnZW5lcmF0ZXMgcHVyc3VhbnQgdG8gb3IgaW4KY29ubmVjdGlvbiB3aXRoIGFueSBzdWNoIGluc3BlY3Rpb24uCgo0LjMuCgpaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIGEgemtvdcWhZWrDrWPDrSBuZXByb2RsZW7Emwp0ZWxlZm9uaWNreSwgZWxla3Ryb25pY2tvdSBwb8WhdG91IG5lYm8gZmF4ZW0gb3puw6Ftw60KQ1JPLCBwb2t1ZCBidWRlIHN0YXRuw60gbmVibyByZWd1bGHEjW7DrSBvcmdhbiwgbWltbwpqaW7DqSBWxI1ldG7EmyBTdGF0bsWvcm8gw7rFmWFkdSBwcm8ga29udHJvbHUgbMOpxI1pdiwKCnBvxb5hZG92YXQgcHJvdmVkZW7DrSBrb250cm9seSBWIHByb3N0b3LDoWNoCnpkcmF2b3RuaWNrw6lobyB6YcWZw616ZW7DrSwgcMWZw61wYWRuxJsgdGFrIHXEjWluw60uClpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gYSB6a291xaFlasOtY8OtIHVtb8W+bsOtCgpwxZnDrXRvbW5vc3QgWkFEQVZBVEVMRSBhIENSTyBixJtoZW0gdGFrb3ZlJwprb250cm9seSAmIHBvc2t5dG5vdSBaQURBVkFURUxJICYgQ1JPIGtvcGllCnZlxaFrZXLDvWNoIG1hdGVyacOhbMWvLCBrb3Jlc3BvbmRlbmNlLCBwcm9obMOhxaFlbsOtLApmb3JtdWzDocWZxa8gYXphem5hbcWvLCBrdGVyZScgWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrQomIHprb3XFoWVqw61jw60gb2JkcsW+w60sIHrDrXNrYWrDrSBuZWJvIHZ5dHZvxZnDrSBuYSB6w6FrbGFkxJsKbmVibyB2IHNvdXZpc2xvc3RpIHMgamFrb3Vrb2xpIHRha292b3Uga29udHJvbG91LgoKIAoKRklOQU5DSUFMIERJU0NMT1NVUkUKClpWRcWYRUpOxJpOw40gRklOQU7EjE7DjUNIIElORk9STUFDw40KCiAKCiAKCjUuMS4KCkR1cmluZyB0aGUgY29uZHVjdCBvZiB0aGUgU3R1ZHkgYW5kIGZvciBvbmUgKDEpIHllYXIKYWZ0ZXIgaXRzIGNvbXBsZXRpb24sIEludmVzdGlnYXRvciBzaGFsbCwgYW5kCkludmVzdGlnYXRvciBzaGFsbCBjYXVzZSB0aGUgU3Vi4oCUSW52ZXN0aWdhdG9yKHMpIGlmCmFwcGxpY2FibGUsIGFuZCBTdHVkeSBQZXJzb25uZWwsIHRvLCBleGVjdXRlIGFuZAp1cGRhdGUgc3VjaCBmb3JtcywgZGlzY2xvc3VyZXMgYW5kIGNlcnRpxYhjYXRpb25zIG5vdwpvciBzdWJzZXF1ZW50bHkgcmVxdWlyZWQgYnkgU1BPTlNPUiBvciBhbnkKCiAKCjUuMS4KClYgcHLFr2LEm2h1IHByb3bDoWTEm27DrSBzdHVkaWUgYSBwbyBkb2J1IGplZG5vaG8gKDEpCnJva3UgcG8gamVqw61tIGRva29uxI1lbsOtIGJ1ZGUgemtvdcWhZWrDrWPDrSAoYSB6a291xaFlasOtY8OtCnphamlzdMOtLCBhYnkgdGFrIHBvc3R1cG92YWxpIGlzcG9sdXprb3XFoWVqcidjcicsIGRsZQpzaXR1YWNlLCBhcGVyc29uYWwgc3R1ZGllKSB2eXR2w6HFmWV0IGFha3R1YWxpem92YXQKZm9ybXVsw6HFmWUsIFbDvWthenkgYSBvc3bEm2TEjWVuw60sIGt0ZXLDqSBidWRlClpBREFWQVRFTCBuZWJvIGpha8O9a29saSBwxZnDrXNsdcWhbsO9IHJlZ3VsYcSNbsOtCgogCgoyODQ2NDFfMTQwNC0wMDQ0X0NaRV9DWkU0X0lOU1QgUEkgQ1NBIF8gQmlsaW5ndWFsXzIwMjUwNDA5XzEuMApTdHJhbmEgNyB6IDY1CgogCgogCgphcHBsaWNhYmxlIHJlZ3VsYXRvcnkgYm9kaWVzIHJlbGF0ZWQgdG8gaGlzL2hlcgpmaW5hbmNpYWwgaW50ZXJlc3RzIGluIHRoZSBTUE9OU09SIGFuZC9vciB0aGUgU3R1ZHkKRHJ1Zy4KCm9yZ2FuIHBvxb5hZG92YXQgViBkYW7DqW0gb2thbcW+aWt1IG5lYm8gbsOhc2xlZG7EmywKdiBzb3V2aXNsb3N0aSBzIGplamljaCBmaW5hbsSNbsOtbSB6w6FqbWVtCigpIFpBREFWQVRFTEUgYS9uZWJvIEhvZG5vY2Vuw70gcMWZw61wcmF2ZWsuCgogCgpDT05GSURFTlRJQUwgSU5GT1JNQVRJT04KCkTDmlbEmlJOw4kgSU5GT1JNQUNFCgogCgo2LjEuCgpJbnN0aXR1dGlvbiBhbmQgSW52ZXN0aWdhdG9yIGFncmVlIHRoYXQgYW55IGFuZCBhbGwKQ29uxYhkZW50aWFsIEluZm9ybWF0aW9uIHRoYXQgdGhleSByZWNlaXZlIGZyb20gQ1JPLApTUE9OU09SIG9yIG90aGVyd2lzZSBpbiBjb25uZWN0aW9uIHdpdGggdGhpcwpBZ3JlZW1lbnQgc2hhbGwgYmUgcmVjZWl2ZWQgYW5kIG1haW50YWluZWQgYnkgdGhlbQppbiBzdHJpY3QgY29uZmlkZW5jZSBhbmQgbm90IGRpc2Nsb3NlZCB0byBhbnkgdGhpcmQKcGFydHkgKG90aGVyIHRoYW4gU1BPTlNPUikgZHVyaW5nIHRoZSBjb25kdWN0IG9mCnRoZSBTdHVkeSBhbmQgZm9yIGZsZnRlZW4gKDE1KSB5ZWFycyB0aGVyZWFmdGVyLgpGdXJ0aGVybW9yZSwgSW5zdGl0dXRpb24gYW5kIEludmVzdGlnYXRvciBhZ3JlZSB0byB1c2UKdGhlIENvbsWIZGVudGlhbCBJbmZvcm1hdGlvbiBvbmx5IGZvciB0aGUgcHVycG9zZXMgb2YKdGhpcyBBZ3JlZW1lbnQgZXhjZXB0IGFzIG90aGVyd2lzZSBzcGVjacWIY2FsbHkKcHJvdmlkZWQgZm9yIGhlcmVpbi4KCjYuMS4KClpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gYSB6a291xaFlasOtY8OtIHNvdWhsYXPDrSwgxb5lCmpha8Opa29saSAmIHZlxaFrZXLDqSBkxa9WxJttZScgaW5mb3JtYWNlLCBrdGVyw6kgb2JkcsW+w60gb2QKQ1JPLCBaQURBVkFURUxFIG5lYm8gamluw71tIFpwxa9zb2JlbQp2IHNvdXZpc2xvc3RpIHMgdG91dG8gc21sb3V2b3UsIGJ1ZG91IHDFmWlqw61tYXQKJiB1Y2hvVmF2YXQgcMWZw61zbsSbIGTFr3bEm3JuxJsgYSBuZXDFmWVkYWrDrSBqZSDFvmFkbmUnIHTFmWV0w60Kc3RyYW7EmyAocyBWw71qaW1rb3UgWkFEQVZBVEVMRSksIGF0byBixJtoZW0KcHJvdsOhZMSbbsOtIHTDqXRvIHN0dWRpZSBhIHBvIGRvYnUgcGF0bsOhY3RpICgxNSkgbGV0IHBvCmplasOtbSBza29uxI1lbsOtLiBEYWxlIFpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60KJiB6a291xaFlasOtY8OtIHNvdWhsYXPDrSBzIHTDrW0sIMW+ZSBidWRvdSBwb3XFvsOtdmF0CmTFr1bEm21lJyBpbmZvcm1hY2UgcG91emUgcHJvIMO6xI1lbHkgdMOpdG8gc21sb3V2eSwKcG9rdWQgbmVidWRlIGtvbmtyZXRuxJsgdXZlZGVubyBqaW5hay4KCiAKCjYuMi4KCkluc3RpdHV0aW9uIGFuZCBJbnZlc3RpZ2F0b3IgbWF5IGRpc2Nsb3NlIENvbsWIZGVudGlhbApJbmZvcm1hdGlvbiBvbmx5IHRvIChpKSBTdHVkeSBQZXJzb25uZWwsIG9yIG90aGVyCmVtcGxveWVlcyBvciBzdGFmZiB3aG8gcmVxdWlyZSBhY2Nlc3MgdGhlcmV0byBmb3IgdGhlCnB1cnBvc2VzIG9mIGZ1bMWIbGxpbmcgdGhpcyBBZ3JlZW1lbnQgcHJvdmlkZWQsCmhvd2V2ZXIsIHRoYXQgcHJpb3IgdG8gbWFraW5nIGFueSBzdWNoIGRpc2Nsb3N1cmVzCkluc3RpdHV0aW9uIGFuZC9vciBJbnZlc3RpZ2F0b3IgYmluZCBzdWNoIFN0dWR5ClBlcnNvbm5lbCwgZW1wbG95ZWVzIG9yIHN0YWZmIHRvIHVzZSBkaWxpZ2VudCBlZmZvcnRzCnRvIG1haW50YWluIHRoZSBzYW1lIG9ibGlnYXRpb25zIGFzIGFyZSBjb250YWluZWQKaGVyZWluIHRvIG1haW50YWluIENvbsWIZGVudGlhbCBJbmZvcm1hdGlvbiBpbgpjb25maWRlbmNlIGFuZCBub3QgdG8gdXNlIHN1Y2ggQ29uxYhkZW50aWFsCkluZm9ybWF0aW9uIGZvciBhbnkgcHVycG9zZSBvdGhlciB0aGFuIGluIGFjY29yZGFuY2UKd2l0aCB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGFuZCAoaWkpIHRvIHRoZQphcHByb3ByaWF0ZSBFQyBoYXZpbmcganVyaXNkaWN0aW9uIG92ZXIgdGhlCnBlcmZvcm1hbmNlIG9mIHRoZSBTdHVkeSBhdCBJbnN0aXR1dGlvbi4KCjYuMi4KClpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gYSB6a291xaFlasOtY8OtIG1vaG91IHNkxJtsaXQKZMWvVsSbbWUnIGluZm9ybWFjZSBwb3V6ZSAoaSkgcGVyc29uw6FsdSBzdHVkaWUgbmVibwpqaW7DvW0gemFtxJtzdG5hbmPFr20gxI1pIHBlcnNvbsOhbHUsIGt0ZXLDvSBrIG5pbSBtdXPDrQptw610IHDFmcOtc3R1cCBwcm8gw7rEjWVseSBuYXBsbsSbbsOtIHTDqXRvIHNtbG91dnksIGFWxaFhayB6YQpwxZllZHBva2xhZHUsIMW+ZSBwxZllZCBqYWvDvW1rb2xpIHRha292w71tClpwxZnDrXN0dXBuxJtuw61tIHphVmHFvmUgWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBhL25lYm8KemtvdcWhZWrDrWPDrSB0ZW50byBwZXJzb25hbCBzdHVkaWUsIHphbcSbc3RuYW5jZSDEjWkKcGVyc29uw6FsIGsgdnluYWxvxb5lbsOtIG5lemJ5dG7DqWhvIMO6c2lsw60gcHJvIHphY2hvdsOhbsOtCnN0ZWpuw71jaCB6w6F2YXprxa8sIGt0ZXLDqSBvYnNhaHVqZSB0ZW50byBkb2t1bWVudCwgYWJ5CmJ5bGEgemFjaG92w6FuYSBkxa92xJtybm9zdCBkxa9WxJtybsO9Y2ggaW5mb3JtYWPDrSBhIGFieQpuZWJ5bHkgcG91xb5pdHkgdHl0byBkxa9WxJttZScgaW5mb3JtYWNlIHBybyDFvmFkbsO9amluw70Kw7rEjWVsLCBuZcW+IGt0ZXLDvSBqZSBWIHNvdWxhZHUgcyBwb2Rtw61ua2FtaSB0w6l0bwpzbWxvdXZ5IGEoaWkpIHDFmcOtc2x1xaFuw6kgRUssIGt0ZXLDoSBtw6EgcHJhdm9tb2MKcm96aG9kb3ZhdCBvIHByb3bDoWTEm27DrSBzdHVkaWUgdmUgemRyYXZvdG5pY2vDqW0KemHFmcOtemVuw60uCgogCgo2LjMuCgpUaGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGluY2x1ZGluZyBidXQgbm90CmxpbWl0ZWQgdG8gdGhlIGZpbmFuY2lhbCB0ZXJtcywgYXJlIHRoZSBDb27FiGRlbnRpYWwKSW5mb3JtYXRpb24gb2YgU1BPTlNPUiBhbmQgQ1JPLCBhbmQgc2hhbGwgYmUKbWFpbnRhaW5lZCBpbiBjb25maWRlbmNlIGJ5IEluc3RpdHV0aW9uIGFuZApJbnZlc3RpZ2F0b3IgaW4gYWNjb3JkYW5jZSB3aXRoIHRoaXMgU2VjdGlvbi4gSWYsCmhvd2V2ZXIsIEluc3RpdHV0aW9uIG9yIEludmVzdGlnYXRvciBpcyByZXF1aXJlZCBieQpBcHBsaWNhYmxlIExhdyB0byBkaXNjbG9zZSBzdWNoIENvbmZpZGVudGlhbApJbmZvcm1hdGlvbiwgdGhleSBtYXkgZG8gc28gd2l0aG91dCBicmVhY2hpbmcgdGhlaXIKb2JsaWdhdGlvbnMgdW5kZXIgdGhpcyBTZWN0aW9uIHByb3ZpZGVkLCBpbiBhZHZhbmNlIG9mCmRpc2Nsb3N1cmUsIHRoZXkgbm90aWZ5IENSTyBvZiB0aGUgQ29uZmlkZW50aWFsCkluZm9ybWF0aW9uIHRvIGJlIGRpc2Nsb3NlZCwgdGhlIHJlYXNvbiBmb3IgZGlzY2xvc3VyZSwKYW5kIHRoZSBkYXRlIG9mIGRpc2Nsb3N1cmUsCgo2LjMuCgpQb2Rtw61ua3kgdMOpdG8gc21sb3V2eSwgbWltbyBqaW7DqSBWxI1ldG7EmyBmaW5hbsSNbsOtY2gKdWplZG7DoW7DrSwganNvdSBkxa92xJtybsO9bWkgaW5mb3JtYWNlbWkKWkFEQVZBVEVMRSAmIENSTyAmIFpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60KYXprb3XFoWVqcidjcicgb25pY2ggYnVkb3UgemFjaG92w6F2YXQgbWzEjWVubGl2b3N0CnYgc291bGFkdSBzIHTDrW10byBvZGTDrWxlbS4gUG9rdWQgVsWhYWsgbmEgesOha2xhZMSbCnDFmcOtc2x1xaFuw6lobyBaw6Frb25hIGJ1ZGUgb2QgemRyYXZvdG5pY2vDqWhvIHphxZnDrXplbsOtCm5lYm8gWmtvdcWhZWpyJ2PFr3JvIHBvxb5hZG9WYW5vIHp2ZcWZZWpuxJtuw60gdMSbY2h0bwpkxa9WxJttw71jaCBpbmZvcm1hY8OtLCBtb2hvdSB0YWsgdcSNaW5pdCBiZVogcG9ydcWhZW7DrQpzdsO9Y2ggesOhdmF6a8WvIHBvZGxlIHRvaG90byBvZGTDrWx1LCBwb2t1ZApzIHDFmWVkc3RpaGVtIHDFmWVkIHp2ZcWZZWpuxJtuw61tIG96bsOhbcOtIENSTywga3RlcmUKZMWvVsSbbWUnIGluZm9ybWFjZSBtYWrDrSBiw710IHp2ZcWZZWpuxJtueSwgZMWvdm9kCnp2ZcWZZWpuxJtuw60gYSBkYXR1bSB6dmXFmWVqbsSbbsOtLgoKIAoKNi40LgoKIAoKTm90aGluZyBjb250YWluZWQgaGVyZWluIHdpbGwgaW4gYW55IHdheSByZXN0cmljdCBvcgppcm5wYWlyIGFueSBQYXJ0eSxzIHJpZ2h0IHRvIHVzZSwgZGlzY2xvc2UsIG9yIG90aGVyd2lzZQpkZWFsIHdpdGggYW55IENvbsWIZGVudGlhbCBJbmZvcm1hdGlvbiB3aGljaCBhdCB0aGUKdGltZSBvZiBpdHMgcmVjZWlwdDoKCiAKCjYuNC4KClrDoWRuZScgdXN0YW5vdmVuw60gdMOpdG8gc21sb3V2eSDFvsOhZG7DvW0gWnDFr3NvYmVtCm5lb21lesOtIGFuaSBuZXpob3LFocOtIHByYXZvIGpha2Vrb2xpIHNtbHV2bsOtIHN0cmFueQoKbmEgcG91xb7DrXbDoW7DrSwgcMWZZWTDoXbDoW7DrSBuZWJvIGppbsOpIG5ha2zDoWTDoW7DrQpzamFrw71ybmlrb2xpIGTFr3bEm3Juw71taSBpbmZvcm1hY2VtaSwga3RlcsOpCgp2IG9rYW3FvmlrdSBqZWppY2ggcMWZaWpldMOtOgoKIAoKMjg0NjQxXzE0MDQtT080NF9DWkVfQ1pFNF9JTlNUIFBJIENTQSBfIEJpbGluZ3VhbF8yMDI1MDQwOV8xLjAKU3RyYW5hIDggeiA2NQoKIAoKIAoKMy4gaXMgZ2VuZXJhbGx5IGF2YWlsYWJsZSBpbiB0aGUgcHVibGljIGRvbWFpbiBvcgpiZWNvbWVzIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIHRocm91Z2ggbm8gYWN0IG9mCnRoZSBQYXJ0eSByZWNlaXZpbmcgc2FpZCBDb25maWRlbnRpYWwKSW5mb3JtYXRpb247IG9yCgphLiBqc291IG9iZWNuxJsgcMWZw61zdHVwbsOpIHZlxZllam5vc3RpIG5lYm8ganNvdQp6dmXFmWVqbsSbbnkgbWltbyBrb25hbsOtIHNtbHV2bsOtIHN0cmFueSwga3RlcsOhCnR5dG8gZMWvdsSbcm7DqSBpbmZvcm1hY2Ugb2JkcsW+w607IG5lYm8KCiAKCmIuIGlzIGluZGVwZW5kZW50bHkga25vd24gYnkgdGhlIFBhcnR5IHJlY2VpdmluZwp0aGUgQ29uZmxkZW50aWFsIEluZm9ybWF0aW9uLCBwcmlvciB0byByZWNlaXB0CnRoZXJlb2YsIHdoaWNoIHNhaWQgUGFydHkgY2FuIGRlbW9uc3RyYXRlIGJ5CmRvY3VtZW50ZWQgcHJvb2Y7IG9yCgpiLiBqc291IG5lemF2aXNsZSB6bmFteSBzbWx1dm7DrSBzdHJhbsSbLCBrdGVyYQpkxa92xJtybsOpIGluZm9ybWFjZSBwxZlpasOtbcOhLCBhdG8gcMWZZWQgamVqaWNoCnDFmWlqZXTDrW0sIGNvxb4gbcWvxb5lIGRhbmEgc21sdXZuw60gc3RyYW5hIHByb2vDoXphdApkb2t1bWVudG92YW7DvW0gZMWva2F6ZW07IG5lYm8KCiAKCmMuIGlzIGxhd2Z1bGx5IGdpdmVuIHRvIHRoZSByZWNlaXZpbmcgUGFydHkgYnkgJiB0aGlyZApwYXJ0eSB3aG8gaXMgbm90IGJvdW5kIGJ5IGFueSBvYmxpZ2F0aW9uIHRvCnByZXNlcnZlIGl0IGFzIGNvbmZpZGVudGlhbC4KCmMuIGpzb3UgcMWZaWrDrW1hasOtY8OtIHNtbHV2bsOtIHN0cmFuxJsgesOha29ubsO9bQpacMWvc29iZW0gcMWZZWTDoW55IHTFmWV0w60gc3RyYW5vdSwga3RlcsOhIG5lbsOtClZhemFuYSDFvsOhZG7DvW0gesOhdmF6a2VtIHphY2hvdmFuw60gZMWvdsSbcm5vc3RpLgoKIAoKIAoKIAoKIAoKIAoKIAoKIAoKNy4gUklHSFRTIFRPIElORk9STUFUSU9OIEFORCA3LiBQUsOBVkEgTkEgSU5GT1JNQUNFIEEgSE9ETk9DRU7DnQpJTlZFU1RJR0FUSU9OQUwgUFJPRFVDVCBQUsONUFJBVkVLCgo3LjEuIEFsbCBJbmZvcm1hdGlvbiBhbmQgSW52ZXN0aWdhdGlvbmFsIFByb2R1Y3QocykgNy4xLiBWZcWha2Vyw6kgaW5mb3JtYWNlIGFob2Rub2NlbsO9IHDFmcOtcHJhdmVrLwpwcm92aWRlZCB0byBJbnN0aXR1dGlvbiBvciBJbnZlc3RpZ2F0b3IgZm9yIHB1cnBvc2VzIG9mIGhvZG5vY2Vuw6kgcMWZw61wcmF2a3ksIGt0ZXJlIFpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60KdGhlIFN0dWR5IGFyZSBhbmQgd2lsbCByZW1haW4gU1BPTlNPUidTIHByb3BlcnR5LiBuZWJvIHprb3XFoWVqw61jw60gb2JkcsW+w60gcHJvIMO6xI1lbHkgdMOpdG8gc3R1ZGllLCBqc291Ckluc3RpdHV0aW9uLCBJbnZlc3RpZ2F0b3IsIChhbmQgU3R1ZHkgUGVyc29ubmVsKSBzaGFsbCAmIHrFr3N0YW5vdSB2bGFzdG5pY3R2w61tIFpBREFWQVRFTEUuCm5vdCBhY3F1aXJlIGFueSByaWdodHMgb2YgYW55IGtpbmQgd2hhdHNvZXZlciB3aXRoIFpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60sIHprb3XFoWVqw61jw60gKGEgcGVyc29uw6FsIHN0dWRpZSkKcmVzcGVjdCB0byB0aGUgSW52ZXN0aWdhdGlvbmFsIFByb2R1Y3Qocykgb3Igc3VjaCBuZXrDrXNrYWrDrSBuYXByb3N0byDFvsOhZG7DoSBwcsOhdmEgdmUgdnp0YWh1CkluZm9ybWF0aW9uIGFzIGEgcmVzdWx0IG9mIHBlcmZvcm1hbmNlIHVuZGVyIHRoaXMga2hvZG5vY2VuZSdtdSBwxZnDrXByYXZrdSBuZWJvIGhvZG5vY2Vuw71tCkFncmVlbWVudG9yIG90aGVyd2lzZS4gcMWZw61wcmF2a8WvbSBuZWJvIGt0YWtvdsO9bSBpbmZvcm1hY8OtbSwga3RlcsOpCgp2em5pa25vdSB2IGTFr3NsZWRrdSBwbG7Em27DrSBwb2RsZSB0w6l0byBzbWxvdXZ5IG5lYm8Kamluw71tIFpwxa9zb2JlbS4KCjcuMi4gSW5zdGl0dXRpb24gYW5kIEludmVzdGlnYXRvciBzaGFsbCBkZWxpdmVyIGFsbCA3LjIuIFpkcmF2b3RuaWNrw6kgemHFmcOtemVuw61hemtvdcWhZWpyJ2NyJ2J1ZG91IFbEjWFzIGLEm2hlbQpJbmZvcm1hdGlvbiwgdW51c2VkIEludmVzdGlnYXRpb25hbCBQcm9kdWN0KHMpIGFuZCBwcm92w6FkxJtuw60gc3R1ZGllIHDFmWVkw6F2YXQgdmXFoWtlcsOpIGluZm9ybWFjZSwKY2xpbmljYWwgc3BlY2ltZW5zIHRvIFNQT05TT1IsIENSTyBvciB0aGVpciBuZXBvdcW+aXTDvSBob2Rub2NlbsO9IHDFmcOtcHJhdmVrIG5lYm8gaG9kbm9jZW7DqQpyZXNwZWN0aXZlIGRlc2lnbmVlKHMpIGluICYgdGltZWx5IG1hbm5lciB0aHJvdWdob3V0IHDFmcOtcHJhdmt5IGEga2xpbmlja8OpIHZ6b3JreSBaQURBVkFURUxJLCBDUk8KdGhlIHBlcmZvcm1hbmNlIG9mIHRoZSBTdHVkeSwgYXMgcHJvdmlkZWQgaW4gdGhlIG5lYm8gamVqaWNoIHDFmcOtc2x1xaFuw71tIHBvdsSbxZllbsO9bSBvc29iYW0sIGphayBqZQpQcm90b2NvbCBvciBTdHVkeSBJbnN0cnVjdGlvbnMsIGFuZCBpbiBubyBldmVudCBsYXRlciB1dmVkZW5vIHYgcHJvdG9rb2x1IG5lYm8gcG9reW5lY2gga2Ugc3R1ZGlpLAp0aGFuIHRlbiAoMTApIGJ1c2luZXNzIGRheXMgYWZ0ZXIgKGkpIHRoZSBkYXRlIG9mIHZrYcW+ZGVybiBwxZnDrXBhZMSbIG5lanBvemTEm2ppIGRlc2V0ICgxMCkgcHJhY292bsOtY2gKdGVybWluYXRpb24gb2YgdGhpcyBBZ3JlZW1lbnQgb3IgKGlpKSB0aGUgZGF0ZSBvbiBkbsOtIHBvIChpKSBkYXR1IHZ5cG92xJt6ZW7DrSB0w6l0byBzbWxvdXZ5IG5lYm8gKGlpKQp3aGljaCBTUE9OU09SIG9yIENSTyBvdGhlcndpc2UgcmVxdWVzdHMgZGF0dSwga2Uga3RlcsOpbXUgWkFEQVZBVEVMIG5lYm8gQ1JPIGppbsO9bQpkZWxpdmVyeSBvZiBJbmZvcm1hdGlvbiwgdW51c2VkIEludmVzdGlnYXRpb25hbCBacMWvc29iZW0gcG/FvsOhZGFqw60gbyBkb3J1xI1lbsOtIGluZm9ybWFjw60sClByb2R1Y3QocykgYW5kIGNsaW5pY2FsIHNwZWNpbWVucy4gbmVwb3XFvml0w6lobyBob2Rub2NlbmUnaG8gcMWZw61wcmF2a3UgbmVibwoKaG9kbm9jZW7DvWNoIHDFmcOtcHJhdmvFryBhIGtsaW5pY2vDvWNoIHZ6b3Jrxa8uCgo3LjMuIFRoZSBJbmZvcm1hdGlvbiBhbmQgU3R1ZHkgUmVzdWx0cyAoaW5jbHVkaW5nIDcuMy4gSW5mb3JtYWNlYVbDvXNsZWRreSBzdHVkaWUgKFbEjWV0bsSbIHB1Ymxpa2FjZSltxa/FvmUKcHVibGljYXRpb24pIG1heSBiZSB1c2VkIGJ5IFNQT05TT1IgaW4gYW55IFpBREFWQVRFTCBwb3XFvsOtdCBqYWvDvW1rb2xpIFpwxa9zb2JlbSwga3RlcsO9Cm1hbm5lciBpdCBkZWVtcyBhcHByb3ByaWF0ZSB0byBjb21wbHkgd2l0aCBpdHMgcG92YcW+dWplIHphIFZob2Ruw70gYWt0ZXLDvSBidWRlIHZ5aG92b3ZhdCBqZWhvCmJ1c2luZXNzIGludGVyZXN0cywgYm90aCBkdXJpbmcsIGFuZCBmb2xsb3dpbmcgb2JjaG9kbsOtbSBaw6FqbcWvbSxhdG8gamFrYsSbaGVtIHTDqXRvIHNtbG91dnksIHRhawp0ZXJtaW5hdGlvbiBvZiwgdGhpcyBBZ3JlZW1lbnQuIGkgcG8gamVqw61tIHVrb27EjWVuw60uCgo3LjQgVXNlIG9mIG90aGVyIEVxdWlwbWVudC4gSWYgdGhlIFNwb25zb3Igb3IgaXRzIDcuNC4gUG91xb5pdMOtIGppbsOpaG8gdnliYXZlbsOtLiBQb2t1ZCB6YWRhdmF0ZWwgbmVibyBqw61tCgpkZXNpZ25lZSwgYXMgYXBwbGljYWJsZSBwcm92aWRlcyB0aGUgSW5zdGl0dXRpb24gYW5kL29yCkludmVzdGlnYXRvciBXaXRoIGFueSBvdGhlciBlcXVpcG1lbnQgKOKAnEVxdWlwbWVuIOKAnCkKZm9yIHVzZSBpbiBjb25uZWN0aW9uIHdpdGggcGVyZm9ybWFuY2Ugb2Ygc2VydmljZXMgaW4KdGhlIFRyaWFsLCB0aGUgSW5zdGl0dXRpb24gYW5kL29yIEludmVzdGlnYXRvciB3aWxsCmRvY3VtZW50IHRoZSBFcXVpcG1lbnQgaW4gdGhlIOKAnEVxdWlwbWVudCBMb2FuZWQKCiAKCnBvdsSbxZllbmEgb3NvYmEgemFwxa9qIMSNw60gWmRyYXZvdG5pY2tlJ211IHphxZnDrXplbsOtCmEvbmVibyB6a291xaFlasOtY8OtbXUgamFrw6lrb2xpIGppbsOpIHZ5YmF2ZW7DrSAoZMOhbGUgamVuCuKAnlZ5YmF2ZW5yJ+KAnCkgcHJvIHBvdcW+aXTDrSBWIHNvdXZpc2xvc3RpIHMgcG9za3l0b3bDoW7DrW0Kc2x1xb5lYiBWIGtsaW5pY2vDqW0gaG9kbm9jZW7DrSwgWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrQphL25lYm8gemtvdcWhZWrDrWPDrSB6ZG9rdW1lbnR1asOtIHZ5YmF2ZW7DrQoKIAoKMjg0NjQxXzE0MDQtMDA0NF9DWkVfQ1pFNF9JTlNUIFBJIENTQSBfIEJpbGluZ3VhbF8yMDI1MDQwOV8xLjAKU3RyYW5hIDkgeiA2NQoKIAoKIAoKTG9n4oCcIG9mIHRoZSBJU0YgYW5kIGNvbXBseSBXaXRoIHRoZSB0ZXJtcyBhbmQKY29uZGl0aW9ucyBzZXQgZm9ydGggaW4gRXhoaWJpdCBDLiBJbiB0aGUgZXZlbnQgdGhlCkVxdWlwbWVudCBpcyAmIG1lZGljYWwgZGV2aWNlLCB0aGUgUGFydGllcwphY2tub3dsZWRnZSBhbmQgYWdyZWUgdGhhdCAmIHNlcGFyYXRlIGFncmVlbWVudCB3aWxsCmJlIGNvbmNsdWRlZCByZWdhcmRpbmcgdGhlIHRlcm1zIG9mIHRoZSBsb2FuLgoKdiDigJ5wcm90b2tvbHUgbyB6YXDFr2rEjWVuw60gdnliYXZlbsOt4oCcIFYgSVNGLCBwxZlpxI1lbcW+CmRvZHLFvsOtIHBvZG3DrW5reSB1dmVkZW5lIFYgUMWZw61sb3plIEMuIFYgcMWZw61wYWTEmywgxb5lCnZ5YmF2ZW7DrW0gYnVkZSBaZHJhdm90bmlja8O9IHByb3N0xZllZGVrLCBzdHJhbnkKYmVyb3UgbmEgVsSbZG9tw60gYSBzb3VobGFzw60sIMW+ZSBvIHBvZG3DrW5rw6FjaApWw71wxa9qxI1reSBidWRlIHV6YXbFmWVuYSBzZXBhcsOhdG7DrSBzbWxvdXZhLgoKIAoKUFVCTElDSVRZCgpQUk9QQUdBQ0UKCiAKCjguMS4KClRoZSBQYXJ0aWVzIHNoYWxsIG5vdCB1c2UgdGhlIG5hbWUsIHN5bWJvbHMsCnRyYWRlbWFya3Mgb3IgaW1hZ2Ugb2YgYW55IG90aGVyIFBhcnR5IGhlcmV0bywgb3IKU1BPTlNPUsOJIG5hbWUsIHN5bWJvbHMsIHRyYWRlbWFya3Mgb3IgaW1hZ2UsIGluCmNvbm5lY3Rpb24gd2l0aCBhbnkgYWR2ZXJ0aXNpbmcgb3IgcHJvbW90aW9uIG9mIGFueQpwcm9kdWN0IG9yIHNlcnZpY2Ugd2l0aG91dCB0aGUgcHJpb3Igd3JpdHRlbiBjb25zZW50Cm9mIHN1Y2ggUGFydHkgb3IgU1BPTlNPUiwgYXMgYXBwcm9wcmlhdGUuCgo4LjEuCgrFvcOhZG7DoSB6ZSBzdHJhbiB0w6l0byBzbWxvdXZ5IG5lc23DrSBwb3XFvsOtdmF0IG5hemV2LApqbcOpbm8sIHN5bWJvbHksIG9jaHJhbm7DqSB6bsOhbWt5IGFuaSB2eW9icmF6ZW7DrQprdGVyw6lrb2xpIGRhbMWhw60gc3RyYW55IHTDqXRvIHNtbG91dnkgYW5pIHBhdMWZw61jw60KWkFEQVZBVEVMSSB2c291dmlzbG9zdGkgc2pha291a29saSByZWtsYW1vdQpuZWJvIHByb3BhZ2Fjw60gamFrZSdob2tvbGkgVsO9cm9ia3UgbmVibyBzbHXFvmJ5IGJlWgpwxZllZGNob3rDrWhvIHDDrXNlbW7DqWhvIHNvdWhsYXN1IHTDqXRvIHN0cmFueSBuZWJvCnDFmcOtcGFkbsSbIFpBREFWQVRFTEUuCgogCgpQVUJMSUNBVElPTgoKWlZFxZhFSk7Emk7DjSBWw51TTEVES8OaCgogCgo5LjEuCgpJbnN0aXR1dGlvbiBhbmQgSW52ZXN0aWdhdG9yIG1heSBwdWJsaXNoIHRoZSBTdHVkeQpSZXN1bHRzIG9ubHkgaW4gYWNjb3JkYW5jZSB3aXRoIHRoaXMgU2VjdGlvbi4gQmVmb3JlCnN1Ym1pc3Npb24gZm9yIHB1YmxpY2F0aW9uIG9yIHByZXNlbnRhdGlvbiwgSW5zdGl0dXRpb24KYW5kL29yIEludmVzdGlnYXRvciBzaGFsbCBhbGxvdyBTUE9OU09SIG5vdCBsZXNzCnRoYW4gc2l4dHkgKDYwKSBkYXlzIHRvIHJldmlldyBhbnkgbWFudXNjcmlwdCBhbmQgbm90Cmxlc3MgdGhhbiB0aGlydHkgKDMwKSBkYXlzIHRvIHJldmlldyBhbnkgcG9zdGVyCnByZXNlbnRhdGlvbiwgYWJzdHJhY3Qgb3IgYW55IG90aGVyIHdyaXR0ZW4gb3Igb3JhbAptYXRlcmlhbCB3aGljaCBkZXNjcmliZXMgb3IgZGlzY2xvc2VzIHRoZSBTdHVkeQpSZXN1bHRzLiBJZiBTUE9OU09SIG9yIENSTyBzbyByZXF1ZXN0cyBpbiB3cml0aW5nLApJbnN0aXR1dGlvbiBhbmQvb3IgSW52ZXN0aWdhdG9yIHNoYWxsIHdpdGhob2xkIGFueQpwdWJsaWNhdGlvbiBvciBwcmVzZW50YXRpb24gZm9yIGFuIGFkZGl0aW9uYWwgc2l4dHkgKDYwKQpkYXlzLgoKOS4xLgoKWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBhIHprb3XFoWVqw61jw60gbW9ob3UgenZlxZllam5pdAp2w71zbGVka3kgc3R1ZGllIHBvdXplIHZzb3VsYWR1IHN0w61tdG8gb2Rkw61sZW0uClDFmWVkIG9kZXNsw6Fuw61tIGtlIHp2ZcWZZWpuxJtuw60gbmVibyBwcmV6ZW50YWNpIGRhasOtClpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gYS9uZWJvIHprb3XFoWVqw61jw60KWkFEQVZBVEVMSSBuZWptw6luxJsgxaFlZGVzw6F0ICg2MCkgZG7DrQprIHDFmWV6a291bcOhbsOtIGpha2UnaG9rb2xpIHJ1a29waXN1ICYgbmVqbWUnbsSbIHTFmWljZXQKKDMwKSBkbsOtIGtwxZllemtvdW1hbnInIGpha2Vrb2xpIHBsYWvDoXRvdmUnCnByZXplbnRhY2UsIGFic3RyYWt0dSBuZWJvIGppbsOpaG8gcMOtc2VtbmUnaG8gxI1pCsO6c3Ruw61obyBtYXRlcmnDoWx1LCBrdGVyw70gcG9waXN1amUgbmVibyB6dmXFmWVqxYh1amUKdsO9c2xlZGt5IHN0dWRpZS4gUG9rdWQgdG8gYnVkZSBaQURBVkFURUwgbmVibwpDUk8gcMOtc2VtbsSbIHBvxb5hZG92YXQsIFpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60KYS9uZWJvIHprb3XFoWVqw61jw60gcG96ZHLFvsOtIGpha2Vrb2xpIHp2ZcWZZWpuxJtuw60gbmVibwpwcmV6ZW50YWNpICgpIGRhbMWhw61jaCDFoWVkZXPDoXQgKDYwKSBkbsOtLgoKIAoKOS4yLgoKU1BPTlNPUiByZXNlcnZlcyB0aGUgcmlnaHQgdG8gcmVtb3ZlIGFsbApDb25mbGRlbnRpYWwgSW5mb3JtYXRpb24gZnJvbSBhbnkgcHVibGljYXRpb25zIG9yCnByZXNlbnRhdGlvbnMuIEluIHRoZSBldmVudCB0aGF0IFNQT05TT1IgZGVlbXMgdGhhdApzdWNoIHJlbW92YWwgd291bGQgbm90IHN1ZsWIY2llbnRseSBwcm90ZWN0IGl0cwpJbnRlbGxlY3R1YWwgUHJvcGVydHkgUmlnaHRzLCB0aGVuIFNQT05TT1IgbWF5CnJlcXVpcmUgdGhhdCBJbnN0aXR1dGlvbiBhbmQvb3IgSW52ZXN0aWdhdG9yIGRvZXMgbm90CnB1Ymxpc2ggc3VjaCBwdWJsaWNhdGlvbiBvciBwcmVzZW50YXRpb24sIGFuZApJbnZlc3RpZ2F0b3IgYW5kIEluc3RpdHV0aW9uIGFncmVlIG5vdCB0byBwdWJsaXNoIGFueQpzdWNoIHB1YmxpY2F0aW9uIG9yIHByZXNlbnRhdGlvbiBpbiBhbnkgc3VjaCBjYXNlLgoKOS4yLgoKWkFEQVZBVEVMIHNpIHZ5aHJhenVqZSBwcsOhdm8gb2RzdHJhbml0CnogamFrw71jaGtvbGkgcHVibGlrYWPDrSDEjWkgcHJlemVudGFjw60gdmXFoWtlcsOpIGTFr1bEm21lJwppbmZvcm1hY2UuIFYgcMWZw61wYWTEmywgxb5lIFpBREFWQVRFTCBuZWJ1ZGUKdGFrb3ZlJyBvZHN0cmFuxJtuw60gcG92YcW+b3ZhdCB6YSBkb3N0YXRlxI1uZScsIGFieQpvY2hyw6FuaWwgc3bDoSBwcsOhdmEgbmEgZHXFoWV2bsOtIFZsYXN0bmljdHbDrSwKWkFEQVZBVEVMIG3Fr8W+ZSBwb8W+YWRvdmF0LCBhYnkgWmRyYXZvdG5pY2vDqQp6YcWZw616ZW7DrSBhL25lYm8gemtvdcWhZWrDrWPDrSBuZXp2ZcWZZWrFiG92YWxpIHRha292b3UKcHVibGlrYWNpIMSNaSBwcmV6ZW50YWNpLCBhWmtvdcWhZWrDrWPDrSBhemRyYXZvdG5pY2vDqQp6YcWZw616ZW7DrSBzb3VobGFzw60gcyB0w61tLCDFvmUgViDFvsOhZG7DqW0gdGFrb3bDqW0gcMWZw61wYWTEmwrFvsOhZG5vdSB0YWtvdm91IHB1Ymxpa2FjaSBuZWJvIHByZXplbnRhY2kgbmV6dmXFmWVqbnInLgoKIAoKIAoKOS4zLgoKSW5zdGl0dXRpb24gYW5kIEludmVzdGlnYXRvciBhZ3JlZSB0aGF0IGJlY2F1c2UgdGhlClN0dWR5IGlzIHBhcnQgb2YgJiBtdWx0aeKAlGNlbnRlci9tdWx0aeKAlGNlbnRyZSBTdHVkeSwgYW55CnB1YmxpY2F0aW9uIGJ5IEluc3RpdHV0aW9uIG9yIEludmVzdGlnYXRvciBvZiB0aGUgU3R1ZHkKUmVzdWx0cyBzaGFsbCBub3QgYmUgbWFkZSBiZWZvcmUgdGhlIGZpcnN0IG11bHRp4oCUCmNlbnRlci9tdWx0aeKAlGNlbnRyZSBwdWJsaWNhdGlvbi4KCiAKCjkuMy4KClpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gYSB6a291xaFlasOtY8OtIHNvdWhsYXPDrSBzIHTDrW0sIMW+ZQp2emhsZWRlbSBrIHRvbXUsIMW+ZSBqZSBzdHVkaWUgc291xI1hc3TDrSBtdWx0aWNlbnRyaWNrZScKc3R1ZGllLCBuZXNtw60gWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBhbmkgemtvdcWhZWrDrWPDrQpwdWJsaWtvdmF0IMW+YWRuZScgVsO9c2xlZGt5IHN0dWRpZSBwxZllZCBwcnZuw60KbXVsdGljZW50cmlja291IHB1Ymxpa2Fjw60uCgogCgoyODQ2NDFfMTQwNC1PTzQ0X0NaRV9DWkU0X0lOU1QgUEkgQ1NBIF8gQmlsaW5ndWFsXzIwMjUwNDA5XzEuMApTdHJhbmEgMTAgeiA2NQoKIAoKIAoKIAoKIAoKIAoKMTAuIElOVEVMTEVDVFVBTCBQUk9QRVJUWSAxMC4gRFXFoEVWTsONIFZMQVNUTklDVFbDjQoxMC4xLiBBbnkgYW5kIGFsbCBTdHVkeSBSZXN1bHRzIGFuZCBJbmZvcm1hdGlvbiwgbWF0ZXJpYWwgMTAuMS4gVmXFoWtlcsOpIFbDvXNsZWRreSBzdHVkaWUgYSBpbmZvcm1hY2UsIG1hdGVyacOhbHkgbmVibwpvciBhc3NldHMgcmVsYXRpbmcgdG8gdGhlIFN0dWR5IERydWcsIHRoZSBQcm90b2NvbCBvciBha3RpdmEgc291dmlzZWrDrWPDrSBzIGhvZG5vY2Vuw71tIHDFmcOtcHJhdmtlbSwKdGhlIFN0dWR5LCBpbmNsdWRpbmcgYW55IGFuZCBhbGwgZXhpc3Rpbmcgb3IgZnV0dXJlIHByb3Rva29sZW0gbmVibyBzdHVkacOtLCBWxI1ldG7EmyB2ZcWha2Vyw71jaCBzdMOhdmFqw61jw61jaApyaWdodHMgdGhlcmVpbiAoaGVyZWluYWZ0ZXIgY29sbGVjdGl2ZWx5IHJlZmVycmVkIHRvIGFzIG5lYm8gYnVkb3Vjw61jaCBwcsOhdiBrbmltIChzcG9sZcSNbsSbIGTDoWxlIGplbgpBc3NldHMpLCB3aGV0aGVyIHBhdGVudGFibGUgb3Igbm90LCBjb25jZWl2ZWQgYnkg4oCeYWt0aXZh4oCcKSwgYcWlIHXFviBqZSBsemUgcGF0ZW50b3ZhdCwgbmVibyBuaWtvbGksIGt0ZXJlCkluc3RpdHV0aW9uIG9yIEludmVzdGlnYXRvciBvciBTdHVkeSBQZXJzb25uZWwsIHNvbGVseSBieWx5IHZ5dHZvxZllbnkgemRyYXZvdG5pY2vDvW0gemHFmcOtemVuw61tIG5lYm8Kb3Igam9pbnRseSB3aXRoIG90aGVycyBhcyBhIHJlc3VsdCBvZiB3b3JrIHBlcmZvcm1lZCB6a291xaFlasOtY8OtbSDEjWkgcGVyc29uw6FsZW0gc3R1ZGllIHNhbW9zdGF0bsSbIG5lYm8gdmUKdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIHNoYWxsIGJlLCBhbmQgcmVtYWluLCBhdCBhbGwgc3BvbHVwcsOhY2kgcyBvc3RhdG7DrW1pIGpha28gdsO9c2xlZGVrIHByYWPDrQp0aW1lcyB0aGUgc29sZSBhbmQgZXhjbHVzaXZlIHByb3BlcnR5IG9mIFNQT05TT1IgcHJvdsOhZMSbbsO9Y2ggcG9kbGUgdMOpdG8gc21sb3V2eSwgYnVkb3UgYSBWxb5keQphbmQgU1BPTlNPUiBzaGFsbCBvd24sIHRvIHRoZSB3aWRlc3QgZXh0ZW50IHrFr3N0YW5vdSBWw71ocmFkbsOtbSBhVsO9bHXEjW7DvW0gdmxhc3RuaWN0dsOtbQpwb3NzaWJsZSB1bmRlciBBcHBsaWNhYmxlIExhdywgYW55IGFuZCBhbGwgWkFEQVZBVEVMRSBhWkFEQVZBVEVMIGJ1ZGUgdmxhc3RuaXQKSW50ZWxsZWN0dWFsIFByb3BlcnR5IFJpZ2h0cyB0aGVyZXRvIChzdWJqZWN0IHRvIHRoZSB2bmVqxaFpcsWhcidtIG1vxb5uZSdtIHJvenNhaHUgZGxlIHBsYXRuw71jaCB6w6Frb27FrwpyaWdodHMgZXhwcmVzc2x5IHJlc2VydmVkIGZvciBDUk8gdW5kZXIgdGhpcyB2ZcWha2Vyw6EgcHLDoXZhIGR1xaFldm7Fr3JvIFZsYXN0bmljdHbDrSBrbmltIChrcm9txJsKU2VjdGlvbikuIFRvIHRoZSBleHRlbnQgcmVxdWlyZWQgZm9yIFNQT05TT1IgdG8gcHJhViB2w71zbG92bsSbIHZ5aHJhemVuw71jaCBwcm8gQ1JPIHBvZGxlIHRvaG90bwpvYnRhaW4sIHNlY3VyZSBhbmQgcGVyZmVjdCBzYWlkIHJpZ2h0cyBhbmQgbGVnYWwgb2Rkw61sdSkuIFZyb3pzYWh1LCBrdGVyw70gamUgbnV0bsO9IGt0b211LCBhYnkKcG9zaXRpb25zIHVuZGVyIEFwcGxpY2FibGUgTGF3LCB0aGUgQXNzZXRzIHNoYWxsIFpBREFWQVRFTCBaw61za2FsLCB6YWJlenBlxI1pbCBhemRva29uYWxpbAphdXRvbWF0aWNhbGx5IHZlc3QgaW4gU1BPTlNPUiBhbmQgdG8gdGhlIGV4dGVudCB1dmVkZW7DoSBwcsOhdmEgYXByw6F2bsOtIHBvc3RhdmVuw60gcG9kbGUgcGxhdG7DvWNoCnJlcXVpcmVkLCBJbnN0aXR1dGlvbiBhbmQgSW52ZXN0aWdhdG9yIGhlcmVieSBhc3NpZ24gYWxsIHrDoWtvbsWvLCBidWRvdSBha3RpdmEgYXV0b21hdGlja3kgcHJvcMWvasSNZW5hCnJpZ2h0cywgdGl0bGUgYW5kIGludGVyZXN0cyBpbiBhbnkgYW5kIGFsbCBBc3NldHMgdG8gWkFEQVZBVEVMSSBhWmRyYXZvdG5pY2tlJyB6YcWZw616ZW7DrQpTUE9OU09SLCBhbmQgc2hhbGwgcGVyZm9ybSBhbnkgYW5kIGFsbCBvdGhlciBhY3RzICYgemtvdcWhZWrDrWPDrSB2IHBvxb5hZG92YW7DqW0gcm96c2FodSB0w61tdG8gcG9zdHVwdWrDrQpuZWNlc3NhcnkgdG8gYXNzaXN0IFNQT05TT1IgaW4gb2J0YWluaW5nLCBzZWN1cmluZyB2ZcWha2Vyw6EgcHLDoXZhLCBuw6Fyb2t5IGEgesOham15IHZ6dGFodWrDrWPDrSBzZQphbmQgcGVyZmVjdGluZyB0aGUgcmlnaHRzIHRvIHNhaWQgQXNzZXRzLiBJZm5lY2Vzc2FyeSwgayBqYWvDvW1rb2xpIGFrdGlWxa9tIG5hIFpBREFWQVRFTEUgYXXEjWluw60KSW5zdGl0dXRpb24gYW5kIEludmVzdGlnYXRvciBzaGFsbCBvYmxpZ2F0ZSBTdHVkeSB2ZcWha2Vyw6kgZGFsxaHDrSDDumtvbnkgbmV6Ynl0bsOpIGsgdG9tdSwgYWJ5IHBvbW9obGkKUGVyc29ubmVsIHRvIHBlcmZvcm0gYW55IGFuZCBhbGwgYWN0cyByZXF1aXJlZCB0byBaQURBVkFURUxJIFrDrXNrYXQsIHphYmV6cGXEjWl0YSB6ZG9rb25hbGl0cHLDoXZhCmVuYWJsZSBTUE9OU09SIHRvIG9idGFpbiwgc2VjdXJlIGFuZCBwZXJmZWN0IHNhaWQgVsWvxI1pIHV2ZWRlbsO9bSBha3RpVsWvbS4gUG9rdWQgdG8gYnVkZSBuZXpieXRuZSwKcmlnaHRzLiBJbiB0aGUgZXZlbnQgdGhhdCBTUE9OU09SLCBhY2NvcmRpbmcgdG8gWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBhWmtvdcWhZWrDrWPDrSB6YVZhxb5vdSBwZXJzb25hbApBcHBsaWNhYmxlIExhdywgY2Fubm90IG9idGFpbiBvciBzZWN1cmUgb3duZXJzaGlwIHN0dWRpZSBrIHRvbXUsIGFieSBwcm92w6FkxJtsIGpha2Vrb2xpIGEgdmXFoWtlcsOpIGtyb2t5Cm9mIGFueSBvZiBzYWlkIEFzc2V0cywgSW5zdGl0dXRpb24gYW5kIEludmVzdGlnYXRvciB2ecW+YWRvdmFuw6kga3RvbXUsIGFieSB1bW/Fvm5pbCBaQURBVkFURUxJCmhlcmVieSBncmFudCBTUE9OU09SIGFuZCBvYmxpZ2F0ZSB0aGUgU3R1ZHkgWsOtc2thdCwgemFiZXpwZcSNaXQgYXpkb2tvbmFsaXQgdXZlZGVuw6EgcHLDoXZhLgpQZXJzb25uZWwgdG8gZ3JhbnQgU1BPTlNPUiwgYXMgYXBwbGljYWJsZSwgViBwxZnDrXBhZMSbLCDFvmUgWkFEQVZBVEVMIHBvZGxlIHBsYXRuw71jaCB6w6Frb27Frwp3b3JsZHdpZGUsIGV4Y2x1c2l2ZSwgdW5saW1pdGVkIGFuZCByb3lhbHR54oCUZnJlZSBuZW3Fr8W+ZSBaw61za2F0bmVibyB6YWJlenBlxI1pdFZsYXN0bmljdFbDrWpha2UnaG9rb2xpCnJpZ2h0cyBvZiB1c2UsIGV4cGxvaXRhdGlvbiBhbmQgdXRpbGl6YXRpb24gYW5kL29yIHp1dmVkZW7DvWNoIGFrdGlWLFpkcmF2b3RuaWNrZScgemHFmcOtemVuw61hemtvdcWhZWpyJ2NyJwpsaWNlbnNlcyByZWdhcmRpbmcgc2FpZCBBc3NldHMuIEluc3RpdHV0aW9uIGFuZCB0w61tdG8gdWTEm2x1asOtIFpBREFWQVRFTEkgYXphdmF6dWrDrSBwZXJzb27DoWwKSW52ZXN0aWdhdG9yIFdhcnJhbnQgYnkgdGhlIGV4ZWN1dGlvbiBvZiB0aGlzIHN0dWRpZSwgYWJ5IHDFmcOtcGFkbsSbIHVkxJtsaWwgWkFEQVZBVEVMSQpBZ3JlZW1lbnQsIHRoYXRuZWl0aGVydGhleSBub3IgYW55IFN0dWR5IFBlcnNvbm5lbCBjZWxvc3bEm3RvdsOhLCBWw71ocmFkbsOtLCBuZW9tZXplbsOhIHByYXZhIGJlWgpoYXZlIGVudGVyZWQsIGFuZCB0aGF0IG5vbmUgb2YgdGhlbSB3aWxsIGVudGVyLCBpbnRvIGxpY2VuxI1uw61obyBwb3BsYXRrdSBrcG91xb5yJ1ZhbnInLCB2eXXFvsOtdmFuw60KYW55IGNvbnRyYWN0dWFsIGFncmVlbWVudCBvciByZWxhdGlvbnNoaXAgd2hpY2ggYXp1xb5pdGtvVmFucicgYWt0aVYgYS9uZWJvIGxpY2VuY2UsIGt0ZXJlIHNlIGppY2gKd291bGQgaW4gYW55IHdheSBjb25mbGljdCB3aXRoIG9yIGNvbXByb21pc2UgdMO9a2Fqw60uIFpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gYVprb3XFoWVqw61jw60gemFydcSNdWrDrQpTUE9OU09Sw4kgcHJvcHJpZXRhcnkgaW50ZXJlc3QgaW4sIG9yIHJpZ2h0cyB0bywgYW55IHV6YXbFmWVuw61tIHTDqXRvIHNtbG91dnksIMW+ZSBhbmkgb25pIGFuaSBqYWvDvWtvbGkgxI1sZW4KQXNzZXRzIGV4aXN0aW5nIGF0IHRoZSB0aW1lIG9mIHRoZSBleGVjdXRpb24gb2YgdGhpcyBwZXJzb27DoWx1IHN0dWRpZSBuZXV6YVbFmWVsaSBhIMW+ZSBhbmkgbmlrZG8gWiBuaWNoCkFncmVlbWVudCBvciBhcmlzaW5nIG91dCBvZiBvciByZWxhdGVkIHRvIGl0cyBuZXV6YXbFmWUgamFrZWtvbGkgc21sdXZuw60gdWplZG7DoW7DrSBuZWJvIHZ6dGFoLCBrdGVyw70KcGVyZm9ybWFuY2V0aGVyZXVuZGVyLiBieSBieWwgamFrw71ta29saSBacMWvc29iZW0gVnRvenBvcnUgbmVibyBieQpvaHJvemlsIHZsYXN0bmlja8OpIHrDoWpteSBaQURBVkFURUxFIG5lYm8gamVobwpwcsOhdmEgayBqYWvDvW1rb2xpIGFrdGlWxa9tIGV4aXN0dWrDrWPDrW0gdiBkb2LEmwp1emF2xZllbsOtIHTDqXRvIHNtbG91dnkgbmVibyB2eXBsw712YWrDrWPDrW0gWiBwaHLEm25yJyBkbGUKdMOpdG8gc21sb3V2eSBuZWJvIHMgbsOtbSBzb3V2aXNlasOtY8OtLgoxMC4yLiBJbnN0aXR1dGlvbiBhbmQgSW52ZXN0aWdhdG9yIHNoYWxsIGRpc2Nsb3NlIHRvIENSTyAxMC4yLiBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIGFaa291xaFlasOtY8OtIFpwxZnDrXN0dXBuw60gQ1JPCgood2hvIHdpbGwgZGlzY2xvc2UgdG8gU1BPTlNPUikgYWxsIFN0dWR5IFJlc3VsdHMsCkluZm9ybWF0aW9uIGFuZCBpbiBwYXJ0aWN1bGFyIGFsbCBpbnZlbnRpb25zLCBmaW5kaW5ncywKZGlzY292ZXJpZXMgYW5kIG90aGVyIGNyZWF0aXZlIGlkZWFzIGFuZAoKIAoKKGt0ZXJhIGplIFpwxZnDrXN0dXBuw60gWkFEQVZBVEVMSSkgVsWhZWNobnkKdsO9c2xlZGt5IHN0dWRpZSwgaW5mb3JtYWNlLCBhemVqbWUnbmEgVsWhZWNobnkKdnluw6FsZXp5LCBaamnFoXTEm27DrSwgb2JqZXZ5IGEgamluZScga3JlYXRpdm7DrSBtecWhbGVua3kKCiAKCjI4NDY0MV8xNDA0LTAwNDRfQ1pFX0NaRTRfSU5TVCBQSSBDU0EgXyBCaWxpbmd1YWxfMjAyNTA0MDlfMS4wClN0cmFuYSAxMSB6IDY1CgogCgogCgpkZXZlbG9wbWVudHMgKGhlcmVpbmFmdGVyIHJlZmVycmVkIHRvIGFzIEludmVudGlvbnMpCmNvbmNlaXZlZCBvciByZWR1Y2VkIHRvIHByYWN0aWNlIGFzICYgZGlyZWN0IHJlc3VsdCBvZgp0aGUgU3R1ZHkuIFN1Y2ggZGlzY2xvc3VyZSBzaGFsbC9tdXN0IGJlIG1hZGUgZnVsbHkKYW5kIHByb21wdGx5IGluIHdyaXRpbmcgdG8gYW4gYXV0aG9yaXplZC9hdXRob3Jpc2VkCnJlcHJlc2VudGF0aXZlIG9mIENSTyAod2hvIHdpbGwgZGlzY2xvc2UgdG8KU1BPTlNPUikuCgomIFbDvXNsZWRreSBWw712b2plIChkw6FsZSBqZW4gdnluw6FsZXp5KSB2eXR2b8WZZW7DqSBuZWJvCnV2ZWRlbmUgZG8gcHJheGUgamFrbyBwxZnDrW3DvSBkxa9zbGVkZWsgc3R1ZGllLgpUYWtvdmUndG8gWnDFmcOtc3R1cG7Em27DrSBidWRlLyBtdXPDrSBiw710IHByb3ZlZGVubwpwaHLEmyBhbmVwcm9kbGVuxJsgVnByJ3NlbW5lJyBmb3JtxJsgcG9WxJvFmWVuZSdtdQpaw6FzdHVwY2kgQ1JPIChrdGVyw70gamVqIFpwxZnDrXN0dXBuw60gWkFEQVZBVEVMSSkuCgogCgoxMC4zLgoKVGhlIFBhcnRpZXMgYW5kIFNQT05TT1Igc2hhbGwgcmV0YWluIGFsbCByaWdodCwgdGl0bGUKYW5kIGludGVyZXN0IGluIGFueSBJbnRlbGxlY3R1YWwgUHJvcGVydHkgdGhhdCB3YXMKb3duZWQgYnkgc3VjaCBQYXJ0eSBvciBTUE9OU09SIHByaW9yIHRvIG9yIGFwYXJ0CmZyb20gdGhlIGNvbW1lbmNlbWVudCBvZiB0aGlzIEFncmVlbWVudC4gTm8KbGljZW5zZSBncmFudCBvciBhc3NpZ25tZW50LCBleHByZXNzIG9yIGltcGxpZWQsIGJ5CmVzdG9wcGVsIG9yIG90aGVyd2lzZSwgaXMgaW50ZW5kZWQgYnksIG9yIHNoYWxsIGJlCmluZmVycmVkIGZyb20sIHRoaXMgQWdyZWVtZW50IGV4Y2VwdCB0byB0aGUgZXh0ZW50Cm5lY2Vzc2FyeSBmb3IgZWFjaCBQYXJ0eSB0byBmdWxmaWxsIGl0cyBvYmxpZ2F0aW9ucyB1bmRlcgp0aGlzIEFncmVlbWVudCBvciBvdGhlcndpc2UgZ2l2ZSBlZmZlY3QgdG8gdGhpcwpBZ3JlZW1lbnQuCgoxMC4zLgoKU21sdXZuw60gc3RyYW55IGFaQURBVkFURUwgc2kgcG9uZWNoYWrDrQpWxaFlY2huYSBwcsOhdmEsIHRpdHVseSBhesOham15IG9qYWtla29saSBkdcWhZXZuw60Kdmxhc3RuaWN0dsOtLCBrdGVyw6kgYnlsbyB2ZSB2bGFzdG5pY3R2w60gdMOpdG8gc21sdXZuw60Kc3RyYW55IG5lYm8gWkFEQVZBVEVMRSBwxZllZCB6YWjDoWplbsOtbSB0w6l0bwpzbWxvdXZ5LiBOZW7DrSB6YW3DvcWhbGVubyBhbmkgbmVidWRlIHZ5dm96ZW5vCnogdMOpdG8gc21sb3V2eSDFvmFkbmUnIHVkxJtsZW7DrSBhbmkgcMWZaWTEm2xlbsOtIGxpY2VuY2UsIGHFpQp1xb4gVsO9c2xvdm5lJywgbmVibyBuZXDFmcOtbcOpLCBwb2RsZSBaw6FzYWR5IGVzbXBwZWwKKGFuZ2xvc2Fza8OpaG8gcHJhdmEpLCBhbmkgamluw71tIFpwxa9zb2JlbSwKU1bDvWppbWtvdSByb3pzYWh1IG5lemJ5dG5lJ2hvIHBybyBrYcW+ZG91IHN0cmFudQprIHRvbXUsIGFieSBzcGxuaWxhIHN2w6kgesOhdmF6a3kgcG9kbGUgdMOpdG8gc21sb3V2eQpuZWJvIGppbmFrIG5hcGxuaWxhIHR1dG8gc21sb3V2dS4KCiAKCiAKCiAKCiAKCiAKCiAKCiAKCjExLiBEQVRBIFBST1RFQ1RJT04gJiBQUklWQUNZIDExLiBPQ0hSQU5BIMOaREFKw5ogQSBTT1VLUk9Nw40KCjExLjEuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGl0IGlzIDExLjEuIFBybyDDusSNZWx5IHTDqXRvIHNtbG91dnkgc21sdXZuw60gc3RyYW55IHV6bsOhdmFqw60sIMW+ZQphY2tub3dsZWRnZWQgYnkgdGhlIFBhcnRpZXMgdGhhdCB0aGUgU1BPTlNPUiBhbmQgWkFEQVZBVEVMICYgWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBqZWRuYWrDrSBqYWtvCnRoZSBJbnN0aXR1dGlvbiBhY3QgYXMgc2VwYXJhdGUgYW5kIGluZGVwZW5kZW50IHNhbW9zdGF0bsOtIGFuZXrDoXZpc2zDrSBzcHLDoXZjaSAoamFrIGplIHRlbnRvIHRlcm3DrW4KY29udHJvbGxlcnMgKGFzIHN1Y2ggdGVybSBpcyBkZWZsbmVkIGluIERhdGEgUHJvdGVjdGlvbiBkZWZpbm92w6FuIHYgWsOha29uxJsgbmEgb2NocmFudSBvc29ibsOtY2ggw7pkYWrFrykgdmUKCkxhdykgaW4gcmVsYXRpb24gdG8gYW55IHBlcnNvbmFsIGRhdGEgdGhleSBwcm9jZXNzIGluIHZ6dGFodSBrZSBWxaFlbSBvc29ibsOtbSDDumRhasWvbSwga3RlcmUgenByYWNvdsOhdmFqw60KCmNvbm5lY3Rpb24gd2l0aCB0aGUgU3R1ZHksIGFuZCB0aGF0IGFueSB0aGlyZCBwYXJ0eSB2IHNvdXZpc2xvc3RpIHNlIHN0dWRpw60sIGEgxb5lIGpha8Oha29saSB0xZlldMOtIHN0cmFuYSwga3RlcsOhCgphY3Rpbmcgb24gYmVoYWxmIG9mIHRoZSBTcG9uc29yIGFjdHMgYXMgJiBwcm9jZXNzb3IuIGplZG7DoSBqbcOpbmVtIHphZGF2YXRlbGUsIGplZG7DoSBqYWtvIHpwcmFjb3ZhdGVsLgoKVGhlIEluc3RpdHV0aW9uIGFuZCBJbnZlc3RpZ2F0b3Igc2hhbGw6IFprb3XFoWVqw61jw60gYSBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIHNlIHphdmF6dWrDrToKCmEuIGNvbXBseSB3aXRoIGl0cyBvYmxpZ2F0aW9ucyB1bmRlciBEYXRhIFByb3RlY3Rpb24gYS4gxb5lIGJ1ZG91IGRvZHLFvm92YXQgc3bDqSBwb3Zpbm5vc3RpIHBvZGxlIFrDoWtvbmEKTGF3IGluIHJlbGF0aW9uIHRvIHRoaXMgQWdyZWVtZW50OyBuYSBvY2hyYW51IG9zb2Juw61jaCDDumRhasWvIHZlIHZ6dGFodSBrdMOpdG8KCnNtbG91dsSbOwoKYi4gcHJvbXB0bHkgcHJvdmlkZSBTUE9OU09SIHdpdGggc3VjaCBiLiDFvmUgYmV6b2RrbGFkbsSbIHBvc2t5dG5vdXQgWkFEQVZBVEVMSQpyZWFzb25hYmxlIGNvb3BlcmF0aW9uLCBpbmZvcm1hdGlvbiBhbmQgcMWZaW3Em8WZZW5vdSBzcG9sdXByYWNpLCBpbmZvcm1hY2UgYSBwb21vYywga3RlcsOhCmFzc2lzdGFuY2UgYXMgcmVxdWlyZWQgZnJvbSB0aW1lIHRvIHRpbWUgdG8gZW5hYmxlIGJ1ZGUgxI1hcyBvZCDEjWFzdSBwb8W+YWRvdsOhbmEsIGFieQpTUE9OU09SIHRvIGNvbXBseSB3aXRoIGl0cyBvYmxpZ2F0aW9ucyB1bmRlciBaQURBVkFURUxJIHVtb8W+bmlsIHBsbml0IGplaG8gcG92aW5ub3N0aQpEYXRhIFByb3RlY3Rpb24gTGF3OyBhbmQgcG9kbGUgWsOha29uYSBuYSBvY2hyYW51IG9zb2Juw61jaCDDumRhasWvOyBhCgpjLiBub3Qga25vd2luZ2x5IHBlcmZvcm0gaXRzIG9ibGlnYXRpb25zIHVuZGVyIHRoaXMgYy4gVsSbZG9txJsgbmVwbG5pdCBzdsOpIHBvdmlubm9zdGkgcG9kbGUgdMOpdG8KQWdyZWVtZW50IGluIHN1Y2ggJiB3YXkgYXMgdG8gY2F1c2UgU1BPTlNPUiBzbWxvdXZ5IHRha29Ww71tIFpwxa9zb2JlbSwga3RlcsO9IGJ5IFpwxa9zb2JpbApvciBpdHMgZGVzaWduZWUgdG8gYnJlYWNoIGFueSBvZiBpdHMgb2JsaWdhdGlvbnMgcG9ydcWhZW7DrSBwb3Zpbm5vc3TDrSBaQURBVkFURUxFIG5lYm8gamVobwp1bmRlciBEYXRhIFByb3RlY3Rpb24gTGF3LiBwb3bEm8WZZW7DqSBvc29ieSBwb2RsZSBaw6Frb25hIG5hIG9jaHJhbnUKCm9zb2Juw61jaCDDumRhasWvLgoxMS4yLiBXaXRob3V0IGxpbWl0aW5nIHRoZSBnZW5lcmFsaXR5IG9mIHRoaXMgU2VjdGlvbiwgMTEuMi4gQW5pxb4gYnkgYnlsYSBvbWV6ZW5hIG9iZWNuYSBwbGF0bm9zdCB0b2hvdG8gb2Rkw61sdSwKCkluc3RpdHV0aW9uIGFuZC9vciBJbnZlc3RpZ2F0b3IgaGVyZWJ5IHJlcHJlc2VudCBhbmQKV2FycmFudCB0aGF0IHRoZXkgc2hhbGwgdXRpbGl6ZSBvbmUgb3IgbW9yZSBsYXdmdWwKYmFzZXMgdW5kZXIgRGF0YSBQcm90ZWN0aW9uIExhdyBsZWdpdGltaXppbmcsIGFuZApjb21wbHkgd2l0aCB0aGUgcmVxdWlyZW1lbnQgdG8gbm90aWZ5IFN1YmplY3RzLApJbnZlc3RpZ2F0b3JhcyBhbmQgU3R1ZHkgUGVyc29ubmVsIG9mIHRoZSBQZXJzb25hbApEYXRhIFByb2Nlc3Npbmcgc28gdGhhdCBzdWNoIFN1YmplY3Rz4oCeIFN0dWR5ClBlcnNvbm5lbGFzIGFuZCBJbnZlc3RpZ2F0b3JhcyBQZXJzb25hbCBEYXRhIGNhbiBiZQoKIAoKWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBhL25lYm8gemtvdcWhZWrDrWPDrSB0w61tdG8KcHJvaGxhxaF1asOtIGF6YXJ1xI11anInLCDFvmUgdnl1xb5pasOtIGplZGVuIG5lYm8gVsOtY2UKbGVnaXRpbWl6dWpyJ2NyJ2NoIHrDoWtvbm7DvWNoIFrDoWtsYWTFryBwb2RsZSBaw6Frb25hIG5hCm9jaHJhbnUgb3NvYm7DrWNoIMO6ZGFqxa8gYWJ1ZG91IGRvZHLFvm92YXQKcG/FvmFkYXZlayBpbmZvcm1vdmF0IHN1Ympla3R5IHN0dWRpZSwgcGVyc29uw6FsClprb3XFoWVqcidjxa9ybyBhc3R1ZGlqbsOtIHTDvW0gb3pwcmFjb3bDoW7DrSBvc29ibsOtY2gKCsO6ZGFqxa8gdGFrLCBhYnkgdHl0byBvc29ibsOtIMO6ZGFqZSBzdWJqZWt0xa8gaG9kbm9jZW7DrSwKCiAKCjI4NDY0MV8xNDA0LU9PNDRfQ1pFX0NaRTRfSU5TVCBQSSBDU0EgXyBCaWxpbmd1YWxfMjAyNTA0MDlfMS4wClN0cmFuYSAxMiB6IDY1CgogCgogCgpQcm9jZXNzZWQgYnkgKGluY2x1ZGluZyB0cmFuc2ZlcnJlZCB0bykgU1BPTlNPUiBpdHMKZGVzaWduZWUgb3IgYW55IG9mIGl0cyBBZmZpbGlhdGVzIGFuZCByZWd1bGF0b3J5CmF1dGhvcml0aWVzIGluIGVhY2ggY2FzZSB3aXRoaW4gb3Igb3V0c2lkZSB0aGUgY291bnRyeQp3aGVyZSBzdWNoIGRhdGEgb3JpZ2luYXRlcy4KCnN0dWRpam7DrWhvIHTDvW11ICYgWmtvdcWhZWpyJ2PFr3JvIGzDqWthxZllIG1vaGx5IGLDvXQKenByYWNvdsOhdsOhbnkgKFbEjWV0bsSbIHDFmWVkw6F2w6Fuw60pIFpBREFWQVRFTEVNCm5lYm8gamVobyBwb3bEm8WZZW5vdSBvc29ib3UgbmVibyBrdGVyb3Vrb2xpIFogamVqaWNoCnDFmcOtc2x1xaFuw71jaCBwxZlpZHJ1xb5lbsO9Y2ggc3BvbGXEjW5vc3TDrSBhIGtvbnRyb2xuw61taQrDusWZYWR5IFYga2HFvmTDqW0gcMWZw61wYWTEmyBWIHplbWkgcMWvdm9kdSB1ZGFqxa8gbmVibwptaW1vIG5pLgoKIAoKMTEuMy4KCkluc3RpdHV0aW9uIGFuZCBJbnZlc3RpZ2F0b3Igc2hhbGwgbm90aWZ5IENSTwppbW1lZGlhdGVseSAoYnV0IGluIG5vIGV2ZW50IGxhdGVyIHRoYW4gc2V2ZW50eeKAlHR3bwooNzIpIGhvdXJzIGFmdGVyIGJlY29taW5nIGF3YXJlKSBvZiBhbnkgYXR0ZW1wdGVkLApzdXNwZWN0ZWQsIG9yIGFjdHVhbCBEYXRhIFNlY3VyaXR5IEJyZWFjaCAoIlNlY3VyaXR5CkluY2lkZW50IikgcmVsYXRpbmcgdG8gb3IgaW1wYWN0aW5nIHRoZSBTdHVkeSBhdApfLiBJbnN0aXR1dGlvbiBhbmQKSW52ZXN0aWdhdG9yIHNoYWxsIGF0IGl0cyBjb3N0IGFuZCBleHBlbnNlIGFzc2lzdCBhbmQKY29vcGVyYXRlIHdpdGggQ1JPIChhbmQvb3IgdGhlIFNwb25zb3IpIGNvbmNlcm5pbmcKYW55IGRpc2Nsb3N1cmVzIHRvIGFmZmVjdGVkIHBhcnRpZXMgYW5kL29yIHJlZ3VsYXRvcnkKYXV0aG9yaXRpZXMgYW5kIG90aGVyIHJlbWVkaWFsIG1lYXN1cmVzIGFzIHJlcXVlc3RlZApieSBDUk8gb3IgdGhlIFNwb25zb3IuIFRoZSBub3RpZmljYXRpb24gdG8gQ1JPIHNoYWxsCmluY2x1ZGUgJiBkZXRhaWxlZCBkZXNjcmlwdGlvbiBvZiB0aGUgU2VjdXJpdHkgSW5jaWRlbnQKYW5kIGFueSBvdGhlciBpbmZvcm1hdGlvbiBDUk8gb3IgU3BvbnNvcgpyZWFzb25hYmx5IG1heSByZXF1ZXN0LgoKMTEuMy4KClpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gYSB6a291xaFlasOtY8OtIGJ1ZG91Cm5lcHJvZGxlbsSbKGFsZSB2IMW+w6FkbsOpbSBwxZnDrXBhZMSbIG5lIHBvemTEm2ppIG5lxb4Kc2VkbWRlc8OhdCBkdmEgKDcyKSBob2RpbiBwbyBaamnFoXTEm27DrSkgaW5mb3Jtb3ZhdApDUk8gKCkgamFrZSdta29saSBwb2t1c3UsIHBvZGV6xZllbsOtIG5hIHBvcnXFoWVuw60KbmVibyBza3V0ZcSNbsOpbSBwb3J1xaFlbsOtIGJlenBlxI1ub3N0aSB1ZGFqxa8gKGTDoWxlIGplbgrigJ5iZXpwZcSNbm9zdG7DrSBpbmNpZGVuIOKAnCkgViBzb3V2aXNsb3N0aSBzZSBzdHVkacOtIG5lYm8KcG9rdWQgbcOhIGRvcGFkIG5hIHN0dWRpw60sIGEgdG8gemFzbMOhbsOtbSBl4oCUbWFpbHUgbmEKYWRyZXN1IOKAlC4gWmRyYXZvdG5pY2vDqQp6YcWZw616ZW7DrSBhIHprb3XFoWVqw61jw60gbmEgc3bDqSBuw6FrbGFkeSBhIHbDvWRhamUKcG9za3l0bm91IHNvdcSNaW5ub3N0IGEgYnVkb3Ugc3BvbHVwcmFjb3ZhdCBzIENSTwooYS9uZWJvIHphZGF2YXRlbGVtKSB2IHNvdXZpc2xvc3RpIHMgamFrw71taWtvbGl2ClpwxZnDrXN0dXBuxJtucidtaSBkb3TEjWVuw71tIHN0cmFuw6FtIGEvbmVibyByZWd1bGHEjW7DrW0Kw7rFmWFkxa9tIGEgZGFsxaHDrW1pIG7DoXByYXZuw71taSBvcGF0xZllbsOtbWksIGphayBidWRvdQpwb8W+YWRvdmF0IENSTyBuZWJvIHphZGF2YXRlbC4gT3puw6FtZW7DrSBwcm8gQ1JPCmJ1ZGUgb2JzYWhvdmF0IHBvZHJvYm7DvSBwb3BpcyBiZXpwZcSNbm9zdG5yaG8KaW5jaWRlbnR1ICYgamFrw6Frb2xpIGRhbMWhw60gaW5mb3JtYWNlLCBrdGVyw6kgbW9ob3UKQ1JPIG5lYm8gemFkYXZhdGVsIHDFmWltxJvFmWVuxJsgcG/FvmFkb3ZhdC4KCiAKCjExLjQuCgpJZiByZXF1ZXN0ZWQgYnkgU1BPTlNPUiBvciBpdHMgZGVzaWduZWUgdG8gY29tcGx5CndpdGggYW55IEFwcGxpY2FibGUgTGF3IGFuZCB0byBQcm9jZXNzIGFueSBQZXJzb25hbApEYXRhLCBJbnN0aXR1dGlvbiBhbmQgSW52ZXN0aWdhdG9yIHdpbGwgd29yayB3aXRoClNQT05TT1Igb3IgaXRzIGRlc2lnbmVlIGluIGdvb2QgZmFpdGggdG8gYWRkcmVzcwphbnkgaXNzdWUgcmVsYXRpbmcgdG8gdGhlIFByb2Nlc3Npbmcgb2YgUGVyc29uYWwgRGF0YS4KCjExLjQuCgpQb2t1ZCB0byBidWRlIFpBREFWQVRFTCBwb8W+YWRvdmF0IFogZMWvdm9kdSwKYWJ5IGJ5bG8gdW1vxb5uxJtubyBaQURBVkFURUxJIG5lYm8gamVobwpwb3bEm8WZZW7DqSBvc29ixJsgZG9kcsW+b3bDoW7DrSBWxaFlY2ggcGxhdG7DvWNoIHrDoWtvbsWvCmFacHJhY29WYVZhbnInIGpha8O9Y2hrb2xpIG9zb2Juw61jaCDDumRhasWvLCBidWRvdQpaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIGFaa291xaFlasOtY8OtIFYgZG9icsOpIHbDrcWZZQpzcG9sdXByYWNvdmF0IHNlIFpBREFWQVRFTEVNIG5lYm8gamVobwpwb3bEm8WZZW5vdSBvc29ib3UgcMWZaSDFmWXFoWVuw60gamFrw71jaGtvbGkgcHJvYmzDqW3Frwpzb3V2aXNlasOtY8OtY2ggc2UgenByYWNvdsOhbsOtbSBvc29ibsOtY2ggw7pkYWrFry4KCiAKCiAKCiAKCiAKCjEyLiBJTkRFTU5JRklDQVRJT04gMTIuIE9ExaBLT0ROxJpOw40KMTIuMS4gSW5zdGl0dXRpb24gYW5kIEludmVzdGlnYXRvciBzaGFsbCBpbW1lZGlhdGVseSBub3RpZnkgMTIuMS4gWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBhIHprb3XFoWVqw61jw60gYnVkb3UgaWhuZWQKQ1JPIGluIHdyaXRpbmcgb2YgYW55IGNsYWltIG9mIGlsbG5lc3Mgb3IgaW5qdXJ5IHRoYXQgcMOtc2VtbsSbIGluZm9ybW92YXQgQ1JPIG8gamFrw6lta29saSBuw6Fyb2t1CmlzIGNsYWltZWQgdG8gYmUgZHVlIHRvIGFuIGFkdmVyc2UgcmVhY3Rpb24gdG8gdGhlIHYgc291dmlzbG9zdGkgcyBvbmVtb2NuxJtuw61tIMSNaSBaZHJhdm90bsOtIHVqbW91LApTdHVkeSBEcnVnIG9yIGFueSBvZiB0aGUgY2xpbmljYWwgaW50ZXJ2ZW50aW9uIG9yIGt0ZXLDqSBtxJtseSDDumRham7EmyB2em5pa25vdXQgViBkxa9zbGVka3UgbmXFvsOhZG91Y8OtCnByb2NlZHVyZXMgdGhhdCBhcmUgcHJvdmlkZWQgZm9yIG9yIHJlcXVpcmVkIGJ5IHRoZSByZWFrY2UgbmEgaG9kbm9jZW7DvSBwxZnDrXByYXZlayBuZWJvIG5hIGpha8O9a29saSBqaW7DvQpQcm90b2NvbCB0byB3aGljaCB0aGUgU3ViamVjdHMgd291bGQgbm90IGhhdmUgYmVlbiBrbGluaWNrw70gesOha3JvayBuZWJvIHBvc3R1cHksIGt0ZXLDqSBieWx5IHByb3ZlZGVueQpleHBvc2VkIGJ1dCBmb3IgdGhlaXIgcGFydGljaXBhdGlvbiBpbiB0aGUgU3R1ZHkuIG5lYm8gdnnFvmFkb3bDoW55IHByb3Rva29sZW0gYWt0ZXLDqSBieSBzdWJqZWt0eQpJbnN0aXR1dGlvbiBhbmQgSW52ZXN0aWdhdG9yIHNoYWxsIGFsbG93IFNQT05TT1IgdG8gaG9kbm9jZW7DrSBqaW5hayBuZWFic29sdm92YWx5LCBrZHlieSBzZSBuZcO6xI1hc3RuaWx5CmhhbmRsZSBzdWNoIGNsYWltIChpbmNsdWRpbmcsIGlmIGFwcGxpY2FibGUsIHN0dWRpZS4gWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBhIHprb3XFoWVqw61jw60gdW1vxb5uw60Kc2V0dGxlbWVudCBuZWdvdGlhdGlvbnMpLCBhbmQgc2hhbGwgY29vcGVyYXRlIGZ1bGx5IFpBREFWQVRFTEkgbmFrbMOhZGF0c3Rha29Ww71tbmFyb2tlbSAoVsSNZXRuxJsKd2l0aCBTUE9OU09SIGluIGl0cyBoYW5kbGluZyBvZiB0aGUgY2xhaW0uIGplZG7DoW7DrSAoKSBtaW1vc291ZG7DrW0gdnlyb3Zuw6Fuw60sIGRsZSBzaXR1YWNlKQphIGJ1ZG91IHBocsSbIHNwb2x1cHJhY292YXQgc2UgWkFEQVZBVEVMRU0gbmEKxZllxaFlbsOtIHRvaG90byBuw6Fyb2t1LgoxMi4yLiBTdWJqZWN0IHRvIHRoaXMgU2VjdGlvbiwgYW55IGluZGVtbmlmbGNhdGlvbiBvZiB0aGUgMTIuMi4gUG9kbGUgdG9ob3RvIG9kZMOtbHUgamFrZSdrb2xpViBvZMWha29kbsSbbsOtCgpJbnN0aXR1dGlvbiBhbmQgSW52ZXN0aWdhdG9yIGJ5IFNQT05TT1Igc2hhbGwgYmUKdGhyb3VnaCAmIHNlcGFyYXRlIHdyaXR0ZW4gYWdyZWVtZW50IChvciBsZXR0ZXIpCgogCgp6ZHJhdm90bmlja8OpaG8gemHFmcOtemVuw60gYSBaa291xaFlanInY3InaG8gemUgc3RyYW55ClpBREFWQVRFTEUgYnVkZSB1xI1pbsSbbm8gbmEgesOha2xhZMSbIHNhbW9zdGF0bmUKCiAKCjI4NDY0MV8xNDA0LU9PNDRfQ1pFX0NaRTRfSU5TVCBQSSBDU0EgXyBCaWxpbmd1YWxfMjAyNTA0MDlfMS4wClN0cmFuYSAxMyB6IDY1CgogCgogCgpiZXR3ZWVuIEluc3RpdHV0aW9uLCBJbnZlc3RpZ2F0b3IgYW5kIFNQT05TT1IKZGlyZWN0bHkuIENSTyBzaGFsbCBhY3QgYXMgdGhlIGludGVybWVkaWFyeSB0bwpjb29yZGluYXRlIHRoZSBwcm92aXNpb24gb2YgYW55IHN1Y2ggYWdyZWVtZW50IG9yCmxldHRlciBvZiBpbmRlbW5pdHkgYnkgU1BPTlNPUiwgYW5kIHNoYWxsIGhhdmUgbm8Kb3RoZXIgb2JsaWdhdGlvbiBpbiBjb25uZWN0aW9uIHRoZXJld2l0aC4gUmVxdWVzdHMgZm9yCnN1Y2ggbGV0dGVycyBzaG91bGQgYmUgbWFkZSBpbiB3cml0aW5nIHRvIHRoZSBhZGRyZXNzCmJlbG93LCBvciBzZW50IHZpYSBlbWFpbCB0byBwcm9qZWN0IHRlYW0uCgpww61zZW1uw6kgZG9ob2R5IChuZWJvIHDFmcOtc2xpYnUpIHV6YXbFmWVuZScgcMWZw61tbyBtZXppCnpkcmF2b3RuaWNrw71tIHphxZnDrXplbsOtbSwgemtvdcWhZWrDrWPDrW0KYVpBREFWQVRFTEVNLiBDUk8gYnVkZSB2eXN0dXBvdmF0IGpha28KcHJvc3TFmWVkbsWvPCBzIGPDrWxlbSBrb29yZGlub3ZhdCB6w61za8OhbsOtIGpha8O9Y2hrb2xpCmRvaG9kIG5lYm8gcMWZw61zbGlixa8gb2TFoWtvZG7Em27DrSB6ZSBzdHJhbnkKWkFEQVZBVEVMRSBhbmVidWRlIG3DrXQgxb7DoWRub3Ugamlub3UKcG92aW5ub3N0IHMgdMOtbXRvIHNvdXZpc2Vqw61jw60uIMW9w6Fkb3N0aSBvIHR5dG8gcMWZw61zbGlieQpqZSB0xZllYmEgdcSNaW5pdCBww61zZW1uxJsgYSB6YXNsYXQgbmEgbsOtxb5lIHV2ZWRlbm91CmFkcmVzdSwgcMWZw61wYWRuxJsgZeKAlG1haWxlbSBwcm9qZWt0b3bDqW11IHTDvW11LgoKIAoKSW52ZXN0aWdhdG9yIENvbnRyYWN0cwoKQXR0ZW50aW9uICQlMjg0NjQxCgpQYXJleGVsIEludGVybmF0aW9uYWwgKElSTCkgTGltaXRlZApPbmUgS2lsbWFpbmhhbSBTcXVhcmUKCkluY2hpY29yZSBSb2FkCgpLaWxtYWluaGFtCgpEdWJsaW4gOAoKSXJlbGFuZAoKU21sb3V2eSBzZSB6a291xaFlasOtY8OtbQoKQXR0ZW50aW9uIDQlMiA4NDY0MQoKUGFyZXhlbCBJbnRlcm5hdGlvbmFsIChJUkwpIExpbWl0ZWQKT25lIEtpbG1haW5oYW0gU3F1YXJlCgpJbmNoaWNvcmUgUm9hZAoKS2lsbWFpbmhhbQoKRHVibGluIDgKCklyc2tvCgogCgpTdWNoIHJlcXVlc3RzIG11c3QgaW5jbHVkZSB0aGUgZnVsbCBsZWdhbCBuYW1lcyBhbmQKYWRkcmVzc2VzIG9mIGFsbCBwYXJ0aWVzIHdobyBhcmUgcmVxdWVzdGVkIHRvIGJlCmluZGVtbmlmbGVkIGJ5IFNQT05TT1IuCgpUeXRvIMW+w6Fkb3N0aSBtdXPDrSBvYnNhaG92YXQgdXBsbmUgam1lJ25vIHN1Ympla3R1CmEgYWRyZXN5IFbFoWVjaCBzdHJhbiwga3RlcsOpIHBvxb5hZHVqw60gb2TFoWtvZG7Em27DrSB6ZQpzdHJhbnkgWkFEQVZBVEVMRS4KCiAKCjEyLjMuCgpJbnN0aXR1dGlvbiBhbmQgSW52ZXN0aWdhdG9yIGFja25vd2xlZGdlIHRoYXQKU1BPTlNPUiBoYXMgbm8gb2JsaWdhdGlvbiB0byBpbmRlbW5pZnkgb3IgYmUKcmVzcG9uc2libGUgZm9yIGFueSBsb3NzLCBjbGFpbSwgY29zdCAoaW5jbHVkaW5nCnJlYXNvbmFibGUgYXR0b3JuZXkgZmVlcykgb3IgZGVtYW5kIGlmIGFuZCB0byB0aGUKZXh0ZW50IHN1Y2ggbG9zc2VzLCBjbGFpbXMgb3IgZGVtYW5kcyBhcmlzZSBmcm9tIGFueQppbmp1cmllcyBvciBkYW1hZ2VzIHJlc3VsdGluZyBmcm9tIEluc3RpdHV0aW9yxaVzLApJbnZlc3RpZ2F0b3JhcyBvciB0aGUgU3R1ZHkgUGVyc29ubmXFpXMgbmVnbGlnZW5jZSwKYnJlYWNoIG9mIHRoaXMgQWdyZWVtZW50LCBmYWlsdXJlIHRvIGFkaGVyZSB0byB0aGUKUHJvdG9jb2wsIGZhaWx1cmUgdG8gb2J0YWluIHNpZ25lZCBpbmZvcm1lZCBjb25zZW50CmZvcm1zLCBmYWlsdXJlIHRvIGZvbGxvdyBBcHBsaWNhYmxlIExhdywgbWlzdXNlIG9mCnRoZSBJbnZlc3RpZ2F0aW9uYWwgUHJvZHVjdCwgdW5hdXRob3JpemVkIHdhcnJhbnRpZXMsCm9yIHdpMTFmdTEgbWlzY29uZHVjdC4gVGhpcyBpbmRlbW5pZmxjYXRpb24Kb2JsaWdhdGlvbiBpcyB3aXRob3V0IHByZWp1ZGljZSB0byB0aGUgcHJlY2VkZW5jZSBvZgppbnN1cmFuY2UgY292ZXJhZ2UgZnJvbSBjb21wdWxzb3J5IGNsaW5pY2FsIHRyaWFsCmluc3VyYW5jZS4KCjEyLjMuCgpaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIGEgemtvdcWhZWrDrWPDrSBiZXJvdSBuYSBWxJtkb23DrSwKxb5lIFpBREFWQVRFTCBuZW1hIHBvdmlubm9zdCBvZMWha29kbml0IGFuaSBuZW7DrQpvZHBvdsSbZG7DvSB6YSBqYWtvdWtvbGkgenRyYXR1LCBuYXJvaywgVsO9ZGFqIChWxI1ldG7EmwpwxZlpbcSbxZllbsO9Y2ggcG9wbGF0a8WvIHByw6F2bsOtbSB6w6FzdHVwY8WvbSkgbmVibwpwb8W+YWRhdmVrLCBwb2t1ZCAoViBkYW7DqW0gcm96c2FodSkgdHl0byB6dHLDoXR5LApuYXJva3kgbmVibyBwb8W+YWRhdmt5LCBrZSBrdGVyw71tIGRvxaFsbyBWIGTFr3NsZWRrdQoKbmVkYmFsb3N0aSwgcG9ydcWhZW7DrSB0w6l0byBzbWxvdXZ5LCBuZWRvZHLFvmVuw60KcHJvdG9rb2x1LCBuZXrDrXNrYW7DrSBwb2RlcHNhbsO9Y2ggZm9ybXVsw6HFmcWvCmluZm9ybW92YW5lJ2hvIHNvdWhsYXN1LCBuZWRvZHLFvmVuw60gcGxhdG7DvWNoCnrDoWtvbsWvLCB6bmV1xb5pdMOtIGhvZG5vY2VuZSdobyBwxZnDrXByYXZrdSwKCm5lc2NodsOhbGVuw71jaCB6w6FydWssIGzDqWthxZlza8OpaG8gemFuZWRiw6Fuw60gcGXEjWUKbmVibyB6w6FtxJtybsOpaG8gcG9jaHliZW7DrSB6ZSBzdHJhbnkgemRyYXZvdG5pY2vDqWhvCnphxZnDrXplbsOtLCBaa291xaFlanInY3InaG8gbmVibyBwZXJzb27DoWx1IHN0dWRpZS4gVGVudG8KWsOhdmF6ZWsgb2TFoWtvZG7Em27DrSBuYXN0YW5lIGJlWiBvaGxlZHUgbmEKbmFkxZlhemVub3N0IHBvamlzdG5lJ2hvIGtyeXTDrSBacG9WaW5uZSdobyBwb2ppxaF0xJtuw60Kc3R1ZGllLgoKIAoKIAoKMTIuNC4KCk5laXRoZXIgQ1JPIG5vciBTUE9OU09SIHdpbGwgYmUgcmVzcG9uc2libGUgZm9yLAphbmQgSW5zdGl0dXRpb24gc2hhbGwgZGVmZW5kLCBpbmRlbW5pZnkgYW5kIGhvbGQKQ1JPLCBpdHMgQWZmaWxpYXRlcywgYW5kIFNQT05TT1IgKGFuZCB0aGVpcgpyZXNwZWN0aXZlIGRpcmVjdG9ycywgT2ZmaWNlcnMgYW5kIGVtcGxveWVlcykKaGFybWxlc3MgZnJvbSwgYW55IGxvc3MsIGNsYWltLCBvciBkZW1hbmQgYXJpc2luZwpmcm9tLCBidXQgbm90IGxpbWl0ZWQgdG8gYW55IChpKSBpbmp1cmllcyBvciBkYW1hZ2VzCmluY3VycmVkIGlmIHRoZXkgYXJlIHRoZSByZXN1bHQgb2YgbmVnbGlnZW5jZSBvciB3aWxmdWwKbWlzY29uZHVjdCBvbiB0aGUgcGFydCBvZiB0aGUgSW5zdGl0dXRpb24sIEludmVzdGlnYXRvcgpvciBTdHVkeSBQZXJzb25uZWw7IChpaSkgYWN0aXZpdGllcyBjb250cmFyeSB0byB0aGUKUHJvdG9jb2wsIGFueSB3cml0dGVuIFN0dWR5IEluc3RydWN0aW9ucywgdGhpcwpBZ3JlZW1lbnQsIG9yIEFwcGxpY2FibGUgTGF3OyAoaWlpKSB1bmF1dGhvcml6ZWQKd2FycmFudGllcyBtYWRlIGJ5IHRoZSBJbnN0aXR1dGlvbiwgSW52ZXN0aWdhdG9yIG9yClN0dWR5IFBlcnNvbm5lbCBjb25jZXJuaW5nIHRoZSBJbnZlc3RpZ2F0aW9uYWwKUHJvZHVjdDsgb3IgKGl2KSBjYXNlIGluIHdoaWNoIHdyaXR0ZW4gaW5mb3JtZWQKCiAKCjEyLjQuCgpDUk8gYW5pIFpBREFWQVRFTCBuZWJ1ZG91IG9kcG92xJtkbsOtCiYgWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBidWRlIGJyYW5pdCwgb2TFoWtvZG7DrSBhIHpiYXbDrQpvZHBvdsSbZG5vc3RpIENSTywgamVqw60gcMWZaWRydcW+ZW7DqSBzcG9sZcSNbm9zdGkKaSBaQURBVkFURUxFICgmIGplamljaCBwxZnDrXNsdcWhbsOpIMWZZWRpdGVsZSwgdmVkb3Vjw60KcHJhY292bsOta3kgYXphbcSbc3RuYW5jZSkgemEgamFrw6lrb2xpdiB6dHJhdHksCm5hcm9reSBuZWJvIHBvxb5hZGFrYSB2em5pa2Fqw61jw60gbWltbyBqaW7DqSB6ZSAoaSkKWmRyYXZvdG7DrSDDumpteSBuZWJvIMWha29kIHZ6bmlrbMO9Y2ggVmTFr3NsZWRrdQpuZWRiYWxvc3RpIG5lYm8gw7pteXNsbsOpaG8gcG9jaHliZW7DrSB6ZSBzdHJhbnkKemRyYXZvdG5pY2vDqWhvIHphxZnDrXplbsOtLCBaa291xaFlanInY3InaG8gbmVibyBwZXJzb27DoWx1CnN0dWRpZTsgKGlpKSDEjWlubm9zdMOtIFZ0b3pwb3J1IHNwcm90b2tvbGVtLApqYWvDvW1pa29saSBww61zZW1uw71taSBwb2t5bnkga2Ugc3R1ZGlpLCB0b3V0bwpzbWxvdXZvdSBuZWJvIHBsYXRuw71taSB6w6Frb255OyAoaWlpKSBuZXNjaHbDoWxlbsO9Y2gKWmFydWsgdcSNaW7Em27DvWNoIHpkcmF2b3RuaWNrw71tIHphxZnDrXplbsOtbSwKemtvdcWhZWrDrWPDrW0gbmVibyBwZXJzb27DoWxlbSBzdHVkaWUgdMO9a2Fqw61jw61jaCBzZQpob2Rub2NlbmUnaG8gcMWZw61wcmF2a3U7IG5lYm8gKGlWKSBwxZnDrXBhZHUsIGtkeSBuZWJ5bAp6w61za8OhbiBww61zZW1uw70gaW5mb3Jtb3ZhbsO9IHNvdWhsYXMgdnNvdWxhZHUKCiAKCjI4NDY0MV8xNDA0LTAwNDRfQ1pFX0NaRTRfSU5TVCBQSSBDU0EgXyBCaWxpbmd1YWxfMjAyNTA0MDlfMS4wClN0cmFuYSAxNCB6IDY1CgogCgogCgpjb25zZW50IHdhcyBub3Qgb2J0YWluZWQgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZQpQcm90b2NvbCBmb3IgdGhlIFN1YmplY3QgaW52b2x2ZWQgaW4gc3VjaCBjYXNlLgoKNSBwcm90b2tvbGVtIG9kIHN1Ympla3R1IGhvZG5vY2Vuw60sIGplaG/FviBzZSBkYW7DvQpwxZnDrXBhZCB0w71rYS4KCiAKCjEyLjUuCgpJbnN0aXR1dGlvbiBhbmQgSW52ZXN0aWdhdG9yIHNoYWxsIGJlIGxpYWJsZSB1bmRlciB0aGlzCkFncmVlbWVudCBmb3IgZGFtYWdlcyByZXN1bHRpbmcgZnJvbSBuZWdsaWdlbmNlIG9yCndpbGZ1bCBtaXNjb25kdWN0IGluIHRoZSBleGVjdXRpb24gb2YgdGhlIFN0dWR5LgoKMTIuNS4KCkRsZSB0w6l0byBzbWxvdXZ5IGpzb3UgemRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrQphemtvdcWhZWpyJ2NyJyBvZHBvdsSbZG7DrSB6YSDFoWtvZHUgdnpuaWtsb3UKeiBuZWRiYWxvc3RpIG5lYm8gw7pteXNsbsOpaG8gcHJvdGlwcsOhdm7DrWhvIGplZG7DoW7DrQpwxZlpIHByb3bDoWTEm27DrSB0w6l0byBzdHVkaWUuCgogCgoxMi42LgoKRm9yIHRoZSBhdm9pZGFuY2Ugb2YgZG91YnQsIEluc3RpdHV0aW9uIGFuZApJbnZlc3RpZ2F0b3IgYWdyZWUgYW5kIGFja25vd2xlZGdlIHRoYXQgQ1JPCmV4cHJlc3NseSBkaXNjbGFpbXMgYW5kIHNoYWxsIG5vdCBoYXZlIGFueSBsaWFiaWxpdHkKd2hhdHNvZXZlciBpbiBjb25uZWN0aW9uIHdpdGggdGhlIFNQT05TT1LDiQpTdHVkeSBEcnVnIG9yIHRoZSBQcm90b2NvbC4KCjEyLjYuCgpBYnkgc2UgcMWZZWRlxaFsbyBwb2NoeWJub3N0ZW0sIFpkcmF2b3RuaWNrw6kKemHFmcOtemVuw60gYSB6a291xaFlasOtY8OtIHNvdWhsYXPDrSBhIGJlcm91IG5hIFbEm2RvbcOtLCDFvmUKQ1JPIHNlIHbDvXNsb3ZuxJsgWsWZxa88YSBvZHBvdsSbZG5vc3RpIGEgYW5pIG5lYnVkZQptw610IMW+w6Fkbm91IG9kcG92xJtkbm9zdCBWIHNvdXZpc2xvc3RpIHMgaG9kbm9jZW7DvW0KcMWZw61wcmF2a2VtIFpBREFWQVRFTEUgbmVibyBwcm90b2tvbGVtLgoKIAoKIAoKIAoKIAoKIAoKMTMuIElOU1VSQU5DRSAxMy4gUE9KScWgVMSaTsONCgoxMy4xLiBJbnN0aXR1dGlvbiBoZXJlYnkgZGVjbGFyZXMgdGhhdCBpdCBob2xkcyBhbiBpbnN1cmFuY2UgMTMuMS4gWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBwcm9obGHFoXVqZSwgxb5lIG3DoSBkbGUgNSA0NQpwb2xpY3kgY292ZXJpbmcgbGlhYmlsaXR5IGluc3VyYW5jZSBmb3IgYW55IGRhbWFnZSBvZHN0LiAyLCBww61zbS4gMTEpIFrDoWtvbmEgxI0uIDM3Mi8yMDExIFNiLiwKY2F1c2VkIHdoaWxlIHByb3ZpZGluZyBtZWRpY2FsIHNlcnZpY2VzIHB1cnN1YW50IG96ZHJhdm90bnInY2ggc2x1xb5iw6FjaCxWZXpuxJtucidwb3pkxJtqxaHDrWNocMWZZWRwaXPFrywKU2VjdGlvbiA0NSAoMikgKG4pIG9mIHRoZSBBY3QgTm8uIDM3Mi8yMDExIEMwMTEuLCBvbiB1emF2xZllbnUgcG9qaXN0bm91IHNtbG91dnUgbmEgcG9qacWhdMSbbsOtCm1lZGljYWwgc2VydmljZXMsIGFzIGFtZW5kZWQuIEluc3RpdHV0aW9uIHNoYWxsIG9kcG92xJtkbm9zdGkgemEgxaFrb2R1IHpwxa9zb2Jlbm91IHDFmWkgcG9za3l0b3bDoW7DrQpwcm9tcHRseSBwcm92aWRlIGV2aWRlbmNlIG9mIGl0cyBpbnN1cmFuY2UgdXBvbiB6ZHJhdm90bsOtY2ggc2x1xb5lYi4gTmEgxb7DoWRvc3QgWkFEQVZBVEVMRSBuZWJvCnJlcXVlc3QgYnkgU1BPTlNPUiBvciBpdHMgZGVzaWduZWUuIGplaG8gcG9WxJvFmWVuZScgb3NvYnkgWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrQoKbmVwcm9kbGVuxJsgcG9za3l0bmUgZMWva2F6IG8gc3bDqW0gcG9qacWhdMSbbsOtLgoKMTMuMi4gQ1JPIHByb2N1cmVzIHRoYXQgU1BPTlNPUiBzaGFsbCwgdG8gdGhlIGV4dGVudCAxMy4yLiBDUk8gcHJvaGxhxaF1amUsIMW+ZSBaQURBVkFURUwgYnVkZSB2IHJvenNhaHUKcmVxdWlyZWQgYnkgbGF3LCBtYWludGFpbiBpbiBmdTExIGZvcmNlIGFuZCBlZmZlY3QgcG/FvmFkb3ZhbmUnbSBaw6Frb25lbSB1ZHLFvm92YXQgViBwbG5lJyBwbGF0bm9zdGkgYQp0aHJvdWdob3V0IHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgU3R1ZHkgY2xpbmljYWwgw7rEjWlubm9zdGkgcG8gY2Vsb3UgZG9idSBwcm92w6FkxJtuw60gc3R1ZGllIHBvamnFoXTEm27DrQp0cmlhbHMgbGlhYmlsaXR5IGluc3VyYW5jZSBpbiBhY2NvcmRhbmNlIHdpdGggbG9jYWwgb2Rwb3bEm2Rub3N0aSBrbGluaWNrw6kgc3R1ZGllIFYgc291bGFkdSBzIG3DrXN0bsOtbWkKcmVndWxhdGlvbnMuIHDFmWVkcGlzeS4KCjE0LiBERUJBUk1FTlQgMTQuIFrDgUtBWiDEjElOTk9TVEkKCjE0LjEuIEluc3RpdHV0aW9uIGFuZCBJbnZlc3RpZ2F0b3IgaGVyZWJ5IGNlcnRpZnkgdG8gdGhlIGJlc3QgMTQuMS4gWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBhIHprb3XFoWVqw61jw60gdMOtbXRvIG5hIHrDoWtsYWTEmwoKb2YgdGhlaXIga25vd2xlZGdlIGFuZCB1cG9uIHJlYXNvbmFibGUgaW5xdWlyeSB0aGF0Cm5laXRoZXIgSW5zdGl0dXRpb24sIEludmVzdGlnYXRvciBub3QgYW55IHBlcnNvbgplbXBsb3llZCBieSBJbnN0aXR1dGlvbiBvciBJbnZlc3RpZ2F0b3IgdG8gd29yayBvbiB0aGUKU3R1ZHkgKGluY2x1ZGluZyBhbnkgc3ViY29udHJhY3RvciBwZXJtaXR0ZWQKcHVyc3VhbnQgdG8gU2VjdGlvbiAmKSBoYXMgYmVlbjoKCm5lamxlcMWhxa9ybyBWxJtkb23DrSBhIHBvIHDFmWltxJvFmWVuZSdtIGRvdGF6dSBwb3R2cnp1aiDDrSAsCsW+ZSBvIHpkcmF2b3RuaWNrw6ltIHphxZnDrXplbsOtLCB6a291xaFlasOtY8OtbSBhbmkgxb7DoWRuw6kKb3NvYsSbIHphbcSbc3RuYW7DqSB6ZHJhdm90bmlja8O9bSB6YcWZw616ZW7DrW0gbmVibwp6a291xaFlasOtY8OtbSBrdnlrb25hVmFuw60gxI1pbm5vc3RpIHZlIHN0dWRpaSAoVsSNZXRuxJsKZG9kYXZhdGVsZSBwb3ZvbGVuw6lobyBvZGTDrWxlbSAmKSBuZXBsYXTDrQpuw6FzbGVkdWrDrWPDrToKCiAKCmEuIGRlYmFycmVkIGJ5IGFueSByZWxldmFudCBhdXRob3JpdGllcywgcHVyc3VhbnQgdG8KYW55IEFwcGxpY2FibGUgTGF3LCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvClNlY3Rpb24gMzA2KGEpIGFuZCAoYikgb2YgdGhlIFVTIEZlZGVyYWwgRm9vZCwKRHJ1ZyBhbmQgQ29zbWV0aWMgQWN0LCBvciBkaXNxdWFsaWZsZWQgYXMKJiBjbGluaWNhbCBpbnZlc3RpZ2F0b3IgdW5kZXIgQXBwbGljYWJsZSBMYXc7CgphLiBieWxhIGrDrSB6YWvDoXrDoW5hIMSNaW5ub3N0IGpha8O9bWtvbGkgcmVsZXZhbnRuw61tCsO6xZlhZGVtLCBwb2RsZSBqYWtlJ2hva29saSBwbGF0bmUnaG8gemFrb25hLCBtaW1vCmppbsOpIFbEjWV0bsSbIG9kZMOtbHUgMzA2KGEpIGEgKGIpIGFtZXJpY2vDqWhvCmZlZGVyw6FsbsOtaG8gesOha29uYSBvcG90cmF2aW7DoWNoLCBsw6ljw61jaAomIGtvc21ldGljZSwgbmVibyBieWxhIHpiYXZlbmEgZnVua2NlCmtsaW5pY2tlJ2hvIFprb3XFoWVqcidjcidobyBwb2RsZSBwbGF0bsO9Y2ggesOha29uxa87CgogCgogCgpiLiB0aHJlYXRlbmVkIHRvIGJlIGRlYmFycmVkIG9yIGluZGljdGVkIGZvciAmIGNyaW1lCm9yIG90aGVyd2lzZSBlbmdhZ2VkIGluIGNvbmR1Y3QgZm9yIHdoaWNoCiYgcGVyc29uIGNhbiBiZSBkZWJhcnJlZCB1bmRlciBBcHBsaWNhYmxlIExhdzsKCiAKCmIuIGhyb3rDrSBqw60sIMW+ZSBqw60gYnVkZSB6YWvDoXrDoW5hIMSNaW5ub3N0IG5lYm8gYnVkZQpvYsW+YWxvVmFuYSBaIHRyZXN0bsOpaG8gxI1pbnUsIG5lYm8gc2UgamluYWsKemFwb2ppbGEgZG8gY2hvdmFuw60sIHphIGt0ZXLDqSBqw60gbcWvxb5lIGLDvXQgcG9kbGUKcGxhdG7DvWNoIHrDoWtvbsWvIHVsb8W+ZW4gWsOha2F6IMSNaW5ub3N0aTsKCiAKCjI4NDY0MV8xNDA0LU9PNDRfQ1pFX0NaRTRfSU5TVCBQSSBDU0EgXyBCaWxpbmd1YWxfMjAyNTA0MDlfMS4wClN0cmFuYSAxNSB6IDY1CgogCgogCgpjLiBkaXNjaXBsaW5lZCBieSBhbmQvb3IgYmFubmVkIGJ5ICYgcmVsZXZhbnQKYXV0aG9yaXR5IGZyb20gY2Fycnlpbmcgb3V0IGNsaW5pY2FsIHRyaWFscy4KCmMuIGJ5bGEgZGlzY2lwbGluw6FybsSbIHBvdHJlc3TDoW5hIG5lYm8gasOtIGJ5bG8KcMWZw61zbHXFoW7DvW0gb3Jnw6FuZW0gemFrYXphbm8gcHJvdsOhZMSbbsOtCmtsaW5pY2vDvWNoIGhvZG5vY2Vuw60uCgogCgpGb3IgcHVycG9zZXMgb2YgdGhpcyBTZWN0aW9uLCBhbnkgb2YgdGhlIGZvcmVnb2luZwpzaGFsbCBiZSBkZWVtZWQgdG8gY29uc3RpdHV0ZSBiZWluZyDigJxkZWJhcnJlZOKAnC4KClBybyDDusSNZWx5IHRvaG90byBvZGTDrWx1IGJ1ZGUgY29rb2xpIFpWw73FoWUKdXZlZGVuZSdobyBwb3Zhxb5vdsOhbm8gemEgb3puYcSNZW7DrSDigJ5WeWxvdcSNZW7igJwuCgogCgoxNC4yLgoKSW4gYWRkaXRpb24sIEluc3RpdHV0aW9uIGFuZCBJbnZlc3RpZ2F0b3IgYWdyZWUgdGhhdCBubwpkZWJhcnJlZCBwZXJzb24gd2lsbCBpbiB0aGUgZnV0dXJlIGJlIGVtcGxveWVkIG9yCm90aGVyd2lzZSBlbmdhZ2VkIChpbmNsdWRpbmcgb24gJiBjb250cmFjdCBiYXNpcykgYnkKSW5zdGl0dXRpb24gb3IgSW52ZXN0aWdhdG9yIHRvIHdvcmsgb24gdGhlIFN0dWR5LiBJZgpkdXJpbmcgdGhlIGNvdXJzZSBvZiB0aGUgU3R1ZHksIEluc3RpdHV0aW9uIG9yCkludmVzdGlnYXRvciBiZWNvbWVzIGRlYmFycmVkIG9yIGxlYXJucyB0aGF0IGFueQpwZXJzb24gY29ubmVjdGVkIHdpdGggdGhlIFN0dWR5IGlzIGRlYmFycmVkLCBvciB0aGF0CnRoZXJlIGlzICYgdGhyZWF0IG9mIGRlYmFybWVudCBvZiBhbnkgc3VjaCBwZXJzb24sIHRoZW4KSW5zdGl0dXRpb24gYW5kIEludmVzdGlnYXRvciBtdXN0IHdpdGhvdXQgdW5kdWUgZGVsYXkKYWZ0ZXIgdGhleSBiZWNhbWUgYXdhcmUgb2Ygc3VjaCBmYWN0IG5vdGlmeQpTUE9OU09SIGFuZCBDUk8uIENSTyBtYXkgaW1tZWRpYXRlbHkKdGVybWluYXRlIHRoaXMgQWdyZWVtZW50IGluIHRoZSBldmVudCBhbnkgb2YgdGhlCmZvcmVnb2luZyBvY2N1cnMuCgoxNC4yLgoKS3JvbcSbIHRvaG8gWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBhIHprb3XFoWVqw61jw60Kc291aGxhc8OtLCDFvmUgVmJ1ZG91Y251IG5lemFtxJtzdG5hasOtIGFuaSBqaW5hawpuZXphcG9qw60gKFbEjWV0bsSbIHNtbHV2bsWvcm8gdnp0YWh1KSDFvmFkbm91CnZ5bG91xI1lbm91IG9zb2J1IGvEjWlubm9zdGVtIG5hIHN0dWRpaS4gUG9rdWQgc2UKdiBwcsWvYsSbaHUgc3R1ZGllIFpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gbmVibwp6a291xaFlasOtY8OtIHN0YW5vdSB2eWxvdcSNZW7DvW1pIG9zb2JhbWkgbmVibyB6amlzdMOtLArFvmUgamFrw6Frb2xpIG9zb2JhIHBvZMOtbGVqw61jw60gc2UgbmEgc3R1ZGlpIGplIHZ5bG91xI1lbm91Cm9zb2JvdSwgcMWZw61wYWRuxJsgaHJvesOtIHZ5bG91xI1lbsOtIGpha2Vrb2xpIHRha292ZScKb3NvYnksIHBhayBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIGEgemtvdcWhZWrDrWPDrSBtdXNlasOtCmJlWiB6Ynl0ZcSNbsOpaG8gb2RrbGFkdSBwb3TDqSwgY28gc2UgbyB0YWtvdsOpCnNrdXRlxI1ub3N0aSBkb3p2xJtkw60sIHV2xJtkb21pdCBaQURBVkFURUxFCiYgQ1JPLiBWIHDFmcOtcGFkxJssIMW+ZSBkb2ogZGUgayBWw73FoWUgdXZlZGVuZSdtdSwgbcWvxb5lCkNSTyBva2Ftxb5pdMSbIHZ5cG92xJtkxJt0IHR1dG8gc21sb3V2dS4KCiAKCiAKCiAKCiAKCiAKCjE1LiBQQVlNRU5UIFRFUk1TIEFORCBDT05ESVRJT05TIDE1LiBQTEFURUJOw40gUE9ETcONTktZCjE1LjEuIEluIGZ1MTEgY29uc2lkZXJhdGlvbiBmb3IgdGhlIFNlcnZpY2VzIG9mIEluc3RpdHV0aW9uLCAxNS4xLiBPZG3Em25vdSB6YSBzbHXFvmJ5IHpkcmF2b3RuaWNrw6lobyB6YcWZw616ZW7DrSwKSW52ZXN0aWdhdG9yIGFuZCBTdHVkeSBQZXJzb25uZWwgcmVuZGVyZWQgaW4gWmtvdcWhZWpyJ2PFr3JvIGEgcGVyc29uw6FsdSBzdHVkaWUgcHJvdsOhZMSbbsOpIFYgc291bGFkdQpjb21wbGlhbmNlIHdpdGggdGhlIFByb3RvY29sIGFuZCBzdWJqZWN0IHRvIFNlY3Rpb24gcyBwcm90b2tvbGVtICYgcG9kbGUgb2Rkw61sdSAmIHTDqXRvIHNtbG91dnkKJiBvZiB0aGlzIEFncmVlbWVudCwgQ1JPIGFncmVlcyB0byBwYXkgdGhlIGZlZXMgc291aGxhc8OtIENSTyBzIMO6aHJhZG91IHBvcGxhdGvFryBhIFbDvWRhasWvCmFuZCBleHBlbnNlcyBzZXQgZm9ydGggaW4gRXhoaWJpdCBBLiBTdWNoIGZlZXMgYW5kIHV2ZWRlbsO9Y2h2IFDFmcOtbG96ZSBBLiBUeXRvIHBvcGxhdGt5ICYgdsO9ZGFqZWJ1ZG91CmV4cGVuc2VzIHdpbGwgYmUgcGFpZCBzb2xlbHkgdG8gdGhlIFBheWVlcywgZXhjZXB0IGFzIHZ5cGxhY2VueSBWw71ocmFkbsSbIHDFmcOtamVtY8WvbSBwbGF0ZWIsIHBva3VkIG5lYnVkZQpvdGhlcndpc2UgZXhwcmVzc2x5IHNldCBmb3J0aCBpbiBFeGhpYml0IEEuIFRoZSBQYXJ0aWVzIHbDvXNsb3ZuxJsgamluYWsgdXZlZGVubyBWIFDFmcOtbG96ZSBBLiBTdHJhbnkgc291aGxhc8OtCmFncmVlIHRoYXQgRXhoaWJpdCBBIF8gUGF5bWVudCBUZXJtcyBhbmQgQnVkZ2V0IGlzIHMgdMOtbSwgxb5lIFDFmcOtbG9oYSBBIF8gUGxhdGVibsOtIHBvZG3DrW5reSBhIHJvenBvxI1ldCBfCnBhcnQgb2YgdGhpcyBBZ3JlZW1lbnQgY2xhcmlmeWluZyB0aGUgcGF5bWVudHMgdGVybXMgamUgc291xI3DoXN0w60gdMOpdG8gc21sb3V2eSBhIG9iamFzxYh1amUgcGxhdGVibsOtCmFzc29jaWF0ZWQgd2l0aCB0aGlzIEFncmVlbWVudCBhbmQgdGhhdCB0aGUgZmVlcyBhbmQgcG9kbcOtbmt5IHYgc291dmlzbG9zdGkgcyB0b3V0byBzbWxvdXZvdSAmIMW+ZQpleHBlbnNlcyBzZXQgZm9ydGggaW4gRXhoaWJpdCBBIHJlcHJlc2VudCB0aGUgZmFpciBwb3BsYXRreSBhIHbDvWRhamUgdXZlZGVuw6kgdiBQxZnDrWxvemUgQXDFmWVkc3RhdnVqw60KbWFya2V0IHZhbHVlIGZvciB0aGUgU2VydmljZXMgcHJvdmlkZWQgYnkgSW5zdGl0dXRpb24gc3ByYXZlZGxpdm91IHRyxb5uw60gaG9kbm90dSB6YSBzbHXFvmJ5IHBvc2t5dG92YW7DqQphbmQgSW52ZXN0aWdhdG9yLiBQYXltZW50cyBzaGFsbCBiZSBtYWRlIGluIHpkcmF2b3RuaWNrw71tIHphxZnDrXplbsOtbSBhIHprb3XFoWVqw61jw61tLiBQbGF0YnkKYWNjb3JkYW5jZSB3aXRoIHRoZSBwcm92aXNpb25zIHNldCBmb3J0aCBpbiBFeGhpYml0IEEsIGJ1ZG91IHZ5a29uw6F2YW7DqSB2IHNvdWxhZHUgcyB1c3Rhbm92ZW7DrW1pCndpdGggdGhlIGxhc3QgcGF5bWVudCBiZWluZyBtYWRlIGFmdGVyIEluc3RpdHV0aW9uIGFuZCB1dmVkZW7DvW1pIHYgUMWZw61sb3plIEEgcyB0w61tLCDFvmUgcG9zbGVkbsOtIHBsYXRiYSBidWRlCkludmVzdGlnYXRvciBjb21wbGV0ZSBhbGwgb2YgdGhlaXIgb2JsaWdhdGlvbnMgdW5kZXIgcHJvdmVkZW5hIHBvdMOpLCBjbyB6ZHJhdm90bmlja8OpIHphxZnDrXplbsOtIGEgemtvdcWhZWrDrWPDrQp0aGlzIEFncmVlbWVudCBhbmQgYW55IEV4aGliaXRzIHRoZXJldG8uIEluc3RpdHV0aW9uIHpha29uxI3DrSBzdmUgdmXFoWtlcsOpIFrDoXZhemt5IHBvZGxlIHTDqXRvIHNtbG91dnkKYW5kIEludmVzdGlnYXRvciBzaGFsbCBub3Qgc2VlayByZWltYnVyc2VtZW50IGZvciBhbnkgJiB2ZcWha2Vyw71jaCBqZWrDrWNoIHDFmcOtbG9oLiBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtCm1lZGljYWwgc2VydmljZXMgb3IgSW52ZXN0aWdhdGlvbmFsIFByb2R1Y3QgZnJvbSBhbnkgJiB6a291xaFlasOtY8OtIG5lYnVkb3UgdXNpbG92YXQgbyDDumhyYWR1IGpha8O9Y2hrb2xpCnRoaXJkIHBhcnR5IHBheWVycyBpZiBzdWNoIGNvc3RzIGFyZSBhbHJlYWR5IGNvdmVyZWQgYnkgemRyYXZvdG7DrWNoIHNsdcW+ZWIgbmVibyBob2Rub2NlbmUnaG8gcMWZw61wcmF2a3Ugb2QKcGF5bWVudHMgbWFkZSB1bmRlciB0aGlzIEFncmVlbWVudC4gcGzDoXRjxa8gamFrw71jaGtvbGkgdMWZZXTDrWNoIHN0cmFuLCBwb2t1ZCBidWRvdSB0eXRvCnbDvWRhamUgemFocm51dHkgdiBwbGF0YsOhY2ggcHJvdsOhZMSbbsO9Y2ggcG9kbGUgdMOpdG8KCnNtbG91dnkuCgoxNS4yLiBJbnN0aXR1dGlvbiBhbmQgSW52ZXN0aWdhdG9yIHNoYWxsIGNvbXBseSB3aXRoIGFsbCAxNS4yLiBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIGEgemtvdcWhZWrDrWPDrSBidWRvdSBwbG5pdAoKb2JsaWdhdGlvbnMgd2l0aCByZXNwZWN0IHRvIHRheGVzIGFuZCBzb2NpYWwgc2VjdXJpdHkKY29udHJpYnV0aW9ucywgaWYgYXBwbGljYWJsZSwgd2hpY2ggcmVsYXRlIHRvIHRoZQpzdWJqZWN0IG1hdHRlciBvZiB0aGlzIEFncmVlbWVudCBpbmNsdWRpbmcsIHdpdGhvdXQKbGltaXRhdGlvbiwgdGhvc2UgdGhhdCByZWxhdGUgdG8gYW55IHBheW1lbnRzIG1hZGUKaGVyZXVuZGVyIHRvIEluc3RpdHV0aW9uLCBJbnZlc3RpZ2F0b3IsIFN0dWR5CgogCgpWxaFlY2hueSBaw6F2YXpreSBzIG9obGVkZW0gbmEgZGFuxJsgYSBwxZnDrXNwxJt2a3kgbmEKc29jacOhbG7DrSB6YWJlenBlxI1lbsOtLCBqZeKAlGxpIHRvIHJlbGV2YW50bsOtLCBrdGVyw6kgc2UKdnp0YWh1asOtIGsgcMWZZWRtxJt0dSB0w6l0byBzbWxvdXZ5LCBWxI1ldG7EmyB0xJtjaCwga3RlcsOpCnNlIHZ6dGFodWrDrSBrIHBsYXRiw6FtIHByb3bDoWTEm27DvW0gemRyYXZvdG5pY2vDvW0KemHFmcOtemVuw61tLCB6a291xaFlasOtY8OtbSBuZWJvIHBlcnNvbsOhbGVtIHN0dWRpZSBwb2RsZQoKIAoKMjg0NjQxXzE0MDQtMDA0NF9DWkVfQ1pFNF9JTlNUIFBJIENTQSBfIEJpbGluZ3VhbF8yMDI1MDQwOV8xLjAKU3RyYW5hIDE2IHogNjUKCiAKCiAKClBlcnNvbm5lbCBvciwgYXMgdGhlIGNhc2UgbWF5IGJlLCB0aG9zZSB0aGF0IHJlbGF0ZSB0bwphbnkgcGF5bWVudHMgbWFkZSBieSBJbnN0aXR1dGlvbiBvciBJbnZlc3RpZ2F0b3IgdG8KU3R1ZHkgUGVyc29ubmVsLgoKdMOpdG8gc21sb3V2eSwgcMWZw61wYWRuxJsgdMSbY2gsIGt0ZXLDqSBzZSB2enRhaHVqw60KayBqYWvDvW1rb2xpIHBsYXRiw6FtIHByb3ZlZGVuw71tIHpkcmF2b3RuaWNrw71tCnphxZnDrXplbsOtbSBuZWJvIHprb3XFoWVqw61jw61tIFbFr8SNaSBwZXJzb27DoWx1IHN0dWRpZS4KCiAKCjE1LjMuCgpJbnN0aXR1dGlvbiBhbmQgSW52ZXN0aWdhdG9yIGFja25vd2xlZGdlIGFuZCBhZ3JlZQp0aGF0IGl0cywgaGlzIG9yIGhlciBqdWRnbWVudCB3aXRoIHJlc3BlY3QgdG8gaXRzLCBoaXMgb3IKaGVyIGFkdmljZSB0byBhbmQgY2FyZSBvZiBlYWNoIFN1YmplY3QgaXMgbm90IGFuZCBzaGFsbApub3QgYmUgYWZmZWN0ZWQgYnkgdGhlIGNvbXBlbnNhdGlvbiBJbnN0aXR1dGlvbiBhbmQvb3IKSW52ZXN0aWdhdG9yIHJlY2VpdmUgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBTdHVkeS4KCjE1LjMuCgpaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIGEgemtvdcWhZWrDrWPDrSBiZXJvdSBuYSBWxJtkb23DrQomIHNvdWhsYXPDrSBzIHTDrW0sIMW+ZSBqZWppY2ggw7pzdWRlayBzIG9obGVkZW0gbmEgamVqaWNoCnJhZHUga2HFvmRlJ211IHN1Ympla3R1IGhvZG5vY2Vuw60gYSBww6nEjWkgbyBuxJtqIG5lbsOtCmEgbmVidWRlIG92bGl2bsSbbiBvZG3Em25vdSwga3Rlcm91IFpkcmF2b3RuaWNrw6kKemHFmcOtemVuw60gYS9uZWJvIHprb3XFoWVqw61jw60gb2JkcsW+w60gViByw6FtY2kgc3R1ZGllLgoKIAoKMTUuNC4KCkluc3RpdHV0aW9uIGFuZCBJbnZlc3RpZ2F0b3IgYWdyZWUgdGhhdCBTUE9OU09SIGFuZApDUk8gbWF5IGRpc2Nsb3NlIHRoZSBmZWVzIGFuZCBleHBlbnNlcyBwYXlhYmxlIG9yCnBhaWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgdG8gYW55IGdvdmVybm1lbnRhbAphdXRob3JpdGllcyBhY2NvcmRpbmcgdG8gQXBwbGljYWJsZSBMYXcuCgoxNS40LgoKWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBhIHprb3XFoWVqw61jw60gc291aGxhc8OtIHMgdMOtbSwgxb5lClpBREFWQVRFTCBhQ1JPIG1vaG91IG9kdGFqbml0IGluZm9ybWFjZQooKSBvZG3Em27DoWNoIGEgdsO9ZGFqw61jaCBzcGxhdG7DvWNoIG5lYm8gdWhyYXplbsO9Y2gKcG9kbGUgdMOpdG8gc21sb3V2eSBsaWJvdm9sbsO9bSBWbMOhZG7DrW0gw7rFmWFkxa9tCnBvZGxlIHBsYXRuw71jaCB6w6Frb27Fry4KCiAKCjE1LjUuCgpJbnN0aXR1dGlvbiBhbmQgSW52ZXN0aWdhdG9yIGFja25vd2xlZGdlIGFuZCBhZ3JlZQp0aGF0IENSTyBpcyBwcm9jdXJpbmcgdGhlIFNlcnZpY2VzIHRvIHN1cHBvcnQgdGhlClNQT05TT1LDiSBTdHVkeSBpbiBhY2NvcmRhbmNlIFdpdGggQ1JPLHMKc2VwYXJhdGUgYWdyZWVtZW50IHdpdGggU1BPTlNPUi4gQ1JPIHNoYWxsCm5laXRoZXIgaGF2ZSBhbnkgcGF5bWVudCBvYmxpZ2F0aW9ucywgbm9yIGJlIGxpYWJsZQpoZXJldW5kZXIsIGluIHRoZSBldmVudCBhZGVxdWF0ZSBmdW5kcyBhcmUgbm90IG1hZGUKYXZhaWxhYmxlIGJ5IFNQT05TT1IgZm9yIHBheW1lbnQgaGVyZXVuZGVyIGluCmFjY29yZGFuY2Ugd2l0aCBFeGhpYml0IEEuIEluc3RpdHV0aW9uIGFuZApJbnZlc3RpZ2F0b3IgbWF5IG9idGFpbiBpbmRlbW5pZmxjYXRpb24gZnJvbSB0aGUKU3BvbnNvciBpbiBhY2NvcmRhbmNlIHdpdGggU2VjdGlvbiAlIG9mIHRoZQpBZ3JlZW1lbnQuIENSTyBpcyBhY2tub3dsZWRnZWQgdGhhdCBJbnN0aXR1dGlvbgphbmQgSW52ZXN0aWdhdG9yIG1heSBzdXNwZW5kIHByb3Zpc2lvbiBvZiBTZXJ2aWNlcwp1bmRlciB0aGUgQWdyZWVtZW50IGR1ZSB0byB1bmF2YWlsYWJpbGl0eSBvZiB0aGUgc2FpZApmdW5kcyBmb3IgQ1JPIHRvIGZ1bGZpbGwgdGhlaXIgcGF5bWVudCBvYmxpZ2F0aW9ucy4KCjE1LjUuCgpaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIGEgemtvdcWhZWrDrWPDrSBiZXJvdSBuYSBWxJtkb23DrQomIHNvdWhsYXPDrSBzIHTDrW0sIMW+ZSBDUk8gb2JzdGFyw6F2w6Egc2x1xb5ieSwgYWJ5CnBvZHBvxZlpbGEgc3R1ZGlpIFpBREFWQVRFTEUgViBzb3VsYWR1CnNlIHNhbW9zdGF0bm91IHNtbG91dm91IENSTyBzZQpaQURBVkFURUxFTS4gQ1JPIG5lYnVkZSBtw610IMW+w6FkbsOpIHBsYXRlYm7DrQpaw6F2YXpreSBhbmkgbmVidWRlIG9kcG92xJtkbmEgcG9kbGUgdMOpdG8gc21sb3V2eQp2IHDFmcOtcGFkxJssIMW+ZSBaQURBVkFURUwgbmVwb3NreXRuZSBkb3N0YXRlxI1uw6kKZmluYW7EjW7DrSBwcm9zdMWZZWRreSBrdWhyYWTEmyBwb2RsZSB0w6l0byBzbWxvdXZ5CnYgc291bGFkdSBzIFDFmcOtbG9ob3UgQSBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtCiYgemtvdcWhZWrDrWPDrSBtb2hvdSBvZCB6YWRhdmF0ZWxlIFrDrXNrYXQgb2TFoWtvZG7Em27DrQp2IHNvdWxhZHUgcyBvZGTDrWxlbSAxMi4yLiB0w6l0byBzbWxvdXZ5LiBDUk8gYmVyZSBuYQpWxJtkb23DrSwgxb5lIFpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gJiB6a291xaFlasOtY8OtIG1vaG91CnBvemFzdGF2aXQgcG9za3l0b3bDoW7DrSBzbHXFvmViIHBvZGxlIHNtbG91dnkgegpkxa92b2R1IG5lZG9zdHVwbm9zdGkgdXZlZGVuw71jaCBmaW5hbsSNbsOtY2gKcHJvc3TFmWVka8WvIHBybyBDUk8ga2Ugc3BocsSbbnInIHN2w71jaCBwbGF0ZWJuw61jaApwb3Zpbm5vc3TDrS4KCiAKCiAKCjE2LgoKVEVSTUlOQVRJT04KCjE2LgoKVUtPTiDEjEVOIMONIFNNTE9VVlkKCiAKCjE2LjEuCgpUaGlzIEFncmVlbWVudCB3aWxsIGJlY29tZSBlZmZlY3RpdmUgdXBvbiB0aGUgZGF0ZQp3aGVuIHNpZ25lZCBieSBhbGwgcGFydGllcyBhcyBvZiB0aGUgZGF5IG9mIHB1YmxpY2F0aW9uCmluIHRoZSByZWdpc3RlciBvZiBjb250cmFjdHMgYW5kIHNoYWxsIGNvbnRpbnVlIGluIGVmZmVjdApmb3IgdGhlIGZ1bGwgZHVyYXRpb24gb2YgdGhlIFN0dWR5IGF0IHRoZSBJbnN0aXR1dGlvbgphY2NvcmRpbmcgdG8gdGhlIFByb3RvY29sIHVubGVzcyBzb29uZXIgdGVybWluYXRlZCBpbgphY2NvcmRhbmNlIHdpdGggdGhlIHByb3Zpc2lvbnMgb2YgdGhpcyBTZWN0aW9uLiBDUk8KbWF5IHRlcm1pbmF0ZSB0aGlzIEFncmVlbWVudCBpbW1lZGlhdGVseSB1cG9uCndyaXR0ZW4gbm90aWNlIHRvIEluc3RpdHV0aW9uIGFuZCBJbnZlc3RpZ2F0b3IgZm9yIGFueQpyZWFzb25zLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHVwb24gYW55IG9mIHRoZQpmb2xsb3dpbmcgb2NjdXJyZW5jZXM6CgoxNi4xLgoKVGF0byBzbWxvdXZhIHZzdG91cMOtIHZwbGF0bm9zdCBrb2thbcW+aWt1LCBrZHkKYnVkZSBwb2RlcHPDoW5hIFbFoWVtaSBzdHJhbmFtaSBrZGF0dSB1dmXFmWVqbsSbbsOtCnYgcmVnaXN0cnUgc21sdXYsIGFidWRlIHRydmF0IHBvIGNlbG91IGRvYnUgdHJ2w6Fuw60Kc3R1ZGllIHZlIHpkcmF2b3RuaWNrw6ltIHphxZnDrXplbsOtIHBvZGxlIHByb3Rva29sdSwKcG9rdWQgbmVidWRlIGTFmcOtdmUgdnlwb3bEm3plbmEgViBzb3VsYWR1CnMgdXN0YW5vdmVuw61taSB0b2hvdG8gb2Rkw61sdS4gQ1JPIG3Fr8W+ZSB2eXBvdsSbZMSbdAp0dXRvIHNtbG91dnUgYmV6cHJvc3TFmWVkbsSbIHDDrXNlbW5vdSBWw71wb1bEm2TDrQpaZHJhdm90bmlja2UnbXUgemHFmcOtemVuw60gYSB6a291xaFlasOtY8OtbXUgeiBqYWvDvWNoa29saQpkxa92b2TFrywgbWltbyBqaW7DqSBWxI1ldG7EmyBqYWvDvWNoa29saSBaIG7DoXNsZWR1asOtY8OtY2gKU2x0dWFjw606CgogCgogCgphLiBJbnN0aXR1dGlvbiBvciBJbnZlc3RpZ2F0b3IgaGFzIGZhaWxlZCB0byBjdXJlCiYgYnJlYWNoIHRvIHRoaXMgQWdyZWVtZW50IHdpdGhpbiB0aGlydHkgKDMwKSBkYXlzCm9mIHJlY2VpcHQgb2Ygd3JpdHRlbiBub3RpY2UgU3BlY2lmeWluZyBzdWNoCmJyZWFjaDtvcgoKIAoKYS4gWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBuZWJvIHprb3XFoWVqw61jw60gbmVuYXByYVbDrQpwb3J1xaFlbsOtIHTDqXRvIHNtbG91dnkgZG8gdMWZaWNldGkgKDMwKSBkbsWvIG9kCnDFmWlqIGV0w60gb2JkcsW+ZW7DrSBww61zZW1uZSdobyBvem5hbWVuw60gdVZhZMSbanInY3InaG8KdG90byBwb3J1xaFlbsOtOyBuZWJvCgogCgoyODQ2NDFfMTQwNC1PTzQ0X0NaRV9DWkU0X0lOU1QgUEkgQ1NBIF8gQmlsaW5ndWFsXzIwMjUwNDA5XzEuMApTdHJhbmEgMTcgeiA2NQoKIAoKIAoKYi4gSW52ZXN0aWdhdG9yIGJlY29tZXMgcGVyc29uYWxseSB1bmF2YWlsYWJsZSB0bwpjb25kdWN0IHRoZSBTdHVkeSBhbmQgJiBDUk/igJQgYXBwcm92ZWQKcmVwbGFjZW1lbnQgaGFzIG5vdCBiZWVuIGlkZW50aWZpZWQgYnkgSW5zdGl0dXRpb24KYW5kIEludmVzdGlnYXRvcjsgb3IKCmIuIFprb3XFoWVqw61jw60gbmVuw60gb3NvYm7EmyBzY2hvcGVuIHByb3bDoWTEm3Qgc3R1ZGlpCiYgWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBhIHprb3XFoWVqw61jw60gbmV1csSNaWxpCm7DoWhyYWRuw61rYSBzY2h2w6FsZW7DqWhvIENSTzsgbmVibwoKIAoKYy4gaWYgU1BPTlNPUiBkZXRlcm1pbmVzLCBpbiBpdHMgc29sZSBhbmQgYWJzb2x1dGUKZGlzY3JldGlvbiwgdGhhdCAmIHN1ZmZpY2llbnQgbnVtYmVyIG9mIHN1YmplY3RzIGZvcgpwYXJ0aWNpcGF0aW9uIGluIHRoZSBTdHVkeSB0byBtYWtlIGl0IGxpa2VseSB0aGF0IHRoZQpzdGF0aXN0aWNhbCByZXF1aXJlbWVudHMgYXBwbGljYWJsZSB0byB0aGUgU3R1ZHkKd2kxMWJlIG1ldCBvciBoYXMgZmFpbGVkIHRvIGJlIGVucm9sbGVkOyBvcgoKYy4gWkFEQVZBVEVMIG5hIHrDoWtsYWTEmyBzdsOpaG8gVsO9aHJhZG7Fr3JvCiYgYWJzb2x1dG7DrWhvIHVWYcW+ZW7DrSByb3pob2RuZSwgxb5lIGJ5bCBuYXBocsSbbgpkb3N0YXRlxI1uw70gcG/EjWV0IHN1Ympla3TFryBwcm8gw7rEjWFzdCB2ZSBzdHVkaWksCnDFmcOtcGFkbsSbIMW+ZSBzZSBuZXBvZGHFmWlsbyBwcm92ZXN0IG7DoWJvcgpkb3N0YXRlxI1uw6lobyBwb8SNdHUgc3ViamVrdMWvLCBhYnkgYnlsbwpwcmF2ZMSbcG9kb2Juw6ksIMW+ZSBidWRvdSBzcGxuxJtueSBzdGF0aXN0aWNrw6kKcG/FvmFkYWthIHNvdXZpc2Vqw61jw60gc2Ugc3R1ZGnDrTsgbmVibwoKIAoKZC4gdGhlIGF1dGhvcml6YXRpb24vYXV0aG9yaXNhdGlvbiBhbmQgYXBwcm92YWwgdG8KcGVyZm9ybSB0aGUgU3R1ZHkgaXMgd2l0aGRyYXduIGJ5IHRoZSByZWd1bGF0b3J5CmF1dGhvcml0eSBnb3Zlcm5pbmcgSW5zdGl0dXRpb247IG9yCgpkLiBrb250cm9sbsOtIMO6xZlhZCwgZG8gamVob8W+IHDFr3NvYm5vc3RpIHNwYWRhClpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60sIG9kdm9sw6EgcG92b2xlbsOtCiYgc291aGxhc27DqSBzdGFub3Zpc2tvIGsgcHJvdsOhZMSbbsOtIHN0dWRpZTsKCiAKCmUuIHRoZSBhdWRpdCBvciByZWd1bGF0b3J5IGluc3BlY3Rpb24gaWRlbnRpZmllcyAmCnNlcmlvdXMgYnJlYWNoIG9yIGxhY2sgb2YgY29tcGxpYW5jZSB3aXRoIHRoaXMKQWdyZWVtZW50OyBvcgoKZS4gYXVkaXQgbmVibyBrb250cm9sYSBrb250cm9sbsOtaG8gw7rFmWFkdSBvZGhhbMOtClrDoXZhxb5uw6kgcG9ydcWhZW7DrSBuZWJvIG5lZG9kcsW+ZW7DrSB0w6l0byBzbWxvdXZ5OwpuZWJvCgogCgogCgpmLiBpZiBhbnkgb2YgdGhlIGNpcmN1bXN0YW5jZXMgcGVybWl0dGluZyBmLiBwb2t1ZCBkb2pkZSBrIGpha2Vrb2xpIHNpdHVhY2ksIGt0ZXLDoSB1bW/Fvm7DrQp0ZXJtaW5hdGlvbiBwdXJzdWFudCB0byBTZWN0aW9uIDE0LiBEZWJhcm1lbnQgVsO9cG92xJvEjyBzbWxvdXZ5IHBvZGxlIG9kZMOtbHUgMTQuIFrDoWthegpvY2N1ci4gxI1pbm5vc3RpLgoKMTYuMi4gVGhpcyBBZ3JlZW1lbnQgbWF5IGJlIHRlcm1pbmF0ZWQgYnkgSW5zdGl0dXRpb24gb3IgMTYuMi4gWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBuZWJvIHprb3XFoWVqw61jw60gbcWvxb5lCgpJbnZlc3RpZ2F0b3IsIHVwb24gc2l4dHkgKDYwKSBkYXlzLCBwcmlvciB3cml0dGVuCm5vdGljZSwgZm9yIGJyZWFjaCBvZiBjb250cmFjdCBieSBDUk8gaWYgdGhlIGJyZWFjaCBpcwpub3QgY3VyZWQgd2l0aGluIHRoaXJ0eSAoMzApIGRheXMgb2Ygbm90aWZpY2F0aW9uLgoKdnlwb3bEm2TEm3QgdHV0byBzbWxvdXZ1IG5hIHrDoWtsYWTEmyBww61zZW1uw6kKVsO9cG9WxJtkaSBzIFbDvXBvdsSbZG7DrSBsaMWvdG91IMWhZWRlc8OhdCAoNjApIGRuw60sIGEgdG8KeiBkxa92b2R1IHBvcnXFoWVuw6kgc21sb3V2eSB6ZSBzdHJhbnkgQ1JPLCBwb2t1ZApuZWRvamRlIGtuYXByYVbEmyBwb3J1xaFlbsOtIGRvIHTFmWljZXRpICgzMCkgZG7DrSBwbwp1cG96b3JuxJtuw60gbmEgdG90byBwb3J1xaFlbsOtLgoKIAoKMTYuMy4KCklmIHRoaXMgQWdyZWVtZW50IGlzIHRlcm1pbmF0ZWQgcHJlbWF0dXJlbHkgaW4KYWNjb3JkYW5jZSB3aXRoIFNlY3Rpb24gMTYuMS4gb3IgMTYuMi4sIEluc3RpdHV0aW9uIGFuZApJbnZlc3RpZ2F0b3Igc2hhbGwvbXVzdCB1c2UgaXRzLCBoaXMgb3IgaGVyIGJlc3QgZWZmb3J0cwp0bzoKCjE2LjMuCgpQb2t1ZCBkb2pkZSBrdnlwb1bEm3plbsOtIHTDqXRvIHNtbG91dnkgcMWZZWTEjWFzbsSbCnYgc291bGFkdSBzIG9kZMOtbGVtICYgbmVibyAmLCB6ZHJhdm90bmlja8OpCnphxZnDrXplbsOtIGFaa291xaFlasOtY8OtIHZ5Vmlub3UgbmVibyBtdXPDrSB2eXZpbm91dAptYXhpbcOhbG7DrSDDunNpbMOtLCBhYnk6CgogCgphLiBtaW5pbWl6ZSBmdXJ0aGVyIGNvc3RzIHdoaWxlIG1haW50YWluaW5nIHByb3BlcgptZWRpY2FsIGNhcmUgb2YgdGhlIFN1YmplY3RzOyBhbmQ7CgphLiBtaW5pbWFsaXpvdmFsaSBkYWzFocOtIG5ha2xhZHkgYXphcm92ZcWICnphamnFocWlb3ZhbGkgxZnDoWRub3UgWmRyYXZvdG7DrSBww6nEjWkgc3ViamVrdMWvbQpob2Rub2NlbsOtOzphCgogCgpiLiBwcm92aWRlIGNvb3BlcmF0aW9uIHRvIHRoZSBTUE9OU09SL0NSTyBhbmQKb3RoZXIgc3R1ZHkgc2l0ZSwgYXMgdGhlIGNhc2UgbWF5IGJlLCBpbiBvcmRlciBmb3IKYWxsIFN1YmplY3RzIHRvIGNvbXBsZXRlIHRoZSBTdHVkeSBhY2NvcmRpbmcgdG8KdGhlIFByb3RvY29sLCB1bmxlc3MgZGljdGF0ZWQgb3RoZXJ3aXNlIGJ5IFN0dWR5Ckluc3RydWN0aW9ucy4KCmIuIHBvc2t5dGxpIHNvdcSNaW5ub3N0IFpBREFWQVRFTEkgLyBDUk8gJgpwxZnDrXBhZG7EmyBqaW5lJ211IHN0dWRpam7DrW11IGNlbnRydSB6YSDDusSNZWxlbSwKYWJ5IFbFoWVjaG55IHN1YmogZWt0eSBob2Rub2NlbsOtIGRva29uxI1pbHkgc3R1ZGlpCnBvZGxlIHByb3Rva29sdSwgcG9rdWQgbmVidWRlIHYgcG9reW5lY2gga2UKc3R1ZGlpIG5hxZnDrXplbm8gamluYWsuCgogCgogCgoxNi40LgoKU2hvdWxkIEludmVzdGlnYXRvciBjb25jbHVkZSB0aGF0IGNvbnRpbnVhdGlvbiBvZiB0aGUKU3R1ZHkgaXMgbm8gbG9uZ2VyIG1lZGljYWxseSBqdXN0aWZsYWJsZSwgZHVlIHRvIChpKQp1bmV4cGVjdGVkIHJlc3VsdHMsIChpaSkgdGhlIHNldmVyaXR5IG9yIHByZXZhbGVuY2Ugb2YKc2VyaW91cyBhZHZlcnNlIGV2ZW50cyBvciAoaWlpKSB0aGUgZWZmbGNhY3kgb2YgdGhlCnRyZWF0bWVudCB3aXRoIFN0dWR5IERydWcgYXBwZWFycyB0byBiZSBpbnN1ZmZsY2llbnQ7CnRoZW4gaGUvc2hlIHdpbGwgcHJvbXB0bHkgbm90aWZ5IENSTyBhbmQgdGhlIEVDIGluCndyaXRpbmcsIGFuZCBtYXkgc3VzcGVuZCB0cmVhdG1lbnQgb2YgU3ViamVjdHMgdW50aWwKc3VjaCB0aW1lIGFzIENSTyAoYmFzZWQgb24gY29uc3VsdGF0aW9ucyB3aXRoCgogCgoxNi40LgoKUG9rdWQgemtvdcWhZWrDrWPDrSBkb2pkZSBrIHrDoXbEm3J1LCDFvmUgcG9rcmHEjW92YW7DrQpzdHVkaWUgbmVuw60gbmFkw6FsZSB6ZSB6ZHJhdm90bsOtaG8gaGxlZGlza2EKb3BvZHN0YXRuxJtuw6kgWiBkxa92b2R1IChpKSBuZW/EjWVrw6F2YW7DvWNoIFbDvXNsZWRrxa8sCihpaSkgesOhdmHFvm5vc3RpIG5lYm8gVsO9c2t5dHUgesOhdmHFvm7DvWNoIG5lxb7DoWRvdWPDrWNoCnDFmcWvcm9kIG5lYm8gKGlpaSkgw7rEjWlubm9zdCBsw6nEjWJ5IGhvZG5vY2Vuw71tCnDFmcOtcHJhdmtlbSBzZSBqZVbDrSBuZWRvc3RhdGXEjW5vdSwgbmVwcm9kbGVuxJsgbyB0b20KcMOtc2VtbsSbIGluZm9ybXVqZSBDUk8gYSBFSyAmIG3Fr8W+ZSBwb3phc3Rhdml0CmzDqcSNYnUgc3ViamVrdMWvIGhvZG5vY2Vuw60sIGRva3VkIHNlIENSTyAobmEgesOha2xhZMSbCgogCgoyODQ2NDFfMTQwNC0wMDQ0X0NaRV9DWkU0X0lOU1QgUEkgQ1NBIF8gQmlsaW5ndWFsXzIwMjUwNDA5XzEuMApTdHJhbmEgMTggeiA2NQoKIAoKIAoKU1BPTlNPUikgYW5kIEludmVzdGlnYXRvciByZWFjaCBhZ3JlZW1lbnQgYXMgdG8KdGhlIGJlc3QgY291cnNlIG9mIGFjdGlvbi4KCnBvcmFkeSBzZSBaQURBVkFURUxFTSkgc2UgemtvdcWhZWrDrWPDrW0KbmVkb2hvZG5vdSBuYSBuZWpsZXDFocOtbSBtb8W+bmUnbSDFmWXFoWVuw60uCgogCgoxNi41LgoKVGVybWluYXRpb24gb2YgdGhpcyBBZ3JlZW1lbnQgYnkgYW55IFBhcnR5IHNoYWxsIG5vdAphZmZlY3QgdGhlIHJpZ2h0cyBhbmQgb2JsaWdhdGlvbnMgb2YgdGhlIFBhcnRpZXMgYWNjcnVlZApwcmlvciB0byB0aGUgZWZmZWN0aXZlIGRhdGUgb2YgdGVybWluYXRpb24gb2YgdGhpcwpBZ3JlZW1lbnQuIEFueSBwcm92aXNpb24gb2YgdGhpcyBBZ3JlZW1lbnQgdGhhdApzaG91bGQgc3Vydml2ZSBleHBpcmF0aW9uIG9yIHRlcm1pbmF0aW9uIG9mIHRoaXMKQWdyZWVtZW50IGluIG9yZGVyIHRvIGdpdmUgcHJvcGVyIGVmZmVjdCB0byBpdHMgaW50ZW50LApzaGFsbCBzdXJ2aXZlIGV4cGlyYXRpb24gb3IgdGVybWluYXRpb24gb2YgdGhpcwpBZ3JlZW1lbnQuCgoxNi41LgoKVWtvbsSNZW7DrSB0w6l0byBzbWxvdXZ5IGt0ZXJvdWtvbGkgc21sdXZuw60gc3RyYW5vdQpuZW92bGl2bsOtIHByw6F2YSBhIHBvdmlubm9zdGkgc21sdXZuw61jaCBzdHJhbiB2em5pa2zDqQpwxZllZCBkYXRlbSDDusSNaW5ub3N0aSB1a29uxI1lbsOtIHTDqXRvIHNtbG91dnkuCkpha8Opa29saSB1c3Rhbm92ZW7DrSB0w6l0byBzbWxvdXZ5LCBrdGVyw6kgYnkgbcSbbG8KcMWZZXRydmF0IGlwbyB1a29uxI1lbsOtIHBsYXRub3N0aSBuZWJvIFbDvXBvVsSbZGkgdMOpdG8Kc21sb3V2eSwgYWJ5IGJ5bCBqZWrDrSBaw6FtxJtyIMWZYWRuxJsgw7rEjWlubsO9LCBaxa9zdGFuZQp2IHBsYXRub3N0aSBpIHBvIHVrb27EjWVuw60gcGxhdG5vc3RpIG5lYm8gdnlwb3bEm3plbsOtCnTDqXRvIHNtbG91dnkuCgogCgogCgogCgogCgogCgogCgoxNy4gSU5ERVBFTkRFTlQgUFJPVklERVIgT0YgVEhFIDE3LiBORVrDgVZJU0zDnSBQT1NLWVRPVkFURUwgU01MVVZOw41ITwpDT05UUkFDVFVBTCBQRVJGT1JNQU5DRSBQTE5FTsONCgoxNy4xLiBUaGUgcmVsYXRpb25zaGlwIG9mIEluc3RpdHV0aW9uIGFuZCBJbnZlc3RpZ2F0b3IgdG8gMTcuMS4gVnp0YWggbWV6aSB6ZHJhdm90bmlja8O9bSB6YcWZw616ZW7DrW0gYSB6a291xaFlasOtY8OtbQpDUk8gaXMgdGhhdCBvZiBpbmRlcGVuZGVudCBwcm92aWRlciBvZiB0aGUgayBDUk8gbcOhIHBvdmFodSBuZXrDoXZpc2zDqWhvIHBvc2t5dG92YXRlbGUKY29udHJhY3R1YWwgcGVyZm9ybWFuY2UuIEluc3RpdHV0aW9uIGFuZCBJbnZlc3RpZ2F0b3Igc21sdXZuw61obyBwaHLEm25yJy4gWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBhIHprb3XFoWVqw61jw60KY29tbWl0IHRoZW1zZWx2ZXMgdG8gcGVyZm9ybSB0aGUgU2VydmljZXMgb25seSBhcyBzZSB6YXZhenVqw60gcHJvdsOhZMSbdCBzbHXFvmJ5IHBvdXplIGpha28gbmV6w6F2aXNsw70KaW5kZXBlbmRlbnQgcHJvdmlkZXIgb2YgdGhlIGNvbnRyYWN0dWFsIHBlcmZvcm1hbmNlIHBvc2t5dG92YXRlbCBzbWx1dm7DrWhvIHBocsSbbnInLCBwxZlpxI1lbcW+IG5pYyBWIHRvbXRvCmFuZCBub3RoaW5nIGNvbnRhaW5lZCBoZXJlaW4gc2hhbGwgYmUgY29uc3RydWVkIHRvIGJlIGRva3VtZW50dSBuZWJ1ZGUgdnlrbMOhZMOhbm8gdiByb3pwb3J1IHMgdMOtbXRvCmluY29uc2lzdGVudCB3aXRoIHRoYXQgcmVsYXRpb25zaGlwIG9yIHN0YXR1cy4gdnp0YWhlbSBuZWJvIHBvc3RhdmVuw61tLiBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtLApJbnN0aXR1dGlvbiwgSW52ZXN0aWdhdG9yLCBhbmQgU3R1ZHkgUGVyc29ubmVsLCBzaGFsbCB6a291xaFlasOtY8OtIGFwZXJzb25hbCBzdHVkaWUgc2UgbmVwb3Zhxb51asOtIHphCm5vdCBiZSBjb25zaWRlcmVkIGVtcGxveWVlcyBvciBhZ2VudHMgb2YgQ1JPIGFuZCwgemFtxJtzdG5hbmNlIGFuaSBaYXN0dXBjZSBDUk8sIHR1ZMOtxb4gbmVidWRvdSBtw610CmFzIHN1Y2gsIHNoYWxsIG5vdCBiZSBlbnRpdGxlZCB0byBhbnkgYmVuZWZpdHMgYXZhaWxhYmxlIG7DoXJvayBuYSDFvsOhZG7DqSBWw71ob2R5LCBrdGVyZSdtYWpyJyB6YW3Em3N0bmFuY2kgQ1JPLgp0byBlbXBsb3llZXMgb2YgQ1JPLgoKMTcuMi4gSW5zdGl0dXRpb24gYW5kIEludmVzdGlnYXRvciBzaGFsbCBub3QgcmV0YWluIGFueSAxNy4yLiBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIGEgemtvdcWhZWrDrWPDrSBuZXNtw60gbmFqbW91dAoKc3ViY29udHJhY3RvciB0byBwZXJmb3JtIGFueSBvZiBpdHMgb2JsaWdhdGlvbnMgdW5kZXIKdGhpcyBBZ3JlZW1lbnQgd2l0aG91dCB0aGUgcHJpb3Igd3JpdHRlbiBjb25zZW50IG9mCkNSTy4gQW55IHN1Y2ggY29uc2VudCBzaGFsbCBub3QgcmVsaWV2ZSBJbnN0aXR1dGlvbgphbmQgSW52ZXN0aWdhdG9yIG9mIGl0cyBvYmxpZ2F0aW9ucyBoZXJldW5kZXIsIGFuZApJbnN0aXR1dGlvbiBhbmQgSW52ZXN0aWdhdG9yIHNoYWxsIHJlbWFpbiBmdTExeSBsaWFibGUKZm9yIGFsbCBhY3RzIGFuZCBvbWlzc2lvbnMgb2YgYW55IHN1Y2ggc3ViY29udHJhY3Rvci4KQ1JPIHNoYWxsIGJlIHBlcm1pdHRlZCB0byBhc3NpZ24gaW4gd2hvbGUgb3IgaW4gcGFydAp0aGUgZGlzY2hhcmdlIG9mIG9ibGlnYXRpb25zIGl0IGFzc3VtZWQgdW5kZXIgdGhpcwpBZ3JlZW1lbnQgdG8gYW55IG9mIGl0cyBBZmZpbGlhdGVzIChvciBhZGVxdWF0ZWx5CnF1YWxpxYhlZCB0aGlyZCBwYXJ0eSBzdWJjb250cmFjdG9ycyksIHdpdGhvdXQKcmVsZWFzaW5nIENSTyBmcm9tIGl0cyByZXNwb25zaWJpbGl0eSBmb3IgdGhlCmFwcHJvcHJpYXRlIHBlcmZvcm1hbmNlIG9mIHN1Y2ggYXNzaWduZWQgb2JsaWdhdGlvbnMKdG93YXJkcyBJbnN0aXR1dGlvbi4gSW5zdGl0dXRpb24gYW5kIEludmVzdGlnYXRvcgphY2tub3dsZWRnZSB0aGF0IENSTyBoYXMgZGVsZWdhdGVkIGFuZC9vciBhc3NpZ25lZAppbiB3aG9sZSBvciBpbiBwYXJ0IGl0cyBvYmxpZ2F0aW9ucyBhc3N1bWVkIHVuZGVyIHRoaXMKQWdyZWVtZW50IHRvIGl0cyBzdWLigJRjb250cmFjdG9ycyB3aG8gd2lsbCBwZXJmb3JtCnNlcnZpY2VzIHJlbGF0ZWQgdG8gdGhlIFN0dWR5IG9uIGJlaGFsZiBvZiBDUk8sIGFuZApDUk8gd2lsbCBwcm92aWRlIGFuIGFkdmFuY2Ugd3JpdHRlbiBub3RpY2UgdG8KSW5zdGl0dXRpb24gYW5kIEludmVzdGlnYXRvciBpbiBjYXNlIG9mIGFueSBjaGFuZ2UgaW4Kc3VjaCBzdWLigJRjb250cmFjdG9ycyB0aGF0IHdvdWxkIGFmZmVjdCBzaXRlLHMgU2VydmljZXMKdW5kZXIgdGhlIFN0dWR5LgoKIAoKc3ViZG9kYXZhdGVsZSwga3RlcsO9IGJ5IHByb3bDoWTEm2wgbsSba3RlcsOpIFogamVobwpwb3Zpbm5vc3TDrSB2eXBsw712YWrDrWPDrWNoIHogdMOpdG8gc21sb3V2eSBiZXoKcMWZZWRjaG96w61obyBww61zZW1uw6lobyBzb3VobGFzdSBDUk8uIMW9w6FkbsO9CnRha292w70gc291aGxhcyBuZXpuYW1lbsOhIHpiYXZlbsOtIHpkcmF2b3RuaWNrw6lobwp6YcWZw616ZW7DrSBhWmtvdcWhZWpyJ2NIcm8gamVqaWNoIHrDoXZhemvFryBwb2RsZSB0w6l0bwpzbWxvdXZ5IHMgdMOtbSwgxb5lIFpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gYSB6a291xaFlasOtY8OtCnrFr3N0YW5vdSB6YSB2ZcWha2Vyw6kgamVkbmFuw60gaW9wb21lbnV0w60gamFrw6lob2tvbGkKdGFrb3ZlJ2hvIHN1YmRvZGF2YXRlbGUgcGxuxJsgb2Rwb3bEm2Ruw60uIENSTyBidWRlCm3DrXQgbW/Fvm5vc3QgemNlbGEgxI1pIMSNYXN0ZcSNbsSbIHDFmWV2w6lzdCBwbG7Em27DrQpwb3Zpbm5vc3TDrSBwxZlldnphdMO9Y2ggbmEgesOha2xhZMSbIHTDqXRvIHNtbG91dnkgbmEKa3RlcmUnaG9rb2xpIHplIHN2w71jaCBwxZlpZHJ1xb5lbsO9Y2ggc3ViamVrdMWvIChuZWJvCnDFmcOtc2x1xaFuxJsga3ZhbGlmaWtvdmFuw6kgc3ViZG9kYXZhdGVsZSB0xZlldMOtIHN0cmFueSksCmFuacW+IHRvIFpiYVbDrSBDUk8gb2Rwb3bEm2Rub3N0aSB6YSBzcHLDoXZuw6kgcGxuxJtuw60KdGFrdG8gcMWZZXZlZGVuw71jaCBzbWx1dm7DrWNoIHBvdmlubm9zdMOtIFbFr8SNaQpaZHJhdm90bmlja2UnbXUgemHFmcOtemVuw60uIFpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gJgp6a291xaFlasOtY8OtIGJlcm91IG5hIFbEm2RvbcOtLCDFvmUgQ1JPIGRlbGVnb3ZhbGEKYS9uZWJvIHBvc3RvdXBpbGEgemNlbGEgbmVibyBaxI3DoXN0aSBzdmUgWsOhdmF6a3kKcMWZZXZ6YXTDqSBwb2RsZSB0w6l0byBzbWxvdXZ5IG5hIHN2ZSBzdWJkb2RhdmF0ZWxlLAprdGXFmcOtIGJ1ZG91IHBvc2t5dG92YXQgc2x1xb5ieSBzb3V2aXNlasOtY8OtIHNlIHN0dWRpw60Kam3DqW5lbSBDUk8sICYgQ1JPIHBvc2t5dG5lIHpkcmF2b3RuaWNrw6ltdQp6YcWZw616ZW7DrSAmIHprb3XFoWVqw61jw61tdSBwxZllZGVtIHDDrXNlbW7DqSB1cG96b3JuxJtuw60KdiBwxZnDrXBhZMSbIGpha2Vrb2xpIHptxJtueSB0xJtjaHRvIHN1YmRvZGF2YXRlbMWvLCBrdGVyYQpieSBvbmlWaXJpbGEgc2x1xb5ieSBwcmFjb3ZpxaF0xJsgViByw6FtY2kgc3R1ZGllLgoKIAoKMjg0NjQxXzE0MDQtT080NF9DWkVfQ1pFNF9JTlNUIFBJIENTQSBfIEJpbGluZ3VhbF8yMDI1MDQwOV8xLjAKU3RyYW5hIDE5IHogNjUKCiAKCiAKCjE3LjMuCgpUaGlzIEFncmVlbWVudCBzaGFsbCBub3QgY29uc3RpdHV0ZSwgY3JlYXRlIG9yIGluIGFueQp3YXkgYmUgaW50ZXJwcmV0ZWQgYXMsICYgam9pbnQgdmVudHVyZSwgcGFydG5lcnNoaXAsIG9yCmJ1c2luZXNzIG9yZ2FuaXphdGlvbiBvZiBhbnkga2luZC4KCjE3LjMuCgpUYXRvIHNtbG91dmEgbmVzdGFub3Z1amUsIG5ldnl0dsOhxZnDrSBhIG5lbcWvxb5lIGLDvXQKYW5pIGludGVycHJldG92w6FuYSBqYWtvIHNwb2xlxI1uw70gcG9kbmlrLCBwYXJ0bmVyc3R2w60KbmVibyBqYWvDoWtvbGkgb2JjaG9kbsOtIG9yZ2FuaXphY2UuCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgoxOC4gQ09OVFJBQ1RVQUwgQVJSQU5HRU1FTlRTIDE4LiBTTUxVVk7DjSBVLCFFRE7DgU7DjQoKMTguMS4gVGl0bGVzIHRvIHRoZSBTZWN0aW9ucyBvZiB0aGlzIEFncmVlbWVudCBhcmUgc29sZWx5IGZvciAxOC4xLiBOYWRwaXN5IG9kZMOtbMWvIFYgdMOpdG8gc21sb3V2xJsgbWFqw60gcG91emUgenbDvcWhaXQKY29udmVuaWVuY2UgYW5kIGRvIG5vdCBjb25zdGl0dXRlICYgc3Vic3RhbnRpdmUgcGFydCBzcm96dW1pdGVsbm9zdCAmIG5lcMWZZWRzdGF2dWrDrSBWw716bmFtbm91IHNvdcSNw6FzdApvZiB0aGlzIEFncmVlbWVudC4gdMOpdG8gc21sb3V2eS4KCjE4LjIuIElmIGFueSBwcm92aXNpb24gb2YgdGhpcyBBZ3JlZW1lbnQgaXMgaGUxZCBpbGxlZ2FsLCAxOC4yLiBQb2t1ZCBidWRlIGpha8Opa29saSB1c3Rhbm92ZW7DrSB2IHTDqXRvIHNtbG91dsSbCmludmFsaWQgb3IgdW5lbmZvcmNlYWJsZSBieSAmIGNvdXJ0IG9mIGxhdywgdGhlIHNobGVkw6FubyBuZXrDoWtvbm7DvW0sIG5lcGxhdG7DvW0gbmVibwpyZW1haW5kZXIgb2YgdGhpcyBBZ3JlZW1lbnQgc2hhbGwgbm90IGJlIGFmZmVjdGVkIG5ldnltYWhhdGVsbsO9bSBzb3VkZW0sIHpiw712YWrDrWPDrSDEjcOhc3RpIHTDqXRvCnRoZXJlYnkuIHNtbG91dnkgdMOtbXRvIG5lYnVkb3Ugb3ZsaXZuxJtueS4KCjE4LjMuIEZhaWx1cmUgdG8gaW5zaXN0IHVwb24gY29tcGxpYW5jZSB3aXRoIGFueSBvZiB0aGUgMTguMy4gTmV0clZhbsOtIG5hIGRvZHLFvm92w6Fuw60gcG9kbcOtbmVrIHTDqXRvIHNtbG91dnkKdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhpcyBBZ3JlZW1lbnQgc2hhbGwgbm90IG5lcMWZZWRzdGF2dWplIFbFoWVvYmVjbsOpIFrFmWVrbnV0w60gc2UgcHJhViBhbmkKY29uc3RpdHV0ZSAmIGdlbmVyYWwgd2FpdmVyIG9yIHJlbGlucXVpc2htZW50IG9mIGFueSBvcHXFoXTEm27DrSB0YWtvVsO9Y2ggcG9kbcOtbmVrLCBwxZlpxI1lbcW+IHR5dMOpxb4Kc3VjaCB0ZXJtcyBvciBjb25kaXRpb25zLCBhbmQgdGhlIHNhbWUgc2hhbGwgcmVtYWluIHBvZG3DrW5reSBidWRvdSBwbyBjZWxvdSBkb2J1IHphY2hvdsOhbnkKYXQgYWxsIHRpbWVzIGluIGZ1MTEgZm9yY2UgYW5kIGVmZmVjdC4gdiBwbGF0bm9zdGkgJiDDusSNaW5ub3N0aS4KCjE4LjQuIEluc3RpdHV0aW9uIGFuZCBJbnZlc3RpZ2F0b3IgdW5kZXJzdGFuZCBhbmQgYWdyZWUgdGhhdCwgMTguNC4gWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBhIHprb3XFoWVqw61jw60gc2UgZG9ob2RsaQphcyBzZXQgZm9ydGggaW4gU2VjdGlvbiAmLCBTUE9OU09SIGlzIGFuIGludGVuZGVkICYgc291aGxhc8OtIHMgdMOtbSwgxb5lIFpBREFWQVRFTCBqZSBvcHLDoXZuxJtub3UKdGhpcmTigJRwYXJ0eSBiZW5lxYhjaWFyeSBvZiB0aGlzIEFncmVlbWVudC4gdMWZZXTDrSBzdHJhbm91IHTDqXRvIHNtbG91dnksIGphayBqZSB1dmVkZW5vIFYgb2Rkw61sdQoKJgoKMTguNS4gVGhlIHJlc3BlY3RpdmUgc2lnbmF0b3JpZXMgb2YgdGhlIFBhcnRpZXMgdG8gdGhpcyAxOC41LiBQxZnDrXNsdcWhbnInIHNpZ25hdMOhxZlpIHNtbHV2bsOtY2ggc3RyYW4gcHJvaGxhxaF1asOtCkFncmVlbWVudCByZXByZXNlbnQgYW5kIFdhcnJhbnQgdGhhdCB0aGV5IGhhdmUgdGhlICYgemFydcSNdWrDrSwgxb5lIG1hasOtIG9wcsOhdm7Em27DrSBhIFpwxa9zb2JpbG9zdGsgdXphdsWZZW7DrQphdXRob3JpdHkgYW5kIGFiaWxpdHkgdG8gZW50ZXIgaW50byB0aGUgdGVybXMsIHBvxb5hZGF2a8WvLCB1c3Rhbm92ZW7DrSBhcG9kbcOtbmVrIHTDqXRvIHNtbG91dnkKcHJvdmlzaW9ucyBhbmQgY29uZGl0aW9ucyBvZiB0aGlzIEFncmVlbWVudCBvbiBqbWUnbmVtIHN2w71jaCBwxZnDrXNsdcWhbsO9Y2ggc3RyYW4uCmJlaGFsZiBvZiB0aGVpciByZXNwZWN0aXZlIFBhcnRpZXMuCgoxOC42LiBOZWl0aGVyIFBhcnR5IHNoYWxsIGJlIHJlc3BvbnNpYmxlIGZvciBhbnkgZGVmYXVsdCAxOC42LiDFvcOhZG7DoSBzdHJhbmEgbmVidWRlIG9kcG9Ww61kYXQgemEgbmVkb2Ryxb5lbsOtIHTDqXRvCnVuZGVyIHRoaXMgQWdyZWVtZW50IGJ5IHJlYXNvbiBvZiBzdHJpa2VzLCByaW90cywgc21sb3V2eSB6ZMWvdm9kdSBzdMOhdmVrLCBuZXBva29qxa8sIHZvamVuc2vDvWNoCmhvc3RpbGl0aWVzLCB3YXJzLCBmbHJlLCBhY3RzIG9mIHRlcnJvcmlzbSwgZXBpZGVtaWNzLCBha2PDrSwgVmFsZcSNbsO9Y2gga29uZmxpa3TFrywgcG/FvsOhcnUsIHRlcm9yaXN0aWNrw71jaAphY3RzIG9mIEdvZCwgZGVhdGggb2YgSW52ZXN0aWdhdG9yLCBvciBhbnkgb3RoZXIgY2F1c2Ugw7p0b2vFrywgZXBpZGVtacOtLCB2ecWhxaHDrSBtb2NpLCB1bXJ0w60gWmtvdcWhZWpyJ2PFr3JvIG5lYm8KYmV5b25kIGl0cyByZWFzb25hYmxlIGNvbnRyb2wgb2YgdGhlIGNvbnRyYWN0dWFsIHpqYWtla29saSBqaW5lJyBwxZnDrcSNaW55LCBrdGVyYSBqZSBtaW1vIHDFmWltxJvFmWVub3UKUGFydGllcy4ga29udHJvbHUgc21sdXZuw61jaCBzdHJhbi4KCjE4LjcuIFRoaXMgQWdyZWVtZW50IG1heSBub3QgYmUgYXNzaWduZWQgYnkgSW5zdGl0dXRpb24gb3IgMTguNy4gWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBuZWJvIHprb3XFoWVqw61jw60gbmVtb2hvdQpJbnZlc3RpZ2F0b3Igd2l0aG91dCB0aGUgcHJpb3Igd3JpdHRlbiBjb25zZW50IG9mIHBvc3RvdXBpdCB0dXRvIHNtbG91dnUgYmVaIHDFmWVkY2hvenJobyBww61zZW1uw6lobwpDUk8uIHNvdWhsYXN1IENSTy4KCjE4LjguIENSTyBtYXkgYXNzaWduIHRoaXMgQWdyZWVtZW50IHRvIGFueSBvZiBpdHMgMTguOC4gQ1JPbcWvxb5lIHR1dG8gc21sb3V2dXBvc3RvdXBpdGt0ZXJla29saXplIHN2w71jaApzdWJzaWRpYXJpZXMsIEFmZmlsaWF0ZXMgb3IgdG8gYW55IHRoaXJkIHBhcnR5LCBidXQgb25seSBkY2XFmWluw71jaCBzcG9sZcSNbm9zdMOtLCBwxZlpZHJ1xb5lbsO9Y2ggc3BvbGXEjW5vc3RpIG5lYm8KdXBvbiB3cml0dGVuIG5vdGljZSBzZW50IHRvIHRoZSBJbnN0aXR1dGlvbiBhbmQgdGhlIHTFmWV0w60gc3RyYW7EmywgYVbFoWFrIFbDvWx1xI1uxJsgbmEgesOha2xhZMSbIHDDrXNlbW7DqWhvCkludmVzdGlnYXRvciBhdCBsZWFzdCAzMCBkYXlzIGluIGFkdmFuY2UuIG96bmFtZW7DrSB6YXNsYW5lJ2hvIFpkcmF2b3RuaWNrZSdtdSB6YcWZw616ZW7DrSBhCgp6a291xaFlasOtY8OtbXUgYWxlc3BvxYggMzAgZG7FryBwxZllZGVtLgoKMTguOS4gVGhpcyBBZ3JlZW1lbnQgY29uc3RpdHV0ZXMgdGhlIGVudGlyZSBhZ3JlZW1lbnQgYW5kIDE4LjkuIFRhdG8gc21sb3V2YSBwxZllZHN0YXZ1amUgdXBsbm91IGRvaG9kdSBhIGtvbmXEjW7DqQoKZmxuYWwgdW5kZXJzdGFuZGluZyBvZiB0aGUgUGFydGllcyB3aXRoIHJlc3BlY3QgdG8gdGhlCnN1YmplY3QgbWF0dGVyIGhlcmVvZiBhbmQgc3VwZXJzZWRlcyBhbmQgdGVybWluYXRlcwoKIAoKdWplZG7DoW7DrSBzbWx1dm7DrWNoIHN0cmFuIHYgc291dmlzbG9zdGkgcyBwxZllZG3Em3RlbQp0w6l0byBzbWxvdXZ5IGEgbmFocmF6dWplICYgdnlwb3bDrWTDoSB2ZcWha2Vyw6EgZMWZw612xJtqxaHDrQoKIAoKMjg0NjQxXzE0MDQtMDA0NF9DWkVfQ1pFNF9JTlNUIFBJIENTQSBfIEJpbGluZ3VhbF8yMDI1MDQwOV8xLjAKU3RyYW5hIDIwIHogNjUKCiAKCiAKCmFsbCBwcmlvciBhbmQvb3IgY29udGVtcG9yYW5lb3VzIHVuZGVyc3RhbmRpbmdzCmFuZC9vciBkaXNjdXNzaW9ucyBiZXR3ZWVuIHRoZSBQYXJ0aWVzLCB3aGV0aGVyCndyaXR0ZW4gb3IgdmVyYmFsLCBleHByZXNzIG9yIGltcGxpZWQsIHJlbGF0aW5nIGluIGFueQp3YXkgdG8gdGhlIHN1YmplY3QgbWF0dGVyIGhlcmVvZi4gVGhpcyBBZ3JlZW1lbnQKbWF5IG5vdCBiZSBhbHRlcmVkLCBhbWVuZGVkLCBtb2RpZmllZCBvciBvdGhlcndpc2UKY2hhbmdlZCBpbiBhbnkgd2F5IGV4Y2VwdCBieSBhIHdyaXR0ZW4gYWdyZWVtZW50LApzaWduZWQgYnkgYWxsIFBhcnRpZXMuCgphL25lYm8gc291xI1hc27DoSB1amVkbsOhbsOtIGEvbmVibyBkaXNrdXplIG1lemkKc3RyYW5hbWksIGHFpSB1xb4gcMOtc2VtbmUnLCDEjWkgw7pzdG7DrSwgVsO9c2xvdm5lJywgxI1pCmltcGxpY2l0bsOtLCBqYWvDvW1rb2xpIFpwxa9zb2JlbSBzb3V2aXNlasOtY8OtCnNwxZllZG3Em3RlbSB0w6l0byBzbWxvdXZ5LiBUdXRvIHNtbG91dnUgbmVsemUKbcSbbml0LCB1cHJhVml0LCBtb2RpZmlrb3ZhdCBuZWJvIGpha2tvbGkgcG96bcSbbml0CmppbmFrIG5lxb4gcMOtc2Vtbm91IGRvaG9kb3UgcG9kZXBzYW5vdSBWxaFlbWkKc3RyYW5hbWkuCgogCgoxOC4xMC4gQTExIG5vdGljZXMgbmVjZXNzYXJ5IG9yIGFwcHJvcHJpYXRlIHRvIGJlIGdpdmVuCnB1cnN1YW50IHRvIHRoaXMgQWdyZWVtZW50IHNoYWxsIGJlIGVmZmVjdGl2ZSB3aGVuCmRlbGl2ZXJlZCB0byB0aGUgYXBwcm9wcmlhdGUgUGFydHkgYXQgdGhlIGFkZHJlc3MKYmVsb3c6CgoxOC4xMC4gVmXFoWtlcsOhIG96bmFtZW7DrSwga3RlcmEgamUgbmV6Ynl0bsOpIG5lYm8gVmhvZG5lJwpkb3J1xI1pdCBwb2RsZSB0w6l0byBzbWxvdXZ5LCB2ZWogZG91IFYgcGxhdG5vc3QgcG8KZG9ydcSNZW7DrSBwxZnDrXNsdcWhbsOpIHN0cmFuxJsgbmEgYWRyZXN1IHV2ZWRlbm91IG7DrcW+ZToKCiAKClRvIENSTzoKCkogZS1saSBhZHJlc8OhdGVtIENSTzoKCiAKClBhcmV4ZWwgSW50ZXJuYXRpb25hbCAoSVJMKSBMaW1pdGVkCk9uZSBLaWxtYWluaGFtIFNxdWFyZQoKSW5jaGljb3JlIFJvYWQKCktpbG1haW5oYW0KCkR1YmxpbiA4CgpJcmVsYW5kCgpBcm06IF8KClBhcmV4ZWwgSW50ZXJuYXRpb25hbCAoSVJMKSBMaW1pdGVkCk9uZSBLaWxtYWluaGFtIFNxdWFyZQoKSW5jaGljb3JlIFJvYWQKCktpbG1haW5oYW0KCkR1YmxpbiA4CgpJcnNrbwoKSyBydWvDoW06IF8KCiAKClRvIEludmVzdGlnYXRvcjoKCkplLWxpIGFkcmVzw6F0ZW0gemtvdcWhZWrDrWPDrToKCiAKCktyYWpza8OhIG5lbW9jbmljZSBMaWJlcmVjLCBhLiBzLgpIdXNvdmEgMTQzMC8zNAoKNDYwIDAxIExpYmVyZWMKCkN6ZWNoIFJlcHVibGljCgpBcm06IF8KXwoKS3JhanNrw6EgbmVtb2NuaWNlIExpYmVyZWMsIGEuIHMuCkh1c292YSAxNDMwLzM0Cgo0NjAgMDEgTGliZXJlYwoKxIxlc2vDoSByZXB1Ymxpa2EKCmsgcnVrw6FtOiBfCl8KCiAKClRvIEluc3RpdHV0aW9uOgoKSmUtbGkgYWRyZXPDoXRlbSB6ZHJhdm90bmlja8OpIHphxZnDrXplbsOtOgoKIAoKS3JhanNrw6EgbmVtb2NuaWNlIExpYmVyZWMsIGEuIHMuCkh1c292YSAxNDMwLzM0Cgo0NjAgMDEgTGliZXJlYwoKQ3plY2ggUmVwdWJsaWMKCkFybTogXwpfCgpLcmFqc2vDoSBuZW1vY25pY2UgTGliZXJlYywgYS4gcy4KSHVzb3ZhIDE0MzAvMzQKCjQ2MCAwMSBMaWJlcmVjCgrEjGVza8OhIHJlcHVibGlrYQoKayBydWvDoW06IF8KXwoKIAoKMTguMTEuIEFueSBQYXJ0eSBtYXkgY2hhbmdlIGl0cyBhZGRyZXNzIG9yIGVtYWlsIGZvcgpub3RpY2UgYnkgZ2l2aW5nIG5vdGljZSBpbiBhY2NvcmRhbmNlIHdpdGggU2VjdGlvbgoxOC4xMC4gYW5kIDE4LjEyLgoKMTguMTEuIEt0ZXLDqWtvbGkgc3RyYW5hIG3Fr8W+ZSB6bcSbbml0IHN2b3UgYWRyZXN1IG5lYm8gZeKAlAptYWlsIHBybyDDusSNZWx5IHBvc2t5dG92YW7DrSBvem5hbWVuw60gdGFrLCDFvmUgemHFoWxlCm96bsOhbWVuw60gcG9kbGUgb2Rkw61sdSAxOC4xMC4gYSAxOC4xMi4KCiAKCjE4LjEyLiBBbnkgZGVsaXZlcnkgdGhhdCBpcyBjYWxsZWQgZm9yIHVuZGVyIHRoaXMKQWdyZWVtZW50IHNoYWxsIGJlIGNvbXBsZXRlIHdoZW4gbWFkZSBieSBwZXJzb25hbApkZWxpdmVyeSwgZW1haWwgd2l0aCBkZWxpdmVyeSBjb27FiHJtYXRpb24sIHJlZ2lzdGVyZWQKcG9zdCwgY2VydGlmaWVkIHBvc3Qgb3IgY291cmllciwgaW4gZWFjaCBjYXNlIHdpdGgKY29uxYhybWF0aW9uIG9mIGRlbGl2ZXJ5L3JlY2VpcHQuCgoxOC4xMi4gVmXFoWtlcsOpIHphc2lsa3kgdnnFvsOhZGFuZScgdG91dG8gc21sb3V2b3UgYnVkb3UKcG92YcW+b3bDoW55IHphIGRvcnXEjWVuw6kgcMWZaSBvc29ibsOtbSBkb3J1xI1lbsOtLCBl4oCUCm1haWxlbSBzIHBvdHZyemVuw61tIGRvcnXEjWVuw60sIGNlbm7DvW0gcHNhbsOtbSwKZG9wb3J1xI1lbm91IHBvxaF0b3UgbmVibyBrdXLDvXJlbSwgVmthxb5kZXJuCnDFmcOtcGFkxJsgcyBwb3R2cnplbsOtbSBkb2RhbsOtL3DFmWV2emV0cicuCgogCgoxOC4xMy4gVGhlIFBhcnRpZXMgYWdyZWUgdGhhdCB0aGlzIEFncmVlbWVudCBzaGFsbCBiZQpnb3Zlcm5lZCBieSB0aGUgbGF3cyBvZiBDemVjaCBSZXB1YmxpYyB3aXRob3V0CnJlZ2FyZCB0byB0aGUgY29uZmxpY3RzIG9mIGxhdyBwcm92aXNpb25zIHRoZXJlb2YuIEluCmNhc2UgJiBkaXNwdXRlIGlzIGJyb3VnaHQgYmVmb3JlICYgY291cnQgb2YgbGF3LCB0aGUKY291cnRzIG9mIEN6ZWNoIFJlcHVibGljIHdpbGwgaGF2ZSBzb2xlIGp1cmlzZGljdGlvbgpvdmVyIHRoZSBsaXRpZ2F0aW9uLgoKIAoKIAoKMTguMTMuIFN0cmFueSBzb3VobGFzw60sIMW+ZSB0YXRvIHNtbG91dmEgc2UgYnVkZSDFmcOtZGl0Cnpha29ueSDEjGVza8OpIHJlcHVibGlreSwgYmVaIG9obGVkdSBuYSByb3pwb3J5IG1lemkKesOha29ubsO9bWkgdXN0YW5vdmVuw61taSAmIHVzdGFub3ZlbsOtbWkgdMOpdG8Kc21sb3V2eS4gUG9rdWQgYnVkZSBzcG9yIHDFmWVkbG/FvmVuIHNvdWR1LCBidWRvdQptw610IG5hZCBqZWhvIHByxa9ixJtoZW0gVsO9aHJhZG7DrSBwcmF2b21vYyBzb3VkeQrEjGVza8OpIHJlcHVibGlreS4KCiAKCjI4NDY0MV8xNDA0LU9PNDRfQ1pFX0NaRTRfSU5TVCBQSSBDU0EgXyBCaWxpbmd1YWxfMjAyNTA0MDlfMS4wCgpTdHJhbmEgMjEgeiA2NQoKIAoKIAoKMTguMTQuIFRoZSBJbnN0aXR1dGlvbiBhbmQgSW52ZXN0aWdhdG9yIGFja25vd2xlZGdlIHRoYXQKCnRoZSBTUE9OU09SIGFuZCBDUk8gYXJlIHJlcXVpcmVkIGJ5IEFwcGxpY2FibGUKTGF3IGFuZCBwaGFybWFjZXV0aWNhbCBpbmR1c3RyeSBjb2RlcyBvZiBjb25kdWN0IHRvCmRvY3VtZW50IGFuZCBwdWJsaWNseSBkaXNjbG9zZSBjZXJ0YWluIHRyYW5zZmVycyBvZgp2YWx1ZSBtYWRlIHRvIGhlYWx0aGNhcmUgcHJvZmVzc2lvbmFscyBhbmQgaGVhbHRoY2FyZQpvcmdhbml6YXRpb25zLCBhbmQgc3VjaCBkaXNjbG9zdXJlcyBtYXkgaW5jbHVkZQppbmZvcm1hdGlvbiBhYm91dCB0aGUgcGF5bWVudHMgb3Igb3RoZXIgdHJhbnNmZXJzIG9mCnZhbHVlIHByb3ZpZGVkIHRvIEluc3RpdHV0aW9uIGFuZC9vciB0aGUgSW52ZXN0aWdhdG9yCmFuZCBTdHVkeSBQZXJzb25uZWwgdW5kZXIgdGhpcyBBZ3JlZW1lbnQuIFRoZQpTUE9OU09SL0NSTyBtYXkgc3RvcmUgYW5kIHVzZSBpbmZvcm1hdGlvbgpyZWxhdGluZyB0byB0aGUgSW5zdGl0dXRpb24sIEludmVzdGlnYXRvciBhbmQvb3IgU3R1ZHkKUGVyc29ubmVsIGFuZCBhcmlzaW5nIG91dCBvZiB0aGlzIEFncmVlbWVudCBmb3IgdGhlCnB1cnBvc2Ugb2YgaXRzIGJ1c2luZXNzIGFuZCBtYXkgcHVibGljbHkgZGlzY2xvc2UgaW4KaXRzIGRpc2NyZXRpb24gc3VjaCBpbmZvcm1hdGlvbiAoaW5jbHVkaW5nLCBidXQgbm90CmxpbWl0ZWQgdG8sIHRoZSBuYW1lIGFuZCBwcm9mZXNzaW9uYWwgYWRkcmVzcyBvZiB0aGUKSW5zdGl0dXRpb24gYW5kL29yIHRoZSBJbnZlc3RpZ2F0b3IgYW5kIFN0dWR5ClBlcnNvbm5lbCwgYW55IGZpbmFuY2lhbCBhbmQgaW7igJRraW5kIHBheW1lbnRzCnJlY2VpdmVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LCB0aGUgbmF0dXJlIG9mIHRoZQplbmdhZ2VtZW50IGFuZCBhbnkgb3RoZXIgcGF5bWVudCBvciBzZXJ2aWNl4oCUcmVsYXRlZAppbmZvcm1hdGlvbikgYXMgbWF5IGJlIGRlZW1lZCBhcHByb3ByaWF0ZSBieQpTUE9OU09SL0NSTyBmb3IgdGhlIGZ1MWYxMTFtZW50IG9mIGl0cwp0cmFuc3BhcmVuY3kgb2JsaWdhdGlvbnMgb3IgYXMgbWF5IG90aGVyd2lzZQpiZSBkaWN0YXRlZCBieSBBcHBsaWNhYmxlIExhdyBvciBhbnkgcGhhcm1hY2V1dGljYWwKaW5kdXN0cnkgY29kZXMgb2YgY29uZHVjdCB0byB3aGljaCB0aGUKU1BPTlNPUi9DUk8gb3IgYW55IG9mIHRoZWlyIEFmZmlsaWF0ZXMgYXJlIHN1YmplY3QuCkZvciBzdWNoIHB1cnBvc2VzLCB0aGUgU1BPTlNPUi9DUk8gbWF5IHRyYW5zZmVyCnN1Y2ggaW5mb3JtYXRpb24gdG8gaXRzIEFmZmlsaWF0ZXMgYW5kL29yIHRoaXJkIHBhcnR5CnNlcnZpY2UgcHJvdmlkZXJzLCB3aG8gbWF5IGJlIGVzdGFibGlzaGVkIGluICYKZGlmZmVyZW50IGp1cmlzZGljdGlvbiB0byB0aGUgSW5zdGl0dXRpb24gYW5kCkludmVzdGlnYXRvciwgd2hpY2gganVyaXNkaWN0aW9uIG1heSBub3Qgb2ZmZXIgdGhlCnNhbWUgbGV2ZWwgb2YgcHJvdGVjdGlvbiBmb3IgcGVyc29uYWwgaW5mb3JtYXRpb24uClBheW1lbnRzIHRvIHRoZSBJbnN0aXR1dGlvbiBhbmQgSW52ZXN0aWdhdG9yIGZvciB3b3JrCmRvbmUgYnkgc3BlY2lmaWVkIGluZGl2aWR1YWxzIG1heSByZWZlcmVuY2UgdGhlCkluc3RpdHV0aW9uLCBJbnZlc3RpZ2F0b3IgYW5kIHRoZSBpbmRpdmlkdWFsLiBJbgphY2NvcmRhbmNlIHdpdGggRGF0YSBQcm90ZWN0aW9uIExhdywgdGhlCkludmVzdGlnYXRvciBhbmQgU3R1ZHkgUGVyc29ubmVsIG1heSBjb250YWN0IHRoZQpTUE9OU09SL0NSTyBhdCBhbnkgdGltZSB0byBjb3JyZWN0IGFueSBtaXN0YWtlcwpvciByZXF1ZXN0IGRlbGV0aW9uIG9mIHRoZWlyIHBlcnNvbmFsIGluZm9ybWF0aW9uIGhlMWQKYnkgU1BPTlNPUi9DUk8gZXhjbHVzaXZlbHkgaW4gY29ubmVjdGlvbiB3aXRoCnRoZSBjb25kdWN0IG9mIGNsaW5pY2FsIHRyaWFscy4KCjE4LjE0LiBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIGFaa291xaFlasOtY8OtIGJlcm91IG5hCgpWxJtkb23DrSwgxb5lIHBsYXRuw6kgesOha29ueSBhIGtvZGV4eSBjaG92w6Fuw60gdiBvYmxhc3RpCmZhcm1hY2V1dGlja2UnaG8gcHLFr215c2x1IG9kIFpBREFWQVRFTEUKJiBDUk8gdnnFvmFkdWrDrSwgYWJ5IHpkb2t1bWVudG92YWwgYXp2ZcWZZWpuaWwKdXLEjWl0w6kgcMWZZXZvZHkgaG9kbm90IHDFmWV2YWTEm27DvWNoIHpkcmF2b3RuaWNrw71tCnByYWNvdm7FrzzFr20gYSB6ZHJhdm90bmlja8O9bSBvcmdhbml6YWPDrW0sICYgxb5lCnRha292ZXRvIHp2ZcWZZWpuxJtuw60gbcWvxb5lIHphaHJub3ZhdCBpbmZvcm1hY2UKb3BsYXRiYWNoIG5lYm8gamluw71jaCBwxZlldm9kZWNoIGhvZG5vdApwb3NreXRudXTDvWNoIFpkcmF2b3RuaWNrZSdtdSB6YcWZw616ZW7DrSBhL25lYm8KemtvdcWhZWrDrWPDrW11IGzDqWthxZlpIGFwZXJzb27DoWx1IHN0dWRpZSBwb2RsZSB0w6l0bwpzbWxvdXZ5LiBaQURBVkFURUwvQ1JPIG3Fr8W+ZSB1Y2hvVmF2YXQKJiBwb3XFvsOtdmF0IGluZm9ybWFjZSB0w71rYWrDrWPDrSBzZSB6ZHJhdm90bmlja8OpaG8KemHFmcOtemVuw60sIFprb3XFoWVqcidjcidobyBhL25lYm8gcGVyc29uw6FsdSBzdHVkaWUKJiB2eXBsw712YWrDrWPDrSB6dGV0byBzbWxvdXZ5IHBybyDDusSNZWx5IHN2ZSdobwpwb2RuaWvDoW7DrSBhIG3Fr8W+ZSB0eXRvIGluZm9ybWFjZSB6dmXFmWVqbml0IGRsZSBzdsOpaG8KdXbDocW+ZW7DrSAobWltbyBqaW7DqSBWxI1ldG7EmyBuYXp2dS9qbWUnbmEgYSBwcmFjb3Zuw60KYWRyZXN5IHpkcmF2b3RuaWNrw6lobyB6YcWZw616ZW7DrSBhL25lYm8gWmtvdcWhZWpyJ2NyJ2hvCiYgcGVyc29uw6FsdSBzdHVkaWUsIGpha8O9Y2hrb2xpIGZpbmFuxI1uw61jaCBwbGF0ZWIKYSBwbGF0ZWIgdiBuYXR1cmFsaXInY2ggb2JkcsW+ZW7DvWNoIHBvZGxlIHTDqXRvIHNtbG91dnksCnBvdmFoeSBzcG9sdXByw6FjZSAmIGpha8O9Y2hrb2xpIGRhbMWhw61jaCBwbGF0ZWIgbmVibwppbmZvcm1hY8OtIHNvdXZpc2Vqw61jw61jaCBzZSBzbHXFvmJhbWkpLCBrdGVyw6kgbcWvxb5lClpBREFWQVRFTC9DUk8gcG92YcW+b3ZhdCB6YSB2aG9kbsOpIHBybwpzcGxuxJtuw60gc3bDvWNoIHrDoXZhemvFryB0w71rYWrDrWPDrWNoIHNlIHRyYW5zcGFyZW50bm9zdGksCm5lYm8gamFrIG1vaG91IGppbmFrIHN0YW5vdml0IHBsYXRuw6kgesOha29ueSBuZWJvCmtvZGV4eSBjaG92w6Fuw60gdiBvYmxhc3RpIGZhcm1hY2V1dGlja2UnaG8gcHLFr215c2x1LAprdGVyw71tIHBvZGzDqWjDoSBaQURBVkFURUwvQ1JPIG5lYm8ga3RlcsOha29saQp6IGplamljaCBwxZlpZHJ1xb5lbsO9Y2ggc3BvbGXEjW5vc3TDrS4gUHJvIHR5dG8gw7rEjWVseQptxa/FvmUgWkFEQVZBVEVML0NSTyB0eXRvIGluZm9ybWFjZSBwxZllZGF0CnN2w71tIHDFmWlkcnXFvmVuw71tIHNwb2xlxI1ub3N0ZW0gYS9uZWJvIHTFmWV0w61tCnN0cmFuw6FtIHBvc2t5dHVqw61jw61tIHNsdcW+YnksIGt0ZXLDqSBtb2hvdSBiw710CnphbG/FvmVueSBWIGppbmUnIGp1cmlzZGlrY2kgbmXFviBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtCiYgemtvdcWhZWrDrWPDrSwgcMWZacSNZW3FviB0YXRvIGp1cmlzZGlrY2UgbmVtdXPDrSBuYWLDrXpldApzdGVqbm91IMO6cm92ZcWIIG9jaHJhbnkgb3NvYm7DrWNoIMO6ZGFqxa8uIFBsYXRieQpaZHJhdm90bmlja2UnbXUgemHFmcOtemVuw60gYSB6a291xaFlasOtY8OtbXUgemEgcHLDoWNpCm9kdmVkZW5vdSB1csSNaXTDvW1pIG9zb2JhbWkgbW9ob3Ugb2RrYXpvdmF0IGphawpuYSBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtLCBaa291xaFlanInY3InaG8sIHRhayBuYQpqZWRub3RsaXZjZS4gViBzb3VsYWR1IHMgcGxhdG7DvW1pIHrDoWtvbnkgbmEgb2NocmFudQpvc29ibsOtY2ggw7pkYWrFryBtb2hvdSB6a291xaFlasOtY8OtIGFwZXJzb27DoWwgc3R1ZGllCmtkeWtvbGkga29udGFrdG92YXQgWkFEQVZBVEVMRS9DUk8sIGFieQpvcHJhVmlsIGpha2Vrb2xpIGNoeWJ5IG5lYm8gYWJ5IHBvxb7DoWRhbGkgbyB2eW1hesOhbsOtCnN2w71jaCBvc29ibsOtY2ggw7pkYWrFrywga3RlcsOpIG8gbmljaCB2ZWRlClpBREFWQVRFTC9DUk8gVsO9bHXEjW7EmyBWIHNvdXZpc2xvc3RpCnMgcHJvdsOhZMSbbsOtbSBrbGluaWNrw71jaCBob2Rub2NlbsOtLgoKIAoKIAoKIAoKKFNpZ25hdHVyZXMgdG8gZm9sbG93IG9uIHRoZSBuZXh0IHBhZ2UpCgogCgooUG9kcGlzeSBidWRvdSBuYXNsZWRvdmF0IG5hIGRhbMWhw60gc3RyYW7EmykKCiAKCjI4NDY0MV8xNDA0LTAwNDRfQ1pFX0NaRTRfSU5TVCBQSSBDU0EgXyBCaWxpbmd1YWxfMjAyNTA0MDlfMS4wClN0cmFuYSAyMiB6IDY1CgogCgogCgpJTiBXSVRORVNTIFdIRVJFT0YsIHRoZSBQYXJ0aWVzIGhlcmV0byBoYXZlIHNldCBOQSBEw5pLQVogxIxFSE/FvSBzbWx1dm7DrSBzdHJhbnkgcG9kZXBzYWx5IHR1dG8KdGhlaXIgaGFuZHMgaW4gdHJpcGxpY2F0ZSB3aXRoIHRoZSBpbnRlbnRpb24gdGhhdCB0aGlzIGlzICYgc21sb3V2dSB2ZSB0xZllY2ggdnlob3RvdmVuw61jaCBzIMO6bXlzbGVtLCDFvmUgc2UgamVkbsOhCmJpbmRpbmcgYWdyZWVtZW50IGFzIHByb3ZpZGVkIGhlcmVpbi4gKCkgesOhdmF6bm91IHNtbG91dnUsIGphayBqZSB6ZGUgdXZlZGVuby4KCiAKCiAKCiAKCiAKCigxKSBDUk86IC9DUk86CgooU2lnbmF0dXJlIG9mIEF1dGhvcml6ZWQgT2ZmaWNpYWwpIC8KKFBvZHBpcyBvcHLDoXZuxJtuw6lobyBaw6FzdHVwY2UpCgooVHlwZWQgb3IgUHJpbnRlZCBOYW1lKSAvIChKbcOpbm8gbmFwc2Fuw6kgRGF0ZSAvIERhdHVtCmjFr2xrb3bDvW0gcMOtc21lbSBuZWJvIHZ5dGnFoXTEm27DqSkKCigyKSBJbnN0aXR1dGlvbjogLyBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtOgoKKFNpZ25hdHVyZSBvZiBBdXRob3JpemVkIE9mZmljaWFsKSAvCihQb2RwaXMgb3Byw6F2bsSbbsOpaG8gWsOhc3R1cGNlKQoKIAoKKFR5cGVkIG9yIFByaW50ZWQgTmFybmUpIC8gKEptw6lubyBuYXBzYW7DqSBEYXRlIC8gRGF0dW0KaMWvbGtvdsO9bSBww61zbWVtIG5lYm8gdnl0acWhdMSbbsOpKQoKKDMpIEludmVzdGlnYXRvcjogLyBaa291xaFlasOtY8OtOgoKIAoKKFNpZ25hdHVyZSBvZiBJbnZlc3RpZ2F0b3IpIC8KKFBvZHBpcyBaa291xaFlasOtY8WvbG8gbMOpa2HFmWUpCgpfCihUeXBlZCBvciBQcmludGVkIE5hbWUpIC8gKEptw6lubyBuYXBzYW7DqSBEYXRlIC8gRGF0dW0KaMWvbGtvdsO9bSBww61zbWVtIG5lYm8gdnl0acWhdMSbbsOpKQoKMjg0NjQxXzE0MDQtMDA0NF9DWkVfQ1pFNF9JTlNUIFBJIENTQSBfIEJpbGluZ3VhbF8yMDI1MDQwOV8xLjAKU3RyYW5hIDIzIHogNjUKCiAKCkV4aGliaXQgQiDigJQgRGVmaW5pdGlvbnMKClDFmcOtbG9oYSBCIOKAlCBWeW1lemVuw60gcG9qbcWvCgogCgrigJxBZmZpbGlhdGXigJwgbWVhbnMgaW4gcmVsYXRpb24gdG8gZWl0aGVyIFBhcnR5IHRvIHRoaXMKQWdyZWVtZW50LCBhbnkgY29tcGFueSwgcGFydG5lcnNoaXAgb3Igb3RoZXIgZW50aXR5IHdoaWNoCmRpcmVjdGx5IG9yIGluZGlyZWN0bHkgY29udHJvbHMsIGlzIGNvbnRyb2xsZWQgYnksIG9yIGlzIHVuZGVyCmNvbW1vbiBjb250cm9sIHdpdGggc3VjaCBQYXJ0eS4gRm9yIHB1cnBvc2VzIG9mIHRoaXMKZGVmbWl0aW9uLCDigJxjb250cm9s4oCcIG1lYW5zIHRoZSBiZW5lZmxjaWFsIG93bmVyc2hpcCBvZgptb3JlIHRoYW4gZmxmdHkgKDUwKSBwZXIgY2VudCBvZiB0aGUgaXNzdWVkIHZvdGluZyBzaGFyZXMgb3IKdGhlIGxlZ2FsIHBvd2VyIHRvIGRpcmVjdCBvciBjYXVzZSB0aGUgZGlyZWN0aW9uIG9mIHRoZSBnZW5lcmFsCm1hbmFnZW1lbnQgb2YgdGhlIGNvbXBhbnksIHBhcnRuZXJzaGlwIG9yIG90aGVyIGVudGl0eSBpbgpxdWVzdGlvbiwgYW5kIOKAnGNvbnRyb2xsZWTigJwgc2hhbGwgYmUgY29uc3RydWVkIGFjY29yZGluZ2x5LgoK4oCeUMWZaWRydcW+ZW7DqSBzcG9sZcSNbm9zdOKAnCB6bmFtZW7DoSBWIHNvdXZpc2xvc3RpIHMgamFrb3Vrb2xpCnN0cmFub3UgdMOpdG8gc21sb3V2eWpha291a29saSBzcG9sZcSNbm9zdCwgcGFydG5lcnN0dsOtIG5lYm8Kamluw70gc3ViamVrdCwga3RlcsO9IHDFmcOtbW8gxI1pIG5lcMWZw61tbyBrb250cm9sdWplIHR1dG8gc3RyYW51Cm5lYm8gamUgasOtIGtvbnRyb2xvdsOhbiBuZWJvIGplIHBvZCBzcG9sZcSNbm91IGtvbnRyb2xvdQpzIHRvdXRvIHN0cmFub3UuIFBybyDDusSNZWx5IHTDqXRvIGRlZm1pY2Ugem5hbWVuw6Eg4oCea29udHJvbGHigJwKc2t1dGXEjW7DqSBWbGFzdG5pY3R2w60gdsOtY2UgbmXFviBwYWRlc8OhdGkgKDUwKSBwcm9jZW50CnZ5ZGFuw71jaCBobGFzb3ZhY8OtY2ggcG9kw61sxa8gbmVibyB6w6Frb25ub3UgbW9jIMWZw61kaXQKbmVibyBvdmxpdsWIb3ZhdCDFmcOtemVuw60gcMWZZWRzdGF2ZW5zdHZhIHNwb2xlxI1ub3N0aSwKcGFydG5lcnN0dsOtIG5lYm8gamluw6lobyB0YWtvdsOpaG8gc3ViamVrdHUsIHDFmWnEjWVtxb4gcG9qZW0K4oCea29udHJvbG92w6Fu4oCcIGJ1ZGUgdnlrbMOhZMOhbiBvZHBvdsOtZGFqw61jw61tIFpwxa9zb2JlbS4KCiAKCuKAnEFwcGxpY2FibGUgTGF34oCcIG1lYW5zIGFueSBpbnRlcm5hdGlvbmFsLCBuYXRpb25hbCwKZmVkZXJhbCwgc3RhdGUsIHByb3ZpbmNpYWwsIGNvbW1vbndlYWx0aCwgb3IgbG9jYWwKZ292ZXJubWVudCBsYXcsIHN0YXR1dGUsIHJ1bGUsIHJlcXVpcmVtZW50LCBjb2RlLApyZWd1bGF0aW9uLCBvciBvcmRpbmFuY2UgdGhhdCBhcHBsaWVzIHRvIGFueSBQYXJ0eSBvciB0bwphU3R1ZHksIHRoZSBTZXJ2aWNlcywgb3IgdGhpcyBBZ3JlZW1lbnQsIGFzIHdlbGwgYXMgdGhlCmN1cnJlbnQgZ29vZCBjbGluaWNhbCBwcmFjdGljZXMgZ3VpZGVsaW5lcyBvZiB0aGUKSW50ZXJuYXRpb25hbCBDb25mZXJlbmNlIG9uIEhhcm1vbml6YXRpb24gb2YgVGVjaG5pY2FsClJlcXVpcmVtZW50cyBmb3IgUmVnaXN0cmF0aW9uIG9mIFBoYXJtYWNldXRpY2FscyBmb3IKSHVtYW4gVXNlIFRvcGljIEU2MSBHdWlkZWxpbmVzIG9uIEdvb2QgQ2xpbmljYWwKUHJhY3RpY2UsIGFuZCBhcHBsaWNhYmxlIHZlcnNpb24ocykgb2YgdGhlIFdvcmxkIE1lZGljYWwKQXNzb2NpYXRpb24gRGVjbGFyYXRpb24gb2YgSGVsc2lua2ksIGFuZCwgd2hlcmUgYXBwbGljYWJsZSwKcnVsZXMgZ292ZXJuaW5nIGdvb2QgbWFudWZhY3R1cmluZyBwcmFjdGljZSBhbmQgZ29vZApsYWJvcmF0b3J5IHByYWN0aWNlLCBhbmQgcnVsZXMgZ292ZXJuaW5nIHRoZSBjb2xsZWN0aW9uIGFuZApwcm9jZXNzaW5nIG9mIFBlcnNvbmFsIERhdGEgYW5kIHRoZSBjb2xsZWN0aW9uIGFuZCBzdG9yYWdlCm9mIGh1bWFuIHRpc3N1ZSBzYW1wbGVzIGFuZCB0aGUgcGVyZm9tYW5jZSBvZiBETkEKdGVzdGluZy4KCuKAnlBsYXRuw6kgWsOha29ueeKAnCB6bmFtZW5hasOtIGpha8O9a29saSBtZXppbsOhcm9kbsOtLCBuw6Fyb2Ruw60sCmZlZGVyw6FsbsOtLCBzdMOhdG7DrSwgcmVnaW9uw6FsbsOtLCBrb25zdGl0dcSNbsOtIMSNaSBtw61zdG7DrSB2bMOhZG7DrQpaw6Frb24sIHDFmWVkcGlzLCBwcmF2aWRsbywgcG/FvmFkYXZlaywgWsOha29uxa9nIG5hxZnDrXplbsOtCm5lYm8gdnlobMOhxaFrdSwga3RlcsOpIHNlIHTDvWthasOtIGt0ZXLDqWtvbGkgc3RyYW55IG5lYm8gc3R1ZGllLApzbHXFvmViIG5lYm8gdMOpdG8gc21sb3V2eSwgYWxlIGlha3R1w6FsbsOtY2ggcG9reW7FryBwcm8Kc3Byw6F2bm91IGtsaW5pY2tvdSBwcmF4w60gTWV6aW7DoXJvZG7DrSBrb25mZXJlbmNlIHBybwpoYXJtb25pemFjaSB0ZWNobmlja8O9Y2ggcG/FvmFkYXZrxa8gbmEgcmVnaXN0cmFjaQpmYXJtYWNldXRpY2vDvWNoIGh1bcOhbm7DrWNoIHDFmcOtcHJhdmvFrywgdMOpbWEgRTYxIFBva3lueQpwcm8gc3Byw6F2bm91IGtsaW5pY2tvdSBwcmF4w60gYSBwxZnDrXNsdcWhbsOpIHZlcnplIEhlbHNpbnNrw6EKZGVrbGFyYWNlIFN2xJt0b3bDqSBsw6lrYcWZc2vDqSBhc29jaWFjZSBhKHYgcG91xb5pdGVobMO9Y2gKcMWZw61wYWRlY2gpIHByYXZpZGxhIHVyxI11asOtY8OtIHNwcsOhdm5vdSBWw71yb2Juw60gcHJheGkKCiYgc3Byw6F2bm91IGxhYm9yYXRvcm7DrSBwcmF4aSBhIHByYXZpZGxhIHVyxI11asOtY8OtCnNocm9tYcW+xI9vdsOhbsOtIGEgWnByYWNvdsOhbsOtIG9zb2Juw61jaCDDumRhasWvCiYgc2hyb21hxb7Ej292w6Fuw60gYSB1Y2hvdsOhdsOhbsOtIHZ6b3Jrxa8gbGlkc2vDqSB0a8OhbsSbCgphIHByb3bDoWTEm27DrSB0ZXN0xa8gRE5BLgoKIAoK4oCcQ29tcGxldGVkIFN1YmplY3TigJwgbWVhbnMgYW55IFN1YmplY3QgV2hvIGhhcwpjb21wbGV0ZWQgdGhlIHByZXNjcmliZWQgY291cnNlIG9mIHRyZWF0bWVudCBmb3IgJiBzdWJqZWN0CmluIHRoZSBTdHVkeSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIFByb3RvY29sLgoK4oCeRG9rb27EjWVuw70gc3ViamVrdCBob2Rub2NlbsOt4oCcIHDFmWVkc3RhdnVqZSBqYWvDvWtvbGkKc3ViamVrdCBob2Rub2NlbsOtLCBrdGVyw70gZG9rb27EjWlsIHDFmWVkZXBzYW5vdSBsw6nEjWJ1CnN1Ympla3R1IGhvZG5vY2Vuw60gdmUgc3R1ZGnDrSB2IHNvdWxhZHUgcyBwcm90b2tvbGVtLgoKIAoK4oCcQ29uZmlkZW50aWFsIEluZm9ybWF0aW9u4oCcIHJlZmVycyB0byBhbnkgYW5kIGFsbApJbmZvcm1hdGlvbiBiZWxvbmdpbmcgdG8gU1BPTlNPUiwgaXRzIGRlc2lnbmVlIGFuZC9vcgp0aGVpciByZXNwZWN0aXZlIEFmZmlsaWF0ZXMgaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG8sCkluZm9ybWF0aW9uIHRoYXQgU1BPTlNPUiwgaXRzIGRlc2lnbmVlIGFuZC9vciB0aGVpcgpyZXNwZWN0aXZlIEFmZmlsaWF0ZXMgY29uc2lkZXIgdG8gYmUgdHJhZGUgc2VjcmV0cyBhbmQgLyBvciB0aGUKcmVsZWFzZSBvZiB3aGljaCBjb3VsZCBwcmVqdWRpY2UgbGVnYWwsIGNvbW1lcmNpYWwgb3Igb3RoZXIKaW50ZXJlc3RzIG9mIFNQT05TT1IsIGl0cyBkZXNpZ25lZSBhbmQvb3IgdGhlaXIgcmVzcGVjdGl2ZQpBZmZpbGlhdGVzIGFuZCB3aGljaCBhcmUgKGkpIHByb3ZpZGVkLCBkaXNjbG9zZWQgb3IKc3VibWl0dGVkIHRvIEluc3RpdHV0aW9uIG9yIEludmVzdGlnYXRvciBvciAoaWkpIHdoaWNoIGFyZQpvdGhlcndpc2Ugb2J0YWluZWQgYnkgSW5zdGl0dXRpb24gYW5kIEludmVzdGlnYXRvci4KCuKAnkTFr3bEm21lJyBpbmZvcm1hY2XigJwgem5hbWVuYWrDrSBqYWvDqWtvbGkgYSB2ZcWha2Vyw6kKaW5mb3JtYWNlIG7DoWxlxb5lasOtY8OtIFpBREFWQVRFTEksIGplaG8gcG92xJvFmWVuw6kgb3NvYsSbCmEvbmVibyBqZWppY2ggcMWZw61zbHXFoW7DvW0gcMWZaWRydcW+ZW7DvW0gc3ViamVrdMWvbSwgbWltbwpqaW7DqSB2xI1ldG7EmyBpbmZvcm1hY8OtLCBrdGVyw6kgWkFEQVZBVEVMLCBqZWhvIHBvdsSbxZllbsOhCm9zb2JhIGEvbmVibyBqZWppY2ggcMWZw61zbHXFoW7DqSBwxZlpZHJ1xb5lbsOpIHN1Ympla3R5IHBvdmHFvnVqw60KemEgb2JjaG9kbsOtIHRhamVtc3R2w60gYS9uZWJvIHRha292w6ksIGplamljaMW+IHB1Ymxpa2FjZSBieQpwb8Wha29kaWxhIFrDoWtvbm7DqSwgb2JjaG9kbsOtIMSNaSBqaW7DqSBaw6FqbXkKWkFEQVZBVEVMRSwgamVobyBwb3bEm8WZZW7DqSBvc29ieSBhL25lYm8gamVqaWNoCnDFmcOtc2x1xaFuw71jaCBwxZlpZHJ1xb5lbsO9Y2ggc3ViaiBla3TFryBhIGt0ZXLDqSBqc291IChpKSBwxZllZMOhbnksCnpwxZnDrXN0dXBuxJtueSBuZWJvIHDFmWVkbG/FvmVueSBaZHJhdm90bmlja2UnbXUgemHFmcOtemVuw60KbmVibyBaa291xaFlasOtY8OtbXUgbmVibyAoaWkpIGt0ZXLDqSBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtCiYgemtvdcWhZWrDrWPDrSBaw61za2FsaSBqaW7DvW0gWnDFr3NvYmVtLgoKIAoK4oCcRGF0YSBTZWN1cml0eSBCcmVhY2jigJwgbWVhbnM6IChhdCkgdGhlIGxvc3Mgb3IgbWlzdXNlIChieQphbnkgbWVhbnMpIG9mIFBlcnNvbmFsIERhdGE7IChiKSB0aGUgaW5hZHZlcnRlbnQsCnVuYXV0aG9yaXplZCwgYW5kL29yIHVubGF3ZnVsIFByb2Nlc3NpbmcsIGRpc2Nsb3N1cmUsCmFjY2VzcywgYWx0ZXJhdGlvbiwgY29ycnVwdGlvbiwgdHJhbnNmZXIsIG9yIHNhbGUgb3IgcmVudGFsLApkZXN0cnVjdGlvbiwgb3IgdXNlIG9mIFBlcnNvbmFsIERhdGE7IG9yIChjKSBhbnkgb3RoZXIgYWN0IG9yCgogCgogCgrigJ5Qb3J1xaFlbsOtIGJlenBlxI1ub3N0aSDDumRhasWv4oCcIHpuYW1lbsOhOihhKSB6dHLDoXR1IG5lYm8Kem5ldcW+aXTDrSAoamFrw71taWtvbGkgcHJvc3TFmWVka3kpIG9zb2Juw61jaCDDumRhasWvOyAoYikKbmXDum15c2xuw6ksIG5lb3Byw6F2bsSbbsOpIGEvbmVibyBuZXrDoWtvbm7DqSBacHJhY292w6Fuw60sClpwxZnDrXN0dXBuxJtuw60sIHDFmcOtc3R1cCwgcG96bcSbbsSbbsOtLCBwb8Wha296ZW7DrSwgcMWZZWTDoW7DrSBuZWJvCnByb2RlaiDEjWkgcHJvbsOhamVtLCB6bmnEjWVuw60gxI1pIHBvdcW+aXTDrSBvc29ibsOtY2ggw7pkYWrFrzsgbmVibwoKIAoKMjg0NjQxXzE0MDQtT080NF9DWkVfQ1pFNF9JTlNUIFBJIENTQSBfIEJpbGluZ3VhbF8yMDI1MDQwOV8xLjAKClN0cmFuYSA1OSB6IDY1CgogCgogCgpvbWlzc2lvbiB0aGF0IGNvbXByb21pc2VzIHRoZSBzZWN1cml0eSwgY29uxYhkZW50aWFsaXR5LCBvcgppbnRlZ3JpdHkgb2YgUGVyc29uYWwgRGF0YS4KCihjKSBqYWvDqWtvbGkgamluw6kga29uYW7DrSDEjWkgb3BvbWVudXTDrSwga3RlcmUnIG9ocm/FvnVqZQpiZXpwZcSNbm9zdCwgZMWvdsSbcm5vc3QgxI1pIGludGVncml0dSBvc29ibsOtY2ggw7pkYWrFry4KCiAKCuKAnGVDUkZzL0NSRlPigJwgKEVsZWN0cm9uaWMgQ2FzZSBSZXBvcnQgRm9ybXMgb3IgQ2FzZQpSZXBvcnQgRm9ybXMpIGFyZSBwYXBlciBvciBlbGVjdHJvbmljIHF1ZXN0aW9ubmFpcmVzCnNwZWNpxYhjYWxseSB1c2VkIGJ5IEluc3RpdHV0aW9uIGFuZCBJbnZlc3RpZ2F0b3IgcHVyc3VhbnQgdG8KdGhlIFByb3RvY29sIGZvciBTdWJqZWN0IGRhdGEgcmVwb3J0aW5nLgoK4oCeZUNSRi9DUkbigJwgKGVsZWt0cm9uaWNrZSB6YXpuYW15IHN1YmogZWt0dSBob2Rub2NlbsOtCm5lYm8gesOhem5hbXkgc3ViamVrdHUgaG9kbm9jZW7DrSkganNvdSBkb3Rhem7DrWt5CnYgcGFww61yb3bDqSBuZWJvIGVsZWt0cm9uaWNrw6kgcG9kb2LEmyBwb3XFvsOtdmFuw6kga29ua3JldG7Emwp6ZHJhdm90bmlja8O9bSB6YcWZw616ZW7DrW0gYSB6a291xaFlasOtY8OtbSBsZSdrYcWZZW0gViBzb3VsYWR1CnMgcHJvdG9rb2xlbSBwcm8gw7rEjWVseSBobMOhxaFlbsOtIMO6ZGFqxa8gbyBzdWJqZWt0dSBob2Rub2NlbsOtLgoKIAoK4oCcRnVsbHkgQ29vcGVyYXRl4oCcbWVhbnMgdG8gYXNzaXN0IGluIGNvbXBsZXRpbmcgYSBzcGVjaWZpZWQKZW5kIG9yIHB1cnBvc2UuCgrigJ5QaHLEmyBzcG9sdXByYWNvdmF04oCcIHpuYW1lbmEgcG9za3l0bm91dCBzb3XEjWlubm9zdCBwxZlpCmRvc2Fob3ZhbsOtIHVyxI1pdGUnaG8gY8OtbGUgxI1pIMO6xI1lbHUuCgogCgrigJxJbmZvcm1hdGlvbuKAnCByZWZlcnMgdG8gYW55IGFuZCBhbGwgb3JhbCwgd3JpdHRlbiAoaW5jbHVkaW5nCmFsbCBvdGhlciB0YW5naWJsZSBmb3JtcykgYW5kIG90aGVyIGluZm9ybWF0aW9uLCBtYXRlcmlhbAphbmQgYXNzZXRzIG9mIGFueSBuYXR1cmUsIHdoZXRoZXIgb3Igbm90IHByb3RlY3RlZCBieQpJbnRlbGxlY3R1YWwgUHJvcGVydHkgUmlnaHRzIG9yIGFueSBhcHBsaWNhdGlvbnMgZm9yIHN1Y2gKcmlnaHRzLCBzdWNoIGFzLCBidXQgbm90IGxpbWl0ZWQgdG8sIGRhdGEsIGRhdGEgaW5mb3JtYXRpb24sCmRhdGEgYW5kIFJlcG9ydHMgb24gdGhlIFN0dWR5IGFuZCB0aGUgU3R1ZHkgRHJ1ZywgKGUpQ1JGcwood2hldGhlciBjb21wbGV0ZWQgb3Igbm90KSwgZmxuYWwgUmVwb3J0cywgYWxsIG90aGVyIGNsaW5pY2FsCmRhdGEsIG1hbnVmYWN0dXJpbmcgZGF0YSwgdGhlIFByb3RvY29sLCB0aGUgSW52ZXN0aWdhdG9yCkJyb2NodXJlLCBsYWJvcmF0b3J5IHJlY29yZHMsIGluZm9ybWF0aW9uIGNvbnRhaW5lZCBpbgpzdWJtaXNzaW9ucyB0byByZWd1bGF0b3J5IGF1dGhvcml0aWVzLCB1bnB1Ymxpc2hlZCBkYXRhIGFuZApSZXBvcnRzLCBhbnkgYW5kIGFsbCBvdGhlciBTdHVkeSBkb2N1bWVudGF0aW9uLCB0ZWNobmljYWwKaW5mb3JtYXRpb24sIGZpbmRpbmdzLCBzYW1wbGVzLCBpbnRlcmltIHJlc3VsdHMgYW5kIHJlc3VsdHMsCkludGVsbGVjdHVhbCBQcm9wZXJ0eSBSaWdodHMgYW5kIGFueSBvdGhlciBpbmZvcm1hdGlvbiBhbmQKYXNzZXRzIHBvdGVudGlhbGx5IHN1YmplY3QgdG8gYW55IGtpbmQgb2YgaW50ZWxsZWN0dWFsCnByb3BlcnR5IHJpZ2h0cywgd2hldGhlciBwcm90ZWN0YWJsZSBvciBub3QsIGFuZCBhbnkgZXhpc3RpbmcKb3IgZnV0dXJlIHJpZ2h0cyB0aGVyZWluOyBTdWJqZWN0cywgbWVkaWNhbCBmaWxlcyBhbmQKZG9jdW1lbnRzIGZhY2lsaXRhdGluZyBpZGVudGlmaWNhdGlvbiBvZiB0aGUgU3R1ZHkgU3ViamVjdHMuCgrigJ5JbmZvcm1hY2XigJwgem5hbWVuYWrDrSBqYWtla29saSBhIHZlxaFrZXLDqSDDunN0bsOtLCBww61zZW1uw6kKKFbEjWV0bsSbIHZlxaFrZXLDvWNoIGppbsO9Y2ggaG1vdG7DvWNoIGZvcmVtKSBhIGppbsOpCmluZm9ybWFjZSwgbWF0ZXJpw6FsIGFtYWpldGVrIGpha2Vrb2xpIHBvdmFoeSwgYcWlIGppxb4KY2hyw6FuxJtuw6kgcHJhdnkgayBkdcWhZXZuw61tdSBWbGFzdG5pY3R2w60sIHDFmcOtcGFkbsSbIGpha2Vrb2xpCnBvdcW+aXTDrSB0YWtvdsO9Y2ggcHJhdiwgbWltbyBqaW7DqSBuYXDFmcOta2xhZCBkYXRhLCBkYXRvdsOpCmluZm9ybWFjZSwgZGF0YSBhIHpwcsOhdnkgdMO9a2Fqw61jw60gc2Ugc3R1ZGllIGEgaG9kbm9jZW7DqWhvCnDFmcOtcHJhdmt1LCBmb3JtdWzDocWZZSBDUkYgKGHFpSB2eXBsbsSbbsOpLCDEjWkgbmV2eXBsbsSbbsOpKSwKWsOhdsSbcmXEjW7DqSB6cHLDoXZ5LCB2ZcWha2Vyw6kgZGFsxaHDrSBrbGluaWNrw6kgdWRhamUsIFbDvXJvYm7DrQp1ZGFqZSwgcHJvdG9rb2wsIHNvdWJvciBpbmZvcm1hY8OtIHBybyBaa291xaFlanInY8Wvcm8sCmxhYm9yYXRvcm7DrSB6w6F6bmFteSwgaW5mb3JtYWNlIG9ic2HFvmVuw6kgViBwxZllZGxvxb5lbsO9Y2gKbWF0ZXJpw6FsZWNoIHBybyBrb250cm9ocnInIMO6xZlhZHksIG5lcHVibGlrb3ZhbsOhIGRhdGEKYVpwcsOhdnksIGpha8Oha29saSBhdmXFoWtlcmEgZGFsxaHDrSBzdHVkaWpuw60gZG9rdW1lbnRhY2UsCnRlY2huaWNrw6kgaW5mb3JtYWNlLCBuw6FsZXp5LCB2em9ya3ksIHByxa9ixJvFvm7DqSBWw71zbGVka3kKYSB2w71zbGVka3ksIHByw6F2YSBrIGR1xaFldm7DrW11IFZsYXN0bmljdHbDrSBhIHZlxaFrZXLDqSBkYWzFocOtCmluZm9ybWFjZSBhbWFqZXRlayBwb3RlbmNpw6FsbsSbIHBvZGxlJ2hhanInY3InIGpha8O9bWtvbGkKcHLDoXbFr20gayBkdcWhZXZuw61tdSBWbGFzdG5pY3R2w60sIGHFpWppxb4gcyBtb8W+bm9zdMOtIG9jaHJhbnksCm5lYm8gYmV6IG7DrSwgYSBrIHZlxaFrZXLDvW0gc3TDoXZhasOtY8OtbSDEjWkgYnVkb3Vjw61tIHByw6F2xa9tCnMgdMOtbSBzb3V2aXNlasOtY8OtbTsgemRyYXZvdG7DrSB6w6F6bmFteSBhIGRva3VtZW50YWNlCnN1Ympla3TFryBob2Rub2NlbsOtIHVzbmFkxYh1asOtY8OtIGlkZW50aWZpa2FjaSBzdWJqZWt0xa8KaG9kbm9jZW7DrS4KCiAKCuKAnEludGVsbGVjdHVhbCBQcm9wZXJ0eSBSaWdodHPigJwgcmVmZXJzIHRvIGV4aXN0aW5nIGFuZCAvIG9yCmZ1dHVyZSBwYXRlbnRzLCBwYXRlbnQgYXBwbGljYXRpb25zLCB0cmFkZSBtYXJrcywgdHJhZGUKbmFtZXMsIHNlcnZpY2UgbWFya3MsIGRvbWFpbiBuYW1lcywgY29weXJpZ2h0cywgbW90YWwKcmlnaHRzLCByaWdodHMgaW4gYW5kIHRvIGRhdGFiYXNlcyAoaW5jbHVkaW5nIHJpZ2h0cyB0byBwcmV2ZW50CnRoZSBleHRyYWN0aW9uIG9yIHJldXRpbMOtemF0aW9uL3JldXRpbGlzYXRpb24gb2YgSW5mb3JtYXRpb24KZnJvbSBhIGRhdGFiYXNlKSwgZGVzaWduIHJpZ2h0cywgdG9wb2dyYXBoeSByaWdodHMsIGtub3figJQKaG93LCB0cmFkZSBzZWNyZXRzIGFuZCBhbGwgcmlnaHRzIG9yIGZvcm1zIG9mIHByb3RlY3Rpb24gb2YKYSBzaW1pbGFyIG5hdHVyZSBvciBoYXZpbmcgZXF1aXZhbGVudCBvciB0aGUgc2ltaWxhciBlZmZlY3QgdG8KYW55IG9mIHRoZW0gd2hpY2ggbWF5IHN1YnNpc3QgYW55d2hlcmUgaW4gdGhlIHdvcmxkLAp3aGV0aGVyIG9yIG5vdCBhbnkgb2YgdGhlbSBhcmUgcmVnaXN0ZXJlZCBhbmQgaW5jbHVkaW5nCmFwcGxpY2F0aW9ucyBmb3IgcmVnaXN0cmF0aW9uIG9mIGFueSBvZiB0aGVtOyBmdXJ0aGVybW9yZQpyaWdodHMgb2YgdXNlLCByaWdodHMgb2YgZXhwbG9pdGF0aW9uLCByaWdodHMgb2YgdXRpbGl6YXRpb24gYW5kCmxpY2Vuc2VzLCB3aGV0aGVyIHJveWFsdHnigJRmcmVlIG9yIG90aGVyd2lzZS4KCuKAnlByYXZhIGsgZHXFoWV2bsOtbXUgVmxhc3RuaWN0dsOt4oCcIHNlIHTDvWthasOtIHN0w6F2YWrDrWPDrWNoCmEvbmVibyBidWRvdWPDrWNoIHBhdGVudMWvLCBwYXRlbnRvdsO9Y2ggcMWZaWhsw6HFoWVrLApvYmNob2Ruw61jaCB6bmHEjWVrLCBvYmNob2Ruw61jaCBuw6F6dsWvLCB6bmFtZWsgc2x1xb5lYiwKbsOhenbFryBkb21lJ24sIGF1dG9yc2vDvWNoIHByw6F2LCBtb3LDoWxuw61jaCBwcmF2LCBwcsOhdgp2IGRhdGFiw6F6w61jaCBhIGsgbmltIChWxI1ldG7EmyBwcsOhdiBwcm8gemFicsOhbsSbbsOtIGV4dHJha2NpCm5lYm8gb3DEm3Rvdm7DqW11IHBvdcW+aXTDrSBpbmZvcm1hY8OtIFogZGF0YWLDoXplKSwgcHLDoXYKayBwcsWvbXlzbG92w71tIHZ6b3LFr20sIHRvcG9ncmFmaWNrw71jaCBwcmF2LCBrbm9X4oCUaG93LApvYmNob2Ruw61jaCB0YWplbXN0dsOtIGEgVsWhZWNoIHByYVYgbmVibyB6cMWvc29ixa8gb2NocmFueQpwb2RvYm7DqSBwb3ZhaHkgbmVibyB0YWtvdsO9Y2gsIGt0ZXLDqSBtYWrDrSBzdGVqbsO9IG5lYm8Kb2Jkb2Juw70gw7rEjWluZWsgVsWvxI1pIGt0ZXLDvW1rb2xpIHp0xJtjaCwga3RlcsOpIG1vaG91CmV4aXN0b3ZhdCBrZGVrb2xpIG5hIHN2xJt0xJssIGHFpSB1xb4ganNvdSBrdGVyw6lrb2xpIHpuaWNoCnJlZ2lzdHJvdmFuZSwgVsSNZXRuxJsgxb7DoWRvc3TDrSBvIHJlZ2lzdHJhY2ksIG5lYm8gbmlrb2xpOyBkw6FsZQpwYWsgcHLDoXZhIGtwb3XFvml0cicsIHByYXZhIGt6dcW+aXRrb1ZhbnInLCBwcmF2YSBrdnl1xb5pdMOtCmEgbGljZW5jZSwgYcWlIHXFviBiZVogbGljZW7EjW7DrWhvIHBvcGxhdGt1LCDEjWkgamluYWsuCgogCgrigJxJbnZlc3RpZ2F0aW9uYWwgUHJvZHVjdOKAnCByZWZlcnMgdG8gU1BPTlNPUsOJCmludmVzdGlnYXRpb25hbCBwcm9kdWN0KHMpIGluY2x1ZGluZyB0aGUgU3R1ZHkgRHJ1ZyBhbmQgLwpvciBpbnZlc3RpZ2F0aW9uYWwgZGV2aWNlIGFuZCB0byBwbGFjZWJvLCBjb21wYXJhdG9yIGRydWcvCmRldmljZSBvciBhbnkgb3RoZXIgY29udHJvbCBtYXRlcmlhbCBhcyBkZWZpbmVkIGluIHRoZQpQcm90b2NvbC4KCiAKCiAKCuKAnkhvZG5vY2Vuw70gcMWZw61wcmF2ZWvigJwgcMWZZWRzdGF2dWplIGhvZG5vY2Vuw70gcMWZw61wcmF2ZWsKbmVibyBob2Rub2NlbsOpIHDFmcOtcHJhdmt5IFpBREFWQVRFTEUsIFbEjWV0bsSbCmhvZG5vY2VuZSdobyBwxZnDrXByYXZrdSBhL25lYm8gaG9kbm9jZW5lJ2hvIHByb3N0xZllZGt1CmFwbGFjZWJhLCBzcm92bmF2YWNyaG8gcMWZw61wcmF2a3UvIHByb3N0xZllZGt1IG5lYm8KamFrw6lob2tvbGkgamluw6lobyBrb250cm9sbsOtaG8gbWF0ZXJpw6FsdSBkZWZpbm92YW7DqWhvCnZwcm90b2tvbHUuCgogCgoyODQ2NDFfMTQwNC0wMDQ0X0NaRV9DWkU0X0lOU1QgUEkgQ1NBIF8gQmlsaW5ndWFsXzIwMjUwNDA5XzEuMAoKU3RyYW5hIDYwIHogNjUKCiAKCiAKCuKAnEludmVzdGlnYXRvcuKAnCBpcyB0aGUgaW5kaXZpZHVhbCBuYW1lZCBpbiB0aGUgaW50cm9kdWN0aW9uCnRvIHRoaXMgQWdyZWVtZW50LCBhbmQgaXMgdGhlIHBlcnNvbiByZXNwb25zaWJsZSBmb3IgdGhlCmNvbmR1Y3Qgb2YgdGhlIFN0dWR5IGF0IEluc3RpdHV0aW9uLiBJZiAmIFN0dWR5IGlzIGNvbmR1Y3RlZApieSAmIHRlYW0gb2YgaW5kaXZpZHVhbHMgYXQgYW4gSW5zdGl0dXRpb24sIEludmVzdGlnYXRvciBpcyB0aGUKcmVzcG9uc2libGUgbGVhZGVyIG9mIHRoZSB0ZWFtIGFuZCBtYXkgYmUgY2FsbGVkIHRoZQpwcmluY2lwYWwgaW52ZXN0aWdhdG9yLgoK4oCeWmtvdcWhZWrDrWPDreKAnCBqZSBvc29iYSBpZGVudGlmaWtvdmFuw6kgViDDunZvZHUgdMOpdG8gc21sb3V2eQphIGplIHRvIG9zb2JhIG9kcG92xJtkbsOhIHphIHByb3bDoWTEm27DrSBzdHVkaWUgdmUKemRyYXZvdG5pY2vDqW0gemHFmcOtemVuw60uIFBva3VkIHN0dWRpaSBwcm92YWRpIHTDvW0gb3NvYiB2ZQp6ZHJhdm90bmlja8OpbSB6YcWZw616ZW7DrSwgamUgemtvdcWhZWrDrWPDrSBvZHBvdsSbZG7DvSB2ZWRvdWPDrQp0b2hvdG8gdMO9bXUgYSBtxa/FvmUgc2Ugb3puYcSNb3ZhdCBqYWtvIGhsYXZuw60gemtvdcWhZWrDrWPDrS4KCiAKCuKAnExpYWJpbGl0eSBJbnN1cmFuY2XigJwgaXMgaW5zdXJhbmNlIHRoYXQgcHJvdmlkZXMgY292ZXJhZ2UKYWdhaW5zdCBsaWFiaWxpdGllcyBmb3IgY2xhaW1zIG1hZGUgYnkgYW4gZW50aXR5IG9yIGluZGl2aWR1YWwKYXMgYSByZXN1bHQgb2YgZmF1bHQsIG5lZ2xpZ2VuY2UsIG1hbHByYWN0aWNlIG9yIGFueSBvdGhlcgppbmFwcHJvcHJpYXRlIGFjdGlvbiBjb21taXR0ZWQgYnkgSW5zdGl0dXRpb24sIEludmVzdGlnYXRvcgphbmQvb3IgU3R1ZHkgUGVyc29ubmVsIGluIHRoZWlyIHByb3Zpc2lvbiBvZiBwcm9mZXNzaW9uYWwKc2VydmljZXMgZm9yIHRoZSBTdHVkeS4KCuKAnlBvamnFoXTEm27DrSBvZHBvdsSbZG5vc3RpIHphIMWha29kdeKAnCBqZSBwb2ppxaF0xJtuw60sIGt0ZXLDqQpwb3NreXR1amUgcG9qaXN0bsOpIGtyeXTDrSBvZHBvdsSbZG5vc3RpIHphIG5hcm9reSB2em5lc2Vuw6kKcHLDoXZuaWNrb3UgbmVibyBmeXppY2tvdSBvc29ib3UgdmTFr3NsZWRrdSB6YXZpbsSbbsOtLApuZWRiYWxvc3RpLCBsw6lrYcWZc2vDqWhvIG9teWx1IG5lYm8gamFrw6lob2tvbGkgamluZSdobwpuZXZob2Ruw6lobyBqZWRuw6Fuw60sIGt0ZXLDqWhvIHNlIGRvcHVzdGlsbyB6ZHJhdm90bmlja8OpCnphxZnDrXplbsOtLCB6a291xaFlasOtY8OtIGEvbmVibyBwZXJzb25hbCBzdHVkaWUgcMWZaSBwb3NreXRvdsOhbsOtCm9kYm9ybsO9Y2ggc2x1xb5lYiBwcm8gc3R1ZGlpLgoKIAoK4oCcUGVyc29uYWwgRGF0YeKAnCBtZWFucyBhbnkgaW5mb3JtYXRpb24gcmVsYXRpbmcgdG8gYW4KaWRlbnRpZmllZCBvciBpZGVudGnFiGFibGUgbmF0dXJhbCBwZXJzb247IGFuIGlkZW50acWIYWJsZQpwZXJzb24gaXMgb25lIHdobyBjYW4gYmUgaWRlbnRpZmllZCwgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSwKaW4gcGFydGljdWxhciBieSByZWZlcmVuY2UgdG8gYW4gaWRlbnRpZmljYXRpb24gbnVtYmVyIG9yIHRvCm9uZSBvciBtb3JlIGZhY3RvcnMgc3BlY2lmaWMgdG8gaGlzIHBoeXNpY2FsLCBwaHlzaW9sb2dpY2FsLAptZW50YWwsIGVjb25vbWljLCBjdWx0dXJhbCBvciBzb2NpYWwgaWRlbnRpdHkuCgrigJ5Pc29ibsOtIMO6ZGFqZeKAnCBwxZllZHN0YXZ1asOtIGpha8Opa29saSBpbmZvcm1hY2UgdMO9a2Fqw61jw60gc2UKaWRlbnRpZmlrb3ZhbsOpIG5lYm8gaWRlbnRpxYhrb3ZhdGVsbsOpIGZ5emlja8OpIG9zb2J5OyB6YQppZGVudGlmaWtvdmF0ZWhpb3Ugb3NvYnUgcG92YcW+dWplbWUgb3NvYnUsIGt0ZXJvdSBsemUKcMWZw61tbyDEjWkgbmVwxZnDrW1vIGlkZW50aWZpa292YXQsIHDFmWVkZXbFocOtbSBvZGthemVtIG5hCmlkZW50aWZpa2HEjW7DrSDEjcOtc2xvIG5lYm8gbmEgamVkZW4gxI1pIHbDrWNlIGZha3RvcsWvLCBrdGVyw6kganNvdQpzcGVjaWZpY2vDqSBwcm8gamVoby9qZWrDrSBmeXppY2tvdSwgZnl6aW9sb2dpY2tvdSwgZHXFoWV2bsOtLApla29ub21pY2tvdSwga3VsdHVybsOtIMSNaSBzb2NpYWhuJyBpZGVudGl0dS4KCiAKCuKAnFByb2Nlc3PigJwgbWVhbnMgYW55IG9wZXJhdGlvbiBvciBzZXQgb2Ygb3BlcmF0aW9ucyB3aGljaAppcyBwZXJmb3JtZWQgdXBvbiBQZXJzb25hbCBEYXRhLCB3aGV0aGVyIG9yIG5vdCBieQoKYXV0b21hdGljIG1lYW5zLCBzdWNoIGFzIGNvbGxlY3Rpb24sIHJlY29yZGluZywKb3JnYW5pemF0aW9uLCBzdG9yYWdlLCBhZGFwdGF0aW9uIG9yIGFsdGVyYXRpb24sIHJldHJpZXZhbCwKY29uc3VsdGF0aW9uLCB1c2UsIGRpc2Nsb3N1cmUgYnkgdHJhbnNtaXNzaW9uLAoKZGlzc2VtaW5hdGlvbiBvciBvdGhlcndpc2UgbWFraW5nIGF2YWlsYWJsZSwgYWxpZ25tZW50IG9yCmNvbWJpbmF0aW9uLCBibG9ja2luZywgZXJhc3VyZSBvciBkZXN0cnVjdGlvbi4KCuKAnlpwcmFjb3ZhbsOt4oCcIHpuYW1lbmEgamFrb3Vrb2xpIG9wZXJhY2kgbmVibyBzb3Vib3IKb3BlcmFjw60sIGt0ZXLDqSBzZSBwcm92w6FkxJtqw60gc29zb2Juw61taSDDumRhamksIGHFpSBqacW+CmF1dG9tYXRpY2t5LCBuZWJvIG5lLCBuYXDFmS4gc2hyb21hxb7Ej292w6Fuw60sCnphem5hbWVuw6F2w6Fuw60sIG9yZ2FuaXpvdsOhbsOtLCB1Y2hvdsOhdsOhbsOtLCBhZGFwdGFjZSBuZWJvCnptxJtueSwgWsOtc2vDoW7DrSwga29uenVsdGFjZSwgcG91xb5pdMOtLCBwxZllZMOhbsOtIHDFmWVub3NlbSwKxaHDrcWZZW7DrW0gbmVibyBacMWZw61zdHVwbsSbbsOtbSBqaW7DvW0gWnDFr3NvYmVtLCB1c3BvxZnDoWTDoW7DrQpuZWJvIGtvbWJpbm92w6Fuw60sIHphYmxva292w6Fuw60sIHbDvW1heiBuZWJvIHpuacSNZW7DrS4KCiAKCuKAnFJlcG9ydHPigJwgbWVhbnMgYW55IHJlcG9ydHMgdGhhdCBhcmUgcmVxdWlyZWQgYnkgdGhlCmFwcGxpY2FibGUgcmVndWxhdG9yeSBjb21taXR0ZWUgdG8gY2xvc2Ugb3V0IHRoZSBTdHVkeS4KCuKAnlpwcmF2eeKAnCBwxZllZHN0YXZ1asOtIGpha8Opa29saSB6cHLDoXZ5LCBrdGVyw6kgdnnFvmFkdWplCnDFmcOtc2x1xaFuw6EgcmVndWxhxI1uw60ga29taXNlIGsgdWtvbsSNZW7DrSBzdHVkaWUuCgogCgrigJxSZXNvdXJjZXPigJwgcmVmZXJzIHRvIGFueSBmYWNpbGl0aWVzIGFuZCBlcXVpcG1lbnQgdGhhdCBhcmUKdXRpbGl6ZWQgZm9yIHRoZSBjb25kdWN0IG9mIHRoZSBTdHVkeS4KCuKAnlpkcm9qZeKAnCBvZGthenVqw60gbmEgamFrw6lrb2xpIHByb3N0b3J5IGEgdnliYXZlbsOtLCBrdGVyw6kKc2xvdcW+w60gayBwcm92w6FkxJtuw60gc3R1ZGllLgoKIAoK4oCcU2VydmljZXPigJwgbWVhbnMgdGhlIHNlcnZpY2VzIHRvIGJlIHByb3ZpZGVkIGJ5IHRoZQpJbnN0aXR1dGlvbiwgdGhlIEludmVzdGlnYXRvciBhbmQvb3IgdGhlIFN0dWR5IFBlcnNvbm5lbAp1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQuCgrigJ5TbHXFvmJ54oCcIHDFmWVkc3RhdnVqw60gc2x1xb5ieSwga3RlcsOpIHBvc2t5dHVqZSBaZHJhdm90bmlja8OpCnphxZnDrXplbsOtLCB6a291xaFlasOtY8OtIGEvbmVibyBzdHVkaWpuw60gdMO9bSBwb2RsZSBwb2Rtw61uZWsKdMOpdG8gc21sb3V2eS4KCiAKCuKAnFN0dWR54oCcIG1lYW5zIHRoZSBzY2llbnRpZmljIHJlc2VhcmNoIGFzIGRlZmluZWQgaW4gdGhlClByb3RvY29sLgoK4oCeU3R1ZGll4oCcIHpuYW1lbsOhCnYgcHJvdG9rb2x1LgoKdsSbZGVja8O9IFbDvXprdW0gZGVmaW5vdmFuw70KCiAKCuKAnFN0dWR5IEluc3RydWN0aW9uc+KAnCBtZWFucyBhbnkgd3JpdHRlbiBkb2N1bWVudCwgb3RoZXIKdGhhbiB0aGUgUHJvdG9jb2wsIGlzc3VlZCBieSBTUE9OU09SIG9yIGl0cyBkZXNpZ25lZSB0aGF0CnNwZWNpxYhjYWxseSByZWxhdGVzIHRvIGFuZCByZWZlcmVuY2VzIHRoZSBTdHVkeSBhbmQgd2hpY2gKcHJvdmlkZXMgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhbmQvb3IgaW5zdHJ1Y3Rpb25zIG9uIGhvdwp0aGUgSW5zdGl0dXRpb24gYW5kIEludmVzdGlnYXRvciBzaGFsbCBjb25kdWN0IHRoZSBTdHVkeS4KU3R1ZHkgSW5zdHJ1Y3Rpb25zIG1heSBiZSB0cmFuc21pdHRlZCBmcm9tIFNQT05TT1Igb3IKaXRzIGRlc2lnbmVlIHRvIEluc3RpdHV0aW9uIGFuZC9vciBJbnZlc3RpZ2F0b3IgYnkgcGVyc29uYWwKZGVsaXZlcnksIGZheCwgZeKAlG1haWwsIHJlZ2lzdGVyZWQgcG9zdCwgY2VydGlmaWVkIHBvc3Qgb3IKY291cmllci4KCiAKCiAKCuKAnlBva3lueSBrZSBzdHVkaWnigJwgcMWZZWRzdGF2dWrDrSBqYWvDvWtvbGkgcMOtc2VtbsO9IGRva3VtZW50LAprcm9txJsgcHJvdG9rb2x1LCB2eWRhbsO9IFpBREFWQVRFTEVNIG5lYm8gamVobwpwb3bEm8WZZW5vdSBvc29ib3UsIGt0ZXLDvSBzZSBrb25rcsOpdG7EmyB0w71rYSBzdHVkaWUgbmVibyBuYQpuaSBvZGthenVqZSBha3RlcsO9IHBvc2t5dHVqZSBkYWzFocOtIGluZm9ybWFjZSBhL25lYm8KcG9reW55IGsgcHJvdsOhZMSbbsOtIHN0dWRpZSB6ZSBzdHJhbnkgemRyYXZvdG5pY2vDqWhvCnphxZnDrXplbsOtIGEgWmtvdcWhZWrDrWPDrWhvLiBQb2t5bnkga2Ugc3R1ZGlpIGx6ZSBwxZllbsOhxaFldCBvZApaQURBVkFURUxFIG5lYm8gamVobyBwb3bEm8WZZW7DqSBvc29ieSBuYQpaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIGEvbmVibyBaa291xaFlasOtY8OtaG8gb3NvYm7EmywgZmF4ZW0sCgogCgoyODQ2NDFfMTQwNC1PTzQ0X0NaRV9DWkU0X0lOU1QgUEkgQ1NBIF8gQmlsaW5ndWFsXzIwMjUwNDA5XzEuMAoKU3RyYW5hIDYxIHogNjUKCiAKCiAKCmVsZWt0cm9uaWNrb3UgcG/FoXRvdSwgY2VubsO9bSBwc2Fuw61tLCBkb3BvcnXEjWVub3UgcG/FoXRvdQpuZWJvIGt1csO9cmVtLgoKIAoK4oCcU3R1ZHkgUGVyc29ubmVs4oCcIG1lYW5zIGFueSBlbXBsb3llZXMgb2YgSW5zdGl0dXRpb24sCndobyBhcmUgaW52b2x2ZWQgaW4gcGVyZm9ybWluZyB0aGUgU3R1ZHksIGluY2x1ZGluZyBTdWLigJQKSW52ZXN0aWdhdG9yKHMpLCBTdHVkeSBjb29yZGluYXRvcihzKSwgYW5kIGFueSBvdGhlcgplbXBsb3llZXMgb2YgSW5zdGl0dXRpb24gd2hvIGFzc2lzdCBJbnN0aXR1dGlvbiBhbmQKSW52ZXN0aWdhdG9yIHdpdGggdGhlIFN0dWR5LgoK4oCeUGVyc29uYWwgc3R1ZGll4oCcIHpuYW1lbmEgamFrZWtvbGkgemFtxJtzdG5hbmNlCnpkcmF2b3RuaWNrw6lobyB6YcWZw616ZW7DrSwga3RlxZnDrSBzZSDDusSNYXN0bsOtIHByb3bDoWTEm27DrSBzdHVkaWUsClbEjWV0bsSbIHNwb2x1emtvdcWhZWpyJ2NIcm8vc3BvbHV6a291xaFlanInY3InY2gsCmtvb3JkaW5hdG9yYS9rb29yZGluYXRvcsWvIHN0dWRpZSBhIGpha8O9Y2hrb2xpIGRhbMWhw61jaAp6YW3Em3N0bmFuY8WvIHpkcmF2b3RuaWNrw6lobyB6YcWZw616ZW7DrSwga3RlxZnDrSBwb3NreXR1asOtCnNvdcSNaW5ub3N0IFpkcmF2b3RuaWNrZSdtdSB6YcWZw616ZW7DrSBhWmtvdcWhZWrDrWPDrXJudSBzZQpzdHVkacOtLgoKIAoK4oCcU3R1ZHkgUmVzdWx0c+KAnCByZWZlcnMgdG8gYW55IGFuZCBhbGwgSW5mb3JtYXRpb24gYW5kIGFueQpvdGhlciBtYXRlcmlhbCBhbmQgcmVzdWx0cyBkaXJlY3RseSBvciBpbmRpcmVjdGx5IGFyaXNpbmcgZnJvbQpvciBpbiBjb25uZWN0aW9uIHdpdGggdGhlIFN0dWR5LCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlClN0dWR5IHdhcyBhaW1lZCBhdCB5aWVsZGluZyB0aGUgcmVsZXZhbnQgU3R1ZHkgUmVzdWx0cyBvcgp3aGV0aGVyIHRoZXkgYXJlIGFuY2lsbGFyeSBpbiBjb25uZWN0aW9uIHdpdGggdGhlIFN0dWR5LgoK4oCeVsO9c2xlZGt5IHN0dWRpZeKAnCBwxZllZHN0YXZ1asOtamFrZSdrb2xpIGEgdmXFoWtlcsOpIGluZm9ybWFjZQphIGpha8O9a29saSBkYWzFocOtIG1hdGVyacOhbCBhIFbDvXNsZWRreSwga3RlcsOpIHDFmcOtbW8gxI1pIG5lcMWZw61tbwp2em5pa2x5IHplIHN0dWRpZSBuZWJvIHZlIHNwb2plbsOtIHMgbsOtLCBiZXogb2hsZWR1IG5hIHRvLCB6ZGEKYnlsbyBjw61sZW0gc3R1ZGllIHrDrXNrYXQgdsO9c2xlZGt5IHN0dWRpZSBuZWJvIHpkYSBtYWrDrQp2IHNvdXZpc2xvc3RpIHNlIHN0dWRpw60gZG9wbMWIa292b3UgcG92YWh1LgoKIAoK4oCcU3Vi4oCUSW52ZXN0aWdhdG9y4oCcIGlzIGFueSBpbmRpVmlkdWFsIG1lbWJlciBvZiB0aGUgU3R1ZHkKdGVhbSBkZXNpZ25hdGVkIGFuZCBzdXBlcnZpc2VkIGJ5IHRoZSBJbnZlc3RpZ2F0b3IgYXQKSW5zdGl0dXRpb24gdG8gcGVyZm9ybSBjcml0aWNhbCB0cmlhbOKAlHJlbGF0ZWQgcHJvY2VkdXJlcwphbmQvb3IgdG8gbWFrZSBpbXBvcnRhbnQgdHJpYWzigJRyZWxhdGVkIGRlY2lzaW9ucyAoZWcuLAphc3NvY2lhdGVzLCByZXNpZGVudHMsIHJlc2VhcmNoIGZlbGxvd3MpLgoK4oCeU3BvbHV6a291xaFlanInY3In4oCcIGplIGpha8O9a29saSDEjWxlbiBzdHVkaWpucmhvIHTDvW11IHVyxI1lbsO9Cnprb3XFoWVqw61jw61tIGxlJ2thxZllbSB2ZSB6ZHJhdm90bmlja8OpbSB6YcWZw616ZW7DrSwga3RlcsO9IG5hCm7Em2ogZG9obMOtxb7DrS4gSmVobyDDumtvbGVtIGplIHByb3bDoWTEm3QgZMWvbGXFvml0w6kgcG9zdHVweQpzb3V2aXNlasOtY8OtIHNlIHN0dWRpw60gYS9uZWJvIMSNaW5pdCBkxa9sZcW+aXTDoSByb3pob2RudXTDrQpzb3V2aXNlasOtY8OtIHNrbGluaWNrw71ybiByb3pob2RudXTDrW0gKG5hcMWZLiBzcG9sZcSNbsOtY2ksCmludGVybsOtIHphbcSbc3RuYW5jaSwga29sZWdvdsOpIFogdsO9emt1bXUpLgoKIAoK4oCcU3ViamVjdOKAnCBpcyBhIHBlcnNvbiBwYXJ0aWNpcGF0aW5nIGluIHRoZSBTdHVkeSBhbmQKaWRlbnRpZmllZCBpbiB0aGUgc2lnbmVkIGluZm9ybWVkIGNvbnNlbnQgZm9ybS4KCiAKCiAKCuKAnlN1Ympla3QgaG9kbm9jZW7DreKAnCBqZSBvc29iYSwga3RlcsOhIHNlIMO6xI1hc3Ruw60gc3R1ZGllCmFrdGVyw6EgamUgaWRlbnRpxYhrb3ZhbsOhIHZwb2RlcHNhbmUnbSBmb3JtdWzDocWZaQppbmZvcm1vdmFuw6lobyBzb3VobGFzdS4KCiAKCjI4NDY0MV8xNDA0LTAwNDRfQ1pFX0NaRTRfSU5TVCBQSSBDU0EgXyBCaWxpbmd1YWxfMjAyNTA0MDlfMS4wCgpTdHJhbmEgNjIgeiA2NQoKIAoKIAoKIAoKRXhoaWJpdCBDIFDFmcOtbG9oYSBDCkVxdWlwbWVudCBWeWJhdmVuw60KCiAKCkluIGNhc2UgU3BvbnNvciwgb3IgaXRzIGRlc2lnbmVlLCBhcyBhcHBsaWNhYmxlIHN1cHBsaWVzCkluc3RpdHV0aW9uIGFuZCBJbnZlc3RpZ2F0b3Igd2l0aCBhbnkgZXF1aXBtZW50IGZvciB1c2UgaW4KY29ubmVjdGlvbiB3aXRoIHBlcmZvcm1hbmNlIG9mIHNlcnZpY2VzIGluIHRoZSBUcmlhbCAodGhlCkVxdWlwbWVudOKAnCksIHRoZSBmb2xsb3dpbmcgc2hhbGwgYXBwbHk6CgpWIHDFmcOtcGFkxJssIMW+ZSBidWRlIG51dG7DqSwgYWJ5IHphZGF2YXRlbCBuZWJvIHDFmcOtcGFkbsSbIGplaG8KcG92xJvFmWVuYSBvc29iYSBaZHJhdm90bmlja2UnbXUgemHFmcOtemVuw60gYVprb3XFoWVqw61jw61ybnUKcG9za3l0bCBqYWvDqWtvbGl2IHZ5YmF2ZW7DrSBrcG91xb5pdMOtIHZzb3V2aXNsb3N0aQpzcG9za3l0b1ZhbnInbSBzbHXFvmViIFZrbGluaWNrw6ltIGhvZG5vY2Vuw60gKGTDoWxlIGplbgrigJ5WeWJhdmVucifigJwpLCBwbGF0w60gbsOhc2xlZHVqw61jw606CgogCgogCgoxLiBQUk9WSVNJT04gT0YgRVFVSVBNRU5UCgoxLiBQT1NLWVROVVTDjSBWWUJBVkVOw40KCiAKCiAKClNwb25zb3IsIGFzIHRoZSBvd25lciBvZiB0aGUgRXF1aXBtZW50LCBvciB0aGlyZCBwYXJ0eQp2ZW5kb3IgY29udHJhY3RlZCBieSBTcG9uc29yICh0aGUg4oCcVmVuZG9y4oCcKSBXaWxsIHN1cHBseQp0byBJbnN0aXR1dGlvbiBhbmQgSW52ZXN0aWdhdG9yIHRoZSBFcXVpcG1lbnQuIFRoZQpFcXVpcG1lbnQgaXMgbG9hbmVkIHRvIEluc3RpdHV0aW9uIGFuZCBJbnZlc3RpZ2F0b3IgZnJlZSBvZgpjaGFyZ2UuCgpaYWRhdmF0ZWwsIGpha2/FvnRvIFZsYXN0bsWvPCB2eWJhdmVuw60gbmVibyBkb2RhdmF0ZWwgdMWZZXTDrQpzdHJhbnksIGplaG/FviBuYWphbCB6YWRhdmF0ZWwgKGTDoWxlIGplbiDigJ5kb2RhdmF0ZTHigJwpLCBkb2RhCnZ5YmF2ZW7DrSBaZHJhdm90bmlja2UnbXUgemHFmcOtemVuw60gYVprb3XFoWVqw61jw61ybnUgbMOpa2HFmWkuClZ5YmF2ZW7DrSBqZSBaZHJhdm90bmlja2UnbXUgemHFmcOtemVuw60gYSB6a291xaFlasOtY8OtbXUKemFwxa9qxI1lbm8gWmRhcm1hLgoKIAoKIAoKMi4gT0JMSUdBVElPTlMgT0YgU1BPTlNPUgoKMi4gUE9WSU5OT1NUSSBaQURBVkFURUxFCgogCgogCgoyLjEgU3BvbnNvciwgdGhyb3VnaCBpdHMgZGVzaWduZWUsIGFzIGFwcGxpY2FibGUsIHNoYWxsCnByb3ZpZGUgSW5zdGl0dXRpb24gYW5kL29yIEludmVzdGlnYXRvciB3aXRoIHRoZQpFcXVpcG1lbnQgaW4gYSBjb25kaXRpb24gZmx0IGZvciBpdHMgcHJvcGVyIHVzZSBhbmQKaW5mb3JtIEluc3RpdHV0aW9uIGFuZCBJbnZlc3RpZ2F0b3IgaG93IHRvIHVzZSB0aGUKRXF1aXBtZW50IGFuZCBhYm91dCB0aGUgcmVxdWlyZW1lbnRzIGZvciBpdHMgcmVndWxhcgpzdGFuZGFyZCBtYWludGVuYW5jZS4KCjIuMSBaYWRhdmF0ZWwsIHDFmcOtcGFkbsSbIHByb3N0xZllZG5pY3R2w61tIHN2w6kgcG92xJvFmWVuw6kKb3NvYnksIHBvc2t5dG5lIFpkcmF2b3RuaWNrZSdtdSB6YcWZw616ZW7DrSBhL25lYm8KemtvdcWhZWrDrWPDrW11IHZ5YmF2ZW7DrSB2ZSBzdGF2dSBacMWvc29iaWxlcm4gayBqZWhvCsWZYWRuZSdtdSBwb3XFvsOtdmFuw60gYWJ1ZGUgaW5mb3Jtb3ZhdCB6ZHJhdm90bmlja8OpCnphxZnDrXplbsOtIGFaa291xaFlanInY0hybyBvWnDFr3NvYnUgcG91xb5pdMOtIHZ5YmF2ZW7DrQphIG8gcG/FvmFkYXZjw61jaCBuYSBqZWhvIGLEm8W+bm91IHN0YW5kYXJkbsOtIMO6ZHLFvmJ1LgoKIAoKIAoKMi4yIFNwb25zb3IsIHRocm91Z2ggaXRzIGRlc2lnbmVlLCBhcyBhcHBsaWNhYmxlLCBhZ3JlZXMgdG8KcHJvdmlkZSBhdCBpdHMgY29zdHMgYW5kIGV4cGVuc2VzIG1haW50ZW5hbmNlIGFuZApyZXBhaXIgb2YgZGVmZWN0cyBvZiB0aGUgRXF1aXBtZW50IGFuZCBvZiBjb25zdW1hYmxlCml0ZW1zIGFuZCBhY2Nlc3NvcmllcyByZXF1aXJlZCBmb3IgdGhlIHVzZSBvZiB0aGUKRXF1aXBtZW50LiBNYWludGVuYW5jZSBvciByZXBhaXJzIHdpbGwgYmUgcHJvdmlkZWQKb25seSB0aHJvdWdoIFNwb25zb3IuIEluIGNhc2UgSW5zdGl0dXRpb24gYW5kL29yCkludmVzdGlnYXRvciBicmVhY2ggdGhpcyBwcm92aXNpb24sIHRoZXkgd2kxMWJlIDFpYWIxZSBmb3IKdGhlIGNvc3RzIGFuZCBleHBlbnNlcyBvZiBtYWludGFpbmluZyBhbmQgcmVwYWlyaW5nIHRoZQpFcXVpcG1lbnQsIGFuZCBhbnkgZGFtYWdlIHRoYXQgbWlnaHQgYmUgY2F1c2VkIHRvCkVxdWlwbWVudCBkdWUgdG8gdGhpcy4KCjIuMi5aYWRhdmF0ZTEgc2UgcHJvc3TFmWVkbmljdHbDrW0gc3bDqSBwb3bEm8WZZW7DqSBvc29ieQp6YXZhenVqZSwgxb5lIG5hIHN2w6kgbsOha2xhZHkgYVbDvWRhamUgemFqaXN0w60gw7pkcsW+YnUKYSBvcHJhdnUgdmFkIHZ5YmF2ZW7DrSBhIHNwb3TFmWVibsOtaG8gbWF0ZXJpw6FsdQphIHDFmcOtc2x1xaFlbnN0dsOtIHBvdMWZZWJuw6lobyBrcG91xb5yJ1ZhbnInIHZ5YmF2ZW7DrS4Kw5pkcsW+YmEgbmVibyBvcHJhdnkgYnVkb3UgemFqacWhxaVvdsOhbnkgVsO9aHJhZG7Emwpwcm9zdMWZZWRuaWN0dsOtbSB6YWRhdmF0ZWxlLiBWIHDFmcOtcGFkxJssIMW+ZSBaZHJhdm90bmlja8OpCnphxZnDrXplbsOtIGEvbmVibyB6a291xaFlasOtY8OtIHBvcnXFocOtIHRvdG8gdXN0YW5vdmVuw60sCnBvbmVzb3Ugb2Rwb3bEm2Rub3N0IHphIG7DoWtsYWR5IGEgVsO9ZGFqZSBuYSDDumRyxb5idQphIG9wcmF2dSB2eWJhdmVuw60gYSB6YSBqYWvDqWtvbGkgxaFrb2R5LCBrdGVyw6kgYnkKdiBkxa9zbGVka3UgdG9obyBtb2hseSBuYSB2eWJhdmVuw60gdnpuaWtub3V0LgoKIAoKIAoKMy4gT0JMSUdBVElPTlMgT0YgSU5TVElUVVRJT04gQU5ECklOVkVTVElHQVRPUgoKMy4gUE9WSU5OUVNUKSBaRFJBVk9UTklDS8OJSE8gWkHFmMONWkVOw40KQSBaS09VU0VKSUNJSE8KCiAKCiAKCjMuMSBJbnN0aXR1dGlvbiBhbmQgSW52ZXN0aWdhdG9yIGFncmVlIHRvIHVzZSB0aGUgRXF1aXBtZW50Cm9ubHkgZm9yIHRoZSBwdXJwb3NlIG9mIGNvbmR1Y3RpbmcgdGhlIFRyaWFsIGFuZCBpbiBhCm1hbm5lciBhZGVxdWF0ZSB0byB0aGUgbmF0dXJlIGFuZCBxdWFsacWIY2F0aW9uIG9mIHRoZQpFcXVpcG1lbnQgYXMgd2VsbCBhcyBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIHB1cnBvc2UgaXQKc2VydmVzLgoKMy4xWmRyYXZvdG5pY2tlJyB6YcWZw616ZW7DrSBhWmtvdcWhZWrDrWPDrSBzb3VobGFzw60gcyB0w61tLCDFvmUKYnVkb3UgdnliYXZlbsOtIHBvdcW+w612YXQgcG91emUgcHJvIMO6xI1lbHkgcHJvdsOhZMSbbsOtCmtsaW5pY2vDqWhvIGhvZG5vY2Vuw60gYSBacMWvc29iZW0gb2Rwb3bDrWRhasOtY8OtbQpwb3ZhemUgYSB1csSNZW5lJ211IHBvdcW+aXTDrSB2eWJhdmVuw60sIGpha2/FviBpIHYgc291bGFkdQpzIMO6xI1lbGVtLCBrZSBrdGVyZW11IHNsb3XFvsOtLgoKIAoKIAoKMy4yIEluc3RpdHV0aW9uIGFuZCBJbnZlc3RpZ2F0b3Igc2hhbGwKCjMuMiBaa291xaFlasOtY8OtIGEgWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBzZSB6YXZhenVqw60KCiAKCihpICkgdXNlIHRoZSBFcXVpcG1lbnQgaW4gYWNjb3JkYW5jZSB3aXRoIG9wZXJhdGluZwppbnN0cnVjdGlvbnMvcm5hbnVhbHMgcHJvdmlkZWQgYXMgd2VsbCBhcyBhMTEKCmFwcGxpY2FibGUgbGF3cywgcmVndWxhdGlvbnMsIGFuZCBndWlkZWxpbmVzOwoKIAoKIAoKKGkpIHBvdcW+w612YXQgdnliYXZlbsOtIHZzb3VsYWR1IHNwb3NreXRudXTDvW1pCm7DoXZvZHkga29ic2x1emUvcMWZcidydcSNa2FtaSwgamFrb8W+IGlWxaFlbWkKCnBsYXRuw71taSB6w6Frb255LCBwxZllZHBpc3kgYSBwb2t5bnk7CgogCgoyODQ2NDFfMTQwNC0wMDQ0X0NaRV9DWkU0X0lOU1QgUEkgQ1NBIF8gQmlsaW5ndWFsXzIwMjUwNDA5XzEuMAoKU3RyYW5hIDYzIHogNjUKCiAKCiAKCiAKCiAKCiAKCiAKCiAKCuKAnEVxdWlwbWVudCBMb2FuZWQgTG9n4oCcIHdoaWNoIGlzIHBhcnQgb2YgdGhlCklTRi4KCihpaSkgaW4gdGhlIGNvdXJzZSBvZiB0aGUgaGFuZG92ZXIgb2YgdGhlIEVxdWlwbWVudCAoIGlpICkgYsSbaGVtIHDFmWVkw6F2YW7DrXZ5YmF2ZW7DrWEgcMWZZWQgemFow6FqZW7DrW0gamVobwphbmQgYmVmb3JlIGl0cyB1c2UsIGV4YW1pbmUgdGhlIHRlY2huaWNhbCBwb3XFvsOtdmFuw60gcHJvdsSbxZlpdCB0ZWNobmlja8O9IHN0YVYgdnliYXZlbsOtCmNvbmRpdGlvbiBvZiB0aGUgRXF1aXBtZW50IGFuZCBjb27FiHJtIHRoYXQgdGhleSAmIHBvdHZyZGl0LCDFvmUgYnlsaSBpbmZvcm1vdsOhbmkgbyBwb8W+YWRhdmPDrWNoIG5hCmhhdmUgYmVlbiBpbmZvcm1lZCBhYm91dCB0aGUgcmVxdWlyZW1lbnRzIG9uIGl0cyBqZWhvIHBvdcW+w612w6Fuw60gYSDDumRyxb5idTsKdXNlIGFuZCBtYWludGVuYW5jZTsKCihpaWkpIGRldGVybWluZSBhbmQgcHJvdmlkZSAmIHN1aXRhYmxlIGxvY2F0aW9uIGFuZCAoaWlpKSB1csSNaXQgYXphamlzdGl0IHBybyB2eWJhdmVuw60gdmhvZG7DqSBtw61zdG8KZmFjaWxpdGllcyBmb3IgdGhlIEVxdWlwbWVudCBhbmQgcHJvdGVjdCBpdCBmcm9tIGEgesOhemVtw60gYSBjaHLDoW5pdCBqZSBwxZllZCB6dHJhdG91IG5lYm8ga3LDoWRlxb7DrSwKbG9zcyBvciB0aGVmdCwgZGVzdHJ1Y3Rpb24sIGRhbWFnZSwgb3IgaW1wYWlybWVudDsgem5pxI1lbsOtbSwgcG/FoWtvemVuw61tIG5lYm8gem5laG9kbm9jZW7DrW07CgooaXYpIG5vdG1vZGlmeSB0aGUgRXF1aXBtZW50d2l0aG91dGZscnN0IG9idGFpbmluZyAoIGl2KSBuZXVwcmF2b3ZhdCB2eWJhdmVuw60gYmV6IHDFmWVkY2hvenJobwp0aGUgU3BvbnNvcmFzIG9yIGl0cyBkZXNpZ25lZSdzLCBhcyBhcHBsaWNhYmxlLCBww61zZW1uw6lobyBzb3VobGFzdSB6YWRhdmF0ZWxlIG5lYm8gcMWZw61wYWRuxJsKd3JpdHRlbiBhcHByb3ZhbDsgamVobyBwb3bEm8WZZW7DqSBvc29ieTsKCih2KSBpbW1lZGlhdGVseSBpbmZvcm0gU3BvbnNvciBvciBpdHMgZGVzaWduZWUsIGFzICggdikgbmVwcm9kbGVuxJsgaW5mb3Jtb3ZhdCB6YWRhdmF0ZWxlIG5lYm8gamVobwphcHBsaWNhYmxlIGlmIGFueSByZXBhaXIgb3IgbWFpbnRlbmFuY2Ugb2YgdGhlIHBvdsSbxZllbm91IG9zb2J1LCBidWRl4oCUbGkgbnV0bsOhIGpha8Oha29saSBvcHJhdmEKRXF1aXBtZW50IGlzIG5lY2Vzc2FyeTsgbmVibyDDumRyxb5iYSB2eWJhdmVuw607CgooIHZpICkgaW5mb3JtIGFsbCBvdGhlciBUcmlhbCBTdGFmZiBtZW1iZXJzIGludm9sdmVkIGluICggdmkgKSBpbmZvcm1vdmF0IG8gcG/FvmFkYXZjw61jaCBuYSBwb3XFvsOtdsOhbsOtIGEgw7pkcsW+YnUKdGhlIHVzZSBvZiB0aGUgRXF1aXBtZW50IGFib3V0IHRoZSByZXF1aXJlbWVudHMgdnliYXZlbsOtIFbFoWVjaG55IG9zdGF0bsOtIMSNbGVueSBwZXJzb27DoWx1Cm9uIGl0cyB1c2UgYW5kIG1haW50ZW5hbmNlOyBrbGluaWNrw6lobyBob2Rub2NlbsOtLCBrdGXFmcOtIHNlIG5hIHBvdcW+w612w6Fuw60KCnZ5YmF2ZW7DrSBwb2TDrWxlasOtOwoKKHZpaSApIGRvY3VtZW50IGVhY2ggc3VwcGx5IGFuZCByZXR1cm4gb2YgaW4gdGhlICggdmlpKSB6ZG9rdW1lbnRvdmF0IGthxb5kw6kgZG9kw6Fuw60gYSB2csOhY2Vuw60gZG8KCuKAnlByb3Rva29sdSBvemFwxa9qxI1lbmUnbSBWw71iYXZlbsOt4oCcLCBrdGVyw70gamUKc291xI3DoXN0w60gSVNGLgoKIAoKIAoKMy4zIFVwb24gcmVxdWVzdCwgSW5zdGl0dXRpb24gYW5kIEludmVzdGlnYXRvciB3aWxsIHByb3ZpZGUKU3BvbnNvciBvciBpdHMgZGVzaWduZWUsIGFzIGFwcGxpY2FibGUsIHdpdGggYWNjZXNzIHRvIHRoZQpFcXVpcG1lbnQgaW4gb3JkZXIgdG8gcGVyZm9ybSByZWd1bGFyIHNlcnZpY2UKaW5zcGVjdGlvbnMgYW5kIHRvIGNoZWNrIHdoZXRoZXIgdGhlIEluc3RpdHV0aW9uIGFuZApJbnZlc3RpZ2F0b3IgaXMgdXNpbmcgdGhlIEVxdWlwbWVudCBpbiB0aGUgd2F5IGFncmVlZApoZXJlaW4uCgozLjMgWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBhIHprb3XFoWVqw61jw60gcG9za3l0bm91IG5hCnBvxb7DoWTDoW7DrSB6YWRhdmF0ZWxpIG5lYm8gcMWZw61wYWRuxJsgamVobyBwb3bEm8WZZW7DqSBvc29ixJsKcMWZw61zdHVwIGtWw71iYXZlbsOtIHphIMO6xI1lbGVtIHByb3bDoWTEm27DrSBwcmFWaWRlaGzDvWNoCnNlcnZpc27DrWNoIGluc3Bla2PDrSAmIGtvbnRyb2x5LCB6ZGEgemRyYXZvdG5pY2vDqQp6YcWZw616ZW7DrSBhIHprb3XFoWVqw61jw60gdnliYXZlbsOtIHBvdcW+w612YWrDrSBacMWvc29iZW0KZG9ob2RudXTDvW0gdiB0b210byBkb2t1bWVudHUuCgogCgogCgo0LiBSRVRVUk4gT1IgUFVSQ0hBU0UgT0YgRVFVSVBNRU5UCgo0LiBWUsOBQ0VOw40gTkVCTyBPREtPVVBFTsONIFZZQkFWRU7DjQoKIAoKIAoKNC4xIEFzIHNvb24gYXMgdGhlIEVxdWlwbWVudCBpcyBub3QgbmVlZGVkIGFueSBtb3JlLCBvciBhdAp0aGUgbGF0ZXN0LCB1cG9uIGNvbXBsZXRpb24gb2YgdGhlIFRyaWFsIG9yIHRlcm1pbmF0aW9uCm9mIHRoaXMgQWdyZWVtZW50IGZvciBhbnkgcmVhc29uLCBJbnN0aXR1dGlvbiBhbmQKSW52ZXN0aWdhdG9yIHVuZGVyc3RhbmQgYW5kIGFncmVlIHRvIGVpdGhlciByZXR1cm4sIGluCmdvb2Qgd29ya2luZyBjb25kaXRpb24sIHRvIFNwb25zb3Igb3IgaXRzIEFmZmlsaWF0ZSBvcgpkZXN0cm95IGFueSBFcXVpcG1lbnQgc3VwcGxpZWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsCmFzIGRpcmVjdGVkIGluIHdyaXRpbmcgYnkgU3BvbnNvci4gSW4gY2FzZSBvZiBhbgpFcXVpcG1lbnQgcmV0dXJuLCB0aGUgUGFydGllcyBzaGFsbCBtdXR1YWxseSBhZ3JlZSBvbgp0aGUgZXhhY3QgZGF0ZSwgdGltZSBhbmQgbG9jYXRpb24gb2YgdGhlIHJldHVybi4KUmVhc29uYWJsZSBjb3N0cyBmb3IgcmV0dW1pbmcgdGhlIEVxdWlwbWVudCB3aWxsIGJlCmJvbWUgYnkgU3BvbnNvciBvciBpdHMgQWZmaWxpYXRlLgoKNC4xIFpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gYVprb3XFoWVqw61jw60gYmVyb3UgbmEgVsSbZG9tw60KYXNvdWhsYXPDrSBzdMOtbSwgxb5lIGpha21pbGUgamnFviB2eWJhdmVuw60gbmVidWRlCnBvdMWZZWJhLCBuZWJvIG5lanBvemTEm2ppIHBvIGRva29uxI1lbsOtIGtsaW5pY2vDqWhvCmhvZG5vY2Vuw60gbmVibyB1a29uxI1lbsOtIHTDqXRvIHNtbG91dnkgWiBqYWvDqWhva29saQpkxa92b2R1LCB2ZcWha2Vyw6kgdnliYXZlbsOtIGRvZGFuw6kgcG9kbGUgdMOpdG8gc21sb3V2eQpidcSPIHZyYXTDrSBWIGRvYnLDqW0gZnVua8SNbsOtbSBzdGF2dSB6YWRhdmF0ZWxpIG5lYm8KamVobyBwxZlpZHJ1xb5lbsOpIHNwb2xlxI1ub3N0aSwgbmVibyB6bmnEjcOtLCBhIHRvIG5hIHrDoWtsYWTEmwpww61zZW1uw6lobyBwb2t5bnUgemFkYXZhdGVsZS4gVnDFmcOtcGFkxJsgdnJhY2Vuw60KdnliYXZlbsOtIHNlIHNtbHV2bsOtIHN0cmFueSB2esOhamVtbsSbIGRvaG9kbm91IG5hCnDFmWVzbsOpbSBkYXR1LCDEjWFzZSBhIG3DrXN0xJsgdnJhY2Vuw60uIFDFmWltxJvFmWVuw6kgbsOha2xhZHkKbmEgdnLDoWNlbsOtIHZ5YmF2ZW7DrSBwb25lc2UgemFkYXZhdGVsIG5lYm8gamVobwpwxZlpZHJ1xb5lbsOpIHNwb2xlxI1ub3N0LgoKIAoKIAoKNC4yMW4gY2FzZSBJbnN0aXR1dGlvbiBhbmQvb3IgSW52ZXN0aWdhdG9yIGRvIG5vdCB1c2UgdGhlCkVxdWlwbWVudCBwcm9wZXJseSwgdXNlIGl0IGNvbnRyYXJ5IHRvIHRoZSBwdXJwb3NlIGl0CnNlcnZlcyBvciB1c2UgaXQgZm9yIG90aGVyIHB1cnBvc2UgdGhhbiBjb25kdWN0aW5nIHRoZQpUcmlhbCwgU3BvbnNvciBzaGFsbCBiZSBlbnRpdGxlZCB0byByZXF1ZXN0IHRoZSBpbW1lZGlhdGUKcmV0dXJuIG9mIHRoZSBFcXVpcG1lbnQuCgo0LjIgViBwxZnDrXBhZMSbLCDFvmUgWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBhL25lYm8gemtvdcWhZWrDrWPDrQpuZWJ1ZG91IHBvdcW+w612YXQgdnliYXZlbsOtIHNwcsOhdm7EmywgYnVkb3VqZWogcG91xb7DrXZhdAp2IHJvenBvcnUgcyDDusSNZWxlbSwga2Uga3RlcsOpbXUgamUgdXLEjWVubywgbmVibwprIGppbsOpbXUgw7rEjWVsdSBuZcW+IGsgcHJvdsOhZMSbbsOtIGtsaW5pY2vDqWhvIGhvZG5vY2Vuw60sCmplIHphZGF2YXRlbCBvcHLDoXZuxJtuIHBvxb5hZG92YXQgb2thbcW+aXTDqSB2cmFjZW7DrQp2eWJhdmVuw60uCgogCgogCgogCgogCgoyODQ2NDFfMTQwNC1PTzQ0X0NaRV9DWkU0X0lOU1QgUEkgQ1NBIF8gQmlsaW5ndWFsXzIwMjUwNDA5XzEuMAoKU3RyYW5hIDY0IHogNjUKCiAKCiAKCjQuMyBJbiBjYXNlIHRoZSByZXR1cm4gb2YgdGhlIEVxdWlwbWVudCBpcyBub3QgaW50ZW5kZWQsIHRoZQpJbnN0aXR1dGlvbiBhbmQvb3IgSW52ZXN0aWdhdG9yIGFuZCB0aGUgU3BvbnNvciBtYXkKZW50ZXIgaW50byBkaXNjdXNzaW9ucyBhYm91dCAmIHBvdGVudGlhbCBwdXJjaGFzZSBvZiB0aGUKRXF1aXBtZW50LiBJZiB0aGUgcGFydGllcyBhZ3JlZSBvbiBzdWNoIHB1cmNoYXNlICYKc2VwYXJhdGUgY29udHJhY3QgYmV0d2VlbiBTcG9uc29yIGFuZCBJbnN0aXR1dGlvbiBvcgpJbnZlc3RpZ2F0b3Igd2lsbCBiZSBjb25jbHVkZWQgZGV0ZXJtaW5pbmcgcHJpY2UgYW5kCm90aGVyIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBwdXJjaGFzZSBvZiB0aGUKRXF1aXBtZW50LgoKNC4zIFYgcMWZw61wYWTEmywgxb5lIHNlIG5lemFtw73FoWzDrSB2eWJhdmVuw60gdnLDoXRpdCwgbW9ob3UKWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBhL25lYm8gemtvdcWhZWrDrWPDrSBzZSB6YWRhdmF0ZWxlbQp6YWjDoWppdCBqZWRuw6Fuw60gb3BvdGVuY2nDoWxuw61tIG9ka291cGVuw60gdnliYXZlbsOtLgpQb2t1ZCBzZSBzbWx1dm7DrSBzdHJhbnkgZG9ob2Rub3UgbmEgdGFrb3bDqW0Kb2Rrb3VwZW7DrSwgYnVkZSB1emF2xZllbmEgc2Ftb3N0YXRuw6Egc21sb3V2YSBtZXppCnphZGF2YXRlbGVtIGF6ZHJhdm90bmlja8O9bSB6YcWZw616ZW7DrW0gbmVibwp6a291xaFlasOtY8OtbSBsw6lrYcWZZW0sIGt0ZXLDoSBzdGFub3bDrSBjZW51IGEgZGFsxaHDrQpwb2Rtw61ua3kgb2Rrb3VwZW7DrSB2eWJhdmVuw60uCgogCgogCgo0LjQgVGhlIFBhcnRpZXMgYWNrbm93bGVkZ2UgdGhhdCBubyBFcXVpcG1lbnQgb3duZWQgYnkKU3BvbnNvciBvciB2ZW5kb3IgY2FuIGJlIGxlZnQgYXQgdGhlIEluc3RpdHV0aW9uIHVwb24KY29tcGxldGlvbiBvZiB0aGUgVHJpYWwuCgo0LjQgU21sdXZuw60gc3RyYW55IGJlcm91IG5hIFbEm2RvbcOtLCDFvmUgcG8gZG9rb27EjWVuw60Ka2xpbmlja8OpaG8gaG9kbm9jZW7DrSBuZXNtw60gdmUgemRyYXZvdG5pY2vDqW0gemHFmcOtemVuw60KWsWvc3RhdCDFvsOhZG7DqSB2eWJhdmVuw60sIGt0ZXLDqSBWbGFzdG7DrSB6YWRhdmF0ZWwgbmVibwpkb2RhdmF0ZWwuCgogCgo0LjUgVGhlIFBhcnRpZXMgYWNrbm93bGVkZ2UgdGhhdCBpZiB0aGUgRXF1aXBtZW50IGlzCiYgbWVkaWNhbCBkZXZpY2UgYWNjb3JkaW5nIHRvIGl0cyBxdWFsacWIY2F0aW9uIGFzCmRldGVybWluZWQgYnkgdGhlIHJlbGV2YW50IGxlZ2FsIHJlZ3VsYXRpb24sICYgc2VwYXJhdGUKbG9hbiBhZ3JlZW1lbnQgd2lsbCBiZSBjb25jbHVkZWQgYmV0d2VlbiB0aGUgUGFydGllcywKd2hpY2ggd2lsbCByZWd1bGF0ZSB0aGUgY29uZGl0aW9ucyBmb3IgaGFuZGxpbmcgc3VjaAplcXVpcG1lbnQuCgo0LjUgU3RyYW55IGJlcm91IG5hIFbEm2RvbcOtLCDFvmV2IHDFmcOtcGFkxJssIMW+ZSB2eWJhdmVuw60gYnVkZQp6ZHJhdm90bmlja8O9bSBwcm9zdMWZZWRrZW0gZGxlIGplaG8ga3ZhbGlmaWthY2UKc3Rhbm92ZW7DqSBwxZnDrXNsdcWhbsO9bSBwcsOhdm7DrW0gcMWZZWRwaXNlbSwgYnVkZSBtZXppCnN0cmFuYW1pIHV6YXbFmWVuYSBzZXBhcsOhdG7DrSBzbWxvdXZhIG8gVsO9cMWvaiDEjWNlLCBrdGVyw6EKYnVkZSB1cHJhdm92YXQgcG9kbcOtbmt5IG5ha2zDoWTDoW7DrSBzIHRha292w71tCnZ5YmF2ZW7DrW0uCgogCgpbIFRoZSByZW1haW5kZXIgKGdmIHRoaXMgcGFnZSBpcyBpbnRlbnRpb25hbGx5IGJsYW5rLiBdCgogCgogCgpbIFpieXRlayB0w6l0byBzdHLDoW5reWplIHrDoW3Em3JuxJtwb25lY2jDoW4gcHLDoXpkbsO9LiBdCgogCgoyODQ2NDFfMTQwNC1PTzQ0X0NaRV9DWkU0X0lOU1QgUEkgQ1NBIF8gQmlsaW5ndWFsXzIwMjUwNDA5XzEuMAoKU3RyYW5hIDY1IHogNjUKCiAKCg==</data><hash algoritmus="sha256">37ab0db0a78c78a9b49991d84b21fa2359efa92a2c7870649d2b96724fc0c583</hash><nazevSouboru>[A] S20250032700 Smlouva o provedení klinického hodnocení.txt</nazevSouboru></priloha></prilohy><casGenerovani>2026-05-12T06:31:44+02:00</casGenerovani><platnyZaznam>1</platnyZaznam></data><potvrzeni><hash algoritmus="sha256">b094f36be1beb2de2c652d10ab50035a4e86ec77e8bf46b93859b4d2aeb39fb8</hash><elektronickaZnacka/></potvrzeni></zaznam>
