testt
+KAkzIwMDEuDQoxOTkzOiBBc2hvayBIYWxsIEdpcmwncyBSZXNpZGVudGlhbCBTY2hvb2wsIE1hamtoYWxpLg0KMTk5MzogQnkgdGhpcyB5ZWFyIHRoZXJlIHdlcmUgYXJvdW5kIDEwMCB3ZWItc2VydmVycyBhY3Jvc3MgdGhlIHdvcmxkLiAoQSByZXBvcnQgcHVibGlzaGVkIGluIGZpcnN0IGlzc3VlIG9mIFRoZSBXb3JsZCBXaWRlIFdlYiBOZXdzbGV0dGVyLCAxOTkzKQ0KMTk5MzogQUMgMy10aWVyIGNvYWNoZXMgJiBTbGVlcGVyIGNsYXNzIGFyZSBpbnRyb2R1Y2VkIGFwYXJ0IGZyb20gc2Vjb25kIGNsYXNzLg0KMTk5MzogR29JJ3MgRGlzdHJpY3QgUHJpbWFyeSBFZHVjYXRpb24gUHJvZ3JhbW1lIChEUEVQKSB3YXMgbGF1bmNoZWQsIHdpdGggYW4gYWltIG9mIGFjaGlldmluZyB0aGUgb2JqZWN0aXZlIG9mIHVuaXZlcnNhbCBwcmltYXJ5IGVkdWNhdGlvbi4gVGhpcyBwcm9ncmFtbWVkIGxhaWQgdGhlIGZvdW5kYXRpb25zIGZvciDgpLjgpLDgpY3gpLUg4KS24KS/4KSV4KWN4KS34KS+IOCkheCkreCkv+Ckr+CkvuCkqChFZHVjYXRpb24gZm9yIEFsbCBNb3ZlbWVudCkgYWltZWQgYXQgdGhlIHVuaXZlcnNhbGlzYXRpb24gb2YgZWxlbWVudGFyeSBlZHVjYXRpb24gbWFraW5nIGZyZWUgYW5kIGNvbXB1bHNvcnkgZWR1Y2F0aW9uIHRvIGNoaWxkcmVuIGJldHdlZW4gdGhlIGFnZXMgb2YgNiB0byAxNC4NCjE5OTM6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIHNwbGl0IHdpdGggRGF3b29kIGFuZCBmb3JtZWQgYW4gaW5kZXBlbmRlbnQgZ2FuZyB0aGF0IGZyZXF1ZW50bHkgY2xhc2hlZCB3aXRoIERhd29vZCdzIEQtQ29tcGFueS4NCjE5OTMgKEphbiA3KTpbQ3JpbWVdIFJpb3RzIHJlLXN0YXJ0ZWQgaW4gTXVtYmFpIGFuZCBsYXN0ZWQgZm9yIDIwIGRheXMuIFRoZSBJU0ksIHdoaWNoIGNvbnRyb2xsZWQgc2hpcHBpbmcgcm91dGVzIGZyb20gdGhlIEd1bGYgdG8gSW5kaWEncyB3ZXN0IGNvYXN0LCBkZW1hbmRlZCB0aGF0IHRoZSBtYWZpYSB0cmFuc3BvcnQgd2VhcG9ucyBhbmQgZXhwbG9zaXZlcyBpbnRvIEluZGlhIGluIHJldHVybiBmb3IgdGhlIHVzZSBvZiBQYWtpc3RhbidzIHdhdGVycy4gRGF3b29kIG1ldCB0aGVpciBJU0kgaGFuZGxlcnMgaW4gYSA1IHN0YXIgaG90ZWwgb2YgRHViYWkgaW4gSmFuIG9yIEZlYiBvZiAxOTkzLCB0aGVuIGNhbWUgdGhlIFJEWCB0aHJvdWdoIHRoZSBzYW1lIHBvcm91cyBhbmQgdW5jaGVja2VkIHNlYSByb3V0ZSB0aGF0IDI2LzExIGF0dGFja2VycyBzbGlwcGVkIGFjcm9zcyBhbmQgd3JlY2tlZCBtYXloZW0gaW4gTXVtYmFpLiBUaGUg4oCZOTMgYXR0YWNrcyB3ZXJlIGZpbmFsbHkgZXhlY3V0ZWQgaW4gbWFyY2ggdGhhdCBjbGFpbWVkIHNvbWUgMzAwIGlubm9jZW50IGxpdmVzLg0KMTk5MyAoTWFyIDYpOltQb2xpdHldW0luZGlhXSBTaGFyYWQgUGF3YXIgcmUtZWxlY2V0ZCBhcyBDTSBvZiBNSCBmb3IgMiB5ZWFycy4NCjE5OTMgKE1hciAxMik6W0NyaW1lXSBUaGUgMTk5MyBCb21iYXkgYm9tYmluZ3Mgd2VyZSBhIHNlcmllcyBvZiAxMiB0ZXJyb3Jpc3QgYm9tYmluZ3MgdGhhdCB0b29rIHBsYWNlIGluIEJvbWJheS4gVGhlIHNpbmdsZS1kYXkgYXR0YWNrcyByZXN1bHRlZCBpbiAyNTcgZmF0YWxpdGllcyBhbmQgMSw0MDAgaW5qdXJpZXMuIFRoZXJlIHdhcyBhbm90aGVyIHJhaWQgbmVhciBNYW5pc2ggbWFya2V0IHdoZXJlIGhhbmQgZ3JlbmFkZXMgd2VyZSByZWNvdmVyZWQuIEFmdGVyIGFub3RoZXIgdGlwIG9mZiBsZWQgdG8gZGlzY292ZXJ5IG9mIGEgaHVnZSBxdWFudGl0eSBvZiBSRFggZnJvbSBOYWdsYSBCdW5kZXIgb2ZmIEdob2RidW5kZXIgUm9hZCBpbiBUaGFuZS4g4oCcSW4gYWxsLCA1LDAwMCBraWxvZ3JhbXMgb2YgUkRYIHdhcyBicm91Z2h0IGludG8gTXVtYmFpIGFuZCB3ZSByZWNvdmVyZWQgMywzMDAga2lsb2dyYW1zIG9mIGl0IGluIGFsbCB0aGUgcmFpZHMs4oCdIHNheXMgQ2hhdWd1bGUuIFJlZHVjZWQgU2hvY2sgU2Vuc2l0aXZpdHkgKFJTUykgZXhwbG9zaXZlcywgc3VjaCBhcyBSU1MtUkRYLCB3aGljaCBjb3N0cyBhYm91dCBScy4gMSw1MDAtMiwwMDAgcGVyIGtnLiBBbmVlcyBjb250aW51ZWQgb3BlcmF0aW9uIG9mIEQtQ29tcGFueSB3aGljaCBpbmNsdWRlIGNvbnRyYWN0IGtpbGxpbmcsIGV4dG9ydGlvbiwgdGhlIGNpcmN1bGF0aW9uIG9mIGNvdW50ZXJmZWl0IGN1cnJlbmN5LCBhbmQgdGhlIHByb3Zpc2lvbiBvZiBhIHJhbmdlIG9mIGZyZWUtbGFuY2Ugc2VydmljZXMgdG8gdGVycm9yaXN0IGdyb3VwcyBhdCB0aGUgaW5zdGFuY2Ugb2YgUGFraXN0YW4ncyBJbnRlciBTZXJ2aWNlcyBJbnRlbGxpZ2VuY2UgKElTSSkuIEludGVycG9sIFJlZCBDb3JuZXIgbm90aWNlIGZvciBELUNvbXBhbnkuDQoxOTkzIChOb3YgMSk6IFRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGZvdW5kZWQuIEl0IGlzIGFuIGVjb25vbWljIGFuZCBwb2xpdGljYWwgcGFydG5lcnNoaXAgaW52b2x2aW5nIDI4IEV1cm9wZWFuIGNvdW50cmllcy4gSXQgYmVnYW4gYWZ0ZXIgV1cyIHRvIGZvc3RlciBlY29ub21pYyBjby1vcGVyYXRpb24sIHdpdGggdGhlIGlkZWEgdGhhdCBjb3VudHJpZXMgd2hpY2ggdHJhZGUgdG9nZXRoZXIgYXJlIG1vcmUgbGlrZWx5IHRvIGF2b2lkIGdvaW5nIHRvIHdhciB3aXRoIGVhY2ggb3RoZXIuDQoxOTkzIChOb3YgMyk6IFtHZW9Qb2xpdGljc10gVGhlIENvbW1vbiBNYXJrZXQgZm9yIEVhc3Rlcm4gYW5kIFNvdXRoZXJuIEFmcmljYSAoQ09NRVNBKSBpcyBhIHJlZ2lvbmFsIGVjb25vbWljIGNvbW11bml0eSBpbiBBZnJpY2Egd2l0aCB0d2VudHktb25lIG1lbWJlciBzdGF0ZXMgc3RyZXRjaGluZyBmcm9tIFR1bmlzaWEgdG8gRXN3YXRpbmkuIENPTUVTQSB3YXMgZm9ybWVkIGluIERlY2VtYmVyIDE5OTQsIHJlcGxhY2luZyBhIFByZWZlcmVudGlhbCBUcmFkZSBBcmVhIHdoaWNoIGhhZCBleGlzdGVkIHNpbmNlIDE5ODEuIE5pbmUgb2YgdGhlIG1lbWJlciBzdGF0ZXMgZm9ybWVkIGEgZnJlZSB0cmFkZSBhcmVhIGluIDIwMDAgKERqaWJvdXRpLCBFZ3lwdCwgS2VueWEsIE1hZGFnYXNjYXIsIE1hbGF3aSwgTWF1cml0aXVzLCBTdWRhbiwgWmFtYmlhIGFuZCBaaW1iYWJ3ZSksIHdpdGggUndhbmRhIGFuZCBCdXJ1bmRpIGpvaW5pbmcgdGhlIEZUQSBpbiAyMDA0LCB0aGUgQ29tb3JvcyBhbmQgTGlieWEgaW4gMjAwNiwgU2V5Y2hlbGxlcyBpbiAyMDA5IGFuZCBUdW5pc2lhIGFuZCBTb21hbGlhIGluIDIwMTguDQoxOTkzIChEZWMgMjApOiBPSENIUiBmb3JtZWQuIFRoZSBPZmZpY2Ugb2YgdGhlIFVuaXRlZCBOYXRpb25zIEhpZ2ggQ29tbWlzc2lvbmVyIGZvciBIdW1hbiBSaWdodHMgKE9IQ0hSKSwgYSBVbml0ZWQgTmF0aW9ucyBhZ2VuY3kgdGhhdCB3b3JrcyB0byBwcm9tb3RlIGFuZCBwcm90ZWN0IHRoZSBodW1hbiByaWdodHMgdGhhdCBhcmUgZ3VhcmFudGVlZCB1bmRlciBpbnRlcm5hdGlvbmFsIGxhdyBhbmQgc3RpcHVsYXRlZCBpbiB0aGUgVW5pdmVyc2FsIERlY2xhcmF0aW9uIG9mIEh1bWFuIFJpZ2h0cyBvZiAxOTQ4Lg0KMTk5Mzp0aGUgMjR0aCBhbmQgbGFzdCBHTE9OQVNTIHNhdGVsbGl0ZSB3YXMgbGF1bmNoZWQgZm9ybWluZyB0aGUgd2hvbGUgbmF2aWdhdGlvbiBjb25zdGVsbGF0aW9uIHNpbWlsYXIgdG8gdGhhdCBvZiBVUydzIEdQUy4NCjE5OTM6IFNIQS0wIChhIGhhc2ggZnVuY3Rpb24pIHdhcyBwcm9wb3NlZCBieSBOSVNULCBNYXJ5bGFuZCwgVVNBIChGb3VuZGVkOiAxOTAxKS4gSXQgcHJvZHVjZXMgYSAxNjAtYml0IGhhc2ggdmFsdWUsIHRodXMgdGhlIGJydXRlLWZvcmNlIGNvbGxpc2lvbiBvciAgbmVhci1jb2xsaXNpb24gYXR0YWNrIHJlcXVpcmVzIE8oMl44MCkgY29tcHV0YXRpb24uIFdpdGhpbiA1IHllYXJzLCBpdCB3YXMgbWFkZSBjb2xsaXNpb24gYXR0YWNrZWQgYnkgQ2hhYmF1ZCBhbmQgSm91eCB3aXRoIHRoZSBhdHRhY2sgY29tcGxleGl0eSBvZiAyXjYxLg0KMTk5MzogW0NvYWxnYXRlIHNjYW1dIE9uIDIzcmQgQXByaWwgMjAxMywgdGhlIFN0YW5kaW5nIENvbW1pdHRlZSBvbiBDb2FsIGFuZCBTdGVlbCB0YWJsZWQgaW4gUGFybGlhbWVudCB0aGF0IGFsbCAxOTQgY29hbCBibG9ja3MgZGlzdHJpYnV0ZWQgYmV0d2VlbiAxOTkzIGFuZCAyMDA4IHdlcmUgYXVjdGlvbmVkIGluIGFuIHVuYXV0aG9yaXplZCBtYW5uZXIgYW5kIHRoZSBjb3VudHJ5IGxvc3QgUnMuMS44NiBsYWtoIGNyb3JlLi4gRm9ybWVyIFByaW1lIE1pbmlzdGVyIE1hbm1vaGFuIFNpbmdoLCBhbG9uZyB3aXRoIEt1bWFyIE1hbmdhbGFtIEJpcmxhIGFuZCBQLkMuIFBhcmFraCwgd2VyZSBhY2N1c2VkIGFuZCBzdW1tb25lZCBieSBhIHNwZWNpYWwgY291cnQuIFsyTCBDcm9yZV0uIENvbXB0cm9sbGVyIGFuZCBBdWRpdG9yIEdlbmVyYWwgb2YgSW5kaWEgdG9vayAyMCB5ZWFycyB0byBJRCBvbmUgb2YgdGhlIGJpZ2dlc3Qgc2NhbXMgaW4gSW5kaWFuIGhpc3RvcnkuDQoxOTkzOiBBZnRlciBQcmVzaWRlbnQgQmlsbCBDbGludG9uIHRvb2sgb2ZmaWNlIGluIDE5OTMsIGhvd2V2ZXIsIHRoZSBVLlMuIGVjb25vbXkgZW1iYXJrZWQgb24gYSBsb25nIGFuZCBzdHJvbmcgZXhwYW5zaW9uLCBtYWtpbmcgdGhlIDE5OTBzIGEgZ3JlYXQgZGVjYWRlIGZvciBBbWVyaWNhJ3MgbW9uZXksIG92ZXJhbGwuIA0KMTk5MzpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTW90aHJhKDE5OTIpDQoxOTkzOltTcGFjZV0gSGlwcGFyY29zLCBhIHNjaWVudGlmaWMgc2F0ZWxsaXRlIG9mIHRoZSBFdXJvcGVhbiBTcGFjZSBBZ2VuY3kgKEVTQSkgbGFzdGVkIGZvciA0IHllYXJzIGJlZm9yZSBnb2luZyBvdXQtb2Ytc2VydmljZS4NCjE5OTM6W1NwYWNlXVtSZXNlYXJjaF0gSW4gMTk5MywgRG9uIFBhZ2UgYXJndWVkIHRoYXQgaWYgYSBibGFjayBob2xlIHN0YXJ0cyBpbiBhIHB1cmUgcXVhbnR1bSBzdGF0ZSBhbmQgZXZhcG9yYXRlcyBjb21wbGV0ZWx5IGJ5IGEgdW5pdGFyeSBwcm9jZXNzLCB0aGUgdm9uIE5ldW1hbm4gZW50cm9weSBvZiB0aGUgSGF3a2luZyByYWRpYXRpb24gaW5pdGlhbGx5IGluY3JlYXNlcyBhbmQgdGhlbiBkZWNyZWFzZXMgYmFjayB0byB6ZXJvIHdoZW4gdGhlIGJsYWNrIGhvbGUgaGFzIGRpc2FwcGVhcmVkLiBUaGlzIGlzIGNhbGxlZCB0aGUgUGFnZSBjdXJ2ZS4NCjE5OTM6W0Jvb2tzXVtIaXN0b3J5XSBHcmVlbuKAmXMgRGljdGlvbmFyeSBvZiBTbGFuZyBpcyB0aGUgbGFyZ2VzdCBoaXN0b3JpY2FsIGRpY3Rpb25hcnkgb2YgRW5nbGlzaCBzbGFuZy4gV3JpdHRlbiBieSBKb25hdGhvbiBHcmVlbiBvdmVyIDE3IHllYXJzIGZyb20gMTk5MywgaXQgcmVhY2hlZCB0aGUgcHJpbnRlZCBwYWdlIGluIDIwMTAgaW4gYSB0aHJlZS12b2x1bWUgc2V0IGNvbnRhaW5pbmcgbmVhcmx5IDEwMCwwMDAgZW50cmllcyBzdXBwb3J0ZWQgYnkgb3ZlciA0MDAsMDAwIGNpdGF0aW9ucyBmcm9tIGMuIGFkIDEwMDAgdG8gdGhlIHByZXNlbnQgZGF5LiBUaGUgbWFpbiBmb2N1cyBvZiB0aGUgZGljdGlvbmFyeSBpcyB0aGUgY292ZXJhZ2Ugb2Ygb3ZlciA1MDAgeWVhcnMgb2Ygc2xhbmcgZnJvbSBjLiAxNTAwIG9ud2FyZHMuDQoxOTkzOltFbnZdW0Rpc2FzdGVyXSBTb3V0aCBBc2lhbiBtb25zb29uIGZsb29kcywgM2sgZGVhdGhzDQoxOTkzOltHZW9ncmFwaHldIFRoZSBsYXN0IG1ham9yIHNoaWZ0cyBpbiBFYXJ0aCdzIGF4aXMgd2VyZSBpbmZsdWVuY2VkIGJ5IGNsaW1hdGUgY2hhbmdlOiBhIDMxLjUtaW5jaCBzaGlmdCBiZXR3ZWVuIDE5OTMgYW5kIDIwMTAgd2FzIHByaW1hcmlseSBjYXVzZWQgYnkgZ3JvdW5kd2F0ZXIgcHVtcGluZywgYW5kIGEgY2hhbmdlIGluIHBvbGFyIGRyaWZ0IGRpcmVjdGlvbiBhcm91bmQgdGhlIDE5OTBzIHdhcyBsaW5rZWQgdG8gbWVsdGluZyBnbGFjaWVycyBhbmQgaWNlIHNoZWV0cyBkdWUgdG8gZ2xvYmFsIHdhcm1pbmcuIEVhcnRoJ3MgYXhpcyBhbHNvIHNoaWZ0ZWQgYnkgYWJvdXQgNi41IGluY2hlcyBpbiBNYXJjaCAyMDExIGFmdGVyIHRoZSBKYXBhbmVzZSBlYXJ0aHF1YWtlLCBjYXVzaW5nIHRoZSBwbGFuZXQgdG8gc3BpbiBzbGlnaHRseSBmYXN0ZXIuDQoxOTkzOltXaG9dIEluIDE5OTMsIEluZGlhIGNhbWUgaGVhcnRicmVha2luZ2x5IGNsb3NlIHRvIHdpbm5pbmcgaXRzIGZpcnN0IE1pc3MgVW5pdmVyc2UgY3Jvd24gd2l0aCB0aGUgc3R1bm5pbmcgYW5kIGdyYWNlZnVsIE5hbXJhdGEgU2hpcm9ka2FyLCB3aG8gaGFkIGVhcmxpZXIgd29uIHRoZSBGZW1pbmEgTWlzcyBJbmRpYSB0aXRsZS4gUmVwcmVzZW50aW5nIEluZGlhIGF0IHRoZSBNaXNzIFVuaXZlcnNlIHBhZ2VhbnQgaGVsZCBpbiBNZXhpY28gQ2l0eSwgTmFtcmF0YSB3YXMgYSBzdHJvbmcgY29udGVuZGVy4oCUZWxlZ2FudCBpbiBoZXIgZ293biwgcG9pc2VkIGluIGludGVydmlld3MsIGFuZCBhIGZhbiBmYXZvcml0ZS4gU2hlIGVhc2lseSBtYWRlIGl0IHRvIHRoZSBUb3AgNiwgYW5kIGhlciBjaGFuY2VzIG9mIHdpbm5pbmcgbG9va2VkIGluY3JlZGlibHkgaGlnaC4gQnV0IHRoZW4gY2FtZSB0aGUgZmluYWwgcXVlc3Rpb246IOKAnElmIHlvdSBjb3VsZCBiZSBib3JuIGFzIGFueSBoaXN0b3JpY2FsIGZpZ3VyZSwgd2hvIHdvdWxkIGl0IGJlIGFuZCB3aHk/4oCdIFdoaWxlIG90aGVyIGNvbnRlc3RhbnRzIG5hbWVkIGdsb2JhbCBpY29ucyBsaWtlIE1vdGhlciBUZXJlc2EgYW5kIFByaW5jZXNzIERpYW5hLCBOYW1yYXRhIGdhdmUgYW4gaG9uZXN0LCBwZXJzb25hbCBhbnN3ZXLigJRzaGUgc2FpZCBzaGUgd291bGQgYmUgYm9ybiBhcyBoZXJzZWxmIG9yIHNvbWVvbmUgY2xvc2UgdG8gaGVyLCBiZWNhdXNlIHNoZSBiZWxpZXZlZCBpbiBsaXZpbmcgbGlmZSB3aXRoIHRydXRoIGFuZCBpbmRpdmlkdWFsaXR5LiBJdCB3YXMgYSBiZWF1dGlmdWwsIGdyb3VuZGVkIGFuc3dlcuKAlGJ1dCBub3QgdGhlIGtpbmQgb2YgZ3JhbmQsIGlkZWFsaXN0aWMgcmVzcG9uc2UgdGhlIGp1ZGdlcyB3ZXJlIGV4cGVjdGluZy4gVGhhdCBvbmUgbW9tZW50IG9mIHRydXRoLCBtYW55IGJlbGlldmUsIGNvc3QgaGVyIHRoZSBjcm93biwgYW5kIEluZGlhIGhhZCB0byB3YWl0IGFub3RoZXIgeWVhciBiZWZvcmUgU3VzaG1pdGEgU2VuIGJyb3VnaHQgdGhlIE1pc3MgVW5pdmVyc2UgdGl0bGUgaG9tZSBpbiAxOTk0LiBTdGlsbCwgTmFtcmF0YeKAmXMgYW5zd2VyIGJlY2FtZSBpY29uaWPigJRub3QgYmVjYXVzZSBpdCB3b24sIGJ1dCBiZWNhdXNlIGl0IHdhcyByZWFsLCBtYXJraW5nIGEgcmFyZSBpbnN0YW5jZSB3aGVyZSBob25lc3R5IHN0b29kIHRhbGxlciB0aGFuIGRpcGxvbWFjeS4NCjE5OTM6W0F2aWF0aW9uXVtFeHRyZW1lXVtXaG9dIFRoZSBIZXJic3QgbWFuZXV2ZXIgd2FzIGZpcnN0IHN1Y2Nlc3NmdWxseSBwZXJmb3JtZWQgb24gQXByaWwgMjksIDE5OTMsIGJ5IGFuIFgtMzEgYWlyY3JhZnQuIE5hbWVkIGFmdGVyIFdvbGZnYW5nIEhlcmJzdCwgYSBkZXZlbG9wZXIgb2YgcG9zdC1zdGFsbCB0ZWNobm9sb2d5IGZvciBNZXNzZXJzY2htaXR0LULDtmxrb3ctQmxvaG0gKE1CQiksIHRoaXMsIHBvc3Qtc3RhbGwgbWFuZXV2ZXIgZW5hYmxlcyBhIGZpZ2h0ZXIgdG8gbWFrZSBhIHJhcGlkIDE4MMKwIHR1cm4gd2l0aGluIGEgbWluaW1hbCByYWRpdXMuIA0KDQoxOTk04oCTMTk5NTpbVVNdW0dlb1BvbGl0aWNzXSBvY2N1cGF0aW9uIG9mIEhhaXRpLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgRXVyb3BlYW4gRWNvbm9taWMgQXJlYSwgYWJicmV2aWF0ZWQgYXMgRUVBLCBjb25zaXN0cyBvZiB0aGUgTWVtYmVyIFN0YXRlcyBvZiB0aGUgRXVyb3BlYW4gVW5pb24gKEVVKSBhbmQgdGhyZWUgY291bnRyaWVzIG9mIHRoZSBFdXJvcGVhbiBGcmVlIFRyYWRlIEFzc29jaWF0aW9uIChFRlRBKSAoSWNlbGFuZCwgTGllY2h0ZW5zdGVpbiBhbmQgTm9yd2F5OyBleGNsdWRpbmcgU3dpdHplcmxhbmQpLiBUaGUgQWdyZWVtZW50IG9uIHRoZSBFRUEgZW50ZXJlZCBpbnRvIGZvcmNlIG9uIDEgSmFudWFyeSAxOTk0LiANCjE5OTQ6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEV1cm9wZWFuIEVjb25vbWljIEFyZWEgKEVFQSkgd2FzIGVzdGFibGlzaGVkIG9uIDEgSmFudWFyeSAxOTk0LiBUaGUgYWdyZWVtZW50IGxpbmtzIHRoZSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aHJlZSBFRlRBIHN0YXRlc+KAlEljZWxhbmQsIExpZWNodGVuc3RlaW4sIGFuZCBOb3J3YXnigJRpbnRvIGEgc2luZ2xlIGludGVybmFsIG1hcmtldCwgYWxsb3dpbmcgZm9yIHRoZSBmcmVlIG1vdmVtZW50IG9mIGdvb2RzLCBwZXJzb25zLCBzZXJ2aWNlcywgYW5kIGNhcGl0YWwuIA0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBOQUZUQSwgdGhlIE5vcnRoIEFtZXJpY2FuIEZyZWUgVHJhZGUgQWdyZWVtZW50LCB3YXMgYSAxOTk0IGFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzLCBDYW5hZGEsIGFuZCBNZXhpY28gdG8gZWxpbWluYXRlIHRyYWRlIGJhcnJpZXJzIGFuZCBwcm9tb3RlIGZyZWUgdHJhZGUgaW4gTm9ydGggQW1lcmljYS4gSXQgZmFjaWxpdGF0ZWQgdGhlIG1vdmVtZW50IG9mIGdvb2RzIGFuZCBzZXJ2aWNlcyBhbmQgZXN0YWJsaXNoZWQgYSBsYXJnZSB0cmFkZSBibG9jLiBJbiBKdWx5IDIwMjAsIE5BRlRBIHdhcyByZXBsYWNlZCBieSB0aGUgVW5pdGVkIFN0YXRlcy1NZXhpY28tQ2FuYWRhIEFncmVlbWVudCAoVVNNQ0EpLCB3aGljaCBtb2Rlcm5pemVkIGFuZCBlbmhhbmNlZCB0aGUgdHJlYXR5IGZvciBhIGNvbnRlbXBvcmFyeSBlY29ub215Lg0KMTk5NDpbUy5BZnJpY2FdW1NvY2lhbGlzbV0gRmlyc3QgZnJlZSBlbGVjdGlvbnMgaW4gU291dGggQWZyaWNhOyBOZWxzb24gTWFuZGVsYQ0KMTk5NDpbUmVzZWFyY2hdW3NwYWNlXSBDYXJsIFNhZ2FuIGNvbmNlZGVkIHRoYXQgdGhpcyBhcHByb2FjaCB3b3VsZCBub3Qgd29yayBiZWNhdXNlIHRoZSBhdG1vc3BoZXJlIG9mIFZlbnVzIGlzIGZhciBkZW5zZXIgKDkwIGJhcnMpIHRoYW4gd2hhdCB3YXMgdW5kZXJzdG9vZCBpbiAxOTYxIChhIGZldyBiYXJzKSwgbWVhbmluZyB0aGUgY2FyYm9uIHdvdWxkIGp1c3QgYmUgb3hpZGl6ZWQgYmFjayBpbnRvIENPMi4NCjE5OTQ6W0NvbXB1dGluZ11bUXVhbnR1bV0gUGV0ZXIgU2hvciBkaXNjb3ZlcmVkIGFuIGFsZ29yaXRobSAoU2hvcidzIGFsZ29yaXRobSkgdGhhdCBjb3VsZCBmYWN0b3IgbGFyZ2UgbnVtYmVycyBpbiBwb2x5bm9taWFsIHRpbWUgb24gYSBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCB3b3VsZCBicmVhayB0aGUgc2VjdXJpdHkgb2YgbWFueSBjcnlwdG9ncmFwaGljIHNjaGVtZXMuIA0KMTk5NDpbQ29tcHV0aW5nXVtRdWFudHVtXSBQZXRlciBTaG9yIGFuZCBEb24gQ29wcGVyc21pdGggZmlndXJlZCBvdXQgaG93IHRvIHRha2UgYSBRdWFudHVtIEZvdXJpZXIgVHJhbnNmb3JtLg0KMTk5NDpUaGUgcHJvYmxlbSB3aXRoIHRoZSBwYXBlciBwdWJsaXNoZWQgZWFybGllciB0aGlzIG1vbnRoIHdhcyBpdHMgcmVsaWFuY2Ugb24gU2Nobm9ycidzIGFsZ29yaXRobSAobm90IHRvIGJlIGNvbmZ1c2VkIHdpdGggU2hvcuKAmXMgYWxnb3JpdGhtKSwgd2hpY2ggd2FzIGRldmVsb3BlZCBpbiAxOTk0LiBTY2hub3Jy4oCZcyBhbGdvcml0aG0gaXMgYSBjbGFzc2ljYWwgY29tcHV0YXRpb24gYmFzZWQgb24gbGF0dGljZXMsIHdoaWNoIGFyZSBtYXRoZW1hdGljYWwgc3RydWN0dXJlcyB0aGF0IGhhdmUgbWFueSBhcHBsaWNhdGlvbnMgaW4gY29uc3RydWN0aXZlIGNyeXB0b2dyYXBoeSBhbmQgY3J5cHRhbmFseXNpcy4gVGhlIGF1dGhvcnMgd2hvIGRldmlzZWQgU2Nobm9ycuKAmXMgYWxnb3JpdGhtIHNhaWQgaXQgY291bGQgZW5oYW5jZSB0aGUgdXNlIG9mIHRoZSBoZXVyaXN0aWMgcXVhbnR1bSBvcHRpbWl6YXRpb24gbWV0aG9kIGNhbGxlZCBRQU9BLg0KMTk5NCAoSmFuIDEpOiBbR2VvUG9saXRpY3NdIFRoZSBOb3J0aCBBbWVyaWNhbiBGcmVlIFRyYWRlIEFncmVlbWVudCAoTkFGVEEpIHdhcyBhbiBhZ3JlZW1lbnQgc2lnbmVkIGJ5IENhbmFkYSwgTWV4aWNvLCBhbmQgdGhlIFVuaXRlZCBTdGF0ZXMgdGhhdCBjcmVhdGVkIGEgdHJpbGF0ZXJhbCB0cmFkZSBibG9jIGluIE5vcnRoIEFtZXJpY2EuIFRoZSBhZ3JlZW1lbnQgY2FtZSBpbnRvIGZvcmNlIG9uIEphbnVhcnkgMSwgMTk5NCwgYW5kIHN1cGVyc2VkZWQgdGhlIDE5ODggQ2FuYWRh4oCTVW5pdGVkIFN0YXRlcyBGcmVlIFRyYWRlIEFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzIGFuZCBDYW5hZGEuIFRoZSBOQUZUQSB0cmFkZSBibG9jIGZvcm1lZCBvbmUgb2YgdGhlIGxhcmdlc3QgdHJhZGUgYmxvY3MgaW4gdGhlIHdvcmxkIGJ5IGdyb3NzIGRvbWVzdGljIHByb2R1Y3QuDQoxOTk0OltUZWNobm9sb2d5XVtCdXNpbmVzc11bVVNdW0NvbXB1dGluZ10gVGhlIERlbGwgTGF0aXR1ZGUgc2VyaWVzIGlzIGEgbGluZSBvZiBsYXB0b3AgY29tcHV0ZXJzIG1hbnVmYWN0dXJlZCBhbmQgc29sZCBieSBBbWVyaWNhbiBjb21wYW55IERlbGwuIEl0IGlzIGEgYnVzaW5lc3Mtb3JpZW50ZWQgbGluZSwgYWltZWQgYXQgY29ycG9yYXRlIGVudGVycHJpc2VzLCBoZWFsdGhjYXJlLCBnb3Zlcm5tZW50LCBhbmQgZWR1Y2F0aW9uIG1hcmtldHM7IHVubGlrZSB0aGUgSW5zcGlyb24gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBpbmRpdmlkdWFsIGN1c3RvbWVycywgYW5kIHRoZSBWb3N0cm8gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBzbWFsbGVyIGJ1c2luZXNzZXMuIFRoZSBMYXRpdHVkZSBkaXJlY3RseSBjb21wZXRlcyB3aXRoIHRoZSBMZW5vdm8gVGhpbmtQYWQgYW5kIHRoZSBFbGl0ZUJvb2sgc2VyaWVzIGJ5IEhQLiBBZGRpdGlvbmFsbHksIHRoZSAiUnVnZ2VkIChFeHRyZW1lKSIsICJYRlIiIGFuZCAiQVRHIiBtb2RlbHMgY29tcGV0ZSBwcmltYXJpbHkgd2l0aCBQYW5hc29uaWMncyBUb3VnaGJvb2sgbGluZSBvZiAicnVnZ2VkIiBsYXB0b3BzLg0KMTk5NDogU3VzaG1pdGEgU2VuIGJlY2FtZSBNaXNzIFVuaXZlcnNlLg0KMTk5NDogVGhlIEFubmFscyBvZiBJbXByb2JhYmxlIFJlc2VhcmNoIGlzIGEgYmktbW9udGhseSBtYWdhemluZSBkZXZvdGVkIHRvIHNjaWVudGlmaWMgaHVtb3IsIGluIHRoZSBmb3JtIG9mIGEgc2F0aXJpY2FsIHRha2Ugb24gdGhlIHN0YW5kYXJkIGFjYWRlbWljIGpvdXJuYWwuDQoxOTk0OiBMaW5kb24gTGVhZGVyIG9mIExhbmRvciBBc3NvY2lhdGVzLCBvZiBTYW4gRnJhbmNpc2NvIGRlc2lnbmVkIHdvcmRtYXJrcyBmb3IgRmVkRXgncyB2YXJpb3VzIE9wLXVuaXQuIEZlZEV44oCZcyBwdWJsaWMtcmVsYXRpb25zIGZpcm0gd2FudGVkIHRvIGhpZ2hsaWdodCB0aGUgYXJyb3cgc28gaXQgd291bGQgYmUgb2J2aW91cy4gQnV0IGhlIGZvdWdodCB0aGVtIG9uIHRoYXQg4oCUIGhlIHRob3VnaHQgaXQgd291bGQgYmUgb3ZlcmtpbGwuIFRoZXJl4oCZcyBzb21ldGhpbmcgYWJvdXQgbWFraW5nIHBlb3BsZSBkaXNjb3ZlciBzb21ldGhpbmcgb24gdGhlaXIgb3duIHRoYXTigJlzIGEgbG90IG1vcmUgcG93ZXJmdWwgdGhhbiBpdGFsaWNpemluZyBpdCB0byBtYWtlIHlvdXIgcG9pbnQuDQoxOTk0OiBTY2lsYWIgMS4xLCB0aGUgZmlyc3QgcmVsZWFzZWQgdmVyc2lvbiBvZiBTY2lsYWIsIHdhcyBwdXQgb24gYW5vbnltb3VzIGZ0cCBzaXRlLg0KMTk5NDogVGhlIGNvbmNlcHQgb2YgYSBjYWbDqSB3aXRoIGZ1bGwgSW50ZXJuZXQgYWNjZXNzIChhbmQgdGhlIG5hbWUgQ3liZXJjYWbDqSkgd2FzIGludmVudGVkIGluIGVhcmx5IGJ5ICBhIEJyaXRpc2ggdGVjaG5vbG9neSBhcnRpc3QsIEl2YW4gUG9wZS4NCjE5OTQ6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIGx1cmVkIG9uZSBvZiBEYXdvb2QncyBmYXZvcml0ZSAibmFyY28tdGVycm9yaXN0IiBQaGlsbHUgS2hhbiBhbGlhcyBCYWtodGl5YXIgQWhtZWQgS2hhbiB0byBhIGhvdGVsIHJvb20gaW4gQmFuZ2tvaywgd2hlcmUgaGUgd2FzIHRvcnR1cmVkIHRvIGRlYXRoLCBoYXZpbmcgYmVlbiBiZXRyYXllZCBieSBoaXMgY2xvc2VzdCBhaWRlIGFuZCBzaWRla2ljayBNYW5nZXNoICJNYW5neWEiIFBhd2FyLiBELUNvbXBhbnkncyBTaGFyYWQsIHVzZWQgaGlzIGxpbmtzIHdpdGggTXVtYmFpLWJhc2VkIGhvdGVsaWVyIFZpbm9kIGFuZCBBLiBNaXNocmEgdG8gdHJhY2sgZG93biBSYWphbiBpbiBCYW5na29rLiBSYWphbidzIGhpdG1hbiBSb2hpdCBWYXJtYSBhbmQgaGlzIHdpZmUgc2hvdCBieSBELUNvbXBhbnkuDQoxOTk0KEp1bCAxNik6W1NwYWNlXSBGcm9tIEp1bHkgMTYgdG8gMjIsIDE5OTQsIGVub3Jtb3VzIHBpZWNlcyBvZiB0aGUgY29tZXQgU2hvZW1ha2VyLUxldnkgOSAoU0w5KSwgZGlzY292ZXJlZCBqdXN0IGEgeWVhciBwcmlvciwgY3Jhc2hlZCBpbnRvIEp1cGl0ZXIgb3ZlciBzZXZlcmFsIGRheXMsIGNyZWF0aW5nIGh1Z2UsIGRhcmsgc2NhcnMgaW4gdGhlIHBsYW5ldCdzIGF0bW9zcGhlcmUgYW5kIGxvZnRpbmcgc3VwZXJoZWF0ZWQgcGx1bWVzIGludG8gaXRzIHN0cmF0b3NwaGVyZS4NCjE5OTQgKE9jdCk6IElUUE8gYW5kIEdvSSdzIE5JQyBqb2ludGx5IHNldC11cCB0aGUgTmF0aW9uYWwgQ2VudHJlIGZvciBUcmFkZSBJbmZvcm1hdGlvbiAoTkNUSSkgYXQgUHJhZ2F0aSBNYWlkYW4uDQoxOTk0IChOb3YgMSwgMTU6MDEgSVNUKTpbU3BhY2VdW1N1bl0gVGhlIEdsb2JhbCBHZW9zcGFjZSBTY2llbmNlICdXaW5kJyBzYXRlbGxpdGUgaXMgYSBOQVNBIHNjaWVuY2Ugc3BhY2VjcmFmdCBkZXNpZ25lZCB0byBzdHVkeSByYWRpbyB3YXZlcyBhbmQgcGxhc21hIHRoYXQgb2NjdXIgaW4gdGhlIHNvbGFyIHdpbmQgYW5kIGluIHRoZSBFYXJ0aCdzIG1hZ25ldG9zcGhlcmUuIA0KMTk5NCAoRGVjIDMpOiBTb255J3MgUGxheVN0YXRpb24gKGEgdmlkZW8gZ2FtZSBjb25zb2xlKSB3YXMgaW50cm9kdWNlZCB0byB0aGUgd29ybGQgZnJvbSBNaW5hdG8sIFRva3lvIChKYXBhbikuDQoxOTk0OiBXWFlDLSBmaXJzdCBpbnRlcm5ldCByYWRpbyBzdGF0aW9uIGJyb2FkY2FzdC4NCjE5OTQ6IE1lbW9yeSBjYXJkcyB3ZXJlIGludHJvZHVjZWQgaW4gdGhlIGNvbnN1bWVyIGVsZWN0cm9uaWNzIG1hcmtldC4NCjE5OTQgKEF1Zyk6IElUUE8ncyAxc3QgRGVsaGkgQm9vayBGYWlyIGF0ICBIYWxsIDggdG8gMTIgb2YgUHJhZ2F0aSBNYWlkYW4sIE5ldyBEZWxoaS4gVGhlIHRpbWluZ3Mgb2YgZmFpciBhcmUgZnJvbSAxMC4wMCBhbSB0byA4LjAwIHBtIChlbnRyeSB0byBmYWlyIHdpbGwgY2xvc2UgYXQgNy4zMCBwbSkuDQoxOTk0IChTZXApOiBUaGUgQ09OQ0VSVCBzb2Z0d2FyZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgaW1wbGVtZW50ZWQgYXQgYWxsIG9mIHRoZSBmaXZlIFBSUycgc2l0ZXMgU2VjdW5kZXJhYmFkIGluIFNlcHQuIDE5OTQsIE5ldyBEZWxoaSBvbiBTZXB0LiAxOTk2LCBDYWxjdXR0YSBvbiAxNHRoIEp1bmUgMTk5OCwgTXVtYmFpIG9uIDExdGggSmFuIDE5OTkgYW5kIENoZW5uYWkgb24gMTJ0aCBBcHJpbCAxOTk5Lg0KMTk5NDogdGhlIDI0dGggYW5kIHRoZSBsYXN0IEdQUyBzYXRlbGxpdGUgd2FzIGxhdW5jaGVkIGluIFVTLg0KMTk5NDogVGhlIHdvcmQgVGFsaWJhbiBpcyBQYXNodG8sINi32KfZhNio2KfZhiDhua3EgWxpYsSBbiwgbWVhbmluZyAic3R1ZGVudHMiLCB0aGUgcGx1cmFsIG9mIOG5rcSBbGliLiBBZnRlciB0aGUgU292aWV0IFVuaW9uIGludGVydmVuZWQgYW5kIG9jY3VwaWVkIEFmZ2hhbmlzdGFuIGluIDE5NzksIElzbGFtaWMgbXVqYWhpZGVlbiBmaWdodGVycyBlbmdhZ2VkIGluIHdhciB3aXRoIHRob3NlIFNvdmlldCBmb3JjZXMsIHdoaWNoIGxhaWQgdGhlIGZvdW5kYXRpb24gb2YgcG9saXRpY2FsIG1vdmVtZW50IGFuZCBtaWxpdGFyeSBvcmdhbml6YXRpb24gbmFtZWQgVGFsaWJhbi4NCjE5OTQ6IEFiZHVsIEthcmVlbSBUZWxnaSBhY3F1aXJlZCB0aGUgbGljZW5zZSBmb3Igc2VsbGluZyBzdGFtcCBwYXBlciBhbmQgb3BlbmVkIGFuIG9mZmljZSBpbiBNdW1iYWkuIEFmdGVyIHRoYXQsIGhlIHN0YXJ0ZWQgcHJpbnRpbmcgc3RhbXAgcGFwZXIgaW4gTmFzaGlrLiBXaXRoIHNvbWUgYWdlbnRz4oCZIGhlbHAsIGhlIHN0YXJ0cyBzZWxsaW5nIGZha2Ugc3RhbXAgcGFwZXIgaW4gYnVsayB0byBiYW5rcywgaW5zdXJhbmNlIGNvbXBhbmllcywgc3RvY2sgYnJva2VyYWdlIGZpcm1zLCBhbmQgY29ycG9yYXRlcy4gSW4gMjAwMyB0aGUgVGVsZ2kgc2NhbSB3YXMgdW5mb2xkZWQ7IHRoZSBmaWd1cmUgaW4gdGhlIG1pbmQgb2Ygc2VjdXJpdHkgYW5kIGludGVsbGlnZW5jZSBhZ2VuY2llcyB3YXMgdXAgdG8gUnMuMjBrIENyb3JlDQoxOTk0OiBbR2VvUG9saXRpY3NdIEludGVybmF0aW9uYWwgQXNzb2NpYXRpb24gb2YgR2VuZGFybWVyaWVzIGFuZCBQb2xpY2UgRm9yY2VzIHdpdGggTWlsaXRhcnkgU3RhdHVzIChjb21tb25seSBrbm93biBhcyBGSUVQIGZvciBGcmFuY2UtSXRhbGlhLUVzcGHDsWEtUG9ydHVnYWwsIHRoZSBmaXJzdCBmb3VyIG1lbWJlcnMpIGlzIGFuIGFzc29jaWF0aW9uIG9mIG5hdGlvbmFsIGdlbmRhcm1lcmllcyBvciBtaWxpdGFyeSBwb2xpY2UgZm9yY2VzLg0KMTk5NDpbQm9va10gUGFsZSBCbHVlIERvdDogQSBWaXNpb24gb2YgdGhlIEh1bWFuIEZ1dHVyZSBpbiBTcGFjZSBpcyBhIDE5OTQgYm9vayBieSB0aGUgYXN0cm9ub21lciBDYXJsIFNhZ2FuLiBJdCBpcyB0aGUgc2VxdWVsIHRvIFNhZ2FuJ3MgMTk4MCBib29rIENvc21vcyBhbmQgd2FzIGluc3BpcmVkIGJ5IHRoZSBmYW1vdXMgMTk5MCBQYWxlIEJsdWUgRG90IHBob3RvZ3JhcGgsIGZvciB3aGljaCBTYWdhbiBwcm92aWRlcyBhIHBvaWduYW50IGRlc2NyaXB0aW9uLiBJbiB0aGUgYm9vaywgU2FnYW4gbWl4ZXMgcGhpbG9zb3BoeSBhYm91dCB0aGUgaHVtYW4gcGxhY2UgaW4gdGhlIHVuaXZlcnNlIHdpdGggYSBkZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCBrbm93bGVkZ2UgYWJvdXQgdGhlIFNvbGFyIFN5c3RlbS4gSGUgYWxzbyBkZXRhaWxzIGEgaHVtYW4gdmlzaW9uIGZvciB0aGUgZnV0dXJlLg0KMTk5NDpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTWVjaGFnb2R6aWxsYSBJSSgxOTkzKQ0KMTk5NDpbQ2luZW1hXSBUaGUgQXBwbGUoMTk4MCkNCjE5OTQ6W0NpbmVtYV0gVGhlIEF0bGFudGlzIEludGVyY2VwdG9ycygxOTgzKQ0KMTk5NDpbTW50bmdnXSBJbiAxOTk0LCBNYXJrIFdoZXR1IHN1bW1pdHRlZCBNdCBFdmVyZXN0IHdpdGggTWlrZSBSZWluYmVyZ2VyLiBCdXQgYWZ0ZXIgYSBmcmVlemluZyBuaWdodCwgV2hldHUgZmFjZWQgYSBoYXJyb3dpbmcgY2hvaWNlOiBsZWF2ZSBoaXMgZnJpZW5kIG9yIHJlbWFpbiBmb3JldmVyLiBUaGUgRmF0YWwgR2FtZSAoMTk5NykNCjE5OTQ6W1RvdXJpc21dIFRoZSBBZHZlbnR1cmUgVG91ciBPcGVyYXRvcnMgQXNzb2NpYXRpb24gb2YgSW5kaWEgKEFUT0FJKSB3YXMgZm91bmRlZCBpbiAxOTk0LiBJdCB3YXMgZXN0YWJsaXNoZWQgYnkgYSBncm91cCBvZiB0cmF2ZWwgdHJhZGUgYWR2ZW50dXJlcnMgd2hvIGFpbWVkIHRvIGNyZWF0ZSBhIHN0cm9uZyBzdXBwb3J0IG5ldHdvcmsgZm9yIEluZGlhbiBhZHZlbnR1cmUgdG91ciBvcGVyYXRvcnMuIA0KDQoxOTk1IChNYXkgMTkpOiBbUmVzZWFyY2hdW1NwYWNlXSB0d28gc2NpZW50aXN0cyBhdCBDYWwgUG9seSBzaG93ZWQgdGhhdCBiYWN0ZXJpYSBjYW4gc3Vydml2ZSB3aXRob3V0IGFueSBtZXRhYm9saXNtIGZvciBhdCBsZWFzdCAyNSBtaWxsaW9uIHllYXJzOyBwcm9iYWJseSB0aGV5IGFyZSBpbW1vcnRhbC4NCjI0IE5vdmVtYmVyIDE5OTU6IFRoZSBOZXcgWW9yayBUaW1lcyBkZXNjcmliZWQgYmFjdGVyaWEgdGhhdCBjYW4gc3Vydml2ZSByYWRpYXRpb24gbXVjaCBzdHJvbmdlciB0aGFuIGFueSB0aGF0IEVhcnRoIGhhcyBldmVyIGV4cGVyaWVuY2VkLg0KV2UgYXJlIGNhbGxpbmcgdGhlIHVuaW9uIG9mIExvdmVsb2NrJ3MgR2FpYSB3aXRoIEhveWxlIGFuZCBXaWNrcmFtYXNpbmdoZSdzIGV4cGFuZGVkIHRoZW9yeSBvZiBwYW5zcGVybWlhIENvc21pYyBBbmNlc3RyeS4gVGhpcyBhY2NvdW50IG9mIGV2b2x1dGlvbiBhbmQgdGhlIG9yaWdpbiBvZiBsaWZlIG9uIEVhcnRoIGlzIHByb2ZvdW5kbHkgZGlmZmVyZW50IGZyb20gdGhlIHByZXZhaWxpbmcgc2NpZW50aWZpYyBwYXJhZGlnbS4gSXQgY2hhbGxlbmdlcyBub3QgbWVyZWx5IHRoZSBhbnN3ZXJzIGJ1dCB0aGUgcXVlc3Rpb25zIHRoYXQgYXJlIHBvcHVsYXIgdG9kYXkuIENvc21pYyBBbmNlc3RyeSByZXF1aXJlcyB0aGF0IGxpZmUgY2FuIG9ubHkgZGVzY2VuZCBmcm9tIGFuY2VzdG9ycyBhdCBsZWFzdCBhcyBoaWdobHkgZXZvbHZlZCBhcyBpdHNlbGYsIGFuZCB0aGF0IHRoZXJlIGNhbiBiZSBubyBvcmlnaW4gb2YgbGlmZSBmcm9tIG5vbmJpb2xvZ2ljYWwgbWF0dGVyLiBXaXRob3V0IHN1cGVybmF0dXJhbCBpbnRlcnZlbnRpb24sIHRoZXJlZm9yZSwgd2UgY29uY2x1ZGUgdGhhdCBsaWZlIG11c3QgaGF2ZSBhbHdheXMgZXhpc3RlZC4gQWx0aG91Z2ggdGhlc2UgY29uY2x1c2lvbnMgY3V0IGFjcm9zcyB0aGUgYm91bmRhcmllcyBiZXR3ZWVuIHNjaWVuY2UsIHBoaWxvc29waHksIGFuZCByZWxpZ2lvbiwgd2UgYmVsaWV2ZSB0aGV5IGFyZSBncm91bmRlZCBpbiBnb29kIGV2aWRlbmNlLiBBbmQgbmV3IGRhdGEgdGhhdCBzdXBwb3J0IG1hbnkgYXNwZWN0cyBvZiBDb3NtaWMgQW5jZXN0cnkgYXJlIGNvbWluZyBpbiByYXBpZGx5LiBJbiB0aGUgZm9sbG93aW5nIHBhZ2VzIHdlIHdpbGwgZXhwbGFpbiBob3cgdGhlc2UgYW5kIG90aGVyIHJlY2VudCBkZXZlbG9wbWVudHMgc3VwcG9ydCBDb3NtaWMgQW5jZXN0cnk6DQoNCjE5OTU6IEFOU0VUIHNvbGQgdG8gQU9MLCB3aG8gIG5vdyBydW5zIGl0Lg0KMTk5NSAoTWFyKTogRGVwdC4gb2YgSW5kaWFuIE1lZGljaW5lIGFuZCBIb21lb3BhdGh5IGZvdW5kZWQuDQoxOTk1IChNYXIgMjQpOltSZXNlYXJjaF0gUmVtb3RlbHkgT3BlcmF0ZWQgVmVoaWNsZSBLQUlLTyByZWFjaGVkIHRoZSBkZWVwZXN0IGFyZWEgb2YgdGhlIE1hcmlhbmEgVHJlbmNoIGFuZCBtYWRlIHRoZSBkZWVwZXN0IGRpdmluZyByZWNvcmQgb2YgMTAsOTExIG0gKDM1LDc5NyBmdDsgNSw5NjYgZmF0aG9tcykgDQoxOTk1OiBwaG9uZSBjYWxsIGNvc3RpbmcgUnMuIDE2IHBlciBtaW4uDQoxOTk1OltHYW1pbmddIFZpcnR1YSBDb3AgMiBpcyBhIGxpZ2h0IGd1biBzaG9vdGVyIGFyY2FkZSBnYW1lLCByZWxlYXNlZCBpbiAxOTk1IGFuZCBkZXZlbG9wZWQgaW50ZXJuYWxseSBhdCBTZWdhIGJ5IHRoZWlyIEFNMiBzdHVkaW8gKFl1IFN1enVraSkuIEl0IHdhcyBwb3J0ZWQgdG8gdGhlIFNlZ2EgU2F0dXJuIGluIDE5OTYuIEl0IHdhcyByZWxlYXNlZCBvbiBQQyBpbiAxOTk3IGFuZCBTZWdhIERyZWFtY2FzdCBpbiAyMDAwLiBJdCB3YXMgbGF0ZXIgYnVuZGxlZCB3aXRoIFZpcnR1YSBDb3AgaW4gVmlydHVhIENvcDogRWxpdGUgRWRpdGlvbiBmb3IgUGxheVN0YXRpb24gMiBpbiAyMDAyLg0KMTk5NSAoQXByIDEpOltSZXNlYXJjaF0gUGlsbGFycyBvZiBDcmVhdGlvbiBpcyBhIHBob3RvZ3JhcGggdGFrZW4gYnkgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgb2YgZWxlcGhhbnQgdHJ1bmtzIG9mIGludGVyc3RlbGxhciBnYXMgYW5kIGR1c3QgaW4gdGhlIEVhZ2xlIE5lYnVsYSwgaW4gdGhlIFNlcnBlbnMgY29uc3RlbGxhdGlvbiwgc29tZSA2LDUwMOKAkzcsMDAwIGxpZ2h0LXllYXJzICgyLDAwMOKAkzIsMTAwIHBjOyA2MeKAkzY2IEVtKSBmcm9tIEVhcnRoLg0KMTk5NSAoQXByIDEpOiBJQUFJIGFuZCBOQUEgd2VyZSBtZXJnZWQgYnkgYW4gQWN0IG9mIFBhcmxpYW1lbnQgYW5kIHdhcyBuYW1lZCBhcyBBaXJwb3J0cyBBdXRob3JpdHkgb2YgSW5kaWEgKEFBSSkuIFRoaXMgbmV3IG9yZ2FuaXNhdGlvbiB3YXMgdG8gYmUgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nLCB1cGdyYWRpbmcsIG1haW50YWluaW5nIGFuZCBtYW5hZ2luZyBjaXZpbCBhdmlhdGlvbiBpbmZyYXN0cnVjdHVyZSBib3RoIG9uIHRoZSBncm91bmQgYW5kIGFpciBzcGFjZSBpbiB0aGUgY291bnRyeS4NCjE5OTUgKEFwciAyMSk6W0NyaW1lXVtJbmRpYV0gQmFibG9vIHBpY2tlZCB1cCBieSB0aGUgU2luZ2Fwb3JlIGFpcnBvcnQgcG9saWNlIGZvciB0cmF2ZWxsaW5nIG9uIGZha2UgcGFzc3BvcnQuIEhlIHdhcyBzdGF5aW5nIGluIER1YmFpLg0KMTk5NSAoU2VwIDMwKTpbQ3JpbWVdW0luZGlhXSBTaW5nYXBvcmUgZXh0cmFkaXRlcyBJbmRpYSdzICdtb3N0LXdhbnRlZCBpbnRlci1zdGF0ZSBjcmltaW5hbCcgQmFibG9vIFNyaXZhc3RhdmEgKDMzWU8pDQoxOTk1IChOb3YgMzApOiBPcGVyYXRpb24gRGVzZXJ0IFN0b3JtIChGaXJzdCBJcmFxIFdhcilvZmZpY2lhbGx5IGVuZGVkLg0KMTk5NSAoTWF5IDMxKTpbQm9va11bTWlsaXRhcnldIEFkbWlyYWwgV2lsbGlhbSBILiBNY1JhdmVuJ3MgU3BlYyBPcHM6IENhc2UgU3R1ZGllcyBpbiBTcGVjaWFsIE9wZXJhdGlvbnMgV2FyZmFyZTogVGhlb3J5IGFuZCBQcmFjdGljZTsgU2VhIFN0b3JpZXM6IE15IExpZmUgaW4gU3BlY2lhbCBPcGVyYXRpb25zICgyMDE5LCBNYXkgMSk7IFRoZSBIZXJvIENvZGU6IExlc3NvbnMgTGVhcm5lZCBmcm9tIExpdmVzIFdlbGwgTGl2ZWQgKDIwMjEsIEFwciAxMykNCjE5OTU6IERyLiBIYW5kZSBhZnRlciBncmFkdWF0aW5nIGZyb20gSUlUIEtoYXJhZ3B1ciBjb25jZXB0dWFsaXplZCBTRUxDTyBJbmRpYSBkdXJpbmcgaGlzIFBoRCBvbiBzdXN0YWluYWJsZSBlbmVyZ3kgYXQgdGhlIFVuaXZlcnNpdHkgb2YgTWFzc2FjaHVzZXR0cy4gRHVyaW5nIGEgZmllbGQgdmlzaXQgdG8gdGhlIERvbWluaWNhbiBSZXB1YmxpYywgaGUgd2FzIHN1cnByaXNlZCB0byBzZWUgdGhlIHBvb3IgdXNpbmcgc29sYXIgbGlnaHRzLg0KMTk5NTogVGhlIEdvdmVybm1lbnQgb2YgSW5kaWEgYW5kIHRoZSBHb3Zlcm5tZW50IG9mIERlbGhpIGpvaW50bHkgc2V0IHVwIGEgY29tcGFueSBjYWxsZWQgdGhlIERlbGhpIE1ldHJvIFJhaWwgQ29ycG9yYXRpb24gKERNUkMpIG9uIDMgTWF5IDE5OTUsIHdpdGggRHIuIEUuIFNyZWVkaGFyYW4gYXMgdGhlIG1hbmFnaW5nIGRpcmVjdG9yLg0KMTk5NTogSW50J2wgR2FuZGhpIFBlYWNlIFByaXplIGxhdW5jaGVkLg0KMTk5NTogU2FjaGluIFIuIFRlbmR1a2FyIGFuZCBBbmphbGkgVGVuZHVsa2FyIHdlZGRlZCB0b2dldGhlci4NCjE5OTU6IC5tcDMgaW52ZW50ZWQuDQoxOTk1OltHYW1pbmddIFdoaWxlIEZJRkEgOTUgZGlkIG5vdCBhZGQgbXVjaCBvdGhlciB0aGFuIHRoZSBhYmlsaXR5IHRvIHBsYXkgd2l0aCBjbHViIHRlYW1zLCBGSUZBIDk2IHB1c2hlZCB0aGUgYm91bmRhcmllcy4gRm9yIHRoZSBmaXJzdCB0aW1lIHdpdGggcmVhbCBwbGF5ZXIgbmFtZXMgYnkgb2J0YWluaW5nIHRoZSBGSUZQcm8gbGljZW5zZSwgdGhlIFBsYXlTdGF0aW9uLCBQQywgMzJYIGFuZCBTZWdhIFNhdHVybiB2ZXJzaW9ucyB1c2VkIEVBJ3MgIlZpcnR1YWwgU3RhZGl1bSIgZW5naW5lLCB3aXRoIDJEIHNwcml0ZSBwbGF5ZXJzIG1vdmluZyBhcm91bmQgYSByZWFsLXRpbWUgM0Qgc3RhZGl1bS4NCjE5OTUgKEp1bCAxOCk6W0Jvb2tdIEJhcmFjayBPYmFtYSdzIERyZWFtcyBmcm9tIE15IEZhdGhlcjogQSBTdG9yeSBvZiBSYWNlIGFuZCBJbmhlcml0YW5jZTsgRHJlYW1zIGZyb20gTXkgRmF0aGVyOiBBIFN0b3J5IG9mIFJhY2UgYW5kIEluaGVyaXRhbmNlICgyMDA2LCBPY3QgMTcpOyBPZiBUaGVlIEkgU2luZzogQSBMZXR0ZXIgdG8gTXkgRGF1Z2h0ZXJzICgyMDEwLCBOb3YgMTYpOyBBIFByb21pc2VkIExhbmQgKDIwMjAsIE5vdiAxNykNCjE5OTUoSmFuIDEpOltFbnZdIFRoZSBBZ3JlZW1lbnQgb24gQWdyaWN1bHR1cmUgKEFvQSkgaXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgb2YgdGhlIFdvcmxkIFRyYWRlIE9yZ2FuaXphdGlvbi4gSXQgd2FzIG5lZ290aWF0ZWQgZHVyaW5nIHRoZSBVcnVndWF5IFJvdW5kIG9mIHRoZSBHZW5lcmFsIEFncmVlbWVudCBvbiBUYXJpZmZzIGFuZCBUcmFkZSwgYW5kIGVudGVyZWQgaW50byBmb3JjZSB3aXRoIHRoZSBlc3RhYmxpc2htZW50IG9mIHRoZSBXVE8gb24gSmFudWFyeSAxLCAxOTk1LiBCbHVlLCBSZWQsIEFtYmVyIGFuZCBHcmVlbiBCb3ggb2Ygc3Vic2lkaWVzLg0KMTk5NTpbQ2luZW1hXSBOZWxzb24gTWFuZGVsYSwgaW4gaGlzIGZpcnN0IHRlcm0gYXMgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYSwgaW5pdGlhdGVzIGEgdW5pcXVlIHZlbnR1cmUgdG8gdW5pdGUgdGhlIEFwYXJ0aGVpZC10b3JuIGxhbmQ6IGVubGlzdCB0aGUgbmF0aW9uYWwgcnVnYnkgdGVhbSBvbiBhIG1pc3Npb24gdG8gd2luIHRoZSAxOTk1IFJ1Z2J5IFdvcmxkIEN1cC4gLSAgSW52aWN0dXMgKDIwMDkpDQoxOTk1OltDaW5lbWFdIEEgQ2xvY2t3b3JrIE9yYW5nZSgxOTcxKQ0KMTk5NTpbQ2luZW1hXSBEZWFkIEVuZCBEcml2ZS1JbigxOTg2KQ0KMTk5NTpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gU3BhY2Vnb2R6aWxsYSgxOTk0KQ0KMTk5NTpbQ2luZW1hXSBIZWFydGJlZXBzKDE5ODEpDQoxOTk1OltDaW5lbWFdIFRoZSBNdW1teSdzIEN1cnNlKDE5NDQpDQoxOTk1IChEZWMpOltTcGFjZV0gU29sYXIgYW5kIEhlbGlvc3BoZXJpYyBPYnNlcnZhdG9yeSAoU29ITykgd2FzIGxhdW5jaGVkIGluIERlY2VtYmVyIDE5OTUgYXMgYSBqb2ludCBtaXNzaW9uIGJldHdlZW4gdGhlIEV1cm9wZWFuIFNwYWNlIEFnZW5jeSAoRVNBKSBhbmQgTkFTQSwgU29ITyB3YXMgZGVzaWduZWQgdG8gb3JiaXQgdGhlIFN1biB0byBsZWFybiBhYm91dCB0aGUgc3RydWN0dXJlIG9mIHRoZSBzdGFy4oCZcyBpbnRlcmlvciBhbmQgaXRzIG91dGVyIGF0bW9zcGhlcmUsIGFzIHdlbGwgYXMgdG8gaW52ZXN0aWdhdGUgdGhlIGJlaGF2aW9yIG9mIHNvbGFyIHdpbmRzLiBJdCB3YXMgZXhwZWN0ZWQgdG8gY29tcGxldGUgaXRzIG1pc3Npb24gaW4gMTk5OC4gSW5zdGVhZCwgaXQgaXMgc3RpbGwgYWN0aXZlIHRvZGF5LCBhbmQgaXMgbm93IGxpa2VseSB0byBrZWVwIHdvcmtpbmcgdW50aWwgMjAyNSwgd2hlbiBpdCB3aWxsIGhhdmUgYmVlbiBpbiBzcGFjZSBmb3IgMzAgeWVhcnMuDQoxOTk1OltQaHlzaWNzXVtTcGFjZV1bUmVzZWFyY2hdIFByaW9yIHRvIDE5OTUsIHRoZW9yaXN0cyBiZWxpZXZlZCB0aGF0IHRoZXJlIHdlcmUgZml2ZSBjb25zaXN0ZW50IHZlcnNpb25zIG9mIHN1cGVyc3RyaW5nIHRoZW9yeSAodHlwZSBJLCB0eXBlIElJQSwgdHlwZSBJSUIsIGFuZCB0d28gdmVyc2lvbnMgb2YgaGV0ZXJvdGljIHN0cmluZyB0aGVvcnkpLiBUaGlzIHVuZGVyc3RhbmRpbmcgY2hhbmdlZCBpbiAxOTk1IHdoZW4gRWR3YXJkIFdpdHRlbiBzdWdnZXN0ZWQgdGhhdCB0aGUgZml2ZSB0aGVvcmllcyB3ZXJlIGp1c3Qgc3BlY2lhbCBsaW1pdGluZyBjYXNlcyBvZiBhbiBlbGV2ZW4tZGltZW5zaW9uYWwgdGhlb3J5IGNhbGxlZCBNLXRoZW9yeS4gV2l0dGVuJ3MgY29uamVjdHVyZSB3YXMgYmFzZWQgb24gdGhlIHdvcmsgb2YgYSBudW1iZXIgb2Ygb3RoZXIgcGh5c2ljaXN0cywgaW5jbHVkaW5nIEFzaG9rZSBTZW4sIENocmlzIEh1bGwsIFBhdWwgVG93bnNlbmQsIGFuZCBNaWNoYWVsIER1ZmYuIEhpcyBhbm5vdW5jZW1lbnQgbGVkIHRvIGEgZmx1cnJ5IG9mIHJlc2VhcmNoIGFjdGl2aXR5IG5vdyBrbm93biBhcyB0aGUgc2Vjb25kIHN1cGVyc3RyaW5nIHJldm9sdXRpb24uDQoxOTk1OltDcmltZV1bSW5kaWFdIE11cmRlciBvZiBNdW1iYWktYmFzZWQgYnVpbGRlciBQcmFkZWVwIEphaW4gYnkgQWJ1IFNhbGVtDQoxOTk1OiBGb3J0dW5lIEhvdGVscyBpbiBJbmRpYSBpcyBvd25lZCBieSBpdHMgcGFyZW50IGNvbXBhbnksIElUQyBMdGQuLCB3aGljaCBlc3RhYmxpc2hlZCBGb3J0dW5lIEhvdGVscyBpbiAxOTk1IGFzIGEgc3Vic2lkaWFyeSB0byBwcm92aWRlIG1pZC1tYXJrZXQgdG8gdXBzY2FsZSBob3NwaXRhbGl0eSBzZXJ2aWNlcy4gSG93ZXZlciwgYSBzZXBhcmF0ZSBncm91cCwgRm9ydHVuZSBHcm91cCBvZiBIb3RlbHMsIGJhc2VkIGluIHRoZSBVbml0ZWQgQXJhYiBFbWlyYXRlcyAoVUFFKSBhbmQgZm91bmRlZCBieSBQcmF2ZWVuIFNoZXR0eSwgYWxzbyBvcGVyYXRlcyBhIGRpZmZlcmVudCBzZXQgb2YgaG90ZWxzIGluIHRoYXQgcmVnaW9uLg0KMTk5NTpbVUtdIENhbWlsbGEgaXMgUXVlZW4gb2YgdGhlIFVuaXRlZCBLaW5nZG9tIGFuZCAxNCBvdGhlciBDb21tb253ZWFsdGggcmVhbG1zIGFzIHRoZSB3aWZlIG9mIEtpbmcgQ2hhcmxlcyBJSUkuIENhbWlsbGEgd2FzIHJhaXNlZCBpbiBFYXN0IFN1c3NleCBhbmQgU291dGggS2Vuc2luZ3RvbiBpbiBFbmdsYW5kIGFuZCBlZHVjYXRlZCBpbiBFbmdsYW5kLCBTd2l0emVybGFuZCBhbmQgRnJhbmNlLiBJbiAxOTczLCBzaGUgbWFycmllZCBCcml0aXNoIEFybXkgb2ZmaWNlciBBbmRyZXcgUGFya2VyIEJvd2xlczsgdGhleSBkaXZvcmNlZCBpbiAxOTk1Lg0KDQoxOTk2OltHZW9Qb2xpdGljc11bQnVzaW5lc3NdIE1vbmdvbGlhIHdhcyBncmFudGVkIG9ic2VydmVyIHN0YXR1cyB0byBUUkFDRUNBLg0KMTk5NiAoNyBBdWd1c3QpOltSZXNlYXJjaF1bU3BhY2VdIE5BU0EgYW5ub3VuY2VkIGZvc3NpbGl6ZWQgZXZpZGVuY2Ugb2YgYW5jaWVudCBsaWZlIGluIG1ldGVvcml0ZSBBTEggODQwMDEgZnJvbSBNYXJzLg0KMTk5NiAoT2N0IDI3KTpbUmVzZWFyY2hdW1NwYWNlXSBnZW5ldGljaXN0cyBzaG93ZWQgZXZpZGVuY2UgdGhhdCBtYW55IGdlbmVzIGFyZSBtdWNoIG9sZGVyIHRoYW4gdGhlIGZvc3NpbCByZWNvcmQgd291bGQgaW5kaWNhdGUuIFN1YnNlcXVlbnQgc3R1ZGllcyBoYXZlIHN0cmVuZ3RoZW5lZCB0aGlzIGZpbmRpbmcuDQoxOTk2OltCdXNpbmVzc11bR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2hlbiB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4gc2lnbmVkIHRoZSBUcmVhdHkgb24gRGVlcGVuaW5nIE1pbGl0YXJ5IFRydXN0IGluIEJvcmRlciBSZWdpb25zIGluIFNoYW5naGFpLiBPbiAyNCBBcHJpbCAxOTk3IHRoZSBzYW1lIGNvdW50cmllcyBzaWduZWQgdGhlIFRyZWF0eSBvbiBSZWR1Y3Rpb24gb2YgTWlsaXRhcnkgRm9yY2VzIGluIEJvcmRlciBSZWdpb25zIGluIGEgbWVldGluZyBpbiBNb3Njb3csIFJ1c3NpYS4gT24gMjAgTWF5IDE5OTcgUnVzc2lhbiBQcmVzaWRlbnQgQm9yaXMgWWVsdHNpbiBhbmQgQ2hpbmVzZSBQcmVzaWRlbnQgSmlhbmcgWmVtaW4gc2lnbmVkIGEgZGVjbGFyYXRpb24gb24gYSAibXVsdGlwb2xhciB3b3JsZCIuDQoxOTk2OiAxOTk2IE1vdW50IEV2ZXJlc3QgRGlzYXN0ZXIsIGluIHdoaWNoIGVpZ2h0IHBlb3BsZSBkaWVkIHdoaWxlIG9uIGFuIGV4cGVkaXRpb24gdG8gc2NhbGUgdGhlIGluZmFtb3VzIHN1bW1pdC4gT25lIG9mIHRoZSBjbGltYmVycyB3aG8gbG9zdCBoaXMgbGlmZSB3YXMgQW5keSBIYXJyaXMsIHBsYXllZCBpbiBFdmVyZXN0IGJ5IE1hcnRpbiBIZW5kZXJzb24uIEhhcnJpcyB3YXMgb25lIG9mIHRoZSBndWlkZXMgZm9yIHRoZSBBZHZlbnR1cmUgQ29uc3VsdGFudHMsIGFsb25nIHdpdGggUm9iIEhhbGwgYW5kIE1pa2UgR3Jvb20uIEluIHRoZSBmaWxtLCBoZSBhcHBlYXJzIHRvIGRpZSB3aGlsZSB3aXRoIEhhbGwsIGZhbGxpbmcgb2ZmIGEgY2xpZmYgYWZ0ZXIgYSBoYWxsdWNpbmF0aW9uLiBCdXQgUm9iIEhhbGwgbmV2ZXIgcmVwb3J0ZWQgdGhpcywgYW5kIHNpbmNlIGhlIGRpZWQgc2hvcnRseSB0aGVyZWFmdGVyLCB0aGVyZSBpcyBubyB3YXkgdG8gY29uZmlybSB0aGUgY2lyY3Vtc3RhbmNlcyBzdXJyb3VuZGluZyBIYXJyaXMnIGRlYXRoLg0KMTk5NjpbQ29tcHV0aW5nXVtRdWFudHVtXSAgTG92IEdyb3ZlciBkZXZpc2VkIGFuIGFsZ29yaXRobSAoR3JvdmVyJ3MgYWxnb3JpdGhtKSB0aGF0IGNvdWxkIHNlYXJjaCBhbiB1bnNvcnRlZCBkYXRhYmFzZSBpbiBzcXVhcmUgcm9vdCB0aW1lIG9uIGEgcXVhbnR1bSBjb21wdXRlciwgd2hpY2ggd291bGQgb3V0cGVyZm9ybSBhbnkgY2xhc3NpY2FsIGFsZ29yaXRobS4NCjE5OTY6W1VTXSBCYXJhY2sgT2JhbWEgd2FzIGVsZWN0ZWQgdG8gdGhlIElsbGlub2lzIFNlbmF0ZSwgc3VjY2VlZGluZyBEZW1vY3JhdGljIFN0YXRlIFNlbmF0b3IgQWxpY2UgUGFsbWVyIGZyb20gSWxsaW5vaXMncyAxM3RoIERpc3RyaWN0LCB3aGljaCwgYXQgdGhhdCB0aW1lLCBzcGFubmVkIENoaWNhZ28gU291dGggU2lkZSBuZWlnaGJvcmhvb2RzIGZyb20gSHlkZSBQYXJr4oCTS2Vud29vZCBzb3V0aCB0byBTb3V0aCBTaG9yZSBhbmQgd2VzdCB0byBDaGljYWdvIExhd24uDQoxOTk2OltVS10gQ2hhcmxlcyBJSUkgYW5kIERpYW5hIGdldHMgZGl2b3JjZWQuDQoxOTk2IChKYW4gMjUpOltCb29rXSBQZXRlciBMeW5jaCAmIEpvaG4gUm90aGNoaWxkJ3MgTGVhcm4gdG8gRWFybjogQSBCZWdpbm5lcidzIEd1aWRlIHRvIHRoZSBCYXNpY3Mgb2YgSW52ZXN0aW5nIGFuZCBCdXNpbmVzcy4NCjE5OTYgKEphbik6W0NyaW1lXVtJbmRpYV0gQW5lZXMgSWJyYWhpbSBhcnJlc3RlZCBpbiBCYWhyYWluLCBzaGlmdGVkIHRvIER1YmFpIGFsbGVnZWRseSBvbiB0aGUgaW50ZXJ2ZW50aW9uIG9mIHNvbWUgb2YgRHViYWkncyBydWxpbmcgbm90YWJsZXMsIGFuZCB3YXMgdGhlbiBhbGxvd2VkIHRvIHNsaXAgYXdheSB0byBLYXJhY2hpLCBQYWtpc3Rhbi4NCjE5OTY6IE5hdGlvbmFsIEFlcm9zcGFjZSBMYWJvcmF0b3JpZXMsIEluZGlhIGluZGlnZW5vdXNseSBidWlsdCBGTE9TT0xWRVIsIEluZGlhJ3MgZmlyc3Qgc3VwZXJjb21wdXRlci4gSXQgd2FzIHJlcGxpY2F0ZWQgYW5kIGluc3RhbGxlZCBhdCBJQ0FEIE1vc2NvdyBpbiAxOTkxIHVuZGVyIFJ1c3NpYW4gY29sbGFib3JhdGlvbi4NCjE5OTY6IEluZGlhL1Bha2lzdGFuL1NyaSBMYW5rYSAxOTk2Lg0KMTk5NjpbQ29tcHV0aW5nXVt3d3ddIE1hcmlvIDY0IGdhbWUgcmFuIDEwMCBtaWxsaW9uIGNhbGN1bGF0aW9ucyBwZXIgc2Vjb25kLCA1NDAgbWlsbGlvbiAoSGFsZi1MaWZlKSBpbiAxOTk4LCBNaW5lY3JhZnQgKDIwMTEpIHJ1bm5pbmcgMTAwIGJpbGxpb24gY2FsY3VsYXRpb25zLCBDeWJlcnB1bmsgMjA3NyAobW9zdCByZWFsaXN0aWMgdmlkZW8gZ2FtZSAyMDI0KSwgeW91IG5lZWQgYSBncmFwaGljcyBjYXJkIHRoYXQgY2FuIHBlcmZvcm0gYXJvdW5kIDM2IHRyaWxsaW9uIGNhbGMgcGVyIHNlY29uZC4NCjE5OTY6IFByb2YgTWFsY29sbSBIZWF0aC4gUHJvZmVzc29yIG9mIEdyZWVrIExhbmd1YWdlIGFuZCBMaXRlcmF0dXJlIEBsZWVkcy5hYy51aywgdHJhbnNsYXRlZCBBcmlzdG90bGUncyBQb2V0aWNzLg0KMTk5NjogVGhlIDU2SyBtb2RlbSB3YXMgaW52ZW50ZWQgYnkgRHIuIEJyZW50IFRvd25zaGVuZA0KMTk5NiAoRmViIDEzKTogTmVwYWxlc2UgQ2l2aWwgV2FyIHN0YXJ0ZWQuIFRoZSBNYW9pc3QgUmViZWxsaW9uIChsYWJlbGxlZCB0aGUgUGVvcGxlJ3MgV2FyIGJ5IHRoZW4gQ1BOKE1hb2lzdCkpIHdhcyBhbiBhcm1lZCBjb25mbGljdCBhZ2FpbnN0IEdvdmVybm1lbnQgb2YgTmVwYWwgKHRoZW4gSE1HIG9mIE5lcGFsKSBmb3VnaHQgZnJvbSAxOTk2IHRvIDIwMDYuIFRoZSByZWJlbGxpb24gd2FzIGxhdW5jaGVkIGJ5IHRoZSBDb21tdW5pc3QgUGFydHkgb2YgTmVwYWwgKE1hb2lzdCkgb24gMTMgRmVicnVhcnkgMTk5NiB3aXRoIHRoZSBtYWluIGFpbSBvZiBvdmVydGhyb3dpbmcgdGhlIE5lcGFsZXNlIG1vbmFyY2h5IGFuZCBlc3RhYmxpc2hpbmcgYSAnUGVvcGxlJ3MgUmVwdWJsaWMnLiBJdCBlbmRlZCB3aXRoIHRoZSBDb21wcmVoZW5zaXZlIFBlYWNlIEFjY29yZCBzaWduZWQgb24gMjEgTm92ZW1iZXIgMjAwNi4NCjE5OTYgKE1hciAxKTogW0dlb1BvbGl0aWNzXSBUaGUgQXNpYeKAk0V1cm9wZSBNZWV0aW5nIChBU0VNKSBpcyBhbiBBc2lhbuKAk0V1cm9wZWFuIHBvbGl0aWNhbCBkaWFsb2d1ZSBmb3J1bSB0byBlbmhhbmNlIHJlbGF0aW9ucyBhbmQgdmFyaW91cyBmb3JtcyBvZiBjb29wZXJhdGlvbiBiZXR3ZWVuIGl0cyBwYXJ0bmVycy4gSXQgd2FzIG9mZmljaWFsbHkgZXN0YWJsaXNoZWQgYXQgdGhlIDFzdCBBU0VNIFN1bW1pdCAoQVNFTTEpIGluIEJhbmdrb2ssIFRoYWlsYW5kLCBieSB0aGUgdGhlbiAxNSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aGUgRXVyb3BlYW4gQ29tbWlzc2lvbiwgdGhlIHRoZW4gNyBNZW1iZXIgU3RhdGVzIG9mIHRoZSBBc3NvY2lhdGlvbiBvZiBTb3V0aGVhc3QgQXNpYW4gTmF0aW9ucyAoQVNFQU4pLCBhbmQgdGhlIGluZGl2aWR1YWwgY291bnRyaWVzIG9mIENoaW5hLCBKYXBhbiwgYW5kIFNvdXRoIEtvcmVhLiBBIHNlcmllcyBvZiBlbmxhcmdlbWVudHMgc2F3IGFkZGl0aW9uYWwgRVUgTWVtYmVyIFN0YXRlcyBqb2luIGFzIHdlbGwgYXMgSW5kaWEsIE1vbmdvbGlhLCBQYWtpc3RhbiBhbmQgdGhlIEFTRUFOIFNlY3JldGFyaWF0IGluIDIwMDgsIEF1c3RyYWxpYSwgTmV3IFplYWxhbmQgYW5kIFJ1c3NpYSBpbiAyMDEwLCBCYW5nbGFkZXNoLCBOb3J3YXksIGFuZCBTd2l0emVybGFuZCBpbiAyMDEyLCBhcyB3ZWxsIGFzIENyb2F0aWEsIGFuZCBLYXpha2hzdGFuIGluIDIwMTQuDQoxOTk2IChBcHIgMjYpOiBbR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2l0aCB0aGUgc2lnbmluZyBvZiB0aGUgVHJlYXR5IG9uIERlZXBlbmluZyBNaWxpdGFyeSBUcnVzdCBpbiBCb3JkZXIgUmVnaW9ucyBpbiBTaGFuZ2hhaSBieSB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4uIExhdGVyIG9uIEp1biAxNSwgMjAwMSBpdCBnb3QgcmVuYW1lZCBhcyBTaGFuZ2hhaSBDb29wZXJhdGlvbiBPcmdhbmlzYXRpb24gKFNDTykgb3IgU2hhbmdoYWkgUGFjdCANCjE5OTYgKE1heSAxNik6IEF0YWwgQmloYXJpIFZhanBheWVlIGJlY29tZXMgUE0gb2YgSW5kaWEgZm9yIHRoZSB2ZXJ5IGZpcnN0IHRpbWUgZm9yIDE2IGRheXMuDQoxOTk2IChKdW4gMSk6IEF0YWwgQmloYXJpIFZhanBheWVlIHJlc2lnbnMuIEhEIERldmUgR293ZGEgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NiAoQXVnIDE0KTpbcmVzZWFyY2hdW2V4dHJlbWVdIEthcmVuIEVsaXphYmV0aCBXZXR0ZXJoYWhuIChPY3RvYmVyIDE2LCAxOTQ4IOKAkyBKdW5lIDgsIDE5OTcpLCBhbHNvIGtub3duIGFzIEthcmVuIFdldHRlcmhhaG4gSmVubmV0dGUsIHdhcyBhbiBBbWVyaWNhbiBwcm9mZXNzb3Igb2YgY2hlbWlzdHJ5IGF0IERhcnRtb3V0aCBDb2xsZWdlLCBOZXcgSGFtcHNoaXJlLCB3aG8gc3BlY2lhbGl6ZWQgaW4gdG94aWMgbWV0YWwgZXhwb3N1cmUuIFNoZSBkaWVkIG9mIG1lcmN1cnkgcG9pc29uaW5nIGF0IHRoZSBhZ2Ugb2YgNDggZHVlIHRvIGFjY2lkZW50YWwgZXhwb3N1cmUgdG8gdGhlIGV4dHJlbWVseSB0b3hpYyBvcmdhbmljIG1lcmN1cnkgY29tcG91bmQgZGltZXRoeWxtZXJjdXJ5IChIZyhDSDMpMikuIFByb3RlY3RpdmUgZ2xvdmVzIGluIHVzZSBhdCB0aGUgdGltZSBvZiB0aGUgaW5jaWRlbnQgcHJvdmlkZWQgaW5zdWZmaWNpZW50IHByb3RlY3Rpb24sIGFuZCBleHBvc3VyZSB0byBvbmx5IGEgc2luZ2xlIGRyb3Agb3IgdHdvIG9mIHRoZSBkaW1ldGh5bG1lcmN1cnkgYWJzb3JiZWQgdGhyb3VnaCB0aGUgZ2xvdmVzIHByb3ZlZCB0byBiZSBmYXRhbCBhZnRlciBsZXNzIHRoYW4gYSB5ZWFyLiBUZXN0cyBsYXRlciByZXZlYWxlZCB0aGF0IGRpbWV0aHlsbWVyY3VyeSBjYW4sIGluIGZhY3QsIHJhcGlkbHkgcGVybWVhdGUgc2V2ZXJhbCBraW5kcyBvZiBsYXRleCBnbG92ZXMgYW5kIGVudGVyIHRoZSBza2luIHdpdGhpbiBhYm91dCAxNSBzZWNvbmRzLiBIZXIgZXhwb3N1cmUgd2FzIGxhdGVyIGNvbmZpcm1lZCBieSBoYWlyIGFuYWx5c2lzLCB3aGljaCBzaG93ZWQgYSBkcmFtYXRpYyBqdW1wIGluIG1lcmN1cnkgbGV2ZWxzIDE3IGRheXMgYWZ0ZXIgdGhlIGluaXRpYWwgYWNjaWRlbnQsIHBlYWtpbmcgYXQgMzkgZGF5cywgZm9sbG93ZWQgYnkgYSBncmFkdWFsIGRlY2xpbmUuIEFwcHJveGltYXRlbHkgdGhyZWUgbW9udGhzIGFmdGVyIHRoZSBpbml0aWFsIGFjY2lkZW50IFdldHRlcmhhaG4gYmVnYW4gZXhwZXJpZW5jaW5nIGJyaWVmIGVwaXNvZGVzIG9mIGFiZG9taW5hbCBkaXNjb21mb3J0IGFuZCBub3RpY2VkIHNpZ25pZmljYW50IHdlaWdodCBsb3NzLiBUaGUgbW9yZSBkaXN0aW5jdGl2ZSBuZXVyb2xvZ2ljYWwgc3ltcHRvbXMgb2YgbWVyY3VyeSBwb2lzb25pbmcsIGluY2x1ZGluZyBsb3NzIG9mIGJhbGFuY2UgYW5kIHNsdXJyZWQgc3BlZWNoLCBhcHBlYXJlZCBpbiBKYW51YXJ5IDE5OTcsIGZpdmUgbW9udGhzIGFmdGVyIHRoZSBhY2NpZGVudC4gSGVyIGJsb29kIGFuZCB1cmluYXJ5IG1lcmN1cnkgY29udGVudCB3ZXJlIG1lYXN1cmVkIGF0IDQsMDAwIM68Zy9MIGFuZCAyMzQgzrxnL0wsIHJlc3BlY3RpdmVseeKAlGJvdGggbWFueSB0aW1lcyB0aGVpciByZXNwZWN0aXZlIHRveGljIHRocmVzaG9sZHMgb2YgMjAwIM68Zy9MIGFuZCA1MCDOvGcvTCAoYmxvb2QgYW5kIHVyaW5lIHJlZmVyZW5jZSByYW5nZXMgYXJlIDEgdG8gOCDOvGcvTCBhbmQgMSB0byA1IM68Zy9MKS4NCjE5OTYgKERlYyA0IDA2OjU4OjA3IFVUQyk6W1NwYWNlXVtNYXJzXVtFYXJ0aF0gTGF1bmNoIG9mIE1hcnMgUGF0aGZpbmRlciBvbiBEZWx0YSBJSSA3OTI1ICgjRDI0MCkNCnJvY2tldCBmcm9tIENhcGUgQ2FuYXZlcmFsIFNMQy0xNy4gVG8gcHJvdmUgdGhhdCB0aGUgZGV2ZWxvcG1lbnQgb2YgImZhc3RlciwgYmV0dGVyIGFuZCBjaGVhcGVyIiBzcGFjZWNyYWZ0IHdhcyBwb3NzaWJsZSAod2l0aCB0aHJlZSB5ZWFycyBmb3IgZGV2ZWxvcG1lbnQgYW5kIGEgY29zdCB1bmRlciAkMTUwIG1pbGxpb24gZm9yIHRoZSBsYW5kZXIsIGFuZCAkMjUgbWlsbGlvbiBmb3IgdGhlIHJvdmVyKS4gVG8gc2hvdyB0aGF0IGl0IHdhcyBwb3NzaWJsZSB0byBzZW5kIGEgbG9hZCBvZiBzY2llbnRpZmljIGluc3RydW1lbnRzIHRvIGFub3RoZXIgcGxhbmV0IHdpdGggYSBzaW1wbGUgc3lzdGVtIGFuZCBhdCBvbmUtZmlmdGVlbnRoIHRoZSBjb3N0IG9mIGEgVmlraW5nIG1pc3Npb24uIChGb3IgY29tcGFyaXNvbiwgdGhlIFZpa2luZyBtaXNzaW9ucyBjb3N0ICQ5MzUgbWlsbGlvbiBpbiAxOTc0IG9yICQzLjUgYmlsbGlvbiBpbiAxOTk3IGRvbGxhcnMuKS4gVG8gZGVtb25zdHJhdGUgTkFTQSdzIGNvbW1pdG1lbnQgdG8gbG93LWNvc3QgcGxhbmV0YXJ5IGV4cGxvcmF0aW9uIGJ5IGZpbmlzaGluZyB0aGUgbWlzc2lvbiB3aXRoIGEgdG90YWwgZXhwZW5kaXR1cmUgb2YgJDI4MCBtaWxsaW9uLCBpbmNsdWRpbmcgdGhlIGxhdW5jaCB2ZWhpY2xlIGFuZCBtaXNzaW9uIG9wZXJhdGlvbnMuDQoxOTk2OiBhIHJhaWQgb24gdGhlIEFuaW1hbCBIdXNiYW5kcnkgZGVwYXJ0bWVudOKAmXMgb2ZmaWNlcyBpbiBDaGFpYmFzYSwgQmloYXIgdW5mb2xkZWQgdGhlIFJzLjk1MCBjcm9yZSBmb2RkZXIgc2NhbSwgaW4gd2hpY2ggdGhlIEJpaGFyIGNoaWVmIG1pbmlzdGVyIExhbHUgUHJhc2FkIFlhZGF2IGNhdGNoIHVwIGluIGEgbGlmZWxvbmcgdHVzc2xlIHdpdGggdGhlIENCSS4NCjE5OTY6W0Jvb2tdW0FkdmVudHVyZV0gSm9uIEtyYWthdWVyJ3MgSW50byB0aGUgV2lsZC4NCjE5OTY6W0NvbXB1dGluZ10gVGhlIFZpZGVvTEFOIHNvZnR3YXJlIG9yaWdpbmF0ZWQgYXMgYSBGcmVuY2ggYWNhZGVtaWMgcHJvamVjdC4gVkxDIHVzZWQgdG8gc3RhbmQgZm9yICJWaWRlb0xBTiBDbGllbnQiIHdoZW4gVkxDIHdhcyBhIGNsaWVudCBvZiB0aGUgVmlkZW9MQU4gcHJvamVjdCwgb2ZmaWNpYWxseSByZWxlYXNlZCB1bmRlciBHTlUgR1BMIG9uIDIwMDEgKEZlYiAxKS4NCjE5OTY6W01lbWVdIERhbmNpbmcgQmFieSBTY3JlZW5zYXZlcg0KMTk5NjpbU3BhY2VYXSBUaGUgZW50aXJlIHByb2Nlc3MgZm9yIHRoZSBKYW1lcyBXZWJiIFNwYWNlIFRlbGVzY29wZSAoSldTVCkgZnJvbSBpbml0aWFsIGNvbmNlcHQgdG8gbGF1bmNoIHNwYW5uZWQgYXBwcm94aW1hdGVseSAyNSB5ZWFycywgd2l0aCBpbml0aWFsIGRlc2lnbnMgYmVnaW5uaW5nIGluIDE5OTYgYW5kIHRoZSB0ZWxlc2NvcGUgbGF1bmNoaW5nIGluIDIwMjEsIGJ1dCBhIHNpZ25pZmljYW50IHBvcnRpb24gb2YgdGhpcyB3YXMgc3BlbnQgaW4gZGVzaWduLCB0ZXN0aW5nLCBhbmQgb3ZlcmNvbWluZyBtYWpvciByZWRlc2lnbnMgYW5kIGRlbGF5cywgbm90IGp1c3QgYXNzZW1ibHkuIA0KMTk5NiAoRmViIDI4KTpbRGVsaGldIEluZGlyYXB1cmFtLCBHaGF6aWFiYWQgd2FzIGVzdGQgd2hlbiBpdHMgZm91bmRhdGlvbiBzdG9uZSAoS2FsYSBQYXRoYXIpIHdhcyBpbmF1Z3VyYXRlZCBieSBTaCBNb3RpbGFsIFZvcmEsIHRoZW4gR292ZXJub3Igb2YgVVAuICgyMDIxKSBJJ3B1cmFtIEV4dG4gdG8gYmUgYnVpbHQgb24gMTIgYWNyZXMgb25seSwgY29uY2VpdmVkIGluIDIwMDQuDQoxOTk2OltCb29rXVtNaWxpdGFyeV1bQ3VsdHVyZV1bRVVdW1VTQV0gR2VvcmdlIFIuUi4gTWFydGluIGlzIHRoZSBBbWVyaWNhbiBhdXRob3Igb2YgdGhlIGVwaWMgZmFudGFzeSBib29rIHNlcmllcyBBIFNvbmcgb2YgSWNlIGFuZCBGaXJlLCB3aGljaCBiZWdhbiB3aXRoIEEgR2FtZSBvZiBUaHJvbmVzICgxOTk2KSBhbmQgc2VydmVkIGFzIHRoZSBiYXNpcyBmb3IgSEJPJ3MgbWFzc2l2ZWx5IHBvcHVsYXIgR2FtZSBvZiBUaHJvbmVzIFRWIHNlcmllcy4gQSBTb25nIG9mIEljZSBhbmQgRmlyZSBpcyBhIHNlcmllcyBvZiBoaWdoIGZhbnRhc3kgbm92ZWxzIGJ5IHRoZSBBbWVyaWNhbiBhdXRob3IgR2VvcmdlIFIuIFIuIE1hcnRpbi4gTWFydGluIGJlZ2FuIHdyaXRpbmcgdGhlIGZpcnN0IHZvbHVtZSwgQSBHYW1lIG9mIFRocm9uZXMsIGluIDE5OTEsIGFuZCBwdWJsaXNoZWQgaXQgaW4gMTk5Ni4gTWFydGluLCB3aG8gb3JpZ2luYWxseSBlbnZpc2lvbmVkIHRoZSBzZXJpZXMgYXMgYSB0cmlsb2d5LCBoYXMgcmVsZWFzZWQgZml2ZSBvdXQgb2Ygc2V2ZW4gcGxhbm5lZCB2b2x1bWVzLiANCg0KW0dlbmVyYXRpb25dIE1pbGxlbm5pYWwgZ2VuZXJhdGlvbiAoMTk4MeKAkzE5OTYpIGVuZHM7IGxhc3RlZCBmb3IgMTUgeWVhcnMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICA1MCB5ZWFycyBvZiBJbmRlcGVuZGVudCBJbmRpYSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSANCg0KW0dlbmVyYXRpb25dIEdlbiBaICgxOTk34oCTMjAxMikgc3RhcnRzOyBhbmQgZXhpc3RzIGZvciBuZXh0IDE1IHllYXJzLg0KDQoxOTk3OltXaG9dW1Jlc2VhcmNoXVtDb21wdXRpbmddW1RlY2hdW0N1bHR1cmVdIFZMQyBNZWRpYSBQbGF5ZXIgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBzdHVkZW50cyBhdCB0aGUgRnJlbmNoIGVuZ2luZWVyaW5nIHNjaG9vbCDDiWNvbGUgQ2VudHJhbGUgUGFyaXMgaW4gMTk5Ni4gV2hpbGUgaXQgc3RhcnRlZCBhcyBhbiBhY2FkZW1pYyBwcm9qZWN0IChWaWRlb0xBTikgdG8gc3RyZWFtIHZpZGVvIG92ZXIgYSBjYW1wdXMgbmV0d29yaywgaXRzIGRldmVsb3BtZW50IGFuZCBtb2Rlcm5pemF0aW9uIHdlcmUgbGF0ZXIgbGVkIGJ5IEplYW4tQmFwdGlzdGUgS2VtcGYuIA0KMTk5NzpbUmVzZWFyY2hdW1NwYWNlXSAyOSBKdWx5IDE5OTc6IGEgTkFTQSBzY2llbnRpc3QgYW5ub3VuY2VkIGV2aWRlbmNlIG9mIGZvc3NpbGl6ZWQgbWljcm9zY29waWMgbGlmZSBmb3JtcyBpbiBhIG1ldGVvcml0ZSBub3QgZnJvbSBhbnkga25vd24gcGxhbmV0Lg0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgR3JvdXAgb2YgRWlnaHQgKEc4KSB3YXMgYW4gaW50ZXJnb3Zlcm5tZW50YWwgcG9saXRpY2FsIGZvcnVtIGZyb20gMTk5NyB0byAyMDE0LCBmb3JtZWQgYnkgaW5jb3Jwb3JhdGluZyBSdXNzaWEgaW50byB0aGUgRzcuIFRoZSBHOCBiZWNhbWUgdGhlIEc3IGFnYWluIGFmdGVyIFJ1c3NpYSB3YXMgZXhwZWxsZWQgaW4gMjAxNCBhZnRlciB0aGUgUnVzc2lhbiBhbm5leGF0aW9uIG9mIENyaW1lYS4gRm91bmRlZDogMTk5NywgRGVudmVyLCBDb2xvcmFkbywgVW5pdGVkIFN0YXRlcw0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBGb3VuZGVkOiA2IEp1bmUgMTk5NywgVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiAoQklNU1RFQykgaXMgYW4gaW50ZXJuYXRpb25hbCBvcmdhbml6YXRpb24gb2Ygc2V2ZW4gU291dGggQXNpYW4gYW5kIFNvdXRoZWFzdCBBc2lhbiBuYXRpb25zLCBob3VzaW5nIDEuNzMgYmlsbGlvbiBwZW9wbGUgYW5kIGhhdmluZyBhIGNvbWJpbmVkIGdyb3NzIGRvbWVzdGljIHByb2R1Y3Qgb2YgVVMkNS4yIHRyaWxsaW9uLg0KMTk5NzpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gYnVpbHQgdGhlIGZpcnN0IGV4cGVyaW1lbnRhbCBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCBjb3VsZCBtYW5pcHVsYXRlIDcgcXViaXRzIHVzaW5nIG51Y2xlYXIgbWFnbmV0aWMgcmVzb25hbmNlIChOTVIpIHRlY2huaXF1ZXMuDQoxOTk3IChKdWwgNCk6W1NwYWNlXVtNYXJzXSBUaGUgTWFycyBQYXRoZmluZGVyIGVuZHVyZWQgYSAzMC1zZWNvbmQgY29tbXVuaWNhdGlvbnMgYmxhY2tvdXQgYXMgaXQgZW50ZXJlZCBNYXJzJyBhdG1vc3BoZXJlLiBJdCBsYW5kZWQgYXQgQXJlcyBWYWxsaXMsIENocnlzZSBQbGFuaXRpYSwgTWFycyAxOcKwN+KAsjQ44oCzTiAzM8KwMTPigLIxMuKAs1cuIE1hcnMgUGF0aGZpbmRlciAoTUVTVVIgUGF0aGZpbmRlcikgaXMgYW4gQW1lcmljYW4gcm9ib3RpYyBzcGFjZWNyYWZ0IHRoYXQgbGFuZGVkIGEgYmFzZSBzdGF0aW9uIHdpdGggYSByb3ZpbmcgcHJvYmUgb24gTWFycyBpbiAxOTk3LiBJdCBjb25zaXN0ZWQgb2YgYSBsYW5kZXIsIHJlbmFtZWQgdGhlIENhcmwgU2FnYW4gTWVtb3JpYWwgU3RhdGlvbiwgYW5kIGEgbGlnaHR3ZWlnaHQsIDEwLjYga2cgKDIzIGxiKSB3aGVlbGVkIHJvYm90aWMgTWFycyByb3ZlciBuYW1lZCBTb2pvdXJuZXIsIHRoZSBmaXJzdCByb3ZlciB0byBvcGVyYXRlIG91dHNpZGUgdGhlIEVhcnRo4oCTTW9vbiBzeXN0ZW0uDQoxOTk3OltCb29rXSBNaXRjaCBBbGJvbSdzIFR1ZXNkYXlzIHdpdGggTW9ycmllLg0KMTk5NzpbR2FtaW5nXSBHcmFuZCBUaGVmdCBBdXRvIChHVEEpIHJlbGVhc2VkIGJ5IERNQSBEZXNpZ24gKGxhdGVyIFJvY2tzdGFyIE5vcnRoKSBmb3IgUFMxLCBXaW5kb3dzIGFuZCBNUy1ET1M7IEdyYW5kIFRoZWZ0IEF1dG86IFZpY2UgQ2l0eSAoMjAwMik7IEdyYW5kIFRoZWZ0IEF1dG86IFNhbiBBbmRyZWFzICgyMDA0KTsgR3JhbmQgVGhlZnQgQXV0byBJViAoMjAwOCk7IEdyYW5kIFRoZWZ0IEF1dG8gViAoMjAxMyk7IEdyYW5kIFRoZWZ0IEF1dG86IFRoZSBUcmlsb2d5IOKAkyBUaGUgRGVmaW5pdGl2ZSBFZGl0aW9uICgyMDIxKQ0KMTk5NzogVGVra2VuIDMgd2FzIGRlc2lnbmVkIGJ5IEthdHN1aGlybyBIYXJhZGEgKE9zYWthLCBPc2FrYSBQcmVmZWN0dXJlLCBKYXBhbikgb2YgQmFuZGFpIE5hbWNvIEVudGVydGFpbm1lbnQgaGVhZHF1YXJ0ZXJlZCBhdCDFjHRhLCBUb2t5by4NCjE5OTcgKE1hciA2KTogW0dlb1BvbGl0aWNzXSBUaGUgSW5kaWFuIE9jZWFuIFJpbSBBc3NvY2lhdGlvbiwgZm9ybWVybHkga25vd24gYXMgdGhlIEluZGlhbiBPY2VhbiBSaW0gSW5pdGlhdGl2ZSBhbmQgdGhlIEluZGlhbiBPY2VhbiBSaW0gQXNzb2NpYXRpb24gZm9yIFJlZ2lvbmFsIENvb3BlcmF0aW9uLCBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBjb25zaXN0aW5nIG9mIDIzIHN0YXRlcyBib3JkZXJpbmcgdGhlIEluZGlhbiBPY2Vhbi4gVGhlIElPUkEgaXMgYSByZWdpb25hbCBmb3J1bSwgdHJpcGFydGl0ZSBpbiBuYXR1cmUsIGJyaW5naW5nIHRvZ2V0aGVyIHJlcHJlc2VudGF0aXZlcyBvZiBHb3Zlcm5tZW50LCBCdXNpbmVzcyBhbmQgQWNhZGVtaWEsIGZvciBwcm9tb3RpbmcgY28tb3BlcmF0aW9uIGFuZCBjbG9zZXIgaW50ZXJhY3Rpb24gYW1vbmcgdGhlbS4gSXQgaXMgYmFzZWQgb24gdGhlIHByaW5jaXBsZXMgb2YgT3BlbiBSZWdpb25hbGlzbSBmb3Igc3RyZW5ndGhlbmluZyBFY29ub21pYyBDb29wZXJhdGlvbiBwYXJ0aWN1bGFybHkgb24gVHJhZGUgRmFjaWxpdGF0aW9uIGFuZCBJbnZlc3RtZW50LCBQcm9tb3Rpb24gYXMgd2VsbCBhcyBTb2NpYWwgRGV2ZWxvcG1lbnQgb2YgdGhlIHJlZ2lvbi4gVGhlIENvb3JkaW5hdGluZyBTZWNyZXRhcmlhdCBvZiBJT1JBIGlzIGxvY2F0ZWQgYXQgRWJlbmUsIE1hdXJpdGl1cy4NCjE5OTcgKEFwciAyMSk6IEguRC4gRGV2ZSBHb3dkYSByZXNpZ25zLiBJbmRlciBLdW1hciBHdWpyYWwgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NyAoSnVuIDYpOiBbR2VvUG9saXRpY3NdIEJJTVNURUMgZm91bmRlZC4gVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBvZiBzZXZlbiBTb3V0aCBBc2lhbiBhbmQgU291dGhlYXN0IEFzaWFuIG5hdGlvbnMsIGhvdXNpbmcgMS43MyBiaWxsaW9uIHBlb3BsZSBhbmQgaGF2aW5nIGEgY29tYmluZWQgZ3Jvc3MgZG9tZXN0aWMgcHJvZHVjdCBvZiAkMy44IHRyaWxsaW9uLiBUaGUgQklNU1RFQyBtZW1iZXIgc3RhdGVzIOKAkyBCYW5nbGFkZXNoLCBCaHV0YW4sIEluZGlhLCBNeWFubWFyLCBOZXBhbCwgU3JpIExhbmthLCBhbmQgVGhhaWxhbmQg4oCTIGFyZSBhbW9uZyB0aGUgY291bnRyaWVzIGRlcGVuZGVudCBvbiB0aGUgQmF5IG9mIEJlbmdhbC4NCjE5OTcgKEp1biA4KTogRGVzcGl0ZSBhZ2dyZXNzaXZlIGNoZWxhdGlvbiB0aGVyYXB5LCBoZXIgY29uZGl0aW9uIHJhcGlkbHkgZGV0ZXJpb3JhdGVkLiBUaHJlZSB3ZWVrcyBhZnRlciB0aGUgZmlyc3QgbmV1cm9sb2dpY2FsIHN5bXB0b21zIGFwcGVhcmVkLCBXZXR0ZXJoYWhuIGxhcHNlZCBpbnRvIHdoYXQgYXBwZWFyZWQgdG8gYmUgYSB2ZWdldGF0aXZlIHN0YXRlIHB1bmN0dWF0ZWQgYnkgcGVyaW9kcyBvZiBleHRyZW1lIGFnaXRhdGlvbi4gT25lIG9mIGhlciBmb3JtZXIgc3R1ZGVudHMgc2FpZCB0aGF0ICJIZXIgaHVzYmFuZCBzYXcgdGVhcnMgcm9sbGluZyBkb3duIGhlciBmYWNlLiBJIGFza2VkIGlmIHNoZSB3YXMgaW4gcGFpbi4gVGhlIGRvY3RvcnMgc2FpZCBpdCBkaWRuJ3QgYXBwZWFyIHRoYXQgaGVyIGJyYWluIGNvdWxkIGV2ZW4gcmVnaXN0ZXIgcGFpbi4iIFdldHRlcmhhaG4gd2FzIHJlbW92ZWQgZnJvbSBsaWZlIHN1cHBvcnQgYW5kIHByb25vdW5jZWQgZGVhZCBvbiBKdW5lIDgsIDE5OTcsIHRlbiBtb250aHMgYWZ0ZXIgaGVyIGluaXRpYWwgZXhwb3N1cmUuIEluIHJlc3BvbnNlLCB0aGUgT2NjdXBhdGlvbmFsIFNhZmV0eSBhbmQgSGVhbHRoIEFkbWluaXN0cmF0aW9uIHJlY29tbWVuZGVkIHRoYXQgdGhlIHVzZSBvZiBkaW1ldGh5bG1lcmN1cnkgYmUgYXZvaWRlZCB1bmxlc3MgYWJzb2x1dGVseSBuZWNlc3NhcnkgYW5kIG1hbmRhdGVkIHRoZSB1c2Ugb2YgcGxhc3RpYy1sYW1pbmF0ZSBnbG92ZXMgKFNpbHZlclNoaWVsZCkgd2hlbiBoYW5kbGluZyB0aGlzIGNvbXBvdW5kLg0KMTk5NyAoSnVuIDEzKTpbSmFja10gQm9yZGVyDQoxOTk3IChKdW4gMjYpOltCb29rXSAzMllPIEouIEsuIFJvd2xpbmcgcHVibGlzaGVzIGhlciBmaXJzdCBIYXJyeSBQb3R0ZXIgYm9vaywgVGhlIFBoaWxvc29waGVyJ3MgU3RvbmU7IA0KVGhlIENoYW1iZXIgb2YgU2VjcmV0cyAoMiBKdWx5IDE5OTgpLA0KVGhlIFByaXNvbmVyIG9mIEF6a2FiYW4gKDggSnVseSAxOTk5KSwNClRoZSBHb2JsZXQgb2YgRmlyZSAoOCBKdWx5IDIwMDApLA0KVGhlIE9yZGVyIG9mIHRoZSBQaG9lbml4ICgsIDI3IEp1bmUgMjAwMyksDQpUaGUgSGFsZi1CbG9vZCBQcmluY2UgKDE2IEp1bHkgMjAwNSksDQpUaGUgRGVhdGhseSBIYWxsb3dzICgyMSBKdWx5IDIwMDcpDQoxOTk3IChBdWcgMjUpOltTcGFjZV0gQWR2YW5jZWQgQ29tcG9zaXRpb24gRXhwbG9yZXIgaXMgYSBOQVNBIEV4cGxvcmVyIHByb2dyYW0gc2F0ZWxsaXRlIGFuZCBzcGFjZSBleHBsb3JhdGlvbiBtaXNzaW9uIHRvIHN0dWR5IG1hdHRlciBjb21wcmlzaW5nIGVuZXJnZXRpYyBwYXJ0aWNsZXMgZnJvbSB0aGUgc29sYXIgd2luZCwgdGhlIGludGVycGxhbmV0YXJ5IG1lZGl1bSwgYW5kIG90aGVyIHNvdXJjZXMuDQoxOTk3IChTZXAgMTMpOiB0aGUgaW50cm9kdWN0b3J5IGVwaXNvZGUgb2YgU2hha3RpbWFuIHdhcyBhaXJlZCBvbiBEb29yZGFyc2hhbiAoSW5kaWEncyBuYXRpb25hbCB0ZWxldmlzaW9uIG5ldHdvcmspIGZyb20gMjcgU2VwdGVtYmVyIDE5OTcgdG8gMjcgTWFyY2ggMjAwNSwgb24gU3VuZGF5cyBhdCAxMiBub29uIElTVC4gVGhlIHRlbGVjYXN0IHNsb3QsIGhvd2V2ZXIgd2FzIHNoaWZ0ZWQgdG8gOTozMCBhLm0uIGZvciB0aGUgbGFzdCBlcGlzb2Rlcy4gDQoxOTk3IChTZXAgMjcgMTA6MjMgVVRDKTpbU3BhY2VdW01hcnNdIExhc3QgY29udGFjdCB3aXRoIE1hcnMgUGF0aGZpbmRlci4gTWlzc2lvbiBkdXJhdGlvbiAoTGF1bmNoIHRvIGxhc3QgY29udGFjdCk6IDkgbW9udGhzLCAyMyBkYXlzLg0KMTk5NyAoT2N0IDMxKTpbQm9va10gRG9uYWxkIFRydW1wJ3MgVHJ1bXA6IFRoZSBBcnQgb2YgdGhlIENvbWViYWNrOyBUaGUgQW1lcmljYSBXZSBEZXNlcnZlICgyMDAwKTsgVHJ1bXA6IFRoaW5rIExpa2UgYSBCaWxsaW9uYWlyZTogRXZlcnl0aGluZyBZb3UgTmVlZCB0byBLbm93IEFib3V0IFN1Y2Nlc3MsIFJlYWwgRXN0YXRlLCBhbmQgTGlmZSAoMjAwNCk7IFdoeSBXZSBXYW50IFlvdSB0byBCZSBSaWNoICgyMDA2KTsgVHJ1bXA6IFRoZSBCZXN0IFJlYWwgRXN0YXRlIEFkdmljZSBJIEV2ZXIgUmVjZWl2ZWQ6IDEwMCBUb3AgRXhwZXJ0cyBTaGFyZSBUaGVpciBTdHJhdGVnaWVzICgyMDA2LCBOb3YgMSk7IFRoaW5rIEJJRyBhbmQgS2ljayBBc3MgaW4gQnVzaW5lc3MgYW5kIExpZmUgKDIwMDcpOyBUcnVtcCBOZXZlciBHaXZlIFVwOiBIb3cgSSBUdXJuZWQgTXkgQmlnZ2VzdCBDaGFsbGVuZ2VzIGludG8gU3VjY2VzcyAoMjAwOCk7IFRpbWUgdG8gR2V0IFRvdWdoOiBNYWtpbmcgQW1lcmljYSAjMSBBZ2FpbiAoMjAxMSk7IENyaXBwbGVkIEFtZXJpY2E6IEhvdyB0byBNYWtlIEFtZXJpY2EgR3JlYXQgQWdhaW4gKDIwMTUpDQoxOTk3OiBBcnVuZGhhdGkgUm95IGJlY2FtZSB0aGUgZmlyc3QgSW5kaWFuIHRvIHdpbiBNYW4gQm9va2VyIFByaXplIGZvciBoZXIgbm92ZWwgJ1RoZSBHb2Qgb2YgU21hbGwgVGhpbmdzJy4NCjE5OTc6IElJVC1KRUUgd2FzIGNvbmR1Y3RlZCB0d2ljZSBhZnRlciB0aGUgUS1QYXBlciB3YXMgbGVha2VkLg0KMTk5NzogTkFTQSBlc3RpbWF0ZWQgdGhlcmUgd2VyZSBhcHByb3guIDIsNjQ1IGFydGlmaWNpYWwgc2F0ZWxsaXRlIHBheWxvYWRzIG9yYml0dGluZyB0aGUgZWFydGggYW5kIDYsMjE2IHBpZWNlcyBvZiBzcGFjZSBkZWJyaXMgYXMgdHJhY2tlZCBieSB0aGUgR1NGQy4gT3ZlciAxNiwyOTEgcHJldmlvdXNseSBsYXVuY2hlZCBvYmplY3RzIGhhdmUgZGVjYXllZCBpbnRvIHRoZSBFYXJ0aCdzIGF0bW9zcGhlcmUuDQoxOTk3OiBCSEMgRmluYW5jaWFsLCBJbmMuIG9mIFBlbm5zeWx2YW5pYSBtZXJnZWQgaW50byBGSVNWIHRvIGZvcm0gU2VjdXJlZCBUcmFuc2FjdGlvbiBQcm9jZXNzaW5nIFNlcnZpY2VzLg0KMTk5NzpbQm9va10gVGhlIEZvdXIgQWdyZWVtZW50czogQSBQcmFjdGljYWwgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSBpcyBhIHNlbGYtaGVscCBib29rIGJ5IGJlc3RzZWxsaW5nIGF1dGhvciBEb24gTWlndWVsIFJ1aXogd2l0aCBKYW5ldCBNaWxsczsgVGhlIE1hc3Rlcnkgb2YgTG92ZTogQSBQcmFjdGljYWwgR3VpZGUgdG8gdGhlIEFydCBvZiBSZWxhdGlvbnNoaXAgLS1Ub2x0ZWMgV2lzZG9tIEJvb2sgKDE5OTksIE1hciAzMCk7IFRoZSBWb2ljZSBvZiBLbm93bGVkZ2U6IEEgUHJhY3RpY2FsIEd1aWRlIHRvIElubmVyIFBlYWNlICgyMDA0LCBNYXIgMTApOyBUaGUgRmlmdGggQWdyZWVtZW50OiBBIFByYWN0aWNhbCBHdWlkZSB0byBTZWxmLU1hc3RlcnkgKDIwMDkpOyBUaGUgQ2lyY2xlIG9mIEZpcmU6IEluc3BpcmF0aW9uIGFuZCBHdWlkZWQgTWVkaXRhdGlvbnMgZm9yIExpdmluZyBpbiBMb3ZlIGFuZCBIYXBwaW5lc3MgKDIwMTMsIEF1ZyAxKTsgVGhlIE1hc3Rlcnkgb2YgU2VsZjogQSBUb2x0ZWMgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSAoMjAxNiwgTWF5IDYpDQoxOTk3OltCb29rXSBKb24gS3Jha2F1ZXIncyBJbnRvIFRoaW4gQWlyOiBBIFBlcnNvbmFsIEFjY291bnQgb2YgdGhlIE10LiBFdmVyZXN0IERpc2FzdGVyOyBVbmRlciB0aGUgQmFubmVyIG9mIEhlYXZlbiAoMjAwMyBKdWwpDQoxOTk3IChEZWMgMTEpOltFbnZdIFRoZSBLeW90byBQcm90b2NvbCB3YXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgd2hpY2ggZXh0ZW5kZWQgdGhlIDE5OTIgVW5pdGVkIE5hdGlvbnMgRnJhbWV3b3JrIENvbnZlbnRpb24gb24gQ2xpbWF0ZSBDaGFuZ2UgKFVORkNDQykgdGhhdCBjb21taXRzIHN0YXRlIHBhcnRpZXMgdG8gcmVkdWNlIGdyZWVuaG91c2UgZ2FzIGVtaXNzaW9ucywgYmFzZWQgb24gdGhlIHNjaWVudGlmaWMgY29uc2Vuc3VzIHRoYXQgKHBhcnQgb25lKSBnbG9iYWwgd2FybWluZyBpcyBvY2N1cnJpbmcgYW5kIChwYXJ0IHR3bykgdGhhdCBodW1hbi1tYWRlIENPMiBlbWlzc2lvbnMgYXJlIGRyaXZpbmcgaXQuDQoxOTk3OltJbmRpYV1bRWR1Y2F0aW9uXVtDdWx0dXJlXSBFa2xhdnlhIE1vZGVsIFJlc2lkZW50aWFsIFNjaG9vbCBpcyBhIEdvdmVybm1lbnQgb2YgSW5kaWEgc2NoZW1lIGZvciBtb2RlbCByZXNpZGVudGlhbCBzY2hvb2wgZm9yIEluZGlhbiB0cmliYWxzIGFjcm9zcyBJbmRpYS4gSXQgaXMgb25lIG9mIHRoZSBmbGFnc2hpcCBpbnRlcnZlbnRpb25zIG9mIHRoZSBNaW5pc3RyeSBvZiBUcmliYWwgQWZmYWlycywgR292ZXJubWVudCBvZiBJbmRpYSBhbmQgd2FzIGludHJvZHVjZWQgaW4gdGhlIHllYXIgMTk5Ny05OCB0byBlbnN1cmUgdHJpYmFsIHN0dWRlbnRzIGdldCBhY2Nlc3MgdG8gcXVhbGl0eSBlZHVjYXRpb24gaW4gdGhlIHJlbW90ZSB0cmliYWwgYXJlYXMuIEVNUlNzIGFyZSBzZXQgdXAgaW4gU3RhdGVzL1VUcyB3aXRoIGdyYW50cyB1bmRlciBBcnRpY2xlIDI3NSgxKSBvZiB0aGUgQ29uc3RpdHV0aW9uIG9mIEluZGlhLiBBcyBwZXIgdGhlIGJ1ZGdldCAyMDE4LTE5LCBldmVyeSBibG9jayB3aXRoIG1vcmUgdGhhbiA1MCUgU1QgcG9wdWxhdGlvbiBhbmQgYXQgbGVhc3QgMjAsMDAwIHRyaWJhbCBwZXJzb25zLCB3aWxsIGhhdmUgYW4gRWtsYXZ5YSBNb2RlbCBSZXNpZGVudGlhbCBTY2hvb2wgYnkgdGhlIHllYXIgMjAyMi4NCjE5OTc6W1NwYWNlXSBIaXBwYXJjb3MgKDE5ODkgLTE5OTMpLiBJdCB0b29rIDQtOCB5ZWFycyB0byBvcmdhbml6ZSBhbmQgcHVibGlzaCB0aGUgNCB5ZWFycyBzdHVkeSBieSB0aGlzIGV4cGVyaW1lbnQsIHdoaWNoIHBlcm1pdHRlZCB0aGUgZmlyc3QgaGlnaC1wcmVjaXNpb24gbWVhc3VyZW1lbnRzIG9mIHRoZSBpbnRyaW5zaWMgYnJpZ2h0bmVzc2VzIChjb21wYXJlZCB0byB0aGUgbGVzcyBwcmVjaXNlIGFwcGFyZW50IGJyaWdodG5lc3MpLCBwcm9wZXIgbW90aW9ucywgYW5kIHBhcmFsbGF4ZXMgb2Ygc3RhcnMsIGVuYWJsaW5nIGJldHRlciBjYWxjdWxhdGlvbnMgb2YgdGhlaXIgZGlzdGFuY2UgYW5kIHRhbmdlbnRpYWwgdmVsb2NpdHkuIFdoZW4gY29tYmluZWQgd2l0aCByYWRpYWwgdmVsb2NpdHkgbWVhc3VyZW1lbnRzIGZyb20gc3BlY3Ryb3Njb3B5LCBhc3Ryb3BoeXNpY2lzdHMgd2VyZSBhYmxlIHRvIGZpbmFsbHkgbWVhc3VyZSBhbGwgc2l4IHF1YW50aXRpZXMgbmVlZGVkIHRvIGRldGVybWluZSB0aGUgbW90aW9uIG9mIHN0YXJzLiBUaGUgcmVzdWx0aW5nIEhpcHBhcmNvcyBDYXRhbG9ndWUsIGEgaGlnaC1wcmVjaXNpb24gY2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiAxMTgsMjAwIHN0YXJzLCB3YXMgcHVibGlzaGVkIGluIDE5OTcuIFRoZSBsb3dlci1wcmVjaXNpb24gVHljaG8gQ2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiBhIG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBhdCB0aGUgc2FtZSB0aW1lLCB3aGlsZSB0aGUgZW5oYW5jZWQgVHljaG8tMiBDYXRhbG9ndWUgb2YgMi41IG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBpbiAyMDAwLiBIaXBwYXJjb3MnIGZvbGxvdy11cCBtaXNzaW9uLCBHYWlhLCB3YXMgbGF1bmNoZWQgaW4gMjAxMy4NCjE5OTc6W1NwYWNlXVtSZXNlYXJjaF0gU2luY2UgdGhlIDE5OTcgcHJvcG9zYWwgb2YgdGhlIEFkUy9DRlQgKEFudGktZGUgU2l0dGVyL0NvbmZvcm1hbCBGaWVsZCBUaGVvcnkpIGNvcnJlc3BvbmRlbmNlLCB0aGUgcHJlZG9taW5hbnQgYmVsaWVmIGFtb25nIHBoeXNpY2lzdHMgaXMgdGhhdCBpbmZvcm1hdGlvbiBpcyBpbmRlZWQgcHJlc2VydmVkIGluIGJsYWNrIGhvbGUgZXZhcG9yYXRpb24uIA0KMTk5NzpbU3BhY2VdW1Jlc2VhcmNoXSBBIHdpZGVseSBwdWJsaWNpemVkIGJldCBtYWRlIGluIDE5OTcgYmV0d2VlbiBKb2huIFByZXNraWxsIG9uIHRoZSBvbmUgaGFuZCB3aXRoIEhhd2tpbmcgYW5kIEtpcCBUaG9ybmUgb24gdGhlIG90aGVyIHRoYXQgaW5mb3JtYXRpb24gd2FzIG5vdCBsb3N0IGluIGJsYWNrIGhvbGVzLiBUaGUgc2NpZW50aWZpYyBkZWJhdGUgb24gdGhlIHBhcmFkb3ggd2FzIGRlc2NyaWJlZCBpbiBhIHBvcHVsYXIgYm9vayBwdWJsaXNoZWQgaW4gMjAwOCBieSBMZW9uYXJkIFN1c3NraW5kIGNhbGxlZCBUaGUgQmxhY2sgSG9sZSBXYXIuIChUaGUgYm9vayBjYXJlZnVsbHkgbm90ZXMgdGhhdCB0aGUgJ3dhcicgd2FzIHB1cmVseSBhIHNjaWVudGlmaWMgb25lLCBhbmQgdGhhdCBhdCBhIHBlcnNvbmFsIGxldmVsLCB0aGUgcGFydGljaXBhbnRzIHJlbWFpbmVkIGZyaWVuZHMuKSBUaGUgYm9vayBzdGF0ZXMgdGhhdCBIYXdraW5nIHdhcyBldmVudHVhbGx5IHBlcnN1YWRlZCB0aGF0IGJsYWNrLWhvbGUgZXZhcG9yYXRpb24gd2FzIHVuaXRhcnkgYnkgdGhlIGhvbG9ncmFwaGljIHByaW5jaXBsZSwgd2hpY2ggd2FzIGZpcnN0IHByb3Bvc2VkIGJ5ICd0IEhvb2Z0LCBmdXJ0aGVyIGRldmVsb3BlZCBieSBTdXNza2luZCBhbmQgbGF0ZXIgZ2l2ZW4gYSBwcmVjaXNlIHN0cmluZyB0aGVvcnkgaW50ZXJwcmV0YXRpb24gYnkgdGhlIEFkUy9DRlQgY29ycmVzcG9uZGVuY2UuIEluIDIwMDQsIEhhd2tpbmcgYWxzbyBjb25jZWRlZCB0aGUgMTk5NyBiZXQsIHBheWluZyBQcmVza2lsbCB3aXRoIGEgYmFzZWJhbGwgZW5jeWNsb3BlZGlhICJmcm9tIHdoaWNoIGluZm9ybWF0aW9uIGNhbiBiZSByZXRyaWV2ZWQgYXQgd2lsbCIgYWx0aG91Z2ggVGhvcm5lIHJlZnVzZWQgdG8gY29uY2VkZS4NCjE5OTc6W0VhcnRoXVtQaHlzaWNzXVtSZXNlYXJjaF0gdGhlcmUgd2VyZSB0d28gbGFyZ2UgZWFydGhxdWFrZXMgb2ZmIHRoZSBjb2FzdCBvZiBDaGlsZS4gVGhlIG1hZ25pdHVkZSBvZiB0aGUgZmlyc3QsIGluIEp1bHksIHdhcyBlc3RpbWF0ZWQgYXQgTXfigK82LjksIGJ1dCB3YXMgYmFyZWx5IGZlbHQsIGFuZCBvbmx5IGluIHRocmVlIHBsYWNlcy4gSW4gT2N0b2JlciBhIE134oCvNy4xIHF1YWtlIGluIG5lYXJseSB0aGUgc2FtZSBsb2NhdGlvbiwgYnV0IHR3aWNlIGFzIGRlZXAgYW5kIG9uIGEgZGlmZmVyZW50IGtpbmQgb2YgZmF1bHQsIHdhcyBmZWx0IG92ZXIgYSBicm9hZCBhcmVhLCBpbmp1cmVkIG92ZXIgMzAwIHBlb3BsZSwgYW5kIGRlc3Ryb3llZCBvciBzZXJpb3VzbHkgZGFtYWdlZCBvdmVyIDEwLDAwMCBob3VzZXMuIEFzIGNhbiBiZSBzZWVuIGluIHRoZSB0YWJsZSBiZWxvdywgdGhpcyBkaXNwYXJpdHkgb2YgZGFtYWdlIGRvbmUgaXMgbm90IHJlZmxlY3RlZCBpbiBlaXRoZXIgdGhlIG1vbWVudCBtYWduaXR1ZGUgKE134oCvKSBub3IgdGhlIHN1cmZhY2Utd2F2ZSBtYWduaXR1ZGUgKE1z4oCvKS4gT25seSB3aGVuIHRoZSBtYWduaXR1ZGUgaXMgbWVhc3VyZWQgb24gdGhlIGJhc2lzIG9mIHRoZSBib2R5LXdhdmUgKG1i4oCvKSBvciB0aGUgc2Vpc21pYyBlbmVyZ3kgKE1l4oCvKSBpcyB0aGVyZSBhIGRpZmZlcmVuY2UgY29tcGFyYWJsZSB0byB0aGUgZGlmZmVyZW5jZSBpbiBkYW1hZ2UuIChhcyByZXNlYXJjaGVkIGJ5IENob3ksIEJvYXR3cmlnaHQgJiBLaXJieSAyMDAxLCBwLiAxMy4pLiBNdyA2Ljkgd2FzIGFjdHVhbGx5IE1lIDYuMSwgYW4gaW50ZXJwbGF0ZS10aHJ1c3QgdHlwZSBvZiBmYXVsdCwgd2hpbGUgTXcgNy4xIHdhcyBhY3R1YWxseSBhIDcuNSBNZSBpbnRyYXNsYWItbm9ybWFsIHR5cGUgb2YgZmF1bHQuDQoxOTk3OltSZXNlYXJjaF0gRHVyaW5nIHN1cnZleXMgY2FycmllZCBvdXQgYmV0d2VlbiAxOTk3IGFuZCAyMDAxLCBhIHNwb3Qgd2FzIGZvdW5kIGFsb25nIHRoZSBNYXJpYW5hIFRyZW5jaCB0aGF0IGhhZCBhIGRlcHRoIHNpbWlsYXIgdG8gdGhlIENoYWxsZW5nZXIgRGVlcCwgcG9zc2libHkgZXZlbiBkZWVwZXIuIEl0IHdhcyBkaXNjb3ZlcmVkIHdoaWxlIHNjaWVudGlzdHMgZnJvbSB0aGUgSGF3YWlpIEluc3RpdHV0ZSBvZiBHZW9waHlzaWNzIGFuZCBQbGFuZXRvbG9neSB3ZXJlIGNvbXBsZXRpbmcgYSBzdXJ2ZXkgYXJvdW5kIEd1YW07IHRoZXkgdXNlZCBhIHNvbmFyIG1hcHBpbmcgc3lzdGVtIHRvd2VkIGJlaGluZCB0aGUgcmVzZWFyY2ggc2hpcCB0byBjb25kdWN0IHRoZSBzdXJ2ZXkuIFRoaXMgbmV3IHNwb3Qgd2FzIG5hbWVkIHRoZSBITVJHIChIYXdhaWkgTWFwcGluZyBSZXNlYXJjaCBHcm91cCkgRGVlcCwgYWZ0ZXIgdGhlIGdyb3VwIG9mIHNjaWVudGlzdHMgd2hvIGRpc2NvdmVyZWQgaXQuDQoxOTk3OltTcGFjZVhdIEEgcmVzb2x2ZWQgY2lyY3Vtc3RlbGxhciBkaXNrIHdhcyBmaXJzdCBpZGVudGlmaWVkIGluIDE5OTcgd2l0aCB0aGUgT3dlbnMgVmFsbGV5IFJhZGlvIE9ic2VydmF0b3J5LiBUaGUgc2VtaS1tYWpvciBheGlzIHdhcyBpbml0aWFsbHkgZXN0aW1hdGVkIHRvIGJlIDExMCBBVS4gSEQgMTYzMjk2IGFuZCBzdXJyb3VuZGluZ3MgQ3JlZGl0OiBFU08vRGlnaXRpemVkIFNreSBTdXJ2ZXkgMjsgQWNrbm93bGVkZ2VtZW50OiBEYXZpZGUgRGUgTWFydGluIE9ic2VydmF0aW9uIGRhdGEgRXBvY2ggSjIwMDAgICAgICBFcXVpbm94IEoyMDAwIENvbnN0ZWxsYXRpb24JU2FnaXR0YXJpdXMgUmlnaHQgYXNjZW5zaW9uCTE3aCA1Nm0gMjEuMjlzIERlY2xpbmF0aW9uCeKIkjIxwrAgNTfigLIgMjEuODfigLMgQXBwYXJlbnQgbWFnbml0dWRlIChWKQk2Ljg1OyBDaGFyYWN0ZXJpc3RpY3MgRXZvbHV0aW9uYXJ5IHN0YWdlCUhlcmJpZyBBZSBzdGFyIFNwZWN0cmFsIHR5cGUJQTNWYWVrQTFtQTE7IEFzdHJvbWV0cnkgUmFkaWFsIHZlbG9jaXR5IChSdikJLTQuMDAgwrEzLjNbM10ga20vcyBQcm9wZXIgbW90aW9uICjOvCkJUkE6IC03LjU4NiDCsTAuMDQxIG1hcy95cjsgRGVjLjogLTM5LjQ1OCDCsTAuMDI5IG1hcy95cls0XSBQYXJhbGxheCAoz4ApCTkuOTA0M8KxMC4wNDA4IG1hc1s0XSBEaXN0YW5jZQkzMjkgwrEgMSBseSAoMTAxLjAgwrEgMC40IHBjKSBEZXRhaWxzOyBNYXNzCTEuOTXCsTAuMDcgTeKYiSBSYWRpdXMJMS44N8KxMC4wNSBS4piJIEx1bWlub3NpdHkJMjAuNCszLjYg4oiSMy4wIEzimIkgU3VyZmFjZSBncmF2aXR5IChsb2cgZykJNC4xMMKxMC4xMCBjZ3MgVGVtcGVyYXR1cmUJOTAwMMKxMjUwIEsgQWdlCTYuMDMrMC4yOCDiiJIwLjI3IE15ciBPdGhlciBkZXNpZ25hdGlvbnMgQkQtMjEgNDc3OSwgQ1BELTIxIDY1MDgsIEVNKiBNV0MgMjc1LCBISVAgODc4MTksIElSQVMgMTc1MzMtMjE1NiwgMk1BU1MgSjE3NTYyMTI4LTIxNTcyMTgsIFBEUyA0NzMsIFRZQyA2MjYyLTIxMzEtMSwgRGF0YWJhc2UgcmVmZXJlbmNlcyBTSU1CQUQNCjE5OTc6W1NwYWNlWF0gMTAxOTkgQ2hhcmlrbG8gaXMgYSByaW5nZWQgYXN0ZXJvaWQgb3IgY2VudGF1ciBpbiB0aGUgb3V0ZXIgU29sYXIgU3lzdGVtLiBJdCBpcyB0aGUgbGFyZ2VzdCBrbm93biBjZW50YXVyLCB3aXRoIGEgZGlhbWV0ZXIgb2YgYWJvdXQgMjUwIGttLiBJdCBvcmJpdHMgdGhlIFN1biBiZXR3ZWVuIFNhdHVybiBhbmQgVXJhbnVzIHdpdGggYW4gb3JiaXRhbCBwZXJpb2Qgb2YgNjIuNSB5ZWFycy4gV2lraXBlZGlhIE9yYml0YWwgcGVyaW9kOiA2MyB5ZWFycyBSYWRpdXM6IDE1MSBrbSBEaXNjb3ZlcmVkOiAxNSBGZWJydWFyeSAxOTk3IERpbWVuc2lvbnM6ICgyODcuNisyLjg7IOKIkjMuMCkgw5cgKDI3MC40KzIuODsg4oiSNS42KSDDlyAoMTk4LjIrMTAuODsg4oiSNS40KSBrbTogMTEgRGlzY292ZXJlcjogSmFtZXMgVi4gU2NvdHRpIFNwZWN0cmFsIHR5cGU6IEQtdHlwZSBhc3Rlcm9pZCBBcGhlbGlvbjogMTguNDIwIEFVDQoxOTk3OltTcGFjZVhdIFRoZSBHcmVhdCBEYXlsaWdodCBGaXJlYmFsbCAtIFRoZSBhdG1vc3BoZXJpYyBwYXNzIG1vZGlmaWVkIHRoZSBvYmplY3QncyBtYXNzIGFuZCBvcmJpdCBhcm91bmQgdGhlIFN1bi4gQSAxOTk0IHN0dWR5IGZvdW5kIHRoYXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgaW4gYW4gRWFydGgtY3Jvc3Npbmcgb3JiaXQgYW5kIHByZWRpY3RlZCB0aGF0IGl0IHdvdWxkIHBhc3MgY2xvc2UgdG8gRWFydGggYWdhaW4gaW4gQXVndXN0IDE5OTcuIEhvd2V2ZXIsIHRoZSBvYmplY3QgaGFzIG5vdCBiZWVuIG9ic2VydmVkIGFnYWluIGFuZCBzbyBpdHMgcG9zdC1lbmNvdW50ZXIgb3JiaXQgcmVtYWlucyB1bmtub3duLg0KMTk5NzpOYWZpc2EgSm9zZXBoIHdhcyB0aGUgeW91bmdlc3QgTWlzcyBJbmRpYSB3aW5uZXIgYXQgYWdlIDE5LCB3aW5uaW5nIHRoZSB0aXRsZSBpbiAxOTk3LiBTaGUgbGF0ZXIgYmVjYW1lIGEgbW9kZWwgYW5kIHRlbGV2aXNpb24gcGVyc29uYWxpdHkuIFdoaWxlIG90aGVyIHdpbm5lcnMgbGlrZSBNZWVuYWtzaGkgU2VzaGFkcmkgd2VyZSBhbHNvIDE3IHdoZW4gdGhleSB3b24gaW4gMTk4MSwgSm9zZXBoIGlzIG9mdGVuIGNpdGVkIGZvciBoZXIgZWFybHkgd2luIGF0IDE5LCB3aGljaCB3YXMgdGhlbiBhIHlvdW5nZXIgYWdlIHRoYW4gaXMgdHlwaWNhbGx5IHNlZW4gaW4gdGhlIGNvbXBldGl0aW9uLiANCjE5OTc6W3NwYWNlXVt0ZWNoXSBUaGUgZmluYWwgQmxvY2sgSUlBIHdhcyBpbiBOb3YgMTk5Nywgd2hpbGUgQmxvY2sgSUlScyBiZWdhbiByZXBsYWNpbmcgdGhlbSBzaG9ydGx5IGFmdGVyLCBsYXN0aW5nIHVudGlsIDIwMDQuIEJsb2NrIElJUiAoUmVwbGVuaXNobWVudCkgbGF1bmNoZXMgZm9sbG93ZWQgZnJvbSAxOTk3IHRvIDIwMDQsIHdpdGggdGhlIGZpcnN0IGxhdW5jaCBpbiBKYW51YXJ5IDE5OTcuIA0KDQoxOTk4OltTcGFjZVhdIFRoZSBwcmltYXJ5IGNvbnN0cnVjdGlvbiBwaGFzZSBvZiB0aGUgSW50ZXJuYXRpb25hbCBTcGFjZSBTdGF0aW9uIChJU1MpIHRvb2sgYXBwcm94aW1hdGVseSAxMyB5ZWFycywgZnJvbSAxOTk4IHRvIDIwMTEsIHdpdGggdGhlIGZpcnN0IG1vZHVsZSBsYXVuY2hpbmcgaW4gTm92ZW1iZXIgMTk5OCBhbmQgSVNTIEFzc2VtYmx5IENvbXBsZXRlIGRlY2xhcmVkIGluIE1heSAyMDExLiBIb3dldmVyLCBhc3NlbWJseSB3YXMgYSBjb250aW51b3VzLCBtdWx0aS1zdGFnZSBwcm9jZXNzIGludm9sdmluZyBtb3JlIHRoYW4gMzAgbWlzc2lvbnMsIG51bWVyb3VzIHNwYWNld2Fsa3MsIGFuZCByb2JvdGljIGFzc2lzdGFuY2UgdG8gYnVpbGQgdGhlIHN0YXRpb24gcGllY2UgYnkgcGllY2UgaW4gb3JiaXQuIEV2ZW4gYWZ0ZXIgMjAxMSwgdGhlIElTUyBjb250aW51ZWQgdG8gZXZvbHZlIHdpdGggb25nb2luZyBhZGRpdGlvbnMgYW5kIHVwZ3JhZGVzLg0KMTk5ODpbUmVzZWFyY2hdW1NwYWNlXSBTcHJpbmcsIDE5OTg6IGEgbWljcm9mb3NzaWwgdGhhdCB3YXMgZm91bmQgaW4gYSBtZXRlb3JpdGUgYW5kIHBob3RvZ3JhcGhlZCBpbiAxOTY2LCB3YXMgcmVjb2duaXplZCBieSBhIFJ1c3NpYW4gbWljcm9iaW9sb2dpc3QgYXMgYSBtYWduZXRvdGFjdGljIGJhY3Rlcml1bS4gQnkgRmFsbCwgMTk5ODogTkFTQSdzIHB1YmxpYyBwb3NpdGlvbiBvbiBsaWZlLWZyb20tc3BhY2Ugc2hpZnRlZCBkcmFtYXRpY2FsbHkuDQoxOTk4OiBBcyBhIHJlc2VhcmNoIHByb2plY3QgYXQgU3RhbmZvcmQgVW5pdmVyc2l0eSwgU2VyZ2V5IEJyaW4gYW5kIExhcnJ5IFBhZ2UgY3JlYXRlZCBhIHNlYXJjaCBlbmdpbmUgdGhhdCBsaXN0ZWQgcmVzdWx0cyBhY2NvcmRpbmcgdG8gdGhlIHBvcHVsYXJpdHkgb2YgdGhlIHBhZ2VzLCBhZnRlciBjb25jbHVkaW5nIHRoYXQgdGhlIG1vc3QgcG9wdWxhciByZXN1bHQgd291bGQgb2Z0ZW4gYmUgdGhlIG1vc3QgdXNlZnVsLiBBZnRlciByYWlzaW5nICQxIG1pbGxpb24gZnJvbSBmYW1pbHksIGZyaWVuZHMgYW5kIG90aGVyIGludmVzdG9ycywgdGhlIHBhaXIgbGF1bmNoZWQgdGhlIGNvbXBhbnkgaW4gMTk5OC4gR29vZ2xlIGhhcyBzaW5jZSBiZWNvbWUgdGhlIHdvcmxk4oCZcyBtb3N0IHBvcHVsYXIgc2VhcmNoIGVuZ2luZSwgcmVjZWl2aW5nIG1vcmUgdGhhbiAyMDAgbWlsbGlvbiBxdWVyaWVzIGVhY2ggZGF5Lg0KMTk5OCAoTm92IDIwKTogDQoxOTk4IChBcHIgMjcpOiBSUkIgZm91bmRlZCBhcyBSYWlsd2F5IFJlY3J1aXRtZW50IENvbnRyb2wgQm9hcmQgaXMgYSBnb3Zlcm5tZW50IG9yZ2FuaXNhdGlvbiBpbiBJbmRpYS4gSXQgd2FzIHNldCB1cCBpbiAxOTk4IGluIHRoZSBNaW5pc3RyeSBvZiBSYWlsd2F5cyAoUmFpbHdheSBCb2FyZCksIE5ldyBEZWxoaS5JbiAxOTQ1LCB0aGUgU2VydmljZXMgQ29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgYXQgQm9tYmF5LCBDYWxjdXR0YSwgTWFkcmFzIGFuZCBMdWNrbm93LiBJbiAxOTgzLCB0byBjYXRlciB0byB0aGUgbmVlZHMgb2YgYXJlYXMgd2hpY2ggd2VyZSBiZWluZyBuZWdsZWN0ZWQgZHVlIHRvIGxvY2F0aW9ucyBvZiB0aGUgZXhpc3RpbmcgY29tbWlzc2lvbnMsIHNldmVuIG1vcmUgY29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgdml6LCBhdCBBaG1lZGFiYWQsIEFqbWVyLCBCaG9wYWwsIEJodXZuZXNod2FyLCBDaGFuZGlnYXJoLCBKYW1tdSBhbmQgU3JpbmFnYXIgd2l0aCBzaXR0aW5nIGF0IExlaCBhbmQgVHJpdmVuZHJ1bS4gSW4gMTk4NCB0d28gbW9yZSBzZXJ2aWNlIGNvbW1pc3Npb25zIHdlcmUgc2V0IHVwIGF0IE1hbGRhIGFuZCBHb3Jha2hwdXIuDQoxOTk4IChNYXkgMTkpOiBBdGFsIEJpaGFyaSBWYWpwYXllZSBiZWNvbWVzIFBNIG9mIEluZGlhIGZvciB0aGUgc2Vjb25kIHRpbWUsIG5vdyBmb3IgNiB5ZWFycyB0aWxsIE1heSAyMiwgMjAwNC4gDQoxOTk4IChNYXkgMjggMTU6MTVQU1QpOiBDaGFnYWktSSBpcyB0aGUgY29kZSBuYW1lIG9mIGZpdmUgc2ltdWx0YW5lb3VzIHVuZGVyZ3JvdW5kIG51Y2xlYXIgdGVzdHMgY29uZHVjdGVkIGJ5IFBha2lzdGFuLiBUaGUgdGVzdHMgd2VyZSBwZXJmb3JtZWQgYXQgUmFzIEtvaCBIaWxscyBpbiB0aGUgQ2hhZ2FpIERpc3RyaWN0IG9mIEJhbG9jaGlzdGFuIFByb3ZpbmNlLiBDaGFnYWktSSB3YXMgUGFraXN0YW4ncyBmaXJzdCBwdWJsaWMgdGVzdCBvZiBudWNsZWFyIHdlYXBvbnMuIFBha2lzdGFuJ3MgZmlzc2lsZSBtYXRlcmlhbCBwcm9kdWN0aW9uIHRha2VzIHBsYWNlIGF0IE5pbG9yZSwgS2FodXRhLCBhbmQgS2h1c2hhYiBOdWNsZWFyIENvbXBsZXgsIHdoZXJlIHdlYXBvbnMtZ3JhZGUgcGx1dG9uaXVtIGlzIHJlZmluZWQuDQoxOTk4OiBBZnRlciBjb21wbGV0aW5nIGhpcyBYIHN0YW5kYXJkIGV4YW1pbmF0aW9ucywgUmFuYmlyIEthcG9vciwgYWdlZCAxNiwgd29ya2VkIGFzIGFuIGFzc2lzdGFudCBkaXJlY3RvciB0byBoaXMgZmF0aGVyIG9uIHRoZSBmaWxtIEFhIEFiIExhdXQgQ2hhbGVuICgxOTk5KSwgZHVyaW5nIHdoaWNoIGhlIGRldmVsb3BlZCBhIGNsb3NlciBib25kIHdpdGggaGltLg0KMTk4ODogTmV0d29ya2VkIERhdGEgUHJvY2Vzc2luZyBDb3IsIElvd2EgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBJbnN1cmFuY2UgZGl2aXNpb24uDQoxOTk4OltCb29rXSBSb2JlcnQgR3JlZW5lJ3MgVGhlIDQ4IExhd3Mgb2YgUG93ZXI7IFRoZSAzMyBTdHJhdGVnaWVzIG9mIFdhciAoMjAwNik7IE1hc3RlcnkgKDIwMTIsIE5vdiAxMyk7IFRoZSBMYXdzIG9mIEh1bWFuIE5hdHVyZSAoMjAxOCwgT2N0IDE2KQ0KMTk5ODpbU3BhY2VdW1Jlc2VhcmNoXVtFeHRyZW1lXSBUaGVuIGNhbWUgMTk5OCBhbmQgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgKEhTVCkgb2JzZXJ2YXRpb25zIG9mIHZlcnkgZGlzdGFudCBzdXBlcm5vdmFlIHRoYXQgc2hvd2VkIHRoYXQsIGEgbG9uZyB0aW1lIGFnbywgdGhlIHVuaXZlcnNlIHdhcyBhY3R1YWxseSBleHBhbmRpbmcgbW9yZSBzbG93bHkgdGhhbiBpdCBpcyB0b2RheS4gU28gdGhlIGV4cGFuc2lvbiBvZiB0aGUgdW5pdmVyc2UgaGFzIG5vdCBiZWVuIHNsb3dpbmcgZHVlIHRvIGdyYXZpdHksIGFzIGV2ZXJ5b25lIHRob3VnaHQsIGl0IGhhcyBiZWVuIGFjY2VsZXJhdGluZy4NCjE5OTg6W0NyaW1lXVtJbmRpYV0gQW5lZXMgYXJyZXN0ZWQgaW4gVUFFIG9uIGNoYXJnZXMgb2YgaGF2aW5nIG11cmRlcmVkIGEgZm9ybWVyIGFzc29jaWF0ZSBhbmQgdGhlbiByaXZhbCwgSXJmYW4gR29nYSwgaW4gRHViYWksIGJ1dCB3YXMgZnJlZWQgYWZ0ZXIgdHdvIGRheXMgZm9yICdsYWNrIG9mIGV2aWRlbmNlJy4NCjE5OTg6W0NvbXB1dGluZ11bUXVhbnR1bV0gUmVzZWFyY2hlcnMgYXQgSUJNLCBPeGZvcmQsIEJlcmtlbGV5LCBTdGFuZm9yZCwgYW5kIE1JVCBwcm9kdWNlZCBhIDItcXViaXQgY29tcHV0aW5nIHN5c3RlbS4NCjE5OTg6W3d3d10gV2lyZXNoYXJrIGlzIGEgZnJlZSBhbmQgb3Blbi1zb3VyY2UgcGFja2V0IGFuYWx5emVyLiBJdCBpcyB1c2VkIGZvciBuZXR3b3JrIHRyb3VibGVzaG9vdGluZywgYW5hbHlzaXMsIHNvZnR3YXJlIGFuZCBjb21tdW5pY2F0aW9ucyBwcm90b2NvbCBkZXZlbG9wbWVudCwgYW5kIGVkdWNhdGlvbi4gT3JpZ2luYWxseSBuYW1lZCBFdGhlcmVhbCwgdGhlIHByb2plY3Qgd2FzIHJlbmFtZWQgV2lyZXNoYXJrIGluIE1heSAyMDA2IGR1ZSB0byB0cmFkZW1hcmsgaXNzdWVzLg0KMTk5ODpbVVNdW0Vjb25vbXldRGF2aWQgUm9ja2VmZWxsZXIgU3IuIHdhcyBhd2FyZGVkIHRoZSBQcmVzaWRlbnRpYWwgTWVkYWwgb2YgRnJlZWRvbSBieSBQcmVzaWRlbnQgQmlsbCBDbGludG9uIGZvciBoaXMgd29yayBvbiBJbnRlcm5hdGlvbmFsIEV4ZWN1dGl2ZSBTZXJ2aWNlIENvcnBzLg0KMTk5ODpbRGVmXVtBdmlhdGlvbl0gVGhlIExvY2toZWVkIFNSLTcxIEJsYWNrYmlyZCBmbGV3IHNvIGhpZ2ggYW5kIHNvIGZhc3QgdGhhdCB0aGUgY3JldyBuZWVkZWQgcHJlc3N1cml6ZWQgc3BhY2Ugc3VpdHMgd2hlbiBmbHlpbmcgaXQuIEFuZCBpdCBpcyBzYWlkIHRoYXQgYXQgdGhlIG1heGltdW0gYWx0aXR1ZGUgb2YgaXQgaXQgd2FzIHBvc3NpYmxlIHRvIHNlZSB0aGUgY3VydmF0dXJlIG9mIHRoZSBlYXJ0aCwgd2hpY2ggcmVmZXJzIHRvIHRoaXMgcXVvdGUgYnkgQ29sb25lbCBBbGlzb246IOKAnE9uIGEgY2xlYXIgZGF5IHlvdSBjYW4gc2VlIGZvcmV2ZXLigKbigJ0uIFRoZSBzZXJ2aWNlIGNlaWxpbmcgb2YgODUsMDAwIGZlZXQgKDI1LDkwMG0pIG1lYW50IHRoYXQgaXQgd2FzIGFuIGV4Y2VsbGVudCBleHBlcmltZW50YWwgdW5pdCBmb3Igc3BhY2UgdHJhdmVscy4gVGhhdCwgY29tYmluZWQgd2l0aCB0aGUgZ3JlYXQgc3BlZWRzIG9mIGl0IHdhcyB0d28gb2YgdGhlIHJlYXNvbnMgd2h5IE5BU0EgZGVjaWRlZCB0byB0YWtlIG92ZXIgdGhlIGxhc3QgdHdvIEJsYWNrYmlyZHMgYWZ0ZXIgaXRzIHJldGlyZW1lbnQgZnJvbSB0aGUgQWlyIEZvcmNlIGluIDE5OTguIFRoaXMgbWVhbnMgdGhhdCB0aGUgd29ybGTigJlzIGZhc3Rlc3QgYWlyY3JhZnQgd2FzIGluIHNlcnZpY2UgZnJvbSAxOTY2IHVudGlsIE5BU0EgcmV0aXJlZCBpdHMgdHdvIHVuaXRzIGluIDE5OTksIGFuZCBtb3N0IG9mIHRoZSByZW1haW5pbmcgQmxhY2tiaXJkcyBhcmUgdG9kYXkgc3RhdGlvbmVkIGF0IG11c2V1bXMgb3IgbWlsaXRhcnkgYmFzZXMgYWNyb3NzIHRoZSBVUy4NCjE5OTg6SW4gMTk5OCwgR2F1dGFtIEFkYW5pLCBhbG9uZyB3aXRoIGhpcyBhc3NvY2lhdGUgU2hhbnRpbGFsIFBhdGVsLCB3YXMga2lkbmFwcGVkIGZvciByYW5zb20gaW4gQWhtZWRhYmFkLCBJbmRpYS4gVGhleSB3ZXJlIGFiZHVjdGVkIGF0IGd1bnBvaW50IGFmdGVyIGxlYXZpbmcgdGhlIEthcm5hdmF0aSBDbHViIGluIGEgY2FyLiBUaGUga2lkbmFwcGVycywgYWxsZWdlZGx5IGdhbmdzdGVycyBGYXpsdSBSZWhtYW4gYW5kIEJob2dpbGFsIERhcmppLCByZXBvcnRlZGx5IGRlbWFuZGVkIGEgcmFuc29tIG9mICQxLjUtMiBtaWxsaW9uLiBCb3RoIEFkYW5pIGFuZCBQYXRlbCB3ZXJlIHJlbGVhc2VkIGEgZGF5IGxhdGVyLCBidXQgaXQncyB1bmNsZWFyIGlmIHRoZSByYW5zb20gd2FzIHBhaWQuIA0KVGhlIGtpZG5hcHBpbmcgaW5jaWRlbnQgaGFwcGVuZWQgaW4gdGhlIG1pZC0xOTkwcywgYXJvdW5kIHRoZSB0aW1lIEFkYW5pJ3MgYnVzaW5lc3Mgc3VjY2Vzc2VzIHN0YXJ0ZWQgYXR0cmFjdGluZyB1bndhbnRlZCBhdHRlbnRpb24uIFRoZSBraWRuYXBwaW5nIHdhcyBhbGxlZ2VkbHkgY2FycmllZCBvdXQgYnkgRmF6bHUgUmVobWFuIGFuZCBCaG9naWxhbCBEYXJqaSwgYWxzbyBrbm93biBhcyAiTWFtYSIuIFRoZXkgd2VyZSBsYXRlciBhY3F1aXR0ZWQgZHVlIHRvIGxhY2sgb2YgZXZpZGVuY2UuIA0KVGhlIGFiZHVjdGlvbiBpcyBqdXN0IG9uZSBvZiB0aGUgY2hhbGxlbmdlcyBBZGFuaSBoYXMgZmFjZWQuIEhlIHdhcyBhbHNvIGNhdWdodCBpbiB0aGUgMjYvMTEgTXVtYmFpIHRlcnJvciBhdHRhY2tzIGF0IHRoZSBUYWogSG90ZWwuIE1vcmUgcmVjZW50bHksIGhlIGhhcyBmYWNlZCBhY2N1c2F0aW9ucyBvZiBicmliZXJ5IGFuZCBzZWN1cml0aWVzIGZyYXVkLiANCkFkYW5pIGFuZCBvdGhlcnMgd2VyZSBlc2NvcnRlZCBieSBzdGFmZiB0byB0aGUga2l0Y2hlbiBhbmQgdGhlbiB0aGUgYmFzZW1lbnQuIFRoZXkgc3BlbnQgdGhlIGVudGlyZSBuaWdodCBpbiBhIGhhbGwgd2FpdGluZyBmb3IgcmVzY3VlLiBBZGFuaSBsYXRlciB0b2xkIG5ld3MgY2hhbm5lbHMgdGhhdCBoZSBzYXcg4oCcZGVhdGggYXQgYSBkaXN0YW5jZSBvZiBqdXN0IDE1IGZlZXQu4oCdIEhlIHdhcyByZXNjdWVkIHRoZSBuZXh0IG1vcm5pbmcgYnkgc2VjdXJpdHkgZm9yY2VzLg0KMTk5ODpbRW52XVtEaXNhc3Rlcl0gRWFzdGVybiBJbmRpYSwgMTk5OCBCYW5nbGFkZXNoIGZsb29kOyA0ayBkZWF0aHMNCjE5OTg6W1dob11bUmVzZWFyY2hdW0NvbXB1dGluZ11bVGVjaF1bQ3VsdHVyZV0gSW50ZXJuZXQgRG93bmxvYWQgTWFuYWdlciAoSURNKSB3YXMgZGV2ZWxvcGVkIGJ5IFRvbmVjIEluYy4sIGFuIEFtZXJpY2FuIGNvbXBhbnkgdGhhdCBzdGFydGVkIHRoZSBwcm9qZWN0IGluIDE5OTggYW5kIHJlbGVhc2VkIHRoZSBzb2Z0d2FyZSBpbiAyMDAxLiBUb25lYyBJbmMuIGZvY3VzZXMgb24gbmV0d29yayBwcm9ncmFtbWluZyBhbmQgY3JlYXRlZCBJRE0gdG8gc3BlZWQgdXAgZG93bmxvYWRzIGJ5IHVzaW5nIGR5bmFtaWMgZmlsZSBzZWdtZW50YXRpb24sIGFjY2VsZXJhdGluZyBzcGVlZHMgYnkgdXAgdG8gOCB0aW1lcy4gDQoNCjE5OTk6NCBKYW51YXJ5IDE5OTk6IE5BU0Egb2ZmaWNpYWxseSByZWNvZ25pemVkIHRoZSBwb3NzaWJpbGl0eSB0aGF0IGxpZmUgb24gRWFydGggY29tZXMgZnJvbSBzcGFjZS4NCjE5IE1hcmNoIDE5OTk6IE5BU0Egc2NpZW50aXN0cyBhbm5vdW5jZWQgdGhhdCB0d28gbW9yZSBtZXRlb3JpdGVzIGhvbGQgZXZlbiBzdHJvbmdlciBmb3NzaWxpemVkIGV2aWRlbmNlIGZvciBwYXN0IGxpZmUgb24gTWFycy4NCjE5OTk6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEcyMCBvciBHcm91cCBvZiAyMCBpcyBhbiBpbnRlcmdvdmVybm1lbnRhbCBmb3J1bSBjb21wcmlzaW5nIDE5IHNvdmVyZWlnbiBjb3VudHJpZXMsIHRoZSBFdXJvcGVhbiBVbmlvbiwgYW5kIHRoZSBBZnJpY2FuIFVuaW9uLiBGb3VuZGVkOiAyNiBTZXB0ZW1iZXIgMTk5OTsgQ2hhaXJtYW4gKEluY3VtYmVudCk6IEN5cmlsIFJhbWFwaG9zYSwgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYQ0KMTk5OTogVGhlIHRlcm0gV2ktRmkgd2FzIGludmVudGVkIGJ5IEludGVyYnJhbmQgKGFuIGFtZXJpY2FuIGJyYW5kIGNvbnN1bHRhbmN5IGNvbXBhbnkpIGFzIGEgcHVuIHVwb24gdGhlIHdvcmQgaGktZmkuDQpXaS1GaSBBbGxpYW5jZSBmb3JtZWQgYXMgYSB0cmFkZSBhc3NvY2lhdGlvbiB0byBob2xkIHRoZSBXaS1GaSB0cmFkZW1hcmsgdW5kZXIgd2hpY2ggbW9zdCBwcm9kdWN0cyBhcmUgc29sZC4NCjE5OTk6IHRoZSB0ZXJtDQoxOTk5OiBJc2xhbWljIFN0YXRlIG9mIElyYXEgYW5kIHRoZSBMZXZhbnQgKGFsc28ga25vd24gYXMgdGhlIElzbGFtaWMgU3RhdGUgb2YgSXJhcSBhbmQgU3lyaWEsIElzbGFtaWMgU3RhdGUsIG9yIGNvbW1vbmx5LCBJU0lTKSBmb3VuZGVkIGFzIEphbWEnYXQgYWwtVGF3aGlkIHdhbC1KaWhhZCBieSBBYnUgTXVzYWIgYWwtWmFycWF3aSBIUSdkIGF0ICBBbC1SYXFxYWguDQoxOTk5IChBcHIgMTIpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBJIFdhbnQgSXQgVGhhdCBXYXkuDQoxOTk5IChBcHIgMTgpOiBDT05DRVJUIGJlY2FtZSBvcGVyYXRpb25hbC4gSXQgd2FzIGRldmVsb3BlZCB1c2luZyBjbGllbnQtc2VydmVyIG1vZGVsIGZvciBkaXN0cmlidXRlZCBjb21wdXRpbmcgaXMgYSB0b3RhbCBzb2x1dGlvbiB0byB0aGUgbmV0d29ya2luZyBvZiB0aGUgUFJTcy4gQWxsIHRoZSBmaXZlIHNpdGVzIGhhdmUgYmVlbiBpbnRlcm5ldC13b3JrZWQgb3ZlciBhIDY0IGticHMgbGluZSB1c2luZyByb3V0ZXJzLCBvbiBsZWFzZWQgY29tbXVuaWNhdGlvbiBsaW5lIGNvbm5lY3Rpb25zIGZyb20gRGVwYXJ0bWVudCBvZiBUZWxlY29tIChET1QpLg0KMTk5OTogQ3JlZGl0IGNhcmRzIGFjY2VwdGVkIGZvciBib29raW5nIHRpY2tldHMgYW5kIHJlc2VydmF0aW9ucyBpbiBzb21lIHN0YXRpb25zIChpbmNsdWRpbmcgTXVtYmFpIENTVCkuDQoxOTk5IChNYXkgMSk6W0Jvb2tdIFJvYmVydCBLaXlvc2FraSAmIFNoYXJvbiBMZWNodGVyJ3MgUmljaCBEYWQncyBDYXNoZmxvdyBRdWFkcmFudDogUmljaCBEYWQncyBHdWlkZSB0byBGaW5hbmNpYWwgRnJlZWRvbTsgUmljaCBEYWQncyBHdWlkZSB0byBJbnZlc3Rpbmc6IFdoYXQgdGhlIFJpY2ggSW52ZXN0IGluIFRoYXQgdGhlIFBvb3IgYW5kIE1pZGRsZSBDbGFzcyBEbyBOb3QhICgyMDAxLCBKYW4gMSk7IFRoZSBSZWFsIEJvb2sgb2YgUmVhbCBFc3RhdGU6IFJlYWwgRXhwZXJ0cy4gUmVhbCBTdG9yaWVzLiBSZWFsIExpZmUuICgyMDA5LCBNYXkgMTIpOyBSaWNoIEtpZCBTbWFydCBLaWQ6IEdpdmluZyBZb3VyIENoaWxkIGEgRmluYW5jaWFsIEhlYWQgU3RhcnQgKDIwMDEsIEphbiAxKTsgDQoxOTk5IChNYXkgMTgpOltNdXNpY10gTWlsbGVubml1bSBpcyB0aGUgdGhpcmQgc3R1ZGlvIGFsYnVtIChzZWNvbmQgaW4gdGhlIFVuaXRlZCBTdGF0ZXMpIGJ5IEFtZXJpY2FuIGJveSBiYW5kIEJhY2tzdHJlZXQgQm95cywgcmVsZWFzZWQgYnkgSml2ZSBSZWNvcmRzLg0KMTk5OSAoRnJpLCAyNCBEZWMpOiBJbmRpYW4gQWlybGluZXMgRmxpZ2h0IDgxNCBjb21tb25seSBrbm93biBhcyBJQyA4MTQgd2FzIGFuIEluZGlhbiBBaXJsaW5lcyBBaXJidXMgQTMwMCBlbiByb3V0ZSBmcm9tIFRyaWJodXZhbiBJbnRlcm5hdGlvbmFsIEFpcnBvcnQgaW4gS2F0aG1hbmR1LCBOZXBhbCB0byBJbmRpcmEgR2FuZGhpIEludGVybmF0aW9uYWwgQWlycG9ydCBpbiBEZWxoaSwgSW5kaWEgd2FzIGhpamFja2VkLiBIYXJrYXQtdWwtTXVqYWhpZGVlbiB3YXMgYWNjdXNlZCBvZiB0aGUgaGlqYWNraW5nLg0KMTk5OTogSVJDVEMNCjE5OTkgKEF1Zyk6IEJvb2tNeVNob3cNCjE5OTkgKFNlcCAxNCk6IFtHZW9Qb2xpdGljc10gVGhlIENvbmZlcmVuY2Ugb24gSW50ZXJhY3Rpb24gYW5kIENvbmZpZGVuY2UtQnVpbGRpbmcgTWVhc3VyZXMgaW4gQXNpYSAoQ0lDQSkgaXMgYW4gaW50ZXItZ292ZXJubWVudGFsIGZvcnVtIGZvciBlbmhhbmNpbmcgY29vcGVyYXRpb24gdG93YXJkcyBwcm9tb3RpbmcgcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYS4gSXQgaXMgYSBmb3J1bSBiYXNlZCBvbiB0aGUgcmVjb2duaXRpb24gdGhhdCB0aGVyZSBpcyBjbG9zZSBsaW5rIGJldHdlZW4gcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYSBhbmQgaW4gdGhlIHJlc3Qgb2YgdGhlIHdvcmxkLiBUaGUga2V5IGlkZWEgb2YgdGhlIENvbmZlcmVuY2UgaXMgYmFzZWQgb24gdGhlIHByaW9yaXR5IG9mIHRoZSBpbmRpdmlzaWJpbGl0eSBvZiBzZWN1cml0eSwgam9pbnQgaW5pdGlhdGl2ZSBhbmQgbXV0dWFsbHkgYmVuZWZpY2lhbCBpbnRlcmFjdGlvbiBvZiBzbWFsbCBhbmQgbGFyZ2Ugc3RhdGVzLg0KMTk5OTogTm9ibGUgRWR1Y2F0aW9uIFNvY2lldHkncyBOb2JsZSBQdWJsaWMgU2Nob29sIChOUFMpLCBHYWpyYXVsYSBmb3VuZGVkIHdpdGggMjEzMDYyNyBhcyBpdHMgQ0JTRSBBZmZpbGlhdGlvbiBuby4NCjE5OTk6IGZpcnN0IC53bWEgZmlsZSBjcmVhdGVkDQoxOTk5OiBOYXBzdGVyIGZvdW5kZWQuDQoxOTk5IChEZWMgMTQpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBTaG93IE1lIHRoZSBNZWFuaW5nIG9mIEJlaW5nIExvbmVseS4gDQoxOTk5OltNdXNpY10gRHIuIERyZSBmdC4gU25vb3AgRG9nZydzIFN0aWxsIEQuUi5FLg0KMTk5OTpbQ3VsdHVyZV0gVGhlIENpdHRhc2xvdyBvcmdhbml6YXRpb24gd2FzIGNyZWF0ZWQgYnkgUGFvbG8gU2F0dXJuaW5pLCB0aGUgZm9ybWVyIG1heW9yIG9mIEdyZXZlIGluIENoaWFudGksIEl0YWx5LiBTYXR1cm5pbmkgd2FzIGluc3BpcmVkIGJ5IENhcmxvIFBldHJpbmkgYW5kIGhpcyBTbG93IEZvb2QgbW92ZW1lbnQsIHN0YXJ0ZWQgaW4gdGhlIDE5ODBzIHRvIHByb3Rlc3QgdGhlIGZpcnN0IE1jRG9uYWxkJ3MgY2hhaW4gaW4gUm9tZS4gU2luY2UgdGhlbiwgdGhlIENpdHRhc2xvdyBtb3ZlbWVudCBoYXMgZ3Jvd24gYWNyb3NzIGZvdXIgY29udGluZW50cywgd2l0aCAyNjIgcGFydGljaXBhdGluZyB0b3ducyBhcyBvZiAyMDIwLiANCjE5OTk6W01hbmFnZW1lbnRdW0J1c2luZXNzXVtQc3ljaG9sb2d5XVtSZXNlYXJjaF0gRHVubmluZyBhbmQgS3J1Z2VyIEVmZmVjdDogRGF2aWQgRHVubmluZyBhbmQgSnVzdGluIEtydWdlciBwdWJsaXNoZWQgdGhlIGluaXRpYWwgc3R1ZHkgaW4gMTk5OSB1bmRlciB0aGUgdGl0bGUgIlVuc2tpbGxlZCBhbmQgVW5hd2FyZSBvZiBJdDogSG93IERpZmZpY3VsdGllcyBpbiBSZWNvZ25pemluZyBPbmUncyBPd24gSW5jb21wZXRlbmNlIExlYWQgdG8gSW5mbGF0ZWQgU2VsZi1Bc3Nlc3NtZW50cyIuDQoxOTk5OltSZXNlYXJjaF0gUmVzZWFyY2ggYnkgVVMgTmF0aW9uYWwgUmVzZWFyY2ggQ291bmNpbC4gV2F0ZXIgZnJvbSB1bmRlcmdyb3VuZCBzb3VyY2VzIG1heSBjb250YWluIHNpZ25pZmljYW50IGFtb3VudHMgb2YgcmFkb24gZGVwZW5kaW5nIG9uIHRoZSBzdXJyb3VuZGluZyByb2NrIGFuZCBzb2lsIGNvbmRpdGlvbnMsIHdoZXJlYXMgc3VyZmFjZSBzb3VyY2VzIGdlbmVyYWxseSBkbyBub3QuDQoxOTk5OltOU0VdIEluY29ycG9yYXRlZCBpbiAxOTk5LCBJUkNUQyBpcyBhIE1pbmkgUmF0bmEgKENhdGVnb3J5IDEsIENlbnRyYWwgUHVibGljIFNlY3RvciBFbnRlcnByaXNlcyApIGFuZCB0aGUgb25seSBjb21wYW55IGF1dGhvcml6ZWQgYnkgdGhlIEluZGlhbiBnb3Zlcm5tZW50IHRvIHByb3ZpZGUgb25saW5lIHJhaWx3YXkgdGlja2V0cywgY2F0ZXJpbmcgc2VydmljZXMsIGFuZCBwYWNrYWdlZCBkcmlua2luZyB3YXRlciBhdCByYWlsd2F5IHN0YXRpb25zIGFuZCB0cmFpbnMgaW4gSW5kaWEuDQoxOTk5OltNbnRuZ2ddW0Jvb2tdIFN0ZXZlIEhvdXNlIGlzIGEgd29ybGQtcmVub3duZWQgY2xpbWJlciwgbW91bnRhaW4gZ3VpZGUgYW5kIFBhdGFnb25pYSBhbWJhc3NhZG9yLCB3aWRlbHkgcmVnYXJkZWQgZm9yIGhpcyBjbGVhbiwgbGlnaHQtYW5kLWZhc3Qgc3R5bGUuIEhlIGhhcyBwdWJsaXNoZWQgYXJ0aWNsZXMgaW4gYSBudW1iZXIgb2YgcGVyaW9kaWNhbHMgaW5jbHVkaW5nOiBBbHBpbmlzdCwgUm9jayBhbmQgSWNlLCBDbGltYmluZywgVGhlIEFtZXJpY2FuIEFscGluZSBKb3VybmFsLCBHcmlwcGVkLCBDYW5hZGlhbiBBbHBpbmUgSm91cm5hbCwgQ2xpbWIsIFZlcnRpY2FsLCBNb250YWduZXMsIFJpc2ssIEFscCssIENhbXBvIEJhc2UsIERlc25pdmVsLCBhbmQgU3RpbGUgQWxwaW4uIEhpcyBlc3NheXMgaGF2ZSBiZWVuIHB1Ymxpc2hlZCBpbiBzZXZlcmFsIGJvb2tzIGluY2x1ZGluZzsgQ29udGFjdDogTW91bnRhaW4gQ2xpbWJpbmcgYW5kIEVudmlyb25tZW50YWwgVGhpbmtpbmc7IFNvbHRhcmksIGEgY29sbGVjdGlvbiBvZiBlc3NheXMgYWJvdXQgc29sbyBjbGltYmluZyBwdWJsaXNoZWQgaW4gSXRhbGlhbjsgQmVyZywgYSBHZXJtYW4gYm9vayBhYm91dCBjbGltYmluZyBpbiB0aGUgSGltYWxheWE7IGFuZCBhbiB1cGNvbWluZyBib29rIGFib3V0IE5hbmdhIFBhcmJhdCBlZGl0ZWQgYnkgUmVpbmhvbGQgTWVzc25lci4gSGUgaGFzIHdvcmtlZCBhcyBhIFBhdGFnb25pYSBhbHBpbmUgYW1iYXNzYWRvciBzaW5jZSAxOTk5LiBQdWJsaXNoZWQ6IFRyYWluaW5nIGZvciB0aGUgTmV3IEFscGluaXNtOiBBIE1hbnVhbCBmb3IgdGhlIENsaW1iZXIgYXMgQXRobGV0ZSBQYXBlcmJhY2sg4oCTIElsbHVzdHJhdGVkLCAzIEFwcmlsIDIwMTQNCjE5OTk6W01udG5nZ10gQ29ucmFkIEFua2VyIChib3JuIE5vdmVtYmVyIDI3LCAxOTYyKSBpcyBhbiBBbWVyaWNhbiByb2NrIGNsaW1iZXIsIG1vdW50YWluZWVyLCBhbmQgYXV0aG9yLiBIZSB3YXMgdGhlIHRlYW0gbGVhZGVyIG9mIFRoZSBOb3J0aCBGYWNlIGNsaW1iaW5nIHRlYW0gZm9yIDI2IHllYXJzIHVudGlsIDIwMTguWzJdIEluIDE5OTksIGhlIGxvY2F0ZWQgR2VvcmdlIE1hbGxvcnkncyBib2R5IG9uIEV2ZXJlc3QgYXMgYSBtZW1iZXIgb2YgYSBzZWFyY2ggdGVhbSBsb29raW5nIGZvciB0aGUgcmVtYWlucyBvZiB0aGUgQnJpdGlzaCBjbGltYmVyIHdobyB3YXMgbGFzdCBzZWVuIGluIDE5MjQuDQoxOTk5OlRoZSBQaXBpc3RyZWwgVmlydXMgZmxldyBmb3IgdGhlIGZpcnN0IHRpbWUgb24gQXVndXN0IDEwLCAxOTk5LiBQcm9kdWN0aW9uIGJlZ2FuIG9uIEphbnVhcnkgMjAsIDIwMDAuIFRoZSBkZXZlbG9wbWVudCBvZiB0aGUgc2hvcnQgd2luZyB2ZXJzaW9uIHN0YXJ0ZWQgaW4gMjAwNy4gVGhlIFZpcnVzIFNXIHByb2R1Y3Rpb24gc3RhcnRlZCBpbiAyMDA4LiBUaGUgVmlydXMgd29uIHRoZSBOQVNBIDIwMDcgUGVyc29uYWwgQWlyIFZlaGljbGUgKFBBVikgQ2hhbGxlbmdlIGFuZCB0aGUgMjAwOCBHZW5lcmFsIEF2aWF0aW9uIFRlY2hub2xvZ3kgKEdBVCkgQ2hhbGxlbmdlLg0KMTk5OTpbc2lsdmljc10gU3VzdGFpbmFibGUgUHJhY3RpY2VzOiBSZXNlYXJjaCBpbiB0aGUgMjB0aCBjZW50dXJ5IHZhbGlkYXRlZCB0aGF0IHNlY29uZC1ncm93dGggc3RhbmRzIGNvdWxkIGJlIHN1c3RhaW5hYmx5IG1hbmFnZWQgdGhyb3VnaCB0ZWNobmlxdWVzIGxpa2UgdGhlIHNlZWQgdHJlZSBtZXRob2QuIFRvZGF5LCBzaWx2aWN1bHR1cmUgZm9jdXNlcyBvbiBjb21wbGV4IHN0YW5kIHN0cnVjdHVyZXMsIGJhbGFuY2luZyBjb21tZXJjaWFsIGRlbWFuZCB3aXRoIGVudmlyb25tZW50YWwgc3Rld2FyZHNoaXAuIA0KDQoyMXN0IGNlbnR1cnkgQ0Ugc3RhcnRlZCBvbiAxc3QgSmFuIDIwMDEgQUQuDQoNCjIwMDBzOltSZXNlYXJjaF0gVGhlIGNsYWltIHRoYXQgIndlIGFyZSA2MCUgYmFuYW5hIiAob3Igc2hhcmUgNjAlIG9mIG91ciBETkEpIGlzIGEgcG9wdWxhciwgeWV0IG9mdGVuIG1pc2ludGVycHJldGVkLCBzdGF0aXN0aWMgdGhhdCBvcmlnaW5hdGVkIGZyb20gY29tcGFyaXNvbnMgb2YgcHJvdGVpbi1jb2RpbmcgZ2VuZXMsIGxpa2VseSBwb3B1bGFyaXplZCBpbiB0aGUgZWFybHkgMjAwMHMgZm9sbG93aW5nIHByZWxpbWluYXJ5IHN0dWRpZXMgb2YgdGhlIGJhbmFuYSBnZW5vbWUuIEl0IHJlZmVycyB0byBhYm91dCA2MCUgb2YgaHVtYW4gZ2VuZXMgaGF2aW5nIGEgcmVjb2duaXphYmxlIGNvdW50ZXJwYXJ0IGluIGJhbmFuYXMsIG5vdCA2MCUgb2Ygb3VyIHRvdGFsIEROQS4gDQpNYW55IG9mIHRoZSDigJxob3VzZWtlZXBpbmfigJ0gZ2VuZXMgdGhhdCBhcmUgbmVjZXNzYXJ5IGZvciBiYXNpYyBjZWxsdWxhciBmdW5jdGlvbiwgc3VjaCBhcyBmb3IgcmVwbGljYXRpbmcgRE5BLCBjb250cm9sbGluZyB0aGUgY2VsbCBjeWNsZSwgYW5kIGhlbHBpbmcgY2VsbHMgZGl2aWRlIGFyZSBzaGFyZWQgYmV0d2VlbiBtYW55IHBsYW50cyAoaW5jbHVkaW5nIGJhbmFuYXMpIGFuZCBhbmltYWxzLldoaWxlIDYwJSBvZiBnZW5lcyBoYXZlIGNvdW50ZXJwYXJ0cywgdGhlc2UgZXNzZW50aWFsIGdlbmVzIG1ha2UgdXAgb25seSBhIHNtYWxsIGZyYWN0aW9uIG9mIHRoZSB0b3RhbCBnZW5vbWU7IGh1bWFucyBhbmQgYmFuYW5hcyBhcmUgbm90IDYwJSBpZGVudGljYWwgb3ZlcmFsbC4gDQpUaGUgcGhyYXNlIGlzIGVzc2VudGlhbGx5IGEgc2ltcGxpZmllZCwgb2Z0ZW4tZXhhZ2dlcmF0ZWQsIHdheSBvZiBoaWdobGlnaHRpbmcgdGhhdCBhbGwgbGlmZSBzaGFyZXMgY29tbW9uIGFuY2VzdHJhbCBnZW5lcyBmb3IgYmFzaWMgY2VsbHVsYXIgcHJvY2Vzc2VzLiANCjIwMDBzOltNQkFdIFNob3VsZCBDb3N0IE1vZGVsaW5nOiBNb2Rlcm4gIlNob3VsZCBDb3N0IiBtb2RlbHMgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBpZGVhbCBjb3N0IG9mIGEgcHJvZHVjdCwgYWNjb3VudGluZyBmb3IgbGFib3IsIG1hdGVyaWFscywgYW5kIG92ZXJoZWFkLiBFbnZpcm9ubWVudGFsICYgU29jaWFsIEltcGFjdDogTW9kZXJuIENCQSBub3cgcm91dGluZWx5IGluY2x1ZGVzIGVudmlyb25tZW50YWwgYW5kIHNvY2lhbCBpbXBhY3RzIGluIGFkZGl0aW9uIHRvIGZpbmFuY2lhbCBvbmVzLiBTaGlmdCBmcm9tIExvY2FsIHRvIEdsb2JhbDogRWFybHksIGhpZ2hseSBsb2NhbCBhc3Nlc3NtZW50cyBldm9sdmVkIGludG8gbGFyZ2Utc2NhbGUsIG5hdGlvbmFsLCBhbmQgaW50ZXJuYXRpb25hbCBDQkEuIFJlZmluZW1lbnQgb2YgVGVjaG5pcXVlczogTW92aW5nIGZyb20gc2ltcGxlLCBzaW5nbGUtcGVyaW9kIG1vZGVscyB0byBjb21wbGV4LCBtdWx0aS1wZXJpb2Qgc2ltdWxhdGlvbnMuIEluY3JlYXNlZCBEYXRhIFVzZTogVGhlIGF2YWlsYWJpbGl0eSBvZiBsYXJnZSwgZ3JhbnVsYXIgZGF0YSBzZXRzIGhhcyBhbGxvd2VkIGZvciBtb3JlIHByZWNpc2UgYW5kIHJlbGlhYmxlIGFuYWx5c2lzLiANCjIwMDBzOltNbnRuZ2ddW0V4dHJlbWVdIEluIHRoZSBlYXJseSAyMDAwcywgRGlkaWVyIEJlcnRob2Qgd2FzIHRoZSBiZXN0IGNyYWNrIGNsaW1iZXIgaW4gdGhlIHdvcmxkLCB0aGVuIGhlIGRyb3BwZWQgb3V0IG9mIGNsaW1iaW5nIGFuZCBlc3NlbnRpYWxseSBkaXNhcHBlYXJlZCBmcm9tIHRoZSB3b3JsZC4NCjIwMDBzOltSZWFsdHldIEVhcmx5IDIwMDBzOiBSZWFsIGVzdGF0ZSB3YXMgaW4gaXRzIGVhcmx5IHN0YWdlcyBpbiBJbmRpYSwgd2l0aCBncmFkdWFsIGdyb3d0aCBhbmQgZGV2ZWxvcG1lbnQuIA0KMjAwMHM6VGVhbXdvcmsgaXMgbm93IGFuIGludGVncmFsIHBhcnQgb2Ygb3JnYW5pemF0aW9uYWwgc3RyYXRlZ3ksIHdpdGggYSBncmVhdGVyIGVtcGhhc2lzIG9uIGN1c3RvbWl6YXRpb24sIHBlcnNvbmFsaXphdGlvbiwgYW5kIHN0cmF0ZWdpYyBpbnRlZ3JhdGlvbiBvZiB0ZWFtLWJ1aWxkaW5nIHByYWN0aWNlcy4gVGhlIHJpc2Ugb2YgdGVjaG5vbG9neSBoYXMgYWxzbyBpbmZsdWVuY2VkIHRlYW13b3JrLCB3aXRoIHJlbW90ZSB3b3JrIGJlY29taW5nIG1vcmUgcHJldmFsZW50IGFuZCBuZXcgdG9vbHMgZW1lcmdpbmcgdG8gZmFjaWxpdGF0ZSBjb2xsYWJvcmF0aW9uLiANCg0KMjAwMDpbVVNdW0dlb1BvbGl0aWNzXSBvdmVydGhyb3cgb2YgU2xvYm9kYW4gTWlsb8WhZXZpxIcuIChVUydzIGludm9sdmVtZW50IGluIHJlZ2ltZSBjaGFuZ2UpDQoyMDAwOiBbR2VvUG9saXRpY3NdW01pbGl0YXJ5XVtFY29ub21pY3NdIFRoZSBVUyBEb2xsYXIgaG9sZHMgYSA3MiUgc2hhcmUgb2YgYWxsIGdsb2JhbCBjdXJyZW5jeSByZXNlcnZlcyBbWzE2OjQyXShodHRwOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dllKcmkxZU5SeWMmdD0xMDAyKV0uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdIDI2IEFwcmlsIDIwMDA6IHRoZSBHZXJtYW4gdGVhbSBvcGVyYXRpbmcgdGhlIG1hc3Mgc3BlY3Ryb21ldGVyIG9uIE5BU0EncyBTdGFyZHVzdCBtaXNzaW9uIGFubm91bmNlZCB0aGUgZGV0ZWN0aW9uIG9mIHZlcnkgbGFyZ2Ugb3JnYW5pYyBtb2xlY3VsZXMgaW4gaW50ZXJzdGVsbGFyIHNwYWNlLiBOb25iaW9sb2dpY2FsIHNvdXJjZXMgZm9yIG9yZ2FuaWMgbW9sZWN1bGVzIHNvIGxhcmdlIGFyZSBub3Qga25vd24uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdMTkgT2N0b2JlciAyMDAwLCBhIHRlYW0gb2YgYmlvbG9naXN0cyBhbmQgYSBnZW9sb2dpc3QgYW5ub3VuY2VkIHRoZSByZXZpdmFsIG9mIGJhY3RlcmlhIHRoYXQgYXJlIDI1MCBtaWxsaW9uIHllYXJzIG9sZCwgc3RyZW5ndGhlbmluZyB0aGF0IGNhc2UgdGhhdCBiYWN0ZXJpYWwgc3BvcmVzIGNhbiBiZSBpbW1vcnRhbC4NCjEzIERlY2VtYmVyIDIwMDA6IGEgTkFTQSB0ZWFtIGRlbW9uc3RyYXRlZCB0aGF0IHRoZSBtYWduZXRvc29tZXMgaW4gTWFycyBtZXRlb3JpdGUgQUxIIDg0MDAxIGFyZSBiaW9sb2dpY2FsLg0KMjAwMDpbUmVzZWFyY2hdW1NwYWNlXSBNaWxlaWtvd3NreSBDLCBDdWNpbm90dGEgRkEsIFdpbHNvbiBKVywgR2xhZG1hbiBCLCBIb3JuZWNrIEcsIExpbmRlZ3JlbiBMLCBNZWxvc2ggSiwgUmlja21hbiBILCBWYWx0b25lbiBNLCBaaGVuZyBKUS4gTmF0dXJhbCB0cmFuc2ZlciBvZiB2aWFibGUgbWljcm9iZXMgaW4gc3BhY2UuIEljYXJ1cyAyMDAwLCAxNDU6Mzkx4oCTNDI3LiBbRE9JXSBbUHViTWVkXSBbR29vZ2xlIFNjaG9sYXJdDQoyMDAwOltTcGFjZVhdIFMvMjAwMCAoOTApIDEgTW9vbiBEaXNjb3ZlcmVyOiBXaWxsaWFtIEouIE1lcmxpbmUgT3JiaXRzOiA5MCBBbnRpb3BlIEFic29sdXRlIG1hZ25pdHVkZTogOS4wMg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gZGVtb25zdHJhdGVkIFNob3LigJlzIGFsZ29yaXRobSBvbiBhIDUtcXViaXQgTk1SIHF1YW50dW0gY29tcHV0ZXIsIGZhY3RvcmluZyB0aGUgbnVtYmVyIDE1Lg0KMjAwMDogQXQgYWdlIDE0IGFuZCBpbiBjbGFzcyA4dGgsIEFhcm9uIFN3YXJ0eiBiZWNhbWUgYSBtZW1iZXIgb2YgdGhlIHdvcmtpbmcgZ3JvdXAgdGhhdCBhdXRob3JlZCB0aGUgUlNTIDEuMCB3ZWIgc3luZGljYXRpb24gc3BlY2lmaWNhdGlvbi4NCjIwMDA6IE1ha2VteVRyaXANCjIwMDAgKEphbiAxNCk6W0phY2tdIEthaG8gTmFhLi4uIFB5YWFyIEhhaQ0KMjAwMCAoRmViKTogSW5kaWFuIFJhaWx3YXlzIHdlYiBzaXRlIGkuZS4gaHR0cDovL2luZGlhbnJhaWx3YXlzLmdvdi5pbi8gd2FzIGRlcGxveWVkIGJ5IENSSVMuDQoyMDAwIChNYXIpOltCb29rXSBNYWxjb2xtIEdsYWR3ZWxsJ3MgZGVidXQgYm9vaywgVGhlIFRpcHBpbmcgUG9pbnQ6IEhvdyBMaXR0bGUgVGhpbmdzIENhbiBNYWtlIGEgQmlnIERpZmZlcmVuY2UuIA0KQmxpbms6IFRoZSBQb3dlciBvZiBUaGlua2luZyBXaXRob3V0IFRoaW5raW5nICgyMDA1LCBKYW4gMTEpOyANCk91dGxpZXJzOiBUaGUgU3Rvcnkgb2YgU3VjY2VzcyAoMjAwOCwgTm92IDE4KTsgDQpXaGF0IHRoZSBEb2cgU2F3OiBBbmQgT3RoZXIgQWR2ZW50dXJlcyAoMjAwOSwgT2N0IDIwKTsgDQpEYXZpZCBhbmQgR29saWF0aDogVW5kZXJkb2dzLCBNaXNmaXRzLCBhbmQgdGhlIEFydCBvZiBCYXR0bGluZyBHaWFudHMgKDIwMTMsIE9jdCAxKQ0KVGFsa2luZyB0byBTdHJhbmdlcnM6IFdoYXQgV2UgU2hvdWxkIEtub3cgYWJvdXQgdGhlIFBlb3BsZSBXZSBEb24ndCBLbm93ICgyMDE5KQ0KMjAwMCAoQXByIDEpOltCb29rXSBSb2JlcnQgS2l5b3Nha2kgJiBTaGFyb24gTGVjaHRlcidzIFJpY2ggRGFkIFBvb3IgRGFkLg0KMjAwMCAoQXByIDEpOltUZWNobm9sb2d5XVtSZXNlYXJjaF0gIldoeSBUaGUgRnV0dXJlIERvZXNuJ3QgTmVlZCBVcyIgaXMgYW4gYXJ0aWNsZSB3cml0dGVuIGJ5IEJpbGwgSm95IGluIHRoZSBBcHJpbCAyMDAwIGlzc3VlIG9mIFdpcmVkIG1hZ2F6aW5lLiBJbiB0aGUgYXJ0aWNsZSwgaGUgYXJndWVzIHRoYXQgIk91ciBtb3N0IHBvd2VyZnVsIDIxc3QtY2VudHVyeSB0ZWNobm9sb2dpZXPigJRyb2JvdGljcywgZ2VuZXRpYyBlbmdpbmVlcmluZywgYW5kIG5hbm90ZWNo4oCUYXJlIHRocmVhdGVuaW5nIHRvIG1ha2UgaHVtYW5zIGFuIGVuZGFuZ2VyZWQgc3BlY2llcy4iIA0KMjAwMCAoSnVuIDI2KTpbTXVzaWNdICJZZWxsb3ciIGlzIGEgc29uZyBieSB0aGUgQnJpdGlzaCByb2NrIGJhbmQgQ29sZHBsYXkuIFRoZSBiYW5kIHdyb3RlIHRoZSBzb25nIGFuZCBjby1wcm9kdWNlZCBpdCB3aXRoIEJyaXRpc2ggcmVjb3JkIHByb2R1Y2VyIEtlbiBOZWxzb24gZm9yIHRoZWlyIGRlYnV0IGFsYnVtLCBQYXJhY2h1dGVzICgyMDAwKS4gVGhlIHNvbmcgd2FzIHJlY29yZGVkIGluIE1hcmNoIDIwMDAgYW5kIHJlbGVhc2VkIG9uIDI2IEp1bmUgdGhhdCBzYW1lIHllYXIuDQoyMDAwIChTZXApOiBBbWF6b24ncyBKZWZmIEJlem9zIGZvdW5kZWQuDQoyMDAwIChTZXApOltDcmltZV1bSW5kaWFdIENoaG90YSBTaGFrZWVsJ3MgYXR0YWNrIG9uIFJhamFuIGluIGhpcyBCYW5na29rIGhvdGVsIHJvb20uDQoyMDAwIChTZXApOiBSYWlsVGVsIENvcnBvcmF0aW9uIG9mIEluZGlhIEx0ZC4gZm91bmRlZCBhbmQgSFEnZCBhdCAxNDMsIEluc3RpdHV0aW9uYWwgQXJlYSwgU2VjdG9yLTQ0LCBHdXJnYW9uLCBIYXJ5YW5hLCBJbmRpYS4gSXQgaXMgYSBNaW5pcmF0bmEgZW50ZXJwcmlzZSBvZiBHb3Zlcm5tZW50IG9mIEluZGlhIGZvY3VzaW5nIG9uIHByb3ZpZGluZyBicm9hZGJhbmQgYW5kIFZQTiBzZXJ2aWNlcy4NCjIwMDAgKFNlcCAxNyk6IFtHZW9Qb2xpdGljc10gVGhlIGlkZWEgb2YgYW4gQXNpYSBDb29wZXJhdGlvbiBEaWFsb2d1ZSAoQUNEKSB3YXMgcmFpc2VkIGF0IHRoZSBGaXJzdCBJbnRlcm5hdGlvbmFsIENvbmZlcmVuY2Ugb2YgQXNpYW4gUG9saXRpY2FsIFBhcnRpZXMgKGhlbGQgaW4gTWFuaWxhIGJldHdlZW4gMTfigJMyMCBTZXB0ZW1iZXIgMjAwMCkgYnkgU3VyYWtpYXJ0IFNhdGhpcmF0aGFpLCB0aGVuIGRlcHV0eSBsZWFkZXIgb2YgdGhlIG5vdyBkZWZ1bmN0IFRoYWkgUmFrIFRoYWkgUGFydHksIG9uIGJlaGFsZiBvZiBoaXMgcGFydHkgbGVhZGVyLCBUaGFrc2luIFNoaW5hd2F0cmEsIHRoZW4gUHJpbWUgTWluaXN0ZXIgb2YgVGhhaWxhbmQuIEl0IHdhcyBzdWdnZXN0ZWQgdGhhdCBBc2lhIGFzIGEgY29udGluZW50IHNob3VsZCBoYXZlIGl0cyBvd24gZm9ydW0gdG8gZGlzY3VzcyBBc2lhLXdpZGUgY29vcGVyYXRpb24uIEFmdGVyd2FyZHMsIHRoZSBpZGVhIG9mIHRoZSBBQ0Qgd2FzIGZvcm1hbGx5IHB1dCBmb3J3YXJkIGR1cmluZyB0aGUgMzR0aCBBU0VBTiBGb3JlaWduIE1pbmlzdGVycyBNZWV0aW5nIGluIEhhbm9pLCAyM+KAkzI0IEp1bHkgMjAwMSBhbmQgYXQgdGhlIEFTRUFOIEZvcmVpZ24gTWluaXN0ZXJzIFJldHJlYXQgaW4gUGh1a2V0LCAyMOKAkzIxIEZlYnJ1YXJ5IDIwMDIuDQoyMDAwIChPY3QgNCk6W011c2ljXSBGb3JtZWQgaW4gMTk5NiwgTGlua2luIFBhcmsgcm9zZSB0byBpbnRlcm5hdGlvbmFsIGZhbWUgd2l0aCB0aGVpciBkZWJ1dCBzdHVkaW8gYWxidW0sIEh5YnJpZCBUaGVvcnkuIEZvdXIgc2luZ2xlcyB3ZXJlIHJlbGVhc2VkIGZyb20gSHlicmlkIFRoZW9yeTogIk9uZSBTdGVwIENsb3NlciIsICJJbiB0aGUgRW5kIiwgIkNyYXdsaW5nIiBhbmQgIlBhcGVyY3V0IiwgYWxsIG9mIHRoZW0gYmVpbmcgcmVzcG9uc2libGUgZm9yIGxhdW5jaGluZyBMaW5raW4gUGFyayBpbnRvIG1haW5zdHJlYW0gcG9wdWxhcml0eS4gV2hpbGUgIkluIHRoZSBFbmQiIHdhcyB0aGUgbW9zdCBzdWNjZXNzZnVsIG9mIHRoZSBmb3VyLCBhbGwgb2YgdGhlIHNpbmdsZXMgaW4gdGhlIGFsYnVtIHJlbWFpbiBzb21lIG9mIHRoZSBiYW5kJ3MgbW9zdCBzdWNjZXNzZnVsIHNvbmdzIHRvIGRhdGUuDQoyMDAwIChOb3YgOSk6IGZvcm1hdGlvbiBvZiBVdHRhcmFraGFuZCBhcyBVdHRhcmFuY2hhbCAyMDAwIChKdW4gOSk6IEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQWN0LCAyMDAwLiBUaGUgYmlsbCB3YXMgcGFzc2VkIGluIHRoZSBidWRnZXQgc2Vzc2lvbiBvZiAyMDAwIGFuZCBzaWduZWQgYnkgUHJlc2lkZW50IEsuIFIuIE5hcmF5YW5hbiBvbiA5IE1heSAyMDAwLiBUaGUgYmlsbCB3YXMgZmluYWxpc2VkIGJ5IGdyb3VwIG9mIG9mZmljaWFscyBoZWFkZWQgYnkgdGhlbiBNaW5pc3RlciBvZiBJbmZvcm1hdGlvbiBUZWNobm9sb2d5LCBQcmFtb2QgTWFoYWphbi4NCjIwMDA6IGZvcm1hdGlvbiBvZg0KMjAwMDogSmFpc2gtZS1Nb2hhbW1lZCAobGl0ZXJhbGx5ICJUaGUgQXJteSBvZiBNdWhhbW1hZCIsIEplTSkgZm91bmRlZCBhdCBCYWhhd2FscHVyLCBQdW5qYWIsIFBha2lzdGFuLg0KMjAwMDogQ2hpbmEncyBCZWlEb3UgbmF2aWdhdGlvbiB0ZXN0IHN5c3RlbSBzdGFydHMuDQoyMDAwOiBGaXNlcnYgaGFkIGFjcXVpcmVkIG1vcmUgdGhhbiA5MCBidXNpbmVzc2VzLiBUaGUgbnVtYmVyIG9mIGVtcGxveWVlcyBncmV3IGZyb20gMjY0IHRvIDE0LDAwMC4gRmlzZXJ2IHdhcyBhbiBpbmR1c3RyeSBsZWFkZXIsIHdpdGggcmV2ZW51ZSB0aGF0IGluY3JlYXNlZCBmcm9tICQyMSBtaWxsaW9uIHRvICQxLjQgYmlsbGlvbiBpbiAxNSB5ZWFycy4NCjIwMDAgKERlYyA4KTpbR2FtaW5nXSBQcm9qZWN0IEkuRy5JLiBpcyBhIHRhY3RpY2FsIGZpcnN0LXBlcnNvbiBzaG9vdGVyIHZpZGVvIGdhbWUuIEl0IHdhcyBkZXZlbG9wZWQgYnkgSW5uZXJsb29wIFN0dWRpb3MgYW5kIHJlbGVhc2VkIGluIERlY2VtYmVyIDIwMDAgYnkgRWlkb3MgSW50ZXJhY3RpdmUuIFRoZSBnYW1lIHJlY2VpdmVkIG1peGVkIHJldmlld3MgZHVlIHRvIHNob3J0Y29taW5ncyBpbmNsdWRpbmcgYSBwb29ybHkgcHJvZ3JhbW1lZCBBLkkuLCBsYWNrIG9mIGEgbWlkLWdhbWUgc2F2ZSBvcHRpb24sIGFuZCB0aGUgbGFjayBvZiBtdWx0aXBsYXllciBmZWF0dXJlcy4gSG93ZXZlciBpdCB3YXMgcHJhaXNlZCBmb3IgaXRzIHNvdW5kIGRlc2lnbiBhbmQgZ3JhcGhpY3MsIHRoYW5rcyBpbiBwYXJ0IHRvIGl0cyB1c2Ugb2YgYSBwcm9wcmlldGFyeSBnYW1lIGVuZ2luZSB0aGF0IHdhcyBwcmV2aW91c2x5IHVzZWQgaW4gSW5uZXJsb29wJ3MgSm9pbnQgU3RyaWtlIEZpZ2h0ZXIuDQoyMDAwIChEZWMgMjEpOltKYWNrXSBSYWp1IENoYWNoYSByZWxlYXNlZC4NCjIwMDA6IFtCdXNpbmVzc11bRmluYW5jZV1bQ29ycG9yYXRlXVtJbmRpYV0gUklMIHBpbG90ZWQgd29ybGQncyBsYXJnZXN0IHBldHJvbGV1bSByZWZpbmVyeSBhdCBKYW1uYWdhciwgR3VqYXJhdCwgcmVmaW5pbmcgMS4yNE1uIGJhcnJlbHMvZGF5Lg0KMjAwMDpbQ3JpbWVdW0luZGlhXSBQb2xpY2UgZW5jb3VudGVycyBpbiBNdW1iYWkuIE1vc3QgY3JpbWluYWxzIGZsZWVpbmcgdG8gQ2FsY3VsdHRhLiBBZnRhYiBCaGF0a2kgZGVzdGFiaWxpc2UgdGhlIGVjb25vbXkgYnkgc3ByZWFkaW5nIGZha2UgY3VycmVuY3kgbm90ZXMgcHJpbnRlZCBieSBJU0kgZnVuY3Rpb25hcmllcywgYW5kIHR3bywgc2VuZCBtZXJjZW5hcmllcyB0byBjb25kdWN0IGFiZHVjdGlvbnMgYW5kIHRlcnJvcmlzdCBhdHRhY2tzLg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBUZWNobmljYWwgVW5pdmVyc2l0eSBvZiBNdW5pY2ggKDUgcXViaXQpOyBMb3MgQWxhbW9zIE5hdGlvbmFsIExhYiAoNyBxdWJpdHMpDQoyMDAwOkluIDIwMDAsIFRhdGEgVGVhIGFjcXVpcmVkIHRoZSBUZXRsZXkgVGVhIENvbXBhbnkgZm9yICQ0MDcgbWlsbGlvbi4gT3RoZXIgbm90YWJsZSBhY3F1aXNpdGlvbnMgaW5jbHVkZSBOYXRTdGVlbCAoMjAwNCksIEJydW5uZXIgTW9uZCAoMjAwNSksIGFuZCBFaWdodCBPJ0Nsb2NrIENvZmZlZSAoMjAwNikuIA0KMjAwMDogQmlybGEgYWNxdWlyZWQgSW5kaWFuIEFsdW1pbnVtIENvbXBhbnkgKElOREFMKS4gDQoyMDAwOiBTYXR5YSBOYXJheWFuYSBHb2Vua2Egd29ya2VkIGFzIGFuIGludGVybmF0aW9uYWwgYnVzaW5lc3NtYW4gYmFzZWQgaW4gTXlhbm1hciBhbmQgSW5kaWEgZm9yIGEgbGFyZ2UgcGFydCBvZiBoaXMgbGlmZS4gSGUgd2FzIGEga2V5bm90ZSBzcGVha2VyIG9uIHRoZSBzdWJqZWN0IG9mIFNwaXJpdHVhbGl0eSBpbiBCdXNpbmVzcyBhdCB0aGUgMzB0aCBXb3JsZCBFY29ub21pYyBGb3J1bSBpbiBEYXZvcywgU3dpdHplcmxhbmQgYmV0d2VlbiAyNiBKYW4gYW5kIDIgRmViIDIwMDAuIFR3byB5ZWFycyBsYXRlciBoZSBjb25kdWN0ZWQgdGhlIGZpcnN0IDEwLWRheSBjb3Vyc2UgaW4gVmlwYXNzYW5hIE1lZGl0YXRpb24gZXNwZWNpYWxseSBmb3IgYnVzaW5lc3MgZXhlY3V0aXZlcyBhbmQgZ292ZXJubWVudCBvZmZpY2lhbHMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAyMjUgeWVhcnMgb2YgSW5kZXBlbmRlbnQgVVNBIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIA0KDQoyMDAxOltVU11bR2VvUG9saXRpY3NdIGludmFzaW9uIG9mIEFmZ2hhbmlzdGFuLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMjAwMTpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgU2hhbmdoYWkgQ29vcGVyYXRpb24gT3JnYW5pc2F0aW9uIChTQ08pIGlzIGEgRXVyYXNpYW4gcG9saXRpY2FsLCBlY29ub21pYywgaW50ZXJuYXRpb25hbCBzZWN1cml0eSBhbmQgZGVmZW5jZSBvcmdhbml6YXRpb24gb2YgdGVuIG1lbWJlciBzdGF0ZXMuIEl0IHdhcyBlc3RhYmxpc2hlZCBpbiAyMDAxIGJ5IHRoZSBQZW9wbGUncyBSZXB1YmxpYyBvZiBDaGluYSwgS2F6YWtoc3RhbiwgS3lyZ3l6c3RhbiwgUnVzc2lhLCBhbmQgVGFqaWtpc3RhbiBhbmQgVXpiZWtpc3Rhbi4gSW4gSnVuZSAyMDE3LCBpdCBleHBhbmRlZCB0byBlaWdodCBzdGF0ZXMsIHdpdGggSW5kaWEgYW5kIFBha2lzdGFuLiBJcmFuIGpvaW5lZCB0aGUgZ3JvdXAgaW4gSnVseSAyMDIzLCBhbmQgQmVsYXJ1cyBpbiBKdWx5IDIwMjQuIFNldmVyYWwgY291bnRyaWVzIGFyZSBlbmdhZ2VkIGFzIG9ic2VydmVycyBvciBkaWFsb2d1ZSBwYXJ0bmVycy4gRm91bmRlcnM6IENoaW5hLCBSdXNzaWEsIEthemFraHN0YW4sIFV6YmVraXN0YW4sIEt5cmd5enN0YW4sIFRhamlraXN0YW47IEhlYWRxdWFydGVyczogQmVpamluZywgQ2hpbmE7IEZvdW5kZWQ6IDE1IEp1bmUgMjAwMQ0KMjAwMTpbQnVzaW5lc3NdIDIwMDHigJMyMDA1OiBIRlQgZXhlY3V0aW9uIHRpbWVzIGRlY3JlYXNlZCBmcm9tIHNldmVyYWwgc2Vjb25kcyB0byBtaWxsaXNlY29uZHMuIChIRlQpDQoyMDAxOltDb21wdXRpbmddW1F1YW50dW1dICBJQk0gaW1wbGVtZW50ZWQgR3JvdmVy4oCZcyBhbGdvcml0aG0gb24gYSA3LXF1Yml0IE5NUiBxdWFudHVtIGNvbXB1dGVyLCBmaW5kaW5nIGEgbWFya2VkIGl0ZW0gaW4gYSBkYXRhYmFzZSBvZiA0IGVudHJpZXMuDQoyMDAxOiBMaWZlIG9mIFBpIGlzIGEgQ2FuYWRpYW4gcGhpbG9zb3BoaWNhbCBub3ZlbCBieSBZYW5uIE1hcnRlbCBwdWJsaXNoZWQuIFRoZSBwcm90YWdvbmlzdCBpcyBQaXNjaW5lIE1vbGl0b3IgIlBpIiBQYXRlbCwgYW4gSW5kaWFuIGJveSBmcm9tIFBvbmRpY2hlcnJ5IHdobyBleHBsb3JlcyBpc3N1ZXMgb2Ygc3Bpcml0dWFsaXR5IGFuZCBtZXRhcGh5c2ljcyBmcm9tIGFuIGVhcmx5IGFnZS4gSGUgc3Vydml2ZXMgMjI3IGRheXMgYWZ0ZXIgYSBzaGlwd3JlY2sgd2hpbGUgc3RyYW5kZWQgb24gYSBsaWZlYm9hdCBpbiB0aGUgUGFjaWZpYyBPY2VhbiB3aXRoIGEgQmVuZ2FsIHRpZ2VyIHdoaWNoIHJhaXNlcyBxdWVzdGlvbnMgYWJvdXQgdGhlIG5hdHVyZSBvZiByZWFsaXR5IGFuZCBob3cgaXQgaXMgcGVyY2VpdmVkIGFuZCB0b2xkLjtTZXZlbiBTdG9yaWVzICgxOTkzKQ0KMjAwMTpbQ3JpbWVdW0luZGlhXSBDaGhvdGEgUmFqYW4ncyBhc3NvY2lhdGVzIHRyYWNrZWQgZG93biBhbmQgc2hvdCBkZWFkIGhvdGVsaWVyIFZpbm9kIGluIE11bWJhaSwgYXMgd2VsbCBhcyBTdW5pbCBTb2FucyDigJMgYW5vdGhlciBEYXdvb2QgYXNzb2NpYXRlLg0KMjAwMSAoSmFuIDEpOltCb29rXSBHcmVnIE1jS2Vvd24ncyBFc3NlbnRpYWxpc206IFRoZSBEaXNjaXBsaW5lZCBQdXJzdWl0IG9mIExlc3MNCjIwMDEgKEphbiAxKTpbQm9va10gQnJpYW4gVHJhY3kncyBFYXQgVGhhdCBGcm9nIQ0KMjAwMTogVGhlIEFyZHVpbm8gcHJvamVjdCBzdGFydGVkIGF0IHRoZSBJbnRlcmFjdGlvbiBEZXNpZ24gSW5zdGl0dXRlIEl2cmVhIChJRElJKSBpbiBJdnJlYSwgSXRhbHkuIEF0IHRoYXQgdGltZSwgdGhlIHN0dWRlbnRzIHVzZWQgYSBCQVNJQyBTdGFtcCBtaWNyb2NvbnRyb2xsZXIgYXQgYSBjb3N0IG9mICQxMDAsIGEgY29uc2lkZXJhYmxlIGV4cGVuc2UgZm9yIG1hbnkgc3R1ZGVudHMuDQoyMDAxIChBcHIgNHRoKTogQ2hhcmxlcyBNLiBWZXN0LCB0aGUgdGhlbiBQcmVzaWRlbnQgb2YgTUlUIGFubm91bmNlZCBPcGVuQ291cnNlV2FyZSAoT0NXKSBwdWJsaWNpemluZyBhbGwgb2YgaXRzIDIsMDAwIGNvdXJzZXMgIGF0IHRoZSBlc3RpbWF0ZWQgY29zdCBvZiAkMTAwIG1pbGxpb24gKG9uIGFuIGF2Zy4sIGEgTUlUIHN0dWRlbnRzIHBheXMgYXJvdW5kICQyNiwwMDAgYXMgb2ZmbGluZSB0dWl0aW9uIGZlZSkNCjIwMDE6IFVTIGludmFkZWQgQWZnaGFuaXN0YW4gaW4gcmVzcG9uc2UgdG8gOS8xMSBhdHRhY2tzLiBPZmZpY2lhbGx5LCBJdCBoYXMgYmVjb21lIHRoZSBsb25nZXN0IHdhciBpbiBBbWVyaWNhbiBoaXN0b3J5Lg0KMjAwMTogaVBvZCBieSBUb255IEZhZGVsbA0KMjAwMSAoSnVuIDE1KTpbSmFja10gR2FkYXI6IEVrIFByZW0gS2F0aGE7IExhZ2FhbjogT25jZSBVcG9uIGEgVGltZSBpbiBJbmRpYQ0KMjAwMSAoU2VwIDExKTogOS8xMSBUZXJyb3Jpc3QgYXR0YWNrcy4gVGhlIFNlcHRlbWJlciAxMSBvciA5LzExLCBhdHRhY2tzIHdlcmUgYSBzZXJpZXMgb2YgZm91ciBjb29yZGluYXRlZCB0ZXJyb3Jpc3QgYXR0YWNrcyBieSB0aGUgSXNsYW1pYyB0ZXJyb3Jpc3QgZ3JvdXAgYWwtUWFlZGEgb24gdGhlIFVuaXRlZCBTdGF0ZXMgb24gdGhlIG1vcm5pbmcgb2YgVHVlc2RheSwgU2VwIDExLiBUaGUgbG9zcyBvZiBsaWZlIHdhcyBlc3RpbWF0ZWQgYXQganVzdCB1bmRlciAzLDAwMC4gVGhlIGV2ZW50IGNoYW5nZWQgQW1lcmljYW4gZm9yZWlnbiBwb2xpY3kuIEl0IHdhcyBhIG1vdGl2YXRpbmcgZmFjdG9yIGJlaGluZCB0aGUgY29udHJvdmVyc2lhbCBpbnZhc2lvbiBvZiBJcmFxIGFuZCBsZWQgdG8gYSDigJh3YXIgb24gdGVycm9y4oCZIHN5bWJvbGlzZWQgYnkgR3VhbnRhbmFtbyBCYXkgYW5kIGEgZGViYXRlIG92ZXIgdGhlIGp1c3RpZmljYXRpb24gb2YgdG9ydHVyZS4NCjIwMDEgKE9jdCA3KTpbR2VvUG9saXRpY3NdIFVuaXRlZCBTdGF0ZXMgaW52YXNpb24gb2YgQWZnaGFuaXN0YW46IEluIGxhdGUgMjAwMSwgdGhlIFVuaXRlZCBTdGF0ZXMgYW5kIGl0cyBjbG9zZSBhbGxpZXMgaW52YWRlZCBBZmdoYW5pc3RhbiBhbmQgdG9wcGxlZCB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50LiBUaGUgaW52YXNpb24ncyBzdGF0ZWQgYWltcyB3ZXJlIHRvIGRpc21hbnRsZSBhbC1RYWVkYSwgd2hpY2ggaGFkIGV4ZWN1dGVkIHRoZSBTZXB0ZW1iZXIgMTEgYXR0YWNrcywgYW5kIHRvIGRlbnkgaXQgYSBzYWZlIGJhc2Ugb2Ygb3BlcmF0aW9ucyBpbiBBZmdoYW5pc3RhbiBieSByZW1vdmluZyB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50IGZyb20gcG93ZXIuIERlYyA3LCAyMDAxIG9ud2FyZCBzdGFydGVkIFdhciBpbiBBZmdoYW5pc3Rhbi4NCjIwMDEgKE9jdCAxNik6W0Jvb2tdIE1jS2luc2V5IFJlc2VhcmNoZXIgSmFtZXMgQy4gQ29sbGlucycgR29vZCBUbyBHcmVhdDogV2h5IFNvbWUgQ29tcGFuaWVzIE1ha2UgdGhlIExlYXAuLi5BbmQgT3RoZXJzIERvbid0OyANCjIwMDEgKE5vdik6W0NyaW1lXVtJbmRpYV0gQWJkdWwgR2FmZmFyIGFsaWFzIENoaWtuYSBHYWZmYXIgY2F1Z2h0IGJ5IHRoZSBkZXRlY3RpdmUgZGVwYXJ0bWVudCBpbiBDYWxjdXR0YSANCjIwMDEgKEphbiAyKTogVGhlIG5vcnRoZXJuIGVsZWN0cmljYWwgZ3JpZCBjb2xsYXBzZWQgaW4gSW5kaWEuIEEgZmF1bHQgaW4gdGhlIHRyYW5zbWlzc2lvbiBzeXN0ZW0gaW4gdGhlIHN0YXRlIG9mIFV0dGFyIFByYWRlc2ggbGVkIHRvIGNhc2NhZGluZyBmYWlsdXJlIHRocm91Z2hvdXQgbm9ydGhlcm4gSW5kaWEgYWZmZWN0aW5nIDIzIGNyb3JlIHJlc2lkZW50cy4NCjIwMDE6IElWUlMgKCdJbnRlcmFjdGl2ZSBWb2ljZSBSZXNwb25zZSBTeXN0ZW0nKSBmb3IgdGVsZXBob25pYyBlbnF1aXJpZXMgYWJvdXQgdHJhaW5zIGludHJvZHVjZWQgaW4gc29tZSBzdGF0aW9ucy4NCjIwMDE6IE1hZGVFYXN5IGluY29ycG9yYXRlZCBhdCA0NC1BLzEsIEthbHUgU2FyYWksIE5lYXIgSGF1eiBLaGFzIE1ldHJvIFN0YXRpb24sIE5ldyBEZWxoaS0xMTAwMTYNCjIwMDE6IEFjYyB0byAyMDAxIGNlbnN1cywgMzAgbGFraHMgd2VyZSBpbW1pZ3JhdGVkIHRvIEluZGlhIGZyb20gQmFuZ2xhZGVzaCBhbG9uZSwgZm9sbG93ZWQgYnkgMTAgbGFraHMgZnJvbSBQYWtpc3RhbiBhbmQgNiBsYWtocyBmcm9tIE5lcGFsLg0KMjAwMSAoRGVjIDEzKTpbQ3JpbWVdW0luZGlhXSBUZXJyb3Jpc3QgYXR0YWNrIG9uIEluZGlhJ3MgUGFybGlhbWVudC4NCjIwMDE6IHRoZSBjdXN0b21lciBiYXNlIG9mIG1vYmlsZSBwaG9uZSBjb21wYW5pZXMgd2FzIDQgbWlsbGlvbi4NCjIwMDE6IEJlbmVmaXQgbGFubmVycywgVGV4YXMgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBIZWFsdGggQmVuZWZpdCBkaXZpc2lvbi4NCjIwMDE6IE5ldyBIb3Jpem9ucyB3YXMgaW5pdGlhbGx5IHNlbGVjdGVkIGZvciBmdW5kaW5nIGluIDIwMDEgYnV0IHdhcyBleGNsdWRlZCBmcm9tIHRoZSBOQVNBIDIwMDMgYnVkZ2V0LiBGdW5kaW5nIGZvciB0aGUgbWlzc2lvbiB3YXMgcmVpbnN0YXRlZCBhZnRlciBOZXcgSG9yaXpvbnMgd2FzIGxpc3RlZCBhcyBhIHRvcCBwcmlvcml0eSBpbiB0aGUgUGxhbmV0YXJ5IFNjaWVuY2UgRGVjYWRhbCBTdXJ2ZXkgb2YgMjAwM+jjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlallkllklklklklklklklklklklklklklklklklklklklklklklklklklklklkjjajlkasjdlajdlkajdlaj
+KAkzIwMDEuDQoxOTkzOiBBc2hvayBIYWxsIEdpcmwncyBSZXNpZGVudGlhbCBTY2hvb2wsIE1hamtoYWxpLg0KMTk5MzogQnkgdGhpcyB5ZWFyIHRoZXJlIHdlcmUgYXJvdW5kIDEwMCB3ZWItc2VydmVycyBhY3Jvc3MgdGhlIHdvcmxkLiAoQSByZXBvcnQgcHVibGlzaGVkIGluIGZpcnN0IGlzc3VlIG9mIFRoZSBXb3JsZCBXaWRlIFdlYiBOZXdzbGV0dGVyLCAxOTkzKQ0KMTk5MzogQUMgMy10aWVyIGNvYWNoZXMgJiBTbGVlcGVyIGNsYXNzIGFyZSBpbnRyb2R1Y2VkIGFwYXJ0IGZyb20gc2Vjb25kIGNsYXNzLg0KMTk5MzogR29JJ3MgRGlzdHJpY3QgUHJpbWFyeSBFZHVjYXRpb24gUHJvZ3JhbW1lIChEUEVQKSB3YXMgbGF1bmNoZWQsIHdpdGggYW4gYWltIG9mIGFjaGlldmluZyB0aGUgb2JqZWN0aXZlIG9mIHVuaXZlcnNhbCBwcmltYXJ5IGVkdWNhdGlvbi4gVGhpcyBwcm9ncmFtbWVkIGxhaWQgdGhlIGZvdW5kYXRpb25zIGZvciDgpLjgpLDgpY3gpLUg4KS24KS/4KSV4KWN4KS34KS+IOCkheCkreCkv+Ckr+CkvuCkqChFZHVjYXRpb24gZm9yIEFsbCBNb3ZlbWVudCkgYWltZWQgYXQgdGhlIHVuaXZlcnNhbGlzYXRpb24gb2YgZWxlbWVudGFyeSBlZHVjYXRpb24gbWFraW5nIGZyZWUgYW5kIGNvbXB1bHNvcnkgZWR1Y2F0aW9uIHRvIGNoaWxkcmVuIGJldHdlZW4gdGhlIGFnZXMgb2YgNiB0byAxNC4NCjE5OTM6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIHNwbGl0IHdpdGggRGF3b29kIGFuZCBmb3JtZWQgYW4gaW5kZXBlbmRlbnQgZ2FuZyB0aGF0IGZyZXF1ZW50bHkgY2xhc2hlZCB3aXRoIERhd29vZCdzIEQtQ29tcGFueS4NCjE5OTMgKEphbiA3KTpbQ3JpbWVdIFJpb3RzIHJlLXN0YXJ0ZWQgaW4gTXVtYmFpIGFuZCBsYXN0ZWQgZm9yIDIwIGRheXMuIFRoZSBJU0ksIHdoaWNoIGNvbnRyb2xsZWQgc2hpcHBpbmcgcm91dGVzIGZyb20gdGhlIEd1bGYgdG8gSW5kaWEncyB3ZXN0IGNvYXN0LCBkZW1hbmRlZCB0aGF0IHRoZSBtYWZpYSB0cmFuc3BvcnQgd2VhcG9ucyBhbmQgZXhwbG9zaXZlcyBpbnRvIEluZGlhIGluIHJldHVybiBmb3IgdGhlIHVzZSBvZiBQYWtpc3RhbidzIHdhdGVycy4gRGF3b29kIG1ldCB0aGVpciBJU0kgaGFuZGxlcnMgaW4gYSA1IHN0YXIgaG90ZWwgb2YgRHViYWkgaW4gSmFuIG9yIEZlYiBvZiAxOTkzLCB0aGVuIGNhbWUgdGhlIFJEWCB0aHJvdWdoIHRoZSBzYW1lIHBvcm91cyBhbmQgdW5jaGVja2VkIHNlYSByb3V0ZSB0aGF0IDI2LzExIGF0dGFja2VycyBzbGlwcGVkIGFjcm9zcyBhbmQgd3JlY2tlZCBtYXloZW0gaW4gTXVtYmFpLiBUaGUg4oCZOTMgYXR0YWNrcyB3ZXJlIGZpbmFsbHkgZXhlY3V0ZWQgaW4gbWFyY2ggdGhhdCBjbGFpbWVkIHNvbWUgMzAwIGlubm9jZW50IGxpdmVzLg0KMTk5MyAoTWFyIDYpOltQb2xpdHldW0luZGlhXSBTaGFyYWQgUGF3YXIgcmUtZWxlY2V0ZCBhcyBDTSBvZiBNSCBmb3IgMiB5ZWFycy4NCjE5OTMgKE1hciAxMik6W0NyaW1lXSBUaGUgMTk5MyBCb21iYXkgYm9tYmluZ3Mgd2VyZSBhIHNlcmllcyBvZiAxMiB0ZXJyb3Jpc3QgYm9tYmluZ3MgdGhhdCB0b29rIHBsYWNlIGluIEJvbWJheS4gVGhlIHNpbmdsZS1kYXkgYXR0YWNrcyByZXN1bHRlZCBpbiAyNTcgZmF0YWxpdGllcyBhbmQgMSw0MDAgaW5qdXJpZXMuIFRoZXJlIHdhcyBhbm90aGVyIHJhaWQgbmVhciBNYW5pc2ggbWFya2V0IHdoZXJlIGhhbmQgZ3JlbmFkZXMgd2VyZSByZWNvdmVyZWQuIEFmdGVyIGFub3RoZXIgdGlwIG9mZiBsZWQgdG8gZGlzY292ZXJ5IG9mIGEgaHVnZSBxdWFudGl0eSBvZiBSRFggZnJvbSBOYWdsYSBCdW5kZXIgb2ZmIEdob2RidW5kZXIgUm9hZCBpbiBUaGFuZS4g4oCcSW4gYWxsLCA1LDAwMCBraWxvZ3JhbXMgb2YgUkRYIHdhcyBicm91Z2h0IGludG8gTXVtYmFpIGFuZCB3ZSByZWNvdmVyZWQgMywzMDAga2lsb2dyYW1zIG9mIGl0IGluIGFsbCB0aGUgcmFpZHMs4oCdIHNheXMgQ2hhdWd1bGUuIFJlZHVjZWQgU2hvY2sgU2Vuc2l0aXZpdHkgKFJTUykgZXhwbG9zaXZlcywgc3VjaCBhcyBSU1MtUkRYLCB3aGljaCBjb3N0cyBhYm91dCBScy4gMSw1MDAtMiwwMDAgcGVyIGtnLiBBbmVlcyBjb250aW51ZWQgb3BlcmF0aW9uIG9mIEQtQ29tcGFueSB3aGljaCBpbmNsdWRlIGNvbnRyYWN0IGtpbGxpbmcsIGV4dG9ydGlvbiwgdGhlIGNpcmN1bGF0aW9uIG9mIGNvdW50ZXJmZWl0IGN1cnJlbmN5LCBhbmQgdGhlIHByb3Zpc2lvbiBvZiBhIHJhbmdlIG9mIGZyZWUtbGFuY2Ugc2VydmljZXMgdG8gdGVycm9yaXN0IGdyb3VwcyBhdCB0aGUgaW5zdGFuY2Ugb2YgUGFraXN0YW4ncyBJbnRlciBTZXJ2aWNlcyBJbnRlbGxpZ2VuY2UgKElTSSkuIEludGVycG9sIFJlZCBDb3JuZXIgbm90aWNlIGZvciBELUNvbXBhbnkuDQoxOTkzIChOb3YgMSk6IFRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGZvdW5kZWQuIEl0IGlzIGFuIGVjb25vbWljIGFuZCBwb2xpdGljYWwgcGFydG5lcnNoaXAgaW52b2x2aW5nIDI4IEV1cm9wZWFuIGNvdW50cmllcy4gSXQgYmVnYW4gYWZ0ZXIgV1cyIHRvIGZvc3RlciBlY29ub21pYyBjby1vcGVyYXRpb24sIHdpdGggdGhlIGlkZWEgdGhhdCBjb3VudHJpZXMgd2hpY2ggdHJhZGUgdG9nZXRoZXIgYXJlIG1vcmUgbGlrZWx5IHRvIGF2b2lkIGdvaW5nIHRvIHdhciB3aXRoIGVhY2ggb3RoZXIuDQoxOTkzIChOb3YgMyk6IFtHZW9Qb2xpdGljc10gVGhlIENvbW1vbiBNYXJrZXQgZm9yIEVhc3Rlcm4gYW5kIFNvdXRoZXJuIEFmcmljYSAoQ09NRVNBKSBpcyBhIHJlZ2lvbmFsIGVjb25vbWljIGNvbW11bml0eSBpbiBBZnJpY2Egd2l0aCB0d2VudHktb25lIG1lbWJlciBzdGF0ZXMgc3RyZXRjaGluZyBmcm9tIFR1bmlzaWEgdG8gRXN3YXRpbmkuIENPTUVTQSB3YXMgZm9ybWVkIGluIERlY2VtYmVyIDE5OTQsIHJlcGxhY2luZyBhIFByZWZlcmVudGlhbCBUcmFkZSBBcmVhIHdoaWNoIGhhZCBleGlzdGVkIHNpbmNlIDE5ODEuIE5pbmUgb2YgdGhlIG1lbWJlciBzdGF0ZXMgZm9ybWVkIGEgZnJlZSB0cmFkZSBhcmVhIGluIDIwMDAgKERqaWJvdXRpLCBFZ3lwdCwgS2VueWEsIE1hZGFnYXNjYXIsIE1hbGF3aSwgTWF1cml0aXVzLCBTdWRhbiwgWmFtYmlhIGFuZCBaaW1iYWJ3ZSksIHdpdGggUndhbmRhIGFuZCBCdXJ1bmRpIGpvaW5pbmcgdGhlIEZUQSBpbiAyMDA0LCB0aGUgQ29tb3JvcyBhbmQgTGlieWEgaW4gMjAwNiwgU2V5Y2hlbGxlcyBpbiAyMDA5IGFuZCBUdW5pc2lhIGFuZCBTb21hbGlhIGluIDIwMTguDQoxOTkzIChEZWMgMjApOiBPSENIUiBmb3JtZWQuIFRoZSBPZmZpY2Ugb2YgdGhlIFVuaXRlZCBOYXRpb25zIEhpZ2ggQ29tbWlzc2lvbmVyIGZvciBIdW1hbiBSaWdodHMgKE9IQ0hSKSwgYSBVbml0ZWQgTmF0aW9ucyBhZ2VuY3kgdGhhdCB3b3JrcyB0byBwcm9tb3RlIGFuZCBwcm90ZWN0IHRoZSBodW1hbiByaWdodHMgdGhhdCBhcmUgZ3VhcmFudGVlZCB1bmRlciBpbnRlcm5hdGlvbmFsIGxhdyBhbmQgc3RpcHVsYXRlZCBpbiB0aGUgVW5pdmVyc2FsIERlY2xhcmF0aW9uIG9mIEh1bWFuIFJpZ2h0cyBvZiAxOTQ4Lg0KMTk5Mzp0aGUgMjR0aCBhbmQgbGFzdCBHTE9OQVNTIHNhdGVsbGl0ZSB3YXMgbGF1bmNoZWQgZm9ybWluZyB0aGUgd2hvbGUgbmF2aWdhdGlvbiBjb25zdGVsbGF0aW9uIHNpbWlsYXIgdG8gdGhhdCBvZiBVUydzIEdQUy4NCjE5OTM6IFNIQS0wIChhIGhhc2ggZnVuY3Rpb24pIHdhcyBwcm9wb3NlZCBieSBOSVNULCBNYXJ5bGFuZCwgVVNBIChGb3VuZGVkOiAxOTAxKS4gSXQgcHJvZHVjZXMgYSAxNjAtYml0IGhhc2ggdmFsdWUsIHRodXMgdGhlIGJydXRlLWZvcmNlIGNvbGxpc2lvbiBvciAgbmVhci1jb2xsaXNpb24gYXR0YWNrIHJlcXVpcmVzIE8oMl44MCkgY29tcHV0YXRpb24uIFdpdGhpbiA1IHllYXJzLCBpdCB3YXMgbWFkZSBjb2xsaXNpb24gYXR0YWNrZWQgYnkgQ2hhYmF1ZCBhbmQgSm91eCB3aXRoIHRoZSBhdHRhY2sgY29tcGxleGl0eSBvZiAyXjYxLg0KMTk5MzogW0NvYWxnYXRlIHNjYW1dIE9uIDIzcmQgQXByaWwgMjAxMywgdGhlIFN0YW5kaW5nIENvbW1pdHRlZSBvbiBDb2FsIGFuZCBTdGVlbCB0YWJsZWQgaW4gUGFybGlhbWVudCB0aGF0IGFsbCAxOTQgY29hbCBibG9ja3MgZGlzdHJpYnV0ZWQgYmV0d2VlbiAxOTkzIGFuZCAyMDA4IHdlcmUgYXVjdGlvbmVkIGluIGFuIHVuYXV0aG9yaXplZCBtYW5uZXIgYW5kIHRoZSBjb3VudHJ5IGxvc3QgUnMuMS44NiBsYWtoIGNyb3JlLi4gRm9ybWVyIFByaW1lIE1pbmlzdGVyIE1hbm1vaGFuIFNpbmdoLCBhbG9uZyB3aXRoIEt1bWFyIE1hbmdhbGFtIEJpcmxhIGFuZCBQLkMuIFBhcmFraCwgd2VyZSBhY2N1c2VkIGFuZCBzdW1tb25lZCBieSBhIHNwZWNpYWwgY291cnQuIFsyTCBDcm9yZV0uIENvbXB0cm9sbGVyIGFuZCBBdWRpdG9yIEdlbmVyYWwgb2YgSW5kaWEgdG9vayAyMCB5ZWFycyB0byBJRCBvbmUgb2YgdGhlIGJpZ2dlc3Qgc2NhbXMgaW4gSW5kaWFuIGhpc3RvcnkuDQoxOTkzOiBBZnRlciBQcmVzaWRlbnQgQmlsbCBDbGludG9uIHRvb2sgb2ZmaWNlIGluIDE5OTMsIGhvd2V2ZXIsIHRoZSBVLlMuIGVjb25vbXkgZW1iYXJrZWQgb24gYSBsb25nIGFuZCBzdHJvbmcgZXhwYW5zaW9uLCBtYWtpbmcgdGhlIDE5OTBzIGEgZ3JlYXQgZGVjYWRlIGZvciBBbWVyaWNhJ3MgbW9uZXksIG92ZXJhbGwuIA0KMTk5MzpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTW90aHJhKDE5OTIpDQoxOTkzOltTcGFjZV0gSGlwcGFyY29zLCBhIHNjaWVudGlmaWMgc2F0ZWxsaXRlIG9mIHRoZSBFdXJvcGVhbiBTcGFjZSBBZ2VuY3kgKEVTQSkgbGFzdGVkIGZvciA0IHllYXJzIGJlZm9yZSBnb2luZyBvdXQtb2Ytc2VydmljZS4NCjE5OTM6W1NwYWNlXVtSZXNlYXJjaF0gSW4gMTk5MywgRG9uIFBhZ2UgYXJndWVkIHRoYXQgaWYgYSBibGFjayBob2xlIHN0YXJ0cyBpbiBhIHB1cmUgcXVhbnR1bSBzdGF0ZSBhbmQgZXZhcG9yYXRlcyBjb21wbGV0ZWx5IGJ5IGEgdW5pdGFyeSBwcm9jZXNzLCB0aGUgdm9uIE5ldW1hbm4gZW50cm9weSBvZiB0aGUgSGF3a2luZyByYWRpYXRpb24gaW5pdGlhbGx5IGluY3JlYXNlcyBhbmQgdGhlbiBkZWNyZWFzZXMgYmFjayB0byB6ZXJvIHdoZW4gdGhlIGJsYWNrIGhvbGUgaGFzIGRpc2FwcGVhcmVkLiBUaGlzIGlzIGNhbGxlZCB0aGUgUGFnZSBjdXJ2ZS4NCjE5OTM6W0Jvb2tzXVtIaXN0b3J5XSBHcmVlbuKAmXMgRGljdGlvbmFyeSBvZiBTbGFuZyBpcyB0aGUgbGFyZ2VzdCBoaXN0b3JpY2FsIGRpY3Rpb25hcnkgb2YgRW5nbGlzaCBzbGFuZy4gV3JpdHRlbiBieSBKb25hdGhvbiBHcmVlbiBvdmVyIDE3IHllYXJzIGZyb20gMTk5MywgaXQgcmVhY2hlZCB0aGUgcHJpbnRlZCBwYWdlIGluIDIwMTAgaW4gYSB0aHJlZS12b2x1bWUgc2V0IGNvbnRhaW5pbmcgbmVhcmx5IDEwMCwwMDAgZW50cmllcyBzdXBwb3J0ZWQgYnkgb3ZlciA0MDAsMDAwIGNpdGF0aW9ucyBmcm9tIGMuIGFkIDEwMDAgdG8gdGhlIHByZXNlbnQgZGF5LiBUaGUgbWFpbiBmb2N1cyBvZiB0aGUgZGljdGlvbmFyeSBpcyB0aGUgY292ZXJhZ2Ugb2Ygb3ZlciA1MDAgeWVhcnMgb2Ygc2xhbmcgZnJvbSBjLiAxNTAwIG9ud2FyZHMuDQoxOTkzOltFbnZdW0Rpc2FzdGVyXSBTb3V0aCBBc2lhbiBtb25zb29uIGZsb29kcywgM2sgZGVhdGhzDQoxOTkzOltHZW9ncmFwaHldIFRoZSBsYXN0IG1ham9yIHNoaWZ0cyBpbiBFYXJ0aCdzIGF4aXMgd2VyZSBpbmZsdWVuY2VkIGJ5IGNsaW1hdGUgY2hhbmdlOiBhIDMxLjUtaW5jaCBzaGlmdCBiZXR3ZWVuIDE5OTMgYW5kIDIwMTAgd2FzIHByaW1hcmlseSBjYXVzZWQgYnkgZ3JvdW5kd2F0ZXIgcHVtcGluZywgYW5kIGEgY2hhbmdlIGluIHBvbGFyIGRyaWZ0IGRpcmVjdGlvbiBhcm91bmQgdGhlIDE5OTBzIHdhcyBsaW5rZWQgdG8gbWVsdGluZyBnbGFjaWVycyBhbmQgaWNlIHNoZWV0cyBkdWUgdG8gZ2xvYmFsIHdhcm1pbmcuIEVhcnRoJ3MgYXhpcyBhbHNvIHNoaWZ0ZWQgYnkgYWJvdXQgNi41IGluY2hlcyBpbiBNYXJjaCAyMDExIGFmdGVyIHRoZSBKYXBhbmVzZSBlYXJ0aHF1YWtlLCBjYXVzaW5nIHRoZSBwbGFuZXQgdG8gc3BpbiBzbGlnaHRseSBmYXN0ZXIuDQoxOTkzOltXaG9dIEluIDE5OTMsIEluZGlhIGNhbWUgaGVhcnRicmVha2luZ2x5IGNsb3NlIHRvIHdpbm5pbmcgaXRzIGZpcnN0IE1pc3MgVW5pdmVyc2UgY3Jvd24gd2l0aCB0aGUgc3R1bm5pbmcgYW5kIGdyYWNlZnVsIE5hbXJhdGEgU2hpcm9ka2FyLCB3aG8gaGFkIGVhcmxpZXIgd29uIHRoZSBGZW1pbmEgTWlzcyBJbmRpYSB0aXRsZS4gUmVwcmVzZW50aW5nIEluZGlhIGF0IHRoZSBNaXNzIFVuaXZlcnNlIHBhZ2VhbnQgaGVsZCBpbiBNZXhpY28gQ2l0eSwgTmFtcmF0YSB3YXMgYSBzdHJvbmcgY29udGVuZGVy4oCUZWxlZ2FudCBpbiBoZXIgZ293biwgcG9pc2VkIGluIGludGVydmlld3MsIGFuZCBhIGZhbiBmYXZvcml0ZS4gU2hlIGVhc2lseSBtYWRlIGl0IHRvIHRoZSBUb3AgNiwgYW5kIGhlciBjaGFuY2VzIG9mIHdpbm5pbmcgbG9va2VkIGluY3JlZGlibHkgaGlnaC4gQnV0IHRoZW4gY2FtZSB0aGUgZmluYWwgcXVlc3Rpb246IOKAnElmIHlvdSBjb3VsZCBiZSBib3JuIGFzIGFueSBoaXN0b3JpY2FsIGZpZ3VyZSwgd2hvIHdvdWxkIGl0IGJlIGFuZCB3aHk/4oCdIFdoaWxlIG90aGVyIGNvbnRlc3RhbnRzIG5hbWVkIGdsb2JhbCBpY29ucyBsaWtlIE1vdGhlciBUZXJlc2EgYW5kIFByaW5jZXNzIERpYW5hLCBOYW1yYXRhIGdhdmUgYW4gaG9uZXN0LCBwZXJzb25hbCBhbnN3ZXLigJRzaGUgc2FpZCBzaGUgd291bGQgYmUgYm9ybiBhcyBoZXJzZWxmIG9yIHNvbWVvbmUgY2xvc2UgdG8gaGVyLCBiZWNhdXNlIHNoZSBiZWxpZXZlZCBpbiBsaXZpbmcgbGlmZSB3aXRoIHRydXRoIGFuZCBpbmRpdmlkdWFsaXR5LiBJdCB3YXMgYSBiZWF1dGlmdWwsIGdyb3VuZGVkIGFuc3dlcuKAlGJ1dCBub3QgdGhlIGtpbmQgb2YgZ3JhbmQsIGlkZWFsaXN0aWMgcmVzcG9uc2UgdGhlIGp1ZGdlcyB3ZXJlIGV4cGVjdGluZy4gVGhhdCBvbmUgbW9tZW50IG9mIHRydXRoLCBtYW55IGJlbGlldmUsIGNvc3QgaGVyIHRoZSBjcm93biwgYW5kIEluZGlhIGhhZCB0byB3YWl0IGFub3RoZXIgeWVhciBiZWZvcmUgU3VzaG1pdGEgU2VuIGJyb3VnaHQgdGhlIE1pc3MgVW5pdmVyc2UgdGl0bGUgaG9tZSBpbiAxOTk0LiBTdGlsbCwgTmFtcmF0YeKAmXMgYW5zd2VyIGJlY2FtZSBpY29uaWPigJRub3QgYmVjYXVzZSBpdCB3b24sIGJ1dCBiZWNhdXNlIGl0IHdhcyByZWFsLCBtYXJraW5nIGEgcmFyZSBpbnN0YW5jZSB3aGVyZSBob25lc3R5IHN0b29kIHRhbGxlciB0aGFuIGRpcGxvbWFjeS4NCjE5OTM6W0F2aWF0aW9uXVtFeHRyZW1lXVtXaG9dIFRoZSBIZXJic3QgbWFuZXV2ZXIgd2FzIGZpcnN0IHN1Y2Nlc3NmdWxseSBwZXJmb3JtZWQgb24gQXByaWwgMjksIDE5OTMsIGJ5IGFuIFgtMzEgYWlyY3JhZnQuIE5hbWVkIGFmdGVyIFdvbGZnYW5nIEhlcmJzdCwgYSBkZXZlbG9wZXIgb2YgcG9zdC1zdGFsbCB0ZWNobm9sb2d5IGZvciBNZXNzZXJzY2htaXR0LULDtmxrb3ctQmxvaG0gKE1CQiksIHRoaXMsIHBvc3Qtc3RhbGwgbWFuZXV2ZXIgZW5hYmxlcyBhIGZpZ2h0ZXIgdG8gbWFrZSBhIHJhcGlkIDE4MMKwIHR1cm4gd2l0aGluIGEgbWluaW1hbCByYWRpdXMuIA0KDQoxOTk04oCTMTk5NTpbVVNdW0dlb1BvbGl0aWNzXSBvY2N1cGF0aW9uIG9mIEhhaXRpLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgRXVyb3BlYW4gRWNvbm9taWMgQXJlYSwgYWJicmV2aWF0ZWQgYXMgRUVBLCBjb25zaXN0cyBvZiB0aGUgTWVtYmVyIFN0YXRlcyBvZiB0aGUgRXVyb3BlYW4gVW5pb24gKEVVKSBhbmQgdGhyZWUgY291bnRyaWVzIG9mIHRoZSBFdXJvcGVhbiBGcmVlIFRyYWRlIEFzc29jaWF0aW9uIChFRlRBKSAoSWNlbGFuZCwgTGllY2h0ZW5zdGVpbiBhbmQgTm9yd2F5OyBleGNsdWRpbmcgU3dpdHplcmxhbmQpLiBUaGUgQWdyZWVtZW50IG9uIHRoZSBFRUEgZW50ZXJlZCBpbnRvIGZvcmNlIG9uIDEgSmFudWFyeSAxOTk0LiANCjE5OTQ6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEV1cm9wZWFuIEVjb25vbWljIEFyZWEgKEVFQSkgd2FzIGVzdGFibGlzaGVkIG9uIDEgSmFudWFyeSAxOTk0LiBUaGUgYWdyZWVtZW50IGxpbmtzIHRoZSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aHJlZSBFRlRBIHN0YXRlc+KAlEljZWxhbmQsIExpZWNodGVuc3RlaW4sIGFuZCBOb3J3YXnigJRpbnRvIGEgc2luZ2xlIGludGVybmFsIG1hcmtldCwgYWxsb3dpbmcgZm9yIHRoZSBmcmVlIG1vdmVtZW50IG9mIGdvb2RzLCBwZXJzb25zLCBzZXJ2aWNlcywgYW5kIGNhcGl0YWwuIA0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBOQUZUQSwgdGhlIE5vcnRoIEFtZXJpY2FuIEZyZWUgVHJhZGUgQWdyZWVtZW50LCB3YXMgYSAxOTk0IGFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzLCBDYW5hZGEsIGFuZCBNZXhpY28gdG8gZWxpbWluYXRlIHRyYWRlIGJhcnJpZXJzIGFuZCBwcm9tb3RlIGZyZWUgdHJhZGUgaW4gTm9ydGggQW1lcmljYS4gSXQgZmFjaWxpdGF0ZWQgdGhlIG1vdmVtZW50IG9mIGdvb2RzIGFuZCBzZXJ2aWNlcyBhbmQgZXN0YWJsaXNoZWQgYSBsYXJnZSB0cmFkZSBibG9jLiBJbiBKdWx5IDIwMjAsIE5BRlRBIHdhcyByZXBsYWNlZCBieSB0aGUgVW5pdGVkIFN0YXRlcy1NZXhpY28tQ2FuYWRhIEFncmVlbWVudCAoVVNNQ0EpLCB3aGljaCBtb2Rlcm5pemVkIGFuZCBlbmhhbmNlZCB0aGUgdHJlYXR5IGZvciBhIGNvbnRlbXBvcmFyeSBlY29ub215Lg0KMTk5NDpbUy5BZnJpY2FdW1NvY2lhbGlzbV0gRmlyc3QgZnJlZSBlbGVjdGlvbnMgaW4gU291dGggQWZyaWNhOyBOZWxzb24gTWFuZGVsYQ0KMTk5NDpbUmVzZWFyY2hdW3NwYWNlXSBDYXJsIFNhZ2FuIGNvbmNlZGVkIHRoYXQgdGhpcyBhcHByb2FjaCB3b3VsZCBub3Qgd29yayBiZWNhdXNlIHRoZSBhdG1vc3BoZXJlIG9mIFZlbnVzIGlzIGZhciBkZW5zZXIgKDkwIGJhcnMpIHRoYW4gd2hhdCB3YXMgdW5kZXJzdG9vZCBpbiAxOTYxIChhIGZldyBiYXJzKSwgbWVhbmluZyB0aGUgY2FyYm9uIHdvdWxkIGp1c3QgYmUgb3hpZGl6ZWQgYmFjayBpbnRvIENPMi4NCjE5OTQ6W0NvbXB1dGluZ11bUXVhbnR1bV0gUGV0ZXIgU2hvciBkaXNjb3ZlcmVkIGFuIGFsZ29yaXRobSAoU2hvcidzIGFsZ29yaXRobSkgdGhhdCBjb3VsZCBmYWN0b3IgbGFyZ2UgbnVtYmVycyBpbiBwb2x5bm9taWFsIHRpbWUgb24gYSBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCB3b3VsZCBicmVhayB0aGUgc2VjdXJpdHkgb2YgbWFueSBjcnlwdG9ncmFwaGljIHNjaGVtZXMuIA0KMTk5NDpbQ29tcHV0aW5nXVtRdWFudHVtXSBQZXRlciBTaG9yIGFuZCBEb24gQ29wcGVyc21pdGggZmlndXJlZCBvdXQgaG93IHRvIHRha2UgYSBRdWFudHVtIEZvdXJpZXIgVHJhbnNmb3JtLg0KMTk5NDpUaGUgcHJvYmxlbSB3aXRoIHRoZSBwYXBlciBwdWJsaXNoZWQgZWFybGllciB0aGlzIG1vbnRoIHdhcyBpdHMgcmVsaWFuY2Ugb24gU2Nobm9ycidzIGFsZ29yaXRobSAobm90IHRvIGJlIGNvbmZ1c2VkIHdpdGggU2hvcuKAmXMgYWxnb3JpdGhtKSwgd2hpY2ggd2FzIGRldmVsb3BlZCBpbiAxOTk0LiBTY2hub3Jy4oCZcyBhbGdvcml0aG0gaXMgYSBjbGFzc2ljYWwgY29tcHV0YXRpb24gYmFzZWQgb24gbGF0dGljZXMsIHdoaWNoIGFyZSBtYXRoZW1hdGljYWwgc3RydWN0dXJlcyB0aGF0IGhhdmUgbWFueSBhcHBsaWNhdGlvbnMgaW4gY29uc3RydWN0aXZlIGNyeXB0b2dyYXBoeSBhbmQgY3J5cHRhbmFseXNpcy4gVGhlIGF1dGhvcnMgd2hvIGRldmlzZWQgU2Nobm9ycuKAmXMgYWxnb3JpdGhtIHNhaWQgaXQgY291bGQgZW5oYW5jZSB0aGUgdXNlIG9mIHRoZSBoZXVyaXN0aWMgcXVhbnR1bSBvcHRpbWl6YXRpb24gbWV0aG9kIGNhbGxlZCBRQU9BLg0KMTk5NCAoSmFuIDEpOiBbR2VvUG9saXRpY3NdIFRoZSBOb3J0aCBBbWVyaWNhbiBGcmVlIFRyYWRlIEFncmVlbWVudCAoTkFGVEEpIHdhcyBhbiBhZ3JlZW1lbnQgc2lnbmVkIGJ5IENhbmFkYSwgTWV4aWNvLCBhbmQgdGhlIFVuaXRlZCBTdGF0ZXMgdGhhdCBjcmVhdGVkIGEgdHJpbGF0ZXJhbCB0cmFkZSBibG9jIGluIE5vcnRoIEFtZXJpY2EuIFRoZSBhZ3JlZW1lbnQgY2FtZSBpbnRvIGZvcmNlIG9uIEphbnVhcnkgMSwgMTk5NCwgYW5kIHN1cGVyc2VkZWQgdGhlIDE5ODggQ2FuYWRh4oCTVW5pdGVkIFN0YXRlcyBGcmVlIFRyYWRlIEFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzIGFuZCBDYW5hZGEuIFRoZSBOQUZUQSB0cmFkZSBibG9jIGZvcm1lZCBvbmUgb2YgdGhlIGxhcmdlc3QgdHJhZGUgYmxvY3MgaW4gdGhlIHdvcmxkIGJ5IGdyb3NzIGRvbWVzdGljIHByb2R1Y3QuDQoxOTk0OltUZWNobm9sb2d5XVtCdXNpbmVzc11bVVNdW0NvbXB1dGluZ10gVGhlIERlbGwgTGF0aXR1ZGUgc2VyaWVzIGlzIGEgbGluZSBvZiBsYXB0b3AgY29tcHV0ZXJzIG1hbnVmYWN0dXJlZCBhbmQgc29sZCBieSBBbWVyaWNhbiBjb21wYW55IERlbGwuIEl0IGlzIGEgYnVzaW5lc3Mtb3JpZW50ZWQgbGluZSwgYWltZWQgYXQgY29ycG9yYXRlIGVudGVycHJpc2VzLCBoZWFsdGhjYXJlLCBnb3Zlcm5tZW50LCBhbmQgZWR1Y2F0aW9uIG1hcmtldHM7IHVubGlrZSB0aGUgSW5zcGlyb24gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBpbmRpdmlkdWFsIGN1c3RvbWVycywgYW5kIHRoZSBWb3N0cm8gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBzbWFsbGVyIGJ1c2luZXNzZXMuIFRoZSBMYXRpdHVkZSBkaXJlY3RseSBjb21wZXRlcyB3aXRoIHRoZSBMZW5vdm8gVGhpbmtQYWQgYW5kIHRoZSBFbGl0ZUJvb2sgc2VyaWVzIGJ5IEhQLiBBZGRpdGlvbmFsbHksIHRoZSAiUnVnZ2VkIChFeHRyZW1lKSIsICJYRlIiIGFuZCAiQVRHIiBtb2RlbHMgY29tcGV0ZSBwcmltYXJpbHkgd2l0aCBQYW5hc29uaWMncyBUb3VnaGJvb2sgbGluZSBvZiAicnVnZ2VkIiBsYXB0b3BzLg0KMTk5NDogU3VzaG1pdGEgU2VuIGJlY2FtZSBNaXNzIFVuaXZlcnNlLg0KMTk5NDogVGhlIEFubmFscyBvZiBJbXByb2JhYmxlIFJlc2VhcmNoIGlzIGEgYmktbW9udGhseSBtYWdhemluZSBkZXZvdGVkIHRvIHNjaWVudGlmaWMgaHVtb3IsIGluIHRoZSBmb3JtIG9mIGEgc2F0aXJpY2FsIHRha2Ugb24gdGhlIHN0YW5kYXJkIGFjYWRlbWljIGpvdXJuYWwuDQoxOTk0OiBMaW5kb24gTGVhZGVyIG9mIExhbmRvciBBc3NvY2lhdGVzLCBvZiBTYW4gRnJhbmNpc2NvIGRlc2lnbmVkIHdvcmRtYXJrcyBmb3IgRmVkRXgncyB2YXJpb3VzIE9wLXVuaXQuIEZlZEV44oCZcyBwdWJsaWMtcmVsYXRpb25zIGZpcm0gd2FudGVkIHRvIGhpZ2hsaWdodCB0aGUgYXJyb3cgc28gaXQgd291bGQgYmUgb2J2aW91cy4gQnV0IGhlIGZvdWdodCB0aGVtIG9uIHRoYXQg4oCUIGhlIHRob3VnaHQgaXQgd291bGQgYmUgb3ZlcmtpbGwuIFRoZXJl4oCZcyBzb21ldGhpbmcgYWJvdXQgbWFraW5nIHBlb3BsZSBkaXNjb3ZlciBzb21ldGhpbmcgb24gdGhlaXIgb3duIHRoYXTigJlzIGEgbG90IG1vcmUgcG93ZXJmdWwgdGhhbiBpdGFsaWNpemluZyBpdCB0byBtYWtlIHlvdXIgcG9pbnQuDQoxOTk0OiBTY2lsYWIgMS4xLCB0aGUgZmlyc3QgcmVsZWFzZWQgdmVyc2lvbiBvZiBTY2lsYWIsIHdhcyBwdXQgb24gYW5vbnltb3VzIGZ0cCBzaXRlLg0KMTk5NDogVGhlIGNvbmNlcHQgb2YgYSBjYWbDqSB3aXRoIGZ1bGwgSW50ZXJuZXQgYWNjZXNzIChhbmQgdGhlIG5hbWUgQ3liZXJjYWbDqSkgd2FzIGludmVudGVkIGluIGVhcmx5IGJ5ICBhIEJyaXRpc2ggdGVjaG5vbG9neSBhcnRpc3QsIEl2YW4gUG9wZS4NCjE5OTQ6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIGx1cmVkIG9uZSBvZiBEYXdvb2QncyBmYXZvcml0ZSAibmFyY28tdGVycm9yaXN0IiBQaGlsbHUgS2hhbiBhbGlhcyBCYWtodGl5YXIgQWhtZWQgS2hhbiB0byBhIGhvdGVsIHJvb20gaW4gQmFuZ2tvaywgd2hlcmUgaGUgd2FzIHRvcnR1cmVkIHRvIGRlYXRoLCBoYXZpbmcgYmVlbiBiZXRyYXllZCBieSBoaXMgY2xvc2VzdCBhaWRlIGFuZCBzaWRla2ljayBNYW5nZXNoICJNYW5neWEiIFBhd2FyLiBELUNvbXBhbnkncyBTaGFyYWQsIHVzZWQgaGlzIGxpbmtzIHdpdGggTXVtYmFpLWJhc2VkIGhvdGVsaWVyIFZpbm9kIGFuZCBBLiBNaXNocmEgdG8gdHJhY2sgZG93biBSYWphbiBpbiBCYW5na29rLiBSYWphbidzIGhpdG1hbiBSb2hpdCBWYXJtYSBhbmQgaGlzIHdpZmUgc2hvdCBieSBELUNvbXBhbnkuDQoxOTk0KEp1bCAxNik6W1NwYWNlXSBGcm9tIEp1bHkgMTYgdG8gMjIsIDE5OTQsIGVub3Jtb3VzIHBpZWNlcyBvZiB0aGUgY29tZXQgU2hvZW1ha2VyLUxldnkgOSAoU0w5KSwgZGlzY292ZXJlZCBqdXN0IGEgeWVhciBwcmlvciwgY3Jhc2hlZCBpbnRvIEp1cGl0ZXIgb3ZlciBzZXZlcmFsIGRheXMsIGNyZWF0aW5nIGh1Z2UsIGRhcmsgc2NhcnMgaW4gdGhlIHBsYW5ldCdzIGF0bW9zcGhlcmUgYW5kIGxvZnRpbmcgc3VwZXJoZWF0ZWQgcGx1bWVzIGludG8gaXRzIHN0cmF0b3NwaGVyZS4NCjE5OTQgKE9jdCk6IElUUE8gYW5kIEdvSSdzIE5JQyBqb2ludGx5IHNldC11cCB0aGUgTmF0aW9uYWwgQ2VudHJlIGZvciBUcmFkZSBJbmZvcm1hdGlvbiAoTkNUSSkgYXQgUHJhZ2F0aSBNYWlkYW4uDQoxOTk0IChOb3YgMSwgMTU6MDEgSVNUKTpbU3BhY2VdW1N1bl0gVGhlIEdsb2JhbCBHZW9zcGFjZSBTY2llbmNlICdXaW5kJyBzYXRlbGxpdGUgaXMgYSBOQVNBIHNjaWVuY2Ugc3BhY2VjcmFmdCBkZXNpZ25lZCB0byBzdHVkeSByYWRpbyB3YXZlcyBhbmQgcGxhc21hIHRoYXQgb2NjdXIgaW4gdGhlIHNvbGFyIHdpbmQgYW5kIGluIHRoZSBFYXJ0aCdzIG1hZ25ldG9zcGhlcmUuIA0KMTk5NCAoRGVjIDMpOiBTb255J3MgUGxheVN0YXRpb24gKGEgdmlkZW8gZ2FtZSBjb25zb2xlKSB3YXMgaW50cm9kdWNlZCB0byB0aGUgd29ybGQgZnJvbSBNaW5hdG8sIFRva3lvIChKYXBhbikuDQoxOTk0OiBXWFlDLSBmaXJzdCBpbnRlcm5ldCByYWRpbyBzdGF0aW9uIGJyb2FkY2FzdC4NCjE5OTQ6IE1lbW9yeSBjYXJkcyB3ZXJlIGludHJvZHVjZWQgaW4gdGhlIGNvbnN1bWVyIGVsZWN0cm9uaWNzIG1hcmtldC4NCjE5OTQgKEF1Zyk6IElUUE8ncyAxc3QgRGVsaGkgQm9vayBGYWlyIGF0ICBIYWxsIDggdG8gMTIgb2YgUHJhZ2F0aSBNYWlkYW4sIE5ldyBEZWxoaS4gVGhlIHRpbWluZ3Mgb2YgZmFpciBhcmUgZnJvbSAxMC4wMCBhbSB0byA4LjAwIHBtIChlbnRyeSB0byBmYWlyIHdpbGwgY2xvc2UgYXQgNy4zMCBwbSkuDQoxOTk0IChTZXApOiBUaGUgQ09OQ0VSVCBzb2Z0d2FyZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgaW1wbGVtZW50ZWQgYXQgYWxsIG9mIHRoZSBmaXZlIFBSUycgc2l0ZXMgU2VjdW5kZXJhYmFkIGluIFNlcHQuIDE5OTQsIE5ldyBEZWxoaSBvbiBTZXB0LiAxOTk2LCBDYWxjdXR0YSBvbiAxNHRoIEp1bmUgMTk5OCwgTXVtYmFpIG9uIDExdGggSmFuIDE5OTkgYW5kIENoZW5uYWkgb24gMTJ0aCBBcHJpbCAxOTk5Lg0KMTk5NDogdGhlIDI0dGggYW5kIHRoZSBsYXN0IEdQUyBzYXRlbGxpdGUgd2FzIGxhdW5jaGVkIGluIFVTLg0KMTk5NDogVGhlIHdvcmQgVGFsaWJhbiBpcyBQYXNodG8sINi32KfZhNio2KfZhiDhua3EgWxpYsSBbiwgbWVhbmluZyAic3R1ZGVudHMiLCB0aGUgcGx1cmFsIG9mIOG5rcSBbGliLiBBZnRlciB0aGUgU292aWV0IFVuaW9uIGludGVydmVuZWQgYW5kIG9jY3VwaWVkIEFmZ2hhbmlzdGFuIGluIDE5NzksIElzbGFtaWMgbXVqYWhpZGVlbiBmaWdodGVycyBlbmdhZ2VkIGluIHdhciB3aXRoIHRob3NlIFNvdmlldCBmb3JjZXMsIHdoaWNoIGxhaWQgdGhlIGZvdW5kYXRpb24gb2YgcG9saXRpY2FsIG1vdmVtZW50IGFuZCBtaWxpdGFyeSBvcmdhbml6YXRpb24gbmFtZWQgVGFsaWJhbi4NCjE5OTQ6IEFiZHVsIEthcmVlbSBUZWxnaSBhY3F1aXJlZCB0aGUgbGljZW5zZSBmb3Igc2VsbGluZyBzdGFtcCBwYXBlciBhbmQgb3BlbmVkIGFuIG9mZmljZSBpbiBNdW1iYWkuIEFmdGVyIHRoYXQsIGhlIHN0YXJ0ZWQgcHJpbnRpbmcgc3RhbXAgcGFwZXIgaW4gTmFzaGlrLiBXaXRoIHNvbWUgYWdlbnRz4oCZIGhlbHAsIGhlIHN0YXJ0cyBzZWxsaW5nIGZha2Ugc3RhbXAgcGFwZXIgaW4gYnVsayB0byBiYW5rcywgaW5zdXJhbmNlIGNvbXBhbmllcywgc3RvY2sgYnJva2VyYWdlIGZpcm1zLCBhbmQgY29ycG9yYXRlcy4gSW4gMjAwMyB0aGUgVGVsZ2kgc2NhbSB3YXMgdW5mb2xkZWQ7IHRoZSBmaWd1cmUgaW4gdGhlIG1pbmQgb2Ygc2VjdXJpdHkgYW5kIGludGVsbGlnZW5jZSBhZ2VuY2llcyB3YXMgdXAgdG8gUnMuMjBrIENyb3JlDQoxOTk0OiBbR2VvUG9saXRpY3NdIEludGVybmF0aW9uYWwgQXNzb2NpYXRpb24gb2YgR2VuZGFybWVyaWVzIGFuZCBQb2xpY2UgRm9yY2VzIHdpdGggTWlsaXRhcnkgU3RhdHVzIChjb21tb25seSBrbm93biBhcyBGSUVQIGZvciBGcmFuY2UtSXRhbGlhLUVzcGHDsWEtUG9ydHVnYWwsIHRoZSBmaXJzdCBmb3VyIG1lbWJlcnMpIGlzIGFuIGFzc29jaWF0aW9uIG9mIG5hdGlvbmFsIGdlbmRhcm1lcmllcyBvciBtaWxpdGFyeSBwb2xpY2UgZm9yY2VzLg0KMTk5NDpbQm9va10gUGFsZSBCbHVlIERvdDogQSBWaXNpb24gb2YgdGhlIEh1bWFuIEZ1dHVyZSBpbiBTcGFjZSBpcyBhIDE5OTQgYm9vayBieSB0aGUgYXN0cm9ub21lciBDYXJsIFNhZ2FuLiBJdCBpcyB0aGUgc2VxdWVsIHRvIFNhZ2FuJ3MgMTk4MCBib29rIENvc21vcyBhbmQgd2FzIGluc3BpcmVkIGJ5IHRoZSBmYW1vdXMgMTk5MCBQYWxlIEJsdWUgRG90IHBob3RvZ3JhcGgsIGZvciB3aGljaCBTYWdhbiBwcm92aWRlcyBhIHBvaWduYW50IGRlc2NyaXB0aW9uLiBJbiB0aGUgYm9vaywgU2FnYW4gbWl4ZXMgcGhpbG9zb3BoeSBhYm91dCB0aGUgaHVtYW4gcGxhY2UgaW4gdGhlIHVuaXZlcnNlIHdpdGggYSBkZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCBrbm93bGVkZ2UgYWJvdXQgdGhlIFNvbGFyIFN5c3RlbS4gSGUgYWxzbyBkZXRhaWxzIGEgaHVtYW4gdmlzaW9uIGZvciB0aGUgZnV0dXJlLg0KMTk5NDpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTWVjaGFnb2R6aWxsYSBJSSgxOTkzKQ0KMTk5NDpbQ2luZW1hXSBUaGUgQXBwbGUoMTk4MCkNCjE5OTQ6W0NpbmVtYV0gVGhlIEF0bGFudGlzIEludGVyY2VwdG9ycygxOTgzKQ0KMTk5NDpbTW50bmdnXSBJbiAxOTk0LCBNYXJrIFdoZXR1IHN1bW1pdHRlZCBNdCBFdmVyZXN0IHdpdGggTWlrZSBSZWluYmVyZ2VyLiBCdXQgYWZ0ZXIgYSBmcmVlemluZyBuaWdodCwgV2hldHUgZmFjZWQgYSBoYXJyb3dpbmcgY2hvaWNlOiBsZWF2ZSBoaXMgZnJpZW5kIG9yIHJlbWFpbiBmb3JldmVyLiBUaGUgRmF0YWwgR2FtZSAoMTk5NykNCjE5OTQ6W1RvdXJpc21dIFRoZSBBZHZlbnR1cmUgVG91ciBPcGVyYXRvcnMgQXNzb2NpYXRpb24gb2YgSW5kaWEgKEFUT0FJKSB3YXMgZm91bmRlZCBpbiAxOTk0LiBJdCB3YXMgZXN0YWJsaXNoZWQgYnkgYSBncm91cCBvZiB0cmF2ZWwgdHJhZGUgYWR2ZW50dXJlcnMgd2hvIGFpbWVkIHRvIGNyZWF0ZSBhIHN0cm9uZyBzdXBwb3J0IG5ldHdvcmsgZm9yIEluZGlhbiBhZHZlbnR1cmUgdG91ciBvcGVyYXRvcnMuIA0KDQoxOTk1IChNYXkgMTkpOiBbUmVzZWFyY2hdW1NwYWNlXSB0d28gc2NpZW50aXN0cyBhdCBDYWwgUG9seSBzaG93ZWQgdGhhdCBiYWN0ZXJpYSBjYW4gc3Vydml2ZSB3aXRob3V0IGFueSBtZXRhYm9saXNtIGZvciBhdCBsZWFzdCAyNSBtaWxsaW9uIHllYXJzOyBwcm9iYWJseSB0aGV5IGFyZSBpbW1vcnRhbC4NCjI0IE5vdmVtYmVyIDE5OTU6IFRoZSBOZXcgWW9yayBUaW1lcyBkZXNjcmliZWQgYmFjdGVyaWEgdGhhdCBjYW4gc3Vydml2ZSByYWRpYXRpb24gbXVjaCBzdHJvbmdlciB0aGFuIGFueSB0aGF0IEVhcnRoIGhhcyBldmVyIGV4cGVyaWVuY2VkLg0KV2UgYXJlIGNhbGxpbmcgdGhlIHVuaW9uIG9mIExvdmVsb2NrJ3MgR2FpYSB3aXRoIEhveWxlIGFuZCBXaWNrcmFtYXNpbmdoZSdzIGV4cGFuZGVkIHRoZW9yeSBvZiBwYW5zcGVybWlhIENvc21pYyBBbmNlc3RyeS4gVGhpcyBhY2NvdW50IG9mIGV2b2x1dGlvbiBhbmQgdGhlIG9yaWdpbiBvZiBsaWZlIG9uIEVhcnRoIGlzIHByb2ZvdW5kbHkgZGlmZmVyZW50IGZyb20gdGhlIHByZXZhaWxpbmcgc2NpZW50aWZpYyBwYXJhZGlnbS4gSXQgY2hhbGxlbmdlcyBub3QgbWVyZWx5IHRoZSBhbnN3ZXJzIGJ1dCB0aGUgcXVlc3Rpb25zIHRoYXQgYXJlIHBvcHVsYXIgdG9kYXkuIENvc21pYyBBbmNlc3RyeSByZXF1aXJlcyB0aGF0IGxpZmUgY2FuIG9ubHkgZGVzY2VuZCBmcm9tIGFuY2VzdG9ycyBhdCBsZWFzdCBhcyBoaWdobHkgZXZvbHZlZCBhcyBpdHNlbGYsIGFuZCB0aGF0IHRoZXJlIGNhbiBiZSBubyBvcmlnaW4gb2YgbGlmZSBmcm9tIG5vbmJpb2xvZ2ljYWwgbWF0dGVyLiBXaXRob3V0IHN1cGVybmF0dXJhbCBpbnRlcnZlbnRpb24sIHRoZXJlZm9yZSwgd2UgY29uY2x1ZGUgdGhhdCBsaWZlIG11c3QgaGF2ZSBhbHdheXMgZXhpc3RlZC4gQWx0aG91Z2ggdGhlc2UgY29uY2x1c2lvbnMgY3V0IGFjcm9zcyB0aGUgYm91bmRhcmllcyBiZXR3ZWVuIHNjaWVuY2UsIHBoaWxvc29waHksIGFuZCByZWxpZ2lvbiwgd2UgYmVsaWV2ZSB0aGV5IGFyZSBncm91bmRlZCBpbiBnb29kIGV2aWRlbmNlLiBBbmQgbmV3IGRhdGEgdGhhdCBzdXBwb3J0IG1hbnkgYXNwZWN0cyBvZiBDb3NtaWMgQW5jZXN0cnkgYXJlIGNvbWluZyBpbiByYXBpZGx5LiBJbiB0aGUgZm9sbG93aW5nIHBhZ2VzIHdlIHdpbGwgZXhwbGFpbiBob3cgdGhlc2UgYW5kIG90aGVyIHJlY2VudCBkZXZlbG9wbWVudHMgc3VwcG9ydCBDb3NtaWMgQW5jZXN0cnk6DQoNCjE5OTU6IEFOU0VUIHNvbGQgdG8gQU9MLCB3aG8gIG5vdyBydW5zIGl0Lg0KMTk5NSAoTWFyKTogRGVwdC4gb2YgSW5kaWFuIE1lZGljaW5lIGFuZCBIb21lb3BhdGh5IGZvdW5kZWQuDQoxOTk1IChNYXIgMjQpOltSZXNlYXJjaF0gUmVtb3RlbHkgT3BlcmF0ZWQgVmVoaWNsZSBLQUlLTyByZWFjaGVkIHRoZSBkZWVwZXN0IGFyZWEgb2YgdGhlIE1hcmlhbmEgVHJlbmNoIGFuZCBtYWRlIHRoZSBkZWVwZXN0IGRpdmluZyByZWNvcmQgb2YgMTAsOTExIG0gKDM1LDc5NyBmdDsgNSw5NjYgZmF0aG9tcykgDQoxOTk1OiBwaG9uZSBjYWxsIGNvc3RpbmcgUnMuIDE2IHBlciBtaW4uDQoxOTk1OltHYW1pbmddIFZpcnR1YSBDb3AgMiBpcyBhIGxpZ2h0IGd1biBzaG9vdGVyIGFyY2FkZSBnYW1lLCByZWxlYXNlZCBpbiAxOTk1IGFuZCBkZXZlbG9wZWQgaW50ZXJuYWxseSBhdCBTZWdhIGJ5IHRoZWlyIEFNMiBzdHVkaW8gKFl1IFN1enVraSkuIEl0IHdhcyBwb3J0ZWQgdG8gdGhlIFNlZ2EgU2F0dXJuIGluIDE5OTYuIEl0IHdhcyByZWxlYXNlZCBvbiBQQyBpbiAxOTk3IGFuZCBTZWdhIERyZWFtY2FzdCBpbiAyMDAwLiBJdCB3YXMgbGF0ZXIgYnVuZGxlZCB3aXRoIFZpcnR1YSBDb3AgaW4gVmlydHVhIENvcDogRWxpdGUgRWRpdGlvbiBmb3IgUGxheVN0YXRpb24gMiBpbiAyMDAyLg0KMTk5NSAoQXByIDEpOltSZXNlYXJjaF0gUGlsbGFycyBvZiBDcmVhdGlvbiBpcyBhIHBob3RvZ3JhcGggdGFrZW4gYnkgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgb2YgZWxlcGhhbnQgdHJ1bmtzIG9mIGludGVyc3RlbGxhciBnYXMgYW5kIGR1c3QgaW4gdGhlIEVhZ2xlIE5lYnVsYSwgaW4gdGhlIFNlcnBlbnMgY29uc3RlbGxhdGlvbiwgc29tZSA2LDUwMOKAkzcsMDAwIGxpZ2h0LXllYXJzICgyLDAwMOKAkzIsMTAwIHBjOyA2MeKAkzY2IEVtKSBmcm9tIEVhcnRoLg0KMTk5NSAoQXByIDEpOiBJQUFJIGFuZCBOQUEgd2VyZSBtZXJnZWQgYnkgYW4gQWN0IG9mIFBhcmxpYW1lbnQgYW5kIHdhcyBuYW1lZCBhcyBBaXJwb3J0cyBBdXRob3JpdHkgb2YgSW5kaWEgKEFBSSkuIFRoaXMgbmV3IG9yZ2FuaXNhdGlvbiB3YXMgdG8gYmUgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nLCB1cGdyYWRpbmcsIG1haW50YWluaW5nIGFuZCBtYW5hZ2luZyBjaXZpbCBhdmlhdGlvbiBpbmZyYXN0cnVjdHVyZSBib3RoIG9uIHRoZSBncm91bmQgYW5kIGFpciBzcGFjZSBpbiB0aGUgY291bnRyeS4NCjE5OTUgKEFwciAyMSk6W0NyaW1lXVtJbmRpYV0gQmFibG9vIHBpY2tlZCB1cCBieSB0aGUgU2luZ2Fwb3JlIGFpcnBvcnQgcG9saWNlIGZvciB0cmF2ZWxsaW5nIG9uIGZha2UgcGFzc3BvcnQuIEhlIHdhcyBzdGF5aW5nIGluIER1YmFpLg0KMTk5NSAoU2VwIDMwKTpbQ3JpbWVdW0luZGlhXSBTaW5nYXBvcmUgZXh0cmFkaXRlcyBJbmRpYSdzICdtb3N0LXdhbnRlZCBpbnRlci1zdGF0ZSBjcmltaW5hbCcgQmFibG9vIFNyaXZhc3RhdmEgKDMzWU8pDQoxOTk1IChOb3YgMzApOiBPcGVyYXRpb24gRGVzZXJ0IFN0b3JtIChGaXJzdCBJcmFxIFdhcilvZmZpY2lhbGx5IGVuZGVkLg0KMTk5NSAoTWF5IDMxKTpbQm9va11bTWlsaXRhcnldIEFkbWlyYWwgV2lsbGlhbSBILiBNY1JhdmVuJ3MgU3BlYyBPcHM6IENhc2UgU3R1ZGllcyBpbiBTcGVjaWFsIE9wZXJhdGlvbnMgV2FyZmFyZTogVGhlb3J5IGFuZCBQcmFjdGljZTsgU2VhIFN0b3JpZXM6IE15IExpZmUgaW4gU3BlY2lhbCBPcGVyYXRpb25zICgyMDE5LCBNYXkgMSk7IFRoZSBIZXJvIENvZGU6IExlc3NvbnMgTGVhcm5lZCBmcm9tIExpdmVzIFdlbGwgTGl2ZWQgKDIwMjEsIEFwciAxMykNCjE5OTU6IERyLiBIYW5kZSBhZnRlciBncmFkdWF0aW5nIGZyb20gSUlUIEtoYXJhZ3B1ciBjb25jZXB0dWFsaXplZCBTRUxDTyBJbmRpYSBkdXJpbmcgaGlzIFBoRCBvbiBzdXN0YWluYWJsZSBlbmVyZ3kgYXQgdGhlIFVuaXZlcnNpdHkgb2YgTWFzc2FjaHVzZXR0cy4gRHVyaW5nIGEgZmllbGQgdmlzaXQgdG8gdGhlIERvbWluaWNhbiBSZXB1YmxpYywgaGUgd2FzIHN1cnByaXNlZCB0byBzZWUgdGhlIHBvb3IgdXNpbmcgc29sYXIgbGlnaHRzLg0KMTk5NTogVGhlIEdvdmVybm1lbnQgb2YgSW5kaWEgYW5kIHRoZSBHb3Zlcm5tZW50IG9mIERlbGhpIGpvaW50bHkgc2V0IHVwIGEgY29tcGFueSBjYWxsZWQgdGhlIERlbGhpIE1ldHJvIFJhaWwgQ29ycG9yYXRpb24gKERNUkMpIG9uIDMgTWF5IDE5OTUsIHdpdGggRHIuIEUuIFNyZWVkaGFyYW4gYXMgdGhlIG1hbmFnaW5nIGRpcmVjdG9yLg0KMTk5NTogSW50J2wgR2FuZGhpIFBlYWNlIFByaXplIGxhdW5jaGVkLg0KMTk5NTogU2FjaGluIFIuIFRlbmR1a2FyIGFuZCBBbmphbGkgVGVuZHVsa2FyIHdlZGRlZCB0b2dldGhlci4NCjE5OTU6IC5tcDMgaW52ZW50ZWQuDQoxOTk1OltHYW1pbmddIFdoaWxlIEZJRkEgOTUgZGlkIG5vdCBhZGQgbXVjaCBvdGhlciB0aGFuIHRoZSBhYmlsaXR5IHRvIHBsYXkgd2l0aCBjbHViIHRlYW1zLCBGSUZBIDk2IHB1c2hlZCB0aGUgYm91bmRhcmllcy4gRm9yIHRoZSBmaXJzdCB0aW1lIHdpdGggcmVhbCBwbGF5ZXIgbmFtZXMgYnkgb2J0YWluaW5nIHRoZSBGSUZQcm8gbGljZW5zZSwgdGhlIFBsYXlTdGF0aW9uLCBQQywgMzJYIGFuZCBTZWdhIFNhdHVybiB2ZXJzaW9ucyB1c2VkIEVBJ3MgIlZpcnR1YWwgU3RhZGl1bSIgZW5naW5lLCB3aXRoIDJEIHNwcml0ZSBwbGF5ZXJzIG1vdmluZyBhcm91bmQgYSByZWFsLXRpbWUgM0Qgc3RhZGl1bS4NCjE5OTUgKEp1bCAxOCk6W0Jvb2tdIEJhcmFjayBPYmFtYSdzIERyZWFtcyBmcm9tIE15IEZhdGhlcjogQSBTdG9yeSBvZiBSYWNlIGFuZCBJbmhlcml0YW5jZTsgRHJlYW1zIGZyb20gTXkgRmF0aGVyOiBBIFN0b3J5IG9mIFJhY2UgYW5kIEluaGVyaXRhbmNlICgyMDA2LCBPY3QgMTcpOyBPZiBUaGVlIEkgU2luZzogQSBMZXR0ZXIgdG8gTXkgRGF1Z2h0ZXJzICgyMDEwLCBOb3YgMTYpOyBBIFByb21pc2VkIExhbmQgKDIwMjAsIE5vdiAxNykNCjE5OTUoSmFuIDEpOltFbnZdIFRoZSBBZ3JlZW1lbnQgb24gQWdyaWN1bHR1cmUgKEFvQSkgaXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgb2YgdGhlIFdvcmxkIFRyYWRlIE9yZ2FuaXphdGlvbi4gSXQgd2FzIG5lZ290aWF0ZWQgZHVyaW5nIHRoZSBVcnVndWF5IFJvdW5kIG9mIHRoZSBHZW5lcmFsIEFncmVlbWVudCBvbiBUYXJpZmZzIGFuZCBUcmFkZSwgYW5kIGVudGVyZWQgaW50byBmb3JjZSB3aXRoIHRoZSBlc3RhYmxpc2htZW50IG9mIHRoZSBXVE8gb24gSmFudWFyeSAxLCAxOTk1LiBCbHVlLCBSZWQsIEFtYmVyIGFuZCBHcmVlbiBCb3ggb2Ygc3Vic2lkaWVzLg0KMTk5NTpbQ2luZW1hXSBOZWxzb24gTWFuZGVsYSwgaW4gaGlzIGZpcnN0IHRlcm0gYXMgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYSwgaW5pdGlhdGVzIGEgdW5pcXVlIHZlbnR1cmUgdG8gdW5pdGUgdGhlIEFwYXJ0aGVpZC10b3JuIGxhbmQ6IGVubGlzdCB0aGUgbmF0aW9uYWwgcnVnYnkgdGVhbSBvbiBhIG1pc3Npb24gdG8gd2luIHRoZSAxOTk1IFJ1Z2J5IFdvcmxkIEN1cC4gLSAgSW52aWN0dXMgKDIwMDkpDQoxOTk1OltDaW5lbWFdIEEgQ2xvY2t3b3JrIE9yYW5nZSgxOTcxKQ0KMTk5NTpbQ2luZW1hXSBEZWFkIEVuZCBEcml2ZS1JbigxOTg2KQ0KMTk5NTpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gU3BhY2Vnb2R6aWxsYSgxOTk0KQ0KMTk5NTpbQ2luZW1hXSBIZWFydGJlZXBzKDE5ODEpDQoxOTk1OltDaW5lbWFdIFRoZSBNdW1teSdzIEN1cnNlKDE5NDQpDQoxOTk1IChEZWMpOltTcGFjZV0gU29sYXIgYW5kIEhlbGlvc3BoZXJpYyBPYnNlcnZhdG9yeSAoU29ITykgd2FzIGxhdW5jaGVkIGluIERlY2VtYmVyIDE5OTUgYXMgYSBqb2ludCBtaXNzaW9uIGJldHdlZW4gdGhlIEV1cm9wZWFuIFNwYWNlIEFnZW5jeSAoRVNBKSBhbmQgTkFTQSwgU29ITyB3YXMgZGVzaWduZWQgdG8gb3JiaXQgdGhlIFN1biB0byBsZWFybiBhYm91dCB0aGUgc3RydWN0dXJlIG9mIHRoZSBzdGFy4oCZcyBpbnRlcmlvciBhbmQgaXRzIG91dGVyIGF0bW9zcGhlcmUsIGFzIHdlbGwgYXMgdG8gaW52ZXN0aWdhdGUgdGhlIGJlaGF2aW9yIG9mIHNvbGFyIHdpbmRzLiBJdCB3YXMgZXhwZWN0ZWQgdG8gY29tcGxldGUgaXRzIG1pc3Npb24gaW4gMTk5OC4gSW5zdGVhZCwgaXQgaXMgc3RpbGwgYWN0aXZlIHRvZGF5LCBhbmQgaXMgbm93IGxpa2VseSB0byBrZWVwIHdvcmtpbmcgdW50aWwgMjAyNSwgd2hlbiBpdCB3aWxsIGhhdmUgYmVlbiBpbiBzcGFjZSBmb3IgMzAgeWVhcnMuDQoxOTk1OltQaHlzaWNzXVtTcGFjZV1bUmVzZWFyY2hdIFByaW9yIHRvIDE5OTUsIHRoZW9yaXN0cyBiZWxpZXZlZCB0aGF0IHRoZXJlIHdlcmUgZml2ZSBjb25zaXN0ZW50IHZlcnNpb25zIG9mIHN1cGVyc3RyaW5nIHRoZW9yeSAodHlwZSBJLCB0eXBlIElJQSwgdHlwZSBJSUIsIGFuZCB0d28gdmVyc2lvbnMgb2YgaGV0ZXJvdGljIHN0cmluZyB0aGVvcnkpLiBUaGlzIHVuZGVyc3RhbmRpbmcgY2hhbmdlZCBpbiAxOTk1IHdoZW4gRWR3YXJkIFdpdHRlbiBzdWdnZXN0ZWQgdGhhdCB0aGUgZml2ZSB0aGVvcmllcyB3ZXJlIGp1c3Qgc3BlY2lhbCBsaW1pdGluZyBjYXNlcyBvZiBhbiBlbGV2ZW4tZGltZW5zaW9uYWwgdGhlb3J5IGNhbGxlZCBNLXRoZW9yeS4gV2l0dGVuJ3MgY29uamVjdHVyZSB3YXMgYmFzZWQgb24gdGhlIHdvcmsgb2YgYSBudW1iZXIgb2Ygb3RoZXIgcGh5c2ljaXN0cywgaW5jbHVkaW5nIEFzaG9rZSBTZW4sIENocmlzIEh1bGwsIFBhdWwgVG93bnNlbmQsIGFuZCBNaWNoYWVsIER1ZmYuIEhpcyBhbm5vdW5jZW1lbnQgbGVkIHRvIGEgZmx1cnJ5IG9mIHJlc2VhcmNoIGFjdGl2aXR5IG5vdyBrbm93biBhcyB0aGUgc2Vjb25kIHN1cGVyc3RyaW5nIHJldm9sdXRpb24uDQoxOTk1OltDcmltZV1bSW5kaWFdIE11cmRlciBvZiBNdW1iYWktYmFzZWQgYnVpbGRlciBQcmFkZWVwIEphaW4gYnkgQWJ1IFNhbGVtDQoxOTk1OiBGb3J0dW5lIEhvdGVscyBpbiBJbmRpYSBpcyBvd25lZCBieSBpdHMgcGFyZW50IGNvbXBhbnksIElUQyBMdGQuLCB3aGljaCBlc3RhYmxpc2hlZCBGb3J0dW5lIEhvdGVscyBpbiAxOTk1IGFzIGEgc3Vic2lkaWFyeSB0byBwcm92aWRlIG1pZC1tYXJrZXQgdG8gdXBzY2FsZSBob3NwaXRhbGl0eSBzZXJ2aWNlcy4gSG93ZXZlciwgYSBzZXBhcmF0ZSBncm91cCwgRm9ydHVuZSBHcm91cCBvZiBIb3RlbHMsIGJhc2VkIGluIHRoZSBVbml0ZWQgQXJhYiBFbWlyYXRlcyAoVUFFKSBhbmQgZm91bmRlZCBieSBQcmF2ZWVuIFNoZXR0eSwgYWxzbyBvcGVyYXRlcyBhIGRpZmZlcmVudCBzZXQgb2YgaG90ZWxzIGluIHRoYXQgcmVnaW9uLg0KMTk5NTpbVUtdIENhbWlsbGEgaXMgUXVlZW4gb2YgdGhlIFVuaXRlZCBLaW5nZG9tIGFuZCAxNCBvdGhlciBDb21tb253ZWFsdGggcmVhbG1zIGFzIHRoZSB3aWZlIG9mIEtpbmcgQ2hhcmxlcyBJSUkuIENhbWlsbGEgd2FzIHJhaXNlZCBpbiBFYXN0IFN1c3NleCBhbmQgU291dGggS2Vuc2luZ3RvbiBpbiBFbmdsYW5kIGFuZCBlZHVjYXRlZCBpbiBFbmdsYW5kLCBTd2l0emVybGFuZCBhbmQgRnJhbmNlLiBJbiAxOTczLCBzaGUgbWFycmllZCBCcml0aXNoIEFybXkgb2ZmaWNlciBBbmRyZXcgUGFya2VyIEJvd2xlczsgdGhleSBkaXZvcmNlZCBpbiAxOTk1Lg0KDQoxOTk2OltHZW9Qb2xpdGljc11bQnVzaW5lc3NdIE1vbmdvbGlhIHdhcyBncmFudGVkIG9ic2VydmVyIHN0YXR1cyB0byBUUkFDRUNBLg0KMTk5NiAoNyBBdWd1c3QpOltSZXNlYXJjaF1bU3BhY2VdIE5BU0EgYW5ub3VuY2VkIGZvc3NpbGl6ZWQgZXZpZGVuY2Ugb2YgYW5jaWVudCBsaWZlIGluIG1ldGVvcml0ZSBBTEggODQwMDEgZnJvbSBNYXJzLg0KMTk5NiAoT2N0IDI3KTpbUmVzZWFyY2hdW1NwYWNlXSBnZW5ldGljaXN0cyBzaG93ZWQgZXZpZGVuY2UgdGhhdCBtYW55IGdlbmVzIGFyZSBtdWNoIG9sZGVyIHRoYW4gdGhlIGZvc3NpbCByZWNvcmQgd291bGQgaW5kaWNhdGUuIFN1YnNlcXVlbnQgc3R1ZGllcyBoYXZlIHN0cmVuZ3RoZW5lZCB0aGlzIGZpbmRpbmcuDQoxOTk2OltCdXNpbmVzc11bR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2hlbiB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4gc2lnbmVkIHRoZSBUcmVhdHkgb24gRGVlcGVuaW5nIE1pbGl0YXJ5IFRydXN0IGluIEJvcmRlciBSZWdpb25zIGluIFNoYW5naGFpLiBPbiAyNCBBcHJpbCAxOTk3IHRoZSBzYW1lIGNvdW50cmllcyBzaWduZWQgdGhlIFRyZWF0eSBvbiBSZWR1Y3Rpb24gb2YgTWlsaXRhcnkgRm9yY2VzIGluIEJvcmRlciBSZWdpb25zIGluIGEgbWVldGluZyBpbiBNb3Njb3csIFJ1c3NpYS4gT24gMjAgTWF5IDE5OTcgUnVzc2lhbiBQcmVzaWRlbnQgQm9yaXMgWWVsdHNpbiBhbmQgQ2hpbmVzZSBQcmVzaWRlbnQgSmlhbmcgWmVtaW4gc2lnbmVkIGEgZGVjbGFyYXRpb24gb24gYSAibXVsdGlwb2xhciB3b3JsZCIuDQoxOTk2OiAxOTk2IE1vdW50IEV2ZXJlc3QgRGlzYXN0ZXIsIGluIHdoaWNoIGVpZ2h0IHBlb3BsZSBkaWVkIHdoaWxlIG9uIGFuIGV4cGVkaXRpb24gdG8gc2NhbGUgdGhlIGluZmFtb3VzIHN1bW1pdC4gT25lIG9mIHRoZSBjbGltYmVycyB3aG8gbG9zdCBoaXMgbGlmZSB3YXMgQW5keSBIYXJyaXMsIHBsYXllZCBpbiBFdmVyZXN0IGJ5IE1hcnRpbiBIZW5kZXJzb24uIEhhcnJpcyB3YXMgb25lIG9mIHRoZSBndWlkZXMgZm9yIHRoZSBBZHZlbnR1cmUgQ29uc3VsdGFudHMsIGFsb25nIHdpdGggUm9iIEhhbGwgYW5kIE1pa2UgR3Jvb20uIEluIHRoZSBmaWxtLCBoZSBhcHBlYXJzIHRvIGRpZSB3aGlsZSB3aXRoIEhhbGwsIGZhbGxpbmcgb2ZmIGEgY2xpZmYgYWZ0ZXIgYSBoYWxsdWNpbmF0aW9uLiBCdXQgUm9iIEhhbGwgbmV2ZXIgcmVwb3J0ZWQgdGhpcywgYW5kIHNpbmNlIGhlIGRpZWQgc2hvcnRseSB0aGVyZWFmdGVyLCB0aGVyZSBpcyBubyB3YXkgdG8gY29uZmlybSB0aGUgY2lyY3Vtc3RhbmNlcyBzdXJyb3VuZGluZyBIYXJyaXMnIGRlYXRoLg0KMTk5NjpbQ29tcHV0aW5nXVtRdWFudHVtXSAgTG92IEdyb3ZlciBkZXZpc2VkIGFuIGFsZ29yaXRobSAoR3JvdmVyJ3MgYWxnb3JpdGhtKSB0aGF0IGNvdWxkIHNlYXJjaCBhbiB1bnNvcnRlZCBkYXRhYmFzZSBpbiBzcXVhcmUgcm9vdCB0aW1lIG9uIGEgcXVhbnR1bSBjb21wdXRlciwgd2hpY2ggd291bGQgb3V0cGVyZm9ybSBhbnkgY2xhc3NpY2FsIGFsZ29yaXRobS4NCjE5OTY6W1VTXSBCYXJhY2sgT2JhbWEgd2FzIGVsZWN0ZWQgdG8gdGhlIElsbGlub2lzIFNlbmF0ZSwgc3VjY2VlZGluZyBEZW1vY3JhdGljIFN0YXRlIFNlbmF0b3IgQWxpY2UgUGFsbWVyIGZyb20gSWxsaW5vaXMncyAxM3RoIERpc3RyaWN0LCB3aGljaCwgYXQgdGhhdCB0aW1lLCBzcGFubmVkIENoaWNhZ28gU291dGggU2lkZSBuZWlnaGJvcmhvb2RzIGZyb20gSHlkZSBQYXJr4oCTS2Vud29vZCBzb3V0aCB0byBTb3V0aCBTaG9yZSBhbmQgd2VzdCB0byBDaGljYWdvIExhd24uDQoxOTk2OltVS10gQ2hhcmxlcyBJSUkgYW5kIERpYW5hIGdldHMgZGl2b3JjZWQuDQoxOTk2IChKYW4gMjUpOltCb29rXSBQZXRlciBMeW5jaCAmIEpvaG4gUm90aGNoaWxkJ3MgTGVhcm4gdG8gRWFybjogQSBCZWdpbm5lcidzIEd1aWRlIHRvIHRoZSBCYXNpY3Mgb2YgSW52ZXN0aW5nIGFuZCBCdXNpbmVzcy4NCjE5OTYgKEphbik6W0NyaW1lXVtJbmRpYV0gQW5lZXMgSWJyYWhpbSBhcnJlc3RlZCBpbiBCYWhyYWluLCBzaGlmdGVkIHRvIER1YmFpIGFsbGVnZWRseSBvbiB0aGUgaW50ZXJ2ZW50aW9uIG9mIHNvbWUgb2YgRHViYWkncyBydWxpbmcgbm90YWJsZXMsIGFuZCB3YXMgdGhlbiBhbGxvd2VkIHRvIHNsaXAgYXdheSB0byBLYXJhY2hpLCBQYWtpc3Rhbi4NCjE5OTY6IE5hdGlvbmFsIEFlcm9zcGFjZSBMYWJvcmF0b3JpZXMsIEluZGlhIGluZGlnZW5vdXNseSBidWlsdCBGTE9TT0xWRVIsIEluZGlhJ3MgZmlyc3Qgc3VwZXJjb21wdXRlci4gSXQgd2FzIHJlcGxpY2F0ZWQgYW5kIGluc3RhbGxlZCBhdCBJQ0FEIE1vc2NvdyBpbiAxOTkxIHVuZGVyIFJ1c3NpYW4gY29sbGFib3JhdGlvbi4NCjE5OTY6IEluZGlhL1Bha2lzdGFuL1NyaSBMYW5rYSAxOTk2Lg0KMTk5NjpbQ29tcHV0aW5nXVt3d3ddIE1hcmlvIDY0IGdhbWUgcmFuIDEwMCBtaWxsaW9uIGNhbGN1bGF0aW9ucyBwZXIgc2Vjb25kLCA1NDAgbWlsbGlvbiAoSGFsZi1MaWZlKSBpbiAxOTk4LCBNaW5lY3JhZnQgKDIwMTEpIHJ1bm5pbmcgMTAwIGJpbGxpb24gY2FsY3VsYXRpb25zLCBDeWJlcnB1bmsgMjA3NyAobW9zdCByZWFsaXN0aWMgdmlkZW8gZ2FtZSAyMDI0KSwgeW91IG5lZWQgYSBncmFwaGljcyBjYXJkIHRoYXQgY2FuIHBlcmZvcm0gYXJvdW5kIDM2IHRyaWxsaW9uIGNhbGMgcGVyIHNlY29uZC4NCjE5OTY6IFByb2YgTWFsY29sbSBIZWF0aC4gUHJvZmVzc29yIG9mIEdyZWVrIExhbmd1YWdlIGFuZCBMaXRlcmF0dXJlIEBsZWVkcy5hYy51aywgdHJhbnNsYXRlZCBBcmlzdG90bGUncyBQb2V0aWNzLg0KMTk5NjogVGhlIDU2SyBtb2RlbSB3YXMgaW52ZW50ZWQgYnkgRHIuIEJyZW50IFRvd25zaGVuZA0KMTk5NiAoRmViIDEzKTogTmVwYWxlc2UgQ2l2aWwgV2FyIHN0YXJ0ZWQuIFRoZSBNYW9pc3QgUmViZWxsaW9uIChsYWJlbGxlZCB0aGUgUGVvcGxlJ3MgV2FyIGJ5IHRoZW4gQ1BOKE1hb2lzdCkpIHdhcyBhbiBhcm1lZCBjb25mbGljdCBhZ2FpbnN0IEdvdmVybm1lbnQgb2YgTmVwYWwgKHRoZW4gSE1HIG9mIE5lcGFsKSBmb3VnaHQgZnJvbSAxOTk2IHRvIDIwMDYuIFRoZSByZWJlbGxpb24gd2FzIGxhdW5jaGVkIGJ5IHRoZSBDb21tdW5pc3QgUGFydHkgb2YgTmVwYWwgKE1hb2lzdCkgb24gMTMgRmVicnVhcnkgMTk5NiB3aXRoIHRoZSBtYWluIGFpbSBvZiBvdmVydGhyb3dpbmcgdGhlIE5lcGFsZXNlIG1vbmFyY2h5IGFuZCBlc3RhYmxpc2hpbmcgYSAnUGVvcGxlJ3MgUmVwdWJsaWMnLiBJdCBlbmRlZCB3aXRoIHRoZSBDb21wcmVoZW5zaXZlIFBlYWNlIEFjY29yZCBzaWduZWQgb24gMjEgTm92ZW1iZXIgMjAwNi4NCjE5OTYgKE1hciAxKTogW0dlb1BvbGl0aWNzXSBUaGUgQXNpYeKAk0V1cm9wZSBNZWV0aW5nIChBU0VNKSBpcyBhbiBBc2lhbuKAk0V1cm9wZWFuIHBvbGl0aWNhbCBkaWFsb2d1ZSBmb3J1bSB0byBlbmhhbmNlIHJlbGF0aW9ucyBhbmQgdmFyaW91cyBmb3JtcyBvZiBjb29wZXJhdGlvbiBiZXR3ZWVuIGl0cyBwYXJ0bmVycy4gSXQgd2FzIG9mZmljaWFsbHkgZXN0YWJsaXNoZWQgYXQgdGhlIDFzdCBBU0VNIFN1bW1pdCAoQVNFTTEpIGluIEJhbmdrb2ssIFRoYWlsYW5kLCBieSB0aGUgdGhlbiAxNSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aGUgRXVyb3BlYW4gQ29tbWlzc2lvbiwgdGhlIHRoZW4gNyBNZW1iZXIgU3RhdGVzIG9mIHRoZSBBc3NvY2lhdGlvbiBvZiBTb3V0aGVhc3QgQXNpYW4gTmF0aW9ucyAoQVNFQU4pLCBhbmQgdGhlIGluZGl2aWR1YWwgY291bnRyaWVzIG9mIENoaW5hLCBKYXBhbiwgYW5kIFNvdXRoIEtvcmVhLiBBIHNlcmllcyBvZiBlbmxhcmdlbWVudHMgc2F3IGFkZGl0aW9uYWwgRVUgTWVtYmVyIFN0YXRlcyBqb2luIGFzIHdlbGwgYXMgSW5kaWEsIE1vbmdvbGlhLCBQYWtpc3RhbiBhbmQgdGhlIEFTRUFOIFNlY3JldGFyaWF0IGluIDIwMDgsIEF1c3RyYWxpYSwgTmV3IFplYWxhbmQgYW5kIFJ1c3NpYSBpbiAyMDEwLCBCYW5nbGFkZXNoLCBOb3J3YXksIGFuZCBTd2l0emVybGFuZCBpbiAyMDEyLCBhcyB3ZWxsIGFzIENyb2F0aWEsIGFuZCBLYXpha2hzdGFuIGluIDIwMTQuDQoxOTk2IChBcHIgMjYpOiBbR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2l0aCB0aGUgc2lnbmluZyBvZiB0aGUgVHJlYXR5IG9uIERlZXBlbmluZyBNaWxpdGFyeSBUcnVzdCBpbiBCb3JkZXIgUmVnaW9ucyBpbiBTaGFuZ2hhaSBieSB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4uIExhdGVyIG9uIEp1biAxNSwgMjAwMSBpdCBnb3QgcmVuYW1lZCBhcyBTaGFuZ2hhaSBDb29wZXJhdGlvbiBPcmdhbmlzYXRpb24gKFNDTykgb3IgU2hhbmdoYWkgUGFjdCANCjE5OTYgKE1heSAxNik6IEF0YWwgQmloYXJpIFZhanBheWVlIGJlY29tZXMgUE0gb2YgSW5kaWEgZm9yIHRoZSB2ZXJ5IGZpcnN0IHRpbWUgZm9yIDE2IGRheXMuDQoxOTk2IChKdW4gMSk6IEF0YWwgQmloYXJpIFZhanBheWVlIHJlc2lnbnMuIEhEIERldmUgR293ZGEgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NiAoQXVnIDE0KTpbcmVzZWFyY2hdW2V4dHJlbWVdIEthcmVuIEVsaXphYmV0aCBXZXR0ZXJoYWhuIChPY3RvYmVyIDE2LCAxOTQ4IOKAkyBKdW5lIDgsIDE5OTcpLCBhbHNvIGtub3duIGFzIEthcmVuIFdldHRlcmhhaG4gSmVubmV0dGUsIHdhcyBhbiBBbWVyaWNhbiBwcm9mZXNzb3Igb2YgY2hlbWlzdHJ5IGF0IERhcnRtb3V0aCBDb2xsZWdlLCBOZXcgSGFtcHNoaXJlLCB3aG8gc3BlY2lhbGl6ZWQgaW4gdG94aWMgbWV0YWwgZXhwb3N1cmUuIFNoZSBkaWVkIG9mIG1lcmN1cnkgcG9pc29uaW5nIGF0IHRoZSBhZ2Ugb2YgNDggZHVlIHRvIGFjY2lkZW50YWwgZXhwb3N1cmUgdG8gdGhlIGV4dHJlbWVseSB0b3hpYyBvcmdhbmljIG1lcmN1cnkgY29tcG91bmQgZGltZXRoeWxtZXJjdXJ5IChIZyhDSDMpMikuIFByb3RlY3RpdmUgZ2xvdmVzIGluIHVzZSBhdCB0aGUgdGltZSBvZiB0aGUgaW5jaWRlbnQgcHJvdmlkZWQgaW5zdWZmaWNpZW50IHByb3RlY3Rpb24sIGFuZCBleHBvc3VyZSB0byBvbmx5IGEgc2luZ2xlIGRyb3Agb3IgdHdvIG9mIHRoZSBkaW1ldGh5bG1lcmN1cnkgYWJzb3JiZWQgdGhyb3VnaCB0aGUgZ2xvdmVzIHByb3ZlZCB0byBiZSBmYXRhbCBhZnRlciBsZXNzIHRoYW4gYSB5ZWFyLiBUZXN0cyBsYXRlciByZXZlYWxlZCB0aGF0IGRpbWV0aHlsbWVyY3VyeSBjYW4sIGluIGZhY3QsIHJhcGlkbHkgcGVybWVhdGUgc2V2ZXJhbCBraW5kcyBvZiBsYXRleCBnbG92ZXMgYW5kIGVudGVyIHRoZSBza2luIHdpdGhpbiBhYm91dCAxNSBzZWNvbmRzLiBIZXIgZXhwb3N1cmUgd2FzIGxhdGVyIGNvbmZpcm1lZCBieSBoYWlyIGFuYWx5c2lzLCB3aGljaCBzaG93ZWQgYSBkcmFtYXRpYyBqdW1wIGluIG1lcmN1cnkgbGV2ZWxzIDE3IGRheXMgYWZ0ZXIgdGhlIGluaXRpYWwgYWNjaWRlbnQsIHBlYWtpbmcgYXQgMzkgZGF5cywgZm9sbG93ZWQgYnkgYSBncmFkdWFsIGRlY2xpbmUuIEFwcHJveGltYXRlbHkgdGhyZWUgbW9udGhzIGFmdGVyIHRoZSBpbml0aWFsIGFjY2lkZW50IFdldHRlcmhhaG4gYmVnYW4gZXhwZXJpZW5jaW5nIGJyaWVmIGVwaXNvZGVzIG9mIGFiZG9taW5hbCBkaXNjb21mb3J0IGFuZCBub3RpY2VkIHNpZ25pZmljYW50IHdlaWdodCBsb3NzLiBUaGUgbW9yZSBkaXN0aW5jdGl2ZSBuZXVyb2xvZ2ljYWwgc3ltcHRvbXMgb2YgbWVyY3VyeSBwb2lzb25pbmcsIGluY2x1ZGluZyBsb3NzIG9mIGJhbGFuY2UgYW5kIHNsdXJyZWQgc3BlZWNoLCBhcHBlYXJlZCBpbiBKYW51YXJ5IDE5OTcsIGZpdmUgbW9udGhzIGFmdGVyIHRoZSBhY2NpZGVudC4gSGVyIGJsb29kIGFuZCB1cmluYXJ5IG1lcmN1cnkgY29udGVudCB3ZXJlIG1lYXN1cmVkIGF0IDQsMDAwIM68Zy9MIGFuZCAyMzQgzrxnL0wsIHJlc3BlY3RpdmVseeKAlGJvdGggbWFueSB0aW1lcyB0aGVpciByZXNwZWN0aXZlIHRveGljIHRocmVzaG9sZHMgb2YgMjAwIM68Zy9MIGFuZCA1MCDOvGcvTCAoYmxvb2QgYW5kIHVyaW5lIHJlZmVyZW5jZSByYW5nZXMgYXJlIDEgdG8gOCDOvGcvTCBhbmQgMSB0byA1IM68Zy9MKS4NCjE5OTYgKERlYyA0IDA2OjU4OjA3IFVUQyk6W1NwYWNlXVtNYXJzXVtFYXJ0aF0gTGF1bmNoIG9mIE1hcnMgUGF0aGZpbmRlciBvbiBEZWx0YSBJSSA3OTI1ICgjRDI0MCkNCnJvY2tldCBmcm9tIENhcGUgQ2FuYXZlcmFsIFNMQy0xNy4gVG8gcHJvdmUgdGhhdCB0aGUgZGV2ZWxvcG1lbnQgb2YgImZhc3RlciwgYmV0dGVyIGFuZCBjaGVhcGVyIiBzcGFjZWNyYWZ0IHdhcyBwb3NzaWJsZSAod2l0aCB0aHJlZSB5ZWFycyBmb3IgZGV2ZWxvcG1lbnQgYW5kIGEgY29zdCB1bmRlciAkMTUwIG1pbGxpb24gZm9yIHRoZSBsYW5kZXIsIGFuZCAkMjUgbWlsbGlvbiBmb3IgdGhlIHJvdmVyKS4gVG8gc2hvdyB0aGF0IGl0IHdhcyBwb3NzaWJsZSB0byBzZW5kIGEgbG9hZCBvZiBzY2llbnRpZmljIGluc3RydW1lbnRzIHRvIGFub3RoZXIgcGxhbmV0IHdpdGggYSBzaW1wbGUgc3lzdGVtIGFuZCBhdCBvbmUtZmlmdGVlbnRoIHRoZSBjb3N0IG9mIGEgVmlraW5nIG1pc3Npb24uIChGb3IgY29tcGFyaXNvbiwgdGhlIFZpa2luZyBtaXNzaW9ucyBjb3N0ICQ5MzUgbWlsbGlvbiBpbiAxOTc0IG9yICQzLjUgYmlsbGlvbiBpbiAxOTk3IGRvbGxhcnMuKS4gVG8gZGVtb25zdHJhdGUgTkFTQSdzIGNvbW1pdG1lbnQgdG8gbG93LWNvc3QgcGxhbmV0YXJ5IGV4cGxvcmF0aW9uIGJ5IGZpbmlzaGluZyB0aGUgbWlzc2lvbiB3aXRoIGEgdG90YWwgZXhwZW5kaXR1cmUgb2YgJDI4MCBtaWxsaW9uLCBpbmNsdWRpbmcgdGhlIGxhdW5jaCB2ZWhpY2xlIGFuZCBtaXNzaW9uIG9wZXJhdGlvbnMuDQoxOTk2OiBhIHJhaWQgb24gdGhlIEFuaW1hbCBIdXNiYW5kcnkgZGVwYXJ0bWVudOKAmXMgb2ZmaWNlcyBpbiBDaGFpYmFzYSwgQmloYXIgdW5mb2xkZWQgdGhlIFJzLjk1MCBjcm9yZSBmb2RkZXIgc2NhbSwgaW4gd2hpY2ggdGhlIEJpaGFyIGNoaWVmIG1pbmlzdGVyIExhbHUgUHJhc2FkIFlhZGF2IGNhdGNoIHVwIGluIGEgbGlmZWxvbmcgdHVzc2xlIHdpdGggdGhlIENCSS4NCjE5OTY6W0Jvb2tdW0FkdmVudHVyZV0gSm9uIEtyYWthdWVyJ3MgSW50byB0aGUgV2lsZC4NCjE5OTY6W0NvbXB1dGluZ10gVGhlIFZpZGVvTEFOIHNvZnR3YXJlIG9yaWdpbmF0ZWQgYXMgYSBGcmVuY2ggYWNhZGVtaWMgcHJvamVjdC4gVkxDIHVzZWQgdG8gc3RhbmQgZm9yICJWaWRlb0xBTiBDbGllbnQiIHdoZW4gVkxDIHdhcyBhIGNsaWVudCBvZiB0aGUgVmlkZW9MQU4gcHJvamVjdCwgb2ZmaWNpYWxseSByZWxlYXNlZCB1bmRlciBHTlUgR1BMIG9uIDIwMDEgKEZlYiAxKS4NCjE5OTY6W01lbWVdIERhbmNpbmcgQmFieSBTY3JlZW5zYXZlcg0KMTk5NjpbU3BhY2VYXSBUaGUgZW50aXJlIHByb2Nlc3MgZm9yIHRoZSBKYW1lcyBXZWJiIFNwYWNlIFRlbGVzY29wZSAoSldTVCkgZnJvbSBpbml0aWFsIGNvbmNlcHQgdG8gbGF1bmNoIHNwYW5uZWQgYXBwcm94aW1hdGVseSAyNSB5ZWFycywgd2l0aCBpbml0aWFsIGRlc2lnbnMgYmVnaW5uaW5nIGluIDE5OTYgYW5kIHRoZSB0ZWxlc2NvcGUgbGF1bmNoaW5nIGluIDIwMjEsIGJ1dCBhIHNpZ25pZmljYW50IHBvcnRpb24gb2YgdGhpcyB3YXMgc3BlbnQgaW4gZGVzaWduLCB0ZXN0aW5nLCBhbmQgb3ZlcmNvbWluZyBtYWpvciByZWRlc2lnbnMgYW5kIGRlbGF5cywgbm90IGp1c3QgYXNzZW1ibHkuIA0KMTk5NiAoRmViIDI4KTpbRGVsaGldIEluZGlyYXB1cmFtLCBHaGF6aWFiYWQgd2FzIGVzdGQgd2hlbiBpdHMgZm91bmRhdGlvbiBzdG9uZSAoS2FsYSBQYXRoYXIpIHdhcyBpbmF1Z3VyYXRlZCBieSBTaCBNb3RpbGFsIFZvcmEsIHRoZW4gR292ZXJub3Igb2YgVVAuICgyMDIxKSBJJ3B1cmFtIEV4dG4gdG8gYmUgYnVpbHQgb24gMTIgYWNyZXMgb25seSwgY29uY2VpdmVkIGluIDIwMDQuDQoxOTk2OltCb29rXVtNaWxpdGFyeV1bQ3VsdHVyZV1bRVVdW1VTQV0gR2VvcmdlIFIuUi4gTWFydGluIGlzIHRoZSBBbWVyaWNhbiBhdXRob3Igb2YgdGhlIGVwaWMgZmFudGFzeSBib29rIHNlcmllcyBBIFNvbmcgb2YgSWNlIGFuZCBGaXJlLCB3aGljaCBiZWdhbiB3aXRoIEEgR2FtZSBvZiBUaHJvbmVzICgxOTk2KSBhbmQgc2VydmVkIGFzIHRoZSBiYXNpcyBmb3IgSEJPJ3MgbWFzc2l2ZWx5IHBvcHVsYXIgR2FtZSBvZiBUaHJvbmVzIFRWIHNlcmllcy4gQSBTb25nIG9mIEljZSBhbmQgRmlyZSBpcyBhIHNlcmllcyBvZiBoaWdoIGZhbnRhc3kgbm92ZWxzIGJ5IHRoZSBBbWVyaWNhbiBhdXRob3IgR2VvcmdlIFIuIFIuIE1hcnRpbi4gTWFydGluIGJlZ2FuIHdyaXRpbmcgdGhlIGZpcnN0IHZvbHVtZSwgQSBHYW1lIG9mIFRocm9uZXMsIGluIDE5OTEsIGFuZCBwdWJsaXNoZWQgaXQgaW4gMTk5Ni4gTWFydGluLCB3aG8gb3JpZ2luYWxseSBlbnZpc2lvbmVkIHRoZSBzZXJpZXMgYXMgYSB0cmlsb2d5LCBoYXMgcmVsZWFzZWQgZml2ZSBvdXQgb2Ygc2V2ZW4gcGxhbm5lZCB2b2x1bWVzLiANCg0KW0dlbmVyYXRpb25dIE1pbGxlbm5pYWwgZ2VuZXJhdGlvbiAoMTk4MeKAkzE5OTYpIGVuZHM7IGxhc3RlZCBmb3IgMTUgeWVhcnMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICA1MCB5ZWFycyBvZiBJbmRlcGVuZGVudCBJbmRpYSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSANCg0KW0dlbmVyYXRpb25dIEdlbiBaICgxOTk34oCTMjAxMikgc3RhcnRzOyBhbmQgZXhpc3RzIGZvciBuZXh0IDE1IHllYXJzLg0KDQoxOTk3OltXaG9dW1Jlc2VhcmNoXVtDb21wdXRpbmddW1RlY2hdW0N1bHR1cmVdIFZMQyBNZWRpYSBQbGF5ZXIgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBzdHVkZW50cyBhdCB0aGUgRnJlbmNoIGVuZ2luZWVyaW5nIHNjaG9vbCDDiWNvbGUgQ2VudHJhbGUgUGFyaXMgaW4gMTk5Ni4gV2hpbGUgaXQgc3RhcnRlZCBhcyBhbiBhY2FkZW1pYyBwcm9qZWN0IChWaWRlb0xBTikgdG8gc3RyZWFtIHZpZGVvIG92ZXIgYSBjYW1wdXMgbmV0d29yaywgaXRzIGRldmVsb3BtZW50IGFuZCBtb2Rlcm5pemF0aW9uIHdlcmUgbGF0ZXIgbGVkIGJ5IEplYW4tQmFwdGlzdGUgS2VtcGYuIA0KMTk5NzpbUmVzZWFyY2hdW1NwYWNlXSAyOSBKdWx5IDE5OTc6IGEgTkFTQSBzY2llbnRpc3QgYW5ub3VuY2VkIGV2aWRlbmNlIG9mIGZvc3NpbGl6ZWQgbWljcm9zY29waWMgbGlmZSBmb3JtcyBpbiBhIG1ldGVvcml0ZSBub3QgZnJvbSBhbnkga25vd24gcGxhbmV0Lg0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgR3JvdXAgb2YgRWlnaHQgKEc4KSB3YXMgYW4gaW50ZXJnb3Zlcm5tZW50YWwgcG9saXRpY2FsIGZvcnVtIGZyb20gMTk5NyB0byAyMDE0LCBmb3JtZWQgYnkgaW5jb3Jwb3JhdGluZyBSdXNzaWEgaW50byB0aGUgRzcuIFRoZSBHOCBiZWNhbWUgdGhlIEc3IGFnYWluIGFmdGVyIFJ1c3NpYSB3YXMgZXhwZWxsZWQgaW4gMjAxNCBhZnRlciB0aGUgUnVzc2lhbiBhbm5leGF0aW9uIG9mIENyaW1lYS4gRm91bmRlZDogMTk5NywgRGVudmVyLCBDb2xvcmFkbywgVW5pdGVkIFN0YXRlcw0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBGb3VuZGVkOiA2IEp1bmUgMTk5NywgVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiAoQklNU1RFQykgaXMgYW4gaW50ZXJuYXRpb25hbCBvcmdhbml6YXRpb24gb2Ygc2V2ZW4gU291dGggQXNpYW4gYW5kIFNvdXRoZWFzdCBBc2lhbiBuYXRpb25zLCBob3VzaW5nIDEuNzMgYmlsbGlvbiBwZW9wbGUgYW5kIGhhdmluZyBhIGNvbWJpbmVkIGdyb3NzIGRvbWVzdGljIHByb2R1Y3Qgb2YgVVMkNS4yIHRyaWxsaW9uLg0KMTk5NzpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gYnVpbHQgdGhlIGZpcnN0IGV4cGVyaW1lbnRhbCBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCBjb3VsZCBtYW5pcHVsYXRlIDcgcXViaXRzIHVzaW5nIG51Y2xlYXIgbWFnbmV0aWMgcmVzb25hbmNlIChOTVIpIHRlY2huaXF1ZXMuDQoxOTk3IChKdWwgNCk6W1NwYWNlXVtNYXJzXSBUaGUgTWFycyBQYXRoZmluZGVyIGVuZHVyZWQgYSAzMC1zZWNvbmQgY29tbXVuaWNhdGlvbnMgYmxhY2tvdXQgYXMgaXQgZW50ZXJlZCBNYXJzJyBhdG1vc3BoZXJlLiBJdCBsYW5kZWQgYXQgQXJlcyBWYWxsaXMsIENocnlzZSBQbGFuaXRpYSwgTWFycyAxOcKwN+KAsjQ44oCzTiAzM8KwMTPigLIxMuKAs1cuIE1hcnMgUGF0aGZpbmRlciAoTUVTVVIgUGF0aGZpbmRlcikgaXMgYW4gQW1lcmljYW4gcm9ib3RpYyBzcGFjZWNyYWZ0IHRoYXQgbGFuZGVkIGEgYmFzZSBzdGF0aW9uIHdpdGggYSByb3ZpbmcgcHJvYmUgb24gTWFycyBpbiAxOTk3LiBJdCBjb25zaXN0ZWQgb2YgYSBsYW5kZXIsIHJlbmFtZWQgdGhlIENhcmwgU2FnYW4gTWVtb3JpYWwgU3RhdGlvbiwgYW5kIGEgbGlnaHR3ZWlnaHQsIDEwLjYga2cgKDIzIGxiKSB3aGVlbGVkIHJvYm90aWMgTWFycyByb3ZlciBuYW1lZCBTb2pvdXJuZXIsIHRoZSBmaXJzdCByb3ZlciB0byBvcGVyYXRlIG91dHNpZGUgdGhlIEVhcnRo4oCTTW9vbiBzeXN0ZW0uDQoxOTk3OltCb29rXSBNaXRjaCBBbGJvbSdzIFR1ZXNkYXlzIHdpdGggTW9ycmllLg0KMTk5NzpbR2FtaW5nXSBHcmFuZCBUaGVmdCBBdXRvIChHVEEpIHJlbGVhc2VkIGJ5IERNQSBEZXNpZ24gKGxhdGVyIFJvY2tzdGFyIE5vcnRoKSBmb3IgUFMxLCBXaW5kb3dzIGFuZCBNUy1ET1M7IEdyYW5kIFRoZWZ0IEF1dG86IFZpY2UgQ2l0eSAoMjAwMik7IEdyYW5kIFRoZWZ0IEF1dG86IFNhbiBBbmRyZWFzICgyMDA0KTsgR3JhbmQgVGhlZnQgQXV0byBJViAoMjAwOCk7IEdyYW5kIFRoZWZ0IEF1dG8gViAoMjAxMyk7IEdyYW5kIFRoZWZ0IEF1dG86IFRoZSBUcmlsb2d5IOKAkyBUaGUgRGVmaW5pdGl2ZSBFZGl0aW9uICgyMDIxKQ0KMTk5NzogVGVra2VuIDMgd2FzIGRlc2lnbmVkIGJ5IEthdHN1aGlybyBIYXJhZGEgKE9zYWthLCBPc2FrYSBQcmVmZWN0dXJlLCBKYXBhbikgb2YgQmFuZGFpIE5hbWNvIEVudGVydGFpbm1lbnQgaGVhZHF1YXJ0ZXJlZCBhdCDFjHRhLCBUb2t5by4NCjE5OTcgKE1hciA2KTogW0dlb1BvbGl0aWNzXSBUaGUgSW5kaWFuIE9jZWFuIFJpbSBBc3NvY2lhdGlvbiwgZm9ybWVybHkga25vd24gYXMgdGhlIEluZGlhbiBPY2VhbiBSaW0gSW5pdGlhdGl2ZSBhbmQgdGhlIEluZGlhbiBPY2VhbiBSaW0gQXNzb2NpYXRpb24gZm9yIFJlZ2lvbmFsIENvb3BlcmF0aW9uLCBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBjb25zaXN0aW5nIG9mIDIzIHN0YXRlcyBib3JkZXJpbmcgdGhlIEluZGlhbiBPY2Vhbi4gVGhlIElPUkEgaXMgYSByZWdpb25hbCBmb3J1bSwgdHJpcGFydGl0ZSBpbiBuYXR1cmUsIGJyaW5naW5nIHRvZ2V0aGVyIHJlcHJlc2VudGF0aXZlcyBvZiBHb3Zlcm5tZW50LCBCdXNpbmVzcyBhbmQgQWNhZGVtaWEsIGZvciBwcm9tb3RpbmcgY28tb3BlcmF0aW9uIGFuZCBjbG9zZXIgaW50ZXJhY3Rpb24gYW1vbmcgdGhlbS4gSXQgaXMgYmFzZWQgb24gdGhlIHByaW5jaXBsZXMgb2YgT3BlbiBSZWdpb25hbGlzbSBmb3Igc3RyZW5ndGhlbmluZyBFY29ub21pYyBDb29wZXJhdGlvbiBwYXJ0aWN1bGFybHkgb24gVHJhZGUgRmFjaWxpdGF0aW9uIGFuZCBJbnZlc3RtZW50LCBQcm9tb3Rpb24gYXMgd2VsbCBhcyBTb2NpYWwgRGV2ZWxvcG1lbnQgb2YgdGhlIHJlZ2lvbi4gVGhlIENvb3JkaW5hdGluZyBTZWNyZXRhcmlhdCBvZiBJT1JBIGlzIGxvY2F0ZWQgYXQgRWJlbmUsIE1hdXJpdGl1cy4NCjE5OTcgKEFwciAyMSk6IEguRC4gRGV2ZSBHb3dkYSByZXNpZ25zLiBJbmRlciBLdW1hciBHdWpyYWwgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NyAoSnVuIDYpOiBbR2VvUG9saXRpY3NdIEJJTVNURUMgZm91bmRlZC4gVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBvZiBzZXZlbiBTb3V0aCBBc2lhbiBhbmQgU291dGhlYXN0IEFzaWFuIG5hdGlvbnMsIGhvdXNpbmcgMS43MyBiaWxsaW9uIHBlb3BsZSBhbmQgaGF2aW5nIGEgY29tYmluZWQgZ3Jvc3MgZG9tZXN0aWMgcHJvZHVjdCBvZiAkMy44IHRyaWxsaW9uLiBUaGUgQklNU1RFQyBtZW1iZXIgc3RhdGVzIOKAkyBCYW5nbGFkZXNoLCBCaHV0YW4sIEluZGlhLCBNeWFubWFyLCBOZXBhbCwgU3JpIExhbmthLCBhbmQgVGhhaWxhbmQg4oCTIGFyZSBhbW9uZyB0aGUgY291bnRyaWVzIGRlcGVuZGVudCBvbiB0aGUgQmF5IG9mIEJlbmdhbC4NCjE5OTcgKEp1biA4KTogRGVzcGl0ZSBhZ2dyZXNzaXZlIGNoZWxhdGlvbiB0aGVyYXB5LCBoZXIgY29uZGl0aW9uIHJhcGlkbHkgZGV0ZXJpb3JhdGVkLiBUaHJlZSB3ZWVrcyBhZnRlciB0aGUgZmlyc3QgbmV1cm9sb2dpY2FsIHN5bXB0b21zIGFwcGVhcmVkLCBXZXR0ZXJoYWhuIGxhcHNlZCBpbnRvIHdoYXQgYXBwZWFyZWQgdG8gYmUgYSB2ZWdldGF0aXZlIHN0YXRlIHB1bmN0dWF0ZWQgYnkgcGVyaW9kcyBvZiBleHRyZW1lIGFnaXRhdGlvbi4gT25lIG9mIGhlciBmb3JtZXIgc3R1ZGVudHMgc2FpZCB0aGF0ICJIZXIgaHVzYmFuZCBzYXcgdGVhcnMgcm9sbGluZyBkb3duIGhlciBmYWNlLiBJIGFza2VkIGlmIHNoZSB3YXMgaW4gcGFpbi4gVGhlIGRvY3RvcnMgc2FpZCBpdCBkaWRuJ3QgYXBwZWFyIHRoYXQgaGVyIGJyYWluIGNvdWxkIGV2ZW4gcmVnaXN0ZXIgcGFpbi4iIFdldHRlcmhhaG4gd2FzIHJlbW92ZWQgZnJvbSBsaWZlIHN1cHBvcnQgYW5kIHByb25vdW5jZWQgZGVhZCBvbiBKdW5lIDgsIDE5OTcsIHRlbiBtb250aHMgYWZ0ZXIgaGVyIGluaXRpYWwgZXhwb3N1cmUuIEluIHJlc3BvbnNlLCB0aGUgT2NjdXBhdGlvbmFsIFNhZmV0eSBhbmQgSGVhbHRoIEFkbWluaXN0cmF0aW9uIHJlY29tbWVuZGVkIHRoYXQgdGhlIHVzZSBvZiBkaW1ldGh5bG1lcmN1cnkgYmUgYXZvaWRlZCB1bmxlc3MgYWJzb2x1dGVseSBuZWNlc3NhcnkgYW5kIG1hbmRhdGVkIHRoZSB1c2Ugb2YgcGxhc3RpYy1sYW1pbmF0ZSBnbG92ZXMgKFNpbHZlclNoaWVsZCkgd2hlbiBoYW5kbGluZyB0aGlzIGNvbXBvdW5kLg0KMTk5NyAoSnVuIDEzKTpbSmFja10gQm9yZGVyDQoxOTk3IChKdW4gMjYpOltCb29rXSAzMllPIEouIEsuIFJvd2xpbmcgcHVibGlzaGVzIGhlciBmaXJzdCBIYXJyeSBQb3R0ZXIgYm9vaywgVGhlIFBoaWxvc29waGVyJ3MgU3RvbmU7IA0KVGhlIENoYW1iZXIgb2YgU2VjcmV0cyAoMiBKdWx5IDE5OTgpLA0KVGhlIFByaXNvbmVyIG9mIEF6a2FiYW4gKDggSnVseSAxOTk5KSwNClRoZSBHb2JsZXQgb2YgRmlyZSAoOCBKdWx5IDIwMDApLA0KVGhlIE9yZGVyIG9mIHRoZSBQaG9lbml4ICgsIDI3IEp1bmUgMjAwMyksDQpUaGUgSGFsZi1CbG9vZCBQcmluY2UgKDE2IEp1bHkgMjAwNSksDQpUaGUgRGVhdGhseSBIYWxsb3dzICgyMSBKdWx5IDIwMDcpDQoxOTk3IChBdWcgMjUpOltTcGFjZV0gQWR2YW5jZWQgQ29tcG9zaXRpb24gRXhwbG9yZXIgaXMgYSBOQVNBIEV4cGxvcmVyIHByb2dyYW0gc2F0ZWxsaXRlIGFuZCBzcGFjZSBleHBsb3JhdGlvbiBtaXNzaW9uIHRvIHN0dWR5IG1hdHRlciBjb21wcmlzaW5nIGVuZXJnZXRpYyBwYXJ0aWNsZXMgZnJvbSB0aGUgc29sYXIgd2luZCwgdGhlIGludGVycGxhbmV0YXJ5IG1lZGl1bSwgYW5kIG90aGVyIHNvdXJjZXMuDQoxOTk3IChTZXAgMTMpOiB0aGUgaW50cm9kdWN0b3J5IGVwaXNvZGUgb2YgU2hha3RpbWFuIHdhcyBhaXJlZCBvbiBEb29yZGFyc2hhbiAoSW5kaWEncyBuYXRpb25hbCB0ZWxldmlzaW9uIG5ldHdvcmspIGZyb20gMjcgU2VwdGVtYmVyIDE5OTcgdG8gMjcgTWFyY2ggMjAwNSwgb24gU3VuZGF5cyBhdCAxMiBub29uIElTVC4gVGhlIHRlbGVjYXN0IHNsb3QsIGhvd2V2ZXIgd2FzIHNoaWZ0ZWQgdG8gOTozMCBhLm0uIGZvciB0aGUgbGFzdCBlcGlzb2Rlcy4gDQoxOTk3IChTZXAgMjcgMTA6MjMgVVRDKTpbU3BhY2VdW01hcnNdIExhc3QgY29udGFjdCB3aXRoIE1hcnMgUGF0aGZpbmRlci4gTWlzc2lvbiBkdXJhdGlvbiAoTGF1bmNoIHRvIGxhc3QgY29udGFjdCk6IDkgbW9udGhzLCAyMyBkYXlzLg0KMTk5NyAoT2N0IDMxKTpbQm9va10gRG9uYWxkIFRydW1wJ3MgVHJ1bXA6IFRoZSBBcnQgb2YgdGhlIENvbWViYWNrOyBUaGUgQW1lcmljYSBXZSBEZXNlcnZlICgyMDAwKTsgVHJ1bXA6IFRoaW5rIExpa2UgYSBCaWxsaW9uYWlyZTogRXZlcnl0aGluZyBZb3UgTmVlZCB0byBLbm93IEFib3V0IFN1Y2Nlc3MsIFJlYWwgRXN0YXRlLCBhbmQgTGlmZSAoMjAwNCk7IFdoeSBXZSBXYW50IFlvdSB0byBCZSBSaWNoICgyMDA2KTsgVHJ1bXA6IFRoZSBCZXN0IFJlYWwgRXN0YXRlIEFkdmljZSBJIEV2ZXIgUmVjZWl2ZWQ6IDEwMCBUb3AgRXhwZXJ0cyBTaGFyZSBUaGVpciBTdHJhdGVnaWVzICgyMDA2LCBOb3YgMSk7IFRoaW5rIEJJRyBhbmQgS2ljayBBc3MgaW4gQnVzaW5lc3MgYW5kIExpZmUgKDIwMDcpOyBUcnVtcCBOZXZlciBHaXZlIFVwOiBIb3cgSSBUdXJuZWQgTXkgQmlnZ2VzdCBDaGFsbGVuZ2VzIGludG8gU3VjY2VzcyAoMjAwOCk7IFRpbWUgdG8gR2V0IFRvdWdoOiBNYWtpbmcgQW1lcmljYSAjMSBBZ2FpbiAoMjAxMSk7IENyaXBwbGVkIEFtZXJpY2E6IEhvdyB0byBNYWtlIEFtZXJpY2EgR3JlYXQgQWdhaW4gKDIwMTUpDQoxOTk3OiBBcnVuZGhhdGkgUm95IGJlY2FtZSB0aGUgZmlyc3QgSW5kaWFuIHRvIHdpbiBNYW4gQm9va2VyIFByaXplIGZvciBoZXIgbm92ZWwgJ1RoZSBHb2Qgb2YgU21hbGwgVGhpbmdzJy4NCjE5OTc6IElJVC1KRUUgd2FzIGNvbmR1Y3RlZCB0d2ljZSBhZnRlciB0aGUgUS1QYXBlciB3YXMgbGVha2VkLg0KMTk5NzogTkFTQSBlc3RpbWF0ZWQgdGhlcmUgd2VyZSBhcHByb3guIDIsNjQ1IGFydGlmaWNpYWwgc2F0ZWxsaXRlIHBheWxvYWRzIG9yYml0dGluZyB0aGUgZWFydGggYW5kIDYsMjE2IHBpZWNlcyBvZiBzcGFjZSBkZWJyaXMgYXMgdHJhY2tlZCBieSB0aGUgR1NGQy4gT3ZlciAxNiwyOTEgcHJldmlvdXNseSBsYXVuY2hlZCBvYmplY3RzIGhhdmUgZGVjYXllZCBpbnRvIHRoZSBFYXJ0aCdzIGF0bW9zcGhlcmUuDQoxOTk3OiBCSEMgRmluYW5jaWFsLCBJbmMuIG9mIFBlbm5zeWx2YW5pYSBtZXJnZWQgaW50byBGSVNWIHRvIGZvcm0gU2VjdXJlZCBUcmFuc2FjdGlvbiBQcm9jZXNzaW5nIFNlcnZpY2VzLg0KMTk5NzpbQm9va10gVGhlIEZvdXIgQWdyZWVtZW50czogQSBQcmFjdGljYWwgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSBpcyBhIHNlbGYtaGVscCBib29rIGJ5IGJlc3RzZWxsaW5nIGF1dGhvciBEb24gTWlndWVsIFJ1aXogd2l0aCBKYW5ldCBNaWxsczsgVGhlIE1hc3Rlcnkgb2YgTG92ZTogQSBQcmFjdGljYWwgR3VpZGUgdG8gdGhlIEFydCBvZiBSZWxhdGlvbnNoaXAgLS1Ub2x0ZWMgV2lzZG9tIEJvb2sgKDE5OTksIE1hciAzMCk7IFRoZSBWb2ljZSBvZiBLbm93bGVkZ2U6IEEgUHJhY3RpY2FsIEd1aWRlIHRvIElubmVyIFBlYWNlICgyMDA0LCBNYXIgMTApOyBUaGUgRmlmdGggQWdyZWVtZW50OiBBIFByYWN0aWNhbCBHdWlkZSB0byBTZWxmLU1hc3RlcnkgKDIwMDkpOyBUaGUgQ2lyY2xlIG9mIEZpcmU6IEluc3BpcmF0aW9uIGFuZCBHdWlkZWQgTWVkaXRhdGlvbnMgZm9yIExpdmluZyBpbiBMb3ZlIGFuZCBIYXBwaW5lc3MgKDIwMTMsIEF1ZyAxKTsgVGhlIE1hc3Rlcnkgb2YgU2VsZjogQSBUb2x0ZWMgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSAoMjAxNiwgTWF5IDYpDQoxOTk3OltCb29rXSBKb24gS3Jha2F1ZXIncyBJbnRvIFRoaW4gQWlyOiBBIFBlcnNvbmFsIEFjY291bnQgb2YgdGhlIE10LiBFdmVyZXN0IERpc2FzdGVyOyBVbmRlciB0aGUgQmFubmVyIG9mIEhlYXZlbiAoMjAwMyBKdWwpDQoxOTk3IChEZWMgMTEpOltFbnZdIFRoZSBLeW90byBQcm90b2NvbCB3YXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgd2hpY2ggZXh0ZW5kZWQgdGhlIDE5OTIgVW5pdGVkIE5hdGlvbnMgRnJhbWV3b3JrIENvbnZlbnRpb24gb24gQ2xpbWF0ZSBDaGFuZ2UgKFVORkNDQykgdGhhdCBjb21taXRzIHN0YXRlIHBhcnRpZXMgdG8gcmVkdWNlIGdyZWVuaG91c2UgZ2FzIGVtaXNzaW9ucywgYmFzZWQgb24gdGhlIHNjaWVudGlmaWMgY29uc2Vuc3VzIHRoYXQgKHBhcnQgb25lKSBnbG9iYWwgd2FybWluZyBpcyBvY2N1cnJpbmcgYW5kIChwYXJ0IHR3bykgdGhhdCBodW1hbi1tYWRlIENPMiBlbWlzc2lvbnMgYXJlIGRyaXZpbmcgaXQuDQoxOTk3OltJbmRpYV1bRWR1Y2F0aW9uXVtDdWx0dXJlXSBFa2xhdnlhIE1vZGVsIFJlc2lkZW50aWFsIFNjaG9vbCBpcyBhIEdvdmVybm1lbnQgb2YgSW5kaWEgc2NoZW1lIGZvciBtb2RlbCByZXNpZGVudGlhbCBzY2hvb2wgZm9yIEluZGlhbiB0cmliYWxzIGFjcm9zcyBJbmRpYS4gSXQgaXMgb25lIG9mIHRoZSBmbGFnc2hpcCBpbnRlcnZlbnRpb25zIG9mIHRoZSBNaW5pc3RyeSBvZiBUcmliYWwgQWZmYWlycywgR292ZXJubWVudCBvZiBJbmRpYSBhbmQgd2FzIGludHJvZHVjZWQgaW4gdGhlIHllYXIgMTk5Ny05OCB0byBlbnN1cmUgdHJpYmFsIHN0dWRlbnRzIGdldCBhY2Nlc3MgdG8gcXVhbGl0eSBlZHVjYXRpb24gaW4gdGhlIHJlbW90ZSB0cmliYWwgYXJlYXMuIEVNUlNzIGFyZSBzZXQgdXAgaW4gU3RhdGVzL1VUcyB3aXRoIGdyYW50cyB1bmRlciBBcnRpY2xlIDI3NSgxKSBvZiB0aGUgQ29uc3RpdHV0aW9uIG9mIEluZGlhLiBBcyBwZXIgdGhlIGJ1ZGdldCAyMDE4LTE5LCBldmVyeSBibG9jayB3aXRoIG1vcmUgdGhhbiA1MCUgU1QgcG9wdWxhdGlvbiBhbmQgYXQgbGVhc3QgMjAsMDAwIHRyaWJhbCBwZXJzb25zLCB3aWxsIGhhdmUgYW4gRWtsYXZ5YSBNb2RlbCBSZXNpZGVudGlhbCBTY2hvb2wgYnkgdGhlIHllYXIgMjAyMi4NCjE5OTc6W1NwYWNlXSBIaXBwYXJjb3MgKDE5ODkgLTE5OTMpLiBJdCB0b29rIDQtOCB5ZWFycyB0byBvcmdhbml6ZSBhbmQgcHVibGlzaCB0aGUgNCB5ZWFycyBzdHVkeSBieSB0aGlzIGV4cGVyaW1lbnQsIHdoaWNoIHBlcm1pdHRlZCB0aGUgZmlyc3QgaGlnaC1wcmVjaXNpb24gbWVhc3VyZW1lbnRzIG9mIHRoZSBpbnRyaW5zaWMgYnJpZ2h0bmVzc2VzIChjb21wYXJlZCB0byB0aGUgbGVzcyBwcmVjaXNlIGFwcGFyZW50IGJyaWdodG5lc3MpLCBwcm9wZXIgbW90aW9ucywgYW5kIHBhcmFsbGF4ZXMgb2Ygc3RhcnMsIGVuYWJsaW5nIGJldHRlciBjYWxjdWxhdGlvbnMgb2YgdGhlaXIgZGlzdGFuY2UgYW5kIHRhbmdlbnRpYWwgdmVsb2NpdHkuIFdoZW4gY29tYmluZWQgd2l0aCByYWRpYWwgdmVsb2NpdHkgbWVhc3VyZW1lbnRzIGZyb20gc3BlY3Ryb3Njb3B5LCBhc3Ryb3BoeXNpY2lzdHMgd2VyZSBhYmxlIHRvIGZpbmFsbHkgbWVhc3VyZSBhbGwgc2l4IHF1YW50aXRpZXMgbmVlZGVkIHRvIGRldGVybWluZSB0aGUgbW90aW9uIG9mIHN0YXJzLiBUaGUgcmVzdWx0aW5nIEhpcHBhcmNvcyBDYXRhbG9ndWUsIGEgaGlnaC1wcmVjaXNpb24gY2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiAxMTgsMjAwIHN0YXJzLCB3YXMgcHVibGlzaGVkIGluIDE5OTcuIFRoZSBsb3dlci1wcmVjaXNpb24gVHljaG8gQ2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiBhIG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBhdCB0aGUgc2FtZSB0aW1lLCB3aGlsZSB0aGUgZW5oYW5jZWQgVHljaG8tMiBDYXRhbG9ndWUgb2YgMi41IG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBpbiAyMDAwLiBIaXBwYXJjb3MnIGZvbGxvdy11cCBtaXNzaW9uLCBHYWlhLCB3YXMgbGF1bmNoZWQgaW4gMjAxMy4NCjE5OTc6W1NwYWNlXVtSZXNlYXJjaF0gU2luY2UgdGhlIDE5OTcgcHJvcG9zYWwgb2YgdGhlIEFkUy9DRlQgKEFudGktZGUgU2l0dGVyL0NvbmZvcm1hbCBGaWVsZCBUaGVvcnkpIGNvcnJlc3BvbmRlbmNlLCB0aGUgcHJlZG9taW5hbnQgYmVsaWVmIGFtb25nIHBoeXNpY2lzdHMgaXMgdGhhdCBpbmZvcm1hdGlvbiBpcyBpbmRlZWQgcHJlc2VydmVkIGluIGJsYWNrIGhvbGUgZXZhcG9yYXRpb24uIA0KMTk5NzpbU3BhY2VdW1Jlc2VhcmNoXSBBIHdpZGVseSBwdWJsaWNpemVkIGJldCBtYWRlIGluIDE5OTcgYmV0d2VlbiBKb2huIFByZXNraWxsIG9uIHRoZSBvbmUgaGFuZCB3aXRoIEhhd2tpbmcgYW5kIEtpcCBUaG9ybmUgb24gdGhlIG90aGVyIHRoYXQgaW5mb3JtYXRpb24gd2FzIG5vdCBsb3N0IGluIGJsYWNrIGhvbGVzLiBUaGUgc2NpZW50aWZpYyBkZWJhdGUgb24gdGhlIHBhcmFkb3ggd2FzIGRlc2NyaWJlZCBpbiBhIHBvcHVsYXIgYm9vayBwdWJsaXNoZWQgaW4gMjAwOCBieSBMZW9uYXJkIFN1c3NraW5kIGNhbGxlZCBUaGUgQmxhY2sgSG9sZSBXYXIuIChUaGUgYm9vayBjYXJlZnVsbHkgbm90ZXMgdGhhdCB0aGUgJ3dhcicgd2FzIHB1cmVseSBhIHNjaWVudGlmaWMgb25lLCBhbmQgdGhhdCBhdCBhIHBlcnNvbmFsIGxldmVsLCB0aGUgcGFydGljaXBhbnRzIHJlbWFpbmVkIGZyaWVuZHMuKSBUaGUgYm9vayBzdGF0ZXMgdGhhdCBIYXdraW5nIHdhcyBldmVudHVhbGx5IHBlcnN1YWRlZCB0aGF0IGJsYWNrLWhvbGUgZXZhcG9yYXRpb24gd2FzIHVuaXRhcnkgYnkgdGhlIGhvbG9ncmFwaGljIHByaW5jaXBsZSwgd2hpY2ggd2FzIGZpcnN0IHByb3Bvc2VkIGJ5ICd0IEhvb2Z0LCBmdXJ0aGVyIGRldmVsb3BlZCBieSBTdXNza2luZCBhbmQgbGF0ZXIgZ2l2ZW4gYSBwcmVjaXNlIHN0cmluZyB0aGVvcnkgaW50ZXJwcmV0YXRpb24gYnkgdGhlIEFkUy9DRlQgY29ycmVzcG9uZGVuY2UuIEluIDIwMDQsIEhhd2tpbmcgYWxzbyBjb25jZWRlZCB0aGUgMTk5NyBiZXQsIHBheWluZyBQcmVza2lsbCB3aXRoIGEgYmFzZWJhbGwgZW5jeWNsb3BlZGlhICJmcm9tIHdoaWNoIGluZm9ybWF0aW9uIGNhbiBiZSByZXRyaWV2ZWQgYXQgd2lsbCIgYWx0aG91Z2ggVGhvcm5lIHJlZnVzZWQgdG8gY29uY2VkZS4NCjE5OTc6W0VhcnRoXVtQaHlzaWNzXVtSZXNlYXJjaF0gdGhlcmUgd2VyZSB0d28gbGFyZ2UgZWFydGhxdWFrZXMgb2ZmIHRoZSBjb2FzdCBvZiBDaGlsZS4gVGhlIG1hZ25pdHVkZSBvZiB0aGUgZmlyc3QsIGluIEp1bHksIHdhcyBlc3RpbWF0ZWQgYXQgTXfigK82LjksIGJ1dCB3YXMgYmFyZWx5IGZlbHQsIGFuZCBvbmx5IGluIHRocmVlIHBsYWNlcy4gSW4gT2N0b2JlciBhIE134oCvNy4xIHF1YWtlIGluIG5lYXJseSB0aGUgc2FtZSBsb2NhdGlvbiwgYnV0IHR3aWNlIGFzIGRlZXAgYW5kIG9uIGEgZGlmZmVyZW50IGtpbmQgb2YgZmF1bHQsIHdhcyBmZWx0IG92ZXIgYSBicm9hZCBhcmVhLCBpbmp1cmVkIG92ZXIgMzAwIHBlb3BsZSwgYW5kIGRlc3Ryb3llZCBvciBzZXJpb3VzbHkgZGFtYWdlZCBvdmVyIDEwLDAwMCBob3VzZXMuIEFzIGNhbiBiZSBzZWVuIGluIHRoZSB0YWJsZSBiZWxvdywgdGhpcyBkaXNwYXJpdHkgb2YgZGFtYWdlIGRvbmUgaXMgbm90IHJlZmxlY3RlZCBpbiBlaXRoZXIgdGhlIG1vbWVudCBtYWduaXR1ZGUgKE134oCvKSBub3IgdGhlIHN1cmZhY2Utd2F2ZSBtYWduaXR1ZGUgKE1z4oCvKS4gT25seSB3aGVuIHRoZSBtYWduaXR1ZGUgaXMgbWVhc3VyZWQgb24gdGhlIGJhc2lzIG9mIHRoZSBib2R5LXdhdmUgKG1i4oCvKSBvciB0aGUgc2Vpc21pYyBlbmVyZ3kgKE1l4oCvKSBpcyB0aGVyZSBhIGRpZmZlcmVuY2UgY29tcGFyYWJsZSB0byB0aGUgZGlmZmVyZW5jZSBpbiBkYW1hZ2UuIChhcyByZXNlYXJjaGVkIGJ5IENob3ksIEJvYXR3cmlnaHQgJiBLaXJieSAyMDAxLCBwLiAxMy4pLiBNdyA2Ljkgd2FzIGFjdHVhbGx5IE1lIDYuMSwgYW4gaW50ZXJwbGF0ZS10aHJ1c3QgdHlwZSBvZiBmYXVsdCwgd2hpbGUgTXcgNy4xIHdhcyBhY3R1YWxseSBhIDcuNSBNZSBpbnRyYXNsYWItbm9ybWFsIHR5cGUgb2YgZmF1bHQuDQoxOTk3OltSZXNlYXJjaF0gRHVyaW5nIHN1cnZleXMgY2FycmllZCBvdXQgYmV0d2VlbiAxOTk3IGFuZCAyMDAxLCBhIHNwb3Qgd2FzIGZvdW5kIGFsb25nIHRoZSBNYXJpYW5hIFRyZW5jaCB0aGF0IGhhZCBhIGRlcHRoIHNpbWlsYXIgdG8gdGhlIENoYWxsZW5nZXIgRGVlcCwgcG9zc2libHkgZXZlbiBkZWVwZXIuIEl0IHdhcyBkaXNjb3ZlcmVkIHdoaWxlIHNjaWVudGlzdHMgZnJvbSB0aGUgSGF3YWlpIEluc3RpdHV0ZSBvZiBHZW9waHlzaWNzIGFuZCBQbGFuZXRvbG9neSB3ZXJlIGNvbXBsZXRpbmcgYSBzdXJ2ZXkgYXJvdW5kIEd1YW07IHRoZXkgdXNlZCBhIHNvbmFyIG1hcHBpbmcgc3lzdGVtIHRvd2VkIGJlaGluZCB0aGUgcmVzZWFyY2ggc2hpcCB0byBjb25kdWN0IHRoZSBzdXJ2ZXkuIFRoaXMgbmV3IHNwb3Qgd2FzIG5hbWVkIHRoZSBITVJHIChIYXdhaWkgTWFwcGluZyBSZXNlYXJjaCBHcm91cCkgRGVlcCwgYWZ0ZXIgdGhlIGdyb3VwIG9mIHNjaWVudGlzdHMgd2hvIGRpc2NvdmVyZWQgaXQuDQoxOTk3OltTcGFjZVhdIEEgcmVzb2x2ZWQgY2lyY3Vtc3RlbGxhciBkaXNrIHdhcyBmaXJzdCBpZGVudGlmaWVkIGluIDE5OTcgd2l0aCB0aGUgT3dlbnMgVmFsbGV5IFJhZGlvIE9ic2VydmF0b3J5LiBUaGUgc2VtaS1tYWpvciBheGlzIHdhcyBpbml0aWFsbHkgZXN0aW1hdGVkIHRvIGJlIDExMCBBVS4gSEQgMTYzMjk2IGFuZCBzdXJyb3VuZGluZ3MgQ3JlZGl0OiBFU08vRGlnaXRpemVkIFNreSBTdXJ2ZXkgMjsgQWNrbm93bGVkZ2VtZW50OiBEYXZpZGUgRGUgTWFydGluIE9ic2VydmF0aW9uIGRhdGEgRXBvY2ggSjIwMDAgICAgICBFcXVpbm94IEoyMDAwIENvbnN0ZWxsYXRpb24JU2FnaXR0YXJpdXMgUmlnaHQgYXNjZW5zaW9uCTE3aCA1Nm0gMjEuMjlzIERlY2xpbmF0aW9uCeKIkjIxwrAgNTfigLIgMjEuODfigLMgQXBwYXJlbnQgbWFnbml0dWRlIChWKQk2Ljg1OyBDaGFyYWN0ZXJpc3RpY3MgRXZvbHV0aW9uYXJ5IHN0YWdlCUhlcmJpZyBBZSBzdGFyIFNwZWN0cmFsIHR5cGUJQTNWYWVrQTFtQTE7IEFzdHJvbWV0cnkgUmFkaWFsIHZlbG9jaXR5IChSdikJLTQuMDAgwrEzLjNbM10ga20vcyBQcm9wZXIgbW90aW9uICjOvCkJUkE6IC03LjU4NiDCsTAuMDQxIG1hcy95cjsgRGVjLjogLTM5LjQ1OCDCsTAuMDI5IG1hcy95cls0XSBQYXJhbGxheCAoz4ApCTkuOTA0M8KxMC4wNDA4IG1hc1s0XSBEaXN0YW5jZQkzMjkgwrEgMSBseSAoMTAxLjAgwrEgMC40IHBjKSBEZXRhaWxzOyBNYXNzCTEuOTXCsTAuMDcgTeKYiSBSYWRpdXMJMS44N8KxMC4wNSBS4piJIEx1bWlub3NpdHkJMjAuNCszLjYg4oiSMy4wIEzimIkgU3VyZmFjZSBncmF2aXR5IChsb2cgZykJNC4xMMKxMC4xMCBjZ3MgVGVtcGVyYXR1cmUJOTAwMMKxMjUwIEsgQWdlCTYuMDMrMC4yOCDiiJIwLjI3IE15ciBPdGhlciBkZXNpZ25hdGlvbnMgQkQtMjEgNDc3OSwgQ1BELTIxIDY1MDgsIEVNKiBNV0MgMjc1LCBISVAgODc4MTksIElSQVMgMTc1MzMtMjE1NiwgMk1BU1MgSjE3NTYyMTI4LTIxNTcyMTgsIFBEUyA0NzMsIFRZQyA2MjYyLTIxMzEtMSwgRGF0YWJhc2UgcmVmZXJlbmNlcyBTSU1CQUQNCjE5OTc6W1NwYWNlWF0gMTAxOTkgQ2hhcmlrbG8gaXMgYSByaW5nZWQgYXN0ZXJvaWQgb3IgY2VudGF1ciBpbiB0aGUgb3V0ZXIgU29sYXIgU3lzdGVtLiBJdCBpcyB0aGUgbGFyZ2VzdCBrbm93biBjZW50YXVyLCB3aXRoIGEgZGlhbWV0ZXIgb2YgYWJvdXQgMjUwIGttLiBJdCBvcmJpdHMgdGhlIFN1biBiZXR3ZWVuIFNhdHVybiBhbmQgVXJhbnVzIHdpdGggYW4gb3JiaXRhbCBwZXJpb2Qgb2YgNjIuNSB5ZWFycy4gV2lraXBlZGlhIE9yYml0YWwgcGVyaW9kOiA2MyB5ZWFycyBSYWRpdXM6IDE1MSBrbSBEaXNjb3ZlcmVkOiAxNSBGZWJydWFyeSAxOTk3IERpbWVuc2lvbnM6ICgyODcuNisyLjg7IOKIkjMuMCkgw5cgKDI3MC40KzIuODsg4oiSNS42KSDDlyAoMTk4LjIrMTAuODsg4oiSNS40KSBrbTogMTEgRGlzY292ZXJlcjogSmFtZXMgVi4gU2NvdHRpIFNwZWN0cmFsIHR5cGU6IEQtdHlwZSBhc3Rlcm9pZCBBcGhlbGlvbjogMTguNDIwIEFVDQoxOTk3OltTcGFjZVhdIFRoZSBHcmVhdCBEYXlsaWdodCBGaXJlYmFsbCAtIFRoZSBhdG1vc3BoZXJpYyBwYXNzIG1vZGlmaWVkIHRoZSBvYmplY3QncyBtYXNzIGFuZCBvcmJpdCBhcm91bmQgdGhlIFN1bi4gQSAxOTk0IHN0dWR5IGZvdW5kIHRoYXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgaW4gYW4gRWFydGgtY3Jvc3Npbmcgb3JiaXQgYW5kIHByZWRpY3RlZCB0aGF0IGl0IHdvdWxkIHBhc3MgY2xvc2UgdG8gRWFydGggYWdhaW4gaW4gQXVndXN0IDE5OTcuIEhvd2V2ZXIsIHRoZSBvYmplY3QgaGFzIG5vdCBiZWVuIG9ic2VydmVkIGFnYWluIGFuZCBzbyBpdHMgcG9zdC1lbmNvdW50ZXIgb3JiaXQgcmVtYWlucyB1bmtub3duLg0KMTk5NzpOYWZpc2EgSm9zZXBoIHdhcyB0aGUgeW91bmdlc3QgTWlzcyBJbmRpYSB3aW5uZXIgYXQgYWdlIDE5LCB3aW5uaW5nIHRoZSB0aXRsZSBpbiAxOTk3LiBTaGUgbGF0ZXIgYmVjYW1lIGEgbW9kZWwgYW5kIHRlbGV2aXNpb24gcGVyc29uYWxpdHkuIFdoaWxlIG90aGVyIHdpbm5lcnMgbGlrZSBNZWVuYWtzaGkgU2VzaGFkcmkgd2VyZSBhbHNvIDE3IHdoZW4gdGhleSB3b24gaW4gMTk4MSwgSm9zZXBoIGlzIG9mdGVuIGNpdGVkIGZvciBoZXIgZWFybHkgd2luIGF0IDE5LCB3aGljaCB3YXMgdGhlbiBhIHlvdW5nZXIgYWdlIHRoYW4gaXMgdHlwaWNhbGx5IHNlZW4gaW4gdGhlIGNvbXBldGl0aW9uLiANCjE5OTc6W3NwYWNlXVt0ZWNoXSBUaGUgZmluYWwgQmxvY2sgSUlBIHdhcyBpbiBOb3YgMTk5Nywgd2hpbGUgQmxvY2sgSUlScyBiZWdhbiByZXBsYWNpbmcgdGhlbSBzaG9ydGx5IGFmdGVyLCBsYXN0aW5nIHVudGlsIDIwMDQuIEJsb2NrIElJUiAoUmVwbGVuaXNobWVudCkgbGF1bmNoZXMgZm9sbG93ZWQgZnJvbSAxOTk3IHRvIDIwMDQsIHdpdGggdGhlIGZpcnN0IGxhdW5jaCBpbiBKYW51YXJ5IDE5OTcuIA0KDQoxOTk4OltTcGFjZVhdIFRoZSBwcmltYXJ5IGNvbnN0cnVjdGlvbiBwaGFzZSBvZiB0aGUgSW50ZXJuYXRpb25hbCBTcGFjZSBTdGF0aW9uIChJU1MpIHRvb2sgYXBwcm94aW1hdGVseSAxMyB5ZWFycywgZnJvbSAxOTk4IHRvIDIwMTEsIHdpdGggdGhlIGZpcnN0IG1vZHVsZSBsYXVuY2hpbmcgaW4gTm92ZW1iZXIgMTk5OCBhbmQgSVNTIEFzc2VtYmx5IENvbXBsZXRlIGRlY2xhcmVkIGluIE1heSAyMDExLiBIb3dldmVyLCBhc3NlbWJseSB3YXMgYSBjb250aW51b3VzLCBtdWx0aS1zdGFnZSBwcm9jZXNzIGludm9sdmluZyBtb3JlIHRoYW4gMzAgbWlzc2lvbnMsIG51bWVyb3VzIHNwYWNld2Fsa3MsIGFuZCByb2JvdGljIGFzc2lzdGFuY2UgdG8gYnVpbGQgdGhlIHN0YXRpb24gcGllY2UgYnkgcGllY2UgaW4gb3JiaXQuIEV2ZW4gYWZ0ZXIgMjAxMSwgdGhlIElTUyBjb250aW51ZWQgdG8gZXZvbHZlIHdpdGggb25nb2luZyBhZGRpdGlvbnMgYW5kIHVwZ3JhZGVzLg0KMTk5ODpbUmVzZWFyY2hdW1NwYWNlXSBTcHJpbmcsIDE5OTg6IGEgbWljcm9mb3NzaWwgdGhhdCB3YXMgZm91bmQgaW4gYSBtZXRlb3JpdGUgYW5kIHBob3RvZ3JhcGhlZCBpbiAxOTY2LCB3YXMgcmVjb2duaXplZCBieSBhIFJ1c3NpYW4gbWljcm9iaW9sb2dpc3QgYXMgYSBtYWduZXRvdGFjdGljIGJhY3Rlcml1bS4gQnkgRmFsbCwgMTk5ODogTkFTQSdzIHB1YmxpYyBwb3NpdGlvbiBvbiBsaWZlLWZyb20tc3BhY2Ugc2hpZnRlZCBkcmFtYXRpY2FsbHkuDQoxOTk4OiBBcyBhIHJlc2VhcmNoIHByb2plY3QgYXQgU3RhbmZvcmQgVW5pdmVyc2l0eSwgU2VyZ2V5IEJyaW4gYW5kIExhcnJ5IFBhZ2UgY3JlYXRlZCBhIHNlYXJjaCBlbmdpbmUgdGhhdCBsaXN0ZWQgcmVzdWx0cyBhY2NvcmRpbmcgdG8gdGhlIHBvcHVsYXJpdHkgb2YgdGhlIHBhZ2VzLCBhZnRlciBjb25jbHVkaW5nIHRoYXQgdGhlIG1vc3QgcG9wdWxhciByZXN1bHQgd291bGQgb2Z0ZW4gYmUgdGhlIG1vc3QgdXNlZnVsLiBBZnRlciByYWlzaW5nICQxIG1pbGxpb24gZnJvbSBmYW1pbHksIGZyaWVuZHMgYW5kIG90aGVyIGludmVzdG9ycywgdGhlIHBhaXIgbGF1bmNoZWQgdGhlIGNvbXBhbnkgaW4gMTk5OC4gR29vZ2xlIGhhcyBzaW5jZSBiZWNvbWUgdGhlIHdvcmxk4oCZcyBtb3N0IHBvcHVsYXIgc2VhcmNoIGVuZ2luZSwgcmVjZWl2aW5nIG1vcmUgdGhhbiAyMDAgbWlsbGlvbiBxdWVyaWVzIGVhY2ggZGF5Lg0KMTk5OCAoTm92IDIwKTogDQoxOTk4IChBcHIgMjcpOiBSUkIgZm91bmRlZCBhcyBSYWlsd2F5IFJlY3J1aXRtZW50IENvbnRyb2wgQm9hcmQgaXMgYSBnb3Zlcm5tZW50IG9yZ2FuaXNhdGlvbiBpbiBJbmRpYS4gSXQgd2FzIHNldCB1cCBpbiAxOTk4IGluIHRoZSBNaW5pc3RyeSBvZiBSYWlsd2F5cyAoUmFpbHdheSBCb2FyZCksIE5ldyBEZWxoaS5JbiAxOTQ1LCB0aGUgU2VydmljZXMgQ29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgYXQgQm9tYmF5LCBDYWxjdXR0YSwgTWFkcmFzIGFuZCBMdWNrbm93LiBJbiAxOTgzLCB0byBjYXRlciB0byB0aGUgbmVlZHMgb2YgYXJlYXMgd2hpY2ggd2VyZSBiZWluZyBuZWdsZWN0ZWQgZHVlIHRvIGxvY2F0aW9ucyBvZiB0aGUgZXhpc3RpbmcgY29tbWlzc2lvbnMsIHNldmVuIG1vcmUgY29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgdml6LCBhdCBBaG1lZGFiYWQsIEFqbWVyLCBCaG9wYWwsIEJodXZuZXNod2FyLCBDaGFuZGlnYXJoLCBKYW1tdSBhbmQgU3JpbmFnYXIgd2l0aCBzaXR0aW5nIGF0IExlaCBhbmQgVHJpdmVuZHJ1bS4gSW4gMTk4NCB0d28gbW9yZSBzZXJ2aWNlIGNvbW1pc3Npb25zIHdlcmUgc2V0IHVwIGF0IE1hbGRhIGFuZCBHb3Jha2hwdXIuDQoxOTk4IChNYXkgMTkpOiBBdGFsIEJpaGFyaSBWYWpwYXllZSBiZWNvbWVzIFBNIG9mIEluZGlhIGZvciB0aGUgc2Vjb25kIHRpbWUsIG5vdyBmb3IgNiB5ZWFycyB0aWxsIE1heSAyMiwgMjAwNC4gDQoxOTk4IChNYXkgMjggMTU6MTVQU1QpOiBDaGFnYWktSSBpcyB0aGUgY29kZSBuYW1lIG9mIGZpdmUgc2ltdWx0YW5lb3VzIHVuZGVyZ3JvdW5kIG51Y2xlYXIgdGVzdHMgY29uZHVjdGVkIGJ5IFBha2lzdGFuLiBUaGUgdGVzdHMgd2VyZSBwZXJmb3JtZWQgYXQgUmFzIEtvaCBIaWxscyBpbiB0aGUgQ2hhZ2FpIERpc3RyaWN0IG9mIEJhbG9jaGlzdGFuIFByb3ZpbmNlLiBDaGFnYWktSSB3YXMgUGFraXN0YW4ncyBmaXJzdCBwdWJsaWMgdGVzdCBvZiBudWNsZWFyIHdlYXBvbnMuIFBha2lzdGFuJ3MgZmlzc2lsZSBtYXRlcmlhbCBwcm9kdWN0aW9uIHRha2VzIHBsYWNlIGF0IE5pbG9yZSwgS2FodXRhLCBhbmQgS2h1c2hhYiBOdWNsZWFyIENvbXBsZXgsIHdoZXJlIHdlYXBvbnMtZ3JhZGUgcGx1dG9uaXVtIGlzIHJlZmluZWQuDQoxOTk4OiBBZnRlciBjb21wbGV0aW5nIGhpcyBYIHN0YW5kYXJkIGV4YW1pbmF0aW9ucywgUmFuYmlyIEthcG9vciwgYWdlZCAxNiwgd29ya2VkIGFzIGFuIGFzc2lzdGFudCBkaXJlY3RvciB0byBoaXMgZmF0aGVyIG9uIHRoZSBmaWxtIEFhIEFiIExhdXQgQ2hhbGVuICgxOTk5KSwgZHVyaW5nIHdoaWNoIGhlIGRldmVsb3BlZCBhIGNsb3NlciBib25kIHdpdGggaGltLg0KMTk4ODogTmV0d29ya2VkIERhdGEgUHJvY2Vzc2luZyBDb3IsIElvd2EgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBJbnN1cmFuY2UgZGl2aXNpb24uDQoxOTk4OltCb29rXSBSb2JlcnQgR3JlZW5lJ3MgVGhlIDQ4IExhd3Mgb2YgUG93ZXI7IFRoZSAzMyBTdHJhdGVnaWVzIG9mIFdhciAoMjAwNik7IE1hc3RlcnkgKDIwMTIsIE5vdiAxMyk7IFRoZSBMYXdzIG9mIEh1bWFuIE5hdHVyZSAoMjAxOCwgT2N0IDE2KQ0KMTk5ODpbU3BhY2VdW1Jlc2VhcmNoXVtFeHRyZW1lXSBUaGVuIGNhbWUgMTk5OCBhbmQgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgKEhTVCkgb2JzZXJ2YXRpb25zIG9mIHZlcnkgZGlzdGFudCBzdXBlcm5vdmFlIHRoYXQgc2hvd2VkIHRoYXQsIGEgbG9uZyB0aW1lIGFnbywgdGhlIHVuaXZlcnNlIHdhcyBhY3R1YWxseSBleHBhbmRpbmcgbW9yZSBzbG93bHkgdGhhbiBpdCBpcyB0b2RheS4gU28gdGhlIGV4cGFuc2lvbiBvZiB0aGUgdW5pdmVyc2UgaGFzIG5vdCBiZWVuIHNsb3dpbmcgZHVlIHRvIGdyYXZpdHksIGFzIGV2ZXJ5b25lIHRob3VnaHQsIGl0IGhhcyBiZWVuIGFjY2VsZXJhdGluZy4NCjE5OTg6W0NyaW1lXVtJbmRpYV0gQW5lZXMgYXJyZXN0ZWQgaW4gVUFFIG9uIGNoYXJnZXMgb2YgaGF2aW5nIG11cmRlcmVkIGEgZm9ybWVyIGFzc29jaWF0ZSBhbmQgdGhlbiByaXZhbCwgSXJmYW4gR29nYSwgaW4gRHViYWksIGJ1dCB3YXMgZnJlZWQgYWZ0ZXIgdHdvIGRheXMgZm9yICdsYWNrIG9mIGV2aWRlbmNlJy4NCjE5OTg6W0NvbXB1dGluZ11bUXVhbnR1bV0gUmVzZWFyY2hlcnMgYXQgSUJNLCBPeGZvcmQsIEJlcmtlbGV5LCBTdGFuZm9yZCwgYW5kIE1JVCBwcm9kdWNlZCBhIDItcXViaXQgY29tcHV0aW5nIHN5c3RlbS4NCjE5OTg6W3d3d10gV2lyZXNoYXJrIGlzIGEgZnJlZSBhbmQgb3Blbi1zb3VyY2UgcGFja2V0IGFuYWx5emVyLiBJdCBpcyB1c2VkIGZvciBuZXR3b3JrIHRyb3VibGVzaG9vdGluZywgYW5hbHlzaXMsIHNvZnR3YXJlIGFuZCBjb21tdW5pY2F0aW9ucyBwcm90b2NvbCBkZXZlbG9wbWVudCwgYW5kIGVkdWNhdGlvbi4gT3JpZ2luYWxseSBuYW1lZCBFdGhlcmVhbCwgdGhlIHByb2plY3Qgd2FzIHJlbmFtZWQgV2lyZXNoYXJrIGluIE1heSAyMDA2IGR1ZSB0byB0cmFkZW1hcmsgaXNzdWVzLg0KMTk5ODpbVVNdW0Vjb25vbXldRGF2aWQgUm9ja2VmZWxsZXIgU3IuIHdhcyBhd2FyZGVkIHRoZSBQcmVzaWRlbnRpYWwgTWVkYWwgb2YgRnJlZWRvbSBieSBQcmVzaWRlbnQgQmlsbCBDbGludG9uIGZvciBoaXMgd29yayBvbiBJbnRlcm5hdGlvbmFsIEV4ZWN1dGl2ZSBTZXJ2aWNlIENvcnBzLg0KMTk5ODpbRGVmXVtBdmlhdGlvbl0gVGhlIExvY2toZWVkIFNSLTcxIEJsYWNrYmlyZCBmbGV3IHNvIGhpZ2ggYW5kIHNvIGZhc3QgdGhhdCB0aGUgY3JldyBuZWVkZWQgcHJlc3N1cml6ZWQgc3BhY2Ugc3VpdHMgd2hlbiBmbHlpbmcgaXQuIEFuZCBpdCBpcyBzYWlkIHRoYXQgYXQgdGhlIG1heGltdW0gYWx0aXR1ZGUgb2YgaXQgaXQgd2FzIHBvc3NpYmxlIHRvIHNlZSB0aGUgY3VydmF0dXJlIG9mIHRoZSBlYXJ0aCwgd2hpY2ggcmVmZXJzIHRvIHRoaXMgcXVvdGUgYnkgQ29sb25lbCBBbGlzb246IOKAnE9uIGEgY2xlYXIgZGF5IHlvdSBjYW4gc2VlIGZvcmV2ZXLigKbigJ0uIFRoZSBzZXJ2aWNlIGNlaWxpbmcgb2YgODUsMDAwIGZlZXQgKDI1LDkwMG0pIG1lYW50IHRoYXQgaXQgd2FzIGFuIGV4Y2VsbGVudCBleHBlcmltZW50YWwgdW5pdCBmb3Igc3BhY2UgdHJhdmVscy4gVGhhdCwgY29tYmluZWQgd2l0aCB0aGUgZ3JlYXQgc3BlZWRzIG9mIGl0IHdhcyB0d28gb2YgdGhlIHJlYXNvbnMgd2h5IE5BU0EgZGVjaWRlZCB0byB0YWtlIG92ZXIgdGhlIGxhc3QgdHdvIEJsYWNrYmlyZHMgYWZ0ZXIgaXRzIHJldGlyZW1lbnQgZnJvbSB0aGUgQWlyIEZvcmNlIGluIDE5OTguIFRoaXMgbWVhbnMgdGhhdCB0aGUgd29ybGTigJlzIGZhc3Rlc3QgYWlyY3JhZnQgd2FzIGluIHNlcnZpY2UgZnJvbSAxOTY2IHVudGlsIE5BU0EgcmV0aXJlZCBpdHMgdHdvIHVuaXRzIGluIDE5OTksIGFuZCBtb3N0IG9mIHRoZSByZW1haW5pbmcgQmxhY2tiaXJkcyBhcmUgdG9kYXkgc3RhdGlvbmVkIGF0IG11c2V1bXMgb3IgbWlsaXRhcnkgYmFzZXMgYWNyb3NzIHRoZSBVUy4NCjE5OTg6SW4gMTk5OCwgR2F1dGFtIEFkYW5pLCBhbG9uZyB3aXRoIGhpcyBhc3NvY2lhdGUgU2hhbnRpbGFsIFBhdGVsLCB3YXMga2lkbmFwcGVkIGZvciByYW5zb20gaW4gQWhtZWRhYmFkLCBJbmRpYS4gVGhleSB3ZXJlIGFiZHVjdGVkIGF0IGd1bnBvaW50IGFmdGVyIGxlYXZpbmcgdGhlIEthcm5hdmF0aSBDbHViIGluIGEgY2FyLiBUaGUga2lkbmFwcGVycywgYWxsZWdlZGx5IGdhbmdzdGVycyBGYXpsdSBSZWhtYW4gYW5kIEJob2dpbGFsIERhcmppLCByZXBvcnRlZGx5IGRlbWFuZGVkIGEgcmFuc29tIG9mICQxLjUtMiBtaWxsaW9uLiBCb3RoIEFkYW5pIGFuZCBQYXRlbCB3ZXJlIHJlbGVhc2VkIGEgZGF5IGxhdGVyLCBidXQgaXQncyB1bmNsZWFyIGlmIHRoZSByYW5zb20gd2FzIHBhaWQuIA0KVGhlIGtpZG5hcHBpbmcgaW5jaWRlbnQgaGFwcGVuZWQgaW4gdGhlIG1pZC0xOTkwcywgYXJvdW5kIHRoZSB0aW1lIEFkYW5pJ3MgYnVzaW5lc3Mgc3VjY2Vzc2VzIHN0YXJ0ZWQgYXR0cmFjdGluZyB1bndhbnRlZCBhdHRlbnRpb24uIFRoZSBraWRuYXBwaW5nIHdhcyBhbGxlZ2VkbHkgY2FycmllZCBvdXQgYnkgRmF6bHUgUmVobWFuIGFuZCBCaG9naWxhbCBEYXJqaSwgYWxzbyBrbm93biBhcyAiTWFtYSIuIFRoZXkgd2VyZSBsYXRlciBhY3F1aXR0ZWQgZHVlIHRvIGxhY2sgb2YgZXZpZGVuY2UuIA0KVGhlIGFiZHVjdGlvbiBpcyBqdXN0IG9uZSBvZiB0aGUgY2hhbGxlbmdlcyBBZGFuaSBoYXMgZmFjZWQuIEhlIHdhcyBhbHNvIGNhdWdodCBpbiB0aGUgMjYvMTEgTXVtYmFpIHRlcnJvciBhdHRhY2tzIGF0IHRoZSBUYWogSG90ZWwuIE1vcmUgcmVjZW50bHksIGhlIGhhcyBmYWNlZCBhY2N1c2F0aW9ucyBvZiBicmliZXJ5IGFuZCBzZWN1cml0aWVzIGZyYXVkLiANCkFkYW5pIGFuZCBvdGhlcnMgd2VyZSBlc2NvcnRlZCBieSBzdGFmZiB0byB0aGUga2l0Y2hlbiBhbmQgdGhlbiB0aGUgYmFzZW1lbnQuIFRoZXkgc3BlbnQgdGhlIGVudGlyZSBuaWdodCBpbiBhIGhhbGwgd2FpdGluZyBmb3IgcmVzY3VlLiBBZGFuaSBsYXRlciB0b2xkIG5ld3MgY2hhbm5lbHMgdGhhdCBoZSBzYXcg4oCcZGVhdGggYXQgYSBkaXN0YW5jZSBvZiBqdXN0IDE1IGZlZXQu4oCdIEhlIHdhcyByZXNjdWVkIHRoZSBuZXh0IG1vcm5pbmcgYnkgc2VjdXJpdHkgZm9yY2VzLg0KMTk5ODpbRW52XVtEaXNhc3Rlcl0gRWFzdGVybiBJbmRpYSwgMTk5OCBCYW5nbGFkZXNoIGZsb29kOyA0ayBkZWF0aHMNCjE5OTg6W1dob11bUmVzZWFyY2hdW0NvbXB1dGluZ11bVGVjaF1bQ3VsdHVyZV0gSW50ZXJuZXQgRG93bmxvYWQgTWFuYWdlciAoSURNKSB3YXMgZGV2ZWxvcGVkIGJ5IFRvbmVjIEluYy4sIGFuIEFtZXJpY2FuIGNvbXBhbnkgdGhhdCBzdGFydGVkIHRoZSBwcm9qZWN0IGluIDE5OTggYW5kIHJlbGVhc2VkIHRoZSBzb2Z0d2FyZSBpbiAyMDAxLiBUb25lYyBJbmMuIGZvY3VzZXMgb24gbmV0d29yayBwcm9ncmFtbWluZyBhbmQgY3JlYXRlZCBJRE0gdG8gc3BlZWQgdXAgZG93bmxvYWRzIGJ5IHVzaW5nIGR5bmFtaWMgZmlsZSBzZWdtZW50YXRpb24sIGFjY2VsZXJhdGluZyBzcGVlZHMgYnkgdXAgdG8gOCB0aW1lcy4gDQoNCjE5OTk6NCBKYW51YXJ5IDE5OTk6IE5BU0Egb2ZmaWNpYWxseSByZWNvZ25pemVkIHRoZSBwb3NzaWJpbGl0eSB0aGF0IGxpZmUgb24gRWFydGggY29tZXMgZnJvbSBzcGFjZS4NCjE5IE1hcmNoIDE5OTk6IE5BU0Egc2NpZW50aXN0cyBhbm5vdW5jZWQgdGhhdCB0d28gbW9yZSBtZXRlb3JpdGVzIGhvbGQgZXZlbiBzdHJvbmdlciBmb3NzaWxpemVkIGV2aWRlbmNlIGZvciBwYXN0IGxpZmUgb24gTWFycy4NCjE5OTk6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEcyMCBvciBHcm91cCBvZiAyMCBpcyBhbiBpbnRlcmdvdmVybm1lbnRhbCBmb3J1bSBjb21wcmlzaW5nIDE5IHNvdmVyZWlnbiBjb3VudHJpZXMsIHRoZSBFdXJvcGVhbiBVbmlvbiwgYW5kIHRoZSBBZnJpY2FuIFVuaW9uLiBGb3VuZGVkOiAyNiBTZXB0ZW1iZXIgMTk5OTsgQ2hhaXJtYW4gKEluY3VtYmVudCk6IEN5cmlsIFJhbWFwaG9zYSwgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYQ0KMTk5OTogVGhlIHRlcm0gV2ktRmkgd2FzIGludmVudGVkIGJ5IEludGVyYnJhbmQgKGFuIGFtZXJpY2FuIGJyYW5kIGNvbnN1bHRhbmN5IGNvbXBhbnkpIGFzIGEgcHVuIHVwb24gdGhlIHdvcmQgaGktZmkuDQpXaS1GaSBBbGxpYW5jZSBmb3JtZWQgYXMgYSB0cmFkZSBhc3NvY2lhdGlvbiB0byBob2xkIHRoZSBXaS1GaSB0cmFkZW1hcmsgdW5kZXIgd2hpY2ggbW9zdCBwcm9kdWN0cyBhcmUgc29sZC4NCjE5OTk6IHRoZSB0ZXJtDQoxOTk5OiBJc2xhbWljIFN0YXRlIG9mIElyYXEgYW5kIHRoZSBMZXZhbnQgKGFsc28ga25vd24gYXMgdGhlIElzbGFtaWMgU3RhdGUgb2YgSXJhcSBhbmQgU3lyaWEsIElzbGFtaWMgU3RhdGUsIG9yIGNvbW1vbmx5LCBJU0lTKSBmb3VuZGVkIGFzIEphbWEnYXQgYWwtVGF3aGlkIHdhbC1KaWhhZCBieSBBYnUgTXVzYWIgYWwtWmFycWF3aSBIUSdkIGF0ICBBbC1SYXFxYWguDQoxOTk5IChBcHIgMTIpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBJIFdhbnQgSXQgVGhhdCBXYXkuDQoxOTk5IChBcHIgMTgpOiBDT05DRVJUIGJlY2FtZSBvcGVyYXRpb25hbC4gSXQgd2FzIGRldmVsb3BlZCB1c2luZyBjbGllbnQtc2VydmVyIG1vZGVsIGZvciBkaXN0cmlidXRlZCBjb21wdXRpbmcgaXMgYSB0b3RhbCBzb2x1dGlvbiB0byB0aGUgbmV0d29ya2luZyBvZiB0aGUgUFJTcy4gQWxsIHRoZSBmaXZlIHNpdGVzIGhhdmUgYmVlbiBpbnRlcm5ldC13b3JrZWQgb3ZlciBhIDY0IGticHMgbGluZSB1c2luZyByb3V0ZXJzLCBvbiBsZWFzZWQgY29tbXVuaWNhdGlvbiBsaW5lIGNvbm5lY3Rpb25zIGZyb20gRGVwYXJ0bWVudCBvZiBUZWxlY29tIChET1QpLg0KMTk5OTogQ3JlZGl0IGNhcmRzIGFjY2VwdGVkIGZvciBib29raW5nIHRpY2tldHMgYW5kIHJlc2VydmF0aW9ucyBpbiBzb21lIHN0YXRpb25zIChpbmNsdWRpbmcgTXVtYmFpIENTVCkuDQoxOTk5IChNYXkgMSk6W0Jvb2tdIFJvYmVydCBLaXlvc2FraSAmIFNoYXJvbiBMZWNodGVyJ3MgUmljaCBEYWQncyBDYXNoZmxvdyBRdWFkcmFudDogUmljaCBEYWQncyBHdWlkZSB0byBGaW5hbmNpYWwgRnJlZWRvbTsgUmljaCBEYWQncyBHdWlkZSB0byBJbnZlc3Rpbmc6IFdoYXQgdGhlIFJpY2ggSW52ZXN0IGluIFRoYXQgdGhlIFBvb3IgYW5kIE1pZGRsZSBDbGFzcyBEbyBOb3QhICgyMDAxLCBKYW4gMSk7IFRoZSBSZWFsIEJvb2sgb2YgUmVhbCBFc3RhdGU6IFJlYWwgRXhwZXJ0cy4gUmVhbCBTdG9yaWVzLiBSZWFsIExpZmUuICgyMDA5LCBNYXkgMTIpOyBSaWNoIEtpZCBTbWFydCBLaWQ6IEdpdmluZyBZb3VyIENoaWxkIGEgRmluYW5jaWFsIEhlYWQgU3RhcnQgKDIwMDEsIEphbiAxKTsgDQoxOTk5IChNYXkgMTgpOltNdXNpY10gTWlsbGVubml1bSBpcyB0aGUgdGhpcmQgc3R1ZGlvIGFsYnVtIChzZWNvbmQgaW4gdGhlIFVuaXRlZCBTdGF0ZXMpIGJ5IEFtZXJpY2FuIGJveSBiYW5kIEJhY2tzdHJlZXQgQm95cywgcmVsZWFzZWQgYnkgSml2ZSBSZWNvcmRzLg0KMTk5OSAoRnJpLCAyNCBEZWMpOiBJbmRpYW4gQWlybGluZXMgRmxpZ2h0IDgxNCBjb21tb25seSBrbm93biBhcyBJQyA4MTQgd2FzIGFuIEluZGlhbiBBaXJsaW5lcyBBaXJidXMgQTMwMCBlbiByb3V0ZSBmcm9tIFRyaWJodXZhbiBJbnRlcm5hdGlvbmFsIEFpcnBvcnQgaW4gS2F0aG1hbmR1LCBOZXBhbCB0byBJbmRpcmEgR2FuZGhpIEludGVybmF0aW9uYWwgQWlycG9ydCBpbiBEZWxoaSwgSW5kaWEgd2FzIGhpamFja2VkLiBIYXJrYXQtdWwtTXVqYWhpZGVlbiB3YXMgYWNjdXNlZCBvZiB0aGUgaGlqYWNraW5nLg0KMTk5OTogSVJDVEMNCjE5OTkgKEF1Zyk6IEJvb2tNeVNob3cNCjE5OTkgKFNlcCAxNCk6IFtHZW9Qb2xpdGljc10gVGhlIENvbmZlcmVuY2Ugb24gSW50ZXJhY3Rpb24gYW5kIENvbmZpZGVuY2UtQnVpbGRpbmcgTWVhc3VyZXMgaW4gQXNpYSAoQ0lDQSkgaXMgYW4gaW50ZXItZ292ZXJubWVudGFsIGZvcnVtIGZvciBlbmhhbmNpbmcgY29vcGVyYXRpb24gdG93YXJkcyBwcm9tb3RpbmcgcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYS4gSXQgaXMgYSBmb3J1bSBiYXNlZCBvbiB0aGUgcmVjb2duaXRpb24gdGhhdCB0aGVyZSBpcyBjbG9zZSBsaW5rIGJldHdlZW4gcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYSBhbmQgaW4gdGhlIHJlc3Qgb2YgdGhlIHdvcmxkLiBUaGUga2V5IGlkZWEgb2YgdGhlIENvbmZlcmVuY2UgaXMgYmFzZWQgb24gdGhlIHByaW9yaXR5IG9mIHRoZSBpbmRpdmlzaWJpbGl0eSBvZiBzZWN1cml0eSwgam9pbnQgaW5pdGlhdGl2ZSBhbmQgbXV0dWFsbHkgYmVuZWZpY2lhbCBpbnRlcmFjdGlvbiBvZiBzbWFsbCBhbmQgbGFyZ2Ugc3RhdGVzLg0KMTk5OTogTm9ibGUgRWR1Y2F0aW9uIFNvY2lldHkncyBOb2JsZSBQdWJsaWMgU2Nob29sIChOUFMpLCBHYWpyYXVsYSBmb3VuZGVkIHdpdGggMjEzMDYyNyBhcyBpdHMgQ0JTRSBBZmZpbGlhdGlvbiBuby4NCjE5OTk6IGZpcnN0IC53bWEgZmlsZSBjcmVhdGVkDQoxOTk5OiBOYXBzdGVyIGZvdW5kZWQuDQoxOTk5IChEZWMgMTQpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBTaG93IE1lIHRoZSBNZWFuaW5nIG9mIEJlaW5nIExvbmVseS4gDQoxOTk5OltNdXNpY10gRHIuIERyZSBmdC4gU25vb3AgRG9nZydzIFN0aWxsIEQuUi5FLg0KMTk5OTpbQ3VsdHVyZV0gVGhlIENpdHRhc2xvdyBvcmdhbml6YXRpb24gd2FzIGNyZWF0ZWQgYnkgUGFvbG8gU2F0dXJuaW5pLCB0aGUgZm9ybWVyIG1heW9yIG9mIEdyZXZlIGluIENoaWFudGksIEl0YWx5LiBTYXR1cm5pbmkgd2FzIGluc3BpcmVkIGJ5IENhcmxvIFBldHJpbmkgYW5kIGhpcyBTbG93IEZvb2QgbW92ZW1lbnQsIHN0YXJ0ZWQgaW4gdGhlIDE5ODBzIHRvIHByb3Rlc3QgdGhlIGZpcnN0IE1jRG9uYWxkJ3MgY2hhaW4gaW4gUm9tZS4gU2luY2UgdGhlbiwgdGhlIENpdHRhc2xvdyBtb3ZlbWVudCBoYXMgZ3Jvd24gYWNyb3NzIGZvdXIgY29udGluZW50cywgd2l0aCAyNjIgcGFydGljaXBhdGluZyB0b3ducyBhcyBvZiAyMDIwLiANCjE5OTk6W01hbmFnZW1lbnRdW0J1c2luZXNzXVtQc3ljaG9sb2d5XVtSZXNlYXJjaF0gRHVubmluZyBhbmQgS3J1Z2VyIEVmZmVjdDogRGF2aWQgRHVubmluZyBhbmQgSnVzdGluIEtydWdlciBwdWJsaXNoZWQgdGhlIGluaXRpYWwgc3R1ZHkgaW4gMTk5OSB1bmRlciB0aGUgdGl0bGUgIlVuc2tpbGxlZCBhbmQgVW5hd2FyZSBvZiBJdDogSG93IERpZmZpY3VsdGllcyBpbiBSZWNvZ25pemluZyBPbmUncyBPd24gSW5jb21wZXRlbmNlIExlYWQgdG8gSW5mbGF0ZWQgU2VsZi1Bc3Nlc3NtZW50cyIuDQoxOTk5OltSZXNlYXJjaF0gUmVzZWFyY2ggYnkgVVMgTmF0aW9uYWwgUmVzZWFyY2ggQ291bmNpbC4gV2F0ZXIgZnJvbSB1bmRlcmdyb3VuZCBzb3VyY2VzIG1heSBjb250YWluIHNpZ25pZmljYW50IGFtb3VudHMgb2YgcmFkb24gZGVwZW5kaW5nIG9uIHRoZSBzdXJyb3VuZGluZyByb2NrIGFuZCBzb2lsIGNvbmRpdGlvbnMsIHdoZXJlYXMgc3VyZmFjZSBzb3VyY2VzIGdlbmVyYWxseSBkbyBub3QuDQoxOTk5OltOU0VdIEluY29ycG9yYXRlZCBpbiAxOTk5LCBJUkNUQyBpcyBhIE1pbmkgUmF0bmEgKENhdGVnb3J5IDEsIENlbnRyYWwgUHVibGljIFNlY3RvciBFbnRlcnByaXNlcyApIGFuZCB0aGUgb25seSBjb21wYW55IGF1dGhvcml6ZWQgYnkgdGhlIEluZGlhbiBnb3Zlcm5tZW50IHRvIHByb3ZpZGUgb25saW5lIHJhaWx3YXkgdGlja2V0cywgY2F0ZXJpbmcgc2VydmljZXMsIGFuZCBwYWNrYWdlZCBkcmlua2luZyB3YXRlciBhdCByYWlsd2F5IHN0YXRpb25zIGFuZCB0cmFpbnMgaW4gSW5kaWEuDQoxOTk5OltNbnRuZ2ddW0Jvb2tdIFN0ZXZlIEhvdXNlIGlzIGEgd29ybGQtcmVub3duZWQgY2xpbWJlciwgbW91bnRhaW4gZ3VpZGUgYW5kIFBhdGFnb25pYSBhbWJhc3NhZG9yLCB3aWRlbHkgcmVnYXJkZWQgZm9yIGhpcyBjbGVhbiwgbGlnaHQtYW5kLWZhc3Qgc3R5bGUuIEhlIGhhcyBwdWJsaXNoZWQgYXJ0aWNsZXMgaW4gYSBudW1iZXIgb2YgcGVyaW9kaWNhbHMgaW5jbHVkaW5nOiBBbHBpbmlzdCwgUm9jayBhbmQgSWNlLCBDbGltYmluZywgVGhlIEFtZXJpY2FuIEFscGluZSBKb3VybmFsLCBHcmlwcGVkLCBDYW5hZGlhbiBBbHBpbmUgSm91cm5hbCwgQ2xpbWIsIFZlcnRpY2FsLCBNb250YWduZXMsIFJpc2ssIEFscCssIENhbXBvIEJhc2UsIERlc25pdmVsLCBhbmQgU3RpbGUgQWxwaW4uIEhpcyBlc3NheXMgaGF2ZSBiZWVuIHB1Ymxpc2hlZCBpbiBzZXZlcmFsIGJvb2tzIGluY2x1ZGluZzsgQ29udGFjdDogTW91bnRhaW4gQ2xpbWJpbmcgYW5kIEVudmlyb25tZW50YWwgVGhpbmtpbmc7IFNvbHRhcmksIGEgY29sbGVjdGlvbiBvZiBlc3NheXMgYWJvdXQgc29sbyBjbGltYmluZyBwdWJsaXNoZWQgaW4gSXRhbGlhbjsgQmVyZywgYSBHZXJtYW4gYm9vayBhYm91dCBjbGltYmluZyBpbiB0aGUgSGltYWxheWE7IGFuZCBhbiB1cGNvbWluZyBib29rIGFib3V0IE5hbmdhIFBhcmJhdCBlZGl0ZWQgYnkgUmVpbmhvbGQgTWVzc25lci4gSGUgaGFzIHdvcmtlZCBhcyBhIFBhdGFnb25pYSBhbHBpbmUgYW1iYXNzYWRvciBzaW5jZSAxOTk5LiBQdWJsaXNoZWQ6IFRyYWluaW5nIGZvciB0aGUgTmV3IEFscGluaXNtOiBBIE1hbnVhbCBmb3IgdGhlIENsaW1iZXIgYXMgQXRobGV0ZSBQYXBlcmJhY2sg4oCTIElsbHVzdHJhdGVkLCAzIEFwcmlsIDIwMTQNCjE5OTk6W01udG5nZ10gQ29ucmFkIEFua2VyIChib3JuIE5vdmVtYmVyIDI3LCAxOTYyKSBpcyBhbiBBbWVyaWNhbiByb2NrIGNsaW1iZXIsIG1vdW50YWluZWVyLCBhbmQgYXV0aG9yLiBIZSB3YXMgdGhlIHRlYW0gbGVhZGVyIG9mIFRoZSBOb3J0aCBGYWNlIGNsaW1iaW5nIHRlYW0gZm9yIDI2IHllYXJzIHVudGlsIDIwMTguWzJdIEluIDE5OTksIGhlIGxvY2F0ZWQgR2VvcmdlIE1hbGxvcnkncyBib2R5IG9uIEV2ZXJlc3QgYXMgYSBtZW1iZXIgb2YgYSBzZWFyY2ggdGVhbSBsb29raW5nIGZvciB0aGUgcmVtYWlucyBvZiB0aGUgQnJpdGlzaCBjbGltYmVyIHdobyB3YXMgbGFzdCBzZWVuIGluIDE5MjQuDQoxOTk5OlRoZSBQaXBpc3RyZWwgVmlydXMgZmxldyBmb3IgdGhlIGZpcnN0IHRpbWUgb24gQXVndXN0IDEwLCAxOTk5LiBQcm9kdWN0aW9uIGJlZ2FuIG9uIEphbnVhcnkgMjAsIDIwMDAuIFRoZSBkZXZlbG9wbWVudCBvZiB0aGUgc2hvcnQgd2luZyB2ZXJzaW9uIHN0YXJ0ZWQgaW4gMjAwNy4gVGhlIFZpcnVzIFNXIHByb2R1Y3Rpb24gc3RhcnRlZCBpbiAyMDA4LiBUaGUgVmlydXMgd29uIHRoZSBOQVNBIDIwMDcgUGVyc29uYWwgQWlyIFZlaGljbGUgKFBBVikgQ2hhbGxlbmdlIGFuZCB0aGUgMjAwOCBHZW5lcmFsIEF2aWF0aW9uIFRlY2hub2xvZ3kgKEdBVCkgQ2hhbGxlbmdlLg0KMTk5OTpbc2lsdmljc10gU3VzdGFpbmFibGUgUHJhY3RpY2VzOiBSZXNlYXJjaCBpbiB0aGUgMjB0aCBjZW50dXJ5IHZhbGlkYXRlZCB0aGF0IHNlY29uZC1ncm93dGggc3RhbmRzIGNvdWxkIGJlIHN1c3RhaW5hYmx5IG1hbmFnZWQgdGhyb3VnaCB0ZWNobmlxdWVzIGxpa2UgdGhlIHNlZWQgdHJlZSBtZXRob2QuIFRvZGF5LCBzaWx2aWN1bHR1cmUgZm9jdXNlcyBvbiBjb21wbGV4IHN0YW5kIHN0cnVjdHVyZXMsIGJhbGFuY2luZyBjb21tZXJjaWFsIGRlbWFuZCB3aXRoIGVudmlyb25tZW50YWwgc3Rld2FyZHNoaXAuIA0KDQoyMXN0IGNlbnR1cnkgQ0Ugc3RhcnRlZCBvbiAxc3QgSmFuIDIwMDEgQUQuDQoNCjIwMDBzOltSZXNlYXJjaF0gVGhlIGNsYWltIHRoYXQgIndlIGFyZSA2MCUgYmFuYW5hIiAob3Igc2hhcmUgNjAlIG9mIG91ciBETkEpIGlzIGEgcG9wdWxhciwgeWV0IG9mdGVuIG1pc2ludGVycHJldGVkLCBzdGF0aXN0aWMgdGhhdCBvcmlnaW5hdGVkIGZyb20gY29tcGFyaXNvbnMgb2YgcHJvdGVpbi1jb2RpbmcgZ2VuZXMsIGxpa2VseSBwb3B1bGFyaXplZCBpbiB0aGUgZWFybHkgMjAwMHMgZm9sbG93aW5nIHByZWxpbWluYXJ5IHN0dWRpZXMgb2YgdGhlIGJhbmFuYSBnZW5vbWUuIEl0IHJlZmVycyB0byBhYm91dCA2MCUgb2YgaHVtYW4gZ2VuZXMgaGF2aW5nIGEgcmVjb2duaXphYmxlIGNvdW50ZXJwYXJ0IGluIGJhbmFuYXMsIG5vdCA2MCUgb2Ygb3VyIHRvdGFsIEROQS4gDQpNYW55IG9mIHRoZSDigJxob3VzZWtlZXBpbmfigJ0gZ2VuZXMgdGhhdCBhcmUgbmVjZXNzYXJ5IGZvciBiYXNpYyBjZWxsdWxhciBmdW5jdGlvbiwgc3VjaCBhcyBmb3IgcmVwbGljYXRpbmcgRE5BLCBjb250cm9sbGluZyB0aGUgY2VsbCBjeWNsZSwgYW5kIGhlbHBpbmcgY2VsbHMgZGl2aWRlIGFyZSBzaGFyZWQgYmV0d2VlbiBtYW55IHBsYW50cyAoaW5jbHVkaW5nIGJhbmFuYXMpIGFuZCBhbmltYWxzLldoaWxlIDYwJSBvZiBnZW5lcyBoYXZlIGNvdW50ZXJwYXJ0cywgdGhlc2UgZXNzZW50aWFsIGdlbmVzIG1ha2UgdXAgb25seSBhIHNtYWxsIGZyYWN0aW9uIG9mIHRoZSB0b3RhbCBnZW5vbWU7IGh1bWFucyBhbmQgYmFuYW5hcyBhcmUgbm90IDYwJSBpZGVudGljYWwgb3ZlcmFsbC4gDQpUaGUgcGhyYXNlIGlzIGVzc2VudGlhbGx5IGEgc2ltcGxpZmllZCwgb2Z0ZW4tZXhhZ2dlcmF0ZWQsIHdheSBvZiBoaWdobGlnaHRpbmcgdGhhdCBhbGwgbGlmZSBzaGFyZXMgY29tbW9uIGFuY2VzdHJhbCBnZW5lcyBmb3IgYmFzaWMgY2VsbHVsYXIgcHJvY2Vzc2VzLiANCjIwMDBzOltNQkFdIFNob3VsZCBDb3N0IE1vZGVsaW5nOiBNb2Rlcm4gIlNob3VsZCBDb3N0IiBtb2RlbHMgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBpZGVhbCBjb3N0IG9mIGEgcHJvZHVjdCwgYWNjb3VudGluZyBmb3IgbGFib3IsIG1hdGVyaWFscywgYW5kIG92ZXJoZWFkLiBFbnZpcm9ubWVudGFsICYgU29jaWFsIEltcGFjdDogTW9kZXJuIENCQSBub3cgcm91dGluZWx5IGluY2x1ZGVzIGVudmlyb25tZW50YWwgYW5kIHNvY2lhbCBpbXBhY3RzIGluIGFkZGl0aW9uIHRvIGZpbmFuY2lhbCBvbmVzLiBTaGlmdCBmcm9tIExvY2FsIHRvIEdsb2JhbDogRWFybHksIGhpZ2hseSBsb2NhbCBhc3Nlc3NtZW50cyBldm9sdmVkIGludG8gbGFyZ2Utc2NhbGUsIG5hdGlvbmFsLCBhbmQgaW50ZXJuYXRpb25hbCBDQkEuIFJlZmluZW1lbnQgb2YgVGVjaG5pcXVlczogTW92aW5nIGZyb20gc2ltcGxlLCBzaW5nbGUtcGVyaW9kIG1vZGVscyB0byBjb21wbGV4LCBtdWx0aS1wZXJpb2Qgc2ltdWxhdGlvbnMuIEluY3JlYXNlZCBEYXRhIFVzZTogVGhlIGF2YWlsYWJpbGl0eSBvZiBsYXJnZSwgZ3JhbnVsYXIgZGF0YSBzZXRzIGhhcyBhbGxvd2VkIGZvciBtb3JlIHByZWNpc2UgYW5kIHJlbGlhYmxlIGFuYWx5c2lzLiANCjIwMDBzOltNbnRuZ2ddW0V4dHJlbWVdIEluIHRoZSBlYXJseSAyMDAwcywgRGlkaWVyIEJlcnRob2Qgd2FzIHRoZSBiZXN0IGNyYWNrIGNsaW1iZXIgaW4gdGhlIHdvcmxkLCB0aGVuIGhlIGRyb3BwZWQgb3V0IG9mIGNsaW1iaW5nIGFuZCBlc3NlbnRpYWxseSBkaXNhcHBlYXJlZCBmcm9tIHRoZSB3b3JsZC4NCjIwMDBzOltSZWFsdHldIEVhcmx5IDIwMDBzOiBSZWFsIGVzdGF0ZSB3YXMgaW4gaXRzIGVhcmx5IHN0YWdlcyBpbiBJbmRpYSwgd2l0aCBncmFkdWFsIGdyb3d0aCBhbmQgZGV2ZWxvcG1lbnQuIA0KMjAwMHM6VGVhbXdvcmsgaXMgbm93IGFuIGludGVncmFsIHBhcnQgb2Ygb3JnYW5pemF0aW9uYWwgc3RyYXRlZ3ksIHdpdGggYSBncmVhdGVyIGVtcGhhc2lzIG9uIGN1c3RvbWl6YXRpb24sIHBlcnNvbmFsaXphdGlvbiwgYW5kIHN0cmF0ZWdpYyBpbnRlZ3JhdGlvbiBvZiB0ZWFtLWJ1aWxkaW5nIHByYWN0aWNlcy4gVGhlIHJpc2Ugb2YgdGVjaG5vbG9neSBoYXMgYWxzbyBpbmZsdWVuY2VkIHRlYW13b3JrLCB3aXRoIHJlbW90ZSB3b3JrIGJlY29taW5nIG1vcmUgcHJldmFsZW50IGFuZCBuZXcgdG9vbHMgZW1lcmdpbmcgdG8gZmFjaWxpdGF0ZSBjb2xsYWJvcmF0aW9uLiANCg0KMjAwMDpbVVNdW0dlb1BvbGl0aWNzXSBvdmVydGhyb3cgb2YgU2xvYm9kYW4gTWlsb8WhZXZpxIcuIChVUydzIGludm9sdmVtZW50IGluIHJlZ2ltZSBjaGFuZ2UpDQoyMDAwOiBbR2VvUG9saXRpY3NdW01pbGl0YXJ5XVtFY29ub21pY3NdIFRoZSBVUyBEb2xsYXIgaG9sZHMgYSA3MiUgc2hhcmUgb2YgYWxsIGdsb2JhbCBjdXJyZW5jeSByZXNlcnZlcyBbWzE2OjQyXShodHRwOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dllKcmkxZU5SeWMmdD0xMDAyKV0uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdIDI2IEFwcmlsIDIwMDA6IHRoZSBHZXJtYW4gdGVhbSBvcGVyYXRpbmcgdGhlIG1hc3Mgc3BlY3Ryb21ldGVyIG9uIE5BU0EncyBTdGFyZHVzdCBtaXNzaW9uIGFubm91bmNlZCB0aGUgZGV0ZWN0aW9uIG9mIHZlcnkgbGFyZ2Ugb3JnYW5pYyBtb2xlY3VsZXMgaW4gaW50ZXJzdGVsbGFyIHNwYWNlLiBOb25iaW9sb2dpY2FsIHNvdXJjZXMgZm9yIG9yZ2FuaWMgbW9sZWN1bGVzIHNvIGxhcmdlIGFyZSBub3Qga25vd24uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdMTkgT2N0b2JlciAyMDAwLCBhIHRlYW0gb2YgYmlvbG9naXN0cyBhbmQgYSBnZW9sb2dpc3QgYW5ub3VuY2VkIHRoZSByZXZpdmFsIG9mIGJhY3RlcmlhIHRoYXQgYXJlIDI1MCBtaWxsaW9uIHllYXJzIG9sZCwgc3RyZW5ndGhlbmluZyB0aGF0IGNhc2UgdGhhdCBiYWN0ZXJpYWwgc3BvcmVzIGNhbiBiZSBpbW1vcnRhbC4NCjEzIERlY2VtYmVyIDIwMDA6IGEgTkFTQSB0ZWFtIGRlbW9uc3RyYXRlZCB0aGF0IHRoZSBtYWduZXRvc29tZXMgaW4gTWFycyBtZXRlb3JpdGUgQUxIIDg0MDAxIGFyZSBiaW9sb2dpY2FsLg0KMjAwMDpbUmVzZWFyY2hdW1NwYWNlXSBNaWxlaWtvd3NreSBDLCBDdWNpbm90dGEgRkEsIFdpbHNvbiBKVywgR2xhZG1hbiBCLCBIb3JuZWNrIEcsIExpbmRlZ3JlbiBMLCBNZWxvc2ggSiwgUmlja21hbiBILCBWYWx0b25lbiBNLCBaaGVuZyBKUS4gTmF0dXJhbCB0cmFuc2ZlciBvZiB2aWFibGUgbWljcm9iZXMgaW4gc3BhY2UuIEljYXJ1cyAyMDAwLCAxNDU6Mzkx4oCTNDI3LiBbRE9JXSBbUHViTWVkXSBbR29vZ2xlIFNjaG9sYXJdDQoyMDAwOltTcGFjZVhdIFMvMjAwMCAoOTApIDEgTW9vbiBEaXNjb3ZlcmVyOiBXaWxsaWFtIEouIE1lcmxpbmUgT3JiaXRzOiA5MCBBbnRpb3BlIEFic29sdXRlIG1hZ25pdHVkZTogOS4wMg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gZGVtb25zdHJhdGVkIFNob3LigJlzIGFsZ29yaXRobSBvbiBhIDUtcXViaXQgTk1SIHF1YW50dW0gY29tcHV0ZXIsIGZhY3RvcmluZyB0aGUgbnVtYmVyIDE1Lg0KMjAwMDogQXQgYWdlIDE0IGFuZCBpbiBjbGFzcyA4dGgsIEFhcm9uIFN3YXJ0eiBiZWNhbWUgYSBtZW1iZXIgb2YgdGhlIHdvcmtpbmcgZ3JvdXAgdGhhdCBhdXRob3JlZCB0aGUgUlNTIDEuMCB3ZWIgc3luZGljYXRpb24gc3BlY2lmaWNhdGlvbi4NCjIwMDA6IE1ha2VteVRyaXANCjIwMDAgKEphbiAxNCk6W0phY2tdIEthaG8gTmFhLi4uIFB5YWFyIEhhaQ0KMjAwMCAoRmViKTogSW5kaWFuIFJhaWx3YXlzIHdlYiBzaXRlIGkuZS4gaHR0cDovL2luZGlhbnJhaWx3YXlzLmdvdi5pbi8gd2FzIGRlcGxveWVkIGJ5IENSSVMuDQoyMDAwIChNYXIpOltCb29rXSBNYWxjb2xtIEdsYWR3ZWxsJ3MgZGVidXQgYm9vaywgVGhlIFRpcHBpbmcgUG9pbnQ6IEhvdyBMaXR0bGUgVGhpbmdzIENhbiBNYWtlIGEgQmlnIERpZmZlcmVuY2UuIA0KQmxpbms6IFRoZSBQb3dlciBvZiBUaGlua2luZyBXaXRob3V0IFRoaW5raW5nICgyMDA1LCBKYW4gMTEpOyANCk91dGxpZXJzOiBUaGUgU3Rvcnkgb2YgU3VjY2VzcyAoMjAwOCwgTm92IDE4KTsgDQpXaGF0IHRoZSBEb2cgU2F3OiBBbmQgT3RoZXIgQWR2ZW50dXJlcyAoMjAwOSwgT2N0IDIwKTsgDQpEYXZpZCBhbmQgR29saWF0aDogVW5kZXJkb2dzLCBNaXNmaXRzLCBhbmQgdGhlIEFydCBvZiBCYXR0bGluZyBHaWFudHMgKDIwMTMsIE9jdCAxKQ0KVGFsa2luZyB0byBTdHJhbmdlcnM6IFdoYXQgV2UgU2hvdWxkIEtub3cgYWJvdXQgdGhlIFBlb3BsZSBXZSBEb24ndCBLbm93ICgyMDE5KQ0KMjAwMCAoQXByIDEpOltCb29rXSBSb2JlcnQgS2l5b3Nha2kgJiBTaGFyb24gTGVjaHRlcidzIFJpY2ggRGFkIFBvb3IgRGFkLg0KMjAwMCAoQXByIDEpOltUZWNobm9sb2d5XVtSZXNlYXJjaF0gIldoeSBUaGUgRnV0dXJlIERvZXNuJ3QgTmVlZCBVcyIgaXMgYW4gYXJ0aWNsZSB3cml0dGVuIGJ5IEJpbGwgSm95IGluIHRoZSBBcHJpbCAyMDAwIGlzc3VlIG9mIFdpcmVkIG1hZ2F6aW5lLiBJbiB0aGUgYXJ0aWNsZSwgaGUgYXJndWVzIHRoYXQgIk91ciBtb3N0IHBvd2VyZnVsIDIxc3QtY2VudHVyeSB0ZWNobm9sb2dpZXPigJRyb2JvdGljcywgZ2VuZXRpYyBlbmdpbmVlcmluZywgYW5kIG5hbm90ZWNo4oCUYXJlIHRocmVhdGVuaW5nIHRvIG1ha2UgaHVtYW5zIGFuIGVuZGFuZ2VyZWQgc3BlY2llcy4iIA0KMjAwMCAoSnVuIDI2KTpbTXVzaWNdICJZZWxsb3ciIGlzIGEgc29uZyBieSB0aGUgQnJpdGlzaCByb2NrIGJhbmQgQ29sZHBsYXkuIFRoZSBiYW5kIHdyb3RlIHRoZSBzb25nIGFuZCBjby1wcm9kdWNlZCBpdCB3aXRoIEJyaXRpc2ggcmVjb3JkIHByb2R1Y2VyIEtlbiBOZWxzb24gZm9yIHRoZWlyIGRlYnV0IGFsYnVtLCBQYXJhY2h1dGVzICgyMDAwKS4gVGhlIHNvbmcgd2FzIHJlY29yZGVkIGluIE1hcmNoIDIwMDAgYW5kIHJlbGVhc2VkIG9uIDI2IEp1bmUgdGhhdCBzYW1lIHllYXIuDQoyMDAwIChTZXApOiBBbWF6b24ncyBKZWZmIEJlem9zIGZvdW5kZWQuDQoyMDAwIChTZXApOltDcmltZV1bSW5kaWFdIENoaG90YSBTaGFrZWVsJ3MgYXR0YWNrIG9uIFJhamFuIGluIGhpcyBCYW5na29rIGhvdGVsIHJvb20uDQoyMDAwIChTZXApOiBSYWlsVGVsIENvcnBvcmF0aW9uIG9mIEluZGlhIEx0ZC4gZm91bmRlZCBhbmQgSFEnZCBhdCAxNDMsIEluc3RpdHV0aW9uYWwgQXJlYSwgU2VjdG9yLTQ0LCBHdXJnYW9uLCBIYXJ5YW5hLCBJbmRpYS4gSXQgaXMgYSBNaW5pcmF0bmEgZW50ZXJwcmlzZSBvZiBHb3Zlcm5tZW50IG9mIEluZGlhIGZvY3VzaW5nIG9uIHByb3ZpZGluZyBicm9hZGJhbmQgYW5kIFZQTiBzZXJ2aWNlcy4NCjIwMDAgKFNlcCAxNyk6IFtHZW9Qb2xpdGljc10gVGhlIGlkZWEgb2YgYW4gQXNpYSBDb29wZXJhdGlvbiBEaWFsb2d1ZSAoQUNEKSB3YXMgcmFpc2VkIGF0IHRoZSBGaXJzdCBJbnRlcm5hdGlvbmFsIENvbmZlcmVuY2Ugb2YgQXNpYW4gUG9saXRpY2FsIFBhcnRpZXMgKGhlbGQgaW4gTWFuaWxhIGJldHdlZW4gMTfigJMyMCBTZXB0ZW1iZXIgMjAwMCkgYnkgU3VyYWtpYXJ0IFNhdGhpcmF0aGFpLCB0aGVuIGRlcHV0eSBsZWFkZXIgb2YgdGhlIG5vdyBkZWZ1bmN0IFRoYWkgUmFrIFRoYWkgUGFydHksIG9uIGJlaGFsZiBvZiBoaXMgcGFydHkgbGVhZGVyLCBUaGFrc2luIFNoaW5hd2F0cmEsIHRoZW4gUHJpbWUgTWluaXN0ZXIgb2YgVGhhaWxhbmQuIEl0IHdhcyBzdWdnZXN0ZWQgdGhhdCBBc2lhIGFzIGEgY29udGluZW50IHNob3VsZCBoYXZlIGl0cyBvd24gZm9ydW0gdG8gZGlzY3VzcyBBc2lhLXdpZGUgY29vcGVyYXRpb24uIEFmdGVyd2FyZHMsIHRoZSBpZGVhIG9mIHRoZSBBQ0Qgd2FzIGZvcm1hbGx5IHB1dCBmb3J3YXJkIGR1cmluZyB0aGUgMzR0aCBBU0VBTiBGb3JlaWduIE1pbmlzdGVycyBNZWV0aW5nIGluIEhhbm9pLCAyM+KAkzI0IEp1bHkgMjAwMSBhbmQgYXQgdGhlIEFTRUFOIEZvcmVpZ24gTWluaXN0ZXJzIFJldHJlYXQgaW4gUGh1a2V0LCAyMOKAkzIxIEZlYnJ1YXJ5IDIwMDIuDQoyMDAwIChPY3QgNCk6W011c2ljXSBGb3JtZWQgaW4gMTk5NiwgTGlua2luIFBhcmsgcm9zZSB0byBpbnRlcm5hdGlvbmFsIGZhbWUgd2l0aCB0aGVpciBkZWJ1dCBzdHVkaW8gYWxidW0sIEh5YnJpZCBUaGVvcnkuIEZvdXIgc2luZ2xlcyB3ZXJlIHJlbGVhc2VkIGZyb20gSHlicmlkIFRoZW9yeTogIk9uZSBTdGVwIENsb3NlciIsICJJbiB0aGUgRW5kIiwgIkNyYXdsaW5nIiBhbmQgIlBhcGVyY3V0IiwgYWxsIG9mIHRoZW0gYmVpbmcgcmVzcG9uc2libGUgZm9yIGxhdW5jaGluZyBMaW5raW4gUGFyayBpbnRvIG1haW5zdHJlYW0gcG9wdWxhcml0eS4gV2hpbGUgIkluIHRoZSBFbmQiIHdhcyB0aGUgbW9zdCBzdWNjZXNzZnVsIG9mIHRoZSBmb3VyLCBhbGwgb2YgdGhlIHNpbmdsZXMgaW4gdGhlIGFsYnVtIHJlbWFpbiBzb21lIG9mIHRoZSBiYW5kJ3MgbW9zdCBzdWNjZXNzZnVsIHNvbmdzIHRvIGRhdGUuDQoyMDAwIChOb3YgOSk6IGZvcm1hdGlvbiBvZiBVdHRhcmFraGFuZCBhcyBVdHRhcmFuY2hhbCAyMDAwIChKdW4gOSk6IEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQWN0LCAyMDAwLiBUaGUgYmlsbCB3YXMgcGFzc2VkIGluIHRoZSBidWRnZXQgc2Vzc2lvbiBvZiAyMDAwIGFuZCBzaWduZWQgYnkgUHJlc2lkZW50IEsuIFIuIE5hcmF5YW5hbiBvbiA5IE1heSAyMDAwLiBUaGUgYmlsbCB3YXMgZmluYWxpc2VkIGJ5IGdyb3VwIG9mIG9mZmljaWFscyBoZWFkZWQgYnkgdGhlbiBNaW5pc3RlciBvZiBJbmZvcm1hdGlvbiBUZWNobm9sb2d5LCBQcmFtb2QgTWFoYWphbi4NCjIwMDA6IGZvcm1hdGlvbiBvZg0KMjAwMDogSmFpc2gtZS1Nb2hhbW1lZCAobGl0ZXJhbGx5ICJUaGUgQXJteSBvZiBNdWhhbW1hZCIsIEplTSkgZm91bmRlZCBhdCBCYWhhd2FscHVyLCBQdW5qYWIsIFBha2lzdGFuLg0KMjAwMDogQ2hpbmEncyBCZWlEb3UgbmF2aWdhdGlvbiB0ZXN0IHN5c3RlbSBzdGFydHMuDQoyMDAwOiBGaXNlcnYgaGFkIGFjcXVpcmVkIG1vcmUgdGhhbiA5MCBidXNpbmVzc2VzLiBUaGUgbnVtYmVyIG9mIGVtcGxveWVlcyBncmV3IGZyb20gMjY0IHRvIDE0LDAwMC4gRmlzZXJ2IHdhcyBhbiBpbmR1c3RyeSBsZWFkZXIsIHdpdGggcmV2ZW51ZSB0aGF0IGluY3JlYXNlZCBmcm9tICQyMSBtaWxsaW9uIHRvICQxLjQgYmlsbGlvbiBpbiAxNSB5ZWFycy4NCjIwMDAgKERlYyA4KTpbR2FtaW5nXSBQcm9qZWN0IEkuRy5JLiBpcyBhIHRhY3RpY2FsIGZpcnN0LXBlcnNvbiBzaG9vdGVyIHZpZGVvIGdhbWUuIEl0IHdhcyBkZXZlbG9wZWQgYnkgSW5uZXJsb29wIFN0dWRpb3MgYW5kIHJlbGVhc2VkIGluIERlY2VtYmVyIDIwMDAgYnkgRWlkb3MgSW50ZXJhY3RpdmUuIFRoZSBnYW1lIHJlY2VpdmVkIG1peGVkIHJldmlld3MgZHVlIHRvIHNob3J0Y29taW5ncyBpbmNsdWRpbmcgYSBwb29ybHkgcHJvZ3JhbW1lZCBBLkkuLCBsYWNrIG9mIGEgbWlkLWdhbWUgc2F2ZSBvcHRpb24sIGFuZCB0aGUgbGFjayBvZiBtdWx0aXBsYXllciBmZWF0dXJlcy4gSG93ZXZlciBpdCB3YXMgcHJhaXNlZCBmb3IgaXRzIHNvdW5kIGRlc2lnbiBhbmQgZ3JhcGhpY3MsIHRoYW5rcyBpbiBwYXJ0IHRvIGl0cyB1c2Ugb2YgYSBwcm9wcmlldGFyeSBnYW1lIGVuZ2luZSB0aGF0IHdhcyBwcmV2aW91c2x5IHVzZWQgaW4gSW5uZXJsb29wJ3MgSm9pbnQgU3RyaWtlIEZpZ2h0ZXIuDQoyMDAwIChEZWMgMjEpOltKYWNrXSBSYWp1IENoYWNoYSByZWxlYXNlZC4NCjIwMDA6IFtCdXNpbmVzc11bRmluYW5jZV1bQ29ycG9yYXRlXVtJbmRpYV0gUklMIHBpbG90ZWQgd29ybGQncyBsYXJnZXN0IHBldHJvbGV1bSByZWZpbmVyeSBhdCBKYW1uYWdhciwgR3VqYXJhdCwgcmVmaW5pbmcgMS4yNE1uIGJhcnJlbHMvZGF5Lg0KMjAwMDpbQ3JpbWVdW0luZGlhXSBQb2xpY2UgZW5jb3VudGVycyBpbiBNdW1iYWkuIE1vc3QgY3JpbWluYWxzIGZsZWVpbmcgdG8gQ2FsY3VsdHRhLiBBZnRhYiBCaGF0a2kgZGVzdGFiaWxpc2UgdGhlIGVjb25vbXkgYnkgc3ByZWFkaW5nIGZha2UgY3VycmVuY3kgbm90ZXMgcHJpbnRlZCBieSBJU0kgZnVuY3Rpb25hcmllcywgYW5kIHR3bywgc2VuZCBtZXJjZW5hcmllcyB0byBjb25kdWN0IGFiZHVjdGlvbnMgYW5kIHRlcnJvcmlzdCBhdHRhY2tzLg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBUZWNobmljYWwgVW5pdmVyc2l0eSBvZiBNdW5pY2ggKDUgcXViaXQpOyBMb3MgQWxhbW9zIE5hdGlvbmFsIExhYiAoNyBxdWJpdHMpDQoyMDAwOkluIDIwMDAsIFRhdGEgVGVhIGFjcXVpcmVkIHRoZSBUZXRsZXkgVGVhIENvbXBhbnkgZm9yICQ0MDcgbWlsbGlvbi4gT3RoZXIgbm90YWJsZSBhY3F1aXNpdGlvbnMgaW5jbHVkZSBOYXRTdGVlbCAoMjAwNCksIEJydW5uZXIgTW9uZCAoMjAwNSksIGFuZCBFaWdodCBPJ0Nsb2NrIENvZmZlZSAoMjAwNikuIA0KMjAwMDogQmlybGEgYWNxdWlyZWQgSW5kaWFuIEFsdW1pbnVtIENvbXBhbnkgKElOREFMKS4gDQoyMDAwOiBTYXR5YSBOYXJheWFuYSBHb2Vua2Egd29ya2VkIGFzIGFuIGludGVybmF0aW9uYWwgYnVzaW5lc3NtYW4gYmFzZWQgaW4gTXlhbm1hciBhbmQgSW5kaWEgZm9yIGEgbGFyZ2UgcGFydCBvZiBoaXMgbGlmZS4gSGUgd2FzIGEga2V5bm90ZSBzcGVha2VyIG9uIHRoZSBzdWJqZWN0IG9mIFNwaXJpdHVhbGl0eSBpbiBCdXNpbmVzcyBhdCB0aGUgMzB0aCBXb3JsZCBFY29ub21pYyBGb3J1bSBpbiBEYXZvcywgU3dpdHplcmxhbmQgYmV0d2VlbiAyNiBKYW4gYW5kIDIgRmViIDIwMDAuIFR3byB5ZWFycyBsYXRlciBoZSBjb25kdWN0ZWQgdGhlIGZpcnN0IDEwLWRheSBjb3Vyc2UgaW4gVmlwYXNzYW5hIE1lZGl0YXRpb24gZXNwZWNpYWxseSBmb3IgYnVzaW5lc3MgZXhlY3V0aXZlcyBhbmQgZ292ZXJubWVudCBvZmZpY2lhbHMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAyMjUgeWVhcnMgb2YgSW5kZXBlbmRlbnQgVVNBIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIA0KDQoyMDAxOltVU11bR2VvUG9saXRpY3NdIGludmFzaW9uIG9mIEFmZ2hhbmlzdGFuLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMjAwMTpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgU2hhbmdoYWkgQ29vcGVyYXRpb24gT3JnYW5pc2F0aW9uIChTQ08pIGlzIGEgRXVyYXNpYW4gcG9saXRpY2FsLCBlY29ub21pYywgaW50ZXJuYXRpb25hbCBzZWN1cml0eSBhbmQgZGVmZW5jZSBvcmdhbml6YXRpb24gb2YgdGVuIG1lbWJlciBzdGF0ZXMuIEl0IHdhcyBlc3RhYmxpc2hlZCBpbiAyMDAxIGJ5IHRoZSBQZW9wbGUncyBSZXB1YmxpYyBvZiBDaGluYSwgS2F6YWtoc3RhbiwgS3lyZ3l6c3RhbiwgUnVzc2lhLCBhbmQgVGFqaWtpc3RhbiBhbmQgVXpiZWtpc3Rhbi4gSW4gSnVuZSAyMDE3LCBpdCBleHBhbmRlZCB0byBlaWdodCBzdGF0ZXMsIHdpdGggSW5kaWEgYW5kIFBha2lzdGFuLiBJcmFuIGpvaW5lZCB0aGUgZ3JvdXAgaW4gSnVseSAyMDIzLCBhbmQgQmVsYXJ1cyBpbiBKdWx5IDIwMjQuIFNldmVyYWwgY291bnRyaWVzIGFyZSBlbmdhZ2VkIGFzIG9ic2VydmVycyBvciBkaWFsb2d1ZSBwYXJ0bmVycy4gRm91bmRlcnM6IENoaW5hLCBSdXNzaWEsIEthemFraHN0YW4sIFV6YmVraXN0YW4sIEt5cmd5enN0YW4sIFRhamlraXN0YW47IEhlYWRxdWFydGVyczogQmVpamluZywgQ2hpbmE7IEZvdW5kZWQ6IDE1IEp1bmUgMjAwMQ0KMjAwMTpbQnVzaW5lc3NdIDIwMDHigJMyMDA1OiBIRlQgZXhlY3V0aW9uIHRpbWVzIGRlY3JlYXNlZCBmcm9tIHNldmVyYWwgc2Vjb25kcyB0byBtaWxsaXNlY29uZHMuIChIRlQpDQoyMDAxOltDb21wdXRpbmddW1F1YW50dW1dICBJQk0gaW1wbGVtZW50ZWQgR3JvdmVy4oCZcyBhbGdvcml0aG0gb24gYSA3LXF1Yml0IE5NUiBxdWFudHVtIGNvbXB1dGVyLCBmaW5kaW5nIGEgbWFya2VkIGl0ZW0gaW4gYSBkYXRhYmFzZSBvZiA0IGVudHJpZXMuDQoyMDAxOiBMaWZlIG9mIFBpIGlzIGEgQ2FuYWRpYW4gcGhpbG9zb3BoaWNhbCBub3ZlbCBieSBZYW5uIE1hcnRlbCBwdWJsaXNoZWQuIFRoZSBwcm90YWdvbmlzdCBpcyBQaXNjaW5lIE1vbGl0b3IgIlBpIiBQYXRlbCwgYW4gSW5kaWFuIGJveSBmcm9tIFBvbmRpY2hlcnJ5IHdobyBleHBsb3JlcyBpc3N1ZXMgb2Ygc3Bpcml0dWFsaXR5IGFuZCBtZXRhcGh5c2ljcyBmcm9tIGFuIGVhcmx5IGFnZS4gSGUgc3Vydml2ZXMgMjI3IGRheXMgYWZ0ZXIgYSBzaGlwd3JlY2sgd2hpbGUgc3RyYW5kZWQgb24gYSBsaWZlYm9hdCBpbiB0aGUgUGFjaWZpYyBPY2VhbiB3aXRoIGEgQmVuZ2FsIHRpZ2VyIHdoaWNoIHJhaXNlcyBxdWVzdGlvbnMgYWJvdXQgdGhlIG5hdHVyZSBvZiByZWFsaXR5IGFuZCBob3cgaXQgaXMgcGVyY2VpdmVkIGFuZCB0b2xkLjtTZXZlbiBTdG9yaWVzICgxOTkzKQ0KMjAwMTpbQ3JpbWVdW0luZGlhXSBDaGhvdGEgUmFqYW4ncyBhc3NvY2lhdGVzIHRyYWNrZWQgZG93biBhbmQgc2hvdCBkZWFkIGhvdGVsaWVyIFZpbm9kIGluIE11bWJhaSwgYXMgd2VsbCBhcyBTdW5pbCBTb2FucyDigJMgYW5vdGhlciBEYXdvb2QgYXNzb2NpYXRlLg0KMjAwMSAoSmFuIDEpOltCb29rXSBHcmVnIE1jS2Vvd24ncyBFc3NlbnRpYWxpc206IFRoZSBEaXNjaXBsaW5lZCBQdXJzdWl0IG9mIExlc3MNCjIwMDEgKEphbiAxKTpbQm9va10gQnJpYW4gVHJhY3kncyBFYXQgVGhhdCBGcm9nIQ0KMjAwMTogVGhlIEFyZHVpbm8gcHJvamVjdCBzdGFydGVkIGF0IHRoZSBJbnRlcmFjdGlvbiBEZXNpZ24gSW5zdGl0dXRlIEl2cmVhIChJRElJKSBpbiBJdnJlYSwgSXRhbHkuIEF0IHRoYXQgdGltZSwgdGhlIHN0dWRlbnRzIHVzZWQgYSBCQVNJQyBTdGFtcCBtaWNyb2NvbnRyb2xsZXIgYXQgYSBjb3N0IG9mICQxMDAsIGEgY29uc2lkZXJhYmxlIGV4cGVuc2UgZm9yIG1hbnkgc3R1ZGVudHMuDQoyMDAxIChBcHIgNHRoKTogQ2hhcmxlcyBNLiBWZXN0LCB0aGUgdGhlbiBQcmVzaWRlbnQgb2YgTUlUIGFubm91bmNlZCBPcGVuQ291cnNlV2FyZSAoT0NXKSBwdWJsaWNpemluZyBhbGwgb2YgaXRzIDIsMDAwIGNvdXJzZXMgIGF0IHRoZSBlc3RpbWF0ZWQgY29zdCBvZiAkMTAwIG1pbGxpb24gKG9uIGFuIGF2Zy4sIGEgTUlUIHN0dWRlbnRzIHBheXMgYXJvdW5kICQyNiwwMDAgYXMgb2ZmbGluZSB0dWl0aW9uIGZlZSkNCjIwMDE6IFVTIGludmFkZWQgQWZnaGFuaXN0YW4gaW4gcmVzcG9uc2UgdG8gOS8xMSBhdHRhY2tzLiBPZmZpY2lhbGx5LCBJdCBoYXMgYmVjb21lIHRoZSBsb25nZXN0IHdhciBpbiBBbWVyaWNhbiBoaXN0b3J5Lg0KMjAwMTogaVBvZCBieSBUb255IEZhZGVsbA0KMjAwMSAoSnVuIDE1KTpbSmFja10gR2FkYXI6IEVrIFByZW0gS2F0aGE7IExhZ2FhbjogT25jZSBVcG9uIGEgVGltZSBpbiBJbmRpYQ0KMjAwMSAoU2VwIDExKTogOS8xMSBUZXJyb3Jpc3QgYXR0YWNrcy4gVGhlIFNlcHRlbWJlciAxMSBvciA5LzExLCBhdHRhY2tzIHdlcmUgYSBzZXJpZXMgb2YgZm91ciBjb29yZGluYXRlZCB0ZXJyb3Jpc3QgYXR0YWNrcyBieSB0aGUgSXNsYW1pYyB0ZXJyb3Jpc3QgZ3JvdXAgYWwtUWFlZGEgb24gdGhlIFVuaXRlZCBTdGF0ZXMgb24gdGhlIG1vcm5pbmcgb2YgVHVlc2RheSwgU2VwIDExLiBUaGUgbG9zcyBvZiBsaWZlIHdhcyBlc3RpbWF0ZWQgYXQganVzdCB1bmRlciAzLDAwMC4gVGhlIGV2ZW50IGNoYW5nZWQgQW1lcmljYW4gZm9yZWlnbiBwb2xpY3kuIEl0IHdhcyBhIG1vdGl2YXRpbmcgZmFjdG9yIGJlaGluZCB0aGUgY29udHJvdmVyc2lhbCBpbnZhc2lvbiBvZiBJcmFxIGFuZCBsZWQgdG8gYSDigJh3YXIgb24gdGVycm9y4oCZIHN5bWJvbGlzZWQgYnkgR3VhbnRhbmFtbyBCYXkgYW5kIGEgZGViYXRlIG92ZXIgdGhlIGp1c3RpZmljYXRpb24gb2YgdG9ydHVyZS4NCjIwMDEgKE9jdCA3KTpbR2VvUG9saXRpY3NdIFVuaXRlZCBTdGF0ZXMgaW52YXNpb24gb2YgQWZnaGFuaXN0YW46IEluIGxhdGUgMjAwMSwgdGhlIFVuaXRlZCBTdGF0ZXMgYW5kIGl0cyBjbG9zZSBhbGxpZXMgaW52YWRlZCBBZmdoYW5pc3RhbiBhbmQgdG9wcGxlZCB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50LiBUaGUgaW52YXNpb24ncyBzdGF0ZWQgYWltcyB3ZXJlIHRvIGRpc21hbnRsZSBhbC1RYWVkYSwgd2hpY2ggaGFkIGV4ZWN1dGVkIHRoZSBTZXB0ZW1iZXIgMTEgYXR0YWNrcywgYW5kIHRvIGRlbnkgaXQgYSBzYWZlIGJhc2Ugb2Ygb3BlcmF0aW9ucyBpbiBBZmdoYW5pc3RhbiBieSByZW1vdmluZyB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50IGZyb20gcG93ZXIuIERlYyA3LCAyMDAxIG9ud2FyZCBzdGFydGVkIFdhciBpbiBBZmdoYW5pc3Rhbi4NCjIwMDEgKE9jdCAxNik6W0Jvb2tdIE1jS2luc2V5IFJlc2VhcmNoZXIgSmFtZXMgQy4gQ29sbGlucycgR29vZCBUbyBHcmVhdDogV2h5IFNvbWUgQ29tcGFuaWVzIE1ha2UgdGhlIExlYXAuLi5BbmQgT3RoZXJzIERvbid0OyANCjIwMDEgKE5vdik6W0NyaW1lXVtJbmRpYV0gQWJkdWwgR2FmZmFyIGFsaWFzIENoaWtuYSBHYWZmYXIgY2F1Z2h0IGJ5IHRoZSBkZXRlY3RpdmUgZGVwYXJ0bWVudCBpbiBDYWxjdXR0YSANCjIwMDEgKEphbiAyKTogVGhlIG5vcnRoZXJuIGVsZWN0cmljYWwgZ3JpZCBjb2xsYXBzZWQgaW4gSW5kaWEuIEEgZmF1bHQgaW4gdGhlIHRyYW5zbWlzc2lvbiBzeXN0ZW0gaW4gdGhlIHN0YXRlIG9mIFV0dGFyIFByYWRlc2ggbGVkIHRvIGNhc2NhZGluZyBmYWlsdXJlIHRocm91Z2hvdXQgbm9ydGhlcm4gSW5kaWEgYWZmZWN0aW5nIDIzIGNyb3JlIHJlc2lkZW50cy4NCjIwMDE6IElWUlMgKCdJbnRlcmFjdGl2ZSBWb2ljZSBSZXNwb25zZSBTeXN0ZW0nKSBmb3IgdGVsZXBob25pYyBlbnF1aXJpZXMgYWJvdXQgdHJhaW5zIGludHJvZHVjZWQgaW4gc29tZSBzdGF0aW9ucy4NCjIwMDE6IE1hZGVFYXN5IGluY29ycG9yYXRlZCBhdCA0NC1BLzEsIEthbHUgU2FyYWksIE5lYXIgSGF1eiBLaGFzIE1ldHJvIFN0YXRpb24sIE5ldyBEZWxoaS0xMTAwMTYNCjIwMDE6IEFjYyB0byAyMDAxIGNlbnN1cywgMzAgbGFraHMgd2VyZSBpbW1pZ3JhdGVkIHRvIEluZGlhIGZyb20gQmFuZ2xhZGVzaCBhbG9uZSwgZm9sbG93ZWQgYnkgMTAgbGFraHMgZnJvbSBQYWtpc3RhbiBhbmQgNiBsYWtocyBmcm9tIE5lcGFsLg0KMjAwMSAoRGVjIDEzKTpbQ3JpbWVdW0luZGlhXSBUZXJyb3Jpc3QgYXR0YWNrIG9uIEluZGlhJ3MgUGFybGlhbWVudC4NCjIwMDE6IHRoZSBjdXN0b21lciBiYXNlIG9mIG1vYmlsZSBwaG9uZSBjb21wYW5pZXMgd2FzIDQgbWlsbGlvbi4NCjIwMDE6IEJlbmVmaXQgbGFubmVycywgVGV4YXMgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBIZWFsdGggQmVuZWZpdCBkaXZpc2lvbi4NCjIwMDE6IE5ldyBIb3Jpem9ucyB3YXMgaW5pdGlhbGx5IHNlbGVjdGVkIGZvciBmdW5kaW5nIGluIDIwMDEgYnV0IHdhcyBleGNsdWRlZCBmcm9tIHRoZSBOQVNBIDIwMDMgYnVkZ2V0LiBGdW5kaW5nIGZvciB0aGUgbWlzc2lvbiB3YXMgcmVpbnN0YXRlZCBhZnRlciBOZXcgSG9yaXpvbnMgd2FzIGxpc3RlZCBhcyBhIHRvcCBwcmlvcml0eSBpbiB0aGUgUGxhbmV0YXJ5IFNjaWVuY2UgRGVjYWRhbCBTdXJ2ZXkgb2YgMjAwM+jjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlallkllklklklklklklklklklklklklklklklklklklklklklklklklklklklkjjajlkasjdlajdlkajdlaj
+KAkzIwMDEuDQoxOTkzOiBBc2hvayBIYWxsIEdpcmwncyBSZXNpZGVudGlhbCBTY2hvb2wsIE1hamtoYWxpLg0KMTk5MzogQnkgdGhpcyB5ZWFyIHRoZXJlIHdlcmUgYXJvdW5kIDEwMCB3ZWItc2VydmVycyBhY3Jvc3MgdGhlIHdvcmxkLiAoQSByZXBvcnQgcHVibGlzaGVkIGluIGZpcnN0IGlzc3VlIG9mIFRoZSBXb3JsZCBXaWRlIFdlYiBOZXdzbGV0dGVyLCAxOTkzKQ0KMTk5MzogQUMgMy10aWVyIGNvYWNoZXMgJiBTbGVlcGVyIGNsYXNzIGFyZSBpbnRyb2R1Y2VkIGFwYXJ0IGZyb20gc2Vjb25kIGNsYXNzLg0KMTk5MzogR29JJ3MgRGlzdHJpY3QgUHJpbWFyeSBFZHVjYXRpb24gUHJvZ3JhbW1lIChEUEVQKSB3YXMgbGF1bmNoZWQsIHdpdGggYW4gYWltIG9mIGFjaGlldmluZyB0aGUgb2JqZWN0aXZlIG9mIHVuaXZlcnNhbCBwcmltYXJ5IGVkdWNhdGlvbi4gVGhpcyBwcm9ncmFtbWVkIGxhaWQgdGhlIGZvdW5kYXRpb25zIGZvciDgpLjgpLDgpY3gpLUg4KS24KS/4KSV4KWN4KS34KS+IOCkheCkreCkv+Ckr+CkvuCkqChFZHVjYXRpb24gZm9yIEFsbCBNb3ZlbWVudCkgYWltZWQgYXQgdGhlIHVuaXZlcnNhbGlzYXRpb24gb2YgZWxlbWVudGFyeSBlZHVjYXRpb24gbWFraW5nIGZyZWUgYW5kIGNvbXB1bHNvcnkgZWR1Y2F0aW9uIHRvIGNoaWxkcmVuIGJldHdlZW4gdGhlIGFnZXMgb2YgNiB0byAxNC4NCjE5OTM6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIHNwbGl0IHdpdGggRGF3b29kIGFuZCBmb3JtZWQgYW4gaW5kZXBlbmRlbnQgZ2FuZyB0aGF0IGZyZXF1ZW50bHkgY2xhc2hlZCB3aXRoIERhd29vZCdzIEQtQ29tcGFueS4NCjE5OTMgKEphbiA3KTpbQ3JpbWVdIFJpb3RzIHJlLXN0YXJ0ZWQgaW4gTXVtYmFpIGFuZCBsYXN0ZWQgZm9yIDIwIGRheXMuIFRoZSBJU0ksIHdoaWNoIGNvbnRyb2xsZWQgc2hpcHBpbmcgcm91dGVzIGZyb20gdGhlIEd1bGYgdG8gSW5kaWEncyB3ZXN0IGNvYXN0LCBkZW1hbmRlZCB0aGF0IHRoZSBtYWZpYSB0cmFuc3BvcnQgd2VhcG9ucyBhbmQgZXhwbG9zaXZlcyBpbnRvIEluZGlhIGluIHJldHVybiBmb3IgdGhlIHVzZSBvZiBQYWtpc3RhbidzIHdhdGVycy4gRGF3b29kIG1ldCB0aGVpciBJU0kgaGFuZGxlcnMgaW4gYSA1IHN0YXIgaG90ZWwgb2YgRHViYWkgaW4gSmFuIG9yIEZlYiBvZiAxOTkzLCB0aGVuIGNhbWUgdGhlIFJEWCB0aHJvdWdoIHRoZSBzYW1lIHBvcm91cyBhbmQgdW5jaGVja2VkIHNlYSByb3V0ZSB0aGF0IDI2LzExIGF0dGFja2VycyBzbGlwcGVkIGFjcm9zcyBhbmQgd3JlY2tlZCBtYXloZW0gaW4gTXVtYmFpLiBUaGUg4oCZOTMgYXR0YWNrcyB3ZXJlIGZpbmFsbHkgZXhlY3V0ZWQgaW4gbWFyY2ggdGhhdCBjbGFpbWVkIHNvbWUgMzAwIGlubm9jZW50IGxpdmVzLg0KMTk5MyAoTWFyIDYpOltQb2xpdHldW0luZGlhXSBTaGFyYWQgUGF3YXIgcmUtZWxlY2V0ZCBhcyBDTSBvZiBNSCBmb3IgMiB5ZWFycy4NCjE5OTMgKE1hciAxMik6W0NyaW1lXSBUaGUgMTk5MyBCb21iYXkgYm9tYmluZ3Mgd2VyZSBhIHNlcmllcyBvZiAxMiB0ZXJyb3Jpc3QgYm9tYmluZ3MgdGhhdCB0b29rIHBsYWNlIGluIEJvbWJheS4gVGhlIHNpbmdsZS1kYXkgYXR0YWNrcyByZXN1bHRlZCBpbiAyNTcgZmF0YWxpdGllcyBhbmQgMSw0MDAgaW5qdXJpZXMuIFRoZXJlIHdhcyBhbm90aGVyIHJhaWQgbmVhciBNYW5pc2ggbWFya2V0IHdoZXJlIGhhbmQgZ3JlbmFkZXMgd2VyZSByZWNvdmVyZWQuIEFmdGVyIGFub3RoZXIgdGlwIG9mZiBsZWQgdG8gZGlzY292ZXJ5IG9mIGEgaHVnZSBxdWFudGl0eSBvZiBSRFggZnJvbSBOYWdsYSBCdW5kZXIgb2ZmIEdob2RidW5kZXIgUm9hZCBpbiBUaGFuZS4g4oCcSW4gYWxsLCA1LDAwMCBraWxvZ3JhbXMgb2YgUkRYIHdhcyBicm91Z2h0IGludG8gTXVtYmFpIGFuZCB3ZSByZWNvdmVyZWQgMywzMDAga2lsb2dyYW1zIG9mIGl0IGluIGFsbCB0aGUgcmFpZHMs4oCdIHNheXMgQ2hhdWd1bGUuIFJlZHVjZWQgU2hvY2sgU2Vuc2l0aXZpdHkgKFJTUykgZXhwbG9zaXZlcywgc3VjaCBhcyBSU1MtUkRYLCB3aGljaCBjb3N0cyBhYm91dCBScy4gMSw1MDAtMiwwMDAgcGVyIGtnLiBBbmVlcyBjb250aW51ZWQgb3BlcmF0aW9uIG9mIEQtQ29tcGFueSB3aGljaCBpbmNsdWRlIGNvbnRyYWN0IGtpbGxpbmcsIGV4dG9ydGlvbiwgdGhlIGNpcmN1bGF0aW9uIG9mIGNvdW50ZXJmZWl0IGN1cnJlbmN5LCBhbmQgdGhlIHByb3Zpc2lvbiBvZiBhIHJhbmdlIG9mIGZyZWUtbGFuY2Ugc2VydmljZXMgdG8gdGVycm9yaXN0IGdyb3VwcyBhdCB0aGUgaW5zdGFuY2Ugb2YgUGFraXN0YW4ncyBJbnRlciBTZXJ2aWNlcyBJbnRlbGxpZ2VuY2UgKElTSSkuIEludGVycG9sIFJlZCBDb3JuZXIgbm90aWNlIGZvciBELUNvbXBhbnkuDQoxOTkzIChOb3YgMSk6IFRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGZvdW5kZWQuIEl0IGlzIGFuIGVjb25vbWljIGFuZCBwb2xpdGljYWwgcGFydG5lcnNoaXAgaW52b2x2aW5nIDI4IEV1cm9wZWFuIGNvdW50cmllcy4gSXQgYmVnYW4gYWZ0ZXIgV1cyIHRvIGZvc3RlciBlY29ub21pYyBjby1vcGVyYXRpb24sIHdpdGggdGhlIGlkZWEgdGhhdCBjb3VudHJpZXMgd2hpY2ggdHJhZGUgdG9nZXRoZXIgYXJlIG1vcmUgbGlrZWx5IHRvIGF2b2lkIGdvaW5nIHRvIHdhciB3aXRoIGVhY2ggb3RoZXIuDQoxOTkzIChOb3YgMyk6IFtHZW9Qb2xpdGljc10gVGhlIENvbW1vbiBNYXJrZXQgZm9yIEVhc3Rlcm4gYW5kIFNvdXRoZXJuIEFmcmljYSAoQ09NRVNBKSBpcyBhIHJlZ2lvbmFsIGVjb25vbWljIGNvbW11bml0eSBpbiBBZnJpY2Egd2l0aCB0d2VudHktb25lIG1lbWJlciBzdGF0ZXMgc3RyZXRjaGluZyBmcm9tIFR1bmlzaWEgdG8gRXN3YXRpbmkuIENPTUVTQSB3YXMgZm9ybWVkIGluIERlY2VtYmVyIDE5OTQsIHJlcGxhY2luZyBhIFByZWZlcmVudGlhbCBUcmFkZSBBcmVhIHdoaWNoIGhhZCBleGlzdGVkIHNpbmNlIDE5ODEuIE5pbmUgb2YgdGhlIG1lbWJlciBzdGF0ZXMgZm9ybWVkIGEgZnJlZSB0cmFkZSBhcmVhIGluIDIwMDAgKERqaWJvdXRpLCBFZ3lwdCwgS2VueWEsIE1hZGFnYXNjYXIsIE1hbGF3aSwgTWF1cml0aXVzLCBTdWRhbiwgWmFtYmlhIGFuZCBaaW1iYWJ3ZSksIHdpdGggUndhbmRhIGFuZCBCdXJ1bmRpIGpvaW5pbmcgdGhlIEZUQSBpbiAyMDA0LCB0aGUgQ29tb3JvcyBhbmQgTGlieWEgaW4gMjAwNiwgU2V5Y2hlbGxlcyBpbiAyMDA5IGFuZCBUdW5pc2lhIGFuZCBTb21hbGlhIGluIDIwMTguDQoxOTkzIChEZWMgMjApOiBPSENIUiBmb3JtZWQuIFRoZSBPZmZpY2Ugb2YgdGhlIFVuaXRlZCBOYXRpb25zIEhpZ2ggQ29tbWlzc2lvbmVyIGZvciBIdW1hbiBSaWdodHMgKE9IQ0hSKSwgYSBVbml0ZWQgTmF0aW9ucyBhZ2VuY3kgdGhhdCB3b3JrcyB0byBwcm9tb3RlIGFuZCBwcm90ZWN0IHRoZSBodW1hbiByaWdodHMgdGhhdCBhcmUgZ3VhcmFudGVlZCB1bmRlciBpbnRlcm5hdGlvbmFsIGxhdyBhbmQgc3RpcHVsYXRlZCBpbiB0aGUgVW5pdmVyc2FsIERlY2xhcmF0aW9uIG9mIEh1bWFuIFJpZ2h0cyBvZiAxOTQ4Lg0KMTk5Mzp0aGUgMjR0aCBhbmQgbGFzdCBHTE9OQVNTIHNhdGVsbGl0ZSB3YXMgbGF1bmNoZWQgZm9ybWluZyB0aGUgd2hvbGUgbmF2aWdhdGlvbiBjb25zdGVsbGF0aW9uIHNpbWlsYXIgdG8gdGhhdCBvZiBVUydzIEdQUy4NCjE5OTM6IFNIQS0wIChhIGhhc2ggZnVuY3Rpb24pIHdhcyBwcm9wb3NlZCBieSBOSVNULCBNYXJ5bGFuZCwgVVNBIChGb3VuZGVkOiAxOTAxKS4gSXQgcHJvZHVjZXMgYSAxNjAtYml0IGhhc2ggdmFsdWUsIHRodXMgdGhlIGJydXRlLWZvcmNlIGNvbGxpc2lvbiBvciAgbmVhci1jb2xsaXNpb24gYXR0YWNrIHJlcXVpcmVzIE8oMl44MCkgY29tcHV0YXRpb24uIFdpdGhpbiA1IHllYXJzLCBpdCB3YXMgbWFkZSBjb2xsaXNpb24gYXR0YWNrZWQgYnkgQ2hhYmF1ZCBhbmQgSm91eCB3aXRoIHRoZSBhdHRhY2sgY29tcGxleGl0eSBvZiAyXjYxLg0KMTk5MzogW0NvYWxnYXRlIHNjYW1dIE9uIDIzcmQgQXByaWwgMjAxMywgdGhlIFN0YW5kaW5nIENvbW1pdHRlZSBvbiBDb2FsIGFuZCBTdGVlbCB0YWJsZWQgaW4gUGFybGlhbWVudCB0aGF0IGFsbCAxOTQgY29hbCBibG9ja3MgZGlzdHJpYnV0ZWQgYmV0d2VlbiAxOTkzIGFuZCAyMDA4IHdlcmUgYXVjdGlvbmVkIGluIGFuIHVuYXV0aG9yaXplZCBtYW5uZXIgYW5kIHRoZSBjb3VudHJ5IGxvc3QgUnMuMS44NiBsYWtoIGNyb3JlLi4gRm9ybWVyIFByaW1lIE1pbmlzdGVyIE1hbm1vaGFuIFNpbmdoLCBhbG9uZyB3aXRoIEt1bWFyIE1hbmdhbGFtIEJpcmxhIGFuZCBQLkMuIFBhcmFraCwgd2VyZSBhY2N1c2VkIGFuZCBzdW1tb25lZCBieSBhIHNwZWNpYWwgY291cnQuIFsyTCBDcm9yZV0uIENvbXB0cm9sbGVyIGFuZCBBdWRpdG9yIEdlbmVyYWwgb2YgSW5kaWEgdG9vayAyMCB5ZWFycyB0byBJRCBvbmUgb2YgdGhlIGJpZ2dlc3Qgc2NhbXMgaW4gSW5kaWFuIGhpc3RvcnkuDQoxOTkzOiBBZnRlciBQcmVzaWRlbnQgQmlsbCBDbGludG9uIHRvb2sgb2ZmaWNlIGluIDE5OTMsIGhvd2V2ZXIsIHRoZSBVLlMuIGVjb25vbXkgZW1iYXJrZWQgb24gYSBsb25nIGFuZCBzdHJvbmcgZXhwYW5zaW9uLCBtYWtpbmcgdGhlIDE5OTBzIGEgZ3JlYXQgZGVjYWRlIGZvciBBbWVyaWNhJ3MgbW9uZXksIG92ZXJhbGwuIA0KMTk5MzpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTW90aHJhKDE5OTIpDQoxOTkzOltTcGFjZV0gSGlwcGFyY29zLCBhIHNjaWVudGlmaWMgc2F0ZWxsaXRlIG9mIHRoZSBFdXJvcGVhbiBTcGFjZSBBZ2VuY3kgKEVTQSkgbGFzdGVkIGZvciA0IHllYXJzIGJlZm9yZSBnb2luZyBvdXQtb2Ytc2VydmljZS4NCjE5OTM6W1NwYWNlXVtSZXNlYXJjaF0gSW4gMTk5MywgRG9uIFBhZ2UgYXJndWVkIHRoYXQgaWYgYSBibGFjayBob2xlIHN0YXJ0cyBpbiBhIHB1cmUgcXVhbnR1bSBzdGF0ZSBhbmQgZXZhcG9yYXRlcyBjb21wbGV0ZWx5IGJ5IGEgdW5pdGFyeSBwcm9jZXNzLCB0aGUgdm9uIE5ldW1hbm4gZW50cm9weSBvZiB0aGUgSGF3a2luZyByYWRpYXRpb24gaW5pdGlhbGx5IGluY3JlYXNlcyBhbmQgdGhlbiBkZWNyZWFzZXMgYmFjayB0byB6ZXJvIHdoZW4gdGhlIGJsYWNrIGhvbGUgaGFzIGRpc2FwcGVhcmVkLiBUaGlzIGlzIGNhbGxlZCB0aGUgUGFnZSBjdXJ2ZS4NCjE5OTM6W0Jvb2tzXVtIaXN0b3J5XSBHcmVlbuKAmXMgRGljdGlvbmFyeSBvZiBTbGFuZyBpcyB0aGUgbGFyZ2VzdCBoaXN0b3JpY2FsIGRpY3Rpb25hcnkgb2YgRW5nbGlzaCBzbGFuZy4gV3JpdHRlbiBieSBKb25hdGhvbiBHcmVlbiBvdmVyIDE3IHllYXJzIGZyb20gMTk5MywgaXQgcmVhY2hlZCB0aGUgcHJpbnRlZCBwYWdlIGluIDIwMTAgaW4gYSB0aHJlZS12b2x1bWUgc2V0IGNvbnRhaW5pbmcgbmVhcmx5IDEwMCwwMDAgZW50cmllcyBzdXBwb3J0ZWQgYnkgb3ZlciA0MDAsMDAwIGNpdGF0aW9ucyBmcm9tIGMuIGFkIDEwMDAgdG8gdGhlIHByZXNlbnQgZGF5LiBUaGUgbWFpbiBmb2N1cyBvZiB0aGUgZGljdGlvbmFyeSBpcyB0aGUgY292ZXJhZ2Ugb2Ygb3ZlciA1MDAgeWVhcnMgb2Ygc2xhbmcgZnJvbSBjLiAxNTAwIG9ud2FyZHMuDQoxOTkzOltFbnZdW0Rpc2FzdGVyXSBTb3V0aCBBc2lhbiBtb25zb29uIGZsb29kcywgM2sgZGVhdGhzDQoxOTkzOltHZW9ncmFwaHldIFRoZSBsYXN0IG1ham9yIHNoaWZ0cyBpbiBFYXJ0aCdzIGF4aXMgd2VyZSBpbmZsdWVuY2VkIGJ5IGNsaW1hdGUgY2hhbmdlOiBhIDMxLjUtaW5jaCBzaGlmdCBiZXR3ZWVuIDE5OTMgYW5kIDIwMTAgd2FzIHByaW1hcmlseSBjYXVzZWQgYnkgZ3JvdW5kd2F0ZXIgcHVtcGluZywgYW5kIGEgY2hhbmdlIGluIHBvbGFyIGRyaWZ0IGRpcmVjdGlvbiBhcm91bmQgdGhlIDE5OTBzIHdhcyBsaW5rZWQgdG8gbWVsdGluZyBnbGFjaWVycyBhbmQgaWNlIHNoZWV0cyBkdWUgdG8gZ2xvYmFsIHdhcm1pbmcuIEVhcnRoJ3MgYXhpcyBhbHNvIHNoaWZ0ZWQgYnkgYWJvdXQgNi41IGluY2hlcyBpbiBNYXJjaCAyMDExIGFmdGVyIHRoZSBKYXBhbmVzZSBlYXJ0aHF1YWtlLCBjYXVzaW5nIHRoZSBwbGFuZXQgdG8gc3BpbiBzbGlnaHRseSBmYXN0ZXIuDQoxOTkzOltXaG9dIEluIDE5OTMsIEluZGlhIGNhbWUgaGVhcnRicmVha2luZ2x5IGNsb3NlIHRvIHdpbm5pbmcgaXRzIGZpcnN0IE1pc3MgVW5pdmVyc2UgY3Jvd24gd2l0aCB0aGUgc3R1bm5pbmcgYW5kIGdyYWNlZnVsIE5hbXJhdGEgU2hpcm9ka2FyLCB3aG8gaGFkIGVhcmxpZXIgd29uIHRoZSBGZW1pbmEgTWlzcyBJbmRpYSB0aXRsZS4gUmVwcmVzZW50aW5nIEluZGlhIGF0IHRoZSBNaXNzIFVuaXZlcnNlIHBhZ2VhbnQgaGVsZCBpbiBNZXhpY28gQ2l0eSwgTmFtcmF0YSB3YXMgYSBzdHJvbmcgY29udGVuZGVy4oCUZWxlZ2FudCBpbiBoZXIgZ293biwgcG9pc2VkIGluIGludGVydmlld3MsIGFuZCBhIGZhbiBmYXZvcml0ZS4gU2hlIGVhc2lseSBtYWRlIGl0IHRvIHRoZSBUb3AgNiwgYW5kIGhlciBjaGFuY2VzIG9mIHdpbm5pbmcgbG9va2VkIGluY3JlZGlibHkgaGlnaC4gQnV0IHRoZW4gY2FtZSB0aGUgZmluYWwgcXVlc3Rpb246IOKAnElmIHlvdSBjb3VsZCBiZSBib3JuIGFzIGFueSBoaXN0b3JpY2FsIGZpZ3VyZSwgd2hvIHdvdWxkIGl0IGJlIGFuZCB3aHk/4oCdIFdoaWxlIG90aGVyIGNvbnRlc3RhbnRzIG5hbWVkIGdsb2JhbCBpY29ucyBsaWtlIE1vdGhlciBUZXJlc2EgYW5kIFByaW5jZXNzIERpYW5hLCBOYW1yYXRhIGdhdmUgYW4gaG9uZXN0LCBwZXJzb25hbCBhbnN3ZXLigJRzaGUgc2FpZCBzaGUgd291bGQgYmUgYm9ybiBhcyBoZXJzZWxmIG9yIHNvbWVvbmUgY2xvc2UgdG8gaGVyLCBiZWNhdXNlIHNoZSBiZWxpZXZlZCBpbiBsaXZpbmcgbGlmZSB3aXRoIHRydXRoIGFuZCBpbmRpdmlkdWFsaXR5LiBJdCB3YXMgYSBiZWF1dGlmdWwsIGdyb3VuZGVkIGFuc3dlcuKAlGJ1dCBub3QgdGhlIGtpbmQgb2YgZ3JhbmQsIGlkZWFsaXN0aWMgcmVzcG9uc2UgdGhlIGp1ZGdlcyB3ZXJlIGV4cGVjdGluZy4gVGhhdCBvbmUgbW9tZW50IG9mIHRydXRoLCBtYW55IGJlbGlldmUsIGNvc3QgaGVyIHRoZSBjcm93biwgYW5kIEluZGlhIGhhZCB0byB3YWl0IGFub3RoZXIgeWVhciBiZWZvcmUgU3VzaG1pdGEgU2VuIGJyb3VnaHQgdGhlIE1pc3MgVW5pdmVyc2UgdGl0bGUgaG9tZSBpbiAxOTk0LiBTdGlsbCwgTmFtcmF0YeKAmXMgYW5zd2VyIGJlY2FtZSBpY29uaWPigJRub3QgYmVjYXVzZSBpdCB3b24sIGJ1dCBiZWNhdXNlIGl0IHdhcyByZWFsLCBtYXJraW5nIGEgcmFyZSBpbnN0YW5jZSB3aGVyZSBob25lc3R5IHN0b29kIHRhbGxlciB0aGFuIGRpcGxvbWFjeS4NCjE5OTM6W0F2aWF0aW9uXVtFeHRyZW1lXVtXaG9dIFRoZSBIZXJic3QgbWFuZXV2ZXIgd2FzIGZpcnN0IHN1Y2Nlc3NmdWxseSBwZXJmb3JtZWQgb24gQXByaWwgMjksIDE5OTMsIGJ5IGFuIFgtMzEgYWlyY3JhZnQuIE5hbWVkIGFmdGVyIFdvbGZnYW5nIEhlcmJzdCwgYSBkZXZlbG9wZXIgb2YgcG9zdC1zdGFsbCB0ZWNobm9sb2d5IGZvciBNZXNzZXJzY2htaXR0LULDtmxrb3ctQmxvaG0gKE1CQiksIHRoaXMsIHBvc3Qtc3RhbGwgbWFuZXV2ZXIgZW5hYmxlcyBhIGZpZ2h0ZXIgdG8gbWFrZSBhIHJhcGlkIDE4MMKwIHR1cm4gd2l0aGluIGEgbWluaW1hbCByYWRpdXMuIA0KDQoxOTk04oCTMTk5NTpbVVNdW0dlb1BvbGl0aWNzXSBvY2N1cGF0aW9uIG9mIEhhaXRpLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgRXVyb3BlYW4gRWNvbm9taWMgQXJlYSwgYWJicmV2aWF0ZWQgYXMgRUVBLCBjb25zaXN0cyBvZiB0aGUgTWVtYmVyIFN0YXRlcyBvZiB0aGUgRXVyb3BlYW4gVW5pb24gKEVVKSBhbmQgdGhyZWUgY291bnRyaWVzIG9mIHRoZSBFdXJvcGVhbiBGcmVlIFRyYWRlIEFzc29jaWF0aW9uIChFRlRBKSAoSWNlbGFuZCwgTGllY2h0ZW5zdGVpbiBhbmQgTm9yd2F5OyBleGNsdWRpbmcgU3dpdHplcmxhbmQpLiBUaGUgQWdyZWVtZW50IG9uIHRoZSBFRUEgZW50ZXJlZCBpbnRvIGZvcmNlIG9uIDEgSmFudWFyeSAxOTk0LiANCjE5OTQ6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEV1cm9wZWFuIEVjb25vbWljIEFyZWEgKEVFQSkgd2FzIGVzdGFibGlzaGVkIG9uIDEgSmFudWFyeSAxOTk0LiBUaGUgYWdyZWVtZW50IGxpbmtzIHRoZSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aHJlZSBFRlRBIHN0YXRlc+KAlEljZWxhbmQsIExpZWNodGVuc3RlaW4sIGFuZCBOb3J3YXnigJRpbnRvIGEgc2luZ2xlIGludGVybmFsIG1hcmtldCwgYWxsb3dpbmcgZm9yIHRoZSBmcmVlIG1vdmVtZW50IG9mIGdvb2RzLCBwZXJzb25zLCBzZXJ2aWNlcywgYW5kIGNhcGl0YWwuIA0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBOQUZUQSwgdGhlIE5vcnRoIEFtZXJpY2FuIEZyZWUgVHJhZGUgQWdyZWVtZW50LCB3YXMgYSAxOTk0IGFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzLCBDYW5hZGEsIGFuZCBNZXhpY28gdG8gZWxpbWluYXRlIHRyYWRlIGJhcnJpZXJzIGFuZCBwcm9tb3RlIGZyZWUgdHJhZGUgaW4gTm9ydGggQW1lcmljYS4gSXQgZmFjaWxpdGF0ZWQgdGhlIG1vdmVtZW50IG9mIGdvb2RzIGFuZCBzZXJ2aWNlcyBhbmQgZXN0YWJsaXNoZWQgYSBsYXJnZSB0cmFkZSBibG9jLiBJbiBKdWx5IDIwMjAsIE5BRlRBIHdhcyByZXBsYWNlZCBieSB0aGUgVW5pdGVkIFN0YXRlcy1NZXhpY28tQ2FuYWRhIEFncmVlbWVudCAoVVNNQ0EpLCB3aGljaCBtb2Rlcm5pemVkIGFuZCBlbmhhbmNlZCB0aGUgdHJlYXR5IGZvciBhIGNvbnRlbXBvcmFyeSBlY29ub215Lg0KMTk5NDpbUy5BZnJpY2FdW1NvY2lhbGlzbV0gRmlyc3QgZnJlZSBlbGVjdGlvbnMgaW4gU291dGggQWZyaWNhOyBOZWxzb24gTWFuZGVsYQ0KMTk5NDpbUmVzZWFyY2hdW3NwYWNlXSBDYXJsIFNhZ2FuIGNvbmNlZGVkIHRoYXQgdGhpcyBhcHByb2FjaCB3b3VsZCBub3Qgd29yayBiZWNhdXNlIHRoZSBhdG1vc3BoZXJlIG9mIFZlbnVzIGlzIGZhciBkZW5zZXIgKDkwIGJhcnMpIHRoYW4gd2hhdCB3YXMgdW5kZXJzdG9vZCBpbiAxOTYxIChhIGZldyBiYXJzKSwgbWVhbmluZyB0aGUgY2FyYm9uIHdvdWxkIGp1c3QgYmUgb3hpZGl6ZWQgYmFjayBpbnRvIENPMi4NCjE5OTQ6W0NvbXB1dGluZ11bUXVhbnR1bV0gUGV0ZXIgU2hvciBkaXNjb3ZlcmVkIGFuIGFsZ29yaXRobSAoU2hvcidzIGFsZ29yaXRobSkgdGhhdCBjb3VsZCBmYWN0b3IgbGFyZ2UgbnVtYmVycyBpbiBwb2x5bm9taWFsIHRpbWUgb24gYSBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCB3b3VsZCBicmVhayB0aGUgc2VjdXJpdHkgb2YgbWFueSBjcnlwdG9ncmFwaGljIHNjaGVtZXMuIA0KMTk5NDpbQ29tcHV0aW5nXVtRdWFudHVtXSBQZXRlciBTaG9yIGFuZCBEb24gQ29wcGVyc21pdGggZmlndXJlZCBvdXQgaG93IHRvIHRha2UgYSBRdWFudHVtIEZvdXJpZXIgVHJhbnNmb3JtLg0KMTk5NDpUaGUgcHJvYmxlbSB3aXRoIHRoZSBwYXBlciBwdWJsaXNoZWQgZWFybGllciB0aGlzIG1vbnRoIHdhcyBpdHMgcmVsaWFuY2Ugb24gU2Nobm9ycidzIGFsZ29yaXRobSAobm90IHRvIGJlIGNvbmZ1c2VkIHdpdGggU2hvcuKAmXMgYWxnb3JpdGhtKSwgd2hpY2ggd2FzIGRldmVsb3BlZCBpbiAxOTk0LiBTY2hub3Jy4oCZcyBhbGdvcml0aG0gaXMgYSBjbGFzc2ljYWwgY29tcHV0YXRpb24gYmFzZWQgb24gbGF0dGljZXMsIHdoaWNoIGFyZSBtYXRoZW1hdGljYWwgc3RydWN0dXJlcyB0aGF0IGhhdmUgbWFueSBhcHBsaWNhdGlvbnMgaW4gY29uc3RydWN0aXZlIGNyeXB0b2dyYXBoeSBhbmQgY3J5cHRhbmFseXNpcy4gVGhlIGF1dGhvcnMgd2hvIGRldmlzZWQgU2Nobm9ycuKAmXMgYWxnb3JpdGhtIHNhaWQgaXQgY291bGQgZW5oYW5jZSB0aGUgdXNlIG9mIHRoZSBoZXVyaXN0aWMgcXVhbnR1bSBvcHRpbWl6YXRpb24gbWV0aG9kIGNhbGxlZCBRQU9BLg0KMTk5NCAoSmFuIDEpOiBbR2VvUG9saXRpY3NdIFRoZSBOb3J0aCBBbWVyaWNhbiBGcmVlIFRyYWRlIEFncmVlbWVudCAoTkFGVEEpIHdhcyBhbiBhZ3JlZW1lbnQgc2lnbmVkIGJ5IENhbmFkYSwgTWV4aWNvLCBhbmQgdGhlIFVuaXRlZCBTdGF0ZXMgdGhhdCBjcmVhdGVkIGEgdHJpbGF0ZXJhbCB0cmFkZSBibG9jIGluIE5vcnRoIEFtZXJpY2EuIFRoZSBhZ3JlZW1lbnQgY2FtZSBpbnRvIGZvcmNlIG9uIEphbnVhcnkgMSwgMTk5NCwgYW5kIHN1cGVyc2VkZWQgdGhlIDE5ODggQ2FuYWRh4oCTVW5pdGVkIFN0YXRlcyBGcmVlIFRyYWRlIEFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzIGFuZCBDYW5hZGEuIFRoZSBOQUZUQSB0cmFkZSBibG9jIGZvcm1lZCBvbmUgb2YgdGhlIGxhcmdlc3QgdHJhZGUgYmxvY3MgaW4gdGhlIHdvcmxkIGJ5IGdyb3NzIGRvbWVzdGljIHByb2R1Y3QuDQoxOTk0OltUZWNobm9sb2d5XVtCdXNpbmVzc11bVVNdW0NvbXB1dGluZ10gVGhlIERlbGwgTGF0aXR1ZGUgc2VyaWVzIGlzIGEgbGluZSBvZiBsYXB0b3AgY29tcHV0ZXJzIG1hbnVmYWN0dXJlZCBhbmQgc29sZCBieSBBbWVyaWNhbiBjb21wYW55IERlbGwuIEl0IGlzIGEgYnVzaW5lc3Mtb3JpZW50ZWQgbGluZSwgYWltZWQgYXQgY29ycG9yYXRlIGVudGVycHJpc2VzLCBoZWFsdGhjYXJlLCBnb3Zlcm5tZW50LCBhbmQgZWR1Y2F0aW9uIG1hcmtldHM7IHVubGlrZSB0aGUgSW5zcGlyb24gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBpbmRpdmlkdWFsIGN1c3RvbWVycywgYW5kIHRoZSBWb3N0cm8gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBzbWFsbGVyIGJ1c2luZXNzZXMuIFRoZSBMYXRpdHVkZSBkaXJlY3RseSBjb21wZXRlcyB3aXRoIHRoZSBMZW5vdm8gVGhpbmtQYWQgYW5kIHRoZSBFbGl0ZUJvb2sgc2VyaWVzIGJ5IEhQLiBBZGRpdGlvbmFsbHksIHRoZSAiUnVnZ2VkIChFeHRyZW1lKSIsICJYRlIiIGFuZCAiQVRHIiBtb2RlbHMgY29tcGV0ZSBwcmltYXJpbHkgd2l0aCBQYW5hc29uaWMncyBUb3VnaGJvb2sgbGluZSBvZiAicnVnZ2VkIiBsYXB0b3BzLg0KMTk5NDogU3VzaG1pdGEgU2VuIGJlY2FtZSBNaXNzIFVuaXZlcnNlLg0KMTk5NDogVGhlIEFubmFscyBvZiBJbXByb2JhYmxlIFJlc2VhcmNoIGlzIGEgYmktbW9udGhseSBtYWdhemluZSBkZXZvdGVkIHRvIHNjaWVudGlmaWMgaHVtb3IsIGluIHRoZSBmb3JtIG9mIGEgc2F0aXJpY2FsIHRha2Ugb24gdGhlIHN0YW5kYXJkIGFjYWRlbWljIGpvdXJuYWwuDQoxOTk0OiBMaW5kb24gTGVhZGVyIG9mIExhbmRvciBBc3NvY2lhdGVzLCBvZiBTYW4gRnJhbmNpc2NvIGRlc2lnbmVkIHdvcmRtYXJrcyBmb3IgRmVkRXgncyB2YXJpb3VzIE9wLXVuaXQuIEZlZEV44oCZcyBwdWJsaWMtcmVsYXRpb25zIGZpcm0gd2FudGVkIHRvIGhpZ2hsaWdodCB0aGUgYXJyb3cgc28gaXQgd291bGQgYmUgb2J2aW91cy4gQnV0IGhlIGZvdWdodCB0aGVtIG9uIHRoYXQg4oCUIGhlIHRob3VnaHQgaXQgd291bGQgYmUgb3ZlcmtpbGwuIFRoZXJl4oCZcyBzb21ldGhpbmcgYWJvdXQgbWFraW5nIHBlb3BsZSBkaXNjb3ZlciBzb21ldGhpbmcgb24gdGhlaXIgb3duIHRoYXTigJlzIGEgbG90IG1vcmUgcG93ZXJmdWwgdGhhbiBpdGFsaWNpemluZyBpdCB0byBtYWtlIHlvdXIgcG9pbnQuDQoxOTk0OiBTY2lsYWIgMS4xLCB0aGUgZmlyc3QgcmVsZWFzZWQgdmVyc2lvbiBvZiBTY2lsYWIsIHdhcyBwdXQgb24gYW5vbnltb3VzIGZ0cCBzaXRlLg0KMTk5NDogVGhlIGNvbmNlcHQgb2YgYSBjYWbDqSB3aXRoIGZ1bGwgSW50ZXJuZXQgYWNjZXNzIChhbmQgdGhlIG5hbWUgQ3liZXJjYWbDqSkgd2FzIGludmVudGVkIGluIGVhcmx5IGJ5ICBhIEJyaXRpc2ggdGVjaG5vbG9neSBhcnRpc3QsIEl2YW4gUG9wZS4NCjE5OTQ6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIGx1cmVkIG9uZSBvZiBEYXdvb2QncyBmYXZvcml0ZSAibmFyY28tdGVycm9yaXN0IiBQaGlsbHUgS2hhbiBhbGlhcyBCYWtodGl5YXIgQWhtZWQgS2hhbiB0byBhIGhvdGVsIHJvb20gaW4gQmFuZ2tvaywgd2hlcmUgaGUgd2FzIHRvcnR1cmVkIHRvIGRlYXRoLCBoYXZpbmcgYmVlbiBiZXRyYXllZCBieSBoaXMgY2xvc2VzdCBhaWRlIGFuZCBzaWRla2ljayBNYW5nZXNoICJNYW5neWEiIFBhd2FyLiBELUNvbXBhbnkncyBTaGFyYWQsIHVzZWQgaGlzIGxpbmtzIHdpdGggTXVtYmFpLWJhc2VkIGhvdGVsaWVyIFZpbm9kIGFuZCBBLiBNaXNocmEgdG8gdHJhY2sgZG93biBSYWphbiBpbiBCYW5na29rLiBSYWphbidzIGhpdG1hbiBSb2hpdCBWYXJtYSBhbmQgaGlzIHdpZmUgc2hvdCBieSBELUNvbXBhbnkuDQoxOTk0KEp1bCAxNik6W1NwYWNlXSBGcm9tIEp1bHkgMTYgdG8gMjIsIDE5OTQsIGVub3Jtb3VzIHBpZWNlcyBvZiB0aGUgY29tZXQgU2hvZW1ha2VyLUxldnkgOSAoU0w5KSwgZGlzY292ZXJlZCBqdXN0IGEgeWVhciBwcmlvciwgY3Jhc2hlZCBpbnRvIEp1cGl0ZXIgb3ZlciBzZXZlcmFsIGRheXMsIGNyZWF0aW5nIGh1Z2UsIGRhcmsgc2NhcnMgaW4gdGhlIHBsYW5ldCdzIGF0bW9zcGhlcmUgYW5kIGxvZnRpbmcgc3VwZXJoZWF0ZWQgcGx1bWVzIGludG8gaXRzIHN0cmF0b3NwaGVyZS4NCjE5OTQgKE9jdCk6IElUUE8gYW5kIEdvSSdzIE5JQyBqb2ludGx5IHNldC11cCB0aGUgTmF0aW9uYWwgQ2VudHJlIGZvciBUcmFkZSBJbmZvcm1hdGlvbiAoTkNUSSkgYXQgUHJhZ2F0aSBNYWlkYW4uDQoxOTk0IChOb3YgMSwgMTU6MDEgSVNUKTpbU3BhY2VdW1N1bl0gVGhlIEdsb2JhbCBHZW9zcGFjZSBTY2llbmNlICdXaW5kJyBzYXRlbGxpdGUgaXMgYSBOQVNBIHNjaWVuY2Ugc3BhY2VjcmFmdCBkZXNpZ25lZCB0byBzdHVkeSByYWRpbyB3YXZlcyBhbmQgcGxhc21hIHRoYXQgb2NjdXIgaW4gdGhlIHNvbGFyIHdpbmQgYW5kIGluIHRoZSBFYXJ0aCdzIG1hZ25ldG9zcGhlcmUuIA0KMTk5NCAoRGVjIDMpOiBTb255J3MgUGxheVN0YXRpb24gKGEgdmlkZW8gZ2FtZSBjb25zb2xlKSB3YXMgaW50cm9kdWNlZCB0byB0aGUgd29ybGQgZnJvbSBNaW5hdG8sIFRva3lvIChKYXBhbikuDQoxOTk0OiBXWFlDLSBmaXJzdCBpbnRlcm5ldCByYWRpbyBzdGF0aW9uIGJyb2FkY2FzdC4NCjE5OTQ6IE1lbW9yeSBjYXJkcyB3ZXJlIGludHJvZHVjZWQgaW4gdGhlIGNvbnN1bWVyIGVsZWN0cm9uaWNzIG1hcmtldC4NCjE5OTQgKEF1Zyk6IElUUE8ncyAxc3QgRGVsaGkgQm9vayBGYWlyIGF0ICBIYWxsIDggdG8gMTIgb2YgUHJhZ2F0aSBNYWlkYW4sIE5ldyBEZWxoaS4gVGhlIHRpbWluZ3Mgb2YgZmFpciBhcmUgZnJvbSAxMC4wMCBhbSB0byA4LjAwIHBtIChlbnRyeSB0byBmYWlyIHdpbGwgY2xvc2UgYXQgNy4zMCBwbSkuDQoxOTk0IChTZXApOiBUaGUgQ09OQ0VSVCBzb2Z0d2FyZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgaW1wbGVtZW50ZWQgYXQgYWxsIG9mIHRoZSBmaXZlIFBSUycgc2l0ZXMgU2VjdW5kZXJhYmFkIGluIFNlcHQuIDE5OTQsIE5ldyBEZWxoaSBvbiBTZXB0LiAxOTk2LCBDYWxjdXR0YSBvbiAxNHRoIEp1bmUgMTk5OCwgTXVtYmFpIG9uIDExdGggSmFuIDE5OTkgYW5kIENoZW5uYWkgb24gMTJ0aCBBcHJpbCAxOTk5Lg0KMTk5NDogdGhlIDI0dGggYW5kIHRoZSBsYXN0IEdQUyBzYXRlbGxpdGUgd2FzIGxhdW5jaGVkIGluIFVTLg0KMTk5NDogVGhlIHdvcmQgVGFsaWJhbiBpcyBQYXNodG8sINi32KfZhNio2KfZhiDhua3EgWxpYsSBbiwgbWVhbmluZyAic3R1ZGVudHMiLCB0aGUgcGx1cmFsIG9mIOG5rcSBbGliLiBBZnRlciB0aGUgU292aWV0IFVuaW9uIGludGVydmVuZWQgYW5kIG9jY3VwaWVkIEFmZ2hhbmlzdGFuIGluIDE5NzksIElzbGFtaWMgbXVqYWhpZGVlbiBmaWdodGVycyBlbmdhZ2VkIGluIHdhciB3aXRoIHRob3NlIFNvdmlldCBmb3JjZXMsIHdoaWNoIGxhaWQgdGhlIGZvdW5kYXRpb24gb2YgcG9saXRpY2FsIG1vdmVtZW50IGFuZCBtaWxpdGFyeSBvcmdhbml6YXRpb24gbmFtZWQgVGFsaWJhbi4NCjE5OTQ6IEFiZHVsIEthcmVlbSBUZWxnaSBhY3F1aXJlZCB0aGUgbGljZW5zZSBmb3Igc2VsbGluZyBzdGFtcCBwYXBlciBhbmQgb3BlbmVkIGFuIG9mZmljZSBpbiBNdW1iYWkuIEFmdGVyIHRoYXQsIGhlIHN0YXJ0ZWQgcHJpbnRpbmcgc3RhbXAgcGFwZXIgaW4gTmFzaGlrLiBXaXRoIHNvbWUgYWdlbnRz4oCZIGhlbHAsIGhlIHN0YXJ0cyBzZWxsaW5nIGZha2Ugc3RhbXAgcGFwZXIgaW4gYnVsayB0byBiYW5rcywgaW5zdXJhbmNlIGNvbXBhbmllcywgc3RvY2sgYnJva2VyYWdlIGZpcm1zLCBhbmQgY29ycG9yYXRlcy4gSW4gMjAwMyB0aGUgVGVsZ2kgc2NhbSB3YXMgdW5mb2xkZWQ7IHRoZSBmaWd1cmUgaW4gdGhlIG1pbmQgb2Ygc2VjdXJpdHkgYW5kIGludGVsbGlnZW5jZSBhZ2VuY2llcyB3YXMgdXAgdG8gUnMuMjBrIENyb3JlDQoxOTk0OiBbR2VvUG9saXRpY3NdIEludGVybmF0aW9uYWwgQXNzb2NpYXRpb24gb2YgR2VuZGFybWVyaWVzIGFuZCBQb2xpY2UgRm9yY2VzIHdpdGggTWlsaXRhcnkgU3RhdHVzIChjb21tb25seSBrbm93biBhcyBGSUVQIGZvciBGcmFuY2UtSXRhbGlhLUVzcGHDsWEtUG9ydHVnYWwsIHRoZSBmaXJzdCBmb3VyIG1lbWJlcnMpIGlzIGFuIGFzc29jaWF0aW9uIG9mIG5hdGlvbmFsIGdlbmRhcm1lcmllcyBvciBtaWxpdGFyeSBwb2xpY2UgZm9yY2VzLg0KMTk5NDpbQm9va10gUGFsZSBCbHVlIERvdDogQSBWaXNpb24gb2YgdGhlIEh1bWFuIEZ1dHVyZSBpbiBTcGFjZSBpcyBhIDE5OTQgYm9vayBieSB0aGUgYXN0cm9ub21lciBDYXJsIFNhZ2FuLiBJdCBpcyB0aGUgc2VxdWVsIHRvIFNhZ2FuJ3MgMTk4MCBib29rIENvc21vcyBhbmQgd2FzIGluc3BpcmVkIGJ5IHRoZSBmYW1vdXMgMTk5MCBQYWxlIEJsdWUgRG90IHBob3RvZ3JhcGgsIGZvciB3aGljaCBTYWdhbiBwcm92aWRlcyBhIHBvaWduYW50IGRlc2NyaXB0aW9uLiBJbiB0aGUgYm9vaywgU2FnYW4gbWl4ZXMgcGhpbG9zb3BoeSBhYm91dCB0aGUgaHVtYW4gcGxhY2UgaW4gdGhlIHVuaXZlcnNlIHdpdGggYSBkZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCBrbm93bGVkZ2UgYWJvdXQgdGhlIFNvbGFyIFN5c3RlbS4gSGUgYWxzbyBkZXRhaWxzIGEgaHVtYW4gdmlzaW9uIGZvciB0aGUgZnV0dXJlLg0KMTk5NDpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTWVjaGFnb2R6aWxsYSBJSSgxOTkzKQ0KMTk5NDpbQ2luZW1hXSBUaGUgQXBwbGUoMTk4MCkNCjE5OTQ6W0NpbmVtYV0gVGhlIEF0bGFudGlzIEludGVyY2VwdG9ycygxOTgzKQ0KMTk5NDpbTW50bmdnXSBJbiAxOTk0LCBNYXJrIFdoZXR1IHN1bW1pdHRlZCBNdCBFdmVyZXN0IHdpdGggTWlrZSBSZWluYmVyZ2VyLiBCdXQgYWZ0ZXIgYSBmcmVlemluZyBuaWdodCwgV2hldHUgZmFjZWQgYSBoYXJyb3dpbmcgY2hvaWNlOiBsZWF2ZSBoaXMgZnJpZW5kIG9yIHJlbWFpbiBmb3JldmVyLiBUaGUgRmF0YWwgR2FtZSAoMTk5NykNCjE5OTQ6W1RvdXJpc21dIFRoZSBBZHZlbnR1cmUgVG91ciBPcGVyYXRvcnMgQXNzb2NpYXRpb24gb2YgSW5kaWEgKEFUT0FJKSB3YXMgZm91bmRlZCBpbiAxOTk0LiBJdCB3YXMgZXN0YWJsaXNoZWQgYnkgYSBncm91cCBvZiB0cmF2ZWwgdHJhZGUgYWR2ZW50dXJlcnMgd2hvIGFpbWVkIHRvIGNyZWF0ZSBhIHN0cm9uZyBzdXBwb3J0IG5ldHdvcmsgZm9yIEluZGlhbiBhZHZlbnR1cmUgdG91ciBvcGVyYXRvcnMuIA0KDQoxOTk1IChNYXkgMTkpOiBbUmVzZWFyY2hdW1NwYWNlXSB0d28gc2NpZW50aXN0cyBhdCBDYWwgUG9seSBzaG93ZWQgdGhhdCBiYWN0ZXJpYSBjYW4gc3Vydml2ZSB3aXRob3V0IGFueSBtZXRhYm9saXNtIGZvciBhdCBsZWFzdCAyNSBtaWxsaW9uIHllYXJzOyBwcm9iYWJseSB0aGV5IGFyZSBpbW1vcnRhbC4NCjI0IE5vdmVtYmVyIDE5OTU6IFRoZSBOZXcgWW9yayBUaW1lcyBkZXNjcmliZWQgYmFjdGVyaWEgdGhhdCBjYW4gc3Vydml2ZSByYWRpYXRpb24gbXVjaCBzdHJvbmdlciB0aGFuIGFueSB0aGF0IEVhcnRoIGhhcyBldmVyIGV4cGVyaWVuY2VkLg0KV2UgYXJlIGNhbGxpbmcgdGhlIHVuaW9uIG9mIExvdmVsb2NrJ3MgR2FpYSB3aXRoIEhveWxlIGFuZCBXaWNrcmFtYXNpbmdoZSdzIGV4cGFuZGVkIHRoZW9yeSBvZiBwYW5zcGVybWlhIENvc21pYyBBbmNlc3RyeS4gVGhpcyBhY2NvdW50IG9mIGV2b2x1dGlvbiBhbmQgdGhlIG9yaWdpbiBvZiBsaWZlIG9uIEVhcnRoIGlzIHByb2ZvdW5kbHkgZGlmZmVyZW50IGZyb20gdGhlIHByZXZhaWxpbmcgc2NpZW50aWZpYyBwYXJhZGlnbS4gSXQgY2hhbGxlbmdlcyBub3QgbWVyZWx5IHRoZSBhbnN3ZXJzIGJ1dCB0aGUgcXVlc3Rpb25zIHRoYXQgYXJlIHBvcHVsYXIgdG9kYXkuIENvc21pYyBBbmNlc3RyeSByZXF1aXJlcyB0aGF0IGxpZmUgY2FuIG9ubHkgZGVzY2VuZCBmcm9tIGFuY2VzdG9ycyBhdCBsZWFzdCBhcyBoaWdobHkgZXZvbHZlZCBhcyBpdHNlbGYsIGFuZCB0aGF0IHRoZXJlIGNhbiBiZSBubyBvcmlnaW4gb2YgbGlmZSBmcm9tIG5vbmJpb2xvZ2ljYWwgbWF0dGVyLiBXaXRob3V0IHN1cGVybmF0dXJhbCBpbnRlcnZlbnRpb24sIHRoZXJlZm9yZSwgd2UgY29uY2x1ZGUgdGhhdCBsaWZlIG11c3QgaGF2ZSBhbHdheXMgZXhpc3RlZC4gQWx0aG91Z2ggdGhlc2UgY29uY2x1c2lvbnMgY3V0IGFjcm9zcyB0aGUgYm91bmRhcmllcyBiZXR3ZWVuIHNjaWVuY2UsIHBoaWxvc29waHksIGFuZCByZWxpZ2lvbiwgd2UgYmVsaWV2ZSB0aGV5IGFyZSBncm91bmRlZCBpbiBnb29kIGV2aWRlbmNlLiBBbmQgbmV3IGRhdGEgdGhhdCBzdXBwb3J0IG1hbnkgYXNwZWN0cyBvZiBDb3NtaWMgQW5jZXN0cnkgYXJlIGNvbWluZyBpbiByYXBpZGx5LiBJbiB0aGUgZm9sbG93aW5nIHBhZ2VzIHdlIHdpbGwgZXhwbGFpbiBob3cgdGhlc2UgYW5kIG90aGVyIHJlY2VudCBkZXZlbG9wbWVudHMgc3VwcG9ydCBDb3NtaWMgQW5jZXN0cnk6DQoNCjE5OTU6IEFOU0VUIHNvbGQgdG8gQU9MLCB3aG8gIG5vdyBydW5zIGl0Lg0KMTk5NSAoTWFyKTogRGVwdC4gb2YgSW5kaWFuIE1lZGljaW5lIGFuZCBIb21lb3BhdGh5IGZvdW5kZWQuDQoxOTk1IChNYXIgMjQpOltSZXNlYXJjaF0gUmVtb3RlbHkgT3BlcmF0ZWQgVmVoaWNsZSBLQUlLTyByZWFjaGVkIHRoZSBkZWVwZXN0IGFyZWEgb2YgdGhlIE1hcmlhbmEgVHJlbmNoIGFuZCBtYWRlIHRoZSBkZWVwZXN0IGRpdmluZyByZWNvcmQgb2YgMTAsOTExIG0gKDM1LDc5NyBmdDsgNSw5NjYgZmF0aG9tcykgDQoxOTk1OiBwaG9uZSBjYWxsIGNvc3RpbmcgUnMuIDE2IHBlciBtaW4uDQoxOTk1OltHYW1pbmddIFZpcnR1YSBDb3AgMiBpcyBhIGxpZ2h0IGd1biBzaG9vdGVyIGFyY2FkZSBnYW1lLCByZWxlYXNlZCBpbiAxOTk1IGFuZCBkZXZlbG9wZWQgaW50ZXJuYWxseSBhdCBTZWdhIGJ5IHRoZWlyIEFNMiBzdHVkaW8gKFl1IFN1enVraSkuIEl0IHdhcyBwb3J0ZWQgdG8gdGhlIFNlZ2EgU2F0dXJuIGluIDE5OTYuIEl0IHdhcyByZWxlYXNlZCBvbiBQQyBpbiAxOTk3IGFuZCBTZWdhIERyZWFtY2FzdCBpbiAyMDAwLiBJdCB3YXMgbGF0ZXIgYnVuZGxlZCB3aXRoIFZpcnR1YSBDb3AgaW4gVmlydHVhIENvcDogRWxpdGUgRWRpdGlvbiBmb3IgUGxheVN0YXRpb24gMiBpbiAyMDAyLg0KMTk5NSAoQXByIDEpOltSZXNlYXJjaF0gUGlsbGFycyBvZiBDcmVhdGlvbiBpcyBhIHBob3RvZ3JhcGggdGFrZW4gYnkgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgb2YgZWxlcGhhbnQgdHJ1bmtzIG9mIGludGVyc3RlbGxhciBnYXMgYW5kIGR1c3QgaW4gdGhlIEVhZ2xlIE5lYnVsYSwgaW4gdGhlIFNlcnBlbnMgY29uc3RlbGxhdGlvbiwgc29tZSA2LDUwMOKAkzcsMDAwIGxpZ2h0LXllYXJzICgyLDAwMOKAkzIsMTAwIHBjOyA2MeKAkzY2IEVtKSBmcm9tIEVhcnRoLg0KMTk5NSAoQXByIDEpOiBJQUFJIGFuZCBOQUEgd2VyZSBtZXJnZWQgYnkgYW4gQWN0IG9mIFBhcmxpYW1lbnQgYW5kIHdhcyBuYW1lZCBhcyBBaXJwb3J0cyBBdXRob3JpdHkgb2YgSW5kaWEgKEFBSSkuIFRoaXMgbmV3IG9yZ2FuaXNhdGlvbiB3YXMgdG8gYmUgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nLCB1cGdyYWRpbmcsIG1haW50YWluaW5nIGFuZCBtYW5hZ2luZyBjaXZpbCBhdmlhdGlvbiBpbmZyYXN0cnVjdHVyZSBib3RoIG9uIHRoZSBncm91bmQgYW5kIGFpciBzcGFjZSBpbiB0aGUgY291bnRyeS4NCjE5OTUgKEFwciAyMSk6W0NyaW1lXVtJbmRpYV0gQmFibG9vIHBpY2tlZCB1cCBieSB0aGUgU2luZ2Fwb3JlIGFpcnBvcnQgcG9saWNlIGZvciB0cmF2ZWxsaW5nIG9uIGZha2UgcGFzc3BvcnQuIEhlIHdhcyBzdGF5aW5nIGluIER1YmFpLg0KMTk5NSAoU2VwIDMwKTpbQ3JpbWVdW0luZGlhXSBTaW5nYXBvcmUgZXh0cmFkaXRlcyBJbmRpYSdzICdtb3N0LXdhbnRlZCBpbnRlci1zdGF0ZSBjcmltaW5hbCcgQmFibG9vIFNyaXZhc3RhdmEgKDMzWU8pDQoxOTk1IChOb3YgMzApOiBPcGVyYXRpb24gRGVzZXJ0IFN0b3JtIChGaXJzdCBJcmFxIFdhcilvZmZpY2lhbGx5IGVuZGVkLg0KMTk5NSAoTWF5IDMxKTpbQm9va11bTWlsaXRhcnldIEFkbWlyYWwgV2lsbGlhbSBILiBNY1JhdmVuJ3MgU3BlYyBPcHM6IENhc2UgU3R1ZGllcyBpbiBTcGVjaWFsIE9wZXJhdGlvbnMgV2FyZmFyZTogVGhlb3J5IGFuZCBQcmFjdGljZTsgU2VhIFN0b3JpZXM6IE15IExpZmUgaW4gU3BlY2lhbCBPcGVyYXRpb25zICgyMDE5LCBNYXkgMSk7IFRoZSBIZXJvIENvZGU6IExlc3NvbnMgTGVhcm5lZCBmcm9tIExpdmVzIFdlbGwgTGl2ZWQgKDIwMjEsIEFwciAxMykNCjE5OTU6IERyLiBIYW5kZSBhZnRlciBncmFkdWF0aW5nIGZyb20gSUlUIEtoYXJhZ3B1ciBjb25jZXB0dWFsaXplZCBTRUxDTyBJbmRpYSBkdXJpbmcgaGlzIFBoRCBvbiBzdXN0YWluYWJsZSBlbmVyZ3kgYXQgdGhlIFVuaXZlcnNpdHkgb2YgTWFzc2FjaHVzZXR0cy4gRHVyaW5nIGEgZmllbGQgdmlzaXQgdG8gdGhlIERvbWluaWNhbiBSZXB1YmxpYywgaGUgd2FzIHN1cnByaXNlZCB0byBzZWUgdGhlIHBvb3IgdXNpbmcgc29sYXIgbGlnaHRzLg0KMTk5NTogVGhlIEdvdmVybm1lbnQgb2YgSW5kaWEgYW5kIHRoZSBHb3Zlcm5tZW50IG9mIERlbGhpIGpvaW50bHkgc2V0IHVwIGEgY29tcGFueSBjYWxsZWQgdGhlIERlbGhpIE1ldHJvIFJhaWwgQ29ycG9yYXRpb24gKERNUkMpIG9uIDMgTWF5IDE5OTUsIHdpdGggRHIuIEUuIFNyZWVkaGFyYW4gYXMgdGhlIG1hbmFnaW5nIGRpcmVjdG9yLg0KMTk5NTogSW50J2wgR2FuZGhpIFBlYWNlIFByaXplIGxhdW5jaGVkLg0KMTk5NTogU2FjaGluIFIuIFRlbmR1a2FyIGFuZCBBbmphbGkgVGVuZHVsa2FyIHdlZGRlZCB0b2dldGhlci4NCjE5OTU6IC5tcDMgaW52ZW50ZWQuDQoxOTk1OltHYW1pbmddIFdoaWxlIEZJRkEgOTUgZGlkIG5vdCBhZGQgbXVjaCBvdGhlciB0aGFuIHRoZSBhYmlsaXR5IHRvIHBsYXkgd2l0aCBjbHViIHRlYW1zLCBGSUZBIDk2IHB1c2hlZCB0aGUgYm91bmRhcmllcy4gRm9yIHRoZSBmaXJzdCB0aW1lIHdpdGggcmVhbCBwbGF5ZXIgbmFtZXMgYnkgb2J0YWluaW5nIHRoZSBGSUZQcm8gbGljZW5zZSwgdGhlIFBsYXlTdGF0aW9uLCBQQywgMzJYIGFuZCBTZWdhIFNhdHVybiB2ZXJzaW9ucyB1c2VkIEVBJ3MgIlZpcnR1YWwgU3RhZGl1bSIgZW5naW5lLCB3aXRoIDJEIHNwcml0ZSBwbGF5ZXJzIG1vdmluZyBhcm91bmQgYSByZWFsLXRpbWUgM0Qgc3RhZGl1bS4NCjE5OTUgKEp1bCAxOCk6W0Jvb2tdIEJhcmFjayBPYmFtYSdzIERyZWFtcyBmcm9tIE15IEZhdGhlcjogQSBTdG9yeSBvZiBSYWNlIGFuZCBJbmhlcml0YW5jZTsgRHJlYW1zIGZyb20gTXkgRmF0aGVyOiBBIFN0b3J5IG9mIFJhY2UgYW5kIEluaGVyaXRhbmNlICgyMDA2LCBPY3QgMTcpOyBPZiBUaGVlIEkgU2luZzogQSBMZXR0ZXIgdG8gTXkgRGF1Z2h0ZXJzICgyMDEwLCBOb3YgMTYpOyBBIFByb21pc2VkIExhbmQgKDIwMjAsIE5vdiAxNykNCjE5OTUoSmFuIDEpOltFbnZdIFRoZSBBZ3JlZW1lbnQgb24gQWdyaWN1bHR1cmUgKEFvQSkgaXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgb2YgdGhlIFdvcmxkIFRyYWRlIE9yZ2FuaXphdGlvbi4gSXQgd2FzIG5lZ290aWF0ZWQgZHVyaW5nIHRoZSBVcnVndWF5IFJvdW5kIG9mIHRoZSBHZW5lcmFsIEFncmVlbWVudCBvbiBUYXJpZmZzIGFuZCBUcmFkZSwgYW5kIGVudGVyZWQgaW50byBmb3JjZSB3aXRoIHRoZSBlc3RhYmxpc2htZW50IG9mIHRoZSBXVE8gb24gSmFudWFyeSAxLCAxOTk1LiBCbHVlLCBSZWQsIEFtYmVyIGFuZCBHcmVlbiBCb3ggb2Ygc3Vic2lkaWVzLg0KMTk5NTpbQ2luZW1hXSBOZWxzb24gTWFuZGVsYSwgaW4gaGlzIGZpcnN0IHRlcm0gYXMgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYSwgaW5pdGlhdGVzIGEgdW5pcXVlIHZlbnR1cmUgdG8gdW5pdGUgdGhlIEFwYXJ0aGVpZC10b3JuIGxhbmQ6IGVubGlzdCB0aGUgbmF0aW9uYWwgcnVnYnkgdGVhbSBvbiBhIG1pc3Npb24gdG8gd2luIHRoZSAxOTk1IFJ1Z2J5IFdvcmxkIEN1cC4gLSAgSW52aWN0dXMgKDIwMDkpDQoxOTk1OltDaW5lbWFdIEEgQ2xvY2t3b3JrIE9yYW5nZSgxOTcxKQ0KMTk5NTpbQ2luZW1hXSBEZWFkIEVuZCBEcml2ZS1JbigxOTg2KQ0KMTk5NTpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gU3BhY2Vnb2R6aWxsYSgxOTk0KQ0KMTk5NTpbQ2luZW1hXSBIZWFydGJlZXBzKDE5ODEpDQoxOTk1OltDaW5lbWFdIFRoZSBNdW1teSdzIEN1cnNlKDE5NDQpDQoxOTk1IChEZWMpOltTcGFjZV0gU29sYXIgYW5kIEhlbGlvc3BoZXJpYyBPYnNlcnZhdG9yeSAoU29ITykgd2FzIGxhdW5jaGVkIGluIERlY2VtYmVyIDE5OTUgYXMgYSBqb2ludCBtaXNzaW9uIGJldHdlZW4gdGhlIEV1cm9wZWFuIFNwYWNlIEFnZW5jeSAoRVNBKSBhbmQgTkFTQSwgU29ITyB3YXMgZGVzaWduZWQgdG8gb3JiaXQgdGhlIFN1biB0byBsZWFybiBhYm91dCB0aGUgc3RydWN0dXJlIG9mIHRoZSBzdGFy4oCZcyBpbnRlcmlvciBhbmQgaXRzIG91dGVyIGF0bW9zcGhlcmUsIGFzIHdlbGwgYXMgdG8gaW52ZXN0aWdhdGUgdGhlIGJlaGF2aW9yIG9mIHNvbGFyIHdpbmRzLiBJdCB3YXMgZXhwZWN0ZWQgdG8gY29tcGxldGUgaXRzIG1pc3Npb24gaW4gMTk5OC4gSW5zdGVhZCwgaXQgaXMgc3RpbGwgYWN0aXZlIHRvZGF5LCBhbmQgaXMgbm93IGxpa2VseSB0byBrZWVwIHdvcmtpbmcgdW50aWwgMjAyNSwgd2hlbiBpdCB3aWxsIGhhdmUgYmVlbiBpbiBzcGFjZSBmb3IgMzAgeWVhcnMuDQoxOTk1OltQaHlzaWNzXVtTcGFjZV1bUmVzZWFyY2hdIFByaW9yIHRvIDE5OTUsIHRoZW9yaXN0cyBiZWxpZXZlZCB0aGF0IHRoZXJlIHdlcmUgZml2ZSBjb25zaXN0ZW50IHZlcnNpb25zIG9mIHN1cGVyc3RyaW5nIHRoZW9yeSAodHlwZSBJLCB0eXBlIElJQSwgdHlwZSBJSUIsIGFuZCB0d28gdmVyc2lvbnMgb2YgaGV0ZXJvdGljIHN0cmluZyB0aGVvcnkpLiBUaGlzIHVuZGVyc3RhbmRpbmcgY2hhbmdlZCBpbiAxOTk1IHdoZW4gRWR3YXJkIFdpdHRlbiBzdWdnZXN0ZWQgdGhhdCB0aGUgZml2ZSB0aGVvcmllcyB3ZXJlIGp1c3Qgc3BlY2lhbCBsaW1pdGluZyBjYXNlcyBvZiBhbiBlbGV2ZW4tZGltZW5zaW9uYWwgdGhlb3J5IGNhbGxlZCBNLXRoZW9yeS4gV2l0dGVuJ3MgY29uamVjdHVyZSB3YXMgYmFzZWQgb24gdGhlIHdvcmsgb2YgYSBudW1iZXIgb2Ygb3RoZXIgcGh5c2ljaXN0cywgaW5jbHVkaW5nIEFzaG9rZSBTZW4sIENocmlzIEh1bGwsIFBhdWwgVG93bnNlbmQsIGFuZCBNaWNoYWVsIER1ZmYuIEhpcyBhbm5vdW5jZW1lbnQgbGVkIHRvIGEgZmx1cnJ5IG9mIHJlc2VhcmNoIGFjdGl2aXR5IG5vdyBrbm93biBhcyB0aGUgc2Vjb25kIHN1cGVyc3RyaW5nIHJldm9sdXRpb24uDQoxOTk1OltDcmltZV1bSW5kaWFdIE11cmRlciBvZiBNdW1iYWktYmFzZWQgYnVpbGRlciBQcmFkZWVwIEphaW4gYnkgQWJ1IFNhbGVtDQoxOTk1OiBGb3J0dW5lIEhvdGVscyBpbiBJbmRpYSBpcyBvd25lZCBieSBpdHMgcGFyZW50IGNvbXBhbnksIElUQyBMdGQuLCB3aGljaCBlc3RhYmxpc2hlZCBGb3J0dW5lIEhvdGVscyBpbiAxOTk1IGFzIGEgc3Vic2lkaWFyeSB0byBwcm92aWRlIG1pZC1tYXJrZXQgdG8gdXBzY2FsZSBob3NwaXRhbGl0eSBzZXJ2aWNlcy4gSG93ZXZlciwgYSBzZXBhcmF0ZSBncm91cCwgRm9ydHVuZSBHcm91cCBvZiBIb3RlbHMsIGJhc2VkIGluIHRoZSBVbml0ZWQgQXJhYiBFbWlyYXRlcyAoVUFFKSBhbmQgZm91bmRlZCBieSBQcmF2ZWVuIFNoZXR0eSwgYWxzbyBvcGVyYXRlcyBhIGRpZmZlcmVudCBzZXQgb2YgaG90ZWxzIGluIHRoYXQgcmVnaW9uLg0KMTk5NTpbVUtdIENhbWlsbGEgaXMgUXVlZW4gb2YgdGhlIFVuaXRlZCBLaW5nZG9tIGFuZCAxNCBvdGhlciBDb21tb253ZWFsdGggcmVhbG1zIGFzIHRoZSB3aWZlIG9mIEtpbmcgQ2hhcmxlcyBJSUkuIENhbWlsbGEgd2FzIHJhaXNlZCBpbiBFYXN0IFN1c3NleCBhbmQgU291dGggS2Vuc2luZ3RvbiBpbiBFbmdsYW5kIGFuZCBlZHVjYXRlZCBpbiBFbmdsYW5kLCBTd2l0emVybGFuZCBhbmQgRnJhbmNlLiBJbiAxOTczLCBzaGUgbWFycmllZCBCcml0aXNoIEFybXkgb2ZmaWNlciBBbmRyZXcgUGFya2VyIEJvd2xlczsgdGhleSBkaXZvcmNlZCBpbiAxOTk1Lg0KDQoxOTk2OltHZW9Qb2xpdGljc11bQnVzaW5lc3NdIE1vbmdvbGlhIHdhcyBncmFudGVkIG9ic2VydmVyIHN0YXR1cyB0byBUUkFDRUNBLg0KMTk5NiAoNyBBdWd1c3QpOltSZXNlYXJjaF1bU3BhY2VdIE5BU0EgYW5ub3VuY2VkIGZvc3NpbGl6ZWQgZXZpZGVuY2Ugb2YgYW5jaWVudCBsaWZlIGluIG1ldGVvcml0ZSBBTEggODQwMDEgZnJvbSBNYXJzLg0KMTk5NiAoT2N0IDI3KTpbUmVzZWFyY2hdW1NwYWNlXSBnZW5ldGljaXN0cyBzaG93ZWQgZXZpZGVuY2UgdGhhdCBtYW55IGdlbmVzIGFyZSBtdWNoIG9sZGVyIHRoYW4gdGhlIGZvc3NpbCByZWNvcmQgd291bGQgaW5kaWNhdGUuIFN1YnNlcXVlbnQgc3R1ZGllcyBoYXZlIHN0cmVuZ3RoZW5lZCB0aGlzIGZpbmRpbmcuDQoxOTk2OltCdXNpbmVzc11bR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2hlbiB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4gc2lnbmVkIHRoZSBUcmVhdHkgb24gRGVlcGVuaW5nIE1pbGl0YXJ5IFRydXN0IGluIEJvcmRlciBSZWdpb25zIGluIFNoYW5naGFpLiBPbiAyNCBBcHJpbCAxOTk3IHRoZSBzYW1lIGNvdW50cmllcyBzaWduZWQgdGhlIFRyZWF0eSBvbiBSZWR1Y3Rpb24gb2YgTWlsaXRhcnkgRm9yY2VzIGluIEJvcmRlciBSZWdpb25zIGluIGEgbWVldGluZyBpbiBNb3Njb3csIFJ1c3NpYS4gT24gMjAgTWF5IDE5OTcgUnVzc2lhbiBQcmVzaWRlbnQgQm9yaXMgWWVsdHNpbiBhbmQgQ2hpbmVzZSBQcmVzaWRlbnQgSmlhbmcgWmVtaW4gc2lnbmVkIGEgZGVjbGFyYXRpb24gb24gYSAibXVsdGlwb2xhciB3b3JsZCIuDQoxOTk2OiAxOTk2IE1vdW50IEV2ZXJlc3QgRGlzYXN0ZXIsIGluIHdoaWNoIGVpZ2h0IHBlb3BsZSBkaWVkIHdoaWxlIG9uIGFuIGV4cGVkaXRpb24gdG8gc2NhbGUgdGhlIGluZmFtb3VzIHN1bW1pdC4gT25lIG9mIHRoZSBjbGltYmVycyB3aG8gbG9zdCBoaXMgbGlmZSB3YXMgQW5keSBIYXJyaXMsIHBsYXllZCBpbiBFdmVyZXN0IGJ5IE1hcnRpbiBIZW5kZXJzb24uIEhhcnJpcyB3YXMgb25lIG9mIHRoZSBndWlkZXMgZm9yIHRoZSBBZHZlbnR1cmUgQ29uc3VsdGFudHMsIGFsb25nIHdpdGggUm9iIEhhbGwgYW5kIE1pa2UgR3Jvb20uIEluIHRoZSBmaWxtLCBoZSBhcHBlYXJzIHRvIGRpZSB3aGlsZSB3aXRoIEhhbGwsIGZhbGxpbmcgb2ZmIGEgY2xpZmYgYWZ0ZXIgYSBoYWxsdWNpbmF0aW9uLiBCdXQgUm9iIEhhbGwgbmV2ZXIgcmVwb3J0ZWQgdGhpcywgYW5kIHNpbmNlIGhlIGRpZWQgc2hvcnRseSB0aGVyZWFmdGVyLCB0aGVyZSBpcyBubyB3YXkgdG8gY29uZmlybSB0aGUgY2lyY3Vtc3RhbmNlcyBzdXJyb3VuZGluZyBIYXJyaXMnIGRlYXRoLg0KMTk5NjpbQ29tcHV0aW5nXVtRdWFudHVtXSAgTG92IEdyb3ZlciBkZXZpc2VkIGFuIGFsZ29yaXRobSAoR3JvdmVyJ3MgYWxnb3JpdGhtKSB0aGF0IGNvdWxkIHNlYXJjaCBhbiB1bnNvcnRlZCBkYXRhYmFzZSBpbiBzcXVhcmUgcm9vdCB0aW1lIG9uIGEgcXVhbnR1bSBjb21wdXRlciwgd2hpY2ggd291bGQgb3V0cGVyZm9ybSBhbnkgY2xhc3NpY2FsIGFsZ29yaXRobS4NCjE5OTY6W1VTXSBCYXJhY2sgT2JhbWEgd2FzIGVsZWN0ZWQgdG8gdGhlIElsbGlub2lzIFNlbmF0ZSwgc3VjY2VlZGluZyBEZW1vY3JhdGljIFN0YXRlIFNlbmF0b3IgQWxpY2UgUGFsbWVyIGZyb20gSWxsaW5vaXMncyAxM3RoIERpc3RyaWN0LCB3aGljaCwgYXQgdGhhdCB0aW1lLCBzcGFubmVkIENoaWNhZ28gU291dGggU2lkZSBuZWlnaGJvcmhvb2RzIGZyb20gSHlkZSBQYXJr4oCTS2Vud29vZCBzb3V0aCB0byBTb3V0aCBTaG9yZSBhbmQgd2VzdCB0byBDaGljYWdvIExhd24uDQoxOTk2OltVS10gQ2hhcmxlcyBJSUkgYW5kIERpYW5hIGdldHMgZGl2b3JjZWQuDQoxOTk2IChKYW4gMjUpOltCb29rXSBQZXRlciBMeW5jaCAmIEpvaG4gUm90aGNoaWxkJ3MgTGVhcm4gdG8gRWFybjogQSBCZWdpbm5lcidzIEd1aWRlIHRvIHRoZSBCYXNpY3Mgb2YgSW52ZXN0aW5nIGFuZCBCdXNpbmVzcy4NCjE5OTYgKEphbik6W0NyaW1lXVtJbmRpYV0gQW5lZXMgSWJyYWhpbSBhcnJlc3RlZCBpbiBCYWhyYWluLCBzaGlmdGVkIHRvIER1YmFpIGFsbGVnZWRseSBvbiB0aGUgaW50ZXJ2ZW50aW9uIG9mIHNvbWUgb2YgRHViYWkncyBydWxpbmcgbm90YWJsZXMsIGFuZCB3YXMgdGhlbiBhbGxvd2VkIHRvIHNsaXAgYXdheSB0byBLYXJhY2hpLCBQYWtpc3Rhbi4NCjE5OTY6IE5hdGlvbmFsIEFlcm9zcGFjZSBMYWJvcmF0b3JpZXMsIEluZGlhIGluZGlnZW5vdXNseSBidWlsdCBGTE9TT0xWRVIsIEluZGlhJ3MgZmlyc3Qgc3VwZXJjb21wdXRlci4gSXQgd2FzIHJlcGxpY2F0ZWQgYW5kIGluc3RhbGxlZCBhdCBJQ0FEIE1vc2NvdyBpbiAxOTkxIHVuZGVyIFJ1c3NpYW4gY29sbGFib3JhdGlvbi4NCjE5OTY6IEluZGlhL1Bha2lzdGFuL1NyaSBMYW5rYSAxOTk2Lg0KMTk5NjpbQ29tcHV0aW5nXVt3d3ddIE1hcmlvIDY0IGdhbWUgcmFuIDEwMCBtaWxsaW9uIGNhbGN1bGF0aW9ucyBwZXIgc2Vjb25kLCA1NDAgbWlsbGlvbiAoSGFsZi1MaWZlKSBpbiAxOTk4LCBNaW5lY3JhZnQgKDIwMTEpIHJ1bm5pbmcgMTAwIGJpbGxpb24gY2FsY3VsYXRpb25zLCBDeWJlcnB1bmsgMjA3NyAobW9zdCByZWFsaXN0aWMgdmlkZW8gZ2FtZSAyMDI0KSwgeW91IG5lZWQgYSBncmFwaGljcyBjYXJkIHRoYXQgY2FuIHBlcmZvcm0gYXJvdW5kIDM2IHRyaWxsaW9uIGNhbGMgcGVyIHNlY29uZC4NCjE5OTY6IFByb2YgTWFsY29sbSBIZWF0aC4gUHJvZmVzc29yIG9mIEdyZWVrIExhbmd1YWdlIGFuZCBMaXRlcmF0dXJlIEBsZWVkcy5hYy51aywgdHJhbnNsYXRlZCBBcmlzdG90bGUncyBQb2V0aWNzLg0KMTk5NjogVGhlIDU2SyBtb2RlbSB3YXMgaW52ZW50ZWQgYnkgRHIuIEJyZW50IFRvd25zaGVuZA0KMTk5NiAoRmViIDEzKTogTmVwYWxlc2UgQ2l2aWwgV2FyIHN0YXJ0ZWQuIFRoZSBNYW9pc3QgUmViZWxsaW9uIChsYWJlbGxlZCB0aGUgUGVvcGxlJ3MgV2FyIGJ5IHRoZW4gQ1BOKE1hb2lzdCkpIHdhcyBhbiBhcm1lZCBjb25mbGljdCBhZ2FpbnN0IEdvdmVybm1lbnQgb2YgTmVwYWwgKHRoZW4gSE1HIG9mIE5lcGFsKSBmb3VnaHQgZnJvbSAxOTk2IHRvIDIwMDYuIFRoZSByZWJlbGxpb24gd2FzIGxhdW5jaGVkIGJ5IHRoZSBDb21tdW5pc3QgUGFydHkgb2YgTmVwYWwgKE1hb2lzdCkgb24gMTMgRmVicnVhcnkgMTk5NiB3aXRoIHRoZSBtYWluIGFpbSBvZiBvdmVydGhyb3dpbmcgdGhlIE5lcGFsZXNlIG1vbmFyY2h5IGFuZCBlc3RhYmxpc2hpbmcgYSAnUGVvcGxlJ3MgUmVwdWJsaWMnLiBJdCBlbmRlZCB3aXRoIHRoZSBDb21wcmVoZW5zaXZlIFBlYWNlIEFjY29yZCBzaWduZWQgb24gMjEgTm92ZW1iZXIgMjAwNi4NCjE5OTYgKE1hciAxKTogW0dlb1BvbGl0aWNzXSBUaGUgQXNpYeKAk0V1cm9wZSBNZWV0aW5nIChBU0VNKSBpcyBhbiBBc2lhbuKAk0V1cm9wZWFuIHBvbGl0aWNhbCBkaWFsb2d1ZSBmb3J1bSB0byBlbmhhbmNlIHJlbGF0aW9ucyBhbmQgdmFyaW91cyBmb3JtcyBvZiBjb29wZXJhdGlvbiBiZXR3ZWVuIGl0cyBwYXJ0bmVycy4gSXQgd2FzIG9mZmljaWFsbHkgZXN0YWJsaXNoZWQgYXQgdGhlIDFzdCBBU0VNIFN1bW1pdCAoQVNFTTEpIGluIEJhbmdrb2ssIFRoYWlsYW5kLCBieSB0aGUgdGhlbiAxNSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aGUgRXVyb3BlYW4gQ29tbWlzc2lvbiwgdGhlIHRoZW4gNyBNZW1iZXIgU3RhdGVzIG9mIHRoZSBBc3NvY2lhdGlvbiBvZiBTb3V0aGVhc3QgQXNpYW4gTmF0aW9ucyAoQVNFQU4pLCBhbmQgdGhlIGluZGl2aWR1YWwgY291bnRyaWVzIG9mIENoaW5hLCBKYXBhbiwgYW5kIFNvdXRoIEtvcmVhLiBBIHNlcmllcyBvZiBlbmxhcmdlbWVudHMgc2F3IGFkZGl0aW9uYWwgRVUgTWVtYmVyIFN0YXRlcyBqb2luIGFzIHdlbGwgYXMgSW5kaWEsIE1vbmdvbGlhLCBQYWtpc3RhbiBhbmQgdGhlIEFTRUFOIFNlY3JldGFyaWF0IGluIDIwMDgsIEF1c3RyYWxpYSwgTmV3IFplYWxhbmQgYW5kIFJ1c3NpYSBpbiAyMDEwLCBCYW5nbGFkZXNoLCBOb3J3YXksIGFuZCBTd2l0emVybGFuZCBpbiAyMDEyLCBhcyB3ZWxsIGFzIENyb2F0aWEsIGFuZCBLYXpha2hzdGFuIGluIDIwMTQuDQoxOTk2IChBcHIgMjYpOiBbR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2l0aCB0aGUgc2lnbmluZyBvZiB0aGUgVHJlYXR5IG9uIERlZXBlbmluZyBNaWxpdGFyeSBUcnVzdCBpbiBCb3JkZXIgUmVnaW9ucyBpbiBTaGFuZ2hhaSBieSB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4uIExhdGVyIG9uIEp1biAxNSwgMjAwMSBpdCBnb3QgcmVuYW1lZCBhcyBTaGFuZ2hhaSBDb29wZXJhdGlvbiBPcmdhbmlzYXRpb24gKFNDTykgb3IgU2hhbmdoYWkgUGFjdCANCjE5OTYgKE1heSAxNik6IEF0YWwgQmloYXJpIFZhanBheWVlIGJlY29tZXMgUE0gb2YgSW5kaWEgZm9yIHRoZSB2ZXJ5IGZpcnN0IHRpbWUgZm9yIDE2IGRheXMuDQoxOTk2IChKdW4gMSk6IEF0YWwgQmloYXJpIFZhanBheWVlIHJlc2lnbnMuIEhEIERldmUgR293ZGEgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NiAoQXVnIDE0KTpbcmVzZWFyY2hdW2V4dHJlbWVdIEthcmVuIEVsaXphYmV0aCBXZXR0ZXJoYWhuIChPY3RvYmVyIDE2LCAxOTQ4IOKAkyBKdW5lIDgsIDE5OTcpLCBhbHNvIGtub3duIGFzIEthcmVuIFdldHRlcmhhaG4gSmVubmV0dGUsIHdhcyBhbiBBbWVyaWNhbiBwcm9mZXNzb3Igb2YgY2hlbWlzdHJ5IGF0IERhcnRtb3V0aCBDb2xsZWdlLCBOZXcgSGFtcHNoaXJlLCB3aG8gc3BlY2lhbGl6ZWQgaW4gdG94aWMgbWV0YWwgZXhwb3N1cmUuIFNoZSBkaWVkIG9mIG1lcmN1cnkgcG9pc29uaW5nIGF0IHRoZSBhZ2Ugb2YgNDggZHVlIHRvIGFjY2lkZW50YWwgZXhwb3N1cmUgdG8gdGhlIGV4dHJlbWVseSB0b3hpYyBvcmdhbmljIG1lcmN1cnkgY29tcG91bmQgZGltZXRoeWxtZXJjdXJ5IChIZyhDSDMpMikuIFByb3RlY3RpdmUgZ2xvdmVzIGluIHVzZSBhdCB0aGUgdGltZSBvZiB0aGUgaW5jaWRlbnQgcHJvdmlkZWQgaW5zdWZmaWNpZW50IHByb3RlY3Rpb24sIGFuZCBleHBvc3VyZSB0byBvbmx5IGEgc2luZ2xlIGRyb3Agb3IgdHdvIG9mIHRoZSBkaW1ldGh5bG1lcmN1cnkgYWJzb3JiZWQgdGhyb3VnaCB0aGUgZ2xvdmVzIHByb3ZlZCB0byBiZSBmYXRhbCBhZnRlciBsZXNzIHRoYW4gYSB5ZWFyLiBUZXN0cyBsYXRlciByZXZlYWxlZCB0aGF0IGRpbWV0aHlsbWVyY3VyeSBjYW4sIGluIGZhY3QsIHJhcGlkbHkgcGVybWVhdGUgc2V2ZXJhbCBraW5kcyBvZiBsYXRleCBnbG92ZXMgYW5kIGVudGVyIHRoZSBza2luIHdpdGhpbiBhYm91dCAxNSBzZWNvbmRzLiBIZXIgZXhwb3N1cmUgd2FzIGxhdGVyIGNvbmZpcm1lZCBieSBoYWlyIGFuYWx5c2lzLCB3aGljaCBzaG93ZWQgYSBkcmFtYXRpYyBqdW1wIGluIG1lcmN1cnkgbGV2ZWxzIDE3IGRheXMgYWZ0ZXIgdGhlIGluaXRpYWwgYWNjaWRlbnQsIHBlYWtpbmcgYXQgMzkgZGF5cywgZm9sbG93ZWQgYnkgYSBncmFkdWFsIGRlY2xpbmUuIEFwcHJveGltYXRlbHkgdGhyZWUgbW9udGhzIGFmdGVyIHRoZSBpbml0aWFsIGFjY2lkZW50IFdldHRlcmhhaG4gYmVnYW4gZXhwZXJpZW5jaW5nIGJyaWVmIGVwaXNvZGVzIG9mIGFiZG9taW5hbCBkaXNjb21mb3J0IGFuZCBub3RpY2VkIHNpZ25pZmljYW50IHdlaWdodCBsb3NzLiBUaGUgbW9yZSBkaXN0aW5jdGl2ZSBuZXVyb2xvZ2ljYWwgc3ltcHRvbXMgb2YgbWVyY3VyeSBwb2lzb25pbmcsIGluY2x1ZGluZyBsb3NzIG9mIGJhbGFuY2UgYW5kIHNsdXJyZWQgc3BlZWNoLCBhcHBlYXJlZCBpbiBKYW51YXJ5IDE5OTcsIGZpdmUgbW9udGhzIGFmdGVyIHRoZSBhY2NpZGVudC4gSGVyIGJsb29kIGFuZCB1cmluYXJ5IG1lcmN1cnkgY29udGVudCB3ZXJlIG1lYXN1cmVkIGF0IDQsMDAwIM68Zy9MIGFuZCAyMzQgzrxnL0wsIHJlc3BlY3RpdmVseeKAlGJvdGggbWFueSB0aW1lcyB0aGVpciByZXNwZWN0aXZlIHRveGljIHRocmVzaG9sZHMgb2YgMjAwIM68Zy9MIGFuZCA1MCDOvGcvTCAoYmxvb2QgYW5kIHVyaW5lIHJlZmVyZW5jZSByYW5nZXMgYXJlIDEgdG8gOCDOvGcvTCBhbmQgMSB0byA1IM68Zy9MKS4NCjE5OTYgKERlYyA0IDA2OjU4OjA3IFVUQyk6W1NwYWNlXVtNYXJzXVtFYXJ0aF0gTGF1bmNoIG9mIE1hcnMgUGF0aGZpbmRlciBvbiBEZWx0YSBJSSA3OTI1ICgjRDI0MCkNCnJvY2tldCBmcm9tIENhcGUgQ2FuYXZlcmFsIFNMQy0xNy4gVG8gcHJvdmUgdGhhdCB0aGUgZGV2ZWxvcG1lbnQgb2YgImZhc3RlciwgYmV0dGVyIGFuZCBjaGVhcGVyIiBzcGFjZWNyYWZ0IHdhcyBwb3NzaWJsZSAod2l0aCB0aHJlZSB5ZWFycyBmb3IgZGV2ZWxvcG1lbnQgYW5kIGEgY29zdCB1bmRlciAkMTUwIG1pbGxpb24gZm9yIHRoZSBsYW5kZXIsIGFuZCAkMjUgbWlsbGlvbiBmb3IgdGhlIHJvdmVyKS4gVG8gc2hvdyB0aGF0IGl0IHdhcyBwb3NzaWJsZSB0byBzZW5kIGEgbG9hZCBvZiBzY2llbnRpZmljIGluc3RydW1lbnRzIHRvIGFub3RoZXIgcGxhbmV0IHdpdGggYSBzaW1wbGUgc3lzdGVtIGFuZCBhdCBvbmUtZmlmdGVlbnRoIHRoZSBjb3N0IG9mIGEgVmlraW5nIG1pc3Npb24uIChGb3IgY29tcGFyaXNvbiwgdGhlIFZpa2luZyBtaXNzaW9ucyBjb3N0ICQ5MzUgbWlsbGlvbiBpbiAxOTc0IG9yICQzLjUgYmlsbGlvbiBpbiAxOTk3IGRvbGxhcnMuKS4gVG8gZGVtb25zdHJhdGUgTkFTQSdzIGNvbW1pdG1lbnQgdG8gbG93LWNvc3QgcGxhbmV0YXJ5IGV4cGxvcmF0aW9uIGJ5IGZpbmlzaGluZyB0aGUgbWlzc2lvbiB3aXRoIGEgdG90YWwgZXhwZW5kaXR1cmUgb2YgJDI4MCBtaWxsaW9uLCBpbmNsdWRpbmcgdGhlIGxhdW5jaCB2ZWhpY2xlIGFuZCBtaXNzaW9uIG9wZXJhdGlvbnMuDQoxOTk2OiBhIHJhaWQgb24gdGhlIEFuaW1hbCBIdXNiYW5kcnkgZGVwYXJ0bWVudOKAmXMgb2ZmaWNlcyBpbiBDaGFpYmFzYSwgQmloYXIgdW5mb2xkZWQgdGhlIFJzLjk1MCBjcm9yZSBmb2RkZXIgc2NhbSwgaW4gd2hpY2ggdGhlIEJpaGFyIGNoaWVmIG1pbmlzdGVyIExhbHUgUHJhc2FkIFlhZGF2IGNhdGNoIHVwIGluIGEgbGlmZWxvbmcgdHVzc2xlIHdpdGggdGhlIENCSS4NCjE5OTY6W0Jvb2tdW0FkdmVudHVyZV0gSm9uIEtyYWthdWVyJ3MgSW50byB0aGUgV2lsZC4NCjE5OTY6W0NvbXB1dGluZ10gVGhlIFZpZGVvTEFOIHNvZnR3YXJlIG9yaWdpbmF0ZWQgYXMgYSBGcmVuY2ggYWNhZGVtaWMgcHJvamVjdC4gVkxDIHVzZWQgdG8gc3RhbmQgZm9yICJWaWRlb0xBTiBDbGllbnQiIHdoZW4gVkxDIHdhcyBhIGNsaWVudCBvZiB0aGUgVmlkZW9MQU4gcHJvamVjdCwgb2ZmaWNpYWxseSByZWxlYXNlZCB1bmRlciBHTlUgR1BMIG9uIDIwMDEgKEZlYiAxKS4NCjE5OTY6W01lbWVdIERhbmNpbmcgQmFieSBTY3JlZW5zYXZlcg0KMTk5NjpbU3BhY2VYXSBUaGUgZW50aXJlIHByb2Nlc3MgZm9yIHRoZSBKYW1lcyBXZWJiIFNwYWNlIFRlbGVzY29wZSAoSldTVCkgZnJvbSBpbml0aWFsIGNvbmNlcHQgdG8gbGF1bmNoIHNwYW5uZWQgYXBwcm94aW1hdGVseSAyNSB5ZWFycywgd2l0aCBpbml0aWFsIGRlc2lnbnMgYmVnaW5uaW5nIGluIDE5OTYgYW5kIHRoZSB0ZWxlc2NvcGUgbGF1bmNoaW5nIGluIDIwMjEsIGJ1dCBhIHNpZ25pZmljYW50IHBvcnRpb24gb2YgdGhpcyB3YXMgc3BlbnQgaW4gZGVzaWduLCB0ZXN0aW5nLCBhbmQgb3ZlcmNvbWluZyBtYWpvciByZWRlc2lnbnMgYW5kIGRlbGF5cywgbm90IGp1c3QgYXNzZW1ibHkuIA0KMTk5NiAoRmViIDI4KTpbRGVsaGldIEluZGlyYXB1cmFtLCBHaGF6aWFiYWQgd2FzIGVzdGQgd2hlbiBpdHMgZm91bmRhdGlvbiBzdG9uZSAoS2FsYSBQYXRoYXIpIHdhcyBpbmF1Z3VyYXRlZCBieSBTaCBNb3RpbGFsIFZvcmEsIHRoZW4gR292ZXJub3Igb2YgVVAuICgyMDIxKSBJJ3B1cmFtIEV4dG4gdG8gYmUgYnVpbHQgb24gMTIgYWNyZXMgb25seSwgY29uY2VpdmVkIGluIDIwMDQuDQoxOTk2OltCb29rXVtNaWxpdGFyeV1bQ3VsdHVyZV1bRVVdW1VTQV0gR2VvcmdlIFIuUi4gTWFydGluIGlzIHRoZSBBbWVyaWNhbiBhdXRob3Igb2YgdGhlIGVwaWMgZmFudGFzeSBib29rIHNlcmllcyBBIFNvbmcgb2YgSWNlIGFuZCBGaXJlLCB3aGljaCBiZWdhbiB3aXRoIEEgR2FtZSBvZiBUaHJvbmVzICgxOTk2KSBhbmQgc2VydmVkIGFzIHRoZSBiYXNpcyBmb3IgSEJPJ3MgbWFzc2l2ZWx5IHBvcHVsYXIgR2FtZSBvZiBUaHJvbmVzIFRWIHNlcmllcy4gQSBTb25nIG9mIEljZSBhbmQgRmlyZSBpcyBhIHNlcmllcyBvZiBoaWdoIGZhbnRhc3kgbm92ZWxzIGJ5IHRoZSBBbWVyaWNhbiBhdXRob3IgR2VvcmdlIFIuIFIuIE1hcnRpbi4gTWFydGluIGJlZ2FuIHdyaXRpbmcgdGhlIGZpcnN0IHZvbHVtZSwgQSBHYW1lIG9mIFRocm9uZXMsIGluIDE5OTEsIGFuZCBwdWJsaXNoZWQgaXQgaW4gMTk5Ni4gTWFydGluLCB3aG8gb3JpZ2luYWxseSBlbnZpc2lvbmVkIHRoZSBzZXJpZXMgYXMgYSB0cmlsb2d5LCBoYXMgcmVsZWFzZWQgZml2ZSBvdXQgb2Ygc2V2ZW4gcGxhbm5lZCB2b2x1bWVzLiANCg0KW0dlbmVyYXRpb25dIE1pbGxlbm5pYWwgZ2VuZXJhdGlvbiAoMTk4MeKAkzE5OTYpIGVuZHM7IGxhc3RlZCBmb3IgMTUgeWVhcnMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICA1MCB5ZWFycyBvZiBJbmRlcGVuZGVudCBJbmRpYSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSANCg0KW0dlbmVyYXRpb25dIEdlbiBaICgxOTk34oCTMjAxMikgc3RhcnRzOyBhbmQgZXhpc3RzIGZvciBuZXh0IDE1IHllYXJzLg0KDQoxOTk3OltXaG9dW1Jlc2VhcmNoXVtDb21wdXRpbmddW1RlY2hdW0N1bHR1cmVdIFZMQyBNZWRpYSBQbGF5ZXIgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBzdHVkZW50cyBhdCB0aGUgRnJlbmNoIGVuZ2luZWVyaW5nIHNjaG9vbCDDiWNvbGUgQ2VudHJhbGUgUGFyaXMgaW4gMTk5Ni4gV2hpbGUgaXQgc3RhcnRlZCBhcyBhbiBhY2FkZW1pYyBwcm9qZWN0IChWaWRlb0xBTikgdG8gc3RyZWFtIHZpZGVvIG92ZXIgYSBjYW1wdXMgbmV0d29yaywgaXRzIGRldmVsb3BtZW50IGFuZCBtb2Rlcm5pemF0aW9uIHdlcmUgbGF0ZXIgbGVkIGJ5IEplYW4tQmFwdGlzdGUgS2VtcGYuIA0KMTk5NzpbUmVzZWFyY2hdW1NwYWNlXSAyOSBKdWx5IDE5OTc6IGEgTkFTQSBzY2llbnRpc3QgYW5ub3VuY2VkIGV2aWRlbmNlIG9mIGZvc3NpbGl6ZWQgbWljcm9zY29waWMgbGlmZSBmb3JtcyBpbiBhIG1ldGVvcml0ZSBub3QgZnJvbSBhbnkga25vd24gcGxhbmV0Lg0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgR3JvdXAgb2YgRWlnaHQgKEc4KSB3YXMgYW4gaW50ZXJnb3Zlcm5tZW50YWwgcG9saXRpY2FsIGZvcnVtIGZyb20gMTk5NyB0byAyMDE0LCBmb3JtZWQgYnkgaW5jb3Jwb3JhdGluZyBSdXNzaWEgaW50byB0aGUgRzcuIFRoZSBHOCBiZWNhbWUgdGhlIEc3IGFnYWluIGFmdGVyIFJ1c3NpYSB3YXMgZXhwZWxsZWQgaW4gMjAxNCBhZnRlciB0aGUgUnVzc2lhbiBhbm5leGF0aW9uIG9mIENyaW1lYS4gRm91bmRlZDogMTk5NywgRGVudmVyLCBDb2xvcmFkbywgVW5pdGVkIFN0YXRlcw0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBGb3VuZGVkOiA2IEp1bmUgMTk5NywgVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiAoQklNU1RFQykgaXMgYW4gaW50ZXJuYXRpb25hbCBvcmdhbml6YXRpb24gb2Ygc2V2ZW4gU291dGggQXNpYW4gYW5kIFNvdXRoZWFzdCBBc2lhbiBuYXRpb25zLCBob3VzaW5nIDEuNzMgYmlsbGlvbiBwZW9wbGUgYW5kIGhhdmluZyBhIGNvbWJpbmVkIGdyb3NzIGRvbWVzdGljIHByb2R1Y3Qgb2YgVVMkNS4yIHRyaWxsaW9uLg0KMTk5NzpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gYnVpbHQgdGhlIGZpcnN0IGV4cGVyaW1lbnRhbCBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCBjb3VsZCBtYW5pcHVsYXRlIDcgcXViaXRzIHVzaW5nIG51Y2xlYXIgbWFnbmV0aWMgcmVzb25hbmNlIChOTVIpIHRlY2huaXF1ZXMuDQoxOTk3IChKdWwgNCk6W1NwYWNlXVtNYXJzXSBUaGUgTWFycyBQYXRoZmluZGVyIGVuZHVyZWQgYSAzMC1zZWNvbmQgY29tbXVuaWNhdGlvbnMgYmxhY2tvdXQgYXMgaXQgZW50ZXJlZCBNYXJzJyBhdG1vc3BoZXJlLiBJdCBsYW5kZWQgYXQgQXJlcyBWYWxsaXMsIENocnlzZSBQbGFuaXRpYSwgTWFycyAxOcKwN+KAsjQ44oCzTiAzM8KwMTPigLIxMuKAs1cuIE1hcnMgUGF0aGZpbmRlciAoTUVTVVIgUGF0aGZpbmRlcikgaXMgYW4gQW1lcmljYW4gcm9ib3RpYyBzcGFjZWNyYWZ0IHRoYXQgbGFuZGVkIGEgYmFzZSBzdGF0aW9uIHdpdGggYSByb3ZpbmcgcHJvYmUgb24gTWFycyBpbiAxOTk3LiBJdCBjb25zaXN0ZWQgb2YgYSBsYW5kZXIsIHJlbmFtZWQgdGhlIENhcmwgU2FnYW4gTWVtb3JpYWwgU3RhdGlvbiwgYW5kIGEgbGlnaHR3ZWlnaHQsIDEwLjYga2cgKDIzIGxiKSB3aGVlbGVkIHJvYm90aWMgTWFycyByb3ZlciBuYW1lZCBTb2pvdXJuZXIsIHRoZSBmaXJzdCByb3ZlciB0byBvcGVyYXRlIG91dHNpZGUgdGhlIEVhcnRo4oCTTW9vbiBzeXN0ZW0uDQoxOTk3OltCb29rXSBNaXRjaCBBbGJvbSdzIFR1ZXNkYXlzIHdpdGggTW9ycmllLg0KMTk5NzpbR2FtaW5nXSBHcmFuZCBUaGVmdCBBdXRvIChHVEEpIHJlbGVhc2VkIGJ5IERNQSBEZXNpZ24gKGxhdGVyIFJvY2tzdGFyIE5vcnRoKSBmb3IgUFMxLCBXaW5kb3dzIGFuZCBNUy1ET1M7IEdyYW5kIFRoZWZ0IEF1dG86IFZpY2UgQ2l0eSAoMjAwMik7IEdyYW5kIFRoZWZ0IEF1dG86IFNhbiBBbmRyZWFzICgyMDA0KTsgR3JhbmQgVGhlZnQgQXV0byBJViAoMjAwOCk7IEdyYW5kIFRoZWZ0IEF1dG8gViAoMjAxMyk7IEdyYW5kIFRoZWZ0IEF1dG86IFRoZSBUcmlsb2d5IOKAkyBUaGUgRGVmaW5pdGl2ZSBFZGl0aW9uICgyMDIxKQ0KMTk5NzogVGVra2VuIDMgd2FzIGRlc2lnbmVkIGJ5IEthdHN1aGlybyBIYXJhZGEgKE9zYWthLCBPc2FrYSBQcmVmZWN0dXJlLCBKYXBhbikgb2YgQmFuZGFpIE5hbWNvIEVudGVydGFpbm1lbnQgaGVhZHF1YXJ0ZXJlZCBhdCDFjHRhLCBUb2t5by4NCjE5OTcgKE1hciA2KTogW0dlb1BvbGl0aWNzXSBUaGUgSW5kaWFuIE9jZWFuIFJpbSBBc3NvY2lhdGlvbiwgZm9ybWVybHkga25vd24gYXMgdGhlIEluZGlhbiBPY2VhbiBSaW0gSW5pdGlhdGl2ZSBhbmQgdGhlIEluZGlhbiBPY2VhbiBSaW0gQXNzb2NpYXRpb24gZm9yIFJlZ2lvbmFsIENvb3BlcmF0aW9uLCBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBjb25zaXN0aW5nIG9mIDIzIHN0YXRlcyBib3JkZXJpbmcgdGhlIEluZGlhbiBPY2Vhbi4gVGhlIElPUkEgaXMgYSByZWdpb25hbCBmb3J1bSwgdHJpcGFydGl0ZSBpbiBuYXR1cmUsIGJyaW5naW5nIHRvZ2V0aGVyIHJlcHJlc2VudGF0aXZlcyBvZiBHb3Zlcm5tZW50LCBCdXNpbmVzcyBhbmQgQWNhZGVtaWEsIGZvciBwcm9tb3RpbmcgY28tb3BlcmF0aW9uIGFuZCBjbG9zZXIgaW50ZXJhY3Rpb24gYW1vbmcgdGhlbS4gSXQgaXMgYmFzZWQgb24gdGhlIHByaW5jaXBsZXMgb2YgT3BlbiBSZWdpb25hbGlzbSBmb3Igc3RyZW5ndGhlbmluZyBFY29ub21pYyBDb29wZXJhdGlvbiBwYXJ0aWN1bGFybHkgb24gVHJhZGUgRmFjaWxpdGF0aW9uIGFuZCBJbnZlc3RtZW50LCBQcm9tb3Rpb24gYXMgd2VsbCBhcyBTb2NpYWwgRGV2ZWxvcG1lbnQgb2YgdGhlIHJlZ2lvbi4gVGhlIENvb3JkaW5hdGluZyBTZWNyZXRhcmlhdCBvZiBJT1JBIGlzIGxvY2F0ZWQgYXQgRWJlbmUsIE1hdXJpdGl1cy4NCjE5OTcgKEFwciAyMSk6IEguRC4gRGV2ZSBHb3dkYSByZXNpZ25zLiBJbmRlciBLdW1hciBHdWpyYWwgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NyAoSnVuIDYpOiBbR2VvUG9saXRpY3NdIEJJTVNURUMgZm91bmRlZC4gVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBvZiBzZXZlbiBTb3V0aCBBc2lhbiBhbmQgU291dGhlYXN0IEFzaWFuIG5hdGlvbnMsIGhvdXNpbmcgMS43MyBiaWxsaW9uIHBlb3BsZSBhbmQgaGF2aW5nIGEgY29tYmluZWQgZ3Jvc3MgZG9tZXN0aWMgcHJvZHVjdCBvZiAkMy44IHRyaWxsaW9uLiBUaGUgQklNU1RFQyBtZW1iZXIgc3RhdGVzIOKAkyBCYW5nbGFkZXNoLCBCaHV0YW4sIEluZGlhLCBNeWFubWFyLCBOZXBhbCwgU3JpIExhbmthLCBhbmQgVGhhaWxhbmQg4oCTIGFyZSBhbW9uZyB0aGUgY291bnRyaWVzIGRlcGVuZGVudCBvbiB0aGUgQmF5IG9mIEJlbmdhbC4NCjE5OTcgKEp1biA4KTogRGVzcGl0ZSBhZ2dyZXNzaXZlIGNoZWxhdGlvbiB0aGVyYXB5LCBoZXIgY29uZGl0aW9uIHJhcGlkbHkgZGV0ZXJpb3JhdGVkLiBUaHJlZSB3ZWVrcyBhZnRlciB0aGUgZmlyc3QgbmV1cm9sb2dpY2FsIHN5bXB0b21zIGFwcGVhcmVkLCBXZXR0ZXJoYWhuIGxhcHNlZCBpbnRvIHdoYXQgYXBwZWFyZWQgdG8gYmUgYSB2ZWdldGF0aXZlIHN0YXRlIHB1bmN0dWF0ZWQgYnkgcGVyaW9kcyBvZiBleHRyZW1lIGFnaXRhdGlvbi4gT25lIG9mIGhlciBmb3JtZXIgc3R1ZGVudHMgc2FpZCB0aGF0ICJIZXIgaHVzYmFuZCBzYXcgdGVhcnMgcm9sbGluZyBkb3duIGhlciBmYWNlLiBJIGFza2VkIGlmIHNoZSB3YXMgaW4gcGFpbi4gVGhlIGRvY3RvcnMgc2FpZCBpdCBkaWRuJ3QgYXBwZWFyIHRoYXQgaGVyIGJyYWluIGNvdWxkIGV2ZW4gcmVnaXN0ZXIgcGFpbi4iIFdldHRlcmhhaG4gd2FzIHJlbW92ZWQgZnJvbSBsaWZlIHN1cHBvcnQgYW5kIHByb25vdW5jZWQgZGVhZCBvbiBKdW5lIDgsIDE5OTcsIHRlbiBtb250aHMgYWZ0ZXIgaGVyIGluaXRpYWwgZXhwb3N1cmUuIEluIHJlc3BvbnNlLCB0aGUgT2NjdXBhdGlvbmFsIFNhZmV0eSBhbmQgSGVhbHRoIEFkbWluaXN0cmF0aW9uIHJlY29tbWVuZGVkIHRoYXQgdGhlIHVzZSBvZiBkaW1ldGh5bG1lcmN1cnkgYmUgYXZvaWRlZCB1bmxlc3MgYWJzb2x1dGVseSBuZWNlc3NhcnkgYW5kIG1hbmRhdGVkIHRoZSB1c2Ugb2YgcGxhc3RpYy1sYW1pbmF0ZSBnbG92ZXMgKFNpbHZlclNoaWVsZCkgd2hlbiBoYW5kbGluZyB0aGlzIGNvbXBvdW5kLg0KMTk5NyAoSnVuIDEzKTpbSmFja10gQm9yZGVyDQoxOTk3IChKdW4gMjYpOltCb29rXSAzMllPIEouIEsuIFJvd2xpbmcgcHVibGlzaGVzIGhlciBmaXJzdCBIYXJyeSBQb3R0ZXIgYm9vaywgVGhlIFBoaWxvc29waGVyJ3MgU3RvbmU7IA0KVGhlIENoYW1iZXIgb2YgU2VjcmV0cyAoMiBKdWx5IDE5OTgpLA0KVGhlIFByaXNvbmVyIG9mIEF6a2FiYW4gKDggSnVseSAxOTk5KSwNClRoZSBHb2JsZXQgb2YgRmlyZSAoOCBKdWx5IDIwMDApLA0KVGhlIE9yZGVyIG9mIHRoZSBQaG9lbml4ICgsIDI3IEp1bmUgMjAwMyksDQpUaGUgSGFsZi1CbG9vZCBQcmluY2UgKDE2IEp1bHkgMjAwNSksDQpUaGUgRGVhdGhseSBIYWxsb3dzICgyMSBKdWx5IDIwMDcpDQoxOTk3IChBdWcgMjUpOltTcGFjZV0gQWR2YW5jZWQgQ29tcG9zaXRpb24gRXhwbG9yZXIgaXMgYSBOQVNBIEV4cGxvcmVyIHByb2dyYW0gc2F0ZWxsaXRlIGFuZCBzcGFjZSBleHBsb3JhdGlvbiBtaXNzaW9uIHRvIHN0dWR5IG1hdHRlciBjb21wcmlzaW5nIGVuZXJnZXRpYyBwYXJ0aWNsZXMgZnJvbSB0aGUgc29sYXIgd2luZCwgdGhlIGludGVycGxhbmV0YXJ5IG1lZGl1bSwgYW5kIG90aGVyIHNvdXJjZXMuDQoxOTk3IChTZXAgMTMpOiB0aGUgaW50cm9kdWN0b3J5IGVwaXNvZGUgb2YgU2hha3RpbWFuIHdhcyBhaXJlZCBvbiBEb29yZGFyc2hhbiAoSW5kaWEncyBuYXRpb25hbCB0ZWxldmlzaW9uIG5ldHdvcmspIGZyb20gMjcgU2VwdGVtYmVyIDE5OTcgdG8gMjcgTWFyY2ggMjAwNSwgb24gU3VuZGF5cyBhdCAxMiBub29uIElTVC4gVGhlIHRlbGVjYXN0IHNsb3QsIGhvd2V2ZXIgd2FzIHNoaWZ0ZWQgdG8gOTozMCBhLm0uIGZvciB0aGUgbGFzdCBlcGlzb2Rlcy4gDQoxOTk3IChTZXAgMjcgMTA6MjMgVVRDKTpbU3BhY2VdW01hcnNdIExhc3QgY29udGFjdCB3aXRoIE1hcnMgUGF0aGZpbmRlci4gTWlzc2lvbiBkdXJhdGlvbiAoTGF1bmNoIHRvIGxhc3QgY29udGFjdCk6IDkgbW9udGhzLCAyMyBkYXlzLg0KMTk5NyAoT2N0IDMxKTpbQm9va10gRG9uYWxkIFRydW1wJ3MgVHJ1bXA6IFRoZSBBcnQgb2YgdGhlIENvbWViYWNrOyBUaGUgQW1lcmljYSBXZSBEZXNlcnZlICgyMDAwKTsgVHJ1bXA6IFRoaW5rIExpa2UgYSBCaWxsaW9uYWlyZTogRXZlcnl0aGluZyBZb3UgTmVlZCB0byBLbm93IEFib3V0IFN1Y2Nlc3MsIFJlYWwgRXN0YXRlLCBhbmQgTGlmZSAoMjAwNCk7IFdoeSBXZSBXYW50IFlvdSB0byBCZSBSaWNoICgyMDA2KTsgVHJ1bXA6IFRoZSBCZXN0IFJlYWwgRXN0YXRlIEFkdmljZSBJIEV2ZXIgUmVjZWl2ZWQ6IDEwMCBUb3AgRXhwZXJ0cyBTaGFyZSBUaGVpciBTdHJhdGVnaWVzICgyMDA2LCBOb3YgMSk7IFRoaW5rIEJJRyBhbmQgS2ljayBBc3MgaW4gQnVzaW5lc3MgYW5kIExpZmUgKDIwMDcpOyBUcnVtcCBOZXZlciBHaXZlIFVwOiBIb3cgSSBUdXJuZWQgTXkgQmlnZ2VzdCBDaGFsbGVuZ2VzIGludG8gU3VjY2VzcyAoMjAwOCk7IFRpbWUgdG8gR2V0IFRvdWdoOiBNYWtpbmcgQW1lcmljYSAjMSBBZ2FpbiAoMjAxMSk7IENyaXBwbGVkIEFtZXJpY2E6IEhvdyB0byBNYWtlIEFtZXJpY2EgR3JlYXQgQWdhaW4gKDIwMTUpDQoxOTk3OiBBcnVuZGhhdGkgUm95IGJlY2FtZSB0aGUgZmlyc3QgSW5kaWFuIHRvIHdpbiBNYW4gQm9va2VyIFByaXplIGZvciBoZXIgbm92ZWwgJ1RoZSBHb2Qgb2YgU21hbGwgVGhpbmdzJy4NCjE5OTc6IElJVC1KRUUgd2FzIGNvbmR1Y3RlZCB0d2ljZSBhZnRlciB0aGUgUS1QYXBlciB3YXMgbGVha2VkLg0KMTk5NzogTkFTQSBlc3RpbWF0ZWQgdGhlcmUgd2VyZSBhcHByb3guIDIsNjQ1IGFydGlmaWNpYWwgc2F0ZWxsaXRlIHBheWxvYWRzIG9yYml0dGluZyB0aGUgZWFydGggYW5kIDYsMjE2IHBpZWNlcyBvZiBzcGFjZSBkZWJyaXMgYXMgdHJhY2tlZCBieSB0aGUgR1NGQy4gT3ZlciAxNiwyOTEgcHJldmlvdXNseSBsYXVuY2hlZCBvYmplY3RzIGhhdmUgZGVjYXllZCBpbnRvIHRoZSBFYXJ0aCdzIGF0bW9zcGhlcmUuDQoxOTk3OiBCSEMgRmluYW5jaWFsLCBJbmMuIG9mIFBlbm5zeWx2YW5pYSBtZXJnZWQgaW50byBGSVNWIHRvIGZvcm0gU2VjdXJlZCBUcmFuc2FjdGlvbiBQcm9jZXNzaW5nIFNlcnZpY2VzLg0KMTk5NzpbQm9va10gVGhlIEZvdXIgQWdyZWVtZW50czogQSBQcmFjdGljYWwgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSBpcyBhIHNlbGYtaGVscCBib29rIGJ5IGJlc3RzZWxsaW5nIGF1dGhvciBEb24gTWlndWVsIFJ1aXogd2l0aCBKYW5ldCBNaWxsczsgVGhlIE1hc3Rlcnkgb2YgTG92ZTogQSBQcmFjdGljYWwgR3VpZGUgdG8gdGhlIEFydCBvZiBSZWxhdGlvbnNoaXAgLS1Ub2x0ZWMgV2lzZG9tIEJvb2sgKDE5OTksIE1hciAzMCk7IFRoZSBWb2ljZSBvZiBLbm93bGVkZ2U6IEEgUHJhY3RpY2FsIEd1aWRlIHRvIElubmVyIFBlYWNlICgyMDA0LCBNYXIgMTApOyBUaGUgRmlmdGggQWdyZWVtZW50OiBBIFByYWN0aWNhbCBHdWlkZSB0byBTZWxmLU1hc3RlcnkgKDIwMDkpOyBUaGUgQ2lyY2xlIG9mIEZpcmU6IEluc3BpcmF0aW9uIGFuZCBHdWlkZWQgTWVkaXRhdGlvbnMgZm9yIExpdmluZyBpbiBMb3ZlIGFuZCBIYXBwaW5lc3MgKDIwMTMsIEF1ZyAxKTsgVGhlIE1hc3Rlcnkgb2YgU2VsZjogQSBUb2x0ZWMgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSAoMjAxNiwgTWF5IDYpDQoxOTk3OltCb29rXSBKb24gS3Jha2F1ZXIncyBJbnRvIFRoaW4gQWlyOiBBIFBlcnNvbmFsIEFjY291bnQgb2YgdGhlIE10LiBFdmVyZXN0IERpc2FzdGVyOyBVbmRlciB0aGUgQmFubmVyIG9mIEhlYXZlbiAoMjAwMyBKdWwpDQoxOTk3IChEZWMgMTEpOltFbnZdIFRoZSBLeW90byBQcm90b2NvbCB3YXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgd2hpY2ggZXh0ZW5kZWQgdGhlIDE5OTIgVW5pdGVkIE5hdGlvbnMgRnJhbWV3b3JrIENvbnZlbnRpb24gb24gQ2xpbWF0ZSBDaGFuZ2UgKFVORkNDQykgdGhhdCBjb21taXRzIHN0YXRlIHBhcnRpZXMgdG8gcmVkdWNlIGdyZWVuaG91c2UgZ2FzIGVtaXNzaW9ucywgYmFzZWQgb24gdGhlIHNjaWVudGlmaWMgY29uc2Vuc3VzIHRoYXQgKHBhcnQgb25lKSBnbG9iYWwgd2FybWluZyBpcyBvY2N1cnJpbmcgYW5kIChwYXJ0IHR3bykgdGhhdCBodW1hbi1tYWRlIENPMiBlbWlzc2lvbnMgYXJlIGRyaXZpbmcgaXQuDQoxOTk3OltJbmRpYV1bRWR1Y2F0aW9uXVtDdWx0dXJlXSBFa2xhdnlhIE1vZGVsIFJlc2lkZW50aWFsIFNjaG9vbCBpcyBhIEdvdmVybm1lbnQgb2YgSW5kaWEgc2NoZW1lIGZvciBtb2RlbCByZXNpZGVudGlhbCBzY2hvb2wgZm9yIEluZGlhbiB0cmliYWxzIGFjcm9zcyBJbmRpYS4gSXQgaXMgb25lIG9mIHRoZSBmbGFnc2hpcCBpbnRlcnZlbnRpb25zIG9mIHRoZSBNaW5pc3RyeSBvZiBUcmliYWwgQWZmYWlycywgR292ZXJubWVudCBvZiBJbmRpYSBhbmQgd2FzIGludHJvZHVjZWQgaW4gdGhlIHllYXIgMTk5Ny05OCB0byBlbnN1cmUgdHJpYmFsIHN0dWRlbnRzIGdldCBhY2Nlc3MgdG8gcXVhbGl0eSBlZHVjYXRpb24gaW4gdGhlIHJlbW90ZSB0cmliYWwgYXJlYXMuIEVNUlNzIGFyZSBzZXQgdXAgaW4gU3RhdGVzL1VUcyB3aXRoIGdyYW50cyB1bmRlciBBcnRpY2xlIDI3NSgxKSBvZiB0aGUgQ29uc3RpdHV0aW9uIG9mIEluZGlhLiBBcyBwZXIgdGhlIGJ1ZGdldCAyMDE4LTE5LCBldmVyeSBibG9jayB3aXRoIG1vcmUgdGhhbiA1MCUgU1QgcG9wdWxhdGlvbiBhbmQgYXQgbGVhc3QgMjAsMDAwIHRyaWJhbCBwZXJzb25zLCB3aWxsIGhhdmUgYW4gRWtsYXZ5YSBNb2RlbCBSZXNpZGVudGlhbCBTY2hvb2wgYnkgdGhlIHllYXIgMjAyMi4NCjE5OTc6W1NwYWNlXSBIaXBwYXJjb3MgKDE5ODkgLTE5OTMpLiBJdCB0b29rIDQtOCB5ZWFycyB0byBvcmdhbml6ZSBhbmQgcHVibGlzaCB0aGUgNCB5ZWFycyBzdHVkeSBieSB0aGlzIGV4cGVyaW1lbnQsIHdoaWNoIHBlcm1pdHRlZCB0aGUgZmlyc3QgaGlnaC1wcmVjaXNpb24gbWVhc3VyZW1lbnRzIG9mIHRoZSBpbnRyaW5zaWMgYnJpZ2h0bmVzc2VzIChjb21wYXJlZCB0byB0aGUgbGVzcyBwcmVjaXNlIGFwcGFyZW50IGJyaWdodG5lc3MpLCBwcm9wZXIgbW90aW9ucywgYW5kIHBhcmFsbGF4ZXMgb2Ygc3RhcnMsIGVuYWJsaW5nIGJldHRlciBjYWxjdWxhdGlvbnMgb2YgdGhlaXIgZGlzdGFuY2UgYW5kIHRhbmdlbnRpYWwgdmVsb2NpdHkuIFdoZW4gY29tYmluZWQgd2l0aCByYWRpYWwgdmVsb2NpdHkgbWVhc3VyZW1lbnRzIGZyb20gc3BlY3Ryb3Njb3B5LCBhc3Ryb3BoeXNpY2lzdHMgd2VyZSBhYmxlIHRvIGZpbmFsbHkgbWVhc3VyZSBhbGwgc2l4IHF1YW50aXRpZXMgbmVlZGVkIHRvIGRldGVybWluZSB0aGUgbW90aW9uIG9mIHN0YXJzLiBUaGUgcmVzdWx0aW5nIEhpcHBhcmNvcyBDYXRhbG9ndWUsIGEgaGlnaC1wcmVjaXNpb24gY2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiAxMTgsMjAwIHN0YXJzLCB3YXMgcHVibGlzaGVkIGluIDE5OTcuIFRoZSBsb3dlci1wcmVjaXNpb24gVHljaG8gQ2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiBhIG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBhdCB0aGUgc2FtZSB0aW1lLCB3aGlsZSB0aGUgZW5oYW5jZWQgVHljaG8tMiBDYXRhbG9ndWUgb2YgMi41IG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBpbiAyMDAwLiBIaXBwYXJjb3MnIGZvbGxvdy11cCBtaXNzaW9uLCBHYWlhLCB3YXMgbGF1bmNoZWQgaW4gMjAxMy4NCjE5OTc6W1NwYWNlXVtSZXNlYXJjaF0gU2luY2UgdGhlIDE5OTcgcHJvcG9zYWwgb2YgdGhlIEFkUy9DRlQgKEFudGktZGUgU2l0dGVyL0NvbmZvcm1hbCBGaWVsZCBUaGVvcnkpIGNvcnJlc3BvbmRlbmNlLCB0aGUgcHJlZG9taW5hbnQgYmVsaWVmIGFtb25nIHBoeXNpY2lzdHMgaXMgdGhhdCBpbmZvcm1hdGlvbiBpcyBpbmRlZWQgcHJlc2VydmVkIGluIGJsYWNrIGhvbGUgZXZhcG9yYXRpb24uIA0KMTk5NzpbU3BhY2VdW1Jlc2VhcmNoXSBBIHdpZGVseSBwdWJsaWNpemVkIGJldCBtYWRlIGluIDE5OTcgYmV0d2VlbiBKb2huIFByZXNraWxsIG9uIHRoZSBvbmUgaGFuZCB3aXRoIEhhd2tpbmcgYW5kIEtpcCBUaG9ybmUgb24gdGhlIG90aGVyIHRoYXQgaW5mb3JtYXRpb24gd2FzIG5vdCBsb3N0IGluIGJsYWNrIGhvbGVzLiBUaGUgc2NpZW50aWZpYyBkZWJhdGUgb24gdGhlIHBhcmFkb3ggd2FzIGRlc2NyaWJlZCBpbiBhIHBvcHVsYXIgYm9vayBwdWJsaXNoZWQgaW4gMjAwOCBieSBMZW9uYXJkIFN1c3NraW5kIGNhbGxlZCBUaGUgQmxhY2sgSG9sZSBXYXIuIChUaGUgYm9vayBjYXJlZnVsbHkgbm90ZXMgdGhhdCB0aGUgJ3dhcicgd2FzIHB1cmVseSBhIHNjaWVudGlmaWMgb25lLCBhbmQgdGhhdCBhdCBhIHBlcnNvbmFsIGxldmVsLCB0aGUgcGFydGljaXBhbnRzIHJlbWFpbmVkIGZyaWVuZHMuKSBUaGUgYm9vayBzdGF0ZXMgdGhhdCBIYXdraW5nIHdhcyBldmVudHVhbGx5IHBlcnN1YWRlZCB0aGF0IGJsYWNrLWhvbGUgZXZhcG9yYXRpb24gd2FzIHVuaXRhcnkgYnkgdGhlIGhvbG9ncmFwaGljIHByaW5jaXBsZSwgd2hpY2ggd2FzIGZpcnN0IHByb3Bvc2VkIGJ5ICd0IEhvb2Z0LCBmdXJ0aGVyIGRldmVsb3BlZCBieSBTdXNza2luZCBhbmQgbGF0ZXIgZ2l2ZW4gYSBwcmVjaXNlIHN0cmluZyB0aGVvcnkgaW50ZXJwcmV0YXRpb24gYnkgdGhlIEFkUy9DRlQgY29ycmVzcG9uZGVuY2UuIEluIDIwMDQsIEhhd2tpbmcgYWxzbyBjb25jZWRlZCB0aGUgMTk5NyBiZXQsIHBheWluZyBQcmVza2lsbCB3aXRoIGEgYmFzZWJhbGwgZW5jeWNsb3BlZGlhICJmcm9tIHdoaWNoIGluZm9ybWF0aW9uIGNhbiBiZSByZXRyaWV2ZWQgYXQgd2lsbCIgYWx0aG91Z2ggVGhvcm5lIHJlZnVzZWQgdG8gY29uY2VkZS4NCjE5OTc6W0VhcnRoXVtQaHlzaWNzXVtSZXNlYXJjaF0gdGhlcmUgd2VyZSB0d28gbGFyZ2UgZWFydGhxdWFrZXMgb2ZmIHRoZSBjb2FzdCBvZiBDaGlsZS4gVGhlIG1hZ25pdHVkZSBvZiB0aGUgZmlyc3QsIGluIEp1bHksIHdhcyBlc3RpbWF0ZWQgYXQgTXfigK82LjksIGJ1dCB3YXMgYmFyZWx5IGZlbHQsIGFuZCBvbmx5IGluIHRocmVlIHBsYWNlcy4gSW4gT2N0b2JlciBhIE134oCvNy4xIHF1YWtlIGluIG5lYXJseSB0aGUgc2FtZSBsb2NhdGlvbiwgYnV0IHR3aWNlIGFzIGRlZXAgYW5kIG9uIGEgZGlmZmVyZW50IGtpbmQgb2YgZmF1bHQsIHdhcyBmZWx0IG92ZXIgYSBicm9hZCBhcmVhLCBpbmp1cmVkIG92ZXIgMzAwIHBlb3BsZSwgYW5kIGRlc3Ryb3llZCBvciBzZXJpb3VzbHkgZGFtYWdlZCBvdmVyIDEwLDAwMCBob3VzZXMuIEFzIGNhbiBiZSBzZWVuIGluIHRoZSB0YWJsZSBiZWxvdywgdGhpcyBkaXNwYXJpdHkgb2YgZGFtYWdlIGRvbmUgaXMgbm90IHJlZmxlY3RlZCBpbiBlaXRoZXIgdGhlIG1vbWVudCBtYWduaXR1ZGUgKE134oCvKSBub3IgdGhlIHN1cmZhY2Utd2F2ZSBtYWduaXR1ZGUgKE1z4oCvKS4gT25seSB3aGVuIHRoZSBtYWduaXR1ZGUgaXMgbWVhc3VyZWQgb24gdGhlIGJhc2lzIG9mIHRoZSBib2R5LXdhdmUgKG1i4oCvKSBvciB0aGUgc2Vpc21pYyBlbmVyZ3kgKE1l4oCvKSBpcyB0aGVyZSBhIGRpZmZlcmVuY2UgY29tcGFyYWJsZSB0byB0aGUgZGlmZmVyZW5jZSBpbiBkYW1hZ2UuIChhcyByZXNlYXJjaGVkIGJ5IENob3ksIEJvYXR3cmlnaHQgJiBLaXJieSAyMDAxLCBwLiAxMy4pLiBNdyA2Ljkgd2FzIGFjdHVhbGx5IE1lIDYuMSwgYW4gaW50ZXJwbGF0ZS10aHJ1c3QgdHlwZSBvZiBmYXVsdCwgd2hpbGUgTXcgNy4xIHdhcyBhY3R1YWxseSBhIDcuNSBNZSBpbnRyYXNsYWItbm9ybWFsIHR5cGUgb2YgZmF1bHQuDQoxOTk3OltSZXNlYXJjaF0gRHVyaW5nIHN1cnZleXMgY2FycmllZCBvdXQgYmV0d2VlbiAxOTk3IGFuZCAyMDAxLCBhIHNwb3Qgd2FzIGZvdW5kIGFsb25nIHRoZSBNYXJpYW5hIFRyZW5jaCB0aGF0IGhhZCBhIGRlcHRoIHNpbWlsYXIgdG8gdGhlIENoYWxsZW5nZXIgRGVlcCwgcG9zc2libHkgZXZlbiBkZWVwZXIuIEl0IHdhcyBkaXNjb3ZlcmVkIHdoaWxlIHNjaWVudGlzdHMgZnJvbSB0aGUgSGF3YWlpIEluc3RpdHV0ZSBvZiBHZW9waHlzaWNzIGFuZCBQbGFuZXRvbG9neSB3ZXJlIGNvbXBsZXRpbmcgYSBzdXJ2ZXkgYXJvdW5kIEd1YW07IHRoZXkgdXNlZCBhIHNvbmFyIG1hcHBpbmcgc3lzdGVtIHRvd2VkIGJlaGluZCB0aGUgcmVzZWFyY2ggc2hpcCB0byBjb25kdWN0IHRoZSBzdXJ2ZXkuIFRoaXMgbmV3IHNwb3Qgd2FzIG5hbWVkIHRoZSBITVJHIChIYXdhaWkgTWFwcGluZyBSZXNlYXJjaCBHcm91cCkgRGVlcCwgYWZ0ZXIgdGhlIGdyb3VwIG9mIHNjaWVudGlzdHMgd2hvIGRpc2NvdmVyZWQgaXQuDQoxOTk3OltTcGFjZVhdIEEgcmVzb2x2ZWQgY2lyY3Vtc3RlbGxhciBkaXNrIHdhcyBmaXJzdCBpZGVudGlmaWVkIGluIDE5OTcgd2l0aCB0aGUgT3dlbnMgVmFsbGV5IFJhZGlvIE9ic2VydmF0b3J5LiBUaGUgc2VtaS1tYWpvciBheGlzIHdhcyBpbml0aWFsbHkgZXN0aW1hdGVkIHRvIGJlIDExMCBBVS4gSEQgMTYzMjk2IGFuZCBzdXJyb3VuZGluZ3MgQ3JlZGl0OiBFU08vRGlnaXRpemVkIFNreSBTdXJ2ZXkgMjsgQWNrbm93bGVkZ2VtZW50OiBEYXZpZGUgRGUgTWFydGluIE9ic2VydmF0aW9uIGRhdGEgRXBvY2ggSjIwMDAgICAgICBFcXVpbm94IEoyMDAwIENvbnN0ZWxsYXRpb24JU2FnaXR0YXJpdXMgUmlnaHQgYXNjZW5zaW9uCTE3aCA1Nm0gMjEuMjlzIERlY2xpbmF0aW9uCeKIkjIxwrAgNTfigLIgMjEuODfigLMgQXBwYXJlbnQgbWFnbml0dWRlIChWKQk2Ljg1OyBDaGFyYWN0ZXJpc3RpY3MgRXZvbHV0aW9uYXJ5IHN0YWdlCUhlcmJpZyBBZSBzdGFyIFNwZWN0cmFsIHR5cGUJQTNWYWVrQTFtQTE7IEFzdHJvbWV0cnkgUmFkaWFsIHZlbG9jaXR5IChSdikJLTQuMDAgwrEzLjNbM10ga20vcyBQcm9wZXIgbW90aW9uICjOvCkJUkE6IC03LjU4NiDCsTAuMDQxIG1hcy95cjsgRGVjLjogLTM5LjQ1OCDCsTAuMDI5IG1hcy95cls0XSBQYXJhbGxheCAoz4ApCTkuOTA0M8KxMC4wNDA4IG1hc1s0XSBEaXN0YW5jZQkzMjkgwrEgMSBseSAoMTAxLjAgwrEgMC40IHBjKSBEZXRhaWxzOyBNYXNzCTEuOTXCsTAuMDcgTeKYiSBSYWRpdXMJMS44N8KxMC4wNSBS4piJIEx1bWlub3NpdHkJMjAuNCszLjYg4oiSMy4wIEzimIkgU3VyZmFjZSBncmF2aXR5IChsb2cgZykJNC4xMMKxMC4xMCBjZ3MgVGVtcGVyYXR1cmUJOTAwMMKxMjUwIEsgQWdlCTYuMDMrMC4yOCDiiJIwLjI3IE15ciBPdGhlciBkZXNpZ25hdGlvbnMgQkQtMjEgNDc3OSwgQ1BELTIxIDY1MDgsIEVNKiBNV0MgMjc1LCBISVAgODc4MTksIElSQVMgMTc1MzMtMjE1NiwgMk1BU1MgSjE3NTYyMTI4LTIxNTcyMTgsIFBEUyA0NzMsIFRZQyA2MjYyLTIxMzEtMSwgRGF0YWJhc2UgcmVmZXJlbmNlcyBTSU1CQUQNCjE5OTc6W1NwYWNlWF0gMTAxOTkgQ2hhcmlrbG8gaXMgYSByaW5nZWQgYXN0ZXJvaWQgb3IgY2VudGF1ciBpbiB0aGUgb3V0ZXIgU29sYXIgU3lzdGVtLiBJdCBpcyB0aGUgbGFyZ2VzdCBrbm93biBjZW50YXVyLCB3aXRoIGEgZGlhbWV0ZXIgb2YgYWJvdXQgMjUwIGttLiBJdCBvcmJpdHMgdGhlIFN1biBiZXR3ZWVuIFNhdHVybiBhbmQgVXJhbnVzIHdpdGggYW4gb3JiaXRhbCBwZXJpb2Qgb2YgNjIuNSB5ZWFycy4gV2lraXBlZGlhIE9yYml0YWwgcGVyaW9kOiA2MyB5ZWFycyBSYWRpdXM6IDE1MSBrbSBEaXNjb3ZlcmVkOiAxNSBGZWJydWFyeSAxOTk3IERpbWVuc2lvbnM6ICgyODcuNisyLjg7IOKIkjMuMCkgw5cgKDI3MC40KzIuODsg4oiSNS42KSDDlyAoMTk4LjIrMTAuODsg4oiSNS40KSBrbTogMTEgRGlzY292ZXJlcjogSmFtZXMgVi4gU2NvdHRpIFNwZWN0cmFsIHR5cGU6IEQtdHlwZSBhc3Rlcm9pZCBBcGhlbGlvbjogMTguNDIwIEFVDQoxOTk3OltTcGFjZVhdIFRoZSBHcmVhdCBEYXlsaWdodCBGaXJlYmFsbCAtIFRoZSBhdG1vc3BoZXJpYyBwYXNzIG1vZGlmaWVkIHRoZSBvYmplY3QncyBtYXNzIGFuZCBvcmJpdCBhcm91bmQgdGhlIFN1bi4gQSAxOTk0IHN0dWR5IGZvdW5kIHRoYXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgaW4gYW4gRWFydGgtY3Jvc3Npbmcgb3JiaXQgYW5kIHByZWRpY3RlZCB0aGF0IGl0IHdvdWxkIHBhc3MgY2xvc2UgdG8gRWFydGggYWdhaW4gaW4gQXVndXN0IDE5OTcuIEhvd2V2ZXIsIHRoZSBvYmplY3QgaGFzIG5vdCBiZWVuIG9ic2VydmVkIGFnYWluIGFuZCBzbyBpdHMgcG9zdC1lbmNvdW50ZXIgb3JiaXQgcmVtYWlucyB1bmtub3duLg0KMTk5NzpOYWZpc2EgSm9zZXBoIHdhcyB0aGUgeW91bmdlc3QgTWlzcyBJbmRpYSB3aW5uZXIgYXQgYWdlIDE5LCB3aW5uaW5nIHRoZSB0aXRsZSBpbiAxOTk3LiBTaGUgbGF0ZXIgYmVjYW1lIGEgbW9kZWwgYW5kIHRlbGV2aXNpb24gcGVyc29uYWxpdHkuIFdoaWxlIG90aGVyIHdpbm5lcnMgbGlrZSBNZWVuYWtzaGkgU2VzaGFkcmkgd2VyZSBhbHNvIDE3IHdoZW4gdGhleSB3b24gaW4gMTk4MSwgSm9zZXBoIGlzIG9mdGVuIGNpdGVkIGZvciBoZXIgZWFybHkgd2luIGF0IDE5LCB3aGljaCB3YXMgdGhlbiBhIHlvdW5nZXIgYWdlIHRoYW4gaXMgdHlwaWNhbGx5IHNlZW4gaW4gdGhlIGNvbXBldGl0aW9uLiANCjE5OTc6W3NwYWNlXVt0ZWNoXSBUaGUgZmluYWwgQmxvY2sgSUlBIHdhcyBpbiBOb3YgMTk5Nywgd2hpbGUgQmxvY2sgSUlScyBiZWdhbiByZXBsYWNpbmcgdGhlbSBzaG9ydGx5IGFmdGVyLCBsYXN0aW5nIHVudGlsIDIwMDQuIEJsb2NrIElJUiAoUmVwbGVuaXNobWVudCkgbGF1bmNoZXMgZm9sbG93ZWQgZnJvbSAxOTk3IHRvIDIwMDQsIHdpdGggdGhlIGZpcnN0IGxhdW5jaCBpbiBKYW51YXJ5IDE5OTcuIA0KDQoxOTk4OltTcGFjZVhdIFRoZSBwcmltYXJ5IGNvbnN0cnVjdGlvbiBwaGFzZSBvZiB0aGUgSW50ZXJuYXRpb25hbCBTcGFjZSBTdGF0aW9uIChJU1MpIHRvb2sgYXBwcm94aW1hdGVseSAxMyB5ZWFycywgZnJvbSAxOTk4IHRvIDIwMTEsIHdpdGggdGhlIGZpcnN0IG1vZHVsZSBsYXVuY2hpbmcgaW4gTm92ZW1iZXIgMTk5OCBhbmQgSVNTIEFzc2VtYmx5IENvbXBsZXRlIGRlY2xhcmVkIGluIE1heSAyMDExLiBIb3dldmVyLCBhc3NlbWJseSB3YXMgYSBjb250aW51b3VzLCBtdWx0aS1zdGFnZSBwcm9jZXNzIGludm9sdmluZyBtb3JlIHRoYW4gMzAgbWlzc2lvbnMsIG51bWVyb3VzIHNwYWNld2Fsa3MsIGFuZCByb2JvdGljIGFzc2lzdGFuY2UgdG8gYnVpbGQgdGhlIHN0YXRpb24gcGllY2UgYnkgcGllY2UgaW4gb3JiaXQuIEV2ZW4gYWZ0ZXIgMjAxMSwgdGhlIElTUyBjb250aW51ZWQgdG8gZXZvbHZlIHdpdGggb25nb2luZyBhZGRpdGlvbnMgYW5kIHVwZ3JhZGVzLg0KMTk5ODpbUmVzZWFyY2hdW1NwYWNlXSBTcHJpbmcsIDE5OTg6IGEgbWljcm9mb3NzaWwgdGhhdCB3YXMgZm91bmQgaW4gYSBtZXRlb3JpdGUgYW5kIHBob3RvZ3JhcGhlZCBpbiAxOTY2LCB3YXMgcmVjb2duaXplZCBieSBhIFJ1c3NpYW4gbWljcm9iaW9sb2dpc3QgYXMgYSBtYWduZXRvdGFjdGljIGJhY3Rlcml1bS4gQnkgRmFsbCwgMTk5ODogTkFTQSdzIHB1YmxpYyBwb3NpdGlvbiBvbiBsaWZlLWZyb20tc3BhY2Ugc2hpZnRlZCBkcmFtYXRpY2FsbHkuDQoxOTk4OiBBcyBhIHJlc2VhcmNoIHByb2plY3QgYXQgU3RhbmZvcmQgVW5pdmVyc2l0eSwgU2VyZ2V5IEJyaW4gYW5kIExhcnJ5IFBhZ2UgY3JlYXRlZCBhIHNlYXJjaCBlbmdpbmUgdGhhdCBsaXN0ZWQgcmVzdWx0cyBhY2NvcmRpbmcgdG8gdGhlIHBvcHVsYXJpdHkgb2YgdGhlIHBhZ2VzLCBhZnRlciBjb25jbHVkaW5nIHRoYXQgdGhlIG1vc3QgcG9wdWxhciByZXN1bHQgd291bGQgb2Z0ZW4gYmUgdGhlIG1vc3QgdXNlZnVsLiBBZnRlciByYWlzaW5nICQxIG1pbGxpb24gZnJvbSBmYW1pbHksIGZyaWVuZHMgYW5kIG90aGVyIGludmVzdG9ycywgdGhlIHBhaXIgbGF1bmNoZWQgdGhlIGNvbXBhbnkgaW4gMTk5OC4gR29vZ2xlIGhhcyBzaW5jZSBiZWNvbWUgdGhlIHdvcmxk4oCZcyBtb3N0IHBvcHVsYXIgc2VhcmNoIGVuZ2luZSwgcmVjZWl2aW5nIG1vcmUgdGhhbiAyMDAgbWlsbGlvbiBxdWVyaWVzIGVhY2ggZGF5Lg0KMTk5OCAoTm92IDIwKTogDQoxOTk4IChBcHIgMjcpOiBSUkIgZm91bmRlZCBhcyBSYWlsd2F5IFJlY3J1aXRtZW50IENvbnRyb2wgQm9hcmQgaXMgYSBnb3Zlcm5tZW50IG9yZ2FuaXNhdGlvbiBpbiBJbmRpYS4gSXQgd2FzIHNldCB1cCBpbiAxOTk4IGluIHRoZSBNaW5pc3RyeSBvZiBSYWlsd2F5cyAoUmFpbHdheSBCb2FyZCksIE5ldyBEZWxoaS5JbiAxOTQ1LCB0aGUgU2VydmljZXMgQ29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgYXQgQm9tYmF5LCBDYWxjdXR0YSwgTWFkcmFzIGFuZCBMdWNrbm93LiBJbiAxOTgzLCB0byBjYXRlciB0byB0aGUgbmVlZHMgb2YgYXJlYXMgd2hpY2ggd2VyZSBiZWluZyBuZWdsZWN0ZWQgZHVlIHRvIGxvY2F0aW9ucyBvZiB0aGUgZXhpc3RpbmcgY29tbWlzc2lvbnMsIHNldmVuIG1vcmUgY29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgdml6LCBhdCBBaG1lZGFiYWQsIEFqbWVyLCBCaG9wYWwsIEJodXZuZXNod2FyLCBDaGFuZGlnYXJoLCBKYW1tdSBhbmQgU3JpbmFnYXIgd2l0aCBzaXR0aW5nIGF0IExlaCBhbmQgVHJpdmVuZHJ1bS4gSW4gMTk4NCB0d28gbW9yZSBzZXJ2aWNlIGNvbW1pc3Npb25zIHdlcmUgc2V0IHVwIGF0IE1hbGRhIGFuZCBHb3Jha2hwdXIuDQoxOTk4IChNYXkgMTkpOiBBdGFsIEJpaGFyaSBWYWpwYXllZSBiZWNvbWVzIFBNIG9mIEluZGlhIGZvciB0aGUgc2Vjb25kIHRpbWUsIG5vdyBmb3IgNiB5ZWFycyB0aWxsIE1heSAyMiwgMjAwNC4gDQoxOTk4IChNYXkgMjggMTU6MTVQU1QpOiBDaGFnYWktSSBpcyB0aGUgY29kZSBuYW1lIG9mIGZpdmUgc2ltdWx0YW5lb3VzIHVuZGVyZ3JvdW5kIG51Y2xlYXIgdGVzdHMgY29uZHVjdGVkIGJ5IFBha2lzdGFuLiBUaGUgdGVzdHMgd2VyZSBwZXJmb3JtZWQgYXQgUmFzIEtvaCBIaWxscyBpbiB0aGUgQ2hhZ2FpIERpc3RyaWN0IG9mIEJhbG9jaGlzdGFuIFByb3ZpbmNlLiBDaGFnYWktSSB3YXMgUGFraXN0YW4ncyBmaXJzdCBwdWJsaWMgdGVzdCBvZiBudWNsZWFyIHdlYXBvbnMuIFBha2lzdGFuJ3MgZmlzc2lsZSBtYXRlcmlhbCBwcm9kdWN0aW9uIHRha2VzIHBsYWNlIGF0IE5pbG9yZSwgS2FodXRhLCBhbmQgS2h1c2hhYiBOdWNsZWFyIENvbXBsZXgsIHdoZXJlIHdlYXBvbnMtZ3JhZGUgcGx1dG9uaXVtIGlzIHJlZmluZWQuDQoxOTk4OiBBZnRlciBjb21wbGV0aW5nIGhpcyBYIHN0YW5kYXJkIGV4YW1pbmF0aW9ucywgUmFuYmlyIEthcG9vciwgYWdlZCAxNiwgd29ya2VkIGFzIGFuIGFzc2lzdGFudCBkaXJlY3RvciB0byBoaXMgZmF0aGVyIG9uIHRoZSBmaWxtIEFhIEFiIExhdXQgQ2hhbGVuICgxOTk5KSwgZHVyaW5nIHdoaWNoIGhlIGRldmVsb3BlZCBhIGNsb3NlciBib25kIHdpdGggaGltLg0KMTk4ODogTmV0d29ya2VkIERhdGEgUHJvY2Vzc2luZyBDb3IsIElvd2EgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBJbnN1cmFuY2UgZGl2aXNpb24uDQoxOTk4OltCb29rXSBSb2JlcnQgR3JlZW5lJ3MgVGhlIDQ4IExhd3Mgb2YgUG93ZXI7IFRoZSAzMyBTdHJhdGVnaWVzIG9mIFdhciAoMjAwNik7IE1hc3RlcnkgKDIwMTIsIE5vdiAxMyk7IFRoZSBMYXdzIG9mIEh1bWFuIE5hdHVyZSAoMjAxOCwgT2N0IDE2KQ0KMTk5ODpbU3BhY2VdW1Jlc2VhcmNoXVtFeHRyZW1lXSBUaGVuIGNhbWUgMTk5OCBhbmQgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgKEhTVCkgb2JzZXJ2YXRpb25zIG9mIHZlcnkgZGlzdGFudCBzdXBlcm5vdmFlIHRoYXQgc2hvd2VkIHRoYXQsIGEgbG9uZyB0aW1lIGFnbywgdGhlIHVuaXZlcnNlIHdhcyBhY3R1YWxseSBleHBhbmRpbmcgbW9yZSBzbG93bHkgdGhhbiBpdCBpcyB0b2RheS4gU28gdGhlIGV4cGFuc2lvbiBvZiB0aGUgdW5pdmVyc2UgaGFzIG5vdCBiZWVuIHNsb3dpbmcgZHVlIHRvIGdyYXZpdHksIGFzIGV2ZXJ5b25lIHRob3VnaHQsIGl0IGhhcyBiZWVuIGFjY2VsZXJhdGluZy4NCjE5OTg6W0NyaW1lXVtJbmRpYV0gQW5lZXMgYXJyZXN0ZWQgaW4gVUFFIG9uIGNoYXJnZXMgb2YgaGF2aW5nIG11cmRlcmVkIGEgZm9ybWVyIGFzc29jaWF0ZSBhbmQgdGhlbiByaXZhbCwgSXJmYW4gR29nYSwgaW4gRHViYWksIGJ1dCB3YXMgZnJlZWQgYWZ0ZXIgdHdvIGRheXMgZm9yICdsYWNrIG9mIGV2aWRlbmNlJy4NCjE5OTg6W0NvbXB1dGluZ11bUXVhbnR1bV0gUmVzZWFyY2hlcnMgYXQgSUJNLCBPeGZvcmQsIEJlcmtlbGV5LCBTdGFuZm9yZCwgYW5kIE1JVCBwcm9kdWNlZCBhIDItcXViaXQgY29tcHV0aW5nIHN5c3RlbS4NCjE5OTg6W3d3d10gV2lyZXNoYXJrIGlzIGEgZnJlZSBhbmQgb3Blbi1zb3VyY2UgcGFja2V0IGFuYWx5emVyLiBJdCBpcyB1c2VkIGZvciBuZXR3b3JrIHRyb3VibGVzaG9vdGluZywgYW5hbHlzaXMsIHNvZnR3YXJlIGFuZCBjb21tdW5pY2F0aW9ucyBwcm90b2NvbCBkZXZlbG9wbWVudCwgYW5kIGVkdWNhdGlvbi4gT3JpZ2luYWxseSBuYW1lZCBFdGhlcmVhbCwgdGhlIHByb2plY3Qgd2FzIHJlbmFtZWQgV2lyZXNoYXJrIGluIE1heSAyMDA2IGR1ZSB0byB0cmFkZW1hcmsgaXNzdWVzLg0KMTk5ODpbVVNdW0Vjb25vbXldRGF2aWQgUm9ja2VmZWxsZXIgU3IuIHdhcyBhd2FyZGVkIHRoZSBQcmVzaWRlbnRpYWwgTWVkYWwgb2YgRnJlZWRvbSBieSBQcmVzaWRlbnQgQmlsbCBDbGludG9uIGZvciBoaXMgd29yayBvbiBJbnRlcm5hdGlvbmFsIEV4ZWN1dGl2ZSBTZXJ2aWNlIENvcnBzLg0KMTk5ODpbRGVmXVtBdmlhdGlvbl0gVGhlIExvY2toZWVkIFNSLTcxIEJsYWNrYmlyZCBmbGV3IHNvIGhpZ2ggYW5kIHNvIGZhc3QgdGhhdCB0aGUgY3JldyBuZWVkZWQgcHJlc3N1cml6ZWQgc3BhY2Ugc3VpdHMgd2hlbiBmbHlpbmcgaXQuIEFuZCBpdCBpcyBzYWlkIHRoYXQgYXQgdGhlIG1heGltdW0gYWx0aXR1ZGUgb2YgaXQgaXQgd2FzIHBvc3NpYmxlIHRvIHNlZSB0aGUgY3VydmF0dXJlIG9mIHRoZSBlYXJ0aCwgd2hpY2ggcmVmZXJzIHRvIHRoaXMgcXVvdGUgYnkgQ29sb25lbCBBbGlzb246IOKAnE9uIGEgY2xlYXIgZGF5IHlvdSBjYW4gc2VlIGZvcmV2ZXLigKbigJ0uIFRoZSBzZXJ2aWNlIGNlaWxpbmcgb2YgODUsMDAwIGZlZXQgKDI1LDkwMG0pIG1lYW50IHRoYXQgaXQgd2FzIGFuIGV4Y2VsbGVudCBleHBlcmltZW50YWwgdW5pdCBmb3Igc3BhY2UgdHJhdmVscy4gVGhhdCwgY29tYmluZWQgd2l0aCB0aGUgZ3JlYXQgc3BlZWRzIG9mIGl0IHdhcyB0d28gb2YgdGhlIHJlYXNvbnMgd2h5IE5BU0EgZGVjaWRlZCB0byB0YWtlIG92ZXIgdGhlIGxhc3QgdHdvIEJsYWNrYmlyZHMgYWZ0ZXIgaXRzIHJldGlyZW1lbnQgZnJvbSB0aGUgQWlyIEZvcmNlIGluIDE5OTguIFRoaXMgbWVhbnMgdGhhdCB0aGUgd29ybGTigJlzIGZhc3Rlc3QgYWlyY3JhZnQgd2FzIGluIHNlcnZpY2UgZnJvbSAxOTY2IHVudGlsIE5BU0EgcmV0aXJlZCBpdHMgdHdvIHVuaXRzIGluIDE5OTksIGFuZCBtb3N0IG9mIHRoZSByZW1haW5pbmcgQmxhY2tiaXJkcyBhcmUgdG9kYXkgc3RhdGlvbmVkIGF0IG11c2V1bXMgb3IgbWlsaXRhcnkgYmFzZXMgYWNyb3NzIHRoZSBVUy4NCjE5OTg6SW4gMTk5OCwgR2F1dGFtIEFkYW5pLCBhbG9uZyB3aXRoIGhpcyBhc3NvY2lhdGUgU2hhbnRpbGFsIFBhdGVsLCB3YXMga2lkbmFwcGVkIGZvciByYW5zb20gaW4gQWhtZWRhYmFkLCBJbmRpYS4gVGhleSB3ZXJlIGFiZHVjdGVkIGF0IGd1bnBvaW50IGFmdGVyIGxlYXZpbmcgdGhlIEthcm5hdmF0aSBDbHViIGluIGEgY2FyLiBUaGUga2lkbmFwcGVycywgYWxsZWdlZGx5IGdhbmdzdGVycyBGYXpsdSBSZWhtYW4gYW5kIEJob2dpbGFsIERhcmppLCByZXBvcnRlZGx5IGRlbWFuZGVkIGEgcmFuc29tIG9mICQxLjUtMiBtaWxsaW9uLiBCb3RoIEFkYW5pIGFuZCBQYXRlbCB3ZXJlIHJlbGVhc2VkIGEgZGF5IGxhdGVyLCBidXQgaXQncyB1bmNsZWFyIGlmIHRoZSByYW5zb20gd2FzIHBhaWQuIA0KVGhlIGtpZG5hcHBpbmcgaW5jaWRlbnQgaGFwcGVuZWQgaW4gdGhlIG1pZC0xOTkwcywgYXJvdW5kIHRoZSB0aW1lIEFkYW5pJ3MgYnVzaW5lc3Mgc3VjY2Vzc2VzIHN0YXJ0ZWQgYXR0cmFjdGluZyB1bndhbnRlZCBhdHRlbnRpb24uIFRoZSBraWRuYXBwaW5nIHdhcyBhbGxlZ2VkbHkgY2FycmllZCBvdXQgYnkgRmF6bHUgUmVobWFuIGFuZCBCaG9naWxhbCBEYXJqaSwgYWxzbyBrbm93biBhcyAiTWFtYSIuIFRoZXkgd2VyZSBsYXRlciBhY3F1aXR0ZWQgZHVlIHRvIGxhY2sgb2YgZXZpZGVuY2UuIA0KVGhlIGFiZHVjdGlvbiBpcyBqdXN0IG9uZSBvZiB0aGUgY2hhbGxlbmdlcyBBZGFuaSBoYXMgZmFjZWQuIEhlIHdhcyBhbHNvIGNhdWdodCBpbiB0aGUgMjYvMTEgTXVtYmFpIHRlcnJvciBhdHRhY2tzIGF0IHRoZSBUYWogSG90ZWwuIE1vcmUgcmVjZW50bHksIGhlIGhhcyBmYWNlZCBhY2N1c2F0aW9ucyBvZiBicmliZXJ5IGFuZCBzZWN1cml0aWVzIGZyYXVkLiANCkFkYW5pIGFuZCBvdGhlcnMgd2VyZSBlc2NvcnRlZCBieSBzdGFmZiB0byB0aGUga2l0Y2hlbiBhbmQgdGhlbiB0aGUgYmFzZW1lbnQuIFRoZXkgc3BlbnQgdGhlIGVudGlyZSBuaWdodCBpbiBhIGhhbGwgd2FpdGluZyBmb3IgcmVzY3VlLiBBZGFuaSBsYXRlciB0b2xkIG5ld3MgY2hhbm5lbHMgdGhhdCBoZSBzYXcg4oCcZGVhdGggYXQgYSBkaXN0YW5jZSBvZiBqdXN0IDE1IGZlZXQu4oCdIEhlIHdhcyByZXNjdWVkIHRoZSBuZXh0IG1vcm5pbmcgYnkgc2VjdXJpdHkgZm9yY2VzLg0KMTk5ODpbRW52XVtEaXNhc3Rlcl0gRWFzdGVybiBJbmRpYSwgMTk5OCBCYW5nbGFkZXNoIGZsb29kOyA0ayBkZWF0aHMNCjE5OTg6W1dob11bUmVzZWFyY2hdW0NvbXB1dGluZ11bVGVjaF1bQ3VsdHVyZV0gSW50ZXJuZXQgRG93bmxvYWQgTWFuYWdlciAoSURNKSB3YXMgZGV2ZWxvcGVkIGJ5IFRvbmVjIEluYy4sIGFuIEFtZXJpY2FuIGNvbXBhbnkgdGhhdCBzdGFydGVkIHRoZSBwcm9qZWN0IGluIDE5OTggYW5kIHJlbGVhc2VkIHRoZSBzb2Z0d2FyZSBpbiAyMDAxLiBUb25lYyBJbmMuIGZvY3VzZXMgb24gbmV0d29yayBwcm9ncmFtbWluZyBhbmQgY3JlYXRlZCBJRE0gdG8gc3BlZWQgdXAgZG93bmxvYWRzIGJ5IHVzaW5nIGR5bmFtaWMgZmlsZSBzZWdtZW50YXRpb24sIGFjY2VsZXJhdGluZyBzcGVlZHMgYnkgdXAgdG8gOCB0aW1lcy4gDQoNCjE5OTk6NCBKYW51YXJ5IDE5OTk6IE5BU0Egb2ZmaWNpYWxseSByZWNvZ25pemVkIHRoZSBwb3NzaWJpbGl0eSB0aGF0IGxpZmUgb24gRWFydGggY29tZXMgZnJvbSBzcGFjZS4NCjE5IE1hcmNoIDE5OTk6IE5BU0Egc2NpZW50aXN0cyBhbm5vdW5jZWQgdGhhdCB0d28gbW9yZSBtZXRlb3JpdGVzIGhvbGQgZXZlbiBzdHJvbmdlciBmb3NzaWxpemVkIGV2aWRlbmNlIGZvciBwYXN0IGxpZmUgb24gTWFycy4NCjE5OTk6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEcyMCBvciBHcm91cCBvZiAyMCBpcyBhbiBpbnRlcmdvdmVybm1lbnRhbCBmb3J1bSBjb21wcmlzaW5nIDE5IHNvdmVyZWlnbiBjb3VudHJpZXMsIHRoZSBFdXJvcGVhbiBVbmlvbiwgYW5kIHRoZSBBZnJpY2FuIFVuaW9uLiBGb3VuZGVkOiAyNiBTZXB0ZW1iZXIgMTk5OTsgQ2hhaXJtYW4gKEluY3VtYmVudCk6IEN5cmlsIFJhbWFwaG9zYSwgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYQ0KMTk5OTogVGhlIHRlcm0gV2ktRmkgd2FzIGludmVudGVkIGJ5IEludGVyYnJhbmQgKGFuIGFtZXJpY2FuIGJyYW5kIGNvbnN1bHRhbmN5IGNvbXBhbnkpIGFzIGEgcHVuIHVwb24gdGhlIHdvcmQgaGktZmkuDQpXaS1GaSBBbGxpYW5jZSBmb3JtZWQgYXMgYSB0cmFkZSBhc3NvY2lhdGlvbiB0byBob2xkIHRoZSBXaS1GaSB0cmFkZW1hcmsgdW5kZXIgd2hpY2ggbW9zdCBwcm9kdWN0cyBhcmUgc29sZC4NCjE5OTk6IHRoZSB0ZXJtDQoxOTk5OiBJc2xhbWljIFN0YXRlIG9mIElyYXEgYW5kIHRoZSBMZXZhbnQgKGFsc28ga25vd24gYXMgdGhlIElzbGFtaWMgU3RhdGUgb2YgSXJhcSBhbmQgU3lyaWEsIElzbGFtaWMgU3RhdGUsIG9yIGNvbW1vbmx5LCBJU0lTKSBmb3VuZGVkIGFzIEphbWEnYXQgYWwtVGF3aGlkIHdhbC1KaWhhZCBieSBBYnUgTXVzYWIgYWwtWmFycWF3aSBIUSdkIGF0ICBBbC1SYXFxYWguDQoxOTk5IChBcHIgMTIpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBJIFdhbnQgSXQgVGhhdCBXYXkuDQoxOTk5IChBcHIgMTgpOiBDT05DRVJUIGJlY2FtZSBvcGVyYXRpb25hbC4gSXQgd2FzIGRldmVsb3BlZCB1c2luZyBjbGllbnQtc2VydmVyIG1vZGVsIGZvciBkaXN0cmlidXRlZCBjb21wdXRpbmcgaXMgYSB0b3RhbCBzb2x1dGlvbiB0byB0aGUgbmV0d29ya2luZyBvZiB0aGUgUFJTcy4gQWxsIHRoZSBmaXZlIHNpdGVzIGhhdmUgYmVlbiBpbnRlcm5ldC13b3JrZWQgb3ZlciBhIDY0IGticHMgbGluZSB1c2luZyByb3V0ZXJzLCBvbiBsZWFzZWQgY29tbXVuaWNhdGlvbiBsaW5lIGNvbm5lY3Rpb25zIGZyb20gRGVwYXJ0bWVudCBvZiBUZWxlY29tIChET1QpLg0KMTk5OTogQ3JlZGl0IGNhcmRzIGFjY2VwdGVkIGZvciBib29raW5nIHRpY2tldHMgYW5kIHJlc2VydmF0aW9ucyBpbiBzb21lIHN0YXRpb25zIChpbmNsdWRpbmcgTXVtYmFpIENTVCkuDQoxOTk5IChNYXkgMSk6W0Jvb2tdIFJvYmVydCBLaXlvc2FraSAmIFNoYXJvbiBMZWNodGVyJ3MgUmljaCBEYWQncyBDYXNoZmxvdyBRdWFkcmFudDogUmljaCBEYWQncyBHdWlkZSB0byBGaW5hbmNpYWwgRnJlZWRvbTsgUmljaCBEYWQncyBHdWlkZSB0byBJbnZlc3Rpbmc6IFdoYXQgdGhlIFJpY2ggSW52ZXN0IGluIFRoYXQgdGhlIFBvb3IgYW5kIE1pZGRsZSBDbGFzcyBEbyBOb3QhICgyMDAxLCBKYW4gMSk7IFRoZSBSZWFsIEJvb2sgb2YgUmVhbCBFc3RhdGU6IFJlYWwgRXhwZXJ0cy4gUmVhbCBTdG9yaWVzLiBSZWFsIExpZmUuICgyMDA5LCBNYXkgMTIpOyBSaWNoIEtpZCBTbWFydCBLaWQ6IEdpdmluZyBZb3VyIENoaWxkIGEgRmluYW5jaWFsIEhlYWQgU3RhcnQgKDIwMDEsIEphbiAxKTsgDQoxOTk5IChNYXkgMTgpOltNdXNpY10gTWlsbGVubml1bSBpcyB0aGUgdGhpcmQgc3R1ZGlvIGFsYnVtIChzZWNvbmQgaW4gdGhlIFVuaXRlZCBTdGF0ZXMpIGJ5IEFtZXJpY2FuIGJveSBiYW5kIEJhY2tzdHJlZXQgQm95cywgcmVsZWFzZWQgYnkgSml2ZSBSZWNvcmRzLg0KMTk5OSAoRnJpLCAyNCBEZWMpOiBJbmRpYW4gQWlybGluZXMgRmxpZ2h0IDgxNCBjb21tb25seSBrbm93biBhcyBJQyA4MTQgd2FzIGFuIEluZGlhbiBBaXJsaW5lcyBBaXJidXMgQTMwMCBlbiByb3V0ZSBmcm9tIFRyaWJodXZhbiBJbnRlcm5hdGlvbmFsIEFpcnBvcnQgaW4gS2F0aG1hbmR1LCBOZXBhbCB0byBJbmRpcmEgR2FuZGhpIEludGVybmF0aW9uYWwgQWlycG9ydCBpbiBEZWxoaSwgSW5kaWEgd2FzIGhpamFja2VkLiBIYXJrYXQtdWwtTXVqYWhpZGVlbiB3YXMgYWNjdXNlZCBvZiB0aGUgaGlqYWNraW5nLg0KMTk5OTogSVJDVEMNCjE5OTkgKEF1Zyk6IEJvb2tNeVNob3cNCjE5OTkgKFNlcCAxNCk6IFtHZW9Qb2xpdGljc10gVGhlIENvbmZlcmVuY2Ugb24gSW50ZXJhY3Rpb24gYW5kIENvbmZpZGVuY2UtQnVpbGRpbmcgTWVhc3VyZXMgaW4gQXNpYSAoQ0lDQSkgaXMgYW4gaW50ZXItZ292ZXJubWVudGFsIGZvcnVtIGZvciBlbmhhbmNpbmcgY29vcGVyYXRpb24gdG93YXJkcyBwcm9tb3RpbmcgcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYS4gSXQgaXMgYSBmb3J1bSBiYXNlZCBvbiB0aGUgcmVjb2duaXRpb24gdGhhdCB0aGVyZSBpcyBjbG9zZSBsaW5rIGJldHdlZW4gcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYSBhbmQgaW4gdGhlIHJlc3Qgb2YgdGhlIHdvcmxkLiBUaGUga2V5IGlkZWEgb2YgdGhlIENvbmZlcmVuY2UgaXMgYmFzZWQgb24gdGhlIHByaW9yaXR5IG9mIHRoZSBpbmRpdmlzaWJpbGl0eSBvZiBzZWN1cml0eSwgam9pbnQgaW5pdGlhdGl2ZSBhbmQgbXV0dWFsbHkgYmVuZWZpY2lhbCBpbnRlcmFjdGlvbiBvZiBzbWFsbCBhbmQgbGFyZ2Ugc3RhdGVzLg0KMTk5OTogTm9ibGUgRWR1Y2F0aW9uIFNvY2lldHkncyBOb2JsZSBQdWJsaWMgU2Nob29sIChOUFMpLCBHYWpyYXVsYSBmb3VuZGVkIHdpdGggMjEzMDYyNyBhcyBpdHMgQ0JTRSBBZmZpbGlhdGlvbiBuby4NCjE5OTk6IGZpcnN0IC53bWEgZmlsZSBjcmVhdGVkDQoxOTk5OiBOYXBzdGVyIGZvdW5kZWQuDQoxOTk5IChEZWMgMTQpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBTaG93IE1lIHRoZSBNZWFuaW5nIG9mIEJlaW5nIExvbmVseS4gDQoxOTk5OltNdXNpY10gRHIuIERyZSBmdC4gU25vb3AgRG9nZydzIFN0aWxsIEQuUi5FLg0KMTk5OTpbQ3VsdHVyZV0gVGhlIENpdHRhc2xvdyBvcmdhbml6YXRpb24gd2FzIGNyZWF0ZWQgYnkgUGFvbG8gU2F0dXJuaW5pLCB0aGUgZm9ybWVyIG1heW9yIG9mIEdyZXZlIGluIENoaWFudGksIEl0YWx5LiBTYXR1cm5pbmkgd2FzIGluc3BpcmVkIGJ5IENhcmxvIFBldHJpbmkgYW5kIGhpcyBTbG93IEZvb2QgbW92ZW1lbnQsIHN0YXJ0ZWQgaW4gdGhlIDE5ODBzIHRvIHByb3Rlc3QgdGhlIGZpcnN0IE1jRG9uYWxkJ3MgY2hhaW4gaW4gUm9tZS4gU2luY2UgdGhlbiwgdGhlIENpdHRhc2xvdyBtb3ZlbWVudCBoYXMgZ3Jvd24gYWNyb3NzIGZvdXIgY29udGluZW50cywgd2l0aCAyNjIgcGFydGljaXBhdGluZyB0b3ducyBhcyBvZiAyMDIwLiANCjE5OTk6W01hbmFnZW1lbnRdW0J1c2luZXNzXVtQc3ljaG9sb2d5XVtSZXNlYXJjaF0gRHVubmluZyBhbmQgS3J1Z2VyIEVmZmVjdDogRGF2aWQgRHVubmluZyBhbmQgSnVzdGluIEtydWdlciBwdWJsaXNoZWQgdGhlIGluaXRpYWwgc3R1ZHkgaW4gMTk5OSB1bmRlciB0aGUgdGl0bGUgIlVuc2tpbGxlZCBhbmQgVW5hd2FyZSBvZiBJdDogSG93IERpZmZpY3VsdGllcyBpbiBSZWNvZ25pemluZyBPbmUncyBPd24gSW5jb21wZXRlbmNlIExlYWQgdG8gSW5mbGF0ZWQgU2VsZi1Bc3Nlc3NtZW50cyIuDQoxOTk5OltSZXNlYXJjaF0gUmVzZWFyY2ggYnkgVVMgTmF0aW9uYWwgUmVzZWFyY2ggQ291bmNpbC4gV2F0ZXIgZnJvbSB1bmRlcmdyb3VuZCBzb3VyY2VzIG1heSBjb250YWluIHNpZ25pZmljYW50IGFtb3VudHMgb2YgcmFkb24gZGVwZW5kaW5nIG9uIHRoZSBzdXJyb3VuZGluZyByb2NrIGFuZCBzb2lsIGNvbmRpdGlvbnMsIHdoZXJlYXMgc3VyZmFjZSBzb3VyY2VzIGdlbmVyYWxseSBkbyBub3QuDQoxOTk5OltOU0VdIEluY29ycG9yYXRlZCBpbiAxOTk5LCBJUkNUQyBpcyBhIE1pbmkgUmF0bmEgKENhdGVnb3J5IDEsIENlbnRyYWwgUHVibGljIFNlY3RvciBFbnRlcnByaXNlcyApIGFuZCB0aGUgb25seSBjb21wYW55IGF1dGhvcml6ZWQgYnkgdGhlIEluZGlhbiBnb3Zlcm5tZW50IHRvIHByb3ZpZGUgb25saW5lIHJhaWx3YXkgdGlja2V0cywgY2F0ZXJpbmcgc2VydmljZXMsIGFuZCBwYWNrYWdlZCBkcmlua2luZyB3YXRlciBhdCByYWlsd2F5IHN0YXRpb25zIGFuZCB0cmFpbnMgaW4gSW5kaWEuDQoxOTk5OltNbnRuZ2ddW0Jvb2tdIFN0ZXZlIEhvdXNlIGlzIGEgd29ybGQtcmVub3duZWQgY2xpbWJlciwgbW91bnRhaW4gZ3VpZGUgYW5kIFBhdGFnb25pYSBhbWJhc3NhZG9yLCB3aWRlbHkgcmVnYXJkZWQgZm9yIGhpcyBjbGVhbiwgbGlnaHQtYW5kLWZhc3Qgc3R5bGUuIEhlIGhhcyBwdWJsaXNoZWQgYXJ0aWNsZXMgaW4gYSBudW1iZXIgb2YgcGVyaW9kaWNhbHMgaW5jbHVkaW5nOiBBbHBpbmlzdCwgUm9jayBhbmQgSWNlLCBDbGltYmluZywgVGhlIEFtZXJpY2FuIEFscGluZSBKb3VybmFsLCBHcmlwcGVkLCBDYW5hZGlhbiBBbHBpbmUgSm91cm5hbCwgQ2xpbWIsIFZlcnRpY2FsLCBNb250YWduZXMsIFJpc2ssIEFscCssIENhbXBvIEJhc2UsIERlc25pdmVsLCBhbmQgU3RpbGUgQWxwaW4uIEhpcyBlc3NheXMgaGF2ZSBiZWVuIHB1Ymxpc2hlZCBpbiBzZXZlcmFsIGJvb2tzIGluY2x1ZGluZzsgQ29udGFjdDogTW91bnRhaW4gQ2xpbWJpbmcgYW5kIEVudmlyb25tZW50YWwgVGhpbmtpbmc7IFNvbHRhcmksIGEgY29sbGVjdGlvbiBvZiBlc3NheXMgYWJvdXQgc29sbyBjbGltYmluZyBwdWJsaXNoZWQgaW4gSXRhbGlhbjsgQmVyZywgYSBHZXJtYW4gYm9vayBhYm91dCBjbGltYmluZyBpbiB0aGUgSGltYWxheWE7IGFuZCBhbiB1cGNvbWluZyBib29rIGFib3V0IE5hbmdhIFBhcmJhdCBlZGl0ZWQgYnkgUmVpbmhvbGQgTWVzc25lci4gSGUgaGFzIHdvcmtlZCBhcyBhIFBhdGFnb25pYSBhbHBpbmUgYW1iYXNzYWRvciBzaW5jZSAxOTk5LiBQdWJsaXNoZWQ6IFRyYWluaW5nIGZvciB0aGUgTmV3IEFscGluaXNtOiBBIE1hbnVhbCBmb3IgdGhlIENsaW1iZXIgYXMgQXRobGV0ZSBQYXBlcmJhY2sg4oCTIElsbHVzdHJhdGVkLCAzIEFwcmlsIDIwMTQNCjE5OTk6W01udG5nZ10gQ29ucmFkIEFua2VyIChib3JuIE5vdmVtYmVyIDI3LCAxOTYyKSBpcyBhbiBBbWVyaWNhbiByb2NrIGNsaW1iZXIsIG1vdW50YWluZWVyLCBhbmQgYXV0aG9yLiBIZSB3YXMgdGhlIHRlYW0gbGVhZGVyIG9mIFRoZSBOb3J0aCBGYWNlIGNsaW1iaW5nIHRlYW0gZm9yIDI2IHllYXJzIHVudGlsIDIwMTguWzJdIEluIDE5OTksIGhlIGxvY2F0ZWQgR2VvcmdlIE1hbGxvcnkncyBib2R5IG9uIEV2ZXJlc3QgYXMgYSBtZW1iZXIgb2YgYSBzZWFyY2ggdGVhbSBsb29raW5nIGZvciB0aGUgcmVtYWlucyBvZiB0aGUgQnJpdGlzaCBjbGltYmVyIHdobyB3YXMgbGFzdCBzZWVuIGluIDE5MjQuDQoxOTk5OlRoZSBQaXBpc3RyZWwgVmlydXMgZmxldyBmb3IgdGhlIGZpcnN0IHRpbWUgb24gQXVndXN0IDEwLCAxOTk5LiBQcm9kdWN0aW9uIGJlZ2FuIG9uIEphbnVhcnkgMjAsIDIwMDAuIFRoZSBkZXZlbG9wbWVudCBvZiB0aGUgc2hvcnQgd2luZyB2ZXJzaW9uIHN0YXJ0ZWQgaW4gMjAwNy4gVGhlIFZpcnVzIFNXIHByb2R1Y3Rpb24gc3RhcnRlZCBpbiAyMDA4LiBUaGUgVmlydXMgd29uIHRoZSBOQVNBIDIwMDcgUGVyc29uYWwgQWlyIFZlaGljbGUgKFBBVikgQ2hhbGxlbmdlIGFuZCB0aGUgMjAwOCBHZW5lcmFsIEF2aWF0aW9uIFRlY2hub2xvZ3kgKEdBVCkgQ2hhbGxlbmdlLg0KMTk5OTpbc2lsdmljc10gU3VzdGFpbmFibGUgUHJhY3RpY2VzOiBSZXNlYXJjaCBpbiB0aGUgMjB0aCBjZW50dXJ5IHZhbGlkYXRlZCB0aGF0IHNlY29uZC1ncm93dGggc3RhbmRzIGNvdWxkIGJlIHN1c3RhaW5hYmx5IG1hbmFnZWQgdGhyb3VnaCB0ZWNobmlxdWVzIGxpa2UgdGhlIHNlZWQgdHJlZSBtZXRob2QuIFRvZGF5LCBzaWx2aWN1bHR1cmUgZm9jdXNlcyBvbiBjb21wbGV4IHN0YW5kIHN0cnVjdHVyZXMsIGJhbGFuY2luZyBjb21tZXJjaWFsIGRlbWFuZCB3aXRoIGVudmlyb25tZW50YWwgc3Rld2FyZHNoaXAuIA0KDQoyMXN0IGNlbnR1cnkgQ0Ugc3RhcnRlZCBvbiAxc3QgSmFuIDIwMDEgQUQuDQoNCjIwMDBzOltSZXNlYXJjaF0gVGhlIGNsYWltIHRoYXQgIndlIGFyZSA2MCUgYmFuYW5hIiAob3Igc2hhcmUgNjAlIG9mIG91ciBETkEpIGlzIGEgcG9wdWxhciwgeWV0IG9mdGVuIG1pc2ludGVycHJldGVkLCBzdGF0aXN0aWMgdGhhdCBvcmlnaW5hdGVkIGZyb20gY29tcGFyaXNvbnMgb2YgcHJvdGVpbi1jb2RpbmcgZ2VuZXMsIGxpa2VseSBwb3B1bGFyaXplZCBpbiB0aGUgZWFybHkgMjAwMHMgZm9sbG93aW5nIHByZWxpbWluYXJ5IHN0dWRpZXMgb2YgdGhlIGJhbmFuYSBnZW5vbWUuIEl0IHJlZmVycyB0byBhYm91dCA2MCUgb2YgaHVtYW4gZ2VuZXMgaGF2aW5nIGEgcmVjb2duaXphYmxlIGNvdW50ZXJwYXJ0IGluIGJhbmFuYXMsIG5vdCA2MCUgb2Ygb3VyIHRvdGFsIEROQS4gDQpNYW55IG9mIHRoZSDigJxob3VzZWtlZXBpbmfigJ0gZ2VuZXMgdGhhdCBhcmUgbmVjZXNzYXJ5IGZvciBiYXNpYyBjZWxsdWxhciBmdW5jdGlvbiwgc3VjaCBhcyBmb3IgcmVwbGljYXRpbmcgRE5BLCBjb250cm9sbGluZyB0aGUgY2VsbCBjeWNsZSwgYW5kIGhlbHBpbmcgY2VsbHMgZGl2aWRlIGFyZSBzaGFyZWQgYmV0d2VlbiBtYW55IHBsYW50cyAoaW5jbHVkaW5nIGJhbmFuYXMpIGFuZCBhbmltYWxzLldoaWxlIDYwJSBvZiBnZW5lcyBoYXZlIGNvdW50ZXJwYXJ0cywgdGhlc2UgZXNzZW50aWFsIGdlbmVzIG1ha2UgdXAgb25seSBhIHNtYWxsIGZyYWN0aW9uIG9mIHRoZSB0b3RhbCBnZW5vbWU7IGh1bWFucyBhbmQgYmFuYW5hcyBhcmUgbm90IDYwJSBpZGVudGljYWwgb3ZlcmFsbC4gDQpUaGUgcGhyYXNlIGlzIGVzc2VudGlhbGx5IGEgc2ltcGxpZmllZCwgb2Z0ZW4tZXhhZ2dlcmF0ZWQsIHdheSBvZiBoaWdobGlnaHRpbmcgdGhhdCBhbGwgbGlmZSBzaGFyZXMgY29tbW9uIGFuY2VzdHJhbCBnZW5lcyBmb3IgYmFzaWMgY2VsbHVsYXIgcHJvY2Vzc2VzLiANCjIwMDBzOltNQkFdIFNob3VsZCBDb3N0IE1vZGVsaW5nOiBNb2Rlcm4gIlNob3VsZCBDb3N0IiBtb2RlbHMgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBpZGVhbCBjb3N0IG9mIGEgcHJvZHVjdCwgYWNjb3VudGluZyBmb3IgbGFib3IsIG1hdGVyaWFscywgYW5kIG92ZXJoZWFkLiBFbnZpcm9ubWVudGFsICYgU29jaWFsIEltcGFjdDogTW9kZXJuIENCQSBub3cgcm91dGluZWx5IGluY2x1ZGVzIGVudmlyb25tZW50YWwgYW5kIHNvY2lhbCBpbXBhY3RzIGluIGFkZGl0aW9uIHRvIGZpbmFuY2lhbCBvbmVzLiBTaGlmdCBmcm9tIExvY2FsIHRvIEdsb2JhbDogRWFybHksIGhpZ2hseSBsb2NhbCBhc3Nlc3NtZW50cyBldm9sdmVkIGludG8gbGFyZ2Utc2NhbGUsIG5hdGlvbmFsLCBhbmQgaW50ZXJuYXRpb25hbCBDQkEuIFJlZmluZW1lbnQgb2YgVGVjaG5pcXVlczogTW92aW5nIGZyb20gc2ltcGxlLCBzaW5nbGUtcGVyaW9kIG1vZGVscyB0byBjb21wbGV4LCBtdWx0aS1wZXJpb2Qgc2ltdWxhdGlvbnMuIEluY3JlYXNlZCBEYXRhIFVzZTogVGhlIGF2YWlsYWJpbGl0eSBvZiBsYXJnZSwgZ3JhbnVsYXIgZGF0YSBzZXRzIGhhcyBhbGxvd2VkIGZvciBtb3JlIHByZWNpc2UgYW5kIHJlbGlhYmxlIGFuYWx5c2lzLiANCjIwMDBzOltNbnRuZ2ddW0V4dHJlbWVdIEluIHRoZSBlYXJseSAyMDAwcywgRGlkaWVyIEJlcnRob2Qgd2FzIHRoZSBiZXN0IGNyYWNrIGNsaW1iZXIgaW4gdGhlIHdvcmxkLCB0aGVuIGhlIGRyb3BwZWQgb3V0IG9mIGNsaW1iaW5nIGFuZCBlc3NlbnRpYWxseSBkaXNhcHBlYXJlZCBmcm9tIHRoZSB3b3JsZC4NCjIwMDBzOltSZWFsdHldIEVhcmx5IDIwMDBzOiBSZWFsIGVzdGF0ZSB3YXMgaW4gaXRzIGVhcmx5IHN0YWdlcyBpbiBJbmRpYSwgd2l0aCBncmFkdWFsIGdyb3d0aCBhbmQgZGV2ZWxvcG1lbnQuIA0KMjAwMHM6VGVhbXdvcmsgaXMgbm93IGFuIGludGVncmFsIHBhcnQgb2Ygb3JnYW5pemF0aW9uYWwgc3RyYXRlZ3ksIHdpdGggYSBncmVhdGVyIGVtcGhhc2lzIG9uIGN1c3RvbWl6YXRpb24sIHBlcnNvbmFsaXphdGlvbiwgYW5kIHN0cmF0ZWdpYyBpbnRlZ3JhdGlvbiBvZiB0ZWFtLWJ1aWxkaW5nIHByYWN0aWNlcy4gVGhlIHJpc2Ugb2YgdGVjaG5vbG9neSBoYXMgYWxzbyBpbmZsdWVuY2VkIHRlYW13b3JrLCB3aXRoIHJlbW90ZSB3b3JrIGJlY29taW5nIG1vcmUgcHJldmFsZW50IGFuZCBuZXcgdG9vbHMgZW1lcmdpbmcgdG8gZmFjaWxpdGF0ZSBjb2xsYWJvcmF0aW9uLiANCg0KMjAwMDpbVVNdW0dlb1BvbGl0aWNzXSBvdmVydGhyb3cgb2YgU2xvYm9kYW4gTWlsb8WhZXZpxIcuIChVUydzIGludm9sdmVtZW50IGluIHJlZ2ltZSBjaGFuZ2UpDQoyMDAwOiBbR2VvUG9saXRpY3NdW01pbGl0YXJ5XVtFY29ub21pY3NdIFRoZSBVUyBEb2xsYXIgaG9sZHMgYSA3MiUgc2hhcmUgb2YgYWxsIGdsb2JhbCBjdXJyZW5jeSByZXNlcnZlcyBbWzE2OjQyXShodHRwOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dllKcmkxZU5SeWMmdD0xMDAyKV0uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdIDI2IEFwcmlsIDIwMDA6IHRoZSBHZXJtYW4gdGVhbSBvcGVyYXRpbmcgdGhlIG1hc3Mgc3BlY3Ryb21ldGVyIG9uIE5BU0EncyBTdGFyZHVzdCBtaXNzaW9uIGFubm91bmNlZCB0aGUgZGV0ZWN0aW9uIG9mIHZlcnkgbGFyZ2Ugb3JnYW5pYyBtb2xlY3VsZXMgaW4gaW50ZXJzdGVsbGFyIHNwYWNlLiBOb25iaW9sb2dpY2FsIHNvdXJjZXMgZm9yIG9yZ2FuaWMgbW9sZWN1bGVzIHNvIGxhcmdlIGFyZSBub3Qga25vd24uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdMTkgT2N0b2JlciAyMDAwLCBhIHRlYW0gb2YgYmlvbG9naXN0cyBhbmQgYSBnZW9sb2dpc3QgYW5ub3VuY2VkIHRoZSByZXZpdmFsIG9mIGJhY3RlcmlhIHRoYXQgYXJlIDI1MCBtaWxsaW9uIHllYXJzIG9sZCwgc3RyZW5ndGhlbmluZyB0aGF0IGNhc2UgdGhhdCBiYWN0ZXJpYWwgc3BvcmVzIGNhbiBiZSBpbW1vcnRhbC4NCjEzIERlY2VtYmVyIDIwMDA6IGEgTkFTQSB0ZWFtIGRlbW9uc3RyYXRlZCB0aGF0IHRoZSBtYWduZXRvc29tZXMgaW4gTWFycyBtZXRlb3JpdGUgQUxIIDg0MDAxIGFyZSBiaW9sb2dpY2FsLg0KMjAwMDpbUmVzZWFyY2hdW1NwYWNlXSBNaWxlaWtvd3NreSBDLCBDdWNpbm90dGEgRkEsIFdpbHNvbiBKVywgR2xhZG1hbiBCLCBIb3JuZWNrIEcsIExpbmRlZ3JlbiBMLCBNZWxvc2ggSiwgUmlja21hbiBILCBWYWx0b25lbiBNLCBaaGVuZyBKUS4gTmF0dXJhbCB0cmFuc2ZlciBvZiB2aWFibGUgbWljcm9iZXMgaW4gc3BhY2UuIEljYXJ1cyAyMDAwLCAxNDU6Mzkx4oCTNDI3LiBbRE9JXSBbUHViTWVkXSBbR29vZ2xlIFNjaG9sYXJdDQoyMDAwOltTcGFjZVhdIFMvMjAwMCAoOTApIDEgTW9vbiBEaXNjb3ZlcmVyOiBXaWxsaWFtIEouIE1lcmxpbmUgT3JiaXRzOiA5MCBBbnRpb3BlIEFic29sdXRlIG1hZ25pdHVkZTogOS4wMg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gZGVtb25zdHJhdGVkIFNob3LigJlzIGFsZ29yaXRobSBvbiBhIDUtcXViaXQgTk1SIHF1YW50dW0gY29tcHV0ZXIsIGZhY3RvcmluZyB0aGUgbnVtYmVyIDE1Lg0KMjAwMDogQXQgYWdlIDE0IGFuZCBpbiBjbGFzcyA4dGgsIEFhcm9uIFN3YXJ0eiBiZWNhbWUgYSBtZW1iZXIgb2YgdGhlIHdvcmtpbmcgZ3JvdXAgdGhhdCBhdXRob3JlZCB0aGUgUlNTIDEuMCB3ZWIgc3luZGljYXRpb24gc3BlY2lmaWNhdGlvbi4NCjIwMDA6IE1ha2VteVRyaXANCjIwMDAgKEphbiAxNCk6W0phY2tdIEthaG8gTmFhLi4uIFB5YWFyIEhhaQ0KMjAwMCAoRmViKTogSW5kaWFuIFJhaWx3YXlzIHdlYiBzaXRlIGkuZS4gaHR0cDovL2luZGlhbnJhaWx3YXlzLmdvdi5pbi8gd2FzIGRlcGxveWVkIGJ5IENSSVMuDQoyMDAwIChNYXIpOltCb29rXSBNYWxjb2xtIEdsYWR3ZWxsJ3MgZGVidXQgYm9vaywgVGhlIFRpcHBpbmcgUG9pbnQ6IEhvdyBMaXR0bGUgVGhpbmdzIENhbiBNYWtlIGEgQmlnIERpZmZlcmVuY2UuIA0KQmxpbms6IFRoZSBQb3dlciBvZiBUaGlua2luZyBXaXRob3V0IFRoaW5raW5nICgyMDA1LCBKYW4gMTEpOyANCk91dGxpZXJzOiBUaGUgU3Rvcnkgb2YgU3VjY2VzcyAoMjAwOCwgTm92IDE4KTsgDQpXaGF0IHRoZSBEb2cgU2F3OiBBbmQgT3RoZXIgQWR2ZW50dXJlcyAoMjAwOSwgT2N0IDIwKTsgDQpEYXZpZCBhbmQgR29saWF0aDogVW5kZXJkb2dzLCBNaXNmaXRzLCBhbmQgdGhlIEFydCBvZiBCYXR0bGluZyBHaWFudHMgKDIwMTMsIE9jdCAxKQ0KVGFsa2luZyB0byBTdHJhbmdlcnM6IFdoYXQgV2UgU2hvdWxkIEtub3cgYWJvdXQgdGhlIFBlb3BsZSBXZSBEb24ndCBLbm93ICgyMDE5KQ0KMjAwMCAoQXByIDEpOltCb29rXSBSb2JlcnQgS2l5b3Nha2kgJiBTaGFyb24gTGVjaHRlcidzIFJpY2ggRGFkIFBvb3IgRGFkLg0KMjAwMCAoQXByIDEpOltUZWNobm9sb2d5XVtSZXNlYXJjaF0gIldoeSBUaGUgRnV0dXJlIERvZXNuJ3QgTmVlZCBVcyIgaXMgYW4gYXJ0aWNsZSB3cml0dGVuIGJ5IEJpbGwgSm95IGluIHRoZSBBcHJpbCAyMDAwIGlzc3VlIG9mIFdpcmVkIG1hZ2F6aW5lLiBJbiB0aGUgYXJ0aWNsZSwgaGUgYXJndWVzIHRoYXQgIk91ciBtb3N0IHBvd2VyZnVsIDIxc3QtY2VudHVyeSB0ZWNobm9sb2dpZXPigJRyb2JvdGljcywgZ2VuZXRpYyBlbmdpbmVlcmluZywgYW5kIG5hbm90ZWNo4oCUYXJlIHRocmVhdGVuaW5nIHRvIG1ha2UgaHVtYW5zIGFuIGVuZGFuZ2VyZWQgc3BlY2llcy4iIA0KMjAwMCAoSnVuIDI2KTpbTXVzaWNdICJZZWxsb3ciIGlzIGEgc29uZyBieSB0aGUgQnJpdGlzaCByb2NrIGJhbmQgQ29sZHBsYXkuIFRoZSBiYW5kIHdyb3RlIHRoZSBzb25nIGFuZCBjby1wcm9kdWNlZCBpdCB3aXRoIEJyaXRpc2ggcmVjb3JkIHByb2R1Y2VyIEtlbiBOZWxzb24gZm9yIHRoZWlyIGRlYnV0IGFsYnVtLCBQYXJhY2h1dGVzICgyMDAwKS4gVGhlIHNvbmcgd2FzIHJlY29yZGVkIGluIE1hcmNoIDIwMDAgYW5kIHJlbGVhc2VkIG9uIDI2IEp1bmUgdGhhdCBzYW1lIHllYXIuDQoyMDAwIChTZXApOiBBbWF6b24ncyBKZWZmIEJlem9zIGZvdW5kZWQuDQoyMDAwIChTZXApOltDcmltZV1bSW5kaWFdIENoaG90YSBTaGFrZWVsJ3MgYXR0YWNrIG9uIFJhamFuIGluIGhpcyBCYW5na29rIGhvdGVsIHJvb20uDQoyMDAwIChTZXApOiBSYWlsVGVsIENvcnBvcmF0aW9uIG9mIEluZGlhIEx0ZC4gZm91bmRlZCBhbmQgSFEnZCBhdCAxNDMsIEluc3RpdHV0aW9uYWwgQXJlYSwgU2VjdG9yLTQ0LCBHdXJnYW9uLCBIYXJ5YW5hLCBJbmRpYS4gSXQgaXMgYSBNaW5pcmF0bmEgZW50ZXJwcmlzZSBvZiBHb3Zlcm5tZW50IG9mIEluZGlhIGZvY3VzaW5nIG9uIHByb3ZpZGluZyBicm9hZGJhbmQgYW5kIFZQTiBzZXJ2aWNlcy4NCjIwMDAgKFNlcCAxNyk6IFtHZW9Qb2xpdGljc10gVGhlIGlkZWEgb2YgYW4gQXNpYSBDb29wZXJhdGlvbiBEaWFsb2d1ZSAoQUNEKSB3YXMgcmFpc2VkIGF0IHRoZSBGaXJzdCBJbnRlcm5hdGlvbmFsIENvbmZlcmVuY2Ugb2YgQXNpYW4gUG9saXRpY2FsIFBhcnRpZXMgKGhlbGQgaW4gTWFuaWxhIGJldHdlZW4gMTfigJMyMCBTZXB0ZW1iZXIgMjAwMCkgYnkgU3VyYWtpYXJ0IFNhdGhpcmF0aGFpLCB0aGVuIGRlcHV0eSBsZWFkZXIgb2YgdGhlIG5vdyBkZWZ1bmN0IFRoYWkgUmFrIFRoYWkgUGFydHksIG9uIGJlaGFsZiBvZiBoaXMgcGFydHkgbGVhZGVyLCBUaGFrc2luIFNoaW5hd2F0cmEsIHRoZW4gUHJpbWUgTWluaXN0ZXIgb2YgVGhhaWxhbmQuIEl0IHdhcyBzdWdnZXN0ZWQgdGhhdCBBc2lhIGFzIGEgY29udGluZW50IHNob3VsZCBoYXZlIGl0cyBvd24gZm9ydW0gdG8gZGlzY3VzcyBBc2lhLXdpZGUgY29vcGVyYXRpb24uIEFmdGVyd2FyZHMsIHRoZSBpZGVhIG9mIHRoZSBBQ0Qgd2FzIGZvcm1hbGx5IHB1dCBmb3J3YXJkIGR1cmluZyB0aGUgMzR0aCBBU0VBTiBGb3JlaWduIE1pbmlzdGVycyBNZWV0aW5nIGluIEhhbm9pLCAyM+KAkzI0IEp1bHkgMjAwMSBhbmQgYXQgdGhlIEFTRUFOIEZvcmVpZ24gTWluaXN0ZXJzIFJldHJlYXQgaW4gUGh1a2V0LCAyMOKAkzIxIEZlYnJ1YXJ5IDIwMDIuDQoyMDAwIChPY3QgNCk6W011c2ljXSBGb3JtZWQgaW4gMTk5NiwgTGlua2luIFBhcmsgcm9zZSB0byBpbnRlcm5hdGlvbmFsIGZhbWUgd2l0aCB0aGVpciBkZWJ1dCBzdHVkaW8gYWxidW0sIEh5YnJpZCBUaGVvcnkuIEZvdXIgc2luZ2xlcyB3ZXJlIHJlbGVhc2VkIGZyb20gSHlicmlkIFRoZW9yeTogIk9uZSBTdGVwIENsb3NlciIsICJJbiB0aGUgRW5kIiwgIkNyYXdsaW5nIiBhbmQgIlBhcGVyY3V0IiwgYWxsIG9mIHRoZW0gYmVpbmcgcmVzcG9uc2libGUgZm9yIGxhdW5jaGluZyBMaW5raW4gUGFyayBpbnRvIG1haW5zdHJlYW0gcG9wdWxhcml0eS4gV2hpbGUgIkluIHRoZSBFbmQiIHdhcyB0aGUgbW9zdCBzdWNjZXNzZnVsIG9mIHRoZSBmb3VyLCBhbGwgb2YgdGhlIHNpbmdsZXMgaW4gdGhlIGFsYnVtIHJlbWFpbiBzb21lIG9mIHRoZSBiYW5kJ3MgbW9zdCBzdWNjZXNzZnVsIHNvbmdzIHRvIGRhdGUuDQoyMDAwIChOb3YgOSk6IGZvcm1hdGlvbiBvZiBVdHRhcmFraGFuZCBhcyBVdHRhcmFuY2hhbCAyMDAwIChKdW4gOSk6IEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQWN0LCAyMDAwLiBUaGUgYmlsbCB3YXMgcGFzc2VkIGluIHRoZSBidWRnZXQgc2Vzc2lvbiBvZiAyMDAwIGFuZCBzaWduZWQgYnkgUHJlc2lkZW50IEsuIFIuIE5hcmF5YW5hbiBvbiA5IE1heSAyMDAwLiBUaGUgYmlsbCB3YXMgZmluYWxpc2VkIGJ5IGdyb3VwIG9mIG9mZmljaWFscyBoZWFkZWQgYnkgdGhlbiBNaW5pc3RlciBvZiBJbmZvcm1hdGlvbiBUZWNobm9sb2d5LCBQcmFtb2QgTWFoYWphbi4NCjIwMDA6IGZvcm1hdGlvbiBvZg0KMjAwMDogSmFpc2gtZS1Nb2hhbW1lZCAobGl0ZXJhbGx5ICJUaGUgQXJteSBvZiBNdWhhbW1hZCIsIEplTSkgZm91bmRlZCBhdCBCYWhhd2FscHVyLCBQdW5qYWIsIFBha2lzdGFuLg0KMjAwMDogQ2hpbmEncyBCZWlEb3UgbmF2aWdhdGlvbiB0ZXN0IHN5c3RlbSBzdGFydHMuDQoyMDAwOiBGaXNlcnYgaGFkIGFjcXVpcmVkIG1vcmUgdGhhbiA5MCBidXNpbmVzc2VzLiBUaGUgbnVtYmVyIG9mIGVtcGxveWVlcyBncmV3IGZyb20gMjY0IHRvIDE0LDAwMC4gRmlzZXJ2IHdhcyBhbiBpbmR1c3RyeSBsZWFkZXIsIHdpdGggcmV2ZW51ZSB0aGF0IGluY3JlYXNlZCBmcm9tICQyMSBtaWxsaW9uIHRvICQxLjQgYmlsbGlvbiBpbiAxNSB5ZWFycy4NCjIwMDAgKERlYyA4KTpbR2FtaW5nXSBQcm9qZWN0IEkuRy5JLiBpcyBhIHRhY3RpY2FsIGZpcnN0LXBlcnNvbiBzaG9vdGVyIHZpZGVvIGdhbWUuIEl0IHdhcyBkZXZlbG9wZWQgYnkgSW5uZXJsb29wIFN0dWRpb3MgYW5kIHJlbGVhc2VkIGluIERlY2VtYmVyIDIwMDAgYnkgRWlkb3MgSW50ZXJhY3RpdmUuIFRoZSBnYW1lIHJlY2VpdmVkIG1peGVkIHJldmlld3MgZHVlIHRvIHNob3J0Y29taW5ncyBpbmNsdWRpbmcgYSBwb29ybHkgcHJvZ3JhbW1lZCBBLkkuLCBsYWNrIG9mIGEgbWlkLWdhbWUgc2F2ZSBvcHRpb24sIGFuZCB0aGUgbGFjayBvZiBtdWx0aXBsYXllciBmZWF0dXJlcy4gSG93ZXZlciBpdCB3YXMgcHJhaXNlZCBmb3IgaXRzIHNvdW5kIGRlc2lnbiBhbmQgZ3JhcGhpY3MsIHRoYW5rcyBpbiBwYXJ0IHRvIGl0cyB1c2Ugb2YgYSBwcm9wcmlldGFyeSBnYW1lIGVuZ2luZSB0aGF0IHdhcyBwcmV2aW91c2x5IHVzZWQgaW4gSW5uZXJsb29wJ3MgSm9pbnQgU3RyaWtlIEZpZ2h0ZXIuDQoyMDAwIChEZWMgMjEpOltKYWNrXSBSYWp1IENoYWNoYSByZWxlYXNlZC4NCjIwMDA6IFtCdXNpbmVzc11bRmluYW5jZV1bQ29ycG9yYXRlXVtJbmRpYV0gUklMIHBpbG90ZWQgd29ybGQncyBsYXJnZXN0IHBldHJvbGV1bSByZWZpbmVyeSBhdCBKYW1uYWdhciwgR3VqYXJhdCwgcmVmaW5pbmcgMS4yNE1uIGJhcnJlbHMvZGF5Lg0KMjAwMDpbQ3JpbWVdW0luZGlhXSBQb2xpY2UgZW5jb3VudGVycyBpbiBNdW1iYWkuIE1vc3QgY3JpbWluYWxzIGZsZWVpbmcgdG8gQ2FsY3VsdHRhLiBBZnRhYiBCaGF0a2kgZGVzdGFiaWxpc2UgdGhlIGVjb25vbXkgYnkgc3ByZWFkaW5nIGZha2UgY3VycmVuY3kgbm90ZXMgcHJpbnRlZCBieSBJU0kgZnVuY3Rpb25hcmllcywgYW5kIHR3bywgc2VuZCBtZXJjZW5hcmllcyB0byBjb25kdWN0IGFiZHVjdGlvbnMgYW5kIHRlcnJvcmlzdCBhdHRhY2tzLg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBUZWNobmljYWwgVW5pdmVyc2l0eSBvZiBNdW5pY2ggKDUgcXViaXQpOyBMb3MgQWxhbW9zIE5hdGlvbmFsIExhYiAoNyBxdWJpdHMpDQoyMDAwOkluIDIwMDAsIFRhdGEgVGVhIGFjcXVpcmVkIHRoZSBUZXRsZXkgVGVhIENvbXBhbnkgZm9yICQ0MDcgbWlsbGlvbi4gT3RoZXIgbm90YWJsZSBhY3F1aXNpdGlvbnMgaW5jbHVkZSBOYXRTdGVlbCAoMjAwNCksIEJydW5uZXIgTW9uZCAoMjAwNSksIGFuZCBFaWdodCBPJ0Nsb2NrIENvZmZlZSAoMjAwNikuIA0KMjAwMDogQmlybGEgYWNxdWlyZWQgSW5kaWFuIEFsdW1pbnVtIENvbXBhbnkgKElOREFMKS4gDQoyMDAwOiBTYXR5YSBOYXJheWFuYSBHb2Vua2Egd29ya2VkIGFzIGFuIGludGVybmF0aW9uYWwgYnVzaW5lc3NtYW4gYmFzZWQgaW4gTXlhbm1hciBhbmQgSW5kaWEgZm9yIGEgbGFyZ2UgcGFydCBvZiBoaXMgbGlmZS4gSGUgd2FzIGEga2V5bm90ZSBzcGVha2VyIG9uIHRoZSBzdWJqZWN0IG9mIFNwaXJpdHVhbGl0eSBpbiBCdXNpbmVzcyBhdCB0aGUgMzB0aCBXb3JsZCBFY29ub21pYyBGb3J1bSBpbiBEYXZvcywgU3dpdHplcmxhbmQgYmV0d2VlbiAyNiBKYW4gYW5kIDIgRmViIDIwMDAuIFR3byB5ZWFycyBsYXRlciBoZSBjb25kdWN0ZWQgdGhlIGZpcnN0IDEwLWRheSBjb3Vyc2UgaW4gVmlwYXNzYW5hIE1lZGl0YXRpb24gZXNwZWNpYWxseSBmb3IgYnVzaW5lc3MgZXhlY3V0aXZlcyBhbmQgZ292ZXJubWVudCBvZmZpY2lhbHMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAyMjUgeWVhcnMgb2YgSW5kZXBlbmRlbnQgVVNBIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIA0KDQoyMDAxOltVU11bR2VvUG9saXRpY3NdIGludmFzaW9uIG9mIEFmZ2hhbmlzdGFuLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMjAwMTpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgU2hhbmdoYWkgQ29vcGVyYXRpb24gT3JnYW5pc2F0aW9uIChTQ08pIGlzIGEgRXVyYXNpYW4gcG9saXRpY2FsLCBlY29ub21pYywgaW50ZXJuYXRpb25hbCBzZWN1cml0eSBhbmQgZGVmZW5jZSBvcmdhbml6YXRpb24gb2YgdGVuIG1lbWJlciBzdGF0ZXMuIEl0IHdhcyBlc3RhYmxpc2hlZCBpbiAyMDAxIGJ5IHRoZSBQZW9wbGUncyBSZXB1YmxpYyBvZiBDaGluYSwgS2F6YWtoc3RhbiwgS3lyZ3l6c3RhbiwgUnVzc2lhLCBhbmQgVGFqaWtpc3RhbiBhbmQgVXpiZWtpc3Rhbi4gSW4gSnVuZSAyMDE3LCBpdCBleHBhbmRlZCB0byBlaWdodCBzdGF0ZXMsIHdpdGggSW5kaWEgYW5kIFBha2lzdGFuLiBJcmFuIGpvaW5lZCB0aGUgZ3JvdXAgaW4gSnVseSAyMDIzLCBhbmQgQmVsYXJ1cyBpbiBKdWx5IDIwMjQuIFNldmVyYWwgY291bnRyaWVzIGFyZSBlbmdhZ2VkIGFzIG9ic2VydmVycyBvciBkaWFsb2d1ZSBwYXJ0bmVycy4gRm91bmRlcnM6IENoaW5hLCBSdXNzaWEsIEthemFraHN0YW4sIFV6YmVraXN0YW4sIEt5cmd5enN0YW4sIFRhamlraXN0YW47IEhlYWRxdWFydGVyczogQmVpamluZywgQ2hpbmE7IEZvdW5kZWQ6IDE1IEp1bmUgMjAwMQ0KMjAwMTpbQnVzaW5lc3NdIDIwMDHigJMyMDA1OiBIRlQgZXhlY3V0aW9uIHRpbWVzIGRlY3JlYXNlZCBmcm9tIHNldmVyYWwgc2Vjb25kcyB0byBtaWxsaXNlY29uZHMuIChIRlQpDQoyMDAxOltDb21wdXRpbmddW1F1YW50dW1dICBJQk0gaW1wbGVtZW50ZWQgR3JvdmVy4oCZcyBhbGdvcml0aG0gb24gYSA3LXF1Yml0IE5NUiBxdWFudHVtIGNvbXB1dGVyLCBmaW5kaW5nIGEgbWFya2VkIGl0ZW0gaW4gYSBkYXRhYmFzZSBvZiA0IGVudHJpZXMuDQoyMDAxOiBMaWZlIG9mIFBpIGlzIGEgQ2FuYWRpYW4gcGhpbG9zb3BoaWNhbCBub3ZlbCBieSBZYW5uIE1hcnRlbCBwdWJsaXNoZWQuIFRoZSBwcm90YWdvbmlzdCBpcyBQaXNjaW5lIE1vbGl0b3IgIlBpIiBQYXRlbCwgYW4gSW5kaWFuIGJveSBmcm9tIFBvbmRpY2hlcnJ5IHdobyBleHBsb3JlcyBpc3N1ZXMgb2Ygc3Bpcml0dWFsaXR5IGFuZCBtZXRhcGh5c2ljcyBmcm9tIGFuIGVhcmx5IGFnZS4gSGUgc3Vydml2ZXMgMjI3IGRheXMgYWZ0ZXIgYSBzaGlwd3JlY2sgd2hpbGUgc3RyYW5kZWQgb24gYSBsaWZlYm9hdCBpbiB0aGUgUGFjaWZpYyBPY2VhbiB3aXRoIGEgQmVuZ2FsIHRpZ2VyIHdoaWNoIHJhaXNlcyBxdWVzdGlvbnMgYWJvdXQgdGhlIG5hdHVyZSBvZiByZWFsaXR5IGFuZCBob3cgaXQgaXMgcGVyY2VpdmVkIGFuZCB0b2xkLjtTZXZlbiBTdG9yaWVzICgxOTkzKQ0KMjAwMTpbQ3JpbWVdW0luZGlhXSBDaGhvdGEgUmFqYW4ncyBhc3NvY2lhdGVzIHRyYWNrZWQgZG93biBhbmQgc2hvdCBkZWFkIGhvdGVsaWVyIFZpbm9kIGluIE11bWJhaSwgYXMgd2VsbCBhcyBTdW5pbCBTb2FucyDigJMgYW5vdGhlciBEYXdvb2QgYXNzb2NpYXRlLg0KMjAwMSAoSmFuIDEpOltCb29rXSBHcmVnIE1jS2Vvd24ncyBFc3NlbnRpYWxpc206IFRoZSBEaXNjaXBsaW5lZCBQdXJzdWl0IG9mIExlc3MNCjIwMDEgKEphbiAxKTpbQm9va10gQnJpYW4gVHJhY3kncyBFYXQgVGhhdCBGcm9nIQ0KMjAwMTogVGhlIEFyZHVpbm8gcHJvamVjdCBzdGFydGVkIGF0IHRoZSBJbnRlcmFjdGlvbiBEZXNpZ24gSW5zdGl0dXRlIEl2cmVhIChJRElJKSBpbiBJdnJlYSwgSXRhbHkuIEF0IHRoYXQgdGltZSwgdGhlIHN0dWRlbnRzIHVzZWQgYSBCQVNJQyBTdGFtcCBtaWNyb2NvbnRyb2xsZXIgYXQgYSBjb3N0IG9mICQxMDAsIGEgY29uc2lkZXJhYmxlIGV4cGVuc2UgZm9yIG1hbnkgc3R1ZGVudHMuDQoyMDAxIChBcHIgNHRoKTogQ2hhcmxlcyBNLiBWZXN0LCB0aGUgdGhlbiBQcmVzaWRlbnQgb2YgTUlUIGFubm91bmNlZCBPcGVuQ291cnNlV2FyZSAoT0NXKSBwdWJsaWNpemluZyBhbGwgb2YgaXRzIDIsMDAwIGNvdXJzZXMgIGF0IHRoZSBlc3RpbWF0ZWQgY29zdCBvZiAkMTAwIG1pbGxpb24gKG9uIGFuIGF2Zy4sIGEgTUlUIHN0dWRlbnRzIHBheXMgYXJvdW5kICQyNiwwMDAgYXMgb2ZmbGluZSB0dWl0aW9uIGZlZSkNCjIwMDE6IFVTIGludmFkZWQgQWZnaGFuaXN0YW4gaW4gcmVzcG9uc2UgdG8gOS8xMSBhdHRhY2tzLiBPZmZpY2lhbGx5LCBJdCBoYXMgYmVjb21lIHRoZSBsb25nZXN0IHdhciBpbiBBbWVyaWNhbiBoaXN0b3J5Lg0KMjAwMTogaVBvZCBieSBUb255IEZhZGVsbA0KMjAwMSAoSnVuIDE1KTpbSmFja10gR2FkYXI6IEVrIFByZW0gS2F0aGE7IExhZ2FhbjogT25jZSBVcG9uIGEgVGltZSBpbiBJbmRpYQ0KMjAwMSAoU2VwIDExKTogOS8xMSBUZXJyb3Jpc3QgYXR0YWNrcy4gVGhlIFNlcHRlbWJlciAxMSBvciA5LzExLCBhdHRhY2tzIHdlcmUgYSBzZXJpZXMgb2YgZm91ciBjb29yZGluYXRlZCB0ZXJyb3Jpc3QgYXR0YWNrcyBieSB0aGUgSXNsYW1pYyB0ZXJyb3Jpc3QgZ3JvdXAgYWwtUWFlZGEgb24gdGhlIFVuaXRlZCBTdGF0ZXMgb24gdGhlIG1vcm5pbmcgb2YgVHVlc2RheSwgU2VwIDExLiBUaGUgbG9zcyBvZiBsaWZlIHdhcyBlc3RpbWF0ZWQgYXQganVzdCB1bmRlciAzLDAwMC4gVGhlIGV2ZW50IGNoYW5nZWQgQW1lcmljYW4gZm9yZWlnbiBwb2xpY3kuIEl0IHdhcyBhIG1vdGl2YXRpbmcgZmFjdG9yIGJlaGluZCB0aGUgY29udHJvdmVyc2lhbCBpbnZhc2lvbiBvZiBJcmFxIGFuZCBsZWQgdG8gYSDigJh3YXIgb24gdGVycm9y4oCZIHN5bWJvbGlzZWQgYnkgR3VhbnRhbmFtbyBCYXkgYW5kIGEgZGViYXRlIG92ZXIgdGhlIGp1c3RpZmljYXRpb24gb2YgdG9ydHVyZS4NCjIwMDEgKE9jdCA3KTpbR2VvUG9saXRpY3NdIFVuaXRlZCBTdGF0ZXMgaW52YXNpb24gb2YgQWZnaGFuaXN0YW46IEluIGxhdGUgMjAwMSwgdGhlIFVuaXRlZCBTdGF0ZXMgYW5kIGl0cyBjbG9zZSBhbGxpZXMgaW52YWRlZCBBZmdoYW5pc3RhbiBhbmQgdG9wcGxlZCB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50LiBUaGUgaW52YXNpb24ncyBzdGF0ZWQgYWltcyB3ZXJlIHRvIGRpc21hbnRsZSBhbC1RYWVkYSwgd2hpY2ggaGFkIGV4ZWN1dGVkIHRoZSBTZXB0ZW1iZXIgMTEgYXR0YWNrcywgYW5kIHRvIGRlbnkgaXQgYSBzYWZlIGJhc2Ugb2Ygb3BlcmF0aW9ucyBpbiBBZmdoYW5pc3RhbiBieSByZW1vdmluZyB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50IGZyb20gcG93ZXIuIERlYyA3LCAyMDAxIG9ud2FyZCBzdGFydGVkIFdhciBpbiBBZmdoYW5pc3Rhbi4NCjIwMDEgKE9jdCAxNik6W0Jvb2tdIE1jS2luc2V5IFJlc2VhcmNoZXIgSmFtZXMgQy4gQ29sbGlucycgR29vZCBUbyBHcmVhdDogV2h5IFNvbWUgQ29tcGFuaWVzIE1ha2UgdGhlIExlYXAuLi5BbmQgT3RoZXJzIERvbid0OyANCjIwMDEgKE5vdik6W0NyaW1lXVtJbmRpYV0gQWJkdWwgR2FmZmFyIGFsaWFzIENoaWtuYSBHYWZmYXIgY2F1Z2h0IGJ5IHRoZSBkZXRlY3RpdmUgZGVwYXJ0bWVudCBpbiBDYWxjdXR0YSANCjIwMDEgKEphbiAyKTogVGhlIG5vcnRoZXJuIGVsZWN0cmljYWwgZ3JpZCBjb2xsYXBzZWQgaW4gSW5kaWEuIEEgZmF1bHQgaW4gdGhlIHRyYW5zbWlzc2lvbiBzeXN0ZW0gaW4gdGhlIHN0YXRlIG9mIFV0dGFyIFByYWRlc2ggbGVkIHRvIGNhc2NhZGluZyBmYWlsdXJlIHRocm91Z2hvdXQgbm9ydGhlcm4gSW5kaWEgYWZmZWN0aW5nIDIzIGNyb3JlIHJlc2lkZW50cy4NCjIwMDE6IElWUlMgKCdJbnRlcmFjdGl2ZSBWb2ljZSBSZXNwb25zZSBTeXN0ZW0nKSBmb3IgdGVsZXBob25pYyBlbnF1aXJpZXMgYWJvdXQgdHJhaW5zIGludHJvZHVjZWQgaW4gc29tZSBzdGF0aW9ucy4NCjIwMDE6IE1hZGVFYXN5IGluY29ycG9yYXRlZCBhdCA0NC1BLzEsIEthbHUgU2FyYWksIE5lYXIgSGF1eiBLaGFzIE1ldHJvIFN0YXRpb24sIE5ldyBEZWxoaS0xMTAwMTYNCjIwMDE6IEFjYyB0byAyMDAxIGNlbnN1cywgMzAgbGFraHMgd2VyZSBpbW1pZ3JhdGVkIHRvIEluZGlhIGZyb20gQmFuZ2xhZGVzaCBhbG9uZSwgZm9sbG93ZWQgYnkgMTAgbGFraHMgZnJvbSBQYWtpc3RhbiBhbmQgNiBsYWtocyBmcm9tIE5lcGFsLg0KMjAwMSAoRGVjIDEzKTpbQ3JpbWVdW0luZGlhXSBUZXJyb3Jpc3QgYXR0YWNrIG9uIEluZGlhJ3MgUGFybGlhbWVudC4NCjIwMDE6IHRoZSBjdXN0b21lciBiYXNlIG9mIG1vYmlsZSBwaG9uZSBjb21wYW5pZXMgd2FzIDQgbWlsbGlvbi4NCjIwMDE6IEJlbmVmaXQgbGFubmVycywgVGV4YXMgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBIZWFsdGggQmVuZWZpdCBkaXZpc2lvbi4NCjIwMDE6IE5ldyBIb3Jpem9ucyB3YXMgaW5pdGlhbGx5IHNlbGVjdGVkIGZvciBmdW5kaW5nIGluIDIwMDEgYnV0IHdhcyBleGNsdWRlZCBmcm9tIHRoZSBOQVNBIDIwMDMgYnVkZ2V0LiBGdW5kaW5nIGZvciB0aGUgbWlzc2lvbiB3YXMgcmVpbnN0YXRlZCBhZnRlciBOZXcgSG9yaXpvbnMgd2FzIGxpc3RlZCBhcyBhIHRvcCBwcmlvcml0eSBpbiB0aGUgUGxhbmV0YXJ5IFNjaWVuY2UgRGVjYWRhbCBTdXJ2ZXkgb2YgMjAwM+jjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlallkllklklklklklklklklklklklklklklklklklklklklklklklklklklklkjjajlkasjdlajdlkajdlaj
+KAkzIwMDEuDQoxOTkzOiBBc2hvayBIYWxsIEdpcmwncyBSZXNpZGVudGlhbCBTY2hvb2wsIE1hamtoYWxpLg0KMTk5MzogQnkgdGhpcyB5ZWFyIHRoZXJlIHdlcmUgYXJvdW5kIDEwMCB3ZWItc2VydmVycyBhY3Jvc3MgdGhlIHdvcmxkLiAoQSByZXBvcnQgcHVibGlzaGVkIGluIGZpcnN0IGlzc3VlIG9mIFRoZSBXb3JsZCBXaWRlIFdlYiBOZXdzbGV0dGVyLCAxOTkzKQ0KMTk5MzogQUMgMy10aWVyIGNvYWNoZXMgJiBTbGVlcGVyIGNsYXNzIGFyZSBpbnRyb2R1Y2VkIGFwYXJ0IGZyb20gc2Vjb25kIGNsYXNzLg0KMTk5MzogR29JJ3MgRGlzdHJpY3QgUHJpbWFyeSBFZHVjYXRpb24gUHJvZ3JhbW1lIChEUEVQKSB3YXMgbGF1bmNoZWQsIHdpdGggYW4gYWltIG9mIGFjaGlldmluZyB0aGUgb2JqZWN0aXZlIG9mIHVuaXZlcnNhbCBwcmltYXJ5IGVkdWNhdGlvbi4gVGhpcyBwcm9ncmFtbWVkIGxhaWQgdGhlIGZvdW5kYXRpb25zIGZvciDgpLjgpLDgpY3gpLUg4KS24KS/4KSV4KWN4KS34KS+IOCkheCkreCkv+Ckr+CkvuCkqChFZHVjYXRpb24gZm9yIEFsbCBNb3ZlbWVudCkgYWltZWQgYXQgdGhlIHVuaXZlcnNhbGlzYXRpb24gb2YgZWxlbWVudGFyeSBlZHVjYXRpb24gbWFraW5nIGZyZWUgYW5kIGNvbXB1bHNvcnkgZWR1Y2F0aW9uIHRvIGNoaWxkcmVuIGJldHdlZW4gdGhlIGFnZXMgb2YgNiB0byAxNC4NCjE5OTM6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIHNwbGl0IHdpdGggRGF3b29kIGFuZCBmb3JtZWQgYW4gaW5kZXBlbmRlbnQgZ2FuZyB0aGF0IGZyZXF1ZW50bHkgY2xhc2hlZCB3aXRoIERhd29vZCdzIEQtQ29tcGFueS4NCjE5OTMgKEphbiA3KTpbQ3JpbWVdIFJpb3RzIHJlLXN0YXJ0ZWQgaW4gTXVtYmFpIGFuZCBsYXN0ZWQgZm9yIDIwIGRheXMuIFRoZSBJU0ksIHdoaWNoIGNvbnRyb2xsZWQgc2hpcHBpbmcgcm91dGVzIGZyb20gdGhlIEd1bGYgdG8gSW5kaWEncyB3ZXN0IGNvYXN0LCBkZW1hbmRlZCB0aGF0IHRoZSBtYWZpYSB0cmFuc3BvcnQgd2VhcG9ucyBhbmQgZXhwbG9zaXZlcyBpbnRvIEluZGlhIGluIHJldHVybiBmb3IgdGhlIHVzZSBvZiBQYWtpc3RhbidzIHdhdGVycy4gRGF3b29kIG1ldCB0aGVpciBJU0kgaGFuZGxlcnMgaW4gYSA1IHN0YXIgaG90ZWwgb2YgRHViYWkgaW4gSmFuIG9yIEZlYiBvZiAxOTkzLCB0aGVuIGNhbWUgdGhlIFJEWCB0aHJvdWdoIHRoZSBzYW1lIHBvcm91cyBhbmQgdW5jaGVja2VkIHNlYSByb3V0ZSB0aGF0IDI2LzExIGF0dGFja2VycyBzbGlwcGVkIGFjcm9zcyBhbmQgd3JlY2tlZCBtYXloZW0gaW4gTXVtYmFpLiBUaGUg4oCZOTMgYXR0YWNrcyB3ZXJlIGZpbmFsbHkgZXhlY3V0ZWQgaW4gbWFyY2ggdGhhdCBjbGFpbWVkIHNvbWUgMzAwIGlubm9jZW50IGxpdmVzLg0KMTk5MyAoTWFyIDYpOltQb2xpdHldW0luZGlhXSBTaGFyYWQgUGF3YXIgcmUtZWxlY2V0ZCBhcyBDTSBvZiBNSCBmb3IgMiB5ZWFycy4NCjE5OTMgKE1hciAxMik6W0NyaW1lXSBUaGUgMTk5MyBCb21iYXkgYm9tYmluZ3Mgd2VyZSBhIHNlcmllcyBvZiAxMiB0ZXJyb3Jpc3QgYm9tYmluZ3MgdGhhdCB0b29rIHBsYWNlIGluIEJvbWJheS4gVGhlIHNpbmdsZS1kYXkgYXR0YWNrcyByZXN1bHRlZCBpbiAyNTcgZmF0YWxpdGllcyBhbmQgMSw0MDAgaW5qdXJpZXMuIFRoZXJlIHdhcyBhbm90aGVyIHJhaWQgbmVhciBNYW5pc2ggbWFya2V0IHdoZXJlIGhhbmQgZ3JlbmFkZXMgd2VyZSByZWNvdmVyZWQuIEFmdGVyIGFub3RoZXIgdGlwIG9mZiBsZWQgdG8gZGlzY292ZXJ5IG9mIGEgaHVnZSBxdWFudGl0eSBvZiBSRFggZnJvbSBOYWdsYSBCdW5kZXIgb2ZmIEdob2RidW5kZXIgUm9hZCBpbiBUaGFuZS4g4oCcSW4gYWxsLCA1LDAwMCBraWxvZ3JhbXMgb2YgUkRYIHdhcyBicm91Z2h0IGludG8gTXVtYmFpIGFuZCB3ZSByZWNvdmVyZWQgMywzMDAga2lsb2dyYW1zIG9mIGl0IGluIGFsbCB0aGUgcmFpZHMs4oCdIHNheXMgQ2hhdWd1bGUuIFJlZHVjZWQgU2hvY2sgU2Vuc2l0aXZpdHkgKFJTUykgZXhwbG9zaXZlcywgc3VjaCBhcyBSU1MtUkRYLCB3aGljaCBjb3N0cyBhYm91dCBScy4gMSw1MDAtMiwwMDAgcGVyIGtnLiBBbmVlcyBjb250aW51ZWQgb3BlcmF0aW9uIG9mIEQtQ29tcGFueSB3aGljaCBpbmNsdWRlIGNvbnRyYWN0IGtpbGxpbmcsIGV4dG9ydGlvbiwgdGhlIGNpcmN1bGF0aW9uIG9mIGNvdW50ZXJmZWl0IGN1cnJlbmN5LCBhbmQgdGhlIHByb3Zpc2lvbiBvZiBhIHJhbmdlIG9mIGZyZWUtbGFuY2Ugc2VydmljZXMgdG8gdGVycm9yaXN0IGdyb3VwcyBhdCB0aGUgaW5zdGFuY2Ugb2YgUGFraXN0YW4ncyBJbnRlciBTZXJ2aWNlcyBJbnRlbGxpZ2VuY2UgKElTSSkuIEludGVycG9sIFJlZCBDb3JuZXIgbm90aWNlIGZvciBELUNvbXBhbnkuDQoxOTkzIChOb3YgMSk6IFRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGZvdW5kZWQuIEl0IGlzIGFuIGVjb25vbWljIGFuZCBwb2xpdGljYWwgcGFydG5lcnNoaXAgaW52b2x2aW5nIDI4IEV1cm9wZWFuIGNvdW50cmllcy4gSXQgYmVnYW4gYWZ0ZXIgV1cyIHRvIGZvc3RlciBlY29ub21pYyBjby1vcGVyYXRpb24sIHdpdGggdGhlIGlkZWEgdGhhdCBjb3VudHJpZXMgd2hpY2ggdHJhZGUgdG9nZXRoZXIgYXJlIG1vcmUgbGlrZWx5IHRvIGF2b2lkIGdvaW5nIHRvIHdhciB3aXRoIGVhY2ggb3RoZXIuDQoxOTkzIChOb3YgMyk6IFtHZW9Qb2xpdGljc10gVGhlIENvbW1vbiBNYXJrZXQgZm9yIEVhc3Rlcm4gYW5kIFNvdXRoZXJuIEFmcmljYSAoQ09NRVNBKSBpcyBhIHJlZ2lvbmFsIGVjb25vbWljIGNvbW11bml0eSBpbiBBZnJpY2Egd2l0aCB0d2VudHktb25lIG1lbWJlciBzdGF0ZXMgc3RyZXRjaGluZyBmcm9tIFR1bmlzaWEgdG8gRXN3YXRpbmkuIENPTUVTQSB3YXMgZm9ybWVkIGluIERlY2VtYmVyIDE5OTQsIHJlcGxhY2luZyBhIFByZWZlcmVudGlhbCBUcmFkZSBBcmVhIHdoaWNoIGhhZCBleGlzdGVkIHNpbmNlIDE5ODEuIE5pbmUgb2YgdGhlIG1lbWJlciBzdGF0ZXMgZm9ybWVkIGEgZnJlZSB0cmFkZSBhcmVhIGluIDIwMDAgKERqaWJvdXRpLCBFZ3lwdCwgS2VueWEsIE1hZGFnYXNjYXIsIE1hbGF3aSwgTWF1cml0aXVzLCBTdWRhbiwgWmFtYmlhIGFuZCBaaW1iYWJ3ZSksIHdpdGggUndhbmRhIGFuZCBCdXJ1bmRpIGpvaW5pbmcgdGhlIEZUQSBpbiAyMDA0LCB0aGUgQ29tb3JvcyBhbmQgTGlieWEgaW4gMjAwNiwgU2V5Y2hlbGxlcyBpbiAyMDA5IGFuZCBUdW5pc2lhIGFuZCBTb21hbGlhIGluIDIwMTguDQoxOTkzIChEZWMgMjApOiBPSENIUiBmb3JtZWQuIFRoZSBPZmZpY2Ugb2YgdGhlIFVuaXRlZCBOYXRpb25zIEhpZ2ggQ29tbWlzc2lvbmVyIGZvciBIdW1hbiBSaWdodHMgKE9IQ0hSKSwgYSBVbml0ZWQgTmF0aW9ucyBhZ2VuY3kgdGhhdCB3b3JrcyB0byBwcm9tb3RlIGFuZCBwcm90ZWN0IHRoZSBodW1hbiByaWdodHMgdGhhdCBhcmUgZ3VhcmFudGVlZCB1bmRlciBpbnRlcm5hdGlvbmFsIGxhdyBhbmQgc3RpcHVsYXRlZCBpbiB0aGUgVW5pdmVyc2FsIERlY2xhcmF0aW9uIG9mIEh1bWFuIFJpZ2h0cyBvZiAxOTQ4Lg0KMTk5Mzp0aGUgMjR0aCBhbmQgbGFzdCBHTE9OQVNTIHNhdGVsbGl0ZSB3YXMgbGF1bmNoZWQgZm9ybWluZyB0aGUgd2hvbGUgbmF2aWdhdGlvbiBjb25zdGVsbGF0aW9uIHNpbWlsYXIgdG8gdGhhdCBvZiBVUydzIEdQUy4NCjE5OTM6IFNIQS0wIChhIGhhc2ggZnVuY3Rpb24pIHdhcyBwcm9wb3NlZCBieSBOSVNULCBNYXJ5bGFuZCwgVVNBIChGb3VuZGVkOiAxOTAxKS4gSXQgcHJvZHVjZXMgYSAxNjAtYml0IGhhc2ggdmFsdWUsIHRodXMgdGhlIGJydXRlLWZvcmNlIGNvbGxpc2lvbiBvciAgbmVhci1jb2xsaXNpb24gYXR0YWNrIHJlcXVpcmVzIE8oMl44MCkgY29tcHV0YXRpb24uIFdpdGhpbiA1IHllYXJzLCBpdCB3YXMgbWFkZSBjb2xsaXNpb24gYXR0YWNrZWQgYnkgQ2hhYmF1ZCBhbmQgSm91eCB3aXRoIHRoZSBhdHRhY2sgY29tcGxleGl0eSBvZiAyXjYxLg0KMTk5MzogW0NvYWxnYXRlIHNjYW1dIE9uIDIzcmQgQXByaWwgMjAxMywgdGhlIFN0YW5kaW5nIENvbW1pdHRlZSBvbiBDb2FsIGFuZCBTdGVlbCB0YWJsZWQgaW4gUGFybGlhbWVudCB0aGF0IGFsbCAxOTQgY29hbCBibG9ja3MgZGlzdHJpYnV0ZWQgYmV0d2VlbiAxOTkzIGFuZCAyMDA4IHdlcmUgYXVjdGlvbmVkIGluIGFuIHVuYXV0aG9yaXplZCBtYW5uZXIgYW5kIHRoZSBjb3VudHJ5IGxvc3QgUnMuMS44NiBsYWtoIGNyb3JlLi4gRm9ybWVyIFByaW1lIE1pbmlzdGVyIE1hbm1vaGFuIFNpbmdoLCBhbG9uZyB3aXRoIEt1bWFyIE1hbmdhbGFtIEJpcmxhIGFuZCBQLkMuIFBhcmFraCwgd2VyZSBhY2N1c2VkIGFuZCBzdW1tb25lZCBieSBhIHNwZWNpYWwgY291cnQuIFsyTCBDcm9yZV0uIENvbXB0cm9sbGVyIGFuZCBBdWRpdG9yIEdlbmVyYWwgb2YgSW5kaWEgdG9vayAyMCB5ZWFycyB0byBJRCBvbmUgb2YgdGhlIGJpZ2dlc3Qgc2NhbXMgaW4gSW5kaWFuIGhpc3RvcnkuDQoxOTkzOiBBZnRlciBQcmVzaWRlbnQgQmlsbCBDbGludG9uIHRvb2sgb2ZmaWNlIGluIDE5OTMsIGhvd2V2ZXIsIHRoZSBVLlMuIGVjb25vbXkgZW1iYXJrZWQgb24gYSBsb25nIGFuZCBzdHJvbmcgZXhwYW5zaW9uLCBtYWtpbmcgdGhlIDE5OTBzIGEgZ3JlYXQgZGVjYWRlIGZvciBBbWVyaWNhJ3MgbW9uZXksIG92ZXJhbGwuIA0KMTk5MzpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTW90aHJhKDE5OTIpDQoxOTkzOltTcGFjZV0gSGlwcGFyY29zLCBhIHNjaWVudGlmaWMgc2F0ZWxsaXRlIG9mIHRoZSBFdXJvcGVhbiBTcGFjZSBBZ2VuY3kgKEVTQSkgbGFzdGVkIGZvciA0IHllYXJzIGJlZm9yZSBnb2luZyBvdXQtb2Ytc2VydmljZS4NCjE5OTM6W1NwYWNlXVtSZXNlYXJjaF0gSW4gMTk5MywgRG9uIFBhZ2UgYXJndWVkIHRoYXQgaWYgYSBibGFjayBob2xlIHN0YXJ0cyBpbiBhIHB1cmUgcXVhbnR1bSBzdGF0ZSBhbmQgZXZhcG9yYXRlcyBjb21wbGV0ZWx5IGJ5IGEgdW5pdGFyeSBwcm9jZXNzLCB0aGUgdm9uIE5ldW1hbm4gZW50cm9weSBvZiB0aGUgSGF3a2luZyByYWRpYXRpb24gaW5pdGlhbGx5IGluY3JlYXNlcyBhbmQgdGhlbiBkZWNyZWFzZXMgYmFjayB0byB6ZXJvIHdoZW4gdGhlIGJsYWNrIGhvbGUgaGFzIGRpc2FwcGVhcmVkLiBUaGlzIGlzIGNhbGxlZCB0aGUgUGFnZSBjdXJ2ZS4NCjE5OTM6W0Jvb2tzXVtIaXN0b3J5XSBHcmVlbuKAmXMgRGljdGlvbmFyeSBvZiBTbGFuZyBpcyB0aGUgbGFyZ2VzdCBoaXN0b3JpY2FsIGRpY3Rpb25hcnkgb2YgRW5nbGlzaCBzbGFuZy4gV3JpdHRlbiBieSBKb25hdGhvbiBHcmVlbiBvdmVyIDE3IHllYXJzIGZyb20gMTk5MywgaXQgcmVhY2hlZCB0aGUgcHJpbnRlZCBwYWdlIGluIDIwMTAgaW4gYSB0aHJlZS12b2x1bWUgc2V0IGNvbnRhaW5pbmcgbmVhcmx5IDEwMCwwMDAgZW50cmllcyBzdXBwb3J0ZWQgYnkgb3ZlciA0MDAsMDAwIGNpdGF0aW9ucyBmcm9tIGMuIGFkIDEwMDAgdG8gdGhlIHByZXNlbnQgZGF5LiBUaGUgbWFpbiBmb2N1cyBvZiB0aGUgZGljdGlvbmFyeSBpcyB0aGUgY292ZXJhZ2Ugb2Ygb3ZlciA1MDAgeWVhcnMgb2Ygc2xhbmcgZnJvbSBjLiAxNTAwIG9ud2FyZHMuDQoxOTkzOltFbnZdW0Rpc2FzdGVyXSBTb3V0aCBBc2lhbiBtb25zb29uIGZsb29kcywgM2sgZGVhdGhzDQoxOTkzOltHZW9ncmFwaHldIFRoZSBsYXN0IG1ham9yIHNoaWZ0cyBpbiBFYXJ0aCdzIGF4aXMgd2VyZSBpbmZsdWVuY2VkIGJ5IGNsaW1hdGUgY2hhbmdlOiBhIDMxLjUtaW5jaCBzaGlmdCBiZXR3ZWVuIDE5OTMgYW5kIDIwMTAgd2FzIHByaW1hcmlseSBjYXVzZWQgYnkgZ3JvdW5kd2F0ZXIgcHVtcGluZywgYW5kIGEgY2hhbmdlIGluIHBvbGFyIGRyaWZ0IGRpcmVjdGlvbiBhcm91bmQgdGhlIDE5OTBzIHdhcyBsaW5rZWQgdG8gbWVsdGluZyBnbGFjaWVycyBhbmQgaWNlIHNoZWV0cyBkdWUgdG8gZ2xvYmFsIHdhcm1pbmcuIEVhcnRoJ3MgYXhpcyBhbHNvIHNoaWZ0ZWQgYnkgYWJvdXQgNi41IGluY2hlcyBpbiBNYXJjaCAyMDExIGFmdGVyIHRoZSBKYXBhbmVzZSBlYXJ0aHF1YWtlLCBjYXVzaW5nIHRoZSBwbGFuZXQgdG8gc3BpbiBzbGlnaHRseSBmYXN0ZXIuDQoxOTkzOltXaG9dIEluIDE5OTMsIEluZGlhIGNhbWUgaGVhcnRicmVha2luZ2x5IGNsb3NlIHRvIHdpbm5pbmcgaXRzIGZpcnN0IE1pc3MgVW5pdmVyc2UgY3Jvd24gd2l0aCB0aGUgc3R1bm5pbmcgYW5kIGdyYWNlZnVsIE5hbXJhdGEgU2hpcm9ka2FyLCB3aG8gaGFkIGVhcmxpZXIgd29uIHRoZSBGZW1pbmEgTWlzcyBJbmRpYSB0aXRsZS4gUmVwcmVzZW50aW5nIEluZGlhIGF0IHRoZSBNaXNzIFVuaXZlcnNlIHBhZ2VhbnQgaGVsZCBpbiBNZXhpY28gQ2l0eSwgTmFtcmF0YSB3YXMgYSBzdHJvbmcgY29udGVuZGVy4oCUZWxlZ2FudCBpbiBoZXIgZ293biwgcG9pc2VkIGluIGludGVydmlld3MsIGFuZCBhIGZhbiBmYXZvcml0ZS4gU2hlIGVhc2lseSBtYWRlIGl0IHRvIHRoZSBUb3AgNiwgYW5kIGhlciBjaGFuY2VzIG9mIHdpbm5pbmcgbG9va2VkIGluY3JlZGlibHkgaGlnaC4gQnV0IHRoZW4gY2FtZSB0aGUgZmluYWwgcXVlc3Rpb246IOKAnElmIHlvdSBjb3VsZCBiZSBib3JuIGFzIGFueSBoaXN0b3JpY2FsIGZpZ3VyZSwgd2hvIHdvdWxkIGl0IGJlIGFuZCB3aHk/4oCdIFdoaWxlIG90aGVyIGNvbnRlc3RhbnRzIG5hbWVkIGdsb2JhbCBpY29ucyBsaWtlIE1vdGhlciBUZXJlc2EgYW5kIFByaW5jZXNzIERpYW5hLCBOYW1yYXRhIGdhdmUgYW4gaG9uZXN0LCBwZXJzb25hbCBhbnN3ZXLigJRzaGUgc2FpZCBzaGUgd291bGQgYmUgYm9ybiBhcyBoZXJzZWxmIG9yIHNvbWVvbmUgY2xvc2UgdG8gaGVyLCBiZWNhdXNlIHNoZSBiZWxpZXZlZCBpbiBsaXZpbmcgbGlmZSB3aXRoIHRydXRoIGFuZCBpbmRpdmlkdWFsaXR5LiBJdCB3YXMgYSBiZWF1dGlmdWwsIGdyb3VuZGVkIGFuc3dlcuKAlGJ1dCBub3QgdGhlIGtpbmQgb2YgZ3JhbmQsIGlkZWFsaXN0aWMgcmVzcG9uc2UgdGhlIGp1ZGdlcyB3ZXJlIGV4cGVjdGluZy4gVGhhdCBvbmUgbW9tZW50IG9mIHRydXRoLCBtYW55IGJlbGlldmUsIGNvc3QgaGVyIHRoZSBjcm93biwgYW5kIEluZGlhIGhhZCB0byB3YWl0IGFub3RoZXIgeWVhciBiZWZvcmUgU3VzaG1pdGEgU2VuIGJyb3VnaHQgdGhlIE1pc3MgVW5pdmVyc2UgdGl0bGUgaG9tZSBpbiAxOTk0LiBTdGlsbCwgTmFtcmF0YeKAmXMgYW5zd2VyIGJlY2FtZSBpY29uaWPigJRub3QgYmVjYXVzZSBpdCB3b24sIGJ1dCBiZWNhdXNlIGl0IHdhcyByZWFsLCBtYXJraW5nIGEgcmFyZSBpbnN0YW5jZSB3aGVyZSBob25lc3R5IHN0b29kIHRhbGxlciB0aGFuIGRpcGxvbWFjeS4NCjE5OTM6W0F2aWF0aW9uXVtFeHRyZW1lXVtXaG9dIFRoZSBIZXJic3QgbWFuZXV2ZXIgd2FzIGZpcnN0IHN1Y2Nlc3NmdWxseSBwZXJmb3JtZWQgb24gQXByaWwgMjksIDE5OTMsIGJ5IGFuIFgtMzEgYWlyY3JhZnQuIE5hbWVkIGFmdGVyIFdvbGZnYW5nIEhlcmJzdCwgYSBkZXZlbG9wZXIgb2YgcG9zdC1zdGFsbCB0ZWNobm9sb2d5IGZvciBNZXNzZXJzY2htaXR0LULDtmxrb3ctQmxvaG0gKE1CQiksIHRoaXMsIHBvc3Qtc3RhbGwgbWFuZXV2ZXIgZW5hYmxlcyBhIGZpZ2h0ZXIgdG8gbWFrZSBhIHJhcGlkIDE4MMKwIHR1cm4gd2l0aGluIGEgbWluaW1hbCByYWRpdXMuIA0KDQoxOTk04oCTMTk5NTpbVVNdW0dlb1BvbGl0aWNzXSBvY2N1cGF0aW9uIG9mIEhhaXRpLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgRXVyb3BlYW4gRWNvbm9taWMgQXJlYSwgYWJicmV2aWF0ZWQgYXMgRUVBLCBjb25zaXN0cyBvZiB0aGUgTWVtYmVyIFN0YXRlcyBvZiB0aGUgRXVyb3BlYW4gVW5pb24gKEVVKSBhbmQgdGhyZWUgY291bnRyaWVzIG9mIHRoZSBFdXJvcGVhbiBGcmVlIFRyYWRlIEFzc29jaWF0aW9uIChFRlRBKSAoSWNlbGFuZCwgTGllY2h0ZW5zdGVpbiBhbmQgTm9yd2F5OyBleGNsdWRpbmcgU3dpdHplcmxhbmQpLiBUaGUgQWdyZWVtZW50IG9uIHRoZSBFRUEgZW50ZXJlZCBpbnRvIGZvcmNlIG9uIDEgSmFudWFyeSAxOTk0LiANCjE5OTQ6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEV1cm9wZWFuIEVjb25vbWljIEFyZWEgKEVFQSkgd2FzIGVzdGFibGlzaGVkIG9uIDEgSmFudWFyeSAxOTk0LiBUaGUgYWdyZWVtZW50IGxpbmtzIHRoZSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aHJlZSBFRlRBIHN0YXRlc+KAlEljZWxhbmQsIExpZWNodGVuc3RlaW4sIGFuZCBOb3J3YXnigJRpbnRvIGEgc2luZ2xlIGludGVybmFsIG1hcmtldCwgYWxsb3dpbmcgZm9yIHRoZSBmcmVlIG1vdmVtZW50IG9mIGdvb2RzLCBwZXJzb25zLCBzZXJ2aWNlcywgYW5kIGNhcGl0YWwuIA0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBOQUZUQSwgdGhlIE5vcnRoIEFtZXJpY2FuIEZyZWUgVHJhZGUgQWdyZWVtZW50LCB3YXMgYSAxOTk0IGFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzLCBDYW5hZGEsIGFuZCBNZXhpY28gdG8gZWxpbWluYXRlIHRyYWRlIGJhcnJpZXJzIGFuZCBwcm9tb3RlIGZyZWUgdHJhZGUgaW4gTm9ydGggQW1lcmljYS4gSXQgZmFjaWxpdGF0ZWQgdGhlIG1vdmVtZW50IG9mIGdvb2RzIGFuZCBzZXJ2aWNlcyBhbmQgZXN0YWJsaXNoZWQgYSBsYXJnZSB0cmFkZSBibG9jLiBJbiBKdWx5IDIwMjAsIE5BRlRBIHdhcyByZXBsYWNlZCBieSB0aGUgVW5pdGVkIFN0YXRlcy1NZXhpY28tQ2FuYWRhIEFncmVlbWVudCAoVVNNQ0EpLCB3aGljaCBtb2Rlcm5pemVkIGFuZCBlbmhhbmNlZCB0aGUgdHJlYXR5IGZvciBhIGNvbnRlbXBvcmFyeSBlY29ub215Lg0KMTk5NDpbUy5BZnJpY2FdW1NvY2lhbGlzbV0gRmlyc3QgZnJlZSBlbGVjdGlvbnMgaW4gU291dGggQWZyaWNhOyBOZWxzb24gTWFuZGVsYQ0KMTk5NDpbUmVzZWFyY2hdW3NwYWNlXSBDYXJsIFNhZ2FuIGNvbmNlZGVkIHRoYXQgdGhpcyBhcHByb2FjaCB3b3VsZCBub3Qgd29yayBiZWNhdXNlIHRoZSBhdG1vc3BoZXJlIG9mIFZlbnVzIGlzIGZhciBkZW5zZXIgKDkwIGJhcnMpIHRoYW4gd2hhdCB3YXMgdW5kZXJzdG9vZCBpbiAxOTYxIChhIGZldyBiYXJzKSwgbWVhbmluZyB0aGUgY2FyYm9uIHdvdWxkIGp1c3QgYmUgb3hpZGl6ZWQgYmFjayBpbnRvIENPMi4NCjE5OTQ6W0NvbXB1dGluZ11bUXVhbnR1bV0gUGV0ZXIgU2hvciBkaXNjb3ZlcmVkIGFuIGFsZ29yaXRobSAoU2hvcidzIGFsZ29yaXRobSkgdGhhdCBjb3VsZCBmYWN0b3IgbGFyZ2UgbnVtYmVycyBpbiBwb2x5bm9taWFsIHRpbWUgb24gYSBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCB3b3VsZCBicmVhayB0aGUgc2VjdXJpdHkgb2YgbWFueSBjcnlwdG9ncmFwaGljIHNjaGVtZXMuIA0KMTk5NDpbQ29tcHV0aW5nXVtRdWFudHVtXSBQZXRlciBTaG9yIGFuZCBEb24gQ29wcGVyc21pdGggZmlndXJlZCBvdXQgaG93IHRvIHRha2UgYSBRdWFudHVtIEZvdXJpZXIgVHJhbnNmb3JtLg0KMTk5NDpUaGUgcHJvYmxlbSB3aXRoIHRoZSBwYXBlciBwdWJsaXNoZWQgZWFybGllciB0aGlzIG1vbnRoIHdhcyBpdHMgcmVsaWFuY2Ugb24gU2Nobm9ycidzIGFsZ29yaXRobSAobm90IHRvIGJlIGNvbmZ1c2VkIHdpdGggU2hvcuKAmXMgYWxnb3JpdGhtKSwgd2hpY2ggd2FzIGRldmVsb3BlZCBpbiAxOTk0LiBTY2hub3Jy4oCZcyBhbGdvcml0aG0gaXMgYSBjbGFzc2ljYWwgY29tcHV0YXRpb24gYmFzZWQgb24gbGF0dGljZXMsIHdoaWNoIGFyZSBtYXRoZW1hdGljYWwgc3RydWN0dXJlcyB0aGF0IGhhdmUgbWFueSBhcHBsaWNhdGlvbnMgaW4gY29uc3RydWN0aXZlIGNyeXB0b2dyYXBoeSBhbmQgY3J5cHRhbmFseXNpcy4gVGhlIGF1dGhvcnMgd2hvIGRldmlzZWQgU2Nobm9ycuKAmXMgYWxnb3JpdGhtIHNhaWQgaXQgY291bGQgZW5oYW5jZSB0aGUgdXNlIG9mIHRoZSBoZXVyaXN0aWMgcXVhbnR1bSBvcHRpbWl6YXRpb24gbWV0aG9kIGNhbGxlZCBRQU9BLg0KMTk5NCAoSmFuIDEpOiBbR2VvUG9saXRpY3NdIFRoZSBOb3J0aCBBbWVyaWNhbiBGcmVlIFRyYWRlIEFncmVlbWVudCAoTkFGVEEpIHdhcyBhbiBhZ3JlZW1lbnQgc2lnbmVkIGJ5IENhbmFkYSwgTWV4aWNvLCBhbmQgdGhlIFVuaXRlZCBTdGF0ZXMgdGhhdCBjcmVhdGVkIGEgdHJpbGF0ZXJhbCB0cmFkZSBibG9jIGluIE5vcnRoIEFtZXJpY2EuIFRoZSBhZ3JlZW1lbnQgY2FtZSBpbnRvIGZvcmNlIG9uIEphbnVhcnkgMSwgMTk5NCwgYW5kIHN1cGVyc2VkZWQgdGhlIDE5ODggQ2FuYWRh4oCTVW5pdGVkIFN0YXRlcyBGcmVlIFRyYWRlIEFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzIGFuZCBDYW5hZGEuIFRoZSBOQUZUQSB0cmFkZSBibG9jIGZvcm1lZCBvbmUgb2YgdGhlIGxhcmdlc3QgdHJhZGUgYmxvY3MgaW4gdGhlIHdvcmxkIGJ5IGdyb3NzIGRvbWVzdGljIHByb2R1Y3QuDQoxOTk0OltUZWNobm9sb2d5XVtCdXNpbmVzc11bVVNdW0NvbXB1dGluZ10gVGhlIERlbGwgTGF0aXR1ZGUgc2VyaWVzIGlzIGEgbGluZSBvZiBsYXB0b3AgY29tcHV0ZXJzIG1hbnVmYWN0dXJlZCBhbmQgc29sZCBieSBBbWVyaWNhbiBjb21wYW55IERlbGwuIEl0IGlzIGEgYnVzaW5lc3Mtb3JpZW50ZWQgbGluZSwgYWltZWQgYXQgY29ycG9yYXRlIGVudGVycHJpc2VzLCBoZWFsdGhjYXJlLCBnb3Zlcm5tZW50LCBhbmQgZWR1Y2F0aW9uIG1hcmtldHM7IHVubGlrZSB0aGUgSW5zcGlyb24gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBpbmRpdmlkdWFsIGN1c3RvbWVycywgYW5kIHRoZSBWb3N0cm8gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBzbWFsbGVyIGJ1c2luZXNzZXMuIFRoZSBMYXRpdHVkZSBkaXJlY3RseSBjb21wZXRlcyB3aXRoIHRoZSBMZW5vdm8gVGhpbmtQYWQgYW5kIHRoZSBFbGl0ZUJvb2sgc2VyaWVzIGJ5IEhQLiBBZGRpdGlvbmFsbHksIHRoZSAiUnVnZ2VkIChFeHRyZW1lKSIsICJYRlIiIGFuZCAiQVRHIiBtb2RlbHMgY29tcGV0ZSBwcmltYXJpbHkgd2l0aCBQYW5hc29uaWMncyBUb3VnaGJvb2sgbGluZSBvZiAicnVnZ2VkIiBsYXB0b3BzLg0KMTk5NDogU3VzaG1pdGEgU2VuIGJlY2FtZSBNaXNzIFVuaXZlcnNlLg0KMTk5NDogVGhlIEFubmFscyBvZiBJbXByb2JhYmxlIFJlc2VhcmNoIGlzIGEgYmktbW9udGhseSBtYWdhemluZSBkZXZvdGVkIHRvIHNjaWVudGlmaWMgaHVtb3IsIGluIHRoZSBmb3JtIG9mIGEgc2F0aXJpY2FsIHRha2Ugb24gdGhlIHN0YW5kYXJkIGFjYWRlbWljIGpvdXJuYWwuDQoxOTk0OiBMaW5kb24gTGVhZGVyIG9mIExhbmRvciBBc3NvY2lhdGVzLCBvZiBTYW4gRnJhbmNpc2NvIGRlc2lnbmVkIHdvcmRtYXJrcyBmb3IgRmVkRXgncyB2YXJpb3VzIE9wLXVuaXQuIEZlZEV44oCZcyBwdWJsaWMtcmVsYXRpb25zIGZpcm0gd2FudGVkIHRvIGhpZ2hsaWdodCB0aGUgYXJyb3cgc28gaXQgd291bGQgYmUgb2J2aW91cy4gQnV0IGhlIGZvdWdodCB0aGVtIG9uIHRoYXQg4oCUIGhlIHRob3VnaHQgaXQgd291bGQgYmUgb3ZlcmtpbGwuIFRoZXJl4oCZcyBzb21ldGhpbmcgYWJvdXQgbWFraW5nIHBlb3BsZSBkaXNjb3ZlciBzb21ldGhpbmcgb24gdGhlaXIgb3duIHRoYXTigJlzIGEgbG90IG1vcmUgcG93ZXJmdWwgdGhhbiBpdGFsaWNpemluZyBpdCB0byBtYWtlIHlvdXIgcG9pbnQuDQoxOTk0OiBTY2lsYWIgMS4xLCB0aGUgZmlyc3QgcmVsZWFzZWQgdmVyc2lvbiBvZiBTY2lsYWIsIHdhcyBwdXQgb24gYW5vbnltb3VzIGZ0cCBzaXRlLg0KMTk5NDogVGhlIGNvbmNlcHQgb2YgYSBjYWbDqSB3aXRoIGZ1bGwgSW50ZXJuZXQgYWNjZXNzIChhbmQgdGhlIG5hbWUgQ3liZXJjYWbDqSkgd2FzIGludmVudGVkIGluIGVhcmx5IGJ5ICBhIEJyaXRpc2ggdGVjaG5vbG9neSBhcnRpc3QsIEl2YW4gUG9wZS4NCjE5OTQ6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIGx1cmVkIG9uZSBvZiBEYXdvb2QncyBmYXZvcml0ZSAibmFyY28tdGVycm9yaXN0IiBQaGlsbHUgS2hhbiBhbGlhcyBCYWtodGl5YXIgQWhtZWQgS2hhbiB0byBhIGhvdGVsIHJvb20gaW4gQmFuZ2tvaywgd2hlcmUgaGUgd2FzIHRvcnR1cmVkIHRvIGRlYXRoLCBoYXZpbmcgYmVlbiBiZXRyYXllZCBieSBoaXMgY2xvc2VzdCBhaWRlIGFuZCBzaWRla2ljayBNYW5nZXNoICJNYW5neWEiIFBhd2FyLiBELUNvbXBhbnkncyBTaGFyYWQsIHVzZWQgaGlzIGxpbmtzIHdpdGggTXVtYmFpLWJhc2VkIGhvdGVsaWVyIFZpbm9kIGFuZCBBLiBNaXNocmEgdG8gdHJhY2sgZG93biBSYWphbiBpbiBCYW5na29rLiBSYWphbidzIGhpdG1hbiBSb2hpdCBWYXJtYSBhbmQgaGlzIHdpZmUgc2hvdCBieSBELUNvbXBhbnkuDQoxOTk0KEp1bCAxNik6W1NwYWNlXSBGcm9tIEp1bHkgMTYgdG8gMjIsIDE5OTQsIGVub3Jtb3VzIHBpZWNlcyBvZiB0aGUgY29tZXQgU2hvZW1ha2VyLUxldnkgOSAoU0w5KSwgZGlzY292ZXJlZCBqdXN0IGEgeWVhciBwcmlvciwgY3Jhc2hlZCBpbnRvIEp1cGl0ZXIgb3ZlciBzZXZlcmFsIGRheXMsIGNyZWF0aW5nIGh1Z2UsIGRhcmsgc2NhcnMgaW4gdGhlIHBsYW5ldCdzIGF0bW9zcGhlcmUgYW5kIGxvZnRpbmcgc3VwZXJoZWF0ZWQgcGx1bWVzIGludG8gaXRzIHN0cmF0b3NwaGVyZS4NCjE5OTQgKE9jdCk6IElUUE8gYW5kIEdvSSdzIE5JQyBqb2ludGx5IHNldC11cCB0aGUgTmF0aW9uYWwgQ2VudHJlIGZvciBUcmFkZSBJbmZvcm1hdGlvbiAoTkNUSSkgYXQgUHJhZ2F0aSBNYWlkYW4uDQoxOTk0IChOb3YgMSwgMTU6MDEgSVNUKTpbU3BhY2VdW1N1bl0gVGhlIEdsb2JhbCBHZW9zcGFjZSBTY2llbmNlICdXaW5kJyBzYXRlbGxpdGUgaXMgYSBOQVNBIHNjaWVuY2Ugc3BhY2VjcmFmdCBkZXNpZ25lZCB0byBzdHVkeSByYWRpbyB3YXZlcyBhbmQgcGxhc21hIHRoYXQgb2NjdXIgaW4gdGhlIHNvbGFyIHdpbmQgYW5kIGluIHRoZSBFYXJ0aCdzIG1hZ25ldG9zcGhlcmUuIA0KMTk5NCAoRGVjIDMpOiBTb255J3MgUGxheVN0YXRpb24gKGEgdmlkZW8gZ2FtZSBjb25zb2xlKSB3YXMgaW50cm9kdWNlZCB0byB0aGUgd29ybGQgZnJvbSBNaW5hdG8sIFRva3lvIChKYXBhbikuDQoxOTk0OiBXWFlDLSBmaXJzdCBpbnRlcm5ldCByYWRpbyBzdGF0aW9uIGJyb2FkY2FzdC4NCjE5OTQ6IE1lbW9yeSBjYXJkcyB3ZXJlIGludHJvZHVjZWQgaW4gdGhlIGNvbnN1bWVyIGVsZWN0cm9uaWNzIG1hcmtldC4NCjE5OTQgKEF1Zyk6IElUUE8ncyAxc3QgRGVsaGkgQm9vayBGYWlyIGF0ICBIYWxsIDggdG8gMTIgb2YgUHJhZ2F0aSBNYWlkYW4sIE5ldyBEZWxoaS4gVGhlIHRpbWluZ3Mgb2YgZmFpciBhcmUgZnJvbSAxMC4wMCBhbSB0byA4LjAwIHBtIChlbnRyeSB0byBmYWlyIHdpbGwgY2xvc2UgYXQgNy4zMCBwbSkuDQoxOTk0IChTZXApOiBUaGUgQ09OQ0VSVCBzb2Z0d2FyZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgaW1wbGVtZW50ZWQgYXQgYWxsIG9mIHRoZSBmaXZlIFBSUycgc2l0ZXMgU2VjdW5kZXJhYmFkIGluIFNlcHQuIDE5OTQsIE5ldyBEZWxoaSBvbiBTZXB0LiAxOTk2LCBDYWxjdXR0YSBvbiAxNHRoIEp1bmUgMTk5OCwgTXVtYmFpIG9uIDExdGggSmFuIDE5OTkgYW5kIENoZW5uYWkgb24gMTJ0aCBBcHJpbCAxOTk5Lg0KMTk5NDogdGhlIDI0dGggYW5kIHRoZSBsYXN0IEdQUyBzYXRlbGxpdGUgd2FzIGxhdW5jaGVkIGluIFVTLg0KMTk5NDogVGhlIHdvcmQgVGFsaWJhbiBpcyBQYXNodG8sINi32KfZhNio2KfZhiDhua3EgWxpYsSBbiwgbWVhbmluZyAic3R1ZGVudHMiLCB0aGUgcGx1cmFsIG9mIOG5rcSBbGliLiBBZnRlciB0aGUgU292aWV0IFVuaW9uIGludGVydmVuZWQgYW5kIG9jY3VwaWVkIEFmZ2hhbmlzdGFuIGluIDE5NzksIElzbGFtaWMgbXVqYWhpZGVlbiBmaWdodGVycyBlbmdhZ2VkIGluIHdhciB3aXRoIHRob3NlIFNvdmlldCBmb3JjZXMsIHdoaWNoIGxhaWQgdGhlIGZvdW5kYXRpb24gb2YgcG9saXRpY2FsIG1vdmVtZW50IGFuZCBtaWxpdGFyeSBvcmdhbml6YXRpb24gbmFtZWQgVGFsaWJhbi4NCjE5OTQ6IEFiZHVsIEthcmVlbSBUZWxnaSBhY3F1aXJlZCB0aGUgbGljZW5zZSBmb3Igc2VsbGluZyBzdGFtcCBwYXBlciBhbmQgb3BlbmVkIGFuIG9mZmljZSBpbiBNdW1iYWkuIEFmdGVyIHRoYXQsIGhlIHN0YXJ0ZWQgcHJpbnRpbmcgc3RhbXAgcGFwZXIgaW4gTmFzaGlrLiBXaXRoIHNvbWUgYWdlbnRz4oCZIGhlbHAsIGhlIHN0YXJ0cyBzZWxsaW5nIGZha2Ugc3RhbXAgcGFwZXIgaW4gYnVsayB0byBiYW5rcywgaW5zdXJhbmNlIGNvbXBhbmllcywgc3RvY2sgYnJva2VyYWdlIGZpcm1zLCBhbmQgY29ycG9yYXRlcy4gSW4gMjAwMyB0aGUgVGVsZ2kgc2NhbSB3YXMgdW5mb2xkZWQ7IHRoZSBmaWd1cmUgaW4gdGhlIG1pbmQgb2Ygc2VjdXJpdHkgYW5kIGludGVsbGlnZW5jZSBhZ2VuY2llcyB3YXMgdXAgdG8gUnMuMjBrIENyb3JlDQoxOTk0OiBbR2VvUG9saXRpY3NdIEludGVybmF0aW9uYWwgQXNzb2NpYXRpb24gb2YgR2VuZGFybWVyaWVzIGFuZCBQb2xpY2UgRm9yY2VzIHdpdGggTWlsaXRhcnkgU3RhdHVzIChjb21tb25seSBrbm93biBhcyBGSUVQIGZvciBGcmFuY2UtSXRhbGlhLUVzcGHDsWEtUG9ydHVnYWwsIHRoZSBmaXJzdCBmb3VyIG1lbWJlcnMpIGlzIGFuIGFzc29jaWF0aW9uIG9mIG5hdGlvbmFsIGdlbmRhcm1lcmllcyBvciBtaWxpdGFyeSBwb2xpY2UgZm9yY2VzLg0KMTk5NDpbQm9va10gUGFsZSBCbHVlIERvdDogQSBWaXNpb24gb2YgdGhlIEh1bWFuIEZ1dHVyZSBpbiBTcGFjZSBpcyBhIDE5OTQgYm9vayBieSB0aGUgYXN0cm9ub21lciBDYXJsIFNhZ2FuLiBJdCBpcyB0aGUgc2VxdWVsIHRvIFNhZ2FuJ3MgMTk4MCBib29rIENvc21vcyBhbmQgd2FzIGluc3BpcmVkIGJ5IHRoZSBmYW1vdXMgMTk5MCBQYWxlIEJsdWUgRG90IHBob3RvZ3JhcGgsIGZvciB3aGljaCBTYWdhbiBwcm92aWRlcyBhIHBvaWduYW50IGRlc2NyaXB0aW9uLiBJbiB0aGUgYm9vaywgU2FnYW4gbWl4ZXMgcGhpbG9zb3BoeSBhYm91dCB0aGUgaHVtYW4gcGxhY2UgaW4gdGhlIHVuaXZlcnNlIHdpdGggYSBkZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCBrbm93bGVkZ2UgYWJvdXQgdGhlIFNvbGFyIFN5c3RlbS4gSGUgYWxzbyBkZXRhaWxzIGEgaHVtYW4gdmlzaW9uIGZvciB0aGUgZnV0dXJlLg0KMTk5NDpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTWVjaGFnb2R6aWxsYSBJSSgxOTkzKQ0KMTk5NDpbQ2luZW1hXSBUaGUgQXBwbGUoMTk4MCkNCjE5OTQ6W0NpbmVtYV0gVGhlIEF0bGFudGlzIEludGVyY2VwdG9ycygxOTgzKQ0KMTk5NDpbTW50bmdnXSBJbiAxOTk0LCBNYXJrIFdoZXR1IHN1bW1pdHRlZCBNdCBFdmVyZXN0IHdpdGggTWlrZSBSZWluYmVyZ2VyLiBCdXQgYWZ0ZXIgYSBmcmVlemluZyBuaWdodCwgV2hldHUgZmFjZWQgYSBoYXJyb3dpbmcgY2hvaWNlOiBsZWF2ZSBoaXMgZnJpZW5kIG9yIHJlbWFpbiBmb3JldmVyLiBUaGUgRmF0YWwgR2FtZSAoMTk5NykNCjE5OTQ6W1RvdXJpc21dIFRoZSBBZHZlbnR1cmUgVG91ciBPcGVyYXRvcnMgQXNzb2NpYXRpb24gb2YgSW5kaWEgKEFUT0FJKSB3YXMgZm91bmRlZCBpbiAxOTk0LiBJdCB3YXMgZXN0YWJsaXNoZWQgYnkgYSBncm91cCBvZiB0cmF2ZWwgdHJhZGUgYWR2ZW50dXJlcnMgd2hvIGFpbWVkIHRvIGNyZWF0ZSBhIHN0cm9uZyBzdXBwb3J0IG5ldHdvcmsgZm9yIEluZGlhbiBhZHZlbnR1cmUgdG91ciBvcGVyYXRvcnMuIA0KDQoxOTk1IChNYXkgMTkpOiBbUmVzZWFyY2hdW1NwYWNlXSB0d28gc2NpZW50aXN0cyBhdCBDYWwgUG9seSBzaG93ZWQgdGhhdCBiYWN0ZXJpYSBjYW4gc3Vydml2ZSB3aXRob3V0IGFueSBtZXRhYm9saXNtIGZvciBhdCBsZWFzdCAyNSBtaWxsaW9uIHllYXJzOyBwcm9iYWJseSB0aGV5IGFyZSBpbW1vcnRhbC4NCjI0IE5vdmVtYmVyIDE5OTU6IFRoZSBOZXcgWW9yayBUaW1lcyBkZXNjcmliZWQgYmFjdGVyaWEgdGhhdCBjYW4gc3Vydml2ZSByYWRpYXRpb24gbXVjaCBzdHJvbmdlciB0aGFuIGFueSB0aGF0IEVhcnRoIGhhcyBldmVyIGV4cGVyaWVuY2VkLg0KV2UgYXJlIGNhbGxpbmcgdGhlIHVuaW9uIG9mIExvdmVsb2NrJ3MgR2FpYSB3aXRoIEhveWxlIGFuZCBXaWNrcmFtYXNpbmdoZSdzIGV4cGFuZGVkIHRoZW9yeSBvZiBwYW5zcGVybWlhIENvc21pYyBBbmNlc3RyeS4gVGhpcyBhY2NvdW50IG9mIGV2b2x1dGlvbiBhbmQgdGhlIG9yaWdpbiBvZiBsaWZlIG9uIEVhcnRoIGlzIHByb2ZvdW5kbHkgZGlmZmVyZW50IGZyb20gdGhlIHByZXZhaWxpbmcgc2NpZW50aWZpYyBwYXJhZGlnbS4gSXQgY2hhbGxlbmdlcyBub3QgbWVyZWx5IHRoZSBhbnN3ZXJzIGJ1dCB0aGUgcXVlc3Rpb25zIHRoYXQgYXJlIHBvcHVsYXIgdG9kYXkuIENvc21pYyBBbmNlc3RyeSByZXF1aXJlcyB0aGF0IGxpZmUgY2FuIG9ubHkgZGVzY2VuZCBmcm9tIGFuY2VzdG9ycyBhdCBsZWFzdCBhcyBoaWdobHkgZXZvbHZlZCBhcyBpdHNlbGYsIGFuZCB0aGF0IHRoZXJlIGNhbiBiZSBubyBvcmlnaW4gb2YgbGlmZSBmcm9tIG5vbmJpb2xvZ2ljYWwgbWF0dGVyLiBXaXRob3V0IHN1cGVybmF0dXJhbCBpbnRlcnZlbnRpb24sIHRoZXJlZm9yZSwgd2UgY29uY2x1ZGUgdGhhdCBsaWZlIG11c3QgaGF2ZSBhbHdheXMgZXhpc3RlZC4gQWx0aG91Z2ggdGhlc2UgY29uY2x1c2lvbnMgY3V0IGFjcm9zcyB0aGUgYm91bmRhcmllcyBiZXR3ZWVuIHNjaWVuY2UsIHBoaWxvc29waHksIGFuZCByZWxpZ2lvbiwgd2UgYmVsaWV2ZSB0aGV5IGFyZSBncm91bmRlZCBpbiBnb29kIGV2aWRlbmNlLiBBbmQgbmV3IGRhdGEgdGhhdCBzdXBwb3J0IG1hbnkgYXNwZWN0cyBvZiBDb3NtaWMgQW5jZXN0cnkgYXJlIGNvbWluZyBpbiByYXBpZGx5LiBJbiB0aGUgZm9sbG93aW5nIHBhZ2VzIHdlIHdpbGwgZXhwbGFpbiBob3cgdGhlc2UgYW5kIG90aGVyIHJlY2VudCBkZXZlbG9wbWVudHMgc3VwcG9ydCBDb3NtaWMgQW5jZXN0cnk6DQoNCjE5OTU6IEFOU0VUIHNvbGQgdG8gQU9MLCB3aG8gIG5vdyBydW5zIGl0Lg0KMTk5NSAoTWFyKTogRGVwdC4gb2YgSW5kaWFuIE1lZGljaW5lIGFuZCBIb21lb3BhdGh5IGZvdW5kZWQuDQoxOTk1IChNYXIgMjQpOltSZXNlYXJjaF0gUmVtb3RlbHkgT3BlcmF0ZWQgVmVoaWNsZSBLQUlLTyByZWFjaGVkIHRoZSBkZWVwZXN0IGFyZWEgb2YgdGhlIE1hcmlhbmEgVHJlbmNoIGFuZCBtYWRlIHRoZSBkZWVwZXN0IGRpdmluZyByZWNvcmQgb2YgMTAsOTExIG0gKDM1LDc5NyBmdDsgNSw5NjYgZmF0aG9tcykgDQoxOTk1OiBwaG9uZSBjYWxsIGNvc3RpbmcgUnMuIDE2IHBlciBtaW4uDQoxOTk1OltHYW1pbmddIFZpcnR1YSBDb3AgMiBpcyBhIGxpZ2h0IGd1biBzaG9vdGVyIGFyY2FkZSBnYW1lLCByZWxlYXNlZCBpbiAxOTk1IGFuZCBkZXZlbG9wZWQgaW50ZXJuYWxseSBhdCBTZWdhIGJ5IHRoZWlyIEFNMiBzdHVkaW8gKFl1IFN1enVraSkuIEl0IHdhcyBwb3J0ZWQgdG8gdGhlIFNlZ2EgU2F0dXJuIGluIDE5OTYuIEl0IHdhcyByZWxlYXNlZCBvbiBQQyBpbiAxOTk3IGFuZCBTZWdhIERyZWFtY2FzdCBpbiAyMDAwLiBJdCB3YXMgbGF0ZXIgYnVuZGxlZCB3aXRoIFZpcnR1YSBDb3AgaW4gVmlydHVhIENvcDogRWxpdGUgRWRpdGlvbiBmb3IgUGxheVN0YXRpb24gMiBpbiAyMDAyLg0KMTk5NSAoQXByIDEpOltSZXNlYXJjaF0gUGlsbGFycyBvZiBDcmVhdGlvbiBpcyBhIHBob3RvZ3JhcGggdGFrZW4gYnkgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgb2YgZWxlcGhhbnQgdHJ1bmtzIG9mIGludGVyc3RlbGxhciBnYXMgYW5kIGR1c3QgaW4gdGhlIEVhZ2xlIE5lYnVsYSwgaW4gdGhlIFNlcnBlbnMgY29uc3RlbGxhdGlvbiwgc29tZSA2LDUwMOKAkzcsMDAwIGxpZ2h0LXllYXJzICgyLDAwMOKAkzIsMTAwIHBjOyA2MeKAkzY2IEVtKSBmcm9tIEVhcnRoLg0KMTk5NSAoQXByIDEpOiBJQUFJIGFuZCBOQUEgd2VyZSBtZXJnZWQgYnkgYW4gQWN0IG9mIFBhcmxpYW1lbnQgYW5kIHdhcyBuYW1lZCBhcyBBaXJwb3J0cyBBdXRob3JpdHkgb2YgSW5kaWEgKEFBSSkuIFRoaXMgbmV3IG9yZ2FuaXNhdGlvbiB3YXMgdG8gYmUgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nLCB1cGdyYWRpbmcsIG1haW50YWluaW5nIGFuZCBtYW5hZ2luZyBjaXZpbCBhdmlhdGlvbiBpbmZyYXN0cnVjdHVyZSBib3RoIG9uIHRoZSBncm91bmQgYW5kIGFpciBzcGFjZSBpbiB0aGUgY291bnRyeS4NCjE5OTUgKEFwciAyMSk6W0NyaW1lXVtJbmRpYV0gQmFibG9vIHBpY2tlZCB1cCBieSB0aGUgU2luZ2Fwb3JlIGFpcnBvcnQgcG9saWNlIGZvciB0cmF2ZWxsaW5nIG9uIGZha2UgcGFzc3BvcnQuIEhlIHdhcyBzdGF5aW5nIGluIER1YmFpLg0KMTk5NSAoU2VwIDMwKTpbQ3JpbWVdW0luZGlhXSBTaW5nYXBvcmUgZXh0cmFkaXRlcyBJbmRpYSdzICdtb3N0LXdhbnRlZCBpbnRlci1zdGF0ZSBjcmltaW5hbCcgQmFibG9vIFNyaXZhc3RhdmEgKDMzWU8pDQoxOTk1IChOb3YgMzApOiBPcGVyYXRpb24gRGVzZXJ0IFN0b3JtIChGaXJzdCBJcmFxIFdhcilvZmZpY2lhbGx5IGVuZGVkLg0KMTk5NSAoTWF5IDMxKTpbQm9va11bTWlsaXRhcnldIEFkbWlyYWwgV2lsbGlhbSBILiBNY1JhdmVuJ3MgU3BlYyBPcHM6IENhc2UgU3R1ZGllcyBpbiBTcGVjaWFsIE9wZXJhdGlvbnMgV2FyZmFyZTogVGhlb3J5IGFuZCBQcmFjdGljZTsgU2VhIFN0b3JpZXM6IE15IExpZmUgaW4gU3BlY2lhbCBPcGVyYXRpb25zICgyMDE5LCBNYXkgMSk7IFRoZSBIZXJvIENvZGU6IExlc3NvbnMgTGVhcm5lZCBmcm9tIExpdmVzIFdlbGwgTGl2ZWQgKDIwMjEsIEFwciAxMykNCjE5OTU6IERyLiBIYW5kZSBhZnRlciBncmFkdWF0aW5nIGZyb20gSUlUIEtoYXJhZ3B1ciBjb25jZXB0dWFsaXplZCBTRUxDTyBJbmRpYSBkdXJpbmcgaGlzIFBoRCBvbiBzdXN0YWluYWJsZSBlbmVyZ3kgYXQgdGhlIFVuaXZlcnNpdHkgb2YgTWFzc2FjaHVzZXR0cy4gRHVyaW5nIGEgZmllbGQgdmlzaXQgdG8gdGhlIERvbWluaWNhbiBSZXB1YmxpYywgaGUgd2FzIHN1cnByaXNlZCB0byBzZWUgdGhlIHBvb3IgdXNpbmcgc29sYXIgbGlnaHRzLg0KMTk5NTogVGhlIEdvdmVybm1lbnQgb2YgSW5kaWEgYW5kIHRoZSBHb3Zlcm5tZW50IG9mIERlbGhpIGpvaW50bHkgc2V0IHVwIGEgY29tcGFueSBjYWxsZWQgdGhlIERlbGhpIE1ldHJvIFJhaWwgQ29ycG9yYXRpb24gKERNUkMpIG9uIDMgTWF5IDE5OTUsIHdpdGggRHIuIEUuIFNyZWVkaGFyYW4gYXMgdGhlIG1hbmFnaW5nIGRpcmVjdG9yLg0KMTk5NTogSW50J2wgR2FuZGhpIFBlYWNlIFByaXplIGxhdW5jaGVkLg0KMTk5NTogU2FjaGluIFIuIFRlbmR1a2FyIGFuZCBBbmphbGkgVGVuZHVsa2FyIHdlZGRlZCB0b2dldGhlci4NCjE5OTU6IC5tcDMgaW52ZW50ZWQuDQoxOTk1OltHYW1pbmddIFdoaWxlIEZJRkEgOTUgZGlkIG5vdCBhZGQgbXVjaCBvdGhlciB0aGFuIHRoZSBhYmlsaXR5IHRvIHBsYXkgd2l0aCBjbHViIHRlYW1zLCBGSUZBIDk2IHB1c2hlZCB0aGUgYm91bmRhcmllcy4gRm9yIHRoZSBmaXJzdCB0aW1lIHdpdGggcmVhbCBwbGF5ZXIgbmFtZXMgYnkgb2J0YWluaW5nIHRoZSBGSUZQcm8gbGljZW5zZSwgdGhlIFBsYXlTdGF0aW9uLCBQQywgMzJYIGFuZCBTZWdhIFNhdHVybiB2ZXJzaW9ucyB1c2VkIEVBJ3MgIlZpcnR1YWwgU3RhZGl1bSIgZW5naW5lLCB3aXRoIDJEIHNwcml0ZSBwbGF5ZXJzIG1vdmluZyBhcm91bmQgYSByZWFsLXRpbWUgM0Qgc3RhZGl1bS4NCjE5OTUgKEp1bCAxOCk6W0Jvb2tdIEJhcmFjayBPYmFtYSdzIERyZWFtcyBmcm9tIE15IEZhdGhlcjogQSBTdG9yeSBvZiBSYWNlIGFuZCBJbmhlcml0YW5jZTsgRHJlYW1zIGZyb20gTXkgRmF0aGVyOiBBIFN0b3J5IG9mIFJhY2UgYW5kIEluaGVyaXRhbmNlICgyMDA2LCBPY3QgMTcpOyBPZiBUaGVlIEkgU2luZzogQSBMZXR0ZXIgdG8gTXkgRGF1Z2h0ZXJzICgyMDEwLCBOb3YgMTYpOyBBIFByb21pc2VkIExhbmQgKDIwMjAsIE5vdiAxNykNCjE5OTUoSmFuIDEpOltFbnZdIFRoZSBBZ3JlZW1lbnQgb24gQWdyaWN1bHR1cmUgKEFvQSkgaXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgb2YgdGhlIFdvcmxkIFRyYWRlIE9yZ2FuaXphdGlvbi4gSXQgd2FzIG5lZ290aWF0ZWQgZHVyaW5nIHRoZSBVcnVndWF5IFJvdW5kIG9mIHRoZSBHZW5lcmFsIEFncmVlbWVudCBvbiBUYXJpZmZzIGFuZCBUcmFkZSwgYW5kIGVudGVyZWQgaW50byBmb3JjZSB3aXRoIHRoZSBlc3RhYmxpc2htZW50IG9mIHRoZSBXVE8gb24gSmFudWFyeSAxLCAxOTk1LiBCbHVlLCBSZWQsIEFtYmVyIGFuZCBHcmVlbiBCb3ggb2Ygc3Vic2lkaWVzLg0KMTk5NTpbQ2luZW1hXSBOZWxzb24gTWFuZGVsYSwgaW4gaGlzIGZpcnN0IHRlcm0gYXMgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYSwgaW5pdGlhdGVzIGEgdW5pcXVlIHZlbnR1cmUgdG8gdW5pdGUgdGhlIEFwYXJ0aGVpZC10b3JuIGxhbmQ6IGVubGlzdCB0aGUgbmF0aW9uYWwgcnVnYnkgdGVhbSBvbiBhIG1pc3Npb24gdG8gd2luIHRoZSAxOTk1IFJ1Z2J5IFdvcmxkIEN1cC4gLSAgSW52aWN0dXMgKDIwMDkpDQoxOTk1OltDaW5lbWFdIEEgQ2xvY2t3b3JrIE9yYW5nZSgxOTcxKQ0KMTk5NTpbQ2luZW1hXSBEZWFkIEVuZCBEcml2ZS1JbigxOTg2KQ0KMTk5NTpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gU3BhY2Vnb2R6aWxsYSgxOTk0KQ0KMTk5NTpbQ2luZW1hXSBIZWFydGJlZXBzKDE5ODEpDQoxOTk1OltDaW5lbWFdIFRoZSBNdW1teSdzIEN1cnNlKDE5NDQpDQoxOTk1IChEZWMpOltTcGFjZV0gU29sYXIgYW5kIEhlbGlvc3BoZXJpYyBPYnNlcnZhdG9yeSAoU29ITykgd2FzIGxhdW5jaGVkIGluIERlY2VtYmVyIDE5OTUgYXMgYSBqb2ludCBtaXNzaW9uIGJldHdlZW4gdGhlIEV1cm9wZWFuIFNwYWNlIEFnZW5jeSAoRVNBKSBhbmQgTkFTQSwgU29ITyB3YXMgZGVzaWduZWQgdG8gb3JiaXQgdGhlIFN1biB0byBsZWFybiBhYm91dCB0aGUgc3RydWN0dXJlIG9mIHRoZSBzdGFy4oCZcyBpbnRlcmlvciBhbmQgaXRzIG91dGVyIGF0bW9zcGhlcmUsIGFzIHdlbGwgYXMgdG8gaW52ZXN0aWdhdGUgdGhlIGJlaGF2aW9yIG9mIHNvbGFyIHdpbmRzLiBJdCB3YXMgZXhwZWN0ZWQgdG8gY29tcGxldGUgaXRzIG1pc3Npb24gaW4gMTk5OC4gSW5zdGVhZCwgaXQgaXMgc3RpbGwgYWN0aXZlIHRvZGF5LCBhbmQgaXMgbm93IGxpa2VseSB0byBrZWVwIHdvcmtpbmcgdW50aWwgMjAyNSwgd2hlbiBpdCB3aWxsIGhhdmUgYmVlbiBpbiBzcGFjZSBmb3IgMzAgeWVhcnMuDQoxOTk1OltQaHlzaWNzXVtTcGFjZV1bUmVzZWFyY2hdIFByaW9yIHRvIDE5OTUsIHRoZW9yaXN0cyBiZWxpZXZlZCB0aGF0IHRoZXJlIHdlcmUgZml2ZSBjb25zaXN0ZW50IHZlcnNpb25zIG9mIHN1cGVyc3RyaW5nIHRoZW9yeSAodHlwZSBJLCB0eXBlIElJQSwgdHlwZSBJSUIsIGFuZCB0d28gdmVyc2lvbnMgb2YgaGV0ZXJvdGljIHN0cmluZyB0aGVvcnkpLiBUaGlzIHVuZGVyc3RhbmRpbmcgY2hhbmdlZCBpbiAxOTk1IHdoZW4gRWR3YXJkIFdpdHRlbiBzdWdnZXN0ZWQgdGhhdCB0aGUgZml2ZSB0aGVvcmllcyB3ZXJlIGp1c3Qgc3BlY2lhbCBsaW1pdGluZyBjYXNlcyBvZiBhbiBlbGV2ZW4tZGltZW5zaW9uYWwgdGhlb3J5IGNhbGxlZCBNLXRoZW9yeS4gV2l0dGVuJ3MgY29uamVjdHVyZSB3YXMgYmFzZWQgb24gdGhlIHdvcmsgb2YgYSBudW1iZXIgb2Ygb3RoZXIgcGh5c2ljaXN0cywgaW5jbHVkaW5nIEFzaG9rZSBTZW4sIENocmlzIEh1bGwsIFBhdWwgVG93bnNlbmQsIGFuZCBNaWNoYWVsIER1ZmYuIEhpcyBhbm5vdW5jZW1lbnQgbGVkIHRvIGEgZmx1cnJ5IG9mIHJlc2VhcmNoIGFjdGl2aXR5IG5vdyBrbm93biBhcyB0aGUgc2Vjb25kIHN1cGVyc3RyaW5nIHJldm9sdXRpb24uDQoxOTk1OltDcmltZV1bSW5kaWFdIE11cmRlciBvZiBNdW1iYWktYmFzZWQgYnVpbGRlciBQcmFkZWVwIEphaW4gYnkgQWJ1IFNhbGVtDQoxOTk1OiBGb3J0dW5lIEhvdGVscyBpbiBJbmRpYSBpcyBvd25lZCBieSBpdHMgcGFyZW50IGNvbXBhbnksIElUQyBMdGQuLCB3aGljaCBlc3RhYmxpc2hlZCBGb3J0dW5lIEhvdGVscyBpbiAxOTk1IGFzIGEgc3Vic2lkaWFyeSB0byBwcm92aWRlIG1pZC1tYXJrZXQgdG8gdXBzY2FsZSBob3NwaXRhbGl0eSBzZXJ2aWNlcy4gSG93ZXZlciwgYSBzZXBhcmF0ZSBncm91cCwgRm9ydHVuZSBHcm91cCBvZiBIb3RlbHMsIGJhc2VkIGluIHRoZSBVbml0ZWQgQXJhYiBFbWlyYXRlcyAoVUFFKSBhbmQgZm91bmRlZCBieSBQcmF2ZWVuIFNoZXR0eSwgYWxzbyBvcGVyYXRlcyBhIGRpZmZlcmVudCBzZXQgb2YgaG90ZWxzIGluIHRoYXQgcmVnaW9uLg0KMTk5NTpbVUtdIENhbWlsbGEgaXMgUXVlZW4gb2YgdGhlIFVuaXRlZCBLaW5nZG9tIGFuZCAxNCBvdGhlciBDb21tb253ZWFsdGggcmVhbG1zIGFzIHRoZSB3aWZlIG9mIEtpbmcgQ2hhcmxlcyBJSUkuIENhbWlsbGEgd2FzIHJhaXNlZCBpbiBFYXN0IFN1c3NleCBhbmQgU291dGggS2Vuc2luZ3RvbiBpbiBFbmdsYW5kIGFuZCBlZHVjYXRlZCBpbiBFbmdsYW5kLCBTd2l0emVybGFuZCBhbmQgRnJhbmNlLiBJbiAxOTczLCBzaGUgbWFycmllZCBCcml0aXNoIEFybXkgb2ZmaWNlciBBbmRyZXcgUGFya2VyIEJvd2xlczsgdGhleSBkaXZvcmNlZCBpbiAxOTk1Lg0KDQoxOTk2OltHZW9Qb2xpdGljc11bQnVzaW5lc3NdIE1vbmdvbGlhIHdhcyBncmFudGVkIG9ic2VydmVyIHN0YXR1cyB0byBUUkFDRUNBLg0KMTk5NiAoNyBBdWd1c3QpOltSZXNlYXJjaF1bU3BhY2VdIE5BU0EgYW5ub3VuY2VkIGZvc3NpbGl6ZWQgZXZpZGVuY2Ugb2YgYW5jaWVudCBsaWZlIGluIG1ldGVvcml0ZSBBTEggODQwMDEgZnJvbSBNYXJzLg0KMTk5NiAoT2N0IDI3KTpbUmVzZWFyY2hdW1NwYWNlXSBnZW5ldGljaXN0cyBzaG93ZWQgZXZpZGVuY2UgdGhhdCBtYW55IGdlbmVzIGFyZSBtdWNoIG9sZGVyIHRoYW4gdGhlIGZvc3NpbCByZWNvcmQgd291bGQgaW5kaWNhdGUuIFN1YnNlcXVlbnQgc3R1ZGllcyBoYXZlIHN0cmVuZ3RoZW5lZCB0aGlzIGZpbmRpbmcuDQoxOTk2OltCdXNpbmVzc11bR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2hlbiB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4gc2lnbmVkIHRoZSBUcmVhdHkgb24gRGVlcGVuaW5nIE1pbGl0YXJ5IFRydXN0IGluIEJvcmRlciBSZWdpb25zIGluIFNoYW5naGFpLiBPbiAyNCBBcHJpbCAxOTk3IHRoZSBzYW1lIGNvdW50cmllcyBzaWduZWQgdGhlIFRyZWF0eSBvbiBSZWR1Y3Rpb24gb2YgTWlsaXRhcnkgRm9yY2VzIGluIEJvcmRlciBSZWdpb25zIGluIGEgbWVldGluZyBpbiBNb3Njb3csIFJ1c3NpYS4gT24gMjAgTWF5IDE5OTcgUnVzc2lhbiBQcmVzaWRlbnQgQm9yaXMgWWVsdHNpbiBhbmQgQ2hpbmVzZSBQcmVzaWRlbnQgSmlhbmcgWmVtaW4gc2lnbmVkIGEgZGVjbGFyYXRpb24gb24gYSAibXVsdGlwb2xhciB3b3JsZCIuDQoxOTk2OiAxOTk2IE1vdW50IEV2ZXJlc3QgRGlzYXN0ZXIsIGluIHdoaWNoIGVpZ2h0IHBlb3BsZSBkaWVkIHdoaWxlIG9uIGFuIGV4cGVkaXRpb24gdG8gc2NhbGUgdGhlIGluZmFtb3VzIHN1bW1pdC4gT25lIG9mIHRoZSBjbGltYmVycyB3aG8gbG9zdCBoaXMgbGlmZSB3YXMgQW5keSBIYXJyaXMsIHBsYXllZCBpbiBFdmVyZXN0IGJ5IE1hcnRpbiBIZW5kZXJzb24uIEhhcnJpcyB3YXMgb25lIG9mIHRoZSBndWlkZXMgZm9yIHRoZSBBZHZlbnR1cmUgQ29uc3VsdGFudHMsIGFsb25nIHdpdGggUm9iIEhhbGwgYW5kIE1pa2UgR3Jvb20uIEluIHRoZSBmaWxtLCBoZSBhcHBlYXJzIHRvIGRpZSB3aGlsZSB3aXRoIEhhbGwsIGZhbGxpbmcgb2ZmIGEgY2xpZmYgYWZ0ZXIgYSBoYWxsdWNpbmF0aW9uLiBCdXQgUm9iIEhhbGwgbmV2ZXIgcmVwb3J0ZWQgdGhpcywgYW5kIHNpbmNlIGhlIGRpZWQgc2hvcnRseSB0aGVyZWFmdGVyLCB0aGVyZSBpcyBubyB3YXkgdG8gY29uZmlybSB0aGUgY2lyY3Vtc3RhbmNlcyBzdXJyb3VuZGluZyBIYXJyaXMnIGRlYXRoLg0KMTk5NjpbQ29tcHV0aW5nXVtRdWFudHVtXSAgTG92IEdyb3ZlciBkZXZpc2VkIGFuIGFsZ29yaXRobSAoR3JvdmVyJ3MgYWxnb3JpdGhtKSB0aGF0IGNvdWxkIHNlYXJjaCBhbiB1bnNvcnRlZCBkYXRhYmFzZSBpbiBzcXVhcmUgcm9vdCB0aW1lIG9uIGEgcXVhbnR1bSBjb21wdXRlciwgd2hpY2ggd291bGQgb3V0cGVyZm9ybSBhbnkgY2xhc3NpY2FsIGFsZ29yaXRobS4NCjE5OTY6W1VTXSBCYXJhY2sgT2JhbWEgd2FzIGVsZWN0ZWQgdG8gdGhlIElsbGlub2lzIFNlbmF0ZSwgc3VjY2VlZGluZyBEZW1vY3JhdGljIFN0YXRlIFNlbmF0b3IgQWxpY2UgUGFsbWVyIGZyb20gSWxsaW5vaXMncyAxM3RoIERpc3RyaWN0LCB3aGljaCwgYXQgdGhhdCB0aW1lLCBzcGFubmVkIENoaWNhZ28gU291dGggU2lkZSBuZWlnaGJvcmhvb2RzIGZyb20gSHlkZSBQYXJr4oCTS2Vud29vZCBzb3V0aCB0byBTb3V0aCBTaG9yZSBhbmQgd2VzdCB0byBDaGljYWdvIExhd24uDQoxOTk2OltVS10gQ2hhcmxlcyBJSUkgYW5kIERpYW5hIGdldHMgZGl2b3JjZWQuDQoxOTk2IChKYW4gMjUpOltCb29rXSBQZXRlciBMeW5jaCAmIEpvaG4gUm90aGNoaWxkJ3MgTGVhcm4gdG8gRWFybjogQSBCZWdpbm5lcidzIEd1aWRlIHRvIHRoZSBCYXNpY3Mgb2YgSW52ZXN0aW5nIGFuZCBCdXNpbmVzcy4NCjE5OTYgKEphbik6W0NyaW1lXVtJbmRpYV0gQW5lZXMgSWJyYWhpbSBhcnJlc3RlZCBpbiBCYWhyYWluLCBzaGlmdGVkIHRvIER1YmFpIGFsbGVnZWRseSBvbiB0aGUgaW50ZXJ2ZW50aW9uIG9mIHNvbWUgb2YgRHViYWkncyBydWxpbmcgbm90YWJsZXMsIGFuZCB3YXMgdGhlbiBhbGxvd2VkIHRvIHNsaXAgYXdheSB0byBLYXJhY2hpLCBQYWtpc3Rhbi4NCjE5OTY6IE5hdGlvbmFsIEFlcm9zcGFjZSBMYWJvcmF0b3JpZXMsIEluZGlhIGluZGlnZW5vdXNseSBidWlsdCBGTE9TT0xWRVIsIEluZGlhJ3MgZmlyc3Qgc3VwZXJjb21wdXRlci4gSXQgd2FzIHJlcGxpY2F0ZWQgYW5kIGluc3RhbGxlZCBhdCBJQ0FEIE1vc2NvdyBpbiAxOTkxIHVuZGVyIFJ1c3NpYW4gY29sbGFib3JhdGlvbi4NCjE5OTY6IEluZGlhL1Bha2lzdGFuL1NyaSBMYW5rYSAxOTk2Lg0KMTk5NjpbQ29tcHV0aW5nXVt3d3ddIE1hcmlvIDY0IGdhbWUgcmFuIDEwMCBtaWxsaW9uIGNhbGN1bGF0aW9ucyBwZXIgc2Vjb25kLCA1NDAgbWlsbGlvbiAoSGFsZi1MaWZlKSBpbiAxOTk4LCBNaW5lY3JhZnQgKDIwMTEpIHJ1bm5pbmcgMTAwIGJpbGxpb24gY2FsY3VsYXRpb25zLCBDeWJlcnB1bmsgMjA3NyAobW9zdCByZWFsaXN0aWMgdmlkZW8gZ2FtZSAyMDI0KSwgeW91IG5lZWQgYSBncmFwaGljcyBjYXJkIHRoYXQgY2FuIHBlcmZvcm0gYXJvdW5kIDM2IHRyaWxsaW9uIGNhbGMgcGVyIHNlY29uZC4NCjE5OTY6IFByb2YgTWFsY29sbSBIZWF0aC4gUHJvZmVzc29yIG9mIEdyZWVrIExhbmd1YWdlIGFuZCBMaXRlcmF0dXJlIEBsZWVkcy5hYy51aywgdHJhbnNsYXRlZCBBcmlzdG90bGUncyBQb2V0aWNzLg0KMTk5NjogVGhlIDU2SyBtb2RlbSB3YXMgaW52ZW50ZWQgYnkgRHIuIEJyZW50IFRvd25zaGVuZA0KMTk5NiAoRmViIDEzKTogTmVwYWxlc2UgQ2l2aWwgV2FyIHN0YXJ0ZWQuIFRoZSBNYW9pc3QgUmViZWxsaW9uIChsYWJlbGxlZCB0aGUgUGVvcGxlJ3MgV2FyIGJ5IHRoZW4gQ1BOKE1hb2lzdCkpIHdhcyBhbiBhcm1lZCBjb25mbGljdCBhZ2FpbnN0IEdvdmVybm1lbnQgb2YgTmVwYWwgKHRoZW4gSE1HIG9mIE5lcGFsKSBmb3VnaHQgZnJvbSAxOTk2IHRvIDIwMDYuIFRoZSByZWJlbGxpb24gd2FzIGxhdW5jaGVkIGJ5IHRoZSBDb21tdW5pc3QgUGFydHkgb2YgTmVwYWwgKE1hb2lzdCkgb24gMTMgRmVicnVhcnkgMTk5NiB3aXRoIHRoZSBtYWluIGFpbSBvZiBvdmVydGhyb3dpbmcgdGhlIE5lcGFsZXNlIG1vbmFyY2h5IGFuZCBlc3RhYmxpc2hpbmcgYSAnUGVvcGxlJ3MgUmVwdWJsaWMnLiBJdCBlbmRlZCB3aXRoIHRoZSBDb21wcmVoZW5zaXZlIFBlYWNlIEFjY29yZCBzaWduZWQgb24gMjEgTm92ZW1iZXIgMjAwNi4NCjE5OTYgKE1hciAxKTogW0dlb1BvbGl0aWNzXSBUaGUgQXNpYeKAk0V1cm9wZSBNZWV0aW5nIChBU0VNKSBpcyBhbiBBc2lhbuKAk0V1cm9wZWFuIHBvbGl0aWNhbCBkaWFsb2d1ZSBmb3J1bSB0byBlbmhhbmNlIHJlbGF0aW9ucyBhbmQgdmFyaW91cyBmb3JtcyBvZiBjb29wZXJhdGlvbiBiZXR3ZWVuIGl0cyBwYXJ0bmVycy4gSXQgd2FzIG9mZmljaWFsbHkgZXN0YWJsaXNoZWQgYXQgdGhlIDFzdCBBU0VNIFN1bW1pdCAoQVNFTTEpIGluIEJhbmdrb2ssIFRoYWlsYW5kLCBieSB0aGUgdGhlbiAxNSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aGUgRXVyb3BlYW4gQ29tbWlzc2lvbiwgdGhlIHRoZW4gNyBNZW1iZXIgU3RhdGVzIG9mIHRoZSBBc3NvY2lhdGlvbiBvZiBTb3V0aGVhc3QgQXNpYW4gTmF0aW9ucyAoQVNFQU4pLCBhbmQgdGhlIGluZGl2aWR1YWwgY291bnRyaWVzIG9mIENoaW5hLCBKYXBhbiwgYW5kIFNvdXRoIEtvcmVhLiBBIHNlcmllcyBvZiBlbmxhcmdlbWVudHMgc2F3IGFkZGl0aW9uYWwgRVUgTWVtYmVyIFN0YXRlcyBqb2luIGFzIHdlbGwgYXMgSW5kaWEsIE1vbmdvbGlhLCBQYWtpc3RhbiBhbmQgdGhlIEFTRUFOIFNlY3JldGFyaWF0IGluIDIwMDgsIEF1c3RyYWxpYSwgTmV3IFplYWxhbmQgYW5kIFJ1c3NpYSBpbiAyMDEwLCBCYW5nbGFkZXNoLCBOb3J3YXksIGFuZCBTd2l0emVybGFuZCBpbiAyMDEyLCBhcyB3ZWxsIGFzIENyb2F0aWEsIGFuZCBLYXpha2hzdGFuIGluIDIwMTQuDQoxOTk2IChBcHIgMjYpOiBbR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2l0aCB0aGUgc2lnbmluZyBvZiB0aGUgVHJlYXR5IG9uIERlZXBlbmluZyBNaWxpdGFyeSBUcnVzdCBpbiBCb3JkZXIgUmVnaW9ucyBpbiBTaGFuZ2hhaSBieSB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4uIExhdGVyIG9uIEp1biAxNSwgMjAwMSBpdCBnb3QgcmVuYW1lZCBhcyBTaGFuZ2hhaSBDb29wZXJhdGlvbiBPcmdhbmlzYXRpb24gKFNDTykgb3IgU2hhbmdoYWkgUGFjdCANCjE5OTYgKE1heSAxNik6IEF0YWwgQmloYXJpIFZhanBheWVlIGJlY29tZXMgUE0gb2YgSW5kaWEgZm9yIHRoZSB2ZXJ5IGZpcnN0IHRpbWUgZm9yIDE2IGRheXMuDQoxOTk2IChKdW4gMSk6IEF0YWwgQmloYXJpIFZhanBheWVlIHJlc2lnbnMuIEhEIERldmUgR293ZGEgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NiAoQXVnIDE0KTpbcmVzZWFyY2hdW2V4dHJlbWVdIEthcmVuIEVsaXphYmV0aCBXZXR0ZXJoYWhuIChPY3RvYmVyIDE2LCAxOTQ4IOKAkyBKdW5lIDgsIDE5OTcpLCBhbHNvIGtub3duIGFzIEthcmVuIFdldHRlcmhhaG4gSmVubmV0dGUsIHdhcyBhbiBBbWVyaWNhbiBwcm9mZXNzb3Igb2YgY2hlbWlzdHJ5IGF0IERhcnRtb3V0aCBDb2xsZWdlLCBOZXcgSGFtcHNoaXJlLCB3aG8gc3BlY2lhbGl6ZWQgaW4gdG94aWMgbWV0YWwgZXhwb3N1cmUuIFNoZSBkaWVkIG9mIG1lcmN1cnkgcG9pc29uaW5nIGF0IHRoZSBhZ2Ugb2YgNDggZHVlIHRvIGFjY2lkZW50YWwgZXhwb3N1cmUgdG8gdGhlIGV4dHJlbWVseSB0b3hpYyBvcmdhbmljIG1lcmN1cnkgY29tcG91bmQgZGltZXRoeWxtZXJjdXJ5IChIZyhDSDMpMikuIFByb3RlY3RpdmUgZ2xvdmVzIGluIHVzZSBhdCB0aGUgdGltZSBvZiB0aGUgaW5jaWRlbnQgcHJvdmlkZWQgaW5zdWZmaWNpZW50IHByb3RlY3Rpb24sIGFuZCBleHBvc3VyZSB0byBvbmx5IGEgc2luZ2xlIGRyb3Agb3IgdHdvIG9mIHRoZSBkaW1ldGh5bG1lcmN1cnkgYWJzb3JiZWQgdGhyb3VnaCB0aGUgZ2xvdmVzIHByb3ZlZCB0byBiZSBmYXRhbCBhZnRlciBsZXNzIHRoYW4gYSB5ZWFyLiBUZXN0cyBsYXRlciByZXZlYWxlZCB0aGF0IGRpbWV0aHlsbWVyY3VyeSBjYW4sIGluIGZhY3QsIHJhcGlkbHkgcGVybWVhdGUgc2V2ZXJhbCBraW5kcyBvZiBsYXRleCBnbG92ZXMgYW5kIGVudGVyIHRoZSBza2luIHdpdGhpbiBhYm91dCAxNSBzZWNvbmRzLiBIZXIgZXhwb3N1cmUgd2FzIGxhdGVyIGNvbmZpcm1lZCBieSBoYWlyIGFuYWx5c2lzLCB3aGljaCBzaG93ZWQgYSBkcmFtYXRpYyBqdW1wIGluIG1lcmN1cnkgbGV2ZWxzIDE3IGRheXMgYWZ0ZXIgdGhlIGluaXRpYWwgYWNjaWRlbnQsIHBlYWtpbmcgYXQgMzkgZGF5cywgZm9sbG93ZWQgYnkgYSBncmFkdWFsIGRlY2xpbmUuIEFwcHJveGltYXRlbHkgdGhyZWUgbW9udGhzIGFmdGVyIHRoZSBpbml0aWFsIGFjY2lkZW50IFdldHRlcmhhaG4gYmVnYW4gZXhwZXJpZW5jaW5nIGJyaWVmIGVwaXNvZGVzIG9mIGFiZG9taW5hbCBkaXNjb21mb3J0IGFuZCBub3RpY2VkIHNpZ25pZmljYW50IHdlaWdodCBsb3NzLiBUaGUgbW9yZSBkaXN0aW5jdGl2ZSBuZXVyb2xvZ2ljYWwgc3ltcHRvbXMgb2YgbWVyY3VyeSBwb2lzb25pbmcsIGluY2x1ZGluZyBsb3NzIG9mIGJhbGFuY2UgYW5kIHNsdXJyZWQgc3BlZWNoLCBhcHBlYXJlZCBpbiBKYW51YXJ5IDE5OTcsIGZpdmUgbW9udGhzIGFmdGVyIHRoZSBhY2NpZGVudC4gSGVyIGJsb29kIGFuZCB1cmluYXJ5IG1lcmN1cnkgY29udGVudCB3ZXJlIG1lYXN1cmVkIGF0IDQsMDAwIM68Zy9MIGFuZCAyMzQgzrxnL0wsIHJlc3BlY3RpdmVseeKAlGJvdGggbWFueSB0aW1lcyB0aGVpciByZXNwZWN0aXZlIHRveGljIHRocmVzaG9sZHMgb2YgMjAwIM68Zy9MIGFuZCA1MCDOvGcvTCAoYmxvb2QgYW5kIHVyaW5lIHJlZmVyZW5jZSByYW5nZXMgYXJlIDEgdG8gOCDOvGcvTCBhbmQgMSB0byA1IM68Zy9MKS4NCjE5OTYgKERlYyA0IDA2OjU4OjA3IFVUQyk6W1NwYWNlXVtNYXJzXVtFYXJ0aF0gTGF1bmNoIG9mIE1hcnMgUGF0aGZpbmRlciBvbiBEZWx0YSBJSSA3OTI1ICgjRDI0MCkNCnJvY2tldCBmcm9tIENhcGUgQ2FuYXZlcmFsIFNMQy0xNy4gVG8gcHJvdmUgdGhhdCB0aGUgZGV2ZWxvcG1lbnQgb2YgImZhc3RlciwgYmV0dGVyIGFuZCBjaGVhcGVyIiBzcGFjZWNyYWZ0IHdhcyBwb3NzaWJsZSAod2l0aCB0aHJlZSB5ZWFycyBmb3IgZGV2ZWxvcG1lbnQgYW5kIGEgY29zdCB1bmRlciAkMTUwIG1pbGxpb24gZm9yIHRoZSBsYW5kZXIsIGFuZCAkMjUgbWlsbGlvbiBmb3IgdGhlIHJvdmVyKS4gVG8gc2hvdyB0aGF0IGl0IHdhcyBwb3NzaWJsZSB0byBzZW5kIGEgbG9hZCBvZiBzY2llbnRpZmljIGluc3RydW1lbnRzIHRvIGFub3RoZXIgcGxhbmV0IHdpdGggYSBzaW1wbGUgc3lzdGVtIGFuZCBhdCBvbmUtZmlmdGVlbnRoIHRoZSBjb3N0IG9mIGEgVmlraW5nIG1pc3Npb24uIChGb3IgY29tcGFyaXNvbiwgdGhlIFZpa2luZyBtaXNzaW9ucyBjb3N0ICQ5MzUgbWlsbGlvbiBpbiAxOTc0IG9yICQzLjUgYmlsbGlvbiBpbiAxOTk3IGRvbGxhcnMuKS4gVG8gZGVtb25zdHJhdGUgTkFTQSdzIGNvbW1pdG1lbnQgdG8gbG93LWNvc3QgcGxhbmV0YXJ5IGV4cGxvcmF0aW9uIGJ5IGZpbmlzaGluZyB0aGUgbWlzc2lvbiB3aXRoIGEgdG90YWwgZXhwZW5kaXR1cmUgb2YgJDI4MCBtaWxsaW9uLCBpbmNsdWRpbmcgdGhlIGxhdW5jaCB2ZWhpY2xlIGFuZCBtaXNzaW9uIG9wZXJhdGlvbnMuDQoxOTk2OiBhIHJhaWQgb24gdGhlIEFuaW1hbCBIdXNiYW5kcnkgZGVwYXJ0bWVudOKAmXMgb2ZmaWNlcyBpbiBDaGFpYmFzYSwgQmloYXIgdW5mb2xkZWQgdGhlIFJzLjk1MCBjcm9yZSBmb2RkZXIgc2NhbSwgaW4gd2hpY2ggdGhlIEJpaGFyIGNoaWVmIG1pbmlzdGVyIExhbHUgUHJhc2FkIFlhZGF2IGNhdGNoIHVwIGluIGEgbGlmZWxvbmcgdHVzc2xlIHdpdGggdGhlIENCSS4NCjE5OTY6W0Jvb2tdW0FkdmVudHVyZV0gSm9uIEtyYWthdWVyJ3MgSW50byB0aGUgV2lsZC4NCjE5OTY6W0NvbXB1dGluZ10gVGhlIFZpZGVvTEFOIHNvZnR3YXJlIG9yaWdpbmF0ZWQgYXMgYSBGcmVuY2ggYWNhZGVtaWMgcHJvamVjdC4gVkxDIHVzZWQgdG8gc3RhbmQgZm9yICJWaWRlb0xBTiBDbGllbnQiIHdoZW4gVkxDIHdhcyBhIGNsaWVudCBvZiB0aGUgVmlkZW9MQU4gcHJvamVjdCwgb2ZmaWNpYWxseSByZWxlYXNlZCB1bmRlciBHTlUgR1BMIG9uIDIwMDEgKEZlYiAxKS4NCjE5OTY6W01lbWVdIERhbmNpbmcgQmFieSBTY3JlZW5zYXZlcg0KMTk5NjpbU3BhY2VYXSBUaGUgZW50aXJlIHByb2Nlc3MgZm9yIHRoZSBKYW1lcyBXZWJiIFNwYWNlIFRlbGVzY29wZSAoSldTVCkgZnJvbSBpbml0aWFsIGNvbmNlcHQgdG8gbGF1bmNoIHNwYW5uZWQgYXBwcm94aW1hdGVseSAyNSB5ZWFycywgd2l0aCBpbml0aWFsIGRlc2lnbnMgYmVnaW5uaW5nIGluIDE5OTYgYW5kIHRoZSB0ZWxlc2NvcGUgbGF1bmNoaW5nIGluIDIwMjEsIGJ1dCBhIHNpZ25pZmljYW50IHBvcnRpb24gb2YgdGhpcyB3YXMgc3BlbnQgaW4gZGVzaWduLCB0ZXN0aW5nLCBhbmQgb3ZlcmNvbWluZyBtYWpvciByZWRlc2lnbnMgYW5kIGRlbGF5cywgbm90IGp1c3QgYXNzZW1ibHkuIA0KMTk5NiAoRmViIDI4KTpbRGVsaGldIEluZGlyYXB1cmFtLCBHaGF6aWFiYWQgd2FzIGVzdGQgd2hlbiBpdHMgZm91bmRhdGlvbiBzdG9uZSAoS2FsYSBQYXRoYXIpIHdhcyBpbmF1Z3VyYXRlZCBieSBTaCBNb3RpbGFsIFZvcmEsIHRoZW4gR292ZXJub3Igb2YgVVAuICgyMDIxKSBJJ3B1cmFtIEV4dG4gdG8gYmUgYnVpbHQgb24gMTIgYWNyZXMgb25seSwgY29uY2VpdmVkIGluIDIwMDQuDQoxOTk2OltCb29rXVtNaWxpdGFyeV1bQ3VsdHVyZV1bRVVdW1VTQV0gR2VvcmdlIFIuUi4gTWFydGluIGlzIHRoZSBBbWVyaWNhbiBhdXRob3Igb2YgdGhlIGVwaWMgZmFudGFzeSBib29rIHNlcmllcyBBIFNvbmcgb2YgSWNlIGFuZCBGaXJlLCB3aGljaCBiZWdhbiB3aXRoIEEgR2FtZSBvZiBUaHJvbmVzICgxOTk2KSBhbmQgc2VydmVkIGFzIHRoZSBiYXNpcyBmb3IgSEJPJ3MgbWFzc2l2ZWx5IHBvcHVsYXIgR2FtZSBvZiBUaHJvbmVzIFRWIHNlcmllcy4gQSBTb25nIG9mIEljZSBhbmQgRmlyZSBpcyBhIHNlcmllcyBvZiBoaWdoIGZhbnRhc3kgbm92ZWxzIGJ5IHRoZSBBbWVyaWNhbiBhdXRob3IgR2VvcmdlIFIuIFIuIE1hcnRpbi4gTWFydGluIGJlZ2FuIHdyaXRpbmcgdGhlIGZpcnN0IHZvbHVtZSwgQSBHYW1lIG9mIFRocm9uZXMsIGluIDE5OTEsIGFuZCBwdWJsaXNoZWQgaXQgaW4gMTk5Ni4gTWFydGluLCB3aG8gb3JpZ2luYWxseSBlbnZpc2lvbmVkIHRoZSBzZXJpZXMgYXMgYSB0cmlsb2d5LCBoYXMgcmVsZWFzZWQgZml2ZSBvdXQgb2Ygc2V2ZW4gcGxhbm5lZCB2b2x1bWVzLiANCg0KW0dlbmVyYXRpb25dIE1pbGxlbm5pYWwgZ2VuZXJhdGlvbiAoMTk4MeKAkzE5OTYpIGVuZHM7IGxhc3RlZCBmb3IgMTUgeWVhcnMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICA1MCB5ZWFycyBvZiBJbmRlcGVuZGVudCBJbmRpYSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSANCg0KW0dlbmVyYXRpb25dIEdlbiBaICgxOTk34oCTMjAxMikgc3RhcnRzOyBhbmQgZXhpc3RzIGZvciBuZXh0IDE1IHllYXJzLg0KDQoxOTk3OltXaG9dW1Jlc2VhcmNoXVtDb21wdXRpbmddW1RlY2hdW0N1bHR1cmVdIFZMQyBNZWRpYSBQbGF5ZXIgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBzdHVkZW50cyBhdCB0aGUgRnJlbmNoIGVuZ2luZWVyaW5nIHNjaG9vbCDDiWNvbGUgQ2VudHJhbGUgUGFyaXMgaW4gMTk5Ni4gV2hpbGUgaXQgc3RhcnRlZCBhcyBhbiBhY2FkZW1pYyBwcm9qZWN0IChWaWRlb0xBTikgdG8gc3RyZWFtIHZpZGVvIG92ZXIgYSBjYW1wdXMgbmV0d29yaywgaXRzIGRldmVsb3BtZW50IGFuZCBtb2Rlcm5pemF0aW9uIHdlcmUgbGF0ZXIgbGVkIGJ5IEplYW4tQmFwdGlzdGUgS2VtcGYuIA0KMTk5NzpbUmVzZWFyY2hdW1NwYWNlXSAyOSBKdWx5IDE5OTc6IGEgTkFTQSBzY2llbnRpc3QgYW5ub3VuY2VkIGV2aWRlbmNlIG9mIGZvc3NpbGl6ZWQgbWljcm9zY29waWMgbGlmZSBmb3JtcyBpbiBhIG1ldGVvcml0ZSBub3QgZnJvbSBhbnkga25vd24gcGxhbmV0Lg0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgR3JvdXAgb2YgRWlnaHQgKEc4KSB3YXMgYW4gaW50ZXJnb3Zlcm5tZW50YWwgcG9saXRpY2FsIGZvcnVtIGZyb20gMTk5NyB0byAyMDE0LCBmb3JtZWQgYnkgaW5jb3Jwb3JhdGluZyBSdXNzaWEgaW50byB0aGUgRzcuIFRoZSBHOCBiZWNhbWUgdGhlIEc3IGFnYWluIGFmdGVyIFJ1c3NpYSB3YXMgZXhwZWxsZWQgaW4gMjAxNCBhZnRlciB0aGUgUnVzc2lhbiBhbm5leGF0aW9uIG9mIENyaW1lYS4gRm91bmRlZDogMTk5NywgRGVudmVyLCBDb2xvcmFkbywgVW5pdGVkIFN0YXRlcw0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBGb3VuZGVkOiA2IEp1bmUgMTk5NywgVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiAoQklNU1RFQykgaXMgYW4gaW50ZXJuYXRpb25hbCBvcmdhbml6YXRpb24gb2Ygc2V2ZW4gU291dGggQXNpYW4gYW5kIFNvdXRoZWFzdCBBc2lhbiBuYXRpb25zLCBob3VzaW5nIDEuNzMgYmlsbGlvbiBwZW9wbGUgYW5kIGhhdmluZyBhIGNvbWJpbmVkIGdyb3NzIGRvbWVzdGljIHByb2R1Y3Qgb2YgVVMkNS4yIHRyaWxsaW9uLg0KMTk5NzpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gYnVpbHQgdGhlIGZpcnN0IGV4cGVyaW1lbnRhbCBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCBjb3VsZCBtYW5pcHVsYXRlIDcgcXViaXRzIHVzaW5nIG51Y2xlYXIgbWFnbmV0aWMgcmVzb25hbmNlIChOTVIpIHRlY2huaXF1ZXMuDQoxOTk3IChKdWwgNCk6W1NwYWNlXVtNYXJzXSBUaGUgTWFycyBQYXRoZmluZGVyIGVuZHVyZWQgYSAzMC1zZWNvbmQgY29tbXVuaWNhdGlvbnMgYmxhY2tvdXQgYXMgaXQgZW50ZXJlZCBNYXJzJyBhdG1vc3BoZXJlLiBJdCBsYW5kZWQgYXQgQXJlcyBWYWxsaXMsIENocnlzZSBQbGFuaXRpYSwgTWFycyAxOcKwN+KAsjQ44oCzTiAzM8KwMTPigLIxMuKAs1cuIE1hcnMgUGF0aGZpbmRlciAoTUVTVVIgUGF0aGZpbmRlcikgaXMgYW4gQW1lcmljYW4gcm9ib3RpYyBzcGFjZWNyYWZ0IHRoYXQgbGFuZGVkIGEgYmFzZSBzdGF0aW9uIHdpdGggYSByb3ZpbmcgcHJvYmUgb24gTWFycyBpbiAxOTk3LiBJdCBjb25zaXN0ZWQgb2YgYSBsYW5kZXIsIHJlbmFtZWQgdGhlIENhcmwgU2FnYW4gTWVtb3JpYWwgU3RhdGlvbiwgYW5kIGEgbGlnaHR3ZWlnaHQsIDEwLjYga2cgKDIzIGxiKSB3aGVlbGVkIHJvYm90aWMgTWFycyByb3ZlciBuYW1lZCBTb2pvdXJuZXIsIHRoZSBmaXJzdCByb3ZlciB0byBvcGVyYXRlIG91dHNpZGUgdGhlIEVhcnRo4oCTTW9vbiBzeXN0ZW0uDQoxOTk3OltCb29rXSBNaXRjaCBBbGJvbSdzIFR1ZXNkYXlzIHdpdGggTW9ycmllLg0KMTk5NzpbR2FtaW5nXSBHcmFuZCBUaGVmdCBBdXRvIChHVEEpIHJlbGVhc2VkIGJ5IERNQSBEZXNpZ24gKGxhdGVyIFJvY2tzdGFyIE5vcnRoKSBmb3IgUFMxLCBXaW5kb3dzIGFuZCBNUy1ET1M7IEdyYW5kIFRoZWZ0IEF1dG86IFZpY2UgQ2l0eSAoMjAwMik7IEdyYW5kIFRoZWZ0IEF1dG86IFNhbiBBbmRyZWFzICgyMDA0KTsgR3JhbmQgVGhlZnQgQXV0byBJViAoMjAwOCk7IEdyYW5kIFRoZWZ0IEF1dG8gViAoMjAxMyk7IEdyYW5kIFRoZWZ0IEF1dG86IFRoZSBUcmlsb2d5IOKAkyBUaGUgRGVmaW5pdGl2ZSBFZGl0aW9uICgyMDIxKQ0KMTk5NzogVGVra2VuIDMgd2FzIGRlc2lnbmVkIGJ5IEthdHN1aGlybyBIYXJhZGEgKE9zYWthLCBPc2FrYSBQcmVmZWN0dXJlLCBKYXBhbikgb2YgQmFuZGFpIE5hbWNvIEVudGVydGFpbm1lbnQgaGVhZHF1YXJ0ZXJlZCBhdCDFjHRhLCBUb2t5by4NCjE5OTcgKE1hciA2KTogW0dlb1BvbGl0aWNzXSBUaGUgSW5kaWFuIE9jZWFuIFJpbSBBc3NvY2lhdGlvbiwgZm9ybWVybHkga25vd24gYXMgdGhlIEluZGlhbiBPY2VhbiBSaW0gSW5pdGlhdGl2ZSBhbmQgdGhlIEluZGlhbiBPY2VhbiBSaW0gQXNzb2NpYXRpb24gZm9yIFJlZ2lvbmFsIENvb3BlcmF0aW9uLCBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBjb25zaXN0aW5nIG9mIDIzIHN0YXRlcyBib3JkZXJpbmcgdGhlIEluZGlhbiBPY2Vhbi4gVGhlIElPUkEgaXMgYSByZWdpb25hbCBmb3J1bSwgdHJpcGFydGl0ZSBpbiBuYXR1cmUsIGJyaW5naW5nIHRvZ2V0aGVyIHJlcHJlc2VudGF0aXZlcyBvZiBHb3Zlcm5tZW50LCBCdXNpbmVzcyBhbmQgQWNhZGVtaWEsIGZvciBwcm9tb3RpbmcgY28tb3BlcmF0aW9uIGFuZCBjbG9zZXIgaW50ZXJhY3Rpb24gYW1vbmcgdGhlbS4gSXQgaXMgYmFzZWQgb24gdGhlIHByaW5jaXBsZXMgb2YgT3BlbiBSZWdpb25hbGlzbSBmb3Igc3RyZW5ndGhlbmluZyBFY29ub21pYyBDb29wZXJhdGlvbiBwYXJ0aWN1bGFybHkgb24gVHJhZGUgRmFjaWxpdGF0aW9uIGFuZCBJbnZlc3RtZW50LCBQcm9tb3Rpb24gYXMgd2VsbCBhcyBTb2NpYWwgRGV2ZWxvcG1lbnQgb2YgdGhlIHJlZ2lvbi4gVGhlIENvb3JkaW5hdGluZyBTZWNyZXRhcmlhdCBvZiBJT1JBIGlzIGxvY2F0ZWQgYXQgRWJlbmUsIE1hdXJpdGl1cy4NCjE5OTcgKEFwciAyMSk6IEguRC4gRGV2ZSBHb3dkYSByZXNpZ25zLiBJbmRlciBLdW1hciBHdWpyYWwgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NyAoSnVuIDYpOiBbR2VvUG9saXRpY3NdIEJJTVNURUMgZm91bmRlZC4gVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBvZiBzZXZlbiBTb3V0aCBBc2lhbiBhbmQgU291dGhlYXN0IEFzaWFuIG5hdGlvbnMsIGhvdXNpbmcgMS43MyBiaWxsaW9uIHBlb3BsZSBhbmQgaGF2aW5nIGEgY29tYmluZWQgZ3Jvc3MgZG9tZXN0aWMgcHJvZHVjdCBvZiAkMy44IHRyaWxsaW9uLiBUaGUgQklNU1RFQyBtZW1iZXIgc3RhdGVzIOKAkyBCYW5nbGFkZXNoLCBCaHV0YW4sIEluZGlhLCBNeWFubWFyLCBOZXBhbCwgU3JpIExhbmthLCBhbmQgVGhhaWxhbmQg4oCTIGFyZSBhbW9uZyB0aGUgY291bnRyaWVzIGRlcGVuZGVudCBvbiB0aGUgQmF5IG9mIEJlbmdhbC4NCjE5OTcgKEp1biA4KTogRGVzcGl0ZSBhZ2dyZXNzaXZlIGNoZWxhdGlvbiB0aGVyYXB5LCBoZXIgY29uZGl0aW9uIHJhcGlkbHkgZGV0ZXJpb3JhdGVkLiBUaHJlZSB3ZWVrcyBhZnRlciB0aGUgZmlyc3QgbmV1cm9sb2dpY2FsIHN5bXB0b21zIGFwcGVhcmVkLCBXZXR0ZXJoYWhuIGxhcHNlZCBpbnRvIHdoYXQgYXBwZWFyZWQgdG8gYmUgYSB2ZWdldGF0aXZlIHN0YXRlIHB1bmN0dWF0ZWQgYnkgcGVyaW9kcyBvZiBleHRyZW1lIGFnaXRhdGlvbi4gT25lIG9mIGhlciBmb3JtZXIgc3R1ZGVudHMgc2FpZCB0aGF0ICJIZXIgaHVzYmFuZCBzYXcgdGVhcnMgcm9sbGluZyBkb3duIGhlciBmYWNlLiBJIGFza2VkIGlmIHNoZSB3YXMgaW4gcGFpbi4gVGhlIGRvY3RvcnMgc2FpZCBpdCBkaWRuJ3QgYXBwZWFyIHRoYXQgaGVyIGJyYWluIGNvdWxkIGV2ZW4gcmVnaXN0ZXIgcGFpbi4iIFdldHRlcmhhaG4gd2FzIHJlbW92ZWQgZnJvbSBsaWZlIHN1cHBvcnQgYW5kIHByb25vdW5jZWQgZGVhZCBvbiBKdW5lIDgsIDE5OTcsIHRlbiBtb250aHMgYWZ0ZXIgaGVyIGluaXRpYWwgZXhwb3N1cmUuIEluIHJlc3BvbnNlLCB0aGUgT2NjdXBhdGlvbmFsIFNhZmV0eSBhbmQgSGVhbHRoIEFkbWluaXN0cmF0aW9uIHJlY29tbWVuZGVkIHRoYXQgdGhlIHVzZSBvZiBkaW1ldGh5bG1lcmN1cnkgYmUgYXZvaWRlZCB1bmxlc3MgYWJzb2x1dGVseSBuZWNlc3NhcnkgYW5kIG1hbmRhdGVkIHRoZSB1c2Ugb2YgcGxhc3RpYy1sYW1pbmF0ZSBnbG92ZXMgKFNpbHZlclNoaWVsZCkgd2hlbiBoYW5kbGluZyB0aGlzIGNvbXBvdW5kLg0KMTk5NyAoSnVuIDEzKTpbSmFja10gQm9yZGVyDQoxOTk3IChKdW4gMjYpOltCb29rXSAzMllPIEouIEsuIFJvd2xpbmcgcHVibGlzaGVzIGhlciBmaXJzdCBIYXJyeSBQb3R0ZXIgYm9vaywgVGhlIFBoaWxvc29waGVyJ3MgU3RvbmU7IA0KVGhlIENoYW1iZXIgb2YgU2VjcmV0cyAoMiBKdWx5IDE5OTgpLA0KVGhlIFByaXNvbmVyIG9mIEF6a2FiYW4gKDggSnVseSAxOTk5KSwNClRoZSBHb2JsZXQgb2YgRmlyZSAoOCBKdWx5IDIwMDApLA0KVGhlIE9yZGVyIG9mIHRoZSBQaG9lbml4ICgsIDI3IEp1bmUgMjAwMyksDQpUaGUgSGFsZi1CbG9vZCBQcmluY2UgKDE2IEp1bHkgMjAwNSksDQpUaGUgRGVhdGhseSBIYWxsb3dzICgyMSBKdWx5IDIwMDcpDQoxOTk3IChBdWcgMjUpOltTcGFjZV0gQWR2YW5jZWQgQ29tcG9zaXRpb24gRXhwbG9yZXIgaXMgYSBOQVNBIEV4cGxvcmVyIHByb2dyYW0gc2F0ZWxsaXRlIGFuZCBzcGFjZSBleHBsb3JhdGlvbiBtaXNzaW9uIHRvIHN0dWR5IG1hdHRlciBjb21wcmlzaW5nIGVuZXJnZXRpYyBwYXJ0aWNsZXMgZnJvbSB0aGUgc29sYXIgd2luZCwgdGhlIGludGVycGxhbmV0YXJ5IG1lZGl1bSwgYW5kIG90aGVyIHNvdXJjZXMuDQoxOTk3IChTZXAgMTMpOiB0aGUgaW50cm9kdWN0b3J5IGVwaXNvZGUgb2YgU2hha3RpbWFuIHdhcyBhaXJlZCBvbiBEb29yZGFyc2hhbiAoSW5kaWEncyBuYXRpb25hbCB0ZWxldmlzaW9uIG5ldHdvcmspIGZyb20gMjcgU2VwdGVtYmVyIDE5OTcgdG8gMjcgTWFyY2ggMjAwNSwgb24gU3VuZGF5cyBhdCAxMiBub29uIElTVC4gVGhlIHRlbGVjYXN0IHNsb3QsIGhvd2V2ZXIgd2FzIHNoaWZ0ZWQgdG8gOTozMCBhLm0uIGZvciB0aGUgbGFzdCBlcGlzb2Rlcy4gDQoxOTk3IChTZXAgMjcgMTA6MjMgVVRDKTpbU3BhY2VdW01hcnNdIExhc3QgY29udGFjdCB3aXRoIE1hcnMgUGF0aGZpbmRlci4gTWlzc2lvbiBkdXJhdGlvbiAoTGF1bmNoIHRvIGxhc3QgY29udGFjdCk6IDkgbW9udGhzLCAyMyBkYXlzLg0KMTk5NyAoT2N0IDMxKTpbQm9va10gRG9uYWxkIFRydW1wJ3MgVHJ1bXA6IFRoZSBBcnQgb2YgdGhlIENvbWViYWNrOyBUaGUgQW1lcmljYSBXZSBEZXNlcnZlICgyMDAwKTsgVHJ1bXA6IFRoaW5rIExpa2UgYSBCaWxsaW9uYWlyZTogRXZlcnl0aGluZyBZb3UgTmVlZCB0byBLbm93IEFib3V0IFN1Y2Nlc3MsIFJlYWwgRXN0YXRlLCBhbmQgTGlmZSAoMjAwNCk7IFdoeSBXZSBXYW50IFlvdSB0byBCZSBSaWNoICgyMDA2KTsgVHJ1bXA6IFRoZSBCZXN0IFJlYWwgRXN0YXRlIEFkdmljZSBJIEV2ZXIgUmVjZWl2ZWQ6IDEwMCBUb3AgRXhwZXJ0cyBTaGFyZSBUaGVpciBTdHJhdGVnaWVzICgyMDA2LCBOb3YgMSk7IFRoaW5rIEJJRyBhbmQgS2ljayBBc3MgaW4gQnVzaW5lc3MgYW5kIExpZmUgKDIwMDcpOyBUcnVtcCBOZXZlciBHaXZlIFVwOiBIb3cgSSBUdXJuZWQgTXkgQmlnZ2VzdCBDaGFsbGVuZ2VzIGludG8gU3VjY2VzcyAoMjAwOCk7IFRpbWUgdG8gR2V0IFRvdWdoOiBNYWtpbmcgQW1lcmljYSAjMSBBZ2FpbiAoMjAxMSk7IENyaXBwbGVkIEFtZXJpY2E6IEhvdyB0byBNYWtlIEFtZXJpY2EgR3JlYXQgQWdhaW4gKDIwMTUpDQoxOTk3OiBBcnVuZGhhdGkgUm95IGJlY2FtZSB0aGUgZmlyc3QgSW5kaWFuIHRvIHdpbiBNYW4gQm9va2VyIFByaXplIGZvciBoZXIgbm92ZWwgJ1RoZSBHb2Qgb2YgU21hbGwgVGhpbmdzJy4NCjE5OTc6IElJVC1KRUUgd2FzIGNvbmR1Y3RlZCB0d2ljZSBhZnRlciB0aGUgUS1QYXBlciB3YXMgbGVha2VkLg0KMTk5NzogTkFTQSBlc3RpbWF0ZWQgdGhlcmUgd2VyZSBhcHByb3guIDIsNjQ1IGFydGlmaWNpYWwgc2F0ZWxsaXRlIHBheWxvYWRzIG9yYml0dGluZyB0aGUgZWFydGggYW5kIDYsMjE2IHBpZWNlcyBvZiBzcGFjZSBkZWJyaXMgYXMgdHJhY2tlZCBieSB0aGUgR1NGQy4gT3ZlciAxNiwyOTEgcHJldmlvdXNseSBsYXVuY2hlZCBvYmplY3RzIGhhdmUgZGVjYXllZCBpbnRvIHRoZSBFYXJ0aCdzIGF0bW9zcGhlcmUuDQoxOTk3OiBCSEMgRmluYW5jaWFsLCBJbmMuIG9mIFBlbm5zeWx2YW5pYSBtZXJnZWQgaW50byBGSVNWIHRvIGZvcm0gU2VjdXJlZCBUcmFuc2FjdGlvbiBQcm9jZXNzaW5nIFNlcnZpY2VzLg0KMTk5NzpbQm9va10gVGhlIEZvdXIgQWdyZWVtZW50czogQSBQcmFjdGljYWwgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSBpcyBhIHNlbGYtaGVscCBib29rIGJ5IGJlc3RzZWxsaW5nIGF1dGhvciBEb24gTWlndWVsIFJ1aXogd2l0aCBKYW5ldCBNaWxsczsgVGhlIE1hc3Rlcnkgb2YgTG92ZTogQSBQcmFjdGljYWwgR3VpZGUgdG8gdGhlIEFydCBvZiBSZWxhdGlvbnNoaXAgLS1Ub2x0ZWMgV2lzZG9tIEJvb2sgKDE5OTksIE1hciAzMCk7IFRoZSBWb2ljZSBvZiBLbm93bGVkZ2U6IEEgUHJhY3RpY2FsIEd1aWRlIHRvIElubmVyIFBlYWNlICgyMDA0LCBNYXIgMTApOyBUaGUgRmlmdGggQWdyZWVtZW50OiBBIFByYWN0aWNhbCBHdWlkZSB0byBTZWxmLU1hc3RlcnkgKDIwMDkpOyBUaGUgQ2lyY2xlIG9mIEZpcmU6IEluc3BpcmF0aW9uIGFuZCBHdWlkZWQgTWVkaXRhdGlvbnMgZm9yIExpdmluZyBpbiBMb3ZlIGFuZCBIYXBwaW5lc3MgKDIwMTMsIEF1ZyAxKTsgVGhlIE1hc3Rlcnkgb2YgU2VsZjogQSBUb2x0ZWMgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSAoMjAxNiwgTWF5IDYpDQoxOTk3OltCb29rXSBKb24gS3Jha2F1ZXIncyBJbnRvIFRoaW4gQWlyOiBBIFBlcnNvbmFsIEFjY291bnQgb2YgdGhlIE10LiBFdmVyZXN0IERpc2FzdGVyOyBVbmRlciB0aGUgQmFubmVyIG9mIEhlYXZlbiAoMjAwMyBKdWwpDQoxOTk3IChEZWMgMTEpOltFbnZdIFRoZSBLeW90byBQcm90b2NvbCB3YXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgd2hpY2ggZXh0ZW5kZWQgdGhlIDE5OTIgVW5pdGVkIE5hdGlvbnMgRnJhbWV3b3JrIENvbnZlbnRpb24gb24gQ2xpbWF0ZSBDaGFuZ2UgKFVORkNDQykgdGhhdCBjb21taXRzIHN0YXRlIHBhcnRpZXMgdG8gcmVkdWNlIGdyZWVuaG91c2UgZ2FzIGVtaXNzaW9ucywgYmFzZWQgb24gdGhlIHNjaWVudGlmaWMgY29uc2Vuc3VzIHRoYXQgKHBhcnQgb25lKSBnbG9iYWwgd2FybWluZyBpcyBvY2N1cnJpbmcgYW5kIChwYXJ0IHR3bykgdGhhdCBodW1hbi1tYWRlIENPMiBlbWlzc2lvbnMgYXJlIGRyaXZpbmcgaXQuDQoxOTk3OltJbmRpYV1bRWR1Y2F0aW9uXVtDdWx0dXJlXSBFa2xhdnlhIE1vZGVsIFJlc2lkZW50aWFsIFNjaG9vbCBpcyBhIEdvdmVybm1lbnQgb2YgSW5kaWEgc2NoZW1lIGZvciBtb2RlbCByZXNpZGVudGlhbCBzY2hvb2wgZm9yIEluZGlhbiB0cmliYWxzIGFjcm9zcyBJbmRpYS4gSXQgaXMgb25lIG9mIHRoZSBmbGFnc2hpcCBpbnRlcnZlbnRpb25zIG9mIHRoZSBNaW5pc3RyeSBvZiBUcmliYWwgQWZmYWlycywgR292ZXJubWVudCBvZiBJbmRpYSBhbmQgd2FzIGludHJvZHVjZWQgaW4gdGhlIHllYXIgMTk5Ny05OCB0byBlbnN1cmUgdHJpYmFsIHN0dWRlbnRzIGdldCBhY2Nlc3MgdG8gcXVhbGl0eSBlZHVjYXRpb24gaW4gdGhlIHJlbW90ZSB0cmliYWwgYXJlYXMuIEVNUlNzIGFyZSBzZXQgdXAgaW4gU3RhdGVzL1VUcyB3aXRoIGdyYW50cyB1bmRlciBBcnRpY2xlIDI3NSgxKSBvZiB0aGUgQ29uc3RpdHV0aW9uIG9mIEluZGlhLiBBcyBwZXIgdGhlIGJ1ZGdldCAyMDE4LTE5LCBldmVyeSBibG9jayB3aXRoIG1vcmUgdGhhbiA1MCUgU1QgcG9wdWxhdGlvbiBhbmQgYXQgbGVhc3QgMjAsMDAwIHRyaWJhbCBwZXJzb25zLCB3aWxsIGhhdmUgYW4gRWtsYXZ5YSBNb2RlbCBSZXNpZGVudGlhbCBTY2hvb2wgYnkgdGhlIHllYXIgMjAyMi4NCjE5OTc6W1NwYWNlXSBIaXBwYXJjb3MgKDE5ODkgLTE5OTMpLiBJdCB0b29rIDQtOCB5ZWFycyB0byBvcmdhbml6ZSBhbmQgcHVibGlzaCB0aGUgNCB5ZWFycyBzdHVkeSBieSB0aGlzIGV4cGVyaW1lbnQsIHdoaWNoIHBlcm1pdHRlZCB0aGUgZmlyc3QgaGlnaC1wcmVjaXNpb24gbWVhc3VyZW1lbnRzIG9mIHRoZSBpbnRyaW5zaWMgYnJpZ2h0bmVzc2VzIChjb21wYXJlZCB0byB0aGUgbGVzcyBwcmVjaXNlIGFwcGFyZW50IGJyaWdodG5lc3MpLCBwcm9wZXIgbW90aW9ucywgYW5kIHBhcmFsbGF4ZXMgb2Ygc3RhcnMsIGVuYWJsaW5nIGJldHRlciBjYWxjdWxhdGlvbnMgb2YgdGhlaXIgZGlzdGFuY2UgYW5kIHRhbmdlbnRpYWwgdmVsb2NpdHkuIFdoZW4gY29tYmluZWQgd2l0aCByYWRpYWwgdmVsb2NpdHkgbWVhc3VyZW1lbnRzIGZyb20gc3BlY3Ryb3Njb3B5LCBhc3Ryb3BoeXNpY2lzdHMgd2VyZSBhYmxlIHRvIGZpbmFsbHkgbWVhc3VyZSBhbGwgc2l4IHF1YW50aXRpZXMgbmVlZGVkIHRvIGRldGVybWluZSB0aGUgbW90aW9uIG9mIHN0YXJzLiBUaGUgcmVzdWx0aW5nIEhpcHBhcmNvcyBDYXRhbG9ndWUsIGEgaGlnaC1wcmVjaXNpb24gY2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiAxMTgsMjAwIHN0YXJzLCB3YXMgcHVibGlzaGVkIGluIDE5OTcuIFRoZSBsb3dlci1wcmVjaXNpb24gVHljaG8gQ2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiBhIG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBhdCB0aGUgc2FtZSB0aW1lLCB3aGlsZSB0aGUgZW5oYW5jZWQgVHljaG8tMiBDYXRhbG9ndWUgb2YgMi41IG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBpbiAyMDAwLiBIaXBwYXJjb3MnIGZvbGxvdy11cCBtaXNzaW9uLCBHYWlhLCB3YXMgbGF1bmNoZWQgaW4gMjAxMy4NCjE5OTc6W1NwYWNlXVtSZXNlYXJjaF0gU2luY2UgdGhlIDE5OTcgcHJvcG9zYWwgb2YgdGhlIEFkUy9DRlQgKEFudGktZGUgU2l0dGVyL0NvbmZvcm1hbCBGaWVsZCBUaGVvcnkpIGNvcnJlc3BvbmRlbmNlLCB0aGUgcHJlZG9taW5hbnQgYmVsaWVmIGFtb25nIHBoeXNpY2lzdHMgaXMgdGhhdCBpbmZvcm1hdGlvbiBpcyBpbmRlZWQgcHJlc2VydmVkIGluIGJsYWNrIGhvbGUgZXZhcG9yYXRpb24uIA0KMTk5NzpbU3BhY2VdW1Jlc2VhcmNoXSBBIHdpZGVseSBwdWJsaWNpemVkIGJldCBtYWRlIGluIDE5OTcgYmV0d2VlbiBKb2huIFByZXNraWxsIG9uIHRoZSBvbmUgaGFuZCB3aXRoIEhhd2tpbmcgYW5kIEtpcCBUaG9ybmUgb24gdGhlIG90aGVyIHRoYXQgaW5mb3JtYXRpb24gd2FzIG5vdCBsb3N0IGluIGJsYWNrIGhvbGVzLiBUaGUgc2NpZW50aWZpYyBkZWJhdGUgb24gdGhlIHBhcmFkb3ggd2FzIGRlc2NyaWJlZCBpbiBhIHBvcHVsYXIgYm9vayBwdWJsaXNoZWQgaW4gMjAwOCBieSBMZW9uYXJkIFN1c3NraW5kIGNhbGxlZCBUaGUgQmxhY2sgSG9sZSBXYXIuIChUaGUgYm9vayBjYXJlZnVsbHkgbm90ZXMgdGhhdCB0aGUgJ3dhcicgd2FzIHB1cmVseSBhIHNjaWVudGlmaWMgb25lLCBhbmQgdGhhdCBhdCBhIHBlcnNvbmFsIGxldmVsLCB0aGUgcGFydGljaXBhbnRzIHJlbWFpbmVkIGZyaWVuZHMuKSBUaGUgYm9vayBzdGF0ZXMgdGhhdCBIYXdraW5nIHdhcyBldmVudHVhbGx5IHBlcnN1YWRlZCB0aGF0IGJsYWNrLWhvbGUgZXZhcG9yYXRpb24gd2FzIHVuaXRhcnkgYnkgdGhlIGhvbG9ncmFwaGljIHByaW5jaXBsZSwgd2hpY2ggd2FzIGZpcnN0IHByb3Bvc2VkIGJ5ICd0IEhvb2Z0LCBmdXJ0aGVyIGRldmVsb3BlZCBieSBTdXNza2luZCBhbmQgbGF0ZXIgZ2l2ZW4gYSBwcmVjaXNlIHN0cmluZyB0aGVvcnkgaW50ZXJwcmV0YXRpb24gYnkgdGhlIEFkUy9DRlQgY29ycmVzcG9uZGVuY2UuIEluIDIwMDQsIEhhd2tpbmcgYWxzbyBjb25jZWRlZCB0aGUgMTk5NyBiZXQsIHBheWluZyBQcmVza2lsbCB3aXRoIGEgYmFzZWJhbGwgZW5jeWNsb3BlZGlhICJmcm9tIHdoaWNoIGluZm9ybWF0aW9uIGNhbiBiZSByZXRyaWV2ZWQgYXQgd2lsbCIgYWx0aG91Z2ggVGhvcm5lIHJlZnVzZWQgdG8gY29uY2VkZS4NCjE5OTc6W0VhcnRoXVtQaHlzaWNzXVtSZXNlYXJjaF0gdGhlcmUgd2VyZSB0d28gbGFyZ2UgZWFydGhxdWFrZXMgb2ZmIHRoZSBjb2FzdCBvZiBDaGlsZS4gVGhlIG1hZ25pdHVkZSBvZiB0aGUgZmlyc3QsIGluIEp1bHksIHdhcyBlc3RpbWF0ZWQgYXQgTXfigK82LjksIGJ1dCB3YXMgYmFyZWx5IGZlbHQsIGFuZCBvbmx5IGluIHRocmVlIHBsYWNlcy4gSW4gT2N0b2JlciBhIE134oCvNy4xIHF1YWtlIGluIG5lYXJseSB0aGUgc2FtZSBsb2NhdGlvbiwgYnV0IHR3aWNlIGFzIGRlZXAgYW5kIG9uIGEgZGlmZmVyZW50IGtpbmQgb2YgZmF1bHQsIHdhcyBmZWx0IG92ZXIgYSBicm9hZCBhcmVhLCBpbmp1cmVkIG92ZXIgMzAwIHBlb3BsZSwgYW5kIGRlc3Ryb3llZCBvciBzZXJpb3VzbHkgZGFtYWdlZCBvdmVyIDEwLDAwMCBob3VzZXMuIEFzIGNhbiBiZSBzZWVuIGluIHRoZSB0YWJsZSBiZWxvdywgdGhpcyBkaXNwYXJpdHkgb2YgZGFtYWdlIGRvbmUgaXMgbm90IHJlZmxlY3RlZCBpbiBlaXRoZXIgdGhlIG1vbWVudCBtYWduaXR1ZGUgKE134oCvKSBub3IgdGhlIHN1cmZhY2Utd2F2ZSBtYWduaXR1ZGUgKE1z4oCvKS4gT25seSB3aGVuIHRoZSBtYWduaXR1ZGUgaXMgbWVhc3VyZWQgb24gdGhlIGJhc2lzIG9mIHRoZSBib2R5LXdhdmUgKG1i4oCvKSBvciB0aGUgc2Vpc21pYyBlbmVyZ3kgKE1l4oCvKSBpcyB0aGVyZSBhIGRpZmZlcmVuY2UgY29tcGFyYWJsZSB0byB0aGUgZGlmZmVyZW5jZSBpbiBkYW1hZ2UuIChhcyByZXNlYXJjaGVkIGJ5IENob3ksIEJvYXR3cmlnaHQgJiBLaXJieSAyMDAxLCBwLiAxMy4pLiBNdyA2Ljkgd2FzIGFjdHVhbGx5IE1lIDYuMSwgYW4gaW50ZXJwbGF0ZS10aHJ1c3QgdHlwZSBvZiBmYXVsdCwgd2hpbGUgTXcgNy4xIHdhcyBhY3R1YWxseSBhIDcuNSBNZSBpbnRyYXNsYWItbm9ybWFsIHR5cGUgb2YgZmF1bHQuDQoxOTk3OltSZXNlYXJjaF0gRHVyaW5nIHN1cnZleXMgY2FycmllZCBvdXQgYmV0d2VlbiAxOTk3IGFuZCAyMDAxLCBhIHNwb3Qgd2FzIGZvdW5kIGFsb25nIHRoZSBNYXJpYW5hIFRyZW5jaCB0aGF0IGhhZCBhIGRlcHRoIHNpbWlsYXIgdG8gdGhlIENoYWxsZW5nZXIgRGVlcCwgcG9zc2libHkgZXZlbiBkZWVwZXIuIEl0IHdhcyBkaXNjb3ZlcmVkIHdoaWxlIHNjaWVudGlzdHMgZnJvbSB0aGUgSGF3YWlpIEluc3RpdHV0ZSBvZiBHZW9waHlzaWNzIGFuZCBQbGFuZXRvbG9neSB3ZXJlIGNvbXBsZXRpbmcgYSBzdXJ2ZXkgYXJvdW5kIEd1YW07IHRoZXkgdXNlZCBhIHNvbmFyIG1hcHBpbmcgc3lzdGVtIHRvd2VkIGJlaGluZCB0aGUgcmVzZWFyY2ggc2hpcCB0byBjb25kdWN0IHRoZSBzdXJ2ZXkuIFRoaXMgbmV3IHNwb3Qgd2FzIG5hbWVkIHRoZSBITVJHIChIYXdhaWkgTWFwcGluZyBSZXNlYXJjaCBHcm91cCkgRGVlcCwgYWZ0ZXIgdGhlIGdyb3VwIG9mIHNjaWVudGlzdHMgd2hvIGRpc2NvdmVyZWQgaXQuDQoxOTk3OltTcGFjZVhdIEEgcmVzb2x2ZWQgY2lyY3Vtc3RlbGxhciBkaXNrIHdhcyBmaXJzdCBpZGVudGlmaWVkIGluIDE5OTcgd2l0aCB0aGUgT3dlbnMgVmFsbGV5IFJhZGlvIE9ic2VydmF0b3J5LiBUaGUgc2VtaS1tYWpvciBheGlzIHdhcyBpbml0aWFsbHkgZXN0aW1hdGVkIHRvIGJlIDExMCBBVS4gSEQgMTYzMjk2IGFuZCBzdXJyb3VuZGluZ3MgQ3JlZGl0OiBFU08vRGlnaXRpemVkIFNreSBTdXJ2ZXkgMjsgQWNrbm93bGVkZ2VtZW50OiBEYXZpZGUgRGUgTWFydGluIE9ic2VydmF0aW9uIGRhdGEgRXBvY2ggSjIwMDAgICAgICBFcXVpbm94IEoyMDAwIENvbnN0ZWxsYXRpb24JU2FnaXR0YXJpdXMgUmlnaHQgYXNjZW5zaW9uCTE3aCA1Nm0gMjEuMjlzIERlY2xpbmF0aW9uCeKIkjIxwrAgNTfigLIgMjEuODfigLMgQXBwYXJlbnQgbWFnbml0dWRlIChWKQk2Ljg1OyBDaGFyYWN0ZXJpc3RpY3MgRXZvbHV0aW9uYXJ5IHN0YWdlCUhlcmJpZyBBZSBzdGFyIFNwZWN0cmFsIHR5cGUJQTNWYWVrQTFtQTE7IEFzdHJvbWV0cnkgUmFkaWFsIHZlbG9jaXR5IChSdikJLTQuMDAgwrEzLjNbM10ga20vcyBQcm9wZXIgbW90aW9uICjOvCkJUkE6IC03LjU4NiDCsTAuMDQxIG1hcy95cjsgRGVjLjogLTM5LjQ1OCDCsTAuMDI5IG1hcy95cls0XSBQYXJhbGxheCAoz4ApCTkuOTA0M8KxMC4wNDA4IG1hc1s0XSBEaXN0YW5jZQkzMjkgwrEgMSBseSAoMTAxLjAgwrEgMC40IHBjKSBEZXRhaWxzOyBNYXNzCTEuOTXCsTAuMDcgTeKYiSBSYWRpdXMJMS44N8KxMC4wNSBS4piJIEx1bWlub3NpdHkJMjAuNCszLjYg4oiSMy4wIEzimIkgU3VyZmFjZSBncmF2aXR5IChsb2cgZykJNC4xMMKxMC4xMCBjZ3MgVGVtcGVyYXR1cmUJOTAwMMKxMjUwIEsgQWdlCTYuMDMrMC4yOCDiiJIwLjI3IE15ciBPdGhlciBkZXNpZ25hdGlvbnMgQkQtMjEgNDc3OSwgQ1BELTIxIDY1MDgsIEVNKiBNV0MgMjc1LCBISVAgODc4MTksIElSQVMgMTc1MzMtMjE1NiwgMk1BU1MgSjE3NTYyMTI4LTIxNTcyMTgsIFBEUyA0NzMsIFRZQyA2MjYyLTIxMzEtMSwgRGF0YWJhc2UgcmVmZXJlbmNlcyBTSU1CQUQNCjE5OTc6W1NwYWNlWF0gMTAxOTkgQ2hhcmlrbG8gaXMgYSByaW5nZWQgYXN0ZXJvaWQgb3IgY2VudGF1ciBpbiB0aGUgb3V0ZXIgU29sYXIgU3lzdGVtLiBJdCBpcyB0aGUgbGFyZ2VzdCBrbm93biBjZW50YXVyLCB3aXRoIGEgZGlhbWV0ZXIgb2YgYWJvdXQgMjUwIGttLiBJdCBvcmJpdHMgdGhlIFN1biBiZXR3ZWVuIFNhdHVybiBhbmQgVXJhbnVzIHdpdGggYW4gb3JiaXRhbCBwZXJpb2Qgb2YgNjIuNSB5ZWFycy4gV2lraXBlZGlhIE9yYml0YWwgcGVyaW9kOiA2MyB5ZWFycyBSYWRpdXM6IDE1MSBrbSBEaXNjb3ZlcmVkOiAxNSBGZWJydWFyeSAxOTk3IERpbWVuc2lvbnM6ICgyODcuNisyLjg7IOKIkjMuMCkgw5cgKDI3MC40KzIuODsg4oiSNS42KSDDlyAoMTk4LjIrMTAuODsg4oiSNS40KSBrbTogMTEgRGlzY292ZXJlcjogSmFtZXMgVi4gU2NvdHRpIFNwZWN0cmFsIHR5cGU6IEQtdHlwZSBhc3Rlcm9pZCBBcGhlbGlvbjogMTguNDIwIEFVDQoxOTk3OltTcGFjZVhdIFRoZSBHcmVhdCBEYXlsaWdodCBGaXJlYmFsbCAtIFRoZSBhdG1vc3BoZXJpYyBwYXNzIG1vZGlmaWVkIHRoZSBvYmplY3QncyBtYXNzIGFuZCBvcmJpdCBhcm91bmQgdGhlIFN1bi4gQSAxOTk0IHN0dWR5IGZvdW5kIHRoYXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgaW4gYW4gRWFydGgtY3Jvc3Npbmcgb3JiaXQgYW5kIHByZWRpY3RlZCB0aGF0IGl0IHdvdWxkIHBhc3MgY2xvc2UgdG8gRWFydGggYWdhaW4gaW4gQXVndXN0IDE5OTcuIEhvd2V2ZXIsIHRoZSBvYmplY3QgaGFzIG5vdCBiZWVuIG9ic2VydmVkIGFnYWluIGFuZCBzbyBpdHMgcG9zdC1lbmNvdW50ZXIgb3JiaXQgcmVtYWlucyB1bmtub3duLg0KMTk5NzpOYWZpc2EgSm9zZXBoIHdhcyB0aGUgeW91bmdlc3QgTWlzcyBJbmRpYSB3aW5uZXIgYXQgYWdlIDE5LCB3aW5uaW5nIHRoZSB0aXRsZSBpbiAxOTk3LiBTaGUgbGF0ZXIgYmVjYW1lIGEgbW9kZWwgYW5kIHRlbGV2aXNpb24gcGVyc29uYWxpdHkuIFdoaWxlIG90aGVyIHdpbm5lcnMgbGlrZSBNZWVuYWtzaGkgU2VzaGFkcmkgd2VyZSBhbHNvIDE3IHdoZW4gdGhleSB3b24gaW4gMTk4MSwgSm9zZXBoIGlzIG9mdGVuIGNpdGVkIGZvciBoZXIgZWFybHkgd2luIGF0IDE5LCB3aGljaCB3YXMgdGhlbiBhIHlvdW5nZXIgYWdlIHRoYW4gaXMgdHlwaWNhbGx5IHNlZW4gaW4gdGhlIGNvbXBldGl0aW9uLiANCjE5OTc6W3NwYWNlXVt0ZWNoXSBUaGUgZmluYWwgQmxvY2sgSUlBIHdhcyBpbiBOb3YgMTk5Nywgd2hpbGUgQmxvY2sgSUlScyBiZWdhbiByZXBsYWNpbmcgdGhlbSBzaG9ydGx5IGFmdGVyLCBsYXN0aW5nIHVudGlsIDIwMDQuIEJsb2NrIElJUiAoUmVwbGVuaXNobWVudCkgbGF1bmNoZXMgZm9sbG93ZWQgZnJvbSAxOTk3IHRvIDIwMDQsIHdpdGggdGhlIGZpcnN0IGxhdW5jaCBpbiBKYW51YXJ5IDE5OTcuIA0KDQoxOTk4OltTcGFjZVhdIFRoZSBwcmltYXJ5IGNvbnN0cnVjdGlvbiBwaGFzZSBvZiB0aGUgSW50ZXJuYXRpb25hbCBTcGFjZSBTdGF0aW9uIChJU1MpIHRvb2sgYXBwcm94aW1hdGVseSAxMyB5ZWFycywgZnJvbSAxOTk4IHRvIDIwMTEsIHdpdGggdGhlIGZpcnN0IG1vZHVsZSBsYXVuY2hpbmcgaW4gTm92ZW1iZXIgMTk5OCBhbmQgSVNTIEFzc2VtYmx5IENvbXBsZXRlIGRlY2xhcmVkIGluIE1heSAyMDExLiBIb3dldmVyLCBhc3NlbWJseSB3YXMgYSBjb250aW51b3VzLCBtdWx0aS1zdGFnZSBwcm9jZXNzIGludm9sdmluZyBtb3JlIHRoYW4gMzAgbWlzc2lvbnMsIG51bWVyb3VzIHNwYWNld2Fsa3MsIGFuZCByb2JvdGljIGFzc2lzdGFuY2UgdG8gYnVpbGQgdGhlIHN0YXRpb24gcGllY2UgYnkgcGllY2UgaW4gb3JiaXQuIEV2ZW4gYWZ0ZXIgMjAxMSwgdGhlIElTUyBjb250aW51ZWQgdG8gZXZvbHZlIHdpdGggb25nb2luZyBhZGRpdGlvbnMgYW5kIHVwZ3JhZGVzLg0KMTk5ODpbUmVzZWFyY2hdW1NwYWNlXSBTcHJpbmcsIDE5OTg6IGEgbWljcm9mb3NzaWwgdGhhdCB3YXMgZm91bmQgaW4gYSBtZXRlb3JpdGUgYW5kIHBob3RvZ3JhcGhlZCBpbiAxOTY2LCB3YXMgcmVjb2duaXplZCBieSBhIFJ1c3NpYW4gbWljcm9iaW9sb2dpc3QgYXMgYSBtYWduZXRvdGFjdGljIGJhY3Rlcml1bS4gQnkgRmFsbCwgMTk5ODogTkFTQSdzIHB1YmxpYyBwb3NpdGlvbiBvbiBsaWZlLWZyb20tc3BhY2Ugc2hpZnRlZCBkcmFtYXRpY2FsbHkuDQoxOTk4OiBBcyBhIHJlc2VhcmNoIHByb2plY3QgYXQgU3RhbmZvcmQgVW5pdmVyc2l0eSwgU2VyZ2V5IEJyaW4gYW5kIExhcnJ5IFBhZ2UgY3JlYXRlZCBhIHNlYXJjaCBlbmdpbmUgdGhhdCBsaXN0ZWQgcmVzdWx0cyBhY2NvcmRpbmcgdG8gdGhlIHBvcHVsYXJpdHkgb2YgdGhlIHBhZ2VzLCBhZnRlciBjb25jbHVkaW5nIHRoYXQgdGhlIG1vc3QgcG9wdWxhciByZXN1bHQgd291bGQgb2Z0ZW4gYmUgdGhlIG1vc3QgdXNlZnVsLiBBZnRlciByYWlzaW5nICQxIG1pbGxpb24gZnJvbSBmYW1pbHksIGZyaWVuZHMgYW5kIG90aGVyIGludmVzdG9ycywgdGhlIHBhaXIgbGF1bmNoZWQgdGhlIGNvbXBhbnkgaW4gMTk5OC4gR29vZ2xlIGhhcyBzaW5jZSBiZWNvbWUgdGhlIHdvcmxk4oCZcyBtb3N0IHBvcHVsYXIgc2VhcmNoIGVuZ2luZSwgcmVjZWl2aW5nIG1vcmUgdGhhbiAyMDAgbWlsbGlvbiBxdWVyaWVzIGVhY2ggZGF5Lg0KMTk5OCAoTm92IDIwKTogDQoxOTk4IChBcHIgMjcpOiBSUkIgZm91bmRlZCBhcyBSYWlsd2F5IFJlY3J1aXRtZW50IENvbnRyb2wgQm9hcmQgaXMgYSBnb3Zlcm5tZW50IG9yZ2FuaXNhdGlvbiBpbiBJbmRpYS4gSXQgd2FzIHNldCB1cCBpbiAxOTk4IGluIHRoZSBNaW5pc3RyeSBvZiBSYWlsd2F5cyAoUmFpbHdheSBCb2FyZCksIE5ldyBEZWxoaS5JbiAxOTQ1LCB0aGUgU2VydmljZXMgQ29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgYXQgQm9tYmF5LCBDYWxjdXR0YSwgTWFkcmFzIGFuZCBMdWNrbm93LiBJbiAxOTgzLCB0byBjYXRlciB0byB0aGUgbmVlZHMgb2YgYXJlYXMgd2hpY2ggd2VyZSBiZWluZyBuZWdsZWN0ZWQgZHVlIHRvIGxvY2F0aW9ucyBvZiB0aGUgZXhpc3RpbmcgY29tbWlzc2lvbnMsIHNldmVuIG1vcmUgY29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgdml6LCBhdCBBaG1lZGFiYWQsIEFqbWVyLCBCaG9wYWwsIEJodXZuZXNod2FyLCBDaGFuZGlnYXJoLCBKYW1tdSBhbmQgU3JpbmFnYXIgd2l0aCBzaXR0aW5nIGF0IExlaCBhbmQgVHJpdmVuZHJ1bS4gSW4gMTk4NCB0d28gbW9yZSBzZXJ2aWNlIGNvbW1pc3Npb25zIHdlcmUgc2V0IHVwIGF0IE1hbGRhIGFuZCBHb3Jha2hwdXIuDQoxOTk4IChNYXkgMTkpOiBBdGFsIEJpaGFyaSBWYWpwYXllZSBiZWNvbWVzIFBNIG9mIEluZGlhIGZvciB0aGUgc2Vjb25kIHRpbWUsIG5vdyBmb3IgNiB5ZWFycyB0aWxsIE1heSAyMiwgMjAwNC4gDQoxOTk4IChNYXkgMjggMTU6MTVQU1QpOiBDaGFnYWktSSBpcyB0aGUgY29kZSBuYW1lIG9mIGZpdmUgc2ltdWx0YW5lb3VzIHVuZGVyZ3JvdW5kIG51Y2xlYXIgdGVzdHMgY29uZHVjdGVkIGJ5IFBha2lzdGFuLiBUaGUgdGVzdHMgd2VyZSBwZXJmb3JtZWQgYXQgUmFzIEtvaCBIaWxscyBpbiB0aGUgQ2hhZ2FpIERpc3RyaWN0IG9mIEJhbG9jaGlzdGFuIFByb3ZpbmNlLiBDaGFnYWktSSB3YXMgUGFraXN0YW4ncyBmaXJzdCBwdWJsaWMgdGVzdCBvZiBudWNsZWFyIHdlYXBvbnMuIFBha2lzdGFuJ3MgZmlzc2lsZSBtYXRlcmlhbCBwcm9kdWN0aW9uIHRha2VzIHBsYWNlIGF0IE5pbG9yZSwgS2FodXRhLCBhbmQgS2h1c2hhYiBOdWNsZWFyIENvbXBsZXgsIHdoZXJlIHdlYXBvbnMtZ3JhZGUgcGx1dG9uaXVtIGlzIHJlZmluZWQuDQoxOTk4OiBBZnRlciBjb21wbGV0aW5nIGhpcyBYIHN0YW5kYXJkIGV4YW1pbmF0aW9ucywgUmFuYmlyIEthcG9vciwgYWdlZCAxNiwgd29ya2VkIGFzIGFuIGFzc2lzdGFudCBkaXJlY3RvciB0byBoaXMgZmF0aGVyIG9uIHRoZSBmaWxtIEFhIEFiIExhdXQgQ2hhbGVuICgxOTk5KSwgZHVyaW5nIHdoaWNoIGhlIGRldmVsb3BlZCBhIGNsb3NlciBib25kIHdpdGggaGltLg0KMTk4ODogTmV0d29ya2VkIERhdGEgUHJvY2Vzc2luZyBDb3IsIElvd2EgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBJbnN1cmFuY2UgZGl2aXNpb24uDQoxOTk4OltCb29rXSBSb2JlcnQgR3JlZW5lJ3MgVGhlIDQ4IExhd3Mgb2YgUG93ZXI7IFRoZSAzMyBTdHJhdGVnaWVzIG9mIFdhciAoMjAwNik7IE1hc3RlcnkgKDIwMTIsIE5vdiAxMyk7IFRoZSBMYXdzIG9mIEh1bWFuIE5hdHVyZSAoMjAxOCwgT2N0IDE2KQ0KMTk5ODpbU3BhY2VdW1Jlc2VhcmNoXVtFeHRyZW1lXSBUaGVuIGNhbWUgMTk5OCBhbmQgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgKEhTVCkgb2JzZXJ2YXRpb25zIG9mIHZlcnkgZGlzdGFudCBzdXBlcm5vdmFlIHRoYXQgc2hvd2VkIHRoYXQsIGEgbG9uZyB0aW1lIGFnbywgdGhlIHVuaXZlcnNlIHdhcyBhY3R1YWxseSBleHBhbmRpbmcgbW9yZSBzbG93bHkgdGhhbiBpdCBpcyB0b2RheS4gU28gdGhlIGV4cGFuc2lvbiBvZiB0aGUgdW5pdmVyc2UgaGFzIG5vdCBiZWVuIHNsb3dpbmcgZHVlIHRvIGdyYXZpdHksIGFzIGV2ZXJ5b25lIHRob3VnaHQsIGl0IGhhcyBiZWVuIGFjY2VsZXJhdGluZy4NCjE5OTg6W0NyaW1lXVtJbmRpYV0gQW5lZXMgYXJyZXN0ZWQgaW4gVUFFIG9uIGNoYXJnZXMgb2YgaGF2aW5nIG11cmRlcmVkIGEgZm9ybWVyIGFzc29jaWF0ZSBhbmQgdGhlbiByaXZhbCwgSXJmYW4gR29nYSwgaW4gRHViYWksIGJ1dCB3YXMgZnJlZWQgYWZ0ZXIgdHdvIGRheXMgZm9yICdsYWNrIG9mIGV2aWRlbmNlJy4NCjE5OTg6W0NvbXB1dGluZ11bUXVhbnR1bV0gUmVzZWFyY2hlcnMgYXQgSUJNLCBPeGZvcmQsIEJlcmtlbGV5LCBTdGFuZm9yZCwgYW5kIE1JVCBwcm9kdWNlZCBhIDItcXViaXQgY29tcHV0aW5nIHN5c3RlbS4NCjE5OTg6W3d3d10gV2lyZXNoYXJrIGlzIGEgZnJlZSBhbmQgb3Blbi1zb3VyY2UgcGFja2V0IGFuYWx5emVyLiBJdCBpcyB1c2VkIGZvciBuZXR3b3JrIHRyb3VibGVzaG9vdGluZywgYW5hbHlzaXMsIHNvZnR3YXJlIGFuZCBjb21tdW5pY2F0aW9ucyBwcm90b2NvbCBkZXZlbG9wbWVudCwgYW5kIGVkdWNhdGlvbi4gT3JpZ2luYWxseSBuYW1lZCBFdGhlcmVhbCwgdGhlIHByb2plY3Qgd2FzIHJlbmFtZWQgV2lyZXNoYXJrIGluIE1heSAyMDA2IGR1ZSB0byB0cmFkZW1hcmsgaXNzdWVzLg0KMTk5ODpbVVNdW0Vjb25vbXldRGF2aWQgUm9ja2VmZWxsZXIgU3IuIHdhcyBhd2FyZGVkIHRoZSBQcmVzaWRlbnRpYWwgTWVkYWwgb2YgRnJlZWRvbSBieSBQcmVzaWRlbnQgQmlsbCBDbGludG9uIGZvciBoaXMgd29yayBvbiBJbnRlcm5hdGlvbmFsIEV4ZWN1dGl2ZSBTZXJ2aWNlIENvcnBzLg0KMTk5ODpbRGVmXVtBdmlhdGlvbl0gVGhlIExvY2toZWVkIFNSLTcxIEJsYWNrYmlyZCBmbGV3IHNvIGhpZ2ggYW5kIHNvIGZhc3QgdGhhdCB0aGUgY3JldyBuZWVkZWQgcHJlc3N1cml6ZWQgc3BhY2Ugc3VpdHMgd2hlbiBmbHlpbmcgaXQuIEFuZCBpdCBpcyBzYWlkIHRoYXQgYXQgdGhlIG1heGltdW0gYWx0aXR1ZGUgb2YgaXQgaXQgd2FzIHBvc3NpYmxlIHRvIHNlZSB0aGUgY3VydmF0dXJlIG9mIHRoZSBlYXJ0aCwgd2hpY2ggcmVmZXJzIHRvIHRoaXMgcXVvdGUgYnkgQ29sb25lbCBBbGlzb246IOKAnE9uIGEgY2xlYXIgZGF5IHlvdSBjYW4gc2VlIGZvcmV2ZXLigKbigJ0uIFRoZSBzZXJ2aWNlIGNlaWxpbmcgb2YgODUsMDAwIGZlZXQgKDI1LDkwMG0pIG1lYW50IHRoYXQgaXQgd2FzIGFuIGV4Y2VsbGVudCBleHBlcmltZW50YWwgdW5pdCBmb3Igc3BhY2UgdHJhdmVscy4gVGhhdCwgY29tYmluZWQgd2l0aCB0aGUgZ3JlYXQgc3BlZWRzIG9mIGl0IHdhcyB0d28gb2YgdGhlIHJlYXNvbnMgd2h5IE5BU0EgZGVjaWRlZCB0byB0YWtlIG92ZXIgdGhlIGxhc3QgdHdvIEJsYWNrYmlyZHMgYWZ0ZXIgaXRzIHJldGlyZW1lbnQgZnJvbSB0aGUgQWlyIEZvcmNlIGluIDE5OTguIFRoaXMgbWVhbnMgdGhhdCB0aGUgd29ybGTigJlzIGZhc3Rlc3QgYWlyY3JhZnQgd2FzIGluIHNlcnZpY2UgZnJvbSAxOTY2IHVudGlsIE5BU0EgcmV0aXJlZCBpdHMgdHdvIHVuaXRzIGluIDE5OTksIGFuZCBtb3N0IG9mIHRoZSByZW1haW5pbmcgQmxhY2tiaXJkcyBhcmUgdG9kYXkgc3RhdGlvbmVkIGF0IG11c2V1bXMgb3IgbWlsaXRhcnkgYmFzZXMgYWNyb3NzIHRoZSBVUy4NCjE5OTg6SW4gMTk5OCwgR2F1dGFtIEFkYW5pLCBhbG9uZyB3aXRoIGhpcyBhc3NvY2lhdGUgU2hhbnRpbGFsIFBhdGVsLCB3YXMga2lkbmFwcGVkIGZvciByYW5zb20gaW4gQWhtZWRhYmFkLCBJbmRpYS4gVGhleSB3ZXJlIGFiZHVjdGVkIGF0IGd1bnBvaW50IGFmdGVyIGxlYXZpbmcgdGhlIEthcm5hdmF0aSBDbHViIGluIGEgY2FyLiBUaGUga2lkbmFwcGVycywgYWxsZWdlZGx5IGdhbmdzdGVycyBGYXpsdSBSZWhtYW4gYW5kIEJob2dpbGFsIERhcmppLCByZXBvcnRlZGx5IGRlbWFuZGVkIGEgcmFuc29tIG9mICQxLjUtMiBtaWxsaW9uLiBCb3RoIEFkYW5pIGFuZCBQYXRlbCB3ZXJlIHJlbGVhc2VkIGEgZGF5IGxhdGVyLCBidXQgaXQncyB1bmNsZWFyIGlmIHRoZSByYW5zb20gd2FzIHBhaWQuIA0KVGhlIGtpZG5hcHBpbmcgaW5jaWRlbnQgaGFwcGVuZWQgaW4gdGhlIG1pZC0xOTkwcywgYXJvdW5kIHRoZSB0aW1lIEFkYW5pJ3MgYnVzaW5lc3Mgc3VjY2Vzc2VzIHN0YXJ0ZWQgYXR0cmFjdGluZyB1bndhbnRlZCBhdHRlbnRpb24uIFRoZSBraWRuYXBwaW5nIHdhcyBhbGxlZ2VkbHkgY2FycmllZCBvdXQgYnkgRmF6bHUgUmVobWFuIGFuZCBCaG9naWxhbCBEYXJqaSwgYWxzbyBrbm93biBhcyAiTWFtYSIuIFRoZXkgd2VyZSBsYXRlciBhY3F1aXR0ZWQgZHVlIHRvIGxhY2sgb2YgZXZpZGVuY2UuIA0KVGhlIGFiZHVjdGlvbiBpcyBqdXN0IG9uZSBvZiB0aGUgY2hhbGxlbmdlcyBBZGFuaSBoYXMgZmFjZWQuIEhlIHdhcyBhbHNvIGNhdWdodCBpbiB0aGUgMjYvMTEgTXVtYmFpIHRlcnJvciBhdHRhY2tzIGF0IHRoZSBUYWogSG90ZWwuIE1vcmUgcmVjZW50bHksIGhlIGhhcyBmYWNlZCBhY2N1c2F0aW9ucyBvZiBicmliZXJ5IGFuZCBzZWN1cml0aWVzIGZyYXVkLiANCkFkYW5pIGFuZCBvdGhlcnMgd2VyZSBlc2NvcnRlZCBieSBzdGFmZiB0byB0aGUga2l0Y2hlbiBhbmQgdGhlbiB0aGUgYmFzZW1lbnQuIFRoZXkgc3BlbnQgdGhlIGVudGlyZSBuaWdodCBpbiBhIGhhbGwgd2FpdGluZyBmb3IgcmVzY3VlLiBBZGFuaSBsYXRlciB0b2xkIG5ld3MgY2hhbm5lbHMgdGhhdCBoZSBzYXcg4oCcZGVhdGggYXQgYSBkaXN0YW5jZSBvZiBqdXN0IDE1IGZlZXQu4oCdIEhlIHdhcyByZXNjdWVkIHRoZSBuZXh0IG1vcm5pbmcgYnkgc2VjdXJpdHkgZm9yY2VzLg0KMTk5ODpbRW52XVtEaXNhc3Rlcl0gRWFzdGVybiBJbmRpYSwgMTk5OCBCYW5nbGFkZXNoIGZsb29kOyA0ayBkZWF0aHMNCjE5OTg6W1dob11bUmVzZWFyY2hdW0NvbXB1dGluZ11bVGVjaF1bQ3VsdHVyZV0gSW50ZXJuZXQgRG93bmxvYWQgTWFuYWdlciAoSURNKSB3YXMgZGV2ZWxvcGVkIGJ5IFRvbmVjIEluYy4sIGFuIEFtZXJpY2FuIGNvbXBhbnkgdGhhdCBzdGFydGVkIHRoZSBwcm9qZWN0IGluIDE5OTggYW5kIHJlbGVhc2VkIHRoZSBzb2Z0d2FyZSBpbiAyMDAxLiBUb25lYyBJbmMuIGZvY3VzZXMgb24gbmV0d29yayBwcm9ncmFtbWluZyBhbmQgY3JlYXRlZCBJRE0gdG8gc3BlZWQgdXAgZG93bmxvYWRzIGJ5IHVzaW5nIGR5bmFtaWMgZmlsZSBzZWdtZW50YXRpb24sIGFjY2VsZXJhdGluZyBzcGVlZHMgYnkgdXAgdG8gOCB0aW1lcy4gDQoNCjE5OTk6NCBKYW51YXJ5IDE5OTk6IE5BU0Egb2ZmaWNpYWxseSByZWNvZ25pemVkIHRoZSBwb3NzaWJpbGl0eSB0aGF0IGxpZmUgb24gRWFydGggY29tZXMgZnJvbSBzcGFjZS4NCjE5IE1hcmNoIDE5OTk6IE5BU0Egc2NpZW50aXN0cyBhbm5vdW5jZWQgdGhhdCB0d28gbW9yZSBtZXRlb3JpdGVzIGhvbGQgZXZlbiBzdHJvbmdlciBmb3NzaWxpemVkIGV2aWRlbmNlIGZvciBwYXN0IGxpZmUgb24gTWFycy4NCjE5OTk6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEcyMCBvciBHcm91cCBvZiAyMCBpcyBhbiBpbnRlcmdvdmVybm1lbnRhbCBmb3J1bSBjb21wcmlzaW5nIDE5IHNvdmVyZWlnbiBjb3VudHJpZXMsIHRoZSBFdXJvcGVhbiBVbmlvbiwgYW5kIHRoZSBBZnJpY2FuIFVuaW9uLiBGb3VuZGVkOiAyNiBTZXB0ZW1iZXIgMTk5OTsgQ2hhaXJtYW4gKEluY3VtYmVudCk6IEN5cmlsIFJhbWFwaG9zYSwgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYQ0KMTk5OTogVGhlIHRlcm0gV2ktRmkgd2FzIGludmVudGVkIGJ5IEludGVyYnJhbmQgKGFuIGFtZXJpY2FuIGJyYW5kIGNvbnN1bHRhbmN5IGNvbXBhbnkpIGFzIGEgcHVuIHVwb24gdGhlIHdvcmQgaGktZmkuDQpXaS1GaSBBbGxpYW5jZSBmb3JtZWQgYXMgYSB0cmFkZSBhc3NvY2lhdGlvbiB0byBob2xkIHRoZSBXaS1GaSB0cmFkZW1hcmsgdW5kZXIgd2hpY2ggbW9zdCBwcm9kdWN0cyBhcmUgc29sZC4NCjE5OTk6IHRoZSB0ZXJtDQoxOTk5OiBJc2xhbWljIFN0YXRlIG9mIElyYXEgYW5kIHRoZSBMZXZhbnQgKGFsc28ga25vd24gYXMgdGhlIElzbGFtaWMgU3RhdGUgb2YgSXJhcSBhbmQgU3lyaWEsIElzbGFtaWMgU3RhdGUsIG9yIGNvbW1vbmx5LCBJU0lTKSBmb3VuZGVkIGFzIEphbWEnYXQgYWwtVGF3aGlkIHdhbC1KaWhhZCBieSBBYnUgTXVzYWIgYWwtWmFycWF3aSBIUSdkIGF0ICBBbC1SYXFxYWguDQoxOTk5IChBcHIgMTIpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBJIFdhbnQgSXQgVGhhdCBXYXkuDQoxOTk5IChBcHIgMTgpOiBDT05DRVJUIGJlY2FtZSBvcGVyYXRpb25hbC4gSXQgd2FzIGRldmVsb3BlZCB1c2luZyBjbGllbnQtc2VydmVyIG1vZGVsIGZvciBkaXN0cmlidXRlZCBjb21wdXRpbmcgaXMgYSB0b3RhbCBzb2x1dGlvbiB0byB0aGUgbmV0d29ya2luZyBvZiB0aGUgUFJTcy4gQWxsIHRoZSBmaXZlIHNpdGVzIGhhdmUgYmVlbiBpbnRlcm5ldC13b3JrZWQgb3ZlciBhIDY0IGticHMgbGluZSB1c2luZyByb3V0ZXJzLCBvbiBsZWFzZWQgY29tbXVuaWNhdGlvbiBsaW5lIGNvbm5lY3Rpb25zIGZyb20gRGVwYXJ0bWVudCBvZiBUZWxlY29tIChET1QpLg0KMTk5OTogQ3JlZGl0IGNhcmRzIGFjY2VwdGVkIGZvciBib29raW5nIHRpY2tldHMgYW5kIHJlc2VydmF0aW9ucyBpbiBzb21lIHN0YXRpb25zIChpbmNsdWRpbmcgTXVtYmFpIENTVCkuDQoxOTk5IChNYXkgMSk6W0Jvb2tdIFJvYmVydCBLaXlvc2FraSAmIFNoYXJvbiBMZWNodGVyJ3MgUmljaCBEYWQncyBDYXNoZmxvdyBRdWFkcmFudDogUmljaCBEYWQncyBHdWlkZSB0byBGaW5hbmNpYWwgRnJlZWRvbTsgUmljaCBEYWQncyBHdWlkZSB0byBJbnZlc3Rpbmc6IFdoYXQgdGhlIFJpY2ggSW52ZXN0IGluIFRoYXQgdGhlIFBvb3IgYW5kIE1pZGRsZSBDbGFzcyBEbyBOb3QhICgyMDAxLCBKYW4gMSk7IFRoZSBSZWFsIEJvb2sgb2YgUmVhbCBFc3RhdGU6IFJlYWwgRXhwZXJ0cy4gUmVhbCBTdG9yaWVzLiBSZWFsIExpZmUuICgyMDA5LCBNYXkgMTIpOyBSaWNoIEtpZCBTbWFydCBLaWQ6IEdpdmluZyBZb3VyIENoaWxkIGEgRmluYW5jaWFsIEhlYWQgU3RhcnQgKDIwMDEsIEphbiAxKTsgDQoxOTk5IChNYXkgMTgpOltNdXNpY10gTWlsbGVubml1bSBpcyB0aGUgdGhpcmQgc3R1ZGlvIGFsYnVtIChzZWNvbmQgaW4gdGhlIFVuaXRlZCBTdGF0ZXMpIGJ5IEFtZXJpY2FuIGJveSBiYW5kIEJhY2tzdHJlZXQgQm95cywgcmVsZWFzZWQgYnkgSml2ZSBSZWNvcmRzLg0KMTk5OSAoRnJpLCAyNCBEZWMpOiBJbmRpYW4gQWlybGluZXMgRmxpZ2h0IDgxNCBjb21tb25seSBrbm93biBhcyBJQyA4MTQgd2FzIGFuIEluZGlhbiBBaXJsaW5lcyBBaXJidXMgQTMwMCBlbiByb3V0ZSBmcm9tIFRyaWJodXZhbiBJbnRlcm5hdGlvbmFsIEFpcnBvcnQgaW4gS2F0aG1hbmR1LCBOZXBhbCB0byBJbmRpcmEgR2FuZGhpIEludGVybmF0aW9uYWwgQWlycG9ydCBpbiBEZWxoaSwgSW5kaWEgd2FzIGhpamFja2VkLiBIYXJrYXQtdWwtTXVqYWhpZGVlbiB3YXMgYWNjdXNlZCBvZiB0aGUgaGlqYWNraW5nLg0KMTk5OTogSVJDVEMNCjE5OTkgKEF1Zyk6IEJvb2tNeVNob3cNCjE5OTkgKFNlcCAxNCk6IFtHZW9Qb2xpdGljc10gVGhlIENvbmZlcmVuY2Ugb24gSW50ZXJhY3Rpb24gYW5kIENvbmZpZGVuY2UtQnVpbGRpbmcgTWVhc3VyZXMgaW4gQXNpYSAoQ0lDQSkgaXMgYW4gaW50ZXItZ292ZXJubWVudGFsIGZvcnVtIGZvciBlbmhhbmNpbmcgY29vcGVyYXRpb24gdG93YXJkcyBwcm9tb3RpbmcgcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYS4gSXQgaXMgYSBmb3J1bSBiYXNlZCBvbiB0aGUgcmVjb2duaXRpb24gdGhhdCB0aGVyZSBpcyBjbG9zZSBsaW5rIGJldHdlZW4gcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYSBhbmQgaW4gdGhlIHJlc3Qgb2YgdGhlIHdvcmxkLiBUaGUga2V5IGlkZWEgb2YgdGhlIENvbmZlcmVuY2UgaXMgYmFzZWQgb24gdGhlIHByaW9yaXR5IG9mIHRoZSBpbmRpdmlzaWJpbGl0eSBvZiBzZWN1cml0eSwgam9pbnQgaW5pdGlhdGl2ZSBhbmQgbXV0dWFsbHkgYmVuZWZpY2lhbCBpbnRlcmFjdGlvbiBvZiBzbWFsbCBhbmQgbGFyZ2Ugc3RhdGVzLg0KMTk5OTogTm9ibGUgRWR1Y2F0aW9uIFNvY2lldHkncyBOb2JsZSBQdWJsaWMgU2Nob29sIChOUFMpLCBHYWpyYXVsYSBmb3VuZGVkIHdpdGggMjEzMDYyNyBhcyBpdHMgQ0JTRSBBZmZpbGlhdGlvbiBuby4NCjE5OTk6IGZpcnN0IC53bWEgZmlsZSBjcmVhdGVkDQoxOTk5OiBOYXBzdGVyIGZvdW5kZWQuDQoxOTk5IChEZWMgMTQpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBTaG93IE1lIHRoZSBNZWFuaW5nIG9mIEJlaW5nIExvbmVseS4gDQoxOTk5OltNdXNpY10gRHIuIERyZSBmdC4gU25vb3AgRG9nZydzIFN0aWxsIEQuUi5FLg0KMTk5OTpbQ3VsdHVyZV0gVGhlIENpdHRhc2xvdyBvcmdhbml6YXRpb24gd2FzIGNyZWF0ZWQgYnkgUGFvbG8gU2F0dXJuaW5pLCB0aGUgZm9ybWVyIG1heW9yIG9mIEdyZXZlIGluIENoaWFudGksIEl0YWx5LiBTYXR1cm5pbmkgd2FzIGluc3BpcmVkIGJ5IENhcmxvIFBldHJpbmkgYW5kIGhpcyBTbG93IEZvb2QgbW92ZW1lbnQsIHN0YXJ0ZWQgaW4gdGhlIDE5ODBzIHRvIHByb3Rlc3QgdGhlIGZpcnN0IE1jRG9uYWxkJ3MgY2hhaW4gaW4gUm9tZS4gU2luY2UgdGhlbiwgdGhlIENpdHRhc2xvdyBtb3ZlbWVudCBoYXMgZ3Jvd24gYWNyb3NzIGZvdXIgY29udGluZW50cywgd2l0aCAyNjIgcGFydGljaXBhdGluZyB0b3ducyBhcyBvZiAyMDIwLiANCjE5OTk6W01hbmFnZW1lbnRdW0J1c2luZXNzXVtQc3ljaG9sb2d5XVtSZXNlYXJjaF0gRHVubmluZyBhbmQgS3J1Z2VyIEVmZmVjdDogRGF2aWQgRHVubmluZyBhbmQgSnVzdGluIEtydWdlciBwdWJsaXNoZWQgdGhlIGluaXRpYWwgc3R1ZHkgaW4gMTk5OSB1bmRlciB0aGUgdGl0bGUgIlVuc2tpbGxlZCBhbmQgVW5hd2FyZSBvZiBJdDogSG93IERpZmZpY3VsdGllcyBpbiBSZWNvZ25pemluZyBPbmUncyBPd24gSW5jb21wZXRlbmNlIExlYWQgdG8gSW5mbGF0ZWQgU2VsZi1Bc3Nlc3NtZW50cyIuDQoxOTk5OltSZXNlYXJjaF0gUmVzZWFyY2ggYnkgVVMgTmF0aW9uYWwgUmVzZWFyY2ggQ291bmNpbC4gV2F0ZXIgZnJvbSB1bmRlcmdyb3VuZCBzb3VyY2VzIG1heSBjb250YWluIHNpZ25pZmljYW50IGFtb3VudHMgb2YgcmFkb24gZGVwZW5kaW5nIG9uIHRoZSBzdXJyb3VuZGluZyByb2NrIGFuZCBzb2lsIGNvbmRpdGlvbnMsIHdoZXJlYXMgc3VyZmFjZSBzb3VyY2VzIGdlbmVyYWxseSBkbyBub3QuDQoxOTk5OltOU0VdIEluY29ycG9yYXRlZCBpbiAxOTk5LCBJUkNUQyBpcyBhIE1pbmkgUmF0bmEgKENhdGVnb3J5IDEsIENlbnRyYWwgUHVibGljIFNlY3RvciBFbnRlcnByaXNlcyApIGFuZCB0aGUgb25seSBjb21wYW55IGF1dGhvcml6ZWQgYnkgdGhlIEluZGlhbiBnb3Zlcm5tZW50IHRvIHByb3ZpZGUgb25saW5lIHJhaWx3YXkgdGlja2V0cywgY2F0ZXJpbmcgc2VydmljZXMsIGFuZCBwYWNrYWdlZCBkcmlua2luZyB3YXRlciBhdCByYWlsd2F5IHN0YXRpb25zIGFuZCB0cmFpbnMgaW4gSW5kaWEuDQoxOTk5OltNbnRuZ2ddW0Jvb2tdIFN0ZXZlIEhvdXNlIGlzIGEgd29ybGQtcmVub3duZWQgY2xpbWJlciwgbW91bnRhaW4gZ3VpZGUgYW5kIFBhdGFnb25pYSBhbWJhc3NhZG9yLCB3aWRlbHkgcmVnYXJkZWQgZm9yIGhpcyBjbGVhbiwgbGlnaHQtYW5kLWZhc3Qgc3R5bGUuIEhlIGhhcyBwdWJsaXNoZWQgYXJ0aWNsZXMgaW4gYSBudW1iZXIgb2YgcGVyaW9kaWNhbHMgaW5jbHVkaW5nOiBBbHBpbmlzdCwgUm9jayBhbmQgSWNlLCBDbGltYmluZywgVGhlIEFtZXJpY2FuIEFscGluZSBKb3VybmFsLCBHcmlwcGVkLCBDYW5hZGlhbiBBbHBpbmUgSm91cm5hbCwgQ2xpbWIsIFZlcnRpY2FsLCBNb250YWduZXMsIFJpc2ssIEFscCssIENhbXBvIEJhc2UsIERlc25pdmVsLCBhbmQgU3RpbGUgQWxwaW4uIEhpcyBlc3NheXMgaGF2ZSBiZWVuIHB1Ymxpc2hlZCBpbiBzZXZlcmFsIGJvb2tzIGluY2x1ZGluZzsgQ29udGFjdDogTW91bnRhaW4gQ2xpbWJpbmcgYW5kIEVudmlyb25tZW50YWwgVGhpbmtpbmc7IFNvbHRhcmksIGEgY29sbGVjdGlvbiBvZiBlc3NheXMgYWJvdXQgc29sbyBjbGltYmluZyBwdWJsaXNoZWQgaW4gSXRhbGlhbjsgQmVyZywgYSBHZXJtYW4gYm9vayBhYm91dCBjbGltYmluZyBpbiB0aGUgSGltYWxheWE7IGFuZCBhbiB1cGNvbWluZyBib29rIGFib3V0IE5hbmdhIFBhcmJhdCBlZGl0ZWQgYnkgUmVpbmhvbGQgTWVzc25lci4gSGUgaGFzIHdvcmtlZCBhcyBhIFBhdGFnb25pYSBhbHBpbmUgYW1iYXNzYWRvciBzaW5jZSAxOTk5LiBQdWJsaXNoZWQ6IFRyYWluaW5nIGZvciB0aGUgTmV3IEFscGluaXNtOiBBIE1hbnVhbCBmb3IgdGhlIENsaW1iZXIgYXMgQXRobGV0ZSBQYXBlcmJhY2sg4oCTIElsbHVzdHJhdGVkLCAzIEFwcmlsIDIwMTQNCjE5OTk6W01udG5nZ10gQ29ucmFkIEFua2VyIChib3JuIE5vdmVtYmVyIDI3LCAxOTYyKSBpcyBhbiBBbWVyaWNhbiByb2NrIGNsaW1iZXIsIG1vdW50YWluZWVyLCBhbmQgYXV0aG9yLiBIZSB3YXMgdGhlIHRlYW0gbGVhZGVyIG9mIFRoZSBOb3J0aCBGYWNlIGNsaW1iaW5nIHRlYW0gZm9yIDI2IHllYXJzIHVudGlsIDIwMTguWzJdIEluIDE5OTksIGhlIGxvY2F0ZWQgR2VvcmdlIE1hbGxvcnkncyBib2R5IG9uIEV2ZXJlc3QgYXMgYSBtZW1iZXIgb2YgYSBzZWFyY2ggdGVhbSBsb29raW5nIGZvciB0aGUgcmVtYWlucyBvZiB0aGUgQnJpdGlzaCBjbGltYmVyIHdobyB3YXMgbGFzdCBzZWVuIGluIDE5MjQuDQoxOTk5OlRoZSBQaXBpc3RyZWwgVmlydXMgZmxldyBmb3IgdGhlIGZpcnN0IHRpbWUgb24gQXVndXN0IDEwLCAxOTk5LiBQcm9kdWN0aW9uIGJlZ2FuIG9uIEphbnVhcnkgMjAsIDIwMDAuIFRoZSBkZXZlbG9wbWVudCBvZiB0aGUgc2hvcnQgd2luZyB2ZXJzaW9uIHN0YXJ0ZWQgaW4gMjAwNy4gVGhlIFZpcnVzIFNXIHByb2R1Y3Rpb24gc3RhcnRlZCBpbiAyMDA4LiBUaGUgVmlydXMgd29uIHRoZSBOQVNBIDIwMDcgUGVyc29uYWwgQWlyIFZlaGljbGUgKFBBVikgQ2hhbGxlbmdlIGFuZCB0aGUgMjAwOCBHZW5lcmFsIEF2aWF0aW9uIFRlY2hub2xvZ3kgKEdBVCkgQ2hhbGxlbmdlLg0KMTk5OTpbc2lsdmljc10gU3VzdGFpbmFibGUgUHJhY3RpY2VzOiBSZXNlYXJjaCBpbiB0aGUgMjB0aCBjZW50dXJ5IHZhbGlkYXRlZCB0aGF0IHNlY29uZC1ncm93dGggc3RhbmRzIGNvdWxkIGJlIHN1c3RhaW5hYmx5IG1hbmFnZWQgdGhyb3VnaCB0ZWNobmlxdWVzIGxpa2UgdGhlIHNlZWQgdHJlZSBtZXRob2QuIFRvZGF5LCBzaWx2aWN1bHR1cmUgZm9jdXNlcyBvbiBjb21wbGV4IHN0YW5kIHN0cnVjdHVyZXMsIGJhbGFuY2luZyBjb21tZXJjaWFsIGRlbWFuZCB3aXRoIGVudmlyb25tZW50YWwgc3Rld2FyZHNoaXAuIA0KDQoyMXN0IGNlbnR1cnkgQ0Ugc3RhcnRlZCBvbiAxc3QgSmFuIDIwMDEgQUQuDQoNCjIwMDBzOltSZXNlYXJjaF0gVGhlIGNsYWltIHRoYXQgIndlIGFyZSA2MCUgYmFuYW5hIiAob3Igc2hhcmUgNjAlIG9mIG91ciBETkEpIGlzIGEgcG9wdWxhciwgeWV0IG9mdGVuIG1pc2ludGVycHJldGVkLCBzdGF0aXN0aWMgdGhhdCBvcmlnaW5hdGVkIGZyb20gY29tcGFyaXNvbnMgb2YgcHJvdGVpbi1jb2RpbmcgZ2VuZXMsIGxpa2VseSBwb3B1bGFyaXplZCBpbiB0aGUgZWFybHkgMjAwMHMgZm9sbG93aW5nIHByZWxpbWluYXJ5IHN0dWRpZXMgb2YgdGhlIGJhbmFuYSBnZW5vbWUuIEl0IHJlZmVycyB0byBhYm91dCA2MCUgb2YgaHVtYW4gZ2VuZXMgaGF2aW5nIGEgcmVjb2duaXphYmxlIGNvdW50ZXJwYXJ0IGluIGJhbmFuYXMsIG5vdCA2MCUgb2Ygb3VyIHRvdGFsIEROQS4gDQpNYW55IG9mIHRoZSDigJxob3VzZWtlZXBpbmfigJ0gZ2VuZXMgdGhhdCBhcmUgbmVjZXNzYXJ5IGZvciBiYXNpYyBjZWxsdWxhciBmdW5jdGlvbiwgc3VjaCBhcyBmb3IgcmVwbGljYXRpbmcgRE5BLCBjb250cm9sbGluZyB0aGUgY2VsbCBjeWNsZSwgYW5kIGhlbHBpbmcgY2VsbHMgZGl2aWRlIGFyZSBzaGFyZWQgYmV0d2VlbiBtYW55IHBsYW50cyAoaW5jbHVkaW5nIGJhbmFuYXMpIGFuZCBhbmltYWxzLldoaWxlIDYwJSBvZiBnZW5lcyBoYXZlIGNvdW50ZXJwYXJ0cywgdGhlc2UgZXNzZW50aWFsIGdlbmVzIG1ha2UgdXAgb25seSBhIHNtYWxsIGZyYWN0aW9uIG9mIHRoZSB0b3RhbCBnZW5vbWU7IGh1bWFucyBhbmQgYmFuYW5hcyBhcmUgbm90IDYwJSBpZGVudGljYWwgb3ZlcmFsbC4gDQpUaGUgcGhyYXNlIGlzIGVzc2VudGlhbGx5IGEgc2ltcGxpZmllZCwgb2Z0ZW4tZXhhZ2dlcmF0ZWQsIHdheSBvZiBoaWdobGlnaHRpbmcgdGhhdCBhbGwgbGlmZSBzaGFyZXMgY29tbW9uIGFuY2VzdHJhbCBnZW5lcyBmb3IgYmFzaWMgY2VsbHVsYXIgcHJvY2Vzc2VzLiANCjIwMDBzOltNQkFdIFNob3VsZCBDb3N0IE1vZGVsaW5nOiBNb2Rlcm4gIlNob3VsZCBDb3N0IiBtb2RlbHMgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBpZGVhbCBjb3N0IG9mIGEgcHJvZHVjdCwgYWNjb3VudGluZyBmb3IgbGFib3IsIG1hdGVyaWFscywgYW5kIG92ZXJoZWFkLiBFbnZpcm9ubWVudGFsICYgU29jaWFsIEltcGFjdDogTW9kZXJuIENCQSBub3cgcm91dGluZWx5IGluY2x1ZGVzIGVudmlyb25tZW50YWwgYW5kIHNvY2lhbCBpbXBhY3RzIGluIGFkZGl0aW9uIHRvIGZpbmFuY2lhbCBvbmVzLiBTaGlmdCBmcm9tIExvY2FsIHRvIEdsb2JhbDogRWFybHksIGhpZ2hseSBsb2NhbCBhc3Nlc3NtZW50cyBldm9sdmVkIGludG8gbGFyZ2Utc2NhbGUsIG5hdGlvbmFsLCBhbmQgaW50ZXJuYXRpb25hbCBDQkEuIFJlZmluZW1lbnQgb2YgVGVjaG5pcXVlczogTW92aW5nIGZyb20gc2ltcGxlLCBzaW5nbGUtcGVyaW9kIG1vZGVscyB0byBjb21wbGV4LCBtdWx0aS1wZXJpb2Qgc2ltdWxhdGlvbnMuIEluY3JlYXNlZCBEYXRhIFVzZTogVGhlIGF2YWlsYWJpbGl0eSBvZiBsYXJnZSwgZ3JhbnVsYXIgZGF0YSBzZXRzIGhhcyBhbGxvd2VkIGZvciBtb3JlIHByZWNpc2UgYW5kIHJlbGlhYmxlIGFuYWx5c2lzLiANCjIwMDBzOltNbnRuZ2ddW0V4dHJlbWVdIEluIHRoZSBlYXJseSAyMDAwcywgRGlkaWVyIEJlcnRob2Qgd2FzIHRoZSBiZXN0IGNyYWNrIGNsaW1iZXIgaW4gdGhlIHdvcmxkLCB0aGVuIGhlIGRyb3BwZWQgb3V0IG9mIGNsaW1iaW5nIGFuZCBlc3NlbnRpYWxseSBkaXNhcHBlYXJlZCBmcm9tIHRoZSB3b3JsZC4NCjIwMDBzOltSZWFsdHldIEVhcmx5IDIwMDBzOiBSZWFsIGVzdGF0ZSB3YXMgaW4gaXRzIGVhcmx5IHN0YWdlcyBpbiBJbmRpYSwgd2l0aCBncmFkdWFsIGdyb3d0aCBhbmQgZGV2ZWxvcG1lbnQuIA0KMjAwMHM6VGVhbXdvcmsgaXMgbm93IGFuIGludGVncmFsIHBhcnQgb2Ygb3JnYW5pemF0aW9uYWwgc3RyYXRlZ3ksIHdpdGggYSBncmVhdGVyIGVtcGhhc2lzIG9uIGN1c3RvbWl6YXRpb24sIHBlcnNvbmFsaXphdGlvbiwgYW5kIHN0cmF0ZWdpYyBpbnRlZ3JhdGlvbiBvZiB0ZWFtLWJ1aWxkaW5nIHByYWN0aWNlcy4gVGhlIHJpc2Ugb2YgdGVjaG5vbG9neSBoYXMgYWxzbyBpbmZsdWVuY2VkIHRlYW13b3JrLCB3aXRoIHJlbW90ZSB3b3JrIGJlY29taW5nIG1vcmUgcHJldmFsZW50IGFuZCBuZXcgdG9vbHMgZW1lcmdpbmcgdG8gZmFjaWxpdGF0ZSBjb2xsYWJvcmF0aW9uLiANCg0KMjAwMDpbVVNdW0dlb1BvbGl0aWNzXSBvdmVydGhyb3cgb2YgU2xvYm9kYW4gTWlsb8WhZXZpxIcuIChVUydzIGludm9sdmVtZW50IGluIHJlZ2ltZSBjaGFuZ2UpDQoyMDAwOiBbR2VvUG9saXRpY3NdW01pbGl0YXJ5XVtFY29ub21pY3NdIFRoZSBVUyBEb2xsYXIgaG9sZHMgYSA3MiUgc2hhcmUgb2YgYWxsIGdsb2JhbCBjdXJyZW5jeSByZXNlcnZlcyBbWzE2OjQyXShodHRwOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dllKcmkxZU5SeWMmdD0xMDAyKV0uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdIDI2IEFwcmlsIDIwMDA6IHRoZSBHZXJtYW4gdGVhbSBvcGVyYXRpbmcgdGhlIG1hc3Mgc3BlY3Ryb21ldGVyIG9uIE5BU0EncyBTdGFyZHVzdCBtaXNzaW9uIGFubm91bmNlZCB0aGUgZGV0ZWN0aW9uIG9mIHZlcnkgbGFyZ2Ugb3JnYW5pYyBtb2xlY3VsZXMgaW4gaW50ZXJzdGVsbGFyIHNwYWNlLiBOb25iaW9sb2dpY2FsIHNvdXJjZXMgZm9yIG9yZ2FuaWMgbW9sZWN1bGVzIHNvIGxhcmdlIGFyZSBub3Qga25vd24uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdMTkgT2N0b2JlciAyMDAwLCBhIHRlYW0gb2YgYmlvbG9naXN0cyBhbmQgYSBnZW9sb2dpc3QgYW5ub3VuY2VkIHRoZSByZXZpdmFsIG9mIGJhY3RlcmlhIHRoYXQgYXJlIDI1MCBtaWxsaW9uIHllYXJzIG9sZCwgc3RyZW5ndGhlbmluZyB0aGF0IGNhc2UgdGhhdCBiYWN0ZXJpYWwgc3BvcmVzIGNhbiBiZSBpbW1vcnRhbC4NCjEzIERlY2VtYmVyIDIwMDA6IGEgTkFTQSB0ZWFtIGRlbW9uc3RyYXRlZCB0aGF0IHRoZSBtYWduZXRvc29tZXMgaW4gTWFycyBtZXRlb3JpdGUgQUxIIDg0MDAxIGFyZSBiaW9sb2dpY2FsLg0KMjAwMDpbUmVzZWFyY2hdW1NwYWNlXSBNaWxlaWtvd3NreSBDLCBDdWNpbm90dGEgRkEsIFdpbHNvbiBKVywgR2xhZG1hbiBCLCBIb3JuZWNrIEcsIExpbmRlZ3JlbiBMLCBNZWxvc2ggSiwgUmlja21hbiBILCBWYWx0b25lbiBNLCBaaGVuZyBKUS4gTmF0dXJhbCB0cmFuc2ZlciBvZiB2aWFibGUgbWljcm9iZXMgaW4gc3BhY2UuIEljYXJ1cyAyMDAwLCAxNDU6Mzkx4oCTNDI3LiBbRE9JXSBbUHViTWVkXSBbR29vZ2xlIFNjaG9sYXJdDQoyMDAwOltTcGFjZVhdIFMvMjAwMCAoOTApIDEgTW9vbiBEaXNjb3ZlcmVyOiBXaWxsaWFtIEouIE1lcmxpbmUgT3JiaXRzOiA5MCBBbnRpb3BlIEFic29sdXRlIG1hZ25pdHVkZTogOS4wMg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gZGVtb25zdHJhdGVkIFNob3LigJlzIGFsZ29yaXRobSBvbiBhIDUtcXViaXQgTk1SIHF1YW50dW0gY29tcHV0ZXIsIGZhY3RvcmluZyB0aGUgbnVtYmVyIDE1Lg0KMjAwMDogQXQgYWdlIDE0IGFuZCBpbiBjbGFzcyA4dGgsIEFhcm9uIFN3YXJ0eiBiZWNhbWUgYSBtZW1iZXIgb2YgdGhlIHdvcmtpbmcgZ3JvdXAgdGhhdCBhdXRob3JlZCB0aGUgUlNTIDEuMCB3ZWIgc3luZGljYXRpb24gc3BlY2lmaWNhdGlvbi4NCjIwMDA6IE1ha2VteVRyaXANCjIwMDAgKEphbiAxNCk6W0phY2tdIEthaG8gTmFhLi4uIFB5YWFyIEhhaQ0KMjAwMCAoRmViKTogSW5kaWFuIFJhaWx3YXlzIHdlYiBzaXRlIGkuZS4gaHR0cDovL2luZGlhbnJhaWx3YXlzLmdvdi5pbi8gd2FzIGRlcGxveWVkIGJ5IENSSVMuDQoyMDAwIChNYXIpOltCb29rXSBNYWxjb2xtIEdsYWR3ZWxsJ3MgZGVidXQgYm9vaywgVGhlIFRpcHBpbmcgUG9pbnQ6IEhvdyBMaXR0bGUgVGhpbmdzIENhbiBNYWtlIGEgQmlnIERpZmZlcmVuY2UuIA0KQmxpbms6IFRoZSBQb3dlciBvZiBUaGlua2luZyBXaXRob3V0IFRoaW5raW5nICgyMDA1LCBKYW4gMTEpOyANCk91dGxpZXJzOiBUaGUgU3Rvcnkgb2YgU3VjY2VzcyAoMjAwOCwgTm92IDE4KTsgDQpXaGF0IHRoZSBEb2cgU2F3OiBBbmQgT3RoZXIgQWR2ZW50dXJlcyAoMjAwOSwgT2N0IDIwKTsgDQpEYXZpZCBhbmQgR29saWF0aDogVW5kZXJkb2dzLCBNaXNmaXRzLCBhbmQgdGhlIEFydCBvZiBCYXR0bGluZyBHaWFudHMgKDIwMTMsIE9jdCAxKQ0KVGFsa2luZyB0byBTdHJhbmdlcnM6IFdoYXQgV2UgU2hvdWxkIEtub3cgYWJvdXQgdGhlIFBlb3BsZSBXZSBEb24ndCBLbm93ICgyMDE5KQ0KMjAwMCAoQXByIDEpOltCb29rXSBSb2JlcnQgS2l5b3Nha2kgJiBTaGFyb24gTGVjaHRlcidzIFJpY2ggRGFkIFBvb3IgRGFkLg0KMjAwMCAoQXByIDEpOltUZWNobm9sb2d5XVtSZXNlYXJjaF0gIldoeSBUaGUgRnV0dXJlIERvZXNuJ3QgTmVlZCBVcyIgaXMgYW4gYXJ0aWNsZSB3cml0dGVuIGJ5IEJpbGwgSm95IGluIHRoZSBBcHJpbCAyMDAwIGlzc3VlIG9mIFdpcmVkIG1hZ2F6aW5lLiBJbiB0aGUgYXJ0aWNsZSwgaGUgYXJndWVzIHRoYXQgIk91ciBtb3N0IHBvd2VyZnVsIDIxc3QtY2VudHVyeSB0ZWNobm9sb2dpZXPigJRyb2JvdGljcywgZ2VuZXRpYyBlbmdpbmVlcmluZywgYW5kIG5hbm90ZWNo4oCUYXJlIHRocmVhdGVuaW5nIHRvIG1ha2UgaHVtYW5zIGFuIGVuZGFuZ2VyZWQgc3BlY2llcy4iIA0KMjAwMCAoSnVuIDI2KTpbTXVzaWNdICJZZWxsb3ciIGlzIGEgc29uZyBieSB0aGUgQnJpdGlzaCByb2NrIGJhbmQgQ29sZHBsYXkuIFRoZSBiYW5kIHdyb3RlIHRoZSBzb25nIGFuZCBjby1wcm9kdWNlZCBpdCB3aXRoIEJyaXRpc2ggcmVjb3JkIHByb2R1Y2VyIEtlbiBOZWxzb24gZm9yIHRoZWlyIGRlYnV0IGFsYnVtLCBQYXJhY2h1dGVzICgyMDAwKS4gVGhlIHNvbmcgd2FzIHJlY29yZGVkIGluIE1hcmNoIDIwMDAgYW5kIHJlbGVhc2VkIG9uIDI2IEp1bmUgdGhhdCBzYW1lIHllYXIuDQoyMDAwIChTZXApOiBBbWF6b24ncyBKZWZmIEJlem9zIGZvdW5kZWQuDQoyMDAwIChTZXApOltDcmltZV1bSW5kaWFdIENoaG90YSBTaGFrZWVsJ3MgYXR0YWNrIG9uIFJhamFuIGluIGhpcyBCYW5na29rIGhvdGVsIHJvb20uDQoyMDAwIChTZXApOiBSYWlsVGVsIENvcnBvcmF0aW9uIG9mIEluZGlhIEx0ZC4gZm91bmRlZCBhbmQgSFEnZCBhdCAxNDMsIEluc3RpdHV0aW9uYWwgQXJlYSwgU2VjdG9yLTQ0LCBHdXJnYW9uLCBIYXJ5YW5hLCBJbmRpYS4gSXQgaXMgYSBNaW5pcmF0bmEgZW50ZXJwcmlzZSBvZiBHb3Zlcm5tZW50IG9mIEluZGlhIGZvY3VzaW5nIG9uIHByb3ZpZGluZyBicm9hZGJhbmQgYW5kIFZQTiBzZXJ2aWNlcy4NCjIwMDAgKFNlcCAxNyk6IFtHZW9Qb2xpdGljc10gVGhlIGlkZWEgb2YgYW4gQXNpYSBDb29wZXJhdGlvbiBEaWFsb2d1ZSAoQUNEKSB3YXMgcmFpc2VkIGF0IHRoZSBGaXJzdCBJbnRlcm5hdGlvbmFsIENvbmZlcmVuY2Ugb2YgQXNpYW4gUG9saXRpY2FsIFBhcnRpZXMgKGhlbGQgaW4gTWFuaWxhIGJldHdlZW4gMTfigJMyMCBTZXB0ZW1iZXIgMjAwMCkgYnkgU3VyYWtpYXJ0IFNhdGhpcmF0aGFpLCB0aGVuIGRlcHV0eSBsZWFkZXIgb2YgdGhlIG5vdyBkZWZ1bmN0IFRoYWkgUmFrIFRoYWkgUGFydHksIG9uIGJlaGFsZiBvZiBoaXMgcGFydHkgbGVhZGVyLCBUaGFrc2luIFNoaW5hd2F0cmEsIHRoZW4gUHJpbWUgTWluaXN0ZXIgb2YgVGhhaWxhbmQuIEl0IHdhcyBzdWdnZXN0ZWQgdGhhdCBBc2lhIGFzIGEgY29udGluZW50IHNob3VsZCBoYXZlIGl0cyBvd24gZm9ydW0gdG8gZGlzY3VzcyBBc2lhLXdpZGUgY29vcGVyYXRpb24uIEFmdGVyd2FyZHMsIHRoZSBpZGVhIG9mIHRoZSBBQ0Qgd2FzIGZvcm1hbGx5IHB1dCBmb3J3YXJkIGR1cmluZyB0aGUgMzR0aCBBU0VBTiBGb3JlaWduIE1pbmlzdGVycyBNZWV0aW5nIGluIEhhbm9pLCAyM+KAkzI0IEp1bHkgMjAwMSBhbmQgYXQgdGhlIEFTRUFOIEZvcmVpZ24gTWluaXN0ZXJzIFJldHJlYXQgaW4gUGh1a2V0LCAyMOKAkzIxIEZlYnJ1YXJ5IDIwMDIuDQoyMDAwIChPY3QgNCk6W011c2ljXSBGb3JtZWQgaW4gMTk5NiwgTGlua2luIFBhcmsgcm9zZSB0byBpbnRlcm5hdGlvbmFsIGZhbWUgd2l0aCB0aGVpciBkZWJ1dCBzdHVkaW8gYWxidW0sIEh5YnJpZCBUaGVvcnkuIEZvdXIgc2luZ2xlcyB3ZXJlIHJlbGVhc2VkIGZyb20gSHlicmlkIFRoZW9yeTogIk9uZSBTdGVwIENsb3NlciIsICJJbiB0aGUgRW5kIiwgIkNyYXdsaW5nIiBhbmQgIlBhcGVyY3V0IiwgYWxsIG9mIHRoZW0gYmVpbmcgcmVzcG9uc2libGUgZm9yIGxhdW5jaGluZyBMaW5raW4gUGFyayBpbnRvIG1haW5zdHJlYW0gcG9wdWxhcml0eS4gV2hpbGUgIkluIHRoZSBFbmQiIHdhcyB0aGUgbW9zdCBzdWNjZXNzZnVsIG9mIHRoZSBmb3VyLCBhbGwgb2YgdGhlIHNpbmdsZXMgaW4gdGhlIGFsYnVtIHJlbWFpbiBzb21lIG9mIHRoZSBiYW5kJ3MgbW9zdCBzdWNjZXNzZnVsIHNvbmdzIHRvIGRhdGUuDQoyMDAwIChOb3YgOSk6IGZvcm1hdGlvbiBvZiBVdHRhcmFraGFuZCBhcyBVdHRhcmFuY2hhbCAyMDAwIChKdW4gOSk6IEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQWN0LCAyMDAwLiBUaGUgYmlsbCB3YXMgcGFzc2VkIGluIHRoZSBidWRnZXQgc2Vzc2lvbiBvZiAyMDAwIGFuZCBzaWduZWQgYnkgUHJlc2lkZW50IEsuIFIuIE5hcmF5YW5hbiBvbiA5IE1heSAyMDAwLiBUaGUgYmlsbCB3YXMgZmluYWxpc2VkIGJ5IGdyb3VwIG9mIG9mZmljaWFscyBoZWFkZWQgYnkgdGhlbiBNaW5pc3RlciBvZiBJbmZvcm1hdGlvbiBUZWNobm9sb2d5LCBQcmFtb2QgTWFoYWphbi4NCjIwMDA6IGZvcm1hdGlvbiBvZg0KMjAwMDogSmFpc2gtZS1Nb2hhbW1lZCAobGl0ZXJhbGx5ICJUaGUgQXJteSBvZiBNdWhhbW1hZCIsIEplTSkgZm91bmRlZCBhdCBCYWhhd2FscHVyLCBQdW5qYWIsIFBha2lzdGFuLg0KMjAwMDogQ2hpbmEncyBCZWlEb3UgbmF2aWdhdGlvbiB0ZXN0IHN5c3RlbSBzdGFydHMuDQoyMDAwOiBGaXNlcnYgaGFkIGFjcXVpcmVkIG1vcmUgdGhhbiA5MCBidXNpbmVzc2VzLiBUaGUgbnVtYmVyIG9mIGVtcGxveWVlcyBncmV3IGZyb20gMjY0IHRvIDE0LDAwMC4gRmlzZXJ2IHdhcyBhbiBpbmR1c3RyeSBsZWFkZXIsIHdpdGggcmV2ZW51ZSB0aGF0IGluY3JlYXNlZCBmcm9tICQyMSBtaWxsaW9uIHRvICQxLjQgYmlsbGlvbiBpbiAxNSB5ZWFycy4NCjIwMDAgKERlYyA4KTpbR2FtaW5nXSBQcm9qZWN0IEkuRy5JLiBpcyBhIHRhY3RpY2FsIGZpcnN0LXBlcnNvbiBzaG9vdGVyIHZpZGVvIGdhbWUuIEl0IHdhcyBkZXZlbG9wZWQgYnkgSW5uZXJsb29wIFN0dWRpb3MgYW5kIHJlbGVhc2VkIGluIERlY2VtYmVyIDIwMDAgYnkgRWlkb3MgSW50ZXJhY3RpdmUuIFRoZSBnYW1lIHJlY2VpdmVkIG1peGVkIHJldmlld3MgZHVlIHRvIHNob3J0Y29taW5ncyBpbmNsdWRpbmcgYSBwb29ybHkgcHJvZ3JhbW1lZCBBLkkuLCBsYWNrIG9mIGEgbWlkLWdhbWUgc2F2ZSBvcHRpb24sIGFuZCB0aGUgbGFjayBvZiBtdWx0aXBsYXllciBmZWF0dXJlcy4gSG93ZXZlciBpdCB3YXMgcHJhaXNlZCBmb3IgaXRzIHNvdW5kIGRlc2lnbiBhbmQgZ3JhcGhpY3MsIHRoYW5rcyBpbiBwYXJ0IHRvIGl0cyB1c2Ugb2YgYSBwcm9wcmlldGFyeSBnYW1lIGVuZ2luZSB0aGF0IHdhcyBwcmV2aW91c2x5IHVzZWQgaW4gSW5uZXJsb29wJ3MgSm9pbnQgU3RyaWtlIEZpZ2h0ZXIuDQoyMDAwIChEZWMgMjEpOltKYWNrXSBSYWp1IENoYWNoYSByZWxlYXNlZC4NCjIwMDA6IFtCdXNpbmVzc11bRmluYW5jZV1bQ29ycG9yYXRlXVtJbmRpYV0gUklMIHBpbG90ZWQgd29ybGQncyBsYXJnZXN0IHBldHJvbGV1bSByZWZpbmVyeSBhdCBKYW1uYWdhciwgR3VqYXJhdCwgcmVmaW5pbmcgMS4yNE1uIGJhcnJlbHMvZGF5Lg0KMjAwMDpbQ3JpbWVdW0luZGlhXSBQb2xpY2UgZW5jb3VudGVycyBpbiBNdW1iYWkuIE1vc3QgY3JpbWluYWxzIGZsZWVpbmcgdG8gQ2FsY3VsdHRhLiBBZnRhYiBCaGF0a2kgZGVzdGFiaWxpc2UgdGhlIGVjb25vbXkgYnkgc3ByZWFkaW5nIGZha2UgY3VycmVuY3kgbm90ZXMgcHJpbnRlZCBieSBJU0kgZnVuY3Rpb25hcmllcywgYW5kIHR3bywgc2VuZCBtZXJjZW5hcmllcyB0byBjb25kdWN0IGFiZHVjdGlvbnMgYW5kIHRlcnJvcmlzdCBhdHRhY2tzLg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBUZWNobmljYWwgVW5pdmVyc2l0eSBvZiBNdW5pY2ggKDUgcXViaXQpOyBMb3MgQWxhbW9zIE5hdGlvbmFsIExhYiAoNyBxdWJpdHMpDQoyMDAwOkluIDIwMDAsIFRhdGEgVGVhIGFjcXVpcmVkIHRoZSBUZXRsZXkgVGVhIENvbXBhbnkgZm9yICQ0MDcgbWlsbGlvbi4gT3RoZXIgbm90YWJsZSBhY3F1aXNpdGlvbnMgaW5jbHVkZSBOYXRTdGVlbCAoMjAwNCksIEJydW5uZXIgTW9uZCAoMjAwNSksIGFuZCBFaWdodCBPJ0Nsb2NrIENvZmZlZSAoMjAwNikuIA0KMjAwMDogQmlybGEgYWNxdWlyZWQgSW5kaWFuIEFsdW1pbnVtIENvbXBhbnkgKElOREFMKS4gDQoyMDAwOiBTYXR5YSBOYXJheWFuYSBHb2Vua2Egd29ya2VkIGFzIGFuIGludGVybmF0aW9uYWwgYnVzaW5lc3NtYW4gYmFzZWQgaW4gTXlhbm1hciBhbmQgSW5kaWEgZm9yIGEgbGFyZ2UgcGFydCBvZiBoaXMgbGlmZS4gSGUgd2FzIGEga2V5bm90ZSBzcGVha2VyIG9uIHRoZSBzdWJqZWN0IG9mIFNwaXJpdHVhbGl0eSBpbiBCdXNpbmVzcyBhdCB0aGUgMzB0aCBXb3JsZCBFY29ub21pYyBGb3J1bSBpbiBEYXZvcywgU3dpdHplcmxhbmQgYmV0d2VlbiAyNiBKYW4gYW5kIDIgRmViIDIwMDAuIFR3byB5ZWFycyBsYXRlciBoZSBjb25kdWN0ZWQgdGhlIGZpcnN0IDEwLWRheSBjb3Vyc2UgaW4gVmlwYXNzYW5hIE1lZGl0YXRpb24gZXNwZWNpYWxseSBmb3IgYnVzaW5lc3MgZXhlY3V0aXZlcyBhbmQgZ292ZXJubWVudCBvZmZpY2lhbHMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAyMjUgeWVhcnMgb2YgSW5kZXBlbmRlbnQgVVNBIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIA0KDQoyMDAxOltVU11bR2VvUG9saXRpY3NdIGludmFzaW9uIG9mIEFmZ2hhbmlzdGFuLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMjAwMTpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgU2hhbmdoYWkgQ29vcGVyYXRpb24gT3JnYW5pc2F0aW9uIChTQ08pIGlzIGEgRXVyYXNpYW4gcG9saXRpY2FsLCBlY29ub21pYywgaW50ZXJuYXRpb25hbCBzZWN1cml0eSBhbmQgZGVmZW5jZSBvcmdhbml6YXRpb24gb2YgdGVuIG1lbWJlciBzdGF0ZXMuIEl0IHdhcyBlc3RhYmxpc2hlZCBpbiAyMDAxIGJ5IHRoZSBQZW9wbGUncyBSZXB1YmxpYyBvZiBDaGluYSwgS2F6YWtoc3RhbiwgS3lyZ3l6c3RhbiwgUnVzc2lhLCBhbmQgVGFqaWtpc3RhbiBhbmQgVXpiZWtpc3Rhbi4gSW4gSnVuZSAyMDE3LCBpdCBleHBhbmRlZCB0byBlaWdodCBzdGF0ZXMsIHdpdGggSW5kaWEgYW5kIFBha2lzdGFuLiBJcmFuIGpvaW5lZCB0aGUgZ3JvdXAgaW4gSnVseSAyMDIzLCBhbmQgQmVsYXJ1cyBpbiBKdWx5IDIwMjQuIFNldmVyYWwgY291bnRyaWVzIGFyZSBlbmdhZ2VkIGFzIG9ic2VydmVycyBvciBkaWFsb2d1ZSBwYXJ0bmVycy4gRm91bmRlcnM6IENoaW5hLCBSdXNzaWEsIEthemFraHN0YW4sIFV6YmVraXN0YW4sIEt5cmd5enN0YW4sIFRhamlraXN0YW47IEhlYWRxdWFydGVyczogQmVpamluZywgQ2hpbmE7IEZvdW5kZWQ6IDE1IEp1bmUgMjAwMQ0KMjAwMTpbQnVzaW5lc3NdIDIwMDHigJMyMDA1OiBIRlQgZXhlY3V0aW9uIHRpbWVzIGRlY3JlYXNlZCBmcm9tIHNldmVyYWwgc2Vjb25kcyB0byBtaWxsaXNlY29uZHMuIChIRlQpDQoyMDAxOltDb21wdXRpbmddW1F1YW50dW1dICBJQk0gaW1wbGVtZW50ZWQgR3JvdmVy4oCZcyBhbGdvcml0aG0gb24gYSA3LXF1Yml0IE5NUiBxdWFudHVtIGNvbXB1dGVyLCBmaW5kaW5nIGEgbWFya2VkIGl0ZW0gaW4gYSBkYXRhYmFzZSBvZiA0IGVudHJpZXMuDQoyMDAxOiBMaWZlIG9mIFBpIGlzIGEgQ2FuYWRpYW4gcGhpbG9zb3BoaWNhbCBub3ZlbCBieSBZYW5uIE1hcnRlbCBwdWJsaXNoZWQuIFRoZSBwcm90YWdvbmlzdCBpcyBQaXNjaW5lIE1vbGl0b3IgIlBpIiBQYXRlbCwgYW4gSW5kaWFuIGJveSBmcm9tIFBvbmRpY2hlcnJ5IHdobyBleHBsb3JlcyBpc3N1ZXMgb2Ygc3Bpcml0dWFsaXR5IGFuZCBtZXRhcGh5c2ljcyBmcm9tIGFuIGVhcmx5IGFnZS4gSGUgc3Vydml2ZXMgMjI3IGRheXMgYWZ0ZXIgYSBzaGlwd3JlY2sgd2hpbGUgc3RyYW5kZWQgb24gYSBsaWZlYm9hdCBpbiB0aGUgUGFjaWZpYyBPY2VhbiB3aXRoIGEgQmVuZ2FsIHRpZ2VyIHdoaWNoIHJhaXNlcyBxdWVzdGlvbnMgYWJvdXQgdGhlIG5hdHVyZSBvZiByZWFsaXR5IGFuZCBob3cgaXQgaXMgcGVyY2VpdmVkIGFuZCB0b2xkLjtTZXZlbiBTdG9yaWVzICgxOTkzKQ0KMjAwMTpbQ3JpbWVdW0luZGlhXSBDaGhvdGEgUmFqYW4ncyBhc3NvY2lhdGVzIHRyYWNrZWQgZG93biBhbmQgc2hvdCBkZWFkIGhvdGVsaWVyIFZpbm9kIGluIE11bWJhaSwgYXMgd2VsbCBhcyBTdW5pbCBTb2FucyDigJMgYW5vdGhlciBEYXdvb2QgYXNzb2NpYXRlLg0KMjAwMSAoSmFuIDEpOltCb29rXSBHcmVnIE1jS2Vvd24ncyBFc3NlbnRpYWxpc206IFRoZSBEaXNjaXBsaW5lZCBQdXJzdWl0IG9mIExlc3MNCjIwMDEgKEphbiAxKTpbQm9va10gQnJpYW4gVHJhY3kncyBFYXQgVGhhdCBGcm9nIQ0KMjAwMTogVGhlIEFyZHVpbm8gcHJvamVjdCBzdGFydGVkIGF0IHRoZSBJbnRlcmFjdGlvbiBEZXNpZ24gSW5zdGl0dXRlIEl2cmVhIChJRElJKSBpbiBJdnJlYSwgSXRhbHkuIEF0IHRoYXQgdGltZSwgdGhlIHN0dWRlbnRzIHVzZWQgYSBCQVNJQyBTdGFtcCBtaWNyb2NvbnRyb2xsZXIgYXQgYSBjb3N0IG9mICQxMDAsIGEgY29uc2lkZXJhYmxlIGV4cGVuc2UgZm9yIG1hbnkgc3R1ZGVudHMuDQoyMDAxIChBcHIgNHRoKTogQ2hhcmxlcyBNLiBWZXN0LCB0aGUgdGhlbiBQcmVzaWRlbnQgb2YgTUlUIGFubm91bmNlZCBPcGVuQ291cnNlV2FyZSAoT0NXKSBwdWJsaWNpemluZyBhbGwgb2YgaXRzIDIsMDAwIGNvdXJzZXMgIGF0IHRoZSBlc3RpbWF0ZWQgY29zdCBvZiAkMTAwIG1pbGxpb24gKG9uIGFuIGF2Zy4sIGEgTUlUIHN0dWRlbnRzIHBheXMgYXJvdW5kICQyNiwwMDAgYXMgb2ZmbGluZSB0dWl0aW9uIGZlZSkNCjIwMDE6IFVTIGludmFkZWQgQWZnaGFuaXN0YW4gaW4gcmVzcG9uc2UgdG8gOS8xMSBhdHRhY2tzLiBPZmZpY2lhbGx5LCBJdCBoYXMgYmVjb21lIHRoZSBsb25nZXN0IHdhciBpbiBBbWVyaWNhbiBoaXN0b3J5Lg0KMjAwMTogaVBvZCBieSBUb255IEZhZGVsbA0KMjAwMSAoSnVuIDE1KTpbSmFja10gR2FkYXI6IEVrIFByZW0gS2F0aGE7IExhZ2FhbjogT25jZSBVcG9uIGEgVGltZSBpbiBJbmRpYQ0KMjAwMSAoU2VwIDExKTogOS8xMSBUZXJyb3Jpc3QgYXR0YWNrcy4gVGhlIFNlcHRlbWJlciAxMSBvciA5LzExLCBhdHRhY2tzIHdlcmUgYSBzZXJpZXMgb2YgZm91ciBjb29yZGluYXRlZCB0ZXJyb3Jpc3QgYXR0YWNrcyBieSB0aGUgSXNsYW1pYyB0ZXJyb3Jpc3QgZ3JvdXAgYWwtUWFlZGEgb24gdGhlIFVuaXRlZCBTdGF0ZXMgb24gdGhlIG1vcm5pbmcgb2YgVHVlc2RheSwgU2VwIDExLiBUaGUgbG9zcyBvZiBsaWZlIHdhcyBlc3RpbWF0ZWQgYXQganVzdCB1bmRlciAzLDAwMC4gVGhlIGV2ZW50IGNoYW5nZWQgQW1lcmljYW4gZm9yZWlnbiBwb2xpY3kuIEl0IHdhcyBhIG1vdGl2YXRpbmcgZmFjdG9yIGJlaGluZCB0aGUgY29udHJvdmVyc2lhbCBpbnZhc2lvbiBvZiBJcmFxIGFuZCBsZWQgdG8gYSDigJh3YXIgb24gdGVycm9y4oCZIHN5bWJvbGlzZWQgYnkgR3VhbnRhbmFtbyBCYXkgYW5kIGEgZGViYXRlIG92ZXIgdGhlIGp1c3RpZmljYXRpb24gb2YgdG9ydHVyZS4NCjIwMDEgKE9jdCA3KTpbR2VvUG9saXRpY3NdIFVuaXRlZCBTdGF0ZXMgaW52YXNpb24gb2YgQWZnaGFuaXN0YW46IEluIGxhdGUgMjAwMSwgdGhlIFVuaXRlZCBTdGF0ZXMgYW5kIGl0cyBjbG9zZSBhbGxpZXMgaW52YWRlZCBBZmdoYW5pc3RhbiBhbmQgdG9wcGxlZCB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50LiBUaGUgaW52YXNpb24ncyBzdGF0ZWQgYWltcyB3ZXJlIHRvIGRpc21hbnRsZSBhbC1RYWVkYSwgd2hpY2ggaGFkIGV4ZWN1dGVkIHRoZSBTZXB0ZW1iZXIgMTEgYXR0YWNrcywgYW5kIHRvIGRlbnkgaXQgYSBzYWZlIGJhc2Ugb2Ygb3BlcmF0aW9ucyBpbiBBZmdoYW5pc3RhbiBieSByZW1vdmluZyB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50IGZyb20gcG93ZXIuIERlYyA3LCAyMDAxIG9ud2FyZCBzdGFydGVkIFdhciBpbiBBZmdoYW5pc3Rhbi4NCjIwMDEgKE9jdCAxNik6W0Jvb2tdIE1jS2luc2V5IFJlc2VhcmNoZXIgSmFtZXMgQy4gQ29sbGlucycgR29vZCBUbyBHcmVhdDogV2h5IFNvbWUgQ29tcGFuaWVzIE1ha2UgdGhlIExlYXAuLi5BbmQgT3RoZXJzIERvbid0OyANCjIwMDEgKE5vdik6W0NyaW1lXVtJbmRpYV0gQWJkdWwgR2FmZmFyIGFsaWFzIENoaWtuYSBHYWZmYXIgY2F1Z2h0IGJ5IHRoZSBkZXRlY3RpdmUgZGVwYXJ0bWVudCBpbiBDYWxjdXR0YSANCjIwMDEgKEphbiAyKTogVGhlIG5vcnRoZXJuIGVsZWN0cmljYWwgZ3JpZCBjb2xsYXBzZWQgaW4gSW5kaWEuIEEgZmF1bHQgaW4gdGhlIHRyYW5zbWlzc2lvbiBzeXN0ZW0gaW4gdGhlIHN0YXRlIG9mIFV0dGFyIFByYWRlc2ggbGVkIHRvIGNhc2NhZGluZyBmYWlsdXJlIHRocm91Z2hvdXQgbm9ydGhlcm4gSW5kaWEgYWZmZWN0aW5nIDIzIGNyb3JlIHJlc2lkZW50cy4NCjIwMDE6IElWUlMgKCdJbnRlcmFjdGl2ZSBWb2ljZSBSZXNwb25zZSBTeXN0ZW0nKSBmb3IgdGVsZXBob25pYyBlbnF1aXJpZXMgYWJvdXQgdHJhaW5zIGludHJvZHVjZWQgaW4gc29tZSBzdGF0aW9ucy4NCjIwMDE6IE1hZGVFYXN5IGluY29ycG9yYXRlZCBhdCA0NC1BLzEsIEthbHUgU2FyYWksIE5lYXIgSGF1eiBLaGFzIE1ldHJvIFN0YXRpb24sIE5ldyBEZWxoaS0xMTAwMTYNCjIwMDE6IEFjYyB0byAyMDAxIGNlbnN1cywgMzAgbGFraHMgd2VyZSBpbW1pZ3JhdGVkIHRvIEluZGlhIGZyb20gQmFuZ2xhZGVzaCBhbG9uZSwgZm9sbG93ZWQgYnkgMTAgbGFraHMgZnJvbSBQYWtpc3RhbiBhbmQgNiBsYWtocyBmcm9tIE5lcGFsLg0KMjAwMSAoRGVjIDEzKTpbQ3JpbWVdW0luZGlhXSBUZXJyb3Jpc3QgYXR0YWNrIG9uIEluZGlhJ3MgUGFybGlhbWVudC4NCjIwMDE6IHRoZSBjdXN0b21lciBiYXNlIG9mIG1vYmlsZSBwaG9uZSBjb21wYW5pZXMgd2FzIDQgbWlsbGlvbi4NCjIwMDE6IEJlbmVmaXQgbGFubmVycywgVGV4YXMgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBIZWFsdGggQmVuZWZpdCBkaXZpc2lvbi4NCjIwMDE6IE5ldyBIb3Jpem9ucyB3YXMgaW5pdGlhbGx5IHNlbGVjdGVkIGZvciBmdW5kaW5nIGluIDIwMDEgYnV0IHdhcyBleGNsdWRlZCBmcm9tIHRoZSBOQVNBIDIwMDMgYnVkZ2V0LiBGdW5kaW5nIGZvciB0aGUgbWlzc2lvbiB3YXMgcmVpbnN0YXRlZCBhZnRlciBOZXcgSG9yaXpvbnMgd2FzIGxpc3RlZCBhcyBhIHRvcCBwcmlvcml0eSBpbiB0aGUgUGxhbmV0YXJ5IFNjaWVuY2UgRGVjYWRhbCBTdXJ2ZXkgb2YgMjAwM+jjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlallkllklklklklklklklklklklklklklklklklklklklklklklklklklklklkjjajlkasjdlajdlkajdlaj
+KAkzIwMDEuDQoxOTkzOiBBc2hvayBIYWxsIEdpcmwncyBSZXNpZGVudGlhbCBTY2hvb2wsIE1hamtoYWxpLg0KMTk5MzogQnkgdGhpcyB5ZWFyIHRoZXJlIHdlcmUgYXJvdW5kIDEwMCB3ZWItc2VydmVycyBhY3Jvc3MgdGhlIHdvcmxkLiAoQSByZXBvcnQgcHVibGlzaGVkIGluIGZpcnN0IGlzc3VlIG9mIFRoZSBXb3JsZCBXaWRlIFdlYiBOZXdzbGV0dGVyLCAxOTkzKQ0KMTk5MzogQUMgMy10aWVyIGNvYWNoZXMgJiBTbGVlcGVyIGNsYXNzIGFyZSBpbnRyb2R1Y2VkIGFwYXJ0IGZyb20gc2Vjb25kIGNsYXNzLg0KMTk5MzogR29JJ3MgRGlzdHJpY3QgUHJpbWFyeSBFZHVjYXRpb24gUHJvZ3JhbW1lIChEUEVQKSB3YXMgbGF1bmNoZWQsIHdpdGggYW4gYWltIG9mIGFjaGlldmluZyB0aGUgb2JqZWN0aXZlIG9mIHVuaXZlcnNhbCBwcmltYXJ5IGVkdWNhdGlvbi4gVGhpcyBwcm9ncmFtbWVkIGxhaWQgdGhlIGZvdW5kYXRpb25zIGZvciDgpLjgpLDgpY3gpLUg4KS24KS/4KSV4KWN4KS34KS+IOCkheCkreCkv+Ckr+CkvuCkqChFZHVjYXRpb24gZm9yIEFsbCBNb3ZlbWVudCkgYWltZWQgYXQgdGhlIHVuaXZlcnNhbGlzYXRpb24gb2YgZWxlbWVudGFyeSBlZHVjYXRpb24gbWFraW5nIGZyZWUgYW5kIGNvbXB1bHNvcnkgZWR1Y2F0aW9uIHRvIGNoaWxkcmVuIGJldHdlZW4gdGhlIGFnZXMgb2YgNiB0byAxNC4NCjE5OTM6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIHNwbGl0IHdpdGggRGF3b29kIGFuZCBmb3JtZWQgYW4gaW5kZXBlbmRlbnQgZ2FuZyB0aGF0IGZyZXF1ZW50bHkgY2xhc2hlZCB3aXRoIERhd29vZCdzIEQtQ29tcGFueS4NCjE5OTMgKEphbiA3KTpbQ3JpbWVdIFJpb3RzIHJlLXN0YXJ0ZWQgaW4gTXVtYmFpIGFuZCBsYXN0ZWQgZm9yIDIwIGRheXMuIFRoZSBJU0ksIHdoaWNoIGNvbnRyb2xsZWQgc2hpcHBpbmcgcm91dGVzIGZyb20gdGhlIEd1bGYgdG8gSW5kaWEncyB3ZXN0IGNvYXN0LCBkZW1hbmRlZCB0aGF0IHRoZSBtYWZpYSB0cmFuc3BvcnQgd2VhcG9ucyBhbmQgZXhwbG9zaXZlcyBpbnRvIEluZGlhIGluIHJldHVybiBmb3IgdGhlIHVzZSBvZiBQYWtpc3RhbidzIHdhdGVycy4gRGF3b29kIG1ldCB0aGVpciBJU0kgaGFuZGxlcnMgaW4gYSA1IHN0YXIgaG90ZWwgb2YgRHViYWkgaW4gSmFuIG9yIEZlYiBvZiAxOTkzLCB0aGVuIGNhbWUgdGhlIFJEWCB0aHJvdWdoIHRoZSBzYW1lIHBvcm91cyBhbmQgdW5jaGVja2VkIHNlYSByb3V0ZSB0aGF0IDI2LzExIGF0dGFja2VycyBzbGlwcGVkIGFjcm9zcyBhbmQgd3JlY2tlZCBtYXloZW0gaW4gTXVtYmFpLiBUaGUg4oCZOTMgYXR0YWNrcyB3ZXJlIGZpbmFsbHkgZXhlY3V0ZWQgaW4gbWFyY2ggdGhhdCBjbGFpbWVkIHNvbWUgMzAwIGlubm9jZW50IGxpdmVzLg0KMTk5MyAoTWFyIDYpOltQb2xpdHldW0luZGlhXSBTaGFyYWQgUGF3YXIgcmUtZWxlY2V0ZCBhcyBDTSBvZiBNSCBmb3IgMiB5ZWFycy4NCjE5OTMgKE1hciAxMik6W0NyaW1lXSBUaGUgMTk5MyBCb21iYXkgYm9tYmluZ3Mgd2VyZSBhIHNlcmllcyBvZiAxMiB0ZXJyb3Jpc3QgYm9tYmluZ3MgdGhhdCB0b29rIHBsYWNlIGluIEJvbWJheS4gVGhlIHNpbmdsZS1kYXkgYXR0YWNrcyByZXN1bHRlZCBpbiAyNTcgZmF0YWxpdGllcyBhbmQgMSw0MDAgaW5qdXJpZXMuIFRoZXJlIHdhcyBhbm90aGVyIHJhaWQgbmVhciBNYW5pc2ggbWFya2V0IHdoZXJlIGhhbmQgZ3JlbmFkZXMgd2VyZSByZWNvdmVyZWQuIEFmdGVyIGFub3RoZXIgdGlwIG9mZiBsZWQgdG8gZGlzY292ZXJ5IG9mIGEgaHVnZSBxdWFudGl0eSBvZiBSRFggZnJvbSBOYWdsYSBCdW5kZXIgb2ZmIEdob2RidW5kZXIgUm9hZCBpbiBUaGFuZS4g4oCcSW4gYWxsLCA1LDAwMCBraWxvZ3JhbXMgb2YgUkRYIHdhcyBicm91Z2h0IGludG8gTXVtYmFpIGFuZCB3ZSByZWNvdmVyZWQgMywzMDAga2lsb2dyYW1zIG9mIGl0IGluIGFsbCB0aGUgcmFpZHMs4oCdIHNheXMgQ2hhdWd1bGUuIFJlZHVjZWQgU2hvY2sgU2Vuc2l0aXZpdHkgKFJTUykgZXhwbG9zaXZlcywgc3VjaCBhcyBSU1MtUkRYLCB3aGljaCBjb3N0cyBhYm91dCBScy4gMSw1MDAtMiwwMDAgcGVyIGtnLiBBbmVlcyBjb250aW51ZWQgb3BlcmF0aW9uIG9mIEQtQ29tcGFueSB3aGljaCBpbmNsdWRlIGNvbnRyYWN0IGtpbGxpbmcsIGV4dG9ydGlvbiwgdGhlIGNpcmN1bGF0aW9uIG9mIGNvdW50ZXJmZWl0IGN1cnJlbmN5LCBhbmQgdGhlIHByb3Zpc2lvbiBvZiBhIHJhbmdlIG9mIGZyZWUtbGFuY2Ugc2VydmljZXMgdG8gdGVycm9yaXN0IGdyb3VwcyBhdCB0aGUgaW5zdGFuY2Ugb2YgUGFraXN0YW4ncyBJbnRlciBTZXJ2aWNlcyBJbnRlbGxpZ2VuY2UgKElTSSkuIEludGVycG9sIFJlZCBDb3JuZXIgbm90aWNlIGZvciBELUNvbXBhbnkuDQoxOTkzIChOb3YgMSk6IFRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGZvdW5kZWQuIEl0IGlzIGFuIGVjb25vbWljIGFuZCBwb2xpdGljYWwgcGFydG5lcnNoaXAgaW52b2x2aW5nIDI4IEV1cm9wZWFuIGNvdW50cmllcy4gSXQgYmVnYW4gYWZ0ZXIgV1cyIHRvIGZvc3RlciBlY29ub21pYyBjby1vcGVyYXRpb24sIHdpdGggdGhlIGlkZWEgdGhhdCBjb3VudHJpZXMgd2hpY2ggdHJhZGUgdG9nZXRoZXIgYXJlIG1vcmUgbGlrZWx5IHRvIGF2b2lkIGdvaW5nIHRvIHdhciB3aXRoIGVhY2ggb3RoZXIuDQoxOTkzIChOb3YgMyk6IFtHZW9Qb2xpdGljc10gVGhlIENvbW1vbiBNYXJrZXQgZm9yIEVhc3Rlcm4gYW5kIFNvdXRoZXJuIEFmcmljYSAoQ09NRVNBKSBpcyBhIHJlZ2lvbmFsIGVjb25vbWljIGNvbW11bml0eSBpbiBBZnJpY2Egd2l0aCB0d2VudHktb25lIG1lbWJlciBzdGF0ZXMgc3RyZXRjaGluZyBmcm9tIFR1bmlzaWEgdG8gRXN3YXRpbmkuIENPTUVTQSB3YXMgZm9ybWVkIGluIERlY2VtYmVyIDE5OTQsIHJlcGxhY2luZyBhIFByZWZlcmVudGlhbCBUcmFkZSBBcmVhIHdoaWNoIGhhZCBleGlzdGVkIHNpbmNlIDE5ODEuIE5pbmUgb2YgdGhlIG1lbWJlciBzdGF0ZXMgZm9ybWVkIGEgZnJlZSB0cmFkZSBhcmVhIGluIDIwMDAgKERqaWJvdXRpLCBFZ3lwdCwgS2VueWEsIE1hZGFnYXNjYXIsIE1hbGF3aSwgTWF1cml0aXVzLCBTdWRhbiwgWmFtYmlhIGFuZCBaaW1iYWJ3ZSksIHdpdGggUndhbmRhIGFuZCBCdXJ1bmRpIGpvaW5pbmcgdGhlIEZUQSBpbiAyMDA0LCB0aGUgQ29tb3JvcyBhbmQgTGlieWEgaW4gMjAwNiwgU2V5Y2hlbGxlcyBpbiAyMDA5IGFuZCBUdW5pc2lhIGFuZCBTb21hbGlhIGluIDIwMTguDQoxOTkzIChEZWMgMjApOiBPSENIUiBmb3JtZWQuIFRoZSBPZmZpY2Ugb2YgdGhlIFVuaXRlZCBOYXRpb25zIEhpZ2ggQ29tbWlzc2lvbmVyIGZvciBIdW1hbiBSaWdodHMgKE9IQ0hSKSwgYSBVbml0ZWQgTmF0aW9ucyBhZ2VuY3kgdGhhdCB3b3JrcyB0byBwcm9tb3RlIGFuZCBwcm90ZWN0IHRoZSBodW1hbiByaWdodHMgdGhhdCBhcmUgZ3VhcmFudGVlZCB1bmRlciBpbnRlcm5hdGlvbmFsIGxhdyBhbmQgc3RpcHVsYXRlZCBpbiB0aGUgVW5pdmVyc2FsIERlY2xhcmF0aW9uIG9mIEh1bWFuIFJpZ2h0cyBvZiAxOTQ4Lg0KMTk5Mzp0aGUgMjR0aCBhbmQgbGFzdCBHTE9OQVNTIHNhdGVsbGl0ZSB3YXMgbGF1bmNoZWQgZm9ybWluZyB0aGUgd2hvbGUgbmF2aWdhdGlvbiBjb25zdGVsbGF0aW9uIHNpbWlsYXIgdG8gdGhhdCBvZiBVUydzIEdQUy4NCjE5OTM6IFNIQS0wIChhIGhhc2ggZnVuY3Rpb24pIHdhcyBwcm9wb3NlZCBieSBOSVNULCBNYXJ5bGFuZCwgVVNBIChGb3VuZGVkOiAxOTAxKS4gSXQgcHJvZHVjZXMgYSAxNjAtYml0IGhhc2ggdmFsdWUsIHRodXMgdGhlIGJydXRlLWZvcmNlIGNvbGxpc2lvbiBvciAgbmVhci1jb2xsaXNpb24gYXR0YWNrIHJlcXVpcmVzIE8oMl44MCkgY29tcHV0YXRpb24uIFdpdGhpbiA1IHllYXJzLCBpdCB3YXMgbWFkZSBjb2xsaXNpb24gYXR0YWNrZWQgYnkgQ2hhYmF1ZCBhbmQgSm91eCB3aXRoIHRoZSBhdHRhY2sgY29tcGxleGl0eSBvZiAyXjYxLg0KMTk5MzogW0NvYWxnYXRlIHNjYW1dIE9uIDIzcmQgQXByaWwgMjAxMywgdGhlIFN0YW5kaW5nIENvbW1pdHRlZSBvbiBDb2FsIGFuZCBTdGVlbCB0YWJsZWQgaW4gUGFybGlhbWVudCB0aGF0IGFsbCAxOTQgY29hbCBibG9ja3MgZGlzdHJpYnV0ZWQgYmV0d2VlbiAxOTkzIGFuZCAyMDA4IHdlcmUgYXVjdGlvbmVkIGluIGFuIHVuYXV0aG9yaXplZCBtYW5uZXIgYW5kIHRoZSBjb3VudHJ5IGxvc3QgUnMuMS44NiBsYWtoIGNyb3JlLi4gRm9ybWVyIFByaW1lIE1pbmlzdGVyIE1hbm1vaGFuIFNpbmdoLCBhbG9uZyB3aXRoIEt1bWFyIE1hbmdhbGFtIEJpcmxhIGFuZCBQLkMuIFBhcmFraCwgd2VyZSBhY2N1c2VkIGFuZCBzdW1tb25lZCBieSBhIHNwZWNpYWwgY291cnQuIFsyTCBDcm9yZV0uIENvbXB0cm9sbGVyIGFuZCBBdWRpdG9yIEdlbmVyYWwgb2YgSW5kaWEgdG9vayAyMCB5ZWFycyB0byBJRCBvbmUgb2YgdGhlIGJpZ2dlc3Qgc2NhbXMgaW4gSW5kaWFuIGhpc3RvcnkuDQoxOTkzOiBBZnRlciBQcmVzaWRlbnQgQmlsbCBDbGludG9uIHRvb2sgb2ZmaWNlIGluIDE5OTMsIGhvd2V2ZXIsIHRoZSBVLlMuIGVjb25vbXkgZW1iYXJrZWQgb24gYSBsb25nIGFuZCBzdHJvbmcgZXhwYW5zaW9uLCBtYWtpbmcgdGhlIDE5OTBzIGEgZ3JlYXQgZGVjYWRlIGZvciBBbWVyaWNhJ3MgbW9uZXksIG92ZXJhbGwuIA0KMTk5MzpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTW90aHJhKDE5OTIpDQoxOTkzOltTcGFjZV0gSGlwcGFyY29zLCBhIHNjaWVudGlmaWMgc2F0ZWxsaXRlIG9mIHRoZSBFdXJvcGVhbiBTcGFjZSBBZ2VuY3kgKEVTQSkgbGFzdGVkIGZvciA0IHllYXJzIGJlZm9yZSBnb2luZyBvdXQtb2Ytc2VydmljZS4NCjE5OTM6W1NwYWNlXVtSZXNlYXJjaF0gSW4gMTk5MywgRG9uIFBhZ2UgYXJndWVkIHRoYXQgaWYgYSBibGFjayBob2xlIHN0YXJ0cyBpbiBhIHB1cmUgcXVhbnR1bSBzdGF0ZSBhbmQgZXZhcG9yYXRlcyBjb21wbGV0ZWx5IGJ5IGEgdW5pdGFyeSBwcm9jZXNzLCB0aGUgdm9uIE5ldW1hbm4gZW50cm9weSBvZiB0aGUgSGF3a2luZyByYWRpYXRpb24gaW5pdGlhbGx5IGluY3JlYXNlcyBhbmQgdGhlbiBkZWNyZWFzZXMgYmFjayB0byB6ZXJvIHdoZW4gdGhlIGJsYWNrIGhvbGUgaGFzIGRpc2FwcGVhcmVkLiBUaGlzIGlzIGNhbGxlZCB0aGUgUGFnZSBjdXJ2ZS4NCjE5OTM6W0Jvb2tzXVtIaXN0b3J5XSBHcmVlbuKAmXMgRGljdGlvbmFyeSBvZiBTbGFuZyBpcyB0aGUgbGFyZ2VzdCBoaXN0b3JpY2FsIGRpY3Rpb25hcnkgb2YgRW5nbGlzaCBzbGFuZy4gV3JpdHRlbiBieSBKb25hdGhvbiBHcmVlbiBvdmVyIDE3IHllYXJzIGZyb20gMTk5MywgaXQgcmVhY2hlZCB0aGUgcHJpbnRlZCBwYWdlIGluIDIwMTAgaW4gYSB0aHJlZS12b2x1bWUgc2V0IGNvbnRhaW5pbmcgbmVhcmx5IDEwMCwwMDAgZW50cmllcyBzdXBwb3J0ZWQgYnkgb3ZlciA0MDAsMDAwIGNpdGF0aW9ucyBmcm9tIGMuIGFkIDEwMDAgdG8gdGhlIHByZXNlbnQgZGF5LiBUaGUgbWFpbiBmb2N1cyBvZiB0aGUgZGljdGlvbmFyeSBpcyB0aGUgY292ZXJhZ2Ugb2Ygb3ZlciA1MDAgeWVhcnMgb2Ygc2xhbmcgZnJvbSBjLiAxNTAwIG9ud2FyZHMuDQoxOTkzOltFbnZdW0Rpc2FzdGVyXSBTb3V0aCBBc2lhbiBtb25zb29uIGZsb29kcywgM2sgZGVhdGhzDQoxOTkzOltHZW9ncmFwaHldIFRoZSBsYXN0IG1ham9yIHNoaWZ0cyBpbiBFYXJ0aCdzIGF4aXMgd2VyZSBpbmZsdWVuY2VkIGJ5IGNsaW1hdGUgY2hhbmdlOiBhIDMxLjUtaW5jaCBzaGlmdCBiZXR3ZWVuIDE5OTMgYW5kIDIwMTAgd2FzIHByaW1hcmlseSBjYXVzZWQgYnkgZ3JvdW5kd2F0ZXIgcHVtcGluZywgYW5kIGEgY2hhbmdlIGluIHBvbGFyIGRyaWZ0IGRpcmVjdGlvbiBhcm91bmQgdGhlIDE5OTBzIHdhcyBsaW5rZWQgdG8gbWVsdGluZyBnbGFjaWVycyBhbmQgaWNlIHNoZWV0cyBkdWUgdG8gZ2xvYmFsIHdhcm1pbmcuIEVhcnRoJ3MgYXhpcyBhbHNvIHNoaWZ0ZWQgYnkgYWJvdXQgNi41IGluY2hlcyBpbiBNYXJjaCAyMDExIGFmdGVyIHRoZSBKYXBhbmVzZSBlYXJ0aHF1YWtlLCBjYXVzaW5nIHRoZSBwbGFuZXQgdG8gc3BpbiBzbGlnaHRseSBmYXN0ZXIuDQoxOTkzOltXaG9dIEluIDE5OTMsIEluZGlhIGNhbWUgaGVhcnRicmVha2luZ2x5IGNsb3NlIHRvIHdpbm5pbmcgaXRzIGZpcnN0IE1pc3MgVW5pdmVyc2UgY3Jvd24gd2l0aCB0aGUgc3R1bm5pbmcgYW5kIGdyYWNlZnVsIE5hbXJhdGEgU2hpcm9ka2FyLCB3aG8gaGFkIGVhcmxpZXIgd29uIHRoZSBGZW1pbmEgTWlzcyBJbmRpYSB0aXRsZS4gUmVwcmVzZW50aW5nIEluZGlhIGF0IHRoZSBNaXNzIFVuaXZlcnNlIHBhZ2VhbnQgaGVsZCBpbiBNZXhpY28gQ2l0eSwgTmFtcmF0YSB3YXMgYSBzdHJvbmcgY29udGVuZGVy4oCUZWxlZ2FudCBpbiBoZXIgZ293biwgcG9pc2VkIGluIGludGVydmlld3MsIGFuZCBhIGZhbiBmYXZvcml0ZS4gU2hlIGVhc2lseSBtYWRlIGl0IHRvIHRoZSBUb3AgNiwgYW5kIGhlciBjaGFuY2VzIG9mIHdpbm5pbmcgbG9va2VkIGluY3JlZGlibHkgaGlnaC4gQnV0IHRoZW4gY2FtZSB0aGUgZmluYWwgcXVlc3Rpb246IOKAnElmIHlvdSBjb3VsZCBiZSBib3JuIGFzIGFueSBoaXN0b3JpY2FsIGZpZ3VyZSwgd2hvIHdvdWxkIGl0IGJlIGFuZCB3aHk/4oCdIFdoaWxlIG90aGVyIGNvbnRlc3RhbnRzIG5hbWVkIGdsb2JhbCBpY29ucyBsaWtlIE1vdGhlciBUZXJlc2EgYW5kIFByaW5jZXNzIERpYW5hLCBOYW1yYXRhIGdhdmUgYW4gaG9uZXN0LCBwZXJzb25hbCBhbnN3ZXLigJRzaGUgc2FpZCBzaGUgd291bGQgYmUgYm9ybiBhcyBoZXJzZWxmIG9yIHNvbWVvbmUgY2xvc2UgdG8gaGVyLCBiZWNhdXNlIHNoZSBiZWxpZXZlZCBpbiBsaXZpbmcgbGlmZSB3aXRoIHRydXRoIGFuZCBpbmRpdmlkdWFsaXR5LiBJdCB3YXMgYSBiZWF1dGlmdWwsIGdyb3VuZGVkIGFuc3dlcuKAlGJ1dCBub3QgdGhlIGtpbmQgb2YgZ3JhbmQsIGlkZWFsaXN0aWMgcmVzcG9uc2UgdGhlIGp1ZGdlcyB3ZXJlIGV4cGVjdGluZy4gVGhhdCBvbmUgbW9tZW50IG9mIHRydXRoLCBtYW55IGJlbGlldmUsIGNvc3QgaGVyIHRoZSBjcm93biwgYW5kIEluZGlhIGhhZCB0byB3YWl0IGFub3RoZXIgeWVhciBiZWZvcmUgU3VzaG1pdGEgU2VuIGJyb3VnaHQgdGhlIE1pc3MgVW5pdmVyc2UgdGl0bGUgaG9tZSBpbiAxOTk0LiBTdGlsbCwgTmFtcmF0YeKAmXMgYW5zd2VyIGJlY2FtZSBpY29uaWPigJRub3QgYmVjYXVzZSBpdCB3b24sIGJ1dCBiZWNhdXNlIGl0IHdhcyByZWFsLCBtYXJraW5nIGEgcmFyZSBpbnN0YW5jZSB3aGVyZSBob25lc3R5IHN0b29kIHRhbGxlciB0aGFuIGRpcGxvbWFjeS4NCjE5OTM6W0F2aWF0aW9uXVtFeHRyZW1lXVtXaG9dIFRoZSBIZXJic3QgbWFuZXV2ZXIgd2FzIGZpcnN0IHN1Y2Nlc3NmdWxseSBwZXJmb3JtZWQgb24gQXByaWwgMjksIDE5OTMsIGJ5IGFuIFgtMzEgYWlyY3JhZnQuIE5hbWVkIGFmdGVyIFdvbGZnYW5nIEhlcmJzdCwgYSBkZXZlbG9wZXIgb2YgcG9zdC1zdGFsbCB0ZWNobm9sb2d5IGZvciBNZXNzZXJzY2htaXR0LULDtmxrb3ctQmxvaG0gKE1CQiksIHRoaXMsIHBvc3Qtc3RhbGwgbWFuZXV2ZXIgZW5hYmxlcyBhIGZpZ2h0ZXIgdG8gbWFrZSBhIHJhcGlkIDE4MMKwIHR1cm4gd2l0aGluIGEgbWluaW1hbCByYWRpdXMuIA0KDQoxOTk04oCTMTk5NTpbVVNdW0dlb1BvbGl0aWNzXSBvY2N1cGF0aW9uIG9mIEhhaXRpLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgRXVyb3BlYW4gRWNvbm9taWMgQXJlYSwgYWJicmV2aWF0ZWQgYXMgRUVBLCBjb25zaXN0cyBvZiB0aGUgTWVtYmVyIFN0YXRlcyBvZiB0aGUgRXVyb3BlYW4gVW5pb24gKEVVKSBhbmQgdGhyZWUgY291bnRyaWVzIG9mIHRoZSBFdXJvcGVhbiBGcmVlIFRyYWRlIEFzc29jaWF0aW9uIChFRlRBKSAoSWNlbGFuZCwgTGllY2h0ZW5zdGVpbiBhbmQgTm9yd2F5OyBleGNsdWRpbmcgU3dpdHplcmxhbmQpLiBUaGUgQWdyZWVtZW50IG9uIHRoZSBFRUEgZW50ZXJlZCBpbnRvIGZvcmNlIG9uIDEgSmFudWFyeSAxOTk0LiANCjE5OTQ6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEV1cm9wZWFuIEVjb25vbWljIEFyZWEgKEVFQSkgd2FzIGVzdGFibGlzaGVkIG9uIDEgSmFudWFyeSAxOTk0LiBUaGUgYWdyZWVtZW50IGxpbmtzIHRoZSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aHJlZSBFRlRBIHN0YXRlc+KAlEljZWxhbmQsIExpZWNodGVuc3RlaW4sIGFuZCBOb3J3YXnigJRpbnRvIGEgc2luZ2xlIGludGVybmFsIG1hcmtldCwgYWxsb3dpbmcgZm9yIHRoZSBmcmVlIG1vdmVtZW50IG9mIGdvb2RzLCBwZXJzb25zLCBzZXJ2aWNlcywgYW5kIGNhcGl0YWwuIA0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBOQUZUQSwgdGhlIE5vcnRoIEFtZXJpY2FuIEZyZWUgVHJhZGUgQWdyZWVtZW50LCB3YXMgYSAxOTk0IGFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzLCBDYW5hZGEsIGFuZCBNZXhpY28gdG8gZWxpbWluYXRlIHRyYWRlIGJhcnJpZXJzIGFuZCBwcm9tb3RlIGZyZWUgdHJhZGUgaW4gTm9ydGggQW1lcmljYS4gSXQgZmFjaWxpdGF0ZWQgdGhlIG1vdmVtZW50IG9mIGdvb2RzIGFuZCBzZXJ2aWNlcyBhbmQgZXN0YWJsaXNoZWQgYSBsYXJnZSB0cmFkZSBibG9jLiBJbiBKdWx5IDIwMjAsIE5BRlRBIHdhcyByZXBsYWNlZCBieSB0aGUgVW5pdGVkIFN0YXRlcy1NZXhpY28tQ2FuYWRhIEFncmVlbWVudCAoVVNNQ0EpLCB3aGljaCBtb2Rlcm5pemVkIGFuZCBlbmhhbmNlZCB0aGUgdHJlYXR5IGZvciBhIGNvbnRlbXBvcmFyeSBlY29ub215Lg0KMTk5NDpbUy5BZnJpY2FdW1NvY2lhbGlzbV0gRmlyc3QgZnJlZSBlbGVjdGlvbnMgaW4gU291dGggQWZyaWNhOyBOZWxzb24gTWFuZGVsYQ0KMTk5NDpbUmVzZWFyY2hdW3NwYWNlXSBDYXJsIFNhZ2FuIGNvbmNlZGVkIHRoYXQgdGhpcyBhcHByb2FjaCB3b3VsZCBub3Qgd29yayBiZWNhdXNlIHRoZSBhdG1vc3BoZXJlIG9mIFZlbnVzIGlzIGZhciBkZW5zZXIgKDkwIGJhcnMpIHRoYW4gd2hhdCB3YXMgdW5kZXJzdG9vZCBpbiAxOTYxIChhIGZldyBiYXJzKSwgbWVhbmluZyB0aGUgY2FyYm9uIHdvdWxkIGp1c3QgYmUgb3hpZGl6ZWQgYmFjayBpbnRvIENPMi4NCjE5OTQ6W0NvbXB1dGluZ11bUXVhbnR1bV0gUGV0ZXIgU2hvciBkaXNjb3ZlcmVkIGFuIGFsZ29yaXRobSAoU2hvcidzIGFsZ29yaXRobSkgdGhhdCBjb3VsZCBmYWN0b3IgbGFyZ2UgbnVtYmVycyBpbiBwb2x5bm9taWFsIHRpbWUgb24gYSBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCB3b3VsZCBicmVhayB0aGUgc2VjdXJpdHkgb2YgbWFueSBjcnlwdG9ncmFwaGljIHNjaGVtZXMuIA0KMTk5NDpbQ29tcHV0aW5nXVtRdWFudHVtXSBQZXRlciBTaG9yIGFuZCBEb24gQ29wcGVyc21pdGggZmlndXJlZCBvdXQgaG93IHRvIHRha2UgYSBRdWFudHVtIEZvdXJpZXIgVHJhbnNmb3JtLg0KMTk5NDpUaGUgcHJvYmxlbSB3aXRoIHRoZSBwYXBlciBwdWJsaXNoZWQgZWFybGllciB0aGlzIG1vbnRoIHdhcyBpdHMgcmVsaWFuY2Ugb24gU2Nobm9ycidzIGFsZ29yaXRobSAobm90IHRvIGJlIGNvbmZ1c2VkIHdpdGggU2hvcuKAmXMgYWxnb3JpdGhtKSwgd2hpY2ggd2FzIGRldmVsb3BlZCBpbiAxOTk0LiBTY2hub3Jy4oCZcyBhbGdvcml0aG0gaXMgYSBjbGFzc2ljYWwgY29tcHV0YXRpb24gYmFzZWQgb24gbGF0dGljZXMsIHdoaWNoIGFyZSBtYXRoZW1hdGljYWwgc3RydWN0dXJlcyB0aGF0IGhhdmUgbWFueSBhcHBsaWNhdGlvbnMgaW4gY29uc3RydWN0aXZlIGNyeXB0b2dyYXBoeSBhbmQgY3J5cHRhbmFseXNpcy4gVGhlIGF1dGhvcnMgd2hvIGRldmlzZWQgU2Nobm9ycuKAmXMgYWxnb3JpdGhtIHNhaWQgaXQgY291bGQgZW5oYW5jZSB0aGUgdXNlIG9mIHRoZSBoZXVyaXN0aWMgcXVhbnR1bSBvcHRpbWl6YXRpb24gbWV0aG9kIGNhbGxlZCBRQU9BLg0KMTk5NCAoSmFuIDEpOiBbR2VvUG9saXRpY3NdIFRoZSBOb3J0aCBBbWVyaWNhbiBGcmVlIFRyYWRlIEFncmVlbWVudCAoTkFGVEEpIHdhcyBhbiBhZ3JlZW1lbnQgc2lnbmVkIGJ5IENhbmFkYSwgTWV4aWNvLCBhbmQgdGhlIFVuaXRlZCBTdGF0ZXMgdGhhdCBjcmVhdGVkIGEgdHJpbGF0ZXJhbCB0cmFkZSBibG9jIGluIE5vcnRoIEFtZXJpY2EuIFRoZSBhZ3JlZW1lbnQgY2FtZSBpbnRvIGZvcmNlIG9uIEphbnVhcnkgMSwgMTk5NCwgYW5kIHN1cGVyc2VkZWQgdGhlIDE5ODggQ2FuYWRh4oCTVW5pdGVkIFN0YXRlcyBGcmVlIFRyYWRlIEFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzIGFuZCBDYW5hZGEuIFRoZSBOQUZUQSB0cmFkZSBibG9jIGZvcm1lZCBvbmUgb2YgdGhlIGxhcmdlc3QgdHJhZGUgYmxvY3MgaW4gdGhlIHdvcmxkIGJ5IGdyb3NzIGRvbWVzdGljIHByb2R1Y3QuDQoxOTk0OltUZWNobm9sb2d5XVtCdXNpbmVzc11bVVNdW0NvbXB1dGluZ10gVGhlIERlbGwgTGF0aXR1ZGUgc2VyaWVzIGlzIGEgbGluZSBvZiBsYXB0b3AgY29tcHV0ZXJzIG1hbnVmYWN0dXJlZCBhbmQgc29sZCBieSBBbWVyaWNhbiBjb21wYW55IERlbGwuIEl0IGlzIGEgYnVzaW5lc3Mtb3JpZW50ZWQgbGluZSwgYWltZWQgYXQgY29ycG9yYXRlIGVudGVycHJpc2VzLCBoZWFsdGhjYXJlLCBnb3Zlcm5tZW50LCBhbmQgZWR1Y2F0aW9uIG1hcmtldHM7IHVubGlrZSB0aGUgSW5zcGlyb24gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBpbmRpdmlkdWFsIGN1c3RvbWVycywgYW5kIHRoZSBWb3N0cm8gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBzbWFsbGVyIGJ1c2luZXNzZXMuIFRoZSBMYXRpdHVkZSBkaXJlY3RseSBjb21wZXRlcyB3aXRoIHRoZSBMZW5vdm8gVGhpbmtQYWQgYW5kIHRoZSBFbGl0ZUJvb2sgc2VyaWVzIGJ5IEhQLiBBZGRpdGlvbmFsbHksIHRoZSAiUnVnZ2VkIChFeHRyZW1lKSIsICJYRlIiIGFuZCAiQVRHIiBtb2RlbHMgY29tcGV0ZSBwcmltYXJpbHkgd2l0aCBQYW5hc29uaWMncyBUb3VnaGJvb2sgbGluZSBvZiAicnVnZ2VkIiBsYXB0b3BzLg0KMTk5NDogU3VzaG1pdGEgU2VuIGJlY2FtZSBNaXNzIFVuaXZlcnNlLg0KMTk5NDogVGhlIEFubmFscyBvZiBJbXByb2JhYmxlIFJlc2VhcmNoIGlzIGEgYmktbW9udGhseSBtYWdhemluZSBkZXZvdGVkIHRvIHNjaWVudGlmaWMgaHVtb3IsIGluIHRoZSBmb3JtIG9mIGEgc2F0aXJpY2FsIHRha2Ugb24gdGhlIHN0YW5kYXJkIGFjYWRlbWljIGpvdXJuYWwuDQoxOTk0OiBMaW5kb24gTGVhZGVyIG9mIExhbmRvciBBc3NvY2lhdGVzLCBvZiBTYW4gRnJhbmNpc2NvIGRlc2lnbmVkIHdvcmRtYXJrcyBmb3IgRmVkRXgncyB2YXJpb3VzIE9wLXVuaXQuIEZlZEV44oCZcyBwdWJsaWMtcmVsYXRpb25zIGZpcm0gd2FudGVkIHRvIGhpZ2hsaWdodCB0aGUgYXJyb3cgc28gaXQgd291bGQgYmUgb2J2aW91cy4gQnV0IGhlIGZvdWdodCB0aGVtIG9uIHRoYXQg4oCUIGhlIHRob3VnaHQgaXQgd291bGQgYmUgb3ZlcmtpbGwuIFRoZXJl4oCZcyBzb21ldGhpbmcgYWJvdXQgbWFraW5nIHBlb3BsZSBkaXNjb3ZlciBzb21ldGhpbmcgb24gdGhlaXIgb3duIHRoYXTigJlzIGEgbG90IG1vcmUgcG93ZXJmdWwgdGhhbiBpdGFsaWNpemluZyBpdCB0byBtYWtlIHlvdXIgcG9pbnQuDQoxOTk0OiBTY2lsYWIgMS4xLCB0aGUgZmlyc3QgcmVsZWFzZWQgdmVyc2lvbiBvZiBTY2lsYWIsIHdhcyBwdXQgb24gYW5vbnltb3VzIGZ0cCBzaXRlLg0KMTk5NDogVGhlIGNvbmNlcHQgb2YgYSBjYWbDqSB3aXRoIGZ1bGwgSW50ZXJuZXQgYWNjZXNzIChhbmQgdGhlIG5hbWUgQ3liZXJjYWbDqSkgd2FzIGludmVudGVkIGluIGVhcmx5IGJ5ICBhIEJyaXRpc2ggdGVjaG5vbG9neSBhcnRpc3QsIEl2YW4gUG9wZS4NCjE5OTQ6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIGx1cmVkIG9uZSBvZiBEYXdvb2QncyBmYXZvcml0ZSAibmFyY28tdGVycm9yaXN0IiBQaGlsbHUgS2hhbiBhbGlhcyBCYWtodGl5YXIgQWhtZWQgS2hhbiB0byBhIGhvdGVsIHJvb20gaW4gQmFuZ2tvaywgd2hlcmUgaGUgd2FzIHRvcnR1cmVkIHRvIGRlYXRoLCBoYXZpbmcgYmVlbiBiZXRyYXllZCBieSBoaXMgY2xvc2VzdCBhaWRlIGFuZCBzaWRla2ljayBNYW5nZXNoICJNYW5neWEiIFBhd2FyLiBELUNvbXBhbnkncyBTaGFyYWQsIHVzZWQgaGlzIGxpbmtzIHdpdGggTXVtYmFpLWJhc2VkIGhvdGVsaWVyIFZpbm9kIGFuZCBBLiBNaXNocmEgdG8gdHJhY2sgZG93biBSYWphbiBpbiBCYW5na29rLiBSYWphbidzIGhpdG1hbiBSb2hpdCBWYXJtYSBhbmQgaGlzIHdpZmUgc2hvdCBieSBELUNvbXBhbnkuDQoxOTk0KEp1bCAxNik6W1NwYWNlXSBGcm9tIEp1bHkgMTYgdG8gMjIsIDE5OTQsIGVub3Jtb3VzIHBpZWNlcyBvZiB0aGUgY29tZXQgU2hvZW1ha2VyLUxldnkgOSAoU0w5KSwgZGlzY292ZXJlZCBqdXN0IGEgeWVhciBwcmlvciwgY3Jhc2hlZCBpbnRvIEp1cGl0ZXIgb3ZlciBzZXZlcmFsIGRheXMsIGNyZWF0aW5nIGh1Z2UsIGRhcmsgc2NhcnMgaW4gdGhlIHBsYW5ldCdzIGF0bW9zcGhlcmUgYW5kIGxvZnRpbmcgc3VwZXJoZWF0ZWQgcGx1bWVzIGludG8gaXRzIHN0cmF0b3NwaGVyZS4NCjE5OTQgKE9jdCk6IElUUE8gYW5kIEdvSSdzIE5JQyBqb2ludGx5IHNldC11cCB0aGUgTmF0aW9uYWwgQ2VudHJlIGZvciBUcmFkZSBJbmZvcm1hdGlvbiAoTkNUSSkgYXQgUHJhZ2F0aSBNYWlkYW4uDQoxOTk0IChOb3YgMSwgMTU6MDEgSVNUKTpbU3BhY2VdW1N1bl0gVGhlIEdsb2JhbCBHZW9zcGFjZSBTY2llbmNlICdXaW5kJyBzYXRlbGxpdGUgaXMgYSBOQVNBIHNjaWVuY2Ugc3BhY2VjcmFmdCBkZXNpZ25lZCB0byBzdHVkeSByYWRpbyB3YXZlcyBhbmQgcGxhc21hIHRoYXQgb2NjdXIgaW4gdGhlIHNvbGFyIHdpbmQgYW5kIGluIHRoZSBFYXJ0aCdzIG1hZ25ldG9zcGhlcmUuIA0KMTk5NCAoRGVjIDMpOiBTb255J3MgUGxheVN0YXRpb24gKGEgdmlkZW8gZ2FtZSBjb25zb2xlKSB3YXMgaW50cm9kdWNlZCB0byB0aGUgd29ybGQgZnJvbSBNaW5hdG8sIFRva3lvIChKYXBhbikuDQoxOTk0OiBXWFlDLSBmaXJzdCBpbnRlcm5ldCByYWRpbyBzdGF0aW9uIGJyb2FkY2FzdC4NCjE5OTQ6IE1lbW9yeSBjYXJkcyB3ZXJlIGludHJvZHVjZWQgaW4gdGhlIGNvbnN1bWVyIGVsZWN0cm9uaWNzIG1hcmtldC4NCjE5OTQgKEF1Zyk6IElUUE8ncyAxc3QgRGVsaGkgQm9vayBGYWlyIGF0ICBIYWxsIDggdG8gMTIgb2YgUHJhZ2F0aSBNYWlkYW4sIE5ldyBEZWxoaS4gVGhlIHRpbWluZ3Mgb2YgZmFpciBhcmUgZnJvbSAxMC4wMCBhbSB0byA4LjAwIHBtIChlbnRyeSB0byBmYWlyIHdpbGwgY2xvc2UgYXQgNy4zMCBwbSkuDQoxOTk0IChTZXApOiBUaGUgQ09OQ0VSVCBzb2Z0d2FyZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgaW1wbGVtZW50ZWQgYXQgYWxsIG9mIHRoZSBmaXZlIFBSUycgc2l0ZXMgU2VjdW5kZXJhYmFkIGluIFNlcHQuIDE5OTQsIE5ldyBEZWxoaSBvbiBTZXB0LiAxOTk2LCBDYWxjdXR0YSBvbiAxNHRoIEp1bmUgMTk5OCwgTXVtYmFpIG9uIDExdGggSmFuIDE5OTkgYW5kIENoZW5uYWkgb24gMTJ0aCBBcHJpbCAxOTk5Lg0KMTk5NDogdGhlIDI0dGggYW5kIHRoZSBsYXN0IEdQUyBzYXRlbGxpdGUgd2FzIGxhdW5jaGVkIGluIFVTLg0KMTk5NDogVGhlIHdvcmQgVGFsaWJhbiBpcyBQYXNodG8sINi32KfZhNio2KfZhiDhua3EgWxpYsSBbiwgbWVhbmluZyAic3R1ZGVudHMiLCB0aGUgcGx1cmFsIG9mIOG5rcSBbGliLiBBZnRlciB0aGUgU292aWV0IFVuaW9uIGludGVydmVuZWQgYW5kIG9jY3VwaWVkIEFmZ2hhbmlzdGFuIGluIDE5NzksIElzbGFtaWMgbXVqYWhpZGVlbiBmaWdodGVycyBlbmdhZ2VkIGluIHdhciB3aXRoIHRob3NlIFNvdmlldCBmb3JjZXMsIHdoaWNoIGxhaWQgdGhlIGZvdW5kYXRpb24gb2YgcG9saXRpY2FsIG1vdmVtZW50IGFuZCBtaWxpdGFyeSBvcmdhbml6YXRpb24gbmFtZWQgVGFsaWJhbi4NCjE5OTQ6IEFiZHVsIEthcmVlbSBUZWxnaSBhY3F1aXJlZCB0aGUgbGljZW5zZSBmb3Igc2VsbGluZyBzdGFtcCBwYXBlciBhbmQgb3BlbmVkIGFuIG9mZmljZSBpbiBNdW1iYWkuIEFmdGVyIHRoYXQsIGhlIHN0YXJ0ZWQgcHJpbnRpbmcgc3RhbXAgcGFwZXIgaW4gTmFzaGlrLiBXaXRoIHNvbWUgYWdlbnRz4oCZIGhlbHAsIGhlIHN0YXJ0cyBzZWxsaW5nIGZha2Ugc3RhbXAgcGFwZXIgaW4gYnVsayB0byBiYW5rcywgaW5zdXJhbmNlIGNvbXBhbmllcywgc3RvY2sgYnJva2VyYWdlIGZpcm1zLCBhbmQgY29ycG9yYXRlcy4gSW4gMjAwMyB0aGUgVGVsZ2kgc2NhbSB3YXMgdW5mb2xkZWQ7IHRoZSBmaWd1cmUgaW4gdGhlIG1pbmQgb2Ygc2VjdXJpdHkgYW5kIGludGVsbGlnZW5jZSBhZ2VuY2llcyB3YXMgdXAgdG8gUnMuMjBrIENyb3JlDQoxOTk0OiBbR2VvUG9saXRpY3NdIEludGVybmF0aW9uYWwgQXNzb2NpYXRpb24gb2YgR2VuZGFybWVyaWVzIGFuZCBQb2xpY2UgRm9yY2VzIHdpdGggTWlsaXRhcnkgU3RhdHVzIChjb21tb25seSBrbm93biBhcyBGSUVQIGZvciBGcmFuY2UtSXRhbGlhLUVzcGHDsWEtUG9ydHVnYWwsIHRoZSBmaXJzdCBmb3VyIG1lbWJlcnMpIGlzIGFuIGFzc29jaWF0aW9uIG9mIG5hdGlvbmFsIGdlbmRhcm1lcmllcyBvciBtaWxpdGFyeSBwb2xpY2UgZm9yY2VzLg0KMTk5NDpbQm9va10gUGFsZSBCbHVlIERvdDogQSBWaXNpb24gb2YgdGhlIEh1bWFuIEZ1dHVyZSBpbiBTcGFjZSBpcyBhIDE5OTQgYm9vayBieSB0aGUgYXN0cm9ub21lciBDYXJsIFNhZ2FuLiBJdCBpcyB0aGUgc2VxdWVsIHRvIFNhZ2FuJ3MgMTk4MCBib29rIENvc21vcyBhbmQgd2FzIGluc3BpcmVkIGJ5IHRoZSBmYW1vdXMgMTk5MCBQYWxlIEJsdWUgRG90IHBob3RvZ3JhcGgsIGZvciB3aGljaCBTYWdhbiBwcm92aWRlcyBhIHBvaWduYW50IGRlc2NyaXB0aW9uLiBJbiB0aGUgYm9vaywgU2FnYW4gbWl4ZXMgcGhpbG9zb3BoeSBhYm91dCB0aGUgaHVtYW4gcGxhY2UgaW4gdGhlIHVuaXZlcnNlIHdpdGggYSBkZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCBrbm93bGVkZ2UgYWJvdXQgdGhlIFNvbGFyIFN5c3RlbS4gSGUgYWxzbyBkZXRhaWxzIGEgaHVtYW4gdmlzaW9uIGZvciB0aGUgZnV0dXJlLg0KMTk5NDpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTWVjaGFnb2R6aWxsYSBJSSgxOTkzKQ0KMTk5NDpbQ2luZW1hXSBUaGUgQXBwbGUoMTk4MCkNCjE5OTQ6W0NpbmVtYV0gVGhlIEF0bGFudGlzIEludGVyY2VwdG9ycygxOTgzKQ0KMTk5NDpbTW50bmdnXSBJbiAxOTk0LCBNYXJrIFdoZXR1IHN1bW1pdHRlZCBNdCBFdmVyZXN0IHdpdGggTWlrZSBSZWluYmVyZ2VyLiBCdXQgYWZ0ZXIgYSBmcmVlemluZyBuaWdodCwgV2hldHUgZmFjZWQgYSBoYXJyb3dpbmcgY2hvaWNlOiBsZWF2ZSBoaXMgZnJpZW5kIG9yIHJlbWFpbiBmb3JldmVyLiBUaGUgRmF0YWwgR2FtZSAoMTk5NykNCjE5OTQ6W1RvdXJpc21dIFRoZSBBZHZlbnR1cmUgVG91ciBPcGVyYXRvcnMgQXNzb2NpYXRpb24gb2YgSW5kaWEgKEFUT0FJKSB3YXMgZm91bmRlZCBpbiAxOTk0LiBJdCB3YXMgZXN0YWJsaXNoZWQgYnkgYSBncm91cCBvZiB0cmF2ZWwgdHJhZGUgYWR2ZW50dXJlcnMgd2hvIGFpbWVkIHRvIGNyZWF0ZSBhIHN0cm9uZyBzdXBwb3J0IG5ldHdvcmsgZm9yIEluZGlhbiBhZHZlbnR1cmUgdG91ciBvcGVyYXRvcnMuIA0KDQoxOTk1IChNYXkgMTkpOiBbUmVzZWFyY2hdW1NwYWNlXSB0d28gc2NpZW50aXN0cyBhdCBDYWwgUG9seSBzaG93ZWQgdGhhdCBiYWN0ZXJpYSBjYW4gc3Vydml2ZSB3aXRob3V0IGFueSBtZXRhYm9saXNtIGZvciBhdCBsZWFzdCAyNSBtaWxsaW9uIHllYXJzOyBwcm9iYWJseSB0aGV5IGFyZSBpbW1vcnRhbC4NCjI0IE5vdmVtYmVyIDE5OTU6IFRoZSBOZXcgWW9yayBUaW1lcyBkZXNjcmliZWQgYmFjdGVyaWEgdGhhdCBjYW4gc3Vydml2ZSByYWRpYXRpb24gbXVjaCBzdHJvbmdlciB0aGFuIGFueSB0aGF0IEVhcnRoIGhhcyBldmVyIGV4cGVyaWVuY2VkLg0KV2UgYXJlIGNhbGxpbmcgdGhlIHVuaW9uIG9mIExvdmVsb2NrJ3MgR2FpYSB3aXRoIEhveWxlIGFuZCBXaWNrcmFtYXNpbmdoZSdzIGV4cGFuZGVkIHRoZW9yeSBvZiBwYW5zcGVybWlhIENvc21pYyBBbmNlc3RyeS4gVGhpcyBhY2NvdW50IG9mIGV2b2x1dGlvbiBhbmQgdGhlIG9yaWdpbiBvZiBsaWZlIG9uIEVhcnRoIGlzIHByb2ZvdW5kbHkgZGlmZmVyZW50IGZyb20gdGhlIHByZXZhaWxpbmcgc2NpZW50aWZpYyBwYXJhZGlnbS4gSXQgY2hhbGxlbmdlcyBub3QgbWVyZWx5IHRoZSBhbnN3ZXJzIGJ1dCB0aGUgcXVlc3Rpb25zIHRoYXQgYXJlIHBvcHVsYXIgdG9kYXkuIENvc21pYyBBbmNlc3RyeSByZXF1aXJlcyB0aGF0IGxpZmUgY2FuIG9ubHkgZGVzY2VuZCBmcm9tIGFuY2VzdG9ycyBhdCBsZWFzdCBhcyBoaWdobHkgZXZvbHZlZCBhcyBpdHNlbGYsIGFuZCB0aGF0IHRoZXJlIGNhbiBiZSBubyBvcmlnaW4gb2YgbGlmZSBmcm9tIG5vbmJpb2xvZ2ljYWwgbWF0dGVyLiBXaXRob3V0IHN1cGVybmF0dXJhbCBpbnRlcnZlbnRpb24sIHRoZXJlZm9yZSwgd2UgY29uY2x1ZGUgdGhhdCBsaWZlIG11c3QgaGF2ZSBhbHdheXMgZXhpc3RlZC4gQWx0aG91Z2ggdGhlc2UgY29uY2x1c2lvbnMgY3V0IGFjcm9zcyB0aGUgYm91bmRhcmllcyBiZXR3ZWVuIHNjaWVuY2UsIHBoaWxvc29waHksIGFuZCByZWxpZ2lvbiwgd2UgYmVsaWV2ZSB0aGV5IGFyZSBncm91bmRlZCBpbiBnb29kIGV2aWRlbmNlLiBBbmQgbmV3IGRhdGEgdGhhdCBzdXBwb3J0IG1hbnkgYXNwZWN0cyBvZiBDb3NtaWMgQW5jZXN0cnkgYXJlIGNvbWluZyBpbiByYXBpZGx5LiBJbiB0aGUgZm9sbG93aW5nIHBhZ2VzIHdlIHdpbGwgZXhwbGFpbiBob3cgdGhlc2UgYW5kIG90aGVyIHJlY2VudCBkZXZlbG9wbWVudHMgc3VwcG9ydCBDb3NtaWMgQW5jZXN0cnk6DQoNCjE5OTU6IEFOU0VUIHNvbGQgdG8gQU9MLCB3aG8gIG5vdyBydW5zIGl0Lg0KMTk5NSAoTWFyKTogRGVwdC4gb2YgSW5kaWFuIE1lZGljaW5lIGFuZCBIb21lb3BhdGh5IGZvdW5kZWQuDQoxOTk1IChNYXIgMjQpOltSZXNlYXJjaF0gUmVtb3RlbHkgT3BlcmF0ZWQgVmVoaWNsZSBLQUlLTyByZWFjaGVkIHRoZSBkZWVwZXN0IGFyZWEgb2YgdGhlIE1hcmlhbmEgVHJlbmNoIGFuZCBtYWRlIHRoZSBkZWVwZXN0IGRpdmluZyByZWNvcmQgb2YgMTAsOTExIG0gKDM1LDc5NyBmdDsgNSw5NjYgZmF0aG9tcykgDQoxOTk1OiBwaG9uZSBjYWxsIGNvc3RpbmcgUnMuIDE2IHBlciBtaW4uDQoxOTk1OltHYW1pbmddIFZpcnR1YSBDb3AgMiBpcyBhIGxpZ2h0IGd1biBzaG9vdGVyIGFyY2FkZSBnYW1lLCByZWxlYXNlZCBpbiAxOTk1IGFuZCBkZXZlbG9wZWQgaW50ZXJuYWxseSBhdCBTZWdhIGJ5IHRoZWlyIEFNMiBzdHVkaW8gKFl1IFN1enVraSkuIEl0IHdhcyBwb3J0ZWQgdG8gdGhlIFNlZ2EgU2F0dXJuIGluIDE5OTYuIEl0IHdhcyByZWxlYXNlZCBvbiBQQyBpbiAxOTk3IGFuZCBTZWdhIERyZWFtY2FzdCBpbiAyMDAwLiBJdCB3YXMgbGF0ZXIgYnVuZGxlZCB3aXRoIFZpcnR1YSBDb3AgaW4gVmlydHVhIENvcDogRWxpdGUgRWRpdGlvbiBmb3IgUGxheVN0YXRpb24gMiBpbiAyMDAyLg0KMTk5NSAoQXByIDEpOltSZXNlYXJjaF0gUGlsbGFycyBvZiBDcmVhdGlvbiBpcyBhIHBob3RvZ3JhcGggdGFrZW4gYnkgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgb2YgZWxlcGhhbnQgdHJ1bmtzIG9mIGludGVyc3RlbGxhciBnYXMgYW5kIGR1c3QgaW4gdGhlIEVhZ2xlIE5lYnVsYSwgaW4gdGhlIFNlcnBlbnMgY29uc3RlbGxhdGlvbiwgc29tZSA2LDUwMOKAkzcsMDAwIGxpZ2h0LXllYXJzICgyLDAwMOKAkzIsMTAwIHBjOyA2MeKAkzY2IEVtKSBmcm9tIEVhcnRoLg0KMTk5NSAoQXByIDEpOiBJQUFJIGFuZCBOQUEgd2VyZSBtZXJnZWQgYnkgYW4gQWN0IG9mIFBhcmxpYW1lbnQgYW5kIHdhcyBuYW1lZCBhcyBBaXJwb3J0cyBBdXRob3JpdHkgb2YgSW5kaWEgKEFBSSkuIFRoaXMgbmV3IG9yZ2FuaXNhdGlvbiB3YXMgdG8gYmUgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nLCB1cGdyYWRpbmcsIG1haW50YWluaW5nIGFuZCBtYW5hZ2luZyBjaXZpbCBhdmlhdGlvbiBpbmZyYXN0cnVjdHVyZSBib3RoIG9uIHRoZSBncm91bmQgYW5kIGFpciBzcGFjZSBpbiB0aGUgY291bnRyeS4NCjE5OTUgKEFwciAyMSk6W0NyaW1lXVtJbmRpYV0gQmFibG9vIHBpY2tlZCB1cCBieSB0aGUgU2luZ2Fwb3JlIGFpcnBvcnQgcG9saWNlIGZvciB0cmF2ZWxsaW5nIG9uIGZha2UgcGFzc3BvcnQuIEhlIHdhcyBzdGF5aW5nIGluIER1YmFpLg0KMTk5NSAoU2VwIDMwKTpbQ3JpbWVdW0luZGlhXSBTaW5nYXBvcmUgZXh0cmFkaXRlcyBJbmRpYSdzICdtb3N0LXdhbnRlZCBpbnRlci1zdGF0ZSBjcmltaW5hbCcgQmFibG9vIFNyaXZhc3RhdmEgKDMzWU8pDQoxOTk1IChOb3YgMzApOiBPcGVyYXRpb24gRGVzZXJ0IFN0b3JtIChGaXJzdCBJcmFxIFdhcilvZmZpY2lhbGx5IGVuZGVkLg0KMTk5NSAoTWF5IDMxKTpbQm9va11bTWlsaXRhcnldIEFkbWlyYWwgV2lsbGlhbSBILiBNY1JhdmVuJ3MgU3BlYyBPcHM6IENhc2UgU3R1ZGllcyBpbiBTcGVjaWFsIE9wZXJhdGlvbnMgV2FyZmFyZTogVGhlb3J5IGFuZCBQcmFjdGljZTsgU2VhIFN0b3JpZXM6IE15IExpZmUgaW4gU3BlY2lhbCBPcGVyYXRpb25zICgyMDE5LCBNYXkgMSk7IFRoZSBIZXJvIENvZGU6IExlc3NvbnMgTGVhcm5lZCBmcm9tIExpdmVzIFdlbGwgTGl2ZWQgKDIwMjEsIEFwciAxMykNCjE5OTU6IERyLiBIYW5kZSBhZnRlciBncmFkdWF0aW5nIGZyb20gSUlUIEtoYXJhZ3B1ciBjb25jZXB0dWFsaXplZCBTRUxDTyBJbmRpYSBkdXJpbmcgaGlzIFBoRCBvbiBzdXN0YWluYWJsZSBlbmVyZ3kgYXQgdGhlIFVuaXZlcnNpdHkgb2YgTWFzc2FjaHVzZXR0cy4gRHVyaW5nIGEgZmllbGQgdmlzaXQgdG8gdGhlIERvbWluaWNhbiBSZXB1YmxpYywgaGUgd2FzIHN1cnByaXNlZCB0byBzZWUgdGhlIHBvb3IgdXNpbmcgc29sYXIgbGlnaHRzLg0KMTk5NTogVGhlIEdvdmVybm1lbnQgb2YgSW5kaWEgYW5kIHRoZSBHb3Zlcm5tZW50IG9mIERlbGhpIGpvaW50bHkgc2V0IHVwIGEgY29tcGFueSBjYWxsZWQgdGhlIERlbGhpIE1ldHJvIFJhaWwgQ29ycG9yYXRpb24gKERNUkMpIG9uIDMgTWF5IDE5OTUsIHdpdGggRHIuIEUuIFNyZWVkaGFyYW4gYXMgdGhlIG1hbmFnaW5nIGRpcmVjdG9yLg0KMTk5NTogSW50J2wgR2FuZGhpIFBlYWNlIFByaXplIGxhdW5jaGVkLg0KMTk5NTogU2FjaGluIFIuIFRlbmR1a2FyIGFuZCBBbmphbGkgVGVuZHVsa2FyIHdlZGRlZCB0b2dldGhlci4NCjE5OTU6IC5tcDMgaW52ZW50ZWQuDQoxOTk1OltHYW1pbmddIFdoaWxlIEZJRkEgOTUgZGlkIG5vdCBhZGQgbXVjaCBvdGhlciB0aGFuIHRoZSBhYmlsaXR5IHRvIHBsYXkgd2l0aCBjbHViIHRlYW1zLCBGSUZBIDk2IHB1c2hlZCB0aGUgYm91bmRhcmllcy4gRm9yIHRoZSBmaXJzdCB0aW1lIHdpdGggcmVhbCBwbGF5ZXIgbmFtZXMgYnkgb2J0YWluaW5nIHRoZSBGSUZQcm8gbGljZW5zZSwgdGhlIFBsYXlTdGF0aW9uLCBQQywgMzJYIGFuZCBTZWdhIFNhdHVybiB2ZXJzaW9ucyB1c2VkIEVBJ3MgIlZpcnR1YWwgU3RhZGl1bSIgZW5naW5lLCB3aXRoIDJEIHNwcml0ZSBwbGF5ZXJzIG1vdmluZyBhcm91bmQgYSByZWFsLXRpbWUgM0Qgc3RhZGl1bS4NCjE5OTUgKEp1bCAxOCk6W0Jvb2tdIEJhcmFjayBPYmFtYSdzIERyZWFtcyBmcm9tIE15IEZhdGhlcjogQSBTdG9yeSBvZiBSYWNlIGFuZCBJbmhlcml0YW5jZTsgRHJlYW1zIGZyb20gTXkgRmF0aGVyOiBBIFN0b3J5IG9mIFJhY2UgYW5kIEluaGVyaXRhbmNlICgyMDA2LCBPY3QgMTcpOyBPZiBUaGVlIEkgU2luZzogQSBMZXR0ZXIgdG8gTXkgRGF1Z2h0ZXJzICgyMDEwLCBOb3YgMTYpOyBBIFByb21pc2VkIExhbmQgKDIwMjAsIE5vdiAxNykNCjE5OTUoSmFuIDEpOltFbnZdIFRoZSBBZ3JlZW1lbnQgb24gQWdyaWN1bHR1cmUgKEFvQSkgaXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgb2YgdGhlIFdvcmxkIFRyYWRlIE9yZ2FuaXphdGlvbi4gSXQgd2FzIG5lZ290aWF0ZWQgZHVyaW5nIHRoZSBVcnVndWF5IFJvdW5kIG9mIHRoZSBHZW5lcmFsIEFncmVlbWVudCBvbiBUYXJpZmZzIGFuZCBUcmFkZSwgYW5kIGVudGVyZWQgaW50byBmb3JjZSB3aXRoIHRoZSBlc3RhYmxpc2htZW50IG9mIHRoZSBXVE8gb24gSmFudWFyeSAxLCAxOTk1LiBCbHVlLCBSZWQsIEFtYmVyIGFuZCBHcmVlbiBCb3ggb2Ygc3Vic2lkaWVzLg0KMTk5NTpbQ2luZW1hXSBOZWxzb24gTWFuZGVsYSwgaW4gaGlzIGZpcnN0IHRlcm0gYXMgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYSwgaW5pdGlhdGVzIGEgdW5pcXVlIHZlbnR1cmUgdG8gdW5pdGUgdGhlIEFwYXJ0aGVpZC10b3JuIGxhbmQ6IGVubGlzdCB0aGUgbmF0aW9uYWwgcnVnYnkgdGVhbSBvbiBhIG1pc3Npb24gdG8gd2luIHRoZSAxOTk1IFJ1Z2J5IFdvcmxkIEN1cC4gLSAgSW52aWN0dXMgKDIwMDkpDQoxOTk1OltDaW5lbWFdIEEgQ2xvY2t3b3JrIE9yYW5nZSgxOTcxKQ0KMTk5NTpbQ2luZW1hXSBEZWFkIEVuZCBEcml2ZS1JbigxOTg2KQ0KMTk5NTpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gU3BhY2Vnb2R6aWxsYSgxOTk0KQ0KMTk5NTpbQ2luZW1hXSBIZWFydGJlZXBzKDE5ODEpDQoxOTk1OltDaW5lbWFdIFRoZSBNdW1teSdzIEN1cnNlKDE5NDQpDQoxOTk1IChEZWMpOltTcGFjZV0gU29sYXIgYW5kIEhlbGlvc3BoZXJpYyBPYnNlcnZhdG9yeSAoU29ITykgd2FzIGxhdW5jaGVkIGluIERlY2VtYmVyIDE5OTUgYXMgYSBqb2ludCBtaXNzaW9uIGJldHdlZW4gdGhlIEV1cm9wZWFuIFNwYWNlIEFnZW5jeSAoRVNBKSBhbmQgTkFTQSwgU29ITyB3YXMgZGVzaWduZWQgdG8gb3JiaXQgdGhlIFN1biB0byBsZWFybiBhYm91dCB0aGUgc3RydWN0dXJlIG9mIHRoZSBzdGFy4oCZcyBpbnRlcmlvciBhbmQgaXRzIG91dGVyIGF0bW9zcGhlcmUsIGFzIHdlbGwgYXMgdG8gaW52ZXN0aWdhdGUgdGhlIGJlaGF2aW9yIG9mIHNvbGFyIHdpbmRzLiBJdCB3YXMgZXhwZWN0ZWQgdG8gY29tcGxldGUgaXRzIG1pc3Npb24gaW4gMTk5OC4gSW5zdGVhZCwgaXQgaXMgc3RpbGwgYWN0aXZlIHRvZGF5LCBhbmQgaXMgbm93IGxpa2VseSB0byBrZWVwIHdvcmtpbmcgdW50aWwgMjAyNSwgd2hlbiBpdCB3aWxsIGhhdmUgYmVlbiBpbiBzcGFjZSBmb3IgMzAgeWVhcnMuDQoxOTk1OltQaHlzaWNzXVtTcGFjZV1bUmVzZWFyY2hdIFByaW9yIHRvIDE5OTUsIHRoZW9yaXN0cyBiZWxpZXZlZCB0aGF0IHRoZXJlIHdlcmUgZml2ZSBjb25zaXN0ZW50IHZlcnNpb25zIG9mIHN1cGVyc3RyaW5nIHRoZW9yeSAodHlwZSBJLCB0eXBlIElJQSwgdHlwZSBJSUIsIGFuZCB0d28gdmVyc2lvbnMgb2YgaGV0ZXJvdGljIHN0cmluZyB0aGVvcnkpLiBUaGlzIHVuZGVyc3RhbmRpbmcgY2hhbmdlZCBpbiAxOTk1IHdoZW4gRWR3YXJkIFdpdHRlbiBzdWdnZXN0ZWQgdGhhdCB0aGUgZml2ZSB0aGVvcmllcyB3ZXJlIGp1c3Qgc3BlY2lhbCBsaW1pdGluZyBjYXNlcyBvZiBhbiBlbGV2ZW4tZGltZW5zaW9uYWwgdGhlb3J5IGNhbGxlZCBNLXRoZW9yeS4gV2l0dGVuJ3MgY29uamVjdHVyZSB3YXMgYmFzZWQgb24gdGhlIHdvcmsgb2YgYSBudW1iZXIgb2Ygb3RoZXIgcGh5c2ljaXN0cywgaW5jbHVkaW5nIEFzaG9rZSBTZW4sIENocmlzIEh1bGwsIFBhdWwgVG93bnNlbmQsIGFuZCBNaWNoYWVsIER1ZmYuIEhpcyBhbm5vdW5jZW1lbnQgbGVkIHRvIGEgZmx1cnJ5IG9mIHJlc2VhcmNoIGFjdGl2aXR5IG5vdyBrbm93biBhcyB0aGUgc2Vjb25kIHN1cGVyc3RyaW5nIHJldm9sdXRpb24uDQoxOTk1OltDcmltZV1bSW5kaWFdIE11cmRlciBvZiBNdW1iYWktYmFzZWQgYnVpbGRlciBQcmFkZWVwIEphaW4gYnkgQWJ1IFNhbGVtDQoxOTk1OiBGb3J0dW5lIEhvdGVscyBpbiBJbmRpYSBpcyBvd25lZCBieSBpdHMgcGFyZW50IGNvbXBhbnksIElUQyBMdGQuLCB3aGljaCBlc3RhYmxpc2hlZCBGb3J0dW5lIEhvdGVscyBpbiAxOTk1IGFzIGEgc3Vic2lkaWFyeSB0byBwcm92aWRlIG1pZC1tYXJrZXQgdG8gdXBzY2FsZSBob3NwaXRhbGl0eSBzZXJ2aWNlcy4gSG93ZXZlciwgYSBzZXBhcmF0ZSBncm91cCwgRm9ydHVuZSBHcm91cCBvZiBIb3RlbHMsIGJhc2VkIGluIHRoZSBVbml0ZWQgQXJhYiBFbWlyYXRlcyAoVUFFKSBhbmQgZm91bmRlZCBieSBQcmF2ZWVuIFNoZXR0eSwgYWxzbyBvcGVyYXRlcyBhIGRpZmZlcmVudCBzZXQgb2YgaG90ZWxzIGluIHRoYXQgcmVnaW9uLg0KMTk5NTpbVUtdIENhbWlsbGEgaXMgUXVlZW4gb2YgdGhlIFVuaXRlZCBLaW5nZG9tIGFuZCAxNCBvdGhlciBDb21tb253ZWFsdGggcmVhbG1zIGFzIHRoZSB3aWZlIG9mIEtpbmcgQ2hhcmxlcyBJSUkuIENhbWlsbGEgd2FzIHJhaXNlZCBpbiBFYXN0IFN1c3NleCBhbmQgU291dGggS2Vuc2luZ3RvbiBpbiBFbmdsYW5kIGFuZCBlZHVjYXRlZCBpbiBFbmdsYW5kLCBTd2l0emVybGFuZCBhbmQgRnJhbmNlLiBJbiAxOTczLCBzaGUgbWFycmllZCBCcml0aXNoIEFybXkgb2ZmaWNlciBBbmRyZXcgUGFya2VyIEJvd2xlczsgdGhleSBkaXZvcmNlZCBpbiAxOTk1Lg0KDQoxOTk2OltHZW9Qb2xpdGljc11bQnVzaW5lc3NdIE1vbmdvbGlhIHdhcyBncmFudGVkIG9ic2VydmVyIHN0YXR1cyB0byBUUkFDRUNBLg0KMTk5NiAoNyBBdWd1c3QpOltSZXNlYXJjaF1bU3BhY2VdIE5BU0EgYW5ub3VuY2VkIGZvc3NpbGl6ZWQgZXZpZGVuY2Ugb2YgYW5jaWVudCBsaWZlIGluIG1ldGVvcml0ZSBBTEggODQwMDEgZnJvbSBNYXJzLg0KMTk5NiAoT2N0IDI3KTpbUmVzZWFyY2hdW1NwYWNlXSBnZW5ldGljaXN0cyBzaG93ZWQgZXZpZGVuY2UgdGhhdCBtYW55IGdlbmVzIGFyZSBtdWNoIG9sZGVyIHRoYW4gdGhlIGZvc3NpbCByZWNvcmQgd291bGQgaW5kaWNhdGUuIFN1YnNlcXVlbnQgc3R1ZGllcyBoYXZlIHN0cmVuZ3RoZW5lZCB0aGlzIGZpbmRpbmcuDQoxOTk2OltCdXNpbmVzc11bR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2hlbiB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4gc2lnbmVkIHRoZSBUcmVhdHkgb24gRGVlcGVuaW5nIE1pbGl0YXJ5IFRydXN0IGluIEJvcmRlciBSZWdpb25zIGluIFNoYW5naGFpLiBPbiAyNCBBcHJpbCAxOTk3IHRoZSBzYW1lIGNvdW50cmllcyBzaWduZWQgdGhlIFRyZWF0eSBvbiBSZWR1Y3Rpb24gb2YgTWlsaXRhcnkgRm9yY2VzIGluIEJvcmRlciBSZWdpb25zIGluIGEgbWVldGluZyBpbiBNb3Njb3csIFJ1c3NpYS4gT24gMjAgTWF5IDE5OTcgUnVzc2lhbiBQcmVzaWRlbnQgQm9yaXMgWWVsdHNpbiBhbmQgQ2hpbmVzZSBQcmVzaWRlbnQgSmlhbmcgWmVtaW4gc2lnbmVkIGEgZGVjbGFyYXRpb24gb24gYSAibXVsdGlwb2xhciB3b3JsZCIuDQoxOTk2OiAxOTk2IE1vdW50IEV2ZXJlc3QgRGlzYXN0ZXIsIGluIHdoaWNoIGVpZ2h0IHBlb3BsZSBkaWVkIHdoaWxlIG9uIGFuIGV4cGVkaXRpb24gdG8gc2NhbGUgdGhlIGluZmFtb3VzIHN1bW1pdC4gT25lIG9mIHRoZSBjbGltYmVycyB3aG8gbG9zdCBoaXMgbGlmZSB3YXMgQW5keSBIYXJyaXMsIHBsYXllZCBpbiBFdmVyZXN0IGJ5IE1hcnRpbiBIZW5kZXJzb24uIEhhcnJpcyB3YXMgb25lIG9mIHRoZSBndWlkZXMgZm9yIHRoZSBBZHZlbnR1cmUgQ29uc3VsdGFudHMsIGFsb25nIHdpdGggUm9iIEhhbGwgYW5kIE1pa2UgR3Jvb20uIEluIHRoZSBmaWxtLCBoZSBhcHBlYXJzIHRvIGRpZSB3aGlsZSB3aXRoIEhhbGwsIGZhbGxpbmcgb2ZmIGEgY2xpZmYgYWZ0ZXIgYSBoYWxsdWNpbmF0aW9uLiBCdXQgUm9iIEhhbGwgbmV2ZXIgcmVwb3J0ZWQgdGhpcywgYW5kIHNpbmNlIGhlIGRpZWQgc2hvcnRseSB0aGVyZWFmdGVyLCB0aGVyZSBpcyBubyB3YXkgdG8gY29uZmlybSB0aGUgY2lyY3Vtc3RhbmNlcyBzdXJyb3VuZGluZyBIYXJyaXMnIGRlYXRoLg0KMTk5NjpbQ29tcHV0aW5nXVtRdWFudHVtXSAgTG92IEdyb3ZlciBkZXZpc2VkIGFuIGFsZ29yaXRobSAoR3JvdmVyJ3MgYWxnb3JpdGhtKSB0aGF0IGNvdWxkIHNlYXJjaCBhbiB1bnNvcnRlZCBkYXRhYmFzZSBpbiBzcXVhcmUgcm9vdCB0aW1lIG9uIGEgcXVhbnR1bSBjb21wdXRlciwgd2hpY2ggd291bGQgb3V0cGVyZm9ybSBhbnkgY2xhc3NpY2FsIGFsZ29yaXRobS4NCjE5OTY6W1VTXSBCYXJhY2sgT2JhbWEgd2FzIGVsZWN0ZWQgdG8gdGhlIElsbGlub2lzIFNlbmF0ZSwgc3VjY2VlZGluZyBEZW1vY3JhdGljIFN0YXRlIFNlbmF0b3IgQWxpY2UgUGFsbWVyIGZyb20gSWxsaW5vaXMncyAxM3RoIERpc3RyaWN0LCB3aGljaCwgYXQgdGhhdCB0aW1lLCBzcGFubmVkIENoaWNhZ28gU291dGggU2lkZSBuZWlnaGJvcmhvb2RzIGZyb20gSHlkZSBQYXJr4oCTS2Vud29vZCBzb3V0aCB0byBTb3V0aCBTaG9yZSBhbmQgd2VzdCB0byBDaGljYWdvIExhd24uDQoxOTk2OltVS10gQ2hhcmxlcyBJSUkgYW5kIERpYW5hIGdldHMgZGl2b3JjZWQuDQoxOTk2IChKYW4gMjUpOltCb29rXSBQZXRlciBMeW5jaCAmIEpvaG4gUm90aGNoaWxkJ3MgTGVhcm4gdG8gRWFybjogQSBCZWdpbm5lcidzIEd1aWRlIHRvIHRoZSBCYXNpY3Mgb2YgSW52ZXN0aW5nIGFuZCBCdXNpbmVzcy4NCjE5OTYgKEphbik6W0NyaW1lXVtJbmRpYV0gQW5lZXMgSWJyYWhpbSBhcnJlc3RlZCBpbiBCYWhyYWluLCBzaGlmdGVkIHRvIER1YmFpIGFsbGVnZWRseSBvbiB0aGUgaW50ZXJ2ZW50aW9uIG9mIHNvbWUgb2YgRHViYWkncyBydWxpbmcgbm90YWJsZXMsIGFuZCB3YXMgdGhlbiBhbGxvd2VkIHRvIHNsaXAgYXdheSB0byBLYXJhY2hpLCBQYWtpc3Rhbi4NCjE5OTY6IE5hdGlvbmFsIEFlcm9zcGFjZSBMYWJvcmF0b3JpZXMsIEluZGlhIGluZGlnZW5vdXNseSBidWlsdCBGTE9TT0xWRVIsIEluZGlhJ3MgZmlyc3Qgc3VwZXJjb21wdXRlci4gSXQgd2FzIHJlcGxpY2F0ZWQgYW5kIGluc3RhbGxlZCBhdCBJQ0FEIE1vc2NvdyBpbiAxOTkxIHVuZGVyIFJ1c3NpYW4gY29sbGFib3JhdGlvbi4NCjE5OTY6IEluZGlhL1Bha2lzdGFuL1NyaSBMYW5rYSAxOTk2Lg0KMTk5NjpbQ29tcHV0aW5nXVt3d3ddIE1hcmlvIDY0IGdhbWUgcmFuIDEwMCBtaWxsaW9uIGNhbGN1bGF0aW9ucyBwZXIgc2Vjb25kLCA1NDAgbWlsbGlvbiAoSGFsZi1MaWZlKSBpbiAxOTk4LCBNaW5lY3JhZnQgKDIwMTEpIHJ1bm5pbmcgMTAwIGJpbGxpb24gY2FsY3VsYXRpb25zLCBDeWJlcnB1bmsgMjA3NyAobW9zdCByZWFsaXN0aWMgdmlkZW8gZ2FtZSAyMDI0KSwgeW91IG5lZWQgYSBncmFwaGljcyBjYXJkIHRoYXQgY2FuIHBlcmZvcm0gYXJvdW5kIDM2IHRyaWxsaW9uIGNhbGMgcGVyIHNlY29uZC4NCjE5OTY6IFByb2YgTWFsY29sbSBIZWF0aC4gUHJvZmVzc29yIG9mIEdyZWVrIExhbmd1YWdlIGFuZCBMaXRlcmF0dXJlIEBsZWVkcy5hYy51aywgdHJhbnNsYXRlZCBBcmlzdG90bGUncyBQb2V0aWNzLg0KMTk5NjogVGhlIDU2SyBtb2RlbSB3YXMgaW52ZW50ZWQgYnkgRHIuIEJyZW50IFRvd25zaGVuZA0KMTk5NiAoRmViIDEzKTogTmVwYWxlc2UgQ2l2aWwgV2FyIHN0YXJ0ZWQuIFRoZSBNYW9pc3QgUmViZWxsaW9uIChsYWJlbGxlZCB0aGUgUGVvcGxlJ3MgV2FyIGJ5IHRoZW4gQ1BOKE1hb2lzdCkpIHdhcyBhbiBhcm1lZCBjb25mbGljdCBhZ2FpbnN0IEdvdmVybm1lbnQgb2YgTmVwYWwgKHRoZW4gSE1HIG9mIE5lcGFsKSBmb3VnaHQgZnJvbSAxOTk2IHRvIDIwMDYuIFRoZSByZWJlbGxpb24gd2FzIGxhdW5jaGVkIGJ5IHRoZSBDb21tdW5pc3QgUGFydHkgb2YgTmVwYWwgKE1hb2lzdCkgb24gMTMgRmVicnVhcnkgMTk5NiB3aXRoIHRoZSBtYWluIGFpbSBvZiBvdmVydGhyb3dpbmcgdGhlIE5lcGFsZXNlIG1vbmFyY2h5IGFuZCBlc3RhYmxpc2hpbmcgYSAnUGVvcGxlJ3MgUmVwdWJsaWMnLiBJdCBlbmRlZCB3aXRoIHRoZSBDb21wcmVoZW5zaXZlIFBlYWNlIEFjY29yZCBzaWduZWQgb24gMjEgTm92ZW1iZXIgMjAwNi4NCjE5OTYgKE1hciAxKTogW0dlb1BvbGl0aWNzXSBUaGUgQXNpYeKAk0V1cm9wZSBNZWV0aW5nIChBU0VNKSBpcyBhbiBBc2lhbuKAk0V1cm9wZWFuIHBvbGl0aWNhbCBkaWFsb2d1ZSBmb3J1bSB0byBlbmhhbmNlIHJlbGF0aW9ucyBhbmQgdmFyaW91cyBmb3JtcyBvZiBjb29wZXJhdGlvbiBiZXR3ZWVuIGl0cyBwYXJ0bmVycy4gSXQgd2FzIG9mZmljaWFsbHkgZXN0YWJsaXNoZWQgYXQgdGhlIDFzdCBBU0VNIFN1bW1pdCAoQVNFTTEpIGluIEJhbmdrb2ssIFRoYWlsYW5kLCBieSB0aGUgdGhlbiAxNSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aGUgRXVyb3BlYW4gQ29tbWlzc2lvbiwgdGhlIHRoZW4gNyBNZW1iZXIgU3RhdGVzIG9mIHRoZSBBc3NvY2lhdGlvbiBvZiBTb3V0aGVhc3QgQXNpYW4gTmF0aW9ucyAoQVNFQU4pLCBhbmQgdGhlIGluZGl2aWR1YWwgY291bnRyaWVzIG9mIENoaW5hLCBKYXBhbiwgYW5kIFNvdXRoIEtvcmVhLiBBIHNlcmllcyBvZiBlbmxhcmdlbWVudHMgc2F3IGFkZGl0aW9uYWwgRVUgTWVtYmVyIFN0YXRlcyBqb2luIGFzIHdlbGwgYXMgSW5kaWEsIE1vbmdvbGlhLCBQYWtpc3RhbiBhbmQgdGhlIEFTRUFOIFNlY3JldGFyaWF0IGluIDIwMDgsIEF1c3RyYWxpYSwgTmV3IFplYWxhbmQgYW5kIFJ1c3NpYSBpbiAyMDEwLCBCYW5nbGFkZXNoLCBOb3J3YXksIGFuZCBTd2l0emVybGFuZCBpbiAyMDEyLCBhcyB3ZWxsIGFzIENyb2F0aWEsIGFuZCBLYXpha2hzdGFuIGluIDIwMTQuDQoxOTk2IChBcHIgMjYpOiBbR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2l0aCB0aGUgc2lnbmluZyBvZiB0aGUgVHJlYXR5IG9uIERlZXBlbmluZyBNaWxpdGFyeSBUcnVzdCBpbiBCb3JkZXIgUmVnaW9ucyBpbiBTaGFuZ2hhaSBieSB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4uIExhdGVyIG9uIEp1biAxNSwgMjAwMSBpdCBnb3QgcmVuYW1lZCBhcyBTaGFuZ2hhaSBDb29wZXJhdGlvbiBPcmdhbmlzYXRpb24gKFNDTykgb3IgU2hhbmdoYWkgUGFjdCANCjE5OTYgKE1heSAxNik6IEF0YWwgQmloYXJpIFZhanBheWVlIGJlY29tZXMgUE0gb2YgSW5kaWEgZm9yIHRoZSB2ZXJ5IGZpcnN0IHRpbWUgZm9yIDE2IGRheXMuDQoxOTk2IChKdW4gMSk6IEF0YWwgQmloYXJpIFZhanBheWVlIHJlc2lnbnMuIEhEIERldmUgR293ZGEgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NiAoQXVnIDE0KTpbcmVzZWFyY2hdW2V4dHJlbWVdIEthcmVuIEVsaXphYmV0aCBXZXR0ZXJoYWhuIChPY3RvYmVyIDE2LCAxOTQ4IOKAkyBKdW5lIDgsIDE5OTcpLCBhbHNvIGtub3duIGFzIEthcmVuIFdldHRlcmhhaG4gSmVubmV0dGUsIHdhcyBhbiBBbWVyaWNhbiBwcm9mZXNzb3Igb2YgY2hlbWlzdHJ5IGF0IERhcnRtb3V0aCBDb2xsZWdlLCBOZXcgSGFtcHNoaXJlLCB3aG8gc3BlY2lhbGl6ZWQgaW4gdG94aWMgbWV0YWwgZXhwb3N1cmUuIFNoZSBkaWVkIG9mIG1lcmN1cnkgcG9pc29uaW5nIGF0IHRoZSBhZ2Ugb2YgNDggZHVlIHRvIGFjY2lkZW50YWwgZXhwb3N1cmUgdG8gdGhlIGV4dHJlbWVseSB0b3hpYyBvcmdhbmljIG1lcmN1cnkgY29tcG91bmQgZGltZXRoeWxtZXJjdXJ5IChIZyhDSDMpMikuIFByb3RlY3RpdmUgZ2xvdmVzIGluIHVzZSBhdCB0aGUgdGltZSBvZiB0aGUgaW5jaWRlbnQgcHJvdmlkZWQgaW5zdWZmaWNpZW50IHByb3RlY3Rpb24sIGFuZCBleHBvc3VyZSB0byBvbmx5IGEgc2luZ2xlIGRyb3Agb3IgdHdvIG9mIHRoZSBkaW1ldGh5bG1lcmN1cnkgYWJzb3JiZWQgdGhyb3VnaCB0aGUgZ2xvdmVzIHByb3ZlZCB0byBiZSBmYXRhbCBhZnRlciBsZXNzIHRoYW4gYSB5ZWFyLiBUZXN0cyBsYXRlciByZXZlYWxlZCB0aGF0IGRpbWV0aHlsbWVyY3VyeSBjYW4sIGluIGZhY3QsIHJhcGlkbHkgcGVybWVhdGUgc2V2ZXJhbCBraW5kcyBvZiBsYXRleCBnbG92ZXMgYW5kIGVudGVyIHRoZSBza2luIHdpdGhpbiBhYm91dCAxNSBzZWNvbmRzLiBIZXIgZXhwb3N1cmUgd2FzIGxhdGVyIGNvbmZpcm1lZCBieSBoYWlyIGFuYWx5c2lzLCB3aGljaCBzaG93ZWQgYSBkcmFtYXRpYyBqdW1wIGluIG1lcmN1cnkgbGV2ZWxzIDE3IGRheXMgYWZ0ZXIgdGhlIGluaXRpYWwgYWNjaWRlbnQsIHBlYWtpbmcgYXQgMzkgZGF5cywgZm9sbG93ZWQgYnkgYSBncmFkdWFsIGRlY2xpbmUuIEFwcHJveGltYXRlbHkgdGhyZWUgbW9udGhzIGFmdGVyIHRoZSBpbml0aWFsIGFjY2lkZW50IFdldHRlcmhhaG4gYmVnYW4gZXhwZXJpZW5jaW5nIGJyaWVmIGVwaXNvZGVzIG9mIGFiZG9taW5hbCBkaXNjb21mb3J0IGFuZCBub3RpY2VkIHNpZ25pZmljYW50IHdlaWdodCBsb3NzLiBUaGUgbW9yZSBkaXN0aW5jdGl2ZSBuZXVyb2xvZ2ljYWwgc3ltcHRvbXMgb2YgbWVyY3VyeSBwb2lzb25pbmcsIGluY2x1ZGluZyBsb3NzIG9mIGJhbGFuY2UgYW5kIHNsdXJyZWQgc3BlZWNoLCBhcHBlYXJlZCBpbiBKYW51YXJ5IDE5OTcsIGZpdmUgbW9udGhzIGFmdGVyIHRoZSBhY2NpZGVudC4gSGVyIGJsb29kIGFuZCB1cmluYXJ5IG1lcmN1cnkgY29udGVudCB3ZXJlIG1lYXN1cmVkIGF0IDQsMDAwIM68Zy9MIGFuZCAyMzQgzrxnL0wsIHJlc3BlY3RpdmVseeKAlGJvdGggbWFueSB0aW1lcyB0aGVpciByZXNwZWN0aXZlIHRveGljIHRocmVzaG9sZHMgb2YgMjAwIM68Zy9MIGFuZCA1MCDOvGcvTCAoYmxvb2QgYW5kIHVyaW5lIHJlZmVyZW5jZSByYW5nZXMgYXJlIDEgdG8gOCDOvGcvTCBhbmQgMSB0byA1IM68Zy9MKS4NCjE5OTYgKERlYyA0IDA2OjU4OjA3IFVUQyk6W1NwYWNlXVtNYXJzXVtFYXJ0aF0gTGF1bmNoIG9mIE1hcnMgUGF0aGZpbmRlciBvbiBEZWx0YSBJSSA3OTI1ICgjRDI0MCkNCnJvY2tldCBmcm9tIENhcGUgQ2FuYXZlcmFsIFNMQy0xNy4gVG8gcHJvdmUgdGhhdCB0aGUgZGV2ZWxvcG1lbnQgb2YgImZhc3RlciwgYmV0dGVyIGFuZCBjaGVhcGVyIiBzcGFjZWNyYWZ0IHdhcyBwb3NzaWJsZSAod2l0aCB0aHJlZSB5ZWFycyBmb3IgZGV2ZWxvcG1lbnQgYW5kIGEgY29zdCB1bmRlciAkMTUwIG1pbGxpb24gZm9yIHRoZSBsYW5kZXIsIGFuZCAkMjUgbWlsbGlvbiBmb3IgdGhlIHJvdmVyKS4gVG8gc2hvdyB0aGF0IGl0IHdhcyBwb3NzaWJsZSB0byBzZW5kIGEgbG9hZCBvZiBzY2llbnRpZmljIGluc3RydW1lbnRzIHRvIGFub3RoZXIgcGxhbmV0IHdpdGggYSBzaW1wbGUgc3lzdGVtIGFuZCBhdCBvbmUtZmlmdGVlbnRoIHRoZSBjb3N0IG9mIGEgVmlraW5nIG1pc3Npb24uIChGb3IgY29tcGFyaXNvbiwgdGhlIFZpa2luZyBtaXNzaW9ucyBjb3N0ICQ5MzUgbWlsbGlvbiBpbiAxOTc0IG9yICQzLjUgYmlsbGlvbiBpbiAxOTk3IGRvbGxhcnMuKS4gVG8gZGVtb25zdHJhdGUgTkFTQSdzIGNvbW1pdG1lbnQgdG8gbG93LWNvc3QgcGxhbmV0YXJ5IGV4cGxvcmF0aW9uIGJ5IGZpbmlzaGluZyB0aGUgbWlzc2lvbiB3aXRoIGEgdG90YWwgZXhwZW5kaXR1cmUgb2YgJDI4MCBtaWxsaW9uLCBpbmNsdWRpbmcgdGhlIGxhdW5jaCB2ZWhpY2xlIGFuZCBtaXNzaW9uIG9wZXJhdGlvbnMuDQoxOTk2OiBhIHJhaWQgb24gdGhlIEFuaW1hbCBIdXNiYW5kcnkgZGVwYXJ0bWVudOKAmXMgb2ZmaWNlcyBpbiBDaGFpYmFzYSwgQmloYXIgdW5mb2xkZWQgdGhlIFJzLjk1MCBjcm9yZSBmb2RkZXIgc2NhbSwgaW4gd2hpY2ggdGhlIEJpaGFyIGNoaWVmIG1pbmlzdGVyIExhbHUgUHJhc2FkIFlhZGF2IGNhdGNoIHVwIGluIGEgbGlmZWxvbmcgdHVzc2xlIHdpdGggdGhlIENCSS4NCjE5OTY6W0Jvb2tdW0FkdmVudHVyZV0gSm9uIEtyYWthdWVyJ3MgSW50byB0aGUgV2lsZC4NCjE5OTY6W0NvbXB1dGluZ10gVGhlIFZpZGVvTEFOIHNvZnR3YXJlIG9yaWdpbmF0ZWQgYXMgYSBGcmVuY2ggYWNhZGVtaWMgcHJvamVjdC4gVkxDIHVzZWQgdG8gc3RhbmQgZm9yICJWaWRlb0xBTiBDbGllbnQiIHdoZW4gVkxDIHdhcyBhIGNsaWVudCBvZiB0aGUgVmlkZW9MQU4gcHJvamVjdCwgb2ZmaWNpYWxseSByZWxlYXNlZCB1bmRlciBHTlUgR1BMIG9uIDIwMDEgKEZlYiAxKS4NCjE5OTY6W01lbWVdIERhbmNpbmcgQmFieSBTY3JlZW5zYXZlcg0KMTk5NjpbU3BhY2VYXSBUaGUgZW50aXJlIHByb2Nlc3MgZm9yIHRoZSBKYW1lcyBXZWJiIFNwYWNlIFRlbGVzY29wZSAoSldTVCkgZnJvbSBpbml0aWFsIGNvbmNlcHQgdG8gbGF1bmNoIHNwYW5uZWQgYXBwcm94aW1hdGVseSAyNSB5ZWFycywgd2l0aCBpbml0aWFsIGRlc2lnbnMgYmVnaW5uaW5nIGluIDE5OTYgYW5kIHRoZSB0ZWxlc2NvcGUgbGF1bmNoaW5nIGluIDIwMjEsIGJ1dCBhIHNpZ25pZmljYW50IHBvcnRpb24gb2YgdGhpcyB3YXMgc3BlbnQgaW4gZGVzaWduLCB0ZXN0aW5nLCBhbmQgb3ZlcmNvbWluZyBtYWpvciByZWRlc2lnbnMgYW5kIGRlbGF5cywgbm90IGp1c3QgYXNzZW1ibHkuIA0KMTk5NiAoRmViIDI4KTpbRGVsaGldIEluZGlyYXB1cmFtLCBHaGF6aWFiYWQgd2FzIGVzdGQgd2hlbiBpdHMgZm91bmRhdGlvbiBzdG9uZSAoS2FsYSBQYXRoYXIpIHdhcyBpbmF1Z3VyYXRlZCBieSBTaCBNb3RpbGFsIFZvcmEsIHRoZW4gR292ZXJub3Igb2YgVVAuICgyMDIxKSBJJ3B1cmFtIEV4dG4gdG8gYmUgYnVpbHQgb24gMTIgYWNyZXMgb25seSwgY29uY2VpdmVkIGluIDIwMDQuDQoxOTk2OltCb29rXVtNaWxpdGFyeV1bQ3VsdHVyZV1bRVVdW1VTQV0gR2VvcmdlIFIuUi4gTWFydGluIGlzIHRoZSBBbWVyaWNhbiBhdXRob3Igb2YgdGhlIGVwaWMgZmFudGFzeSBib29rIHNlcmllcyBBIFNvbmcgb2YgSWNlIGFuZCBGaXJlLCB3aGljaCBiZWdhbiB3aXRoIEEgR2FtZSBvZiBUaHJvbmVzICgxOTk2KSBhbmQgc2VydmVkIGFzIHRoZSBiYXNpcyBmb3IgSEJPJ3MgbWFzc2l2ZWx5IHBvcHVsYXIgR2FtZSBvZiBUaHJvbmVzIFRWIHNlcmllcy4gQSBTb25nIG9mIEljZSBhbmQgRmlyZSBpcyBhIHNlcmllcyBvZiBoaWdoIGZhbnRhc3kgbm92ZWxzIGJ5IHRoZSBBbWVyaWNhbiBhdXRob3IgR2VvcmdlIFIuIFIuIE1hcnRpbi4gTWFydGluIGJlZ2FuIHdyaXRpbmcgdGhlIGZpcnN0IHZvbHVtZSwgQSBHYW1lIG9mIFRocm9uZXMsIGluIDE5OTEsIGFuZCBwdWJsaXNoZWQgaXQgaW4gMTk5Ni4gTWFydGluLCB3aG8gb3JpZ2luYWxseSBlbnZpc2lvbmVkIHRoZSBzZXJpZXMgYXMgYSB0cmlsb2d5LCBoYXMgcmVsZWFzZWQgZml2ZSBvdXQgb2Ygc2V2ZW4gcGxhbm5lZCB2b2x1bWVzLiANCg0KW0dlbmVyYXRpb25dIE1pbGxlbm5pYWwgZ2VuZXJhdGlvbiAoMTk4MeKAkzE5OTYpIGVuZHM7IGxhc3RlZCBmb3IgMTUgeWVhcnMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICA1MCB5ZWFycyBvZiBJbmRlcGVuZGVudCBJbmRpYSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSANCg0KW0dlbmVyYXRpb25dIEdlbiBaICgxOTk34oCTMjAxMikgc3RhcnRzOyBhbmQgZXhpc3RzIGZvciBuZXh0IDE1IHllYXJzLg0KDQoxOTk3OltXaG9dW1Jlc2VhcmNoXVtDb21wdXRpbmddW1RlY2hdW0N1bHR1cmVdIFZMQyBNZWRpYSBQbGF5ZXIgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBzdHVkZW50cyBhdCB0aGUgRnJlbmNoIGVuZ2luZWVyaW5nIHNjaG9vbCDDiWNvbGUgQ2VudHJhbGUgUGFyaXMgaW4gMTk5Ni4gV2hpbGUgaXQgc3RhcnRlZCBhcyBhbiBhY2FkZW1pYyBwcm9qZWN0IChWaWRlb0xBTikgdG8gc3RyZWFtIHZpZGVvIG92ZXIgYSBjYW1wdXMgbmV0d29yaywgaXRzIGRldmVsb3BtZW50IGFuZCBtb2Rlcm5pemF0aW9uIHdlcmUgbGF0ZXIgbGVkIGJ5IEplYW4tQmFwdGlzdGUgS2VtcGYuIA0KMTk5NzpbUmVzZWFyY2hdW1NwYWNlXSAyOSBKdWx5IDE5OTc6IGEgTkFTQSBzY2llbnRpc3QgYW5ub3VuY2VkIGV2aWRlbmNlIG9mIGZvc3NpbGl6ZWQgbWljcm9zY29waWMgbGlmZSBmb3JtcyBpbiBhIG1ldGVvcml0ZSBub3QgZnJvbSBhbnkga25vd24gcGxhbmV0Lg0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgR3JvdXAgb2YgRWlnaHQgKEc4KSB3YXMgYW4gaW50ZXJnb3Zlcm5tZW50YWwgcG9saXRpY2FsIGZvcnVtIGZyb20gMTk5NyB0byAyMDE0LCBmb3JtZWQgYnkgaW5jb3Jwb3JhdGluZyBSdXNzaWEgaW50byB0aGUgRzcuIFRoZSBHOCBiZWNhbWUgdGhlIEc3IGFnYWluIGFmdGVyIFJ1c3NpYSB3YXMgZXhwZWxsZWQgaW4gMjAxNCBhZnRlciB0aGUgUnVzc2lhbiBhbm5leGF0aW9uIG9mIENyaW1lYS4gRm91bmRlZDogMTk5NywgRGVudmVyLCBDb2xvcmFkbywgVW5pdGVkIFN0YXRlcw0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBGb3VuZGVkOiA2IEp1bmUgMTk5NywgVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiAoQklNU1RFQykgaXMgYW4gaW50ZXJuYXRpb25hbCBvcmdhbml6YXRpb24gb2Ygc2V2ZW4gU291dGggQXNpYW4gYW5kIFNvdXRoZWFzdCBBc2lhbiBuYXRpb25zLCBob3VzaW5nIDEuNzMgYmlsbGlvbiBwZW9wbGUgYW5kIGhhdmluZyBhIGNvbWJpbmVkIGdyb3NzIGRvbWVzdGljIHByb2R1Y3Qgb2YgVVMkNS4yIHRyaWxsaW9uLg0KMTk5NzpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gYnVpbHQgdGhlIGZpcnN0IGV4cGVyaW1lbnRhbCBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCBjb3VsZCBtYW5pcHVsYXRlIDcgcXViaXRzIHVzaW5nIG51Y2xlYXIgbWFnbmV0aWMgcmVzb25hbmNlIChOTVIpIHRlY2huaXF1ZXMuDQoxOTk3IChKdWwgNCk6W1NwYWNlXVtNYXJzXSBUaGUgTWFycyBQYXRoZmluZGVyIGVuZHVyZWQgYSAzMC1zZWNvbmQgY29tbXVuaWNhdGlvbnMgYmxhY2tvdXQgYXMgaXQgZW50ZXJlZCBNYXJzJyBhdG1vc3BoZXJlLiBJdCBsYW5kZWQgYXQgQXJlcyBWYWxsaXMsIENocnlzZSBQbGFuaXRpYSwgTWFycyAxOcKwN+KAsjQ44oCzTiAzM8KwMTPigLIxMuKAs1cuIE1hcnMgUGF0aGZpbmRlciAoTUVTVVIgUGF0aGZpbmRlcikgaXMgYW4gQW1lcmljYW4gcm9ib3RpYyBzcGFjZWNyYWZ0IHRoYXQgbGFuZGVkIGEgYmFzZSBzdGF0aW9uIHdpdGggYSByb3ZpbmcgcHJvYmUgb24gTWFycyBpbiAxOTk3LiBJdCBjb25zaXN0ZWQgb2YgYSBsYW5kZXIsIHJlbmFtZWQgdGhlIENhcmwgU2FnYW4gTWVtb3JpYWwgU3RhdGlvbiwgYW5kIGEgbGlnaHR3ZWlnaHQsIDEwLjYga2cgKDIzIGxiKSB3aGVlbGVkIHJvYm90aWMgTWFycyByb3ZlciBuYW1lZCBTb2pvdXJuZXIsIHRoZSBmaXJzdCByb3ZlciB0byBvcGVyYXRlIG91dHNpZGUgdGhlIEVhcnRo4oCTTW9vbiBzeXN0ZW0uDQoxOTk3OltCb29rXSBNaXRjaCBBbGJvbSdzIFR1ZXNkYXlzIHdpdGggTW9ycmllLg0KMTk5NzpbR2FtaW5nXSBHcmFuZCBUaGVmdCBBdXRvIChHVEEpIHJlbGVhc2VkIGJ5IERNQSBEZXNpZ24gKGxhdGVyIFJvY2tzdGFyIE5vcnRoKSBmb3IgUFMxLCBXaW5kb3dzIGFuZCBNUy1ET1M7IEdyYW5kIFRoZWZ0IEF1dG86IFZpY2UgQ2l0eSAoMjAwMik7IEdyYW5kIFRoZWZ0IEF1dG86IFNhbiBBbmRyZWFzICgyMDA0KTsgR3JhbmQgVGhlZnQgQXV0byBJViAoMjAwOCk7IEdyYW5kIFRoZWZ0IEF1dG8gViAoMjAxMyk7IEdyYW5kIFRoZWZ0IEF1dG86IFRoZSBUcmlsb2d5IOKAkyBUaGUgRGVmaW5pdGl2ZSBFZGl0aW9uICgyMDIxKQ0KMTk5NzogVGVra2VuIDMgd2FzIGRlc2lnbmVkIGJ5IEthdHN1aGlybyBIYXJhZGEgKE9zYWthLCBPc2FrYSBQcmVmZWN0dXJlLCBKYXBhbikgb2YgQmFuZGFpIE5hbWNvIEVudGVydGFpbm1lbnQgaGVhZHF1YXJ0ZXJlZCBhdCDFjHRhLCBUb2t5by4NCjE5OTcgKE1hciA2KTogW0dlb1BvbGl0aWNzXSBUaGUgSW5kaWFuIE9jZWFuIFJpbSBBc3NvY2lhdGlvbiwgZm9ybWVybHkga25vd24gYXMgdGhlIEluZGlhbiBPY2VhbiBSaW0gSW5pdGlhdGl2ZSBhbmQgdGhlIEluZGlhbiBPY2VhbiBSaW0gQXNzb2NpYXRpb24gZm9yIFJlZ2lvbmFsIENvb3BlcmF0aW9uLCBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBjb25zaXN0aW5nIG9mIDIzIHN0YXRlcyBib3JkZXJpbmcgdGhlIEluZGlhbiBPY2Vhbi4gVGhlIElPUkEgaXMgYSByZWdpb25hbCBmb3J1bSwgdHJpcGFydGl0ZSBpbiBuYXR1cmUsIGJyaW5naW5nIHRvZ2V0aGVyIHJlcHJlc2VudGF0aXZlcyBvZiBHb3Zlcm5tZW50LCBCdXNpbmVzcyBhbmQgQWNhZGVtaWEsIGZvciBwcm9tb3RpbmcgY28tb3BlcmF0aW9uIGFuZCBjbG9zZXIgaW50ZXJhY3Rpb24gYW1vbmcgdGhlbS4gSXQgaXMgYmFzZWQgb24gdGhlIHByaW5jaXBsZXMgb2YgT3BlbiBSZWdpb25hbGlzbSBmb3Igc3RyZW5ndGhlbmluZyBFY29ub21pYyBDb29wZXJhdGlvbiBwYXJ0aWN1bGFybHkgb24gVHJhZGUgRmFjaWxpdGF0aW9uIGFuZCBJbnZlc3RtZW50LCBQcm9tb3Rpb24gYXMgd2VsbCBhcyBTb2NpYWwgRGV2ZWxvcG1lbnQgb2YgdGhlIHJlZ2lvbi4gVGhlIENvb3JkaW5hdGluZyBTZWNyZXRhcmlhdCBvZiBJT1JBIGlzIGxvY2F0ZWQgYXQgRWJlbmUsIE1hdXJpdGl1cy4NCjE5OTcgKEFwciAyMSk6IEguRC4gRGV2ZSBHb3dkYSByZXNpZ25zLiBJbmRlciBLdW1hciBHdWpyYWwgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NyAoSnVuIDYpOiBbR2VvUG9saXRpY3NdIEJJTVNURUMgZm91bmRlZC4gVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBvZiBzZXZlbiBTb3V0aCBBc2lhbiBhbmQgU291dGhlYXN0IEFzaWFuIG5hdGlvbnMsIGhvdXNpbmcgMS43MyBiaWxsaW9uIHBlb3BsZSBhbmQgaGF2aW5nIGEgY29tYmluZWQgZ3Jvc3MgZG9tZXN0aWMgcHJvZHVjdCBvZiAkMy44IHRyaWxsaW9uLiBUaGUgQklNU1RFQyBtZW1iZXIgc3RhdGVzIOKAkyBCYW5nbGFkZXNoLCBCaHV0YW4sIEluZGlhLCBNeWFubWFyLCBOZXBhbCwgU3JpIExhbmthLCBhbmQgVGhhaWxhbmQg4oCTIGFyZSBhbW9uZyB0aGUgY291bnRyaWVzIGRlcGVuZGVudCBvbiB0aGUgQmF5IG9mIEJlbmdhbC4NCjE5OTcgKEp1biA4KTogRGVzcGl0ZSBhZ2dyZXNzaXZlIGNoZWxhdGlvbiB0aGVyYXB5LCBoZXIgY29uZGl0aW9uIHJhcGlkbHkgZGV0ZXJpb3JhdGVkLiBUaHJlZSB3ZWVrcyBhZnRlciB0aGUgZmlyc3QgbmV1cm9sb2dpY2FsIHN5bXB0b21zIGFwcGVhcmVkLCBXZXR0ZXJoYWhuIGxhcHNlZCBpbnRvIHdoYXQgYXBwZWFyZWQgdG8gYmUgYSB2ZWdldGF0aXZlIHN0YXRlIHB1bmN0dWF0ZWQgYnkgcGVyaW9kcyBvZiBleHRyZW1lIGFnaXRhdGlvbi4gT25lIG9mIGhlciBmb3JtZXIgc3R1ZGVudHMgc2FpZCB0aGF0ICJIZXIgaHVzYmFuZCBzYXcgdGVhcnMgcm9sbGluZyBkb3duIGhlciBmYWNlLiBJIGFza2VkIGlmIHNoZSB3YXMgaW4gcGFpbi4gVGhlIGRvY3RvcnMgc2FpZCBpdCBkaWRuJ3QgYXBwZWFyIHRoYXQgaGVyIGJyYWluIGNvdWxkIGV2ZW4gcmVnaXN0ZXIgcGFpbi4iIFdldHRlcmhhaG4gd2FzIHJlbW92ZWQgZnJvbSBsaWZlIHN1cHBvcnQgYW5kIHByb25vdW5jZWQgZGVhZCBvbiBKdW5lIDgsIDE5OTcsIHRlbiBtb250aHMgYWZ0ZXIgaGVyIGluaXRpYWwgZXhwb3N1cmUuIEluIHJlc3BvbnNlLCB0aGUgT2NjdXBhdGlvbmFsIFNhZmV0eSBhbmQgSGVhbHRoIEFkbWluaXN0cmF0aW9uIHJlY29tbWVuZGVkIHRoYXQgdGhlIHVzZSBvZiBkaW1ldGh5bG1lcmN1cnkgYmUgYXZvaWRlZCB1bmxlc3MgYWJzb2x1dGVseSBuZWNlc3NhcnkgYW5kIG1hbmRhdGVkIHRoZSB1c2Ugb2YgcGxhc3RpYy1sYW1pbmF0ZSBnbG92ZXMgKFNpbHZlclNoaWVsZCkgd2hlbiBoYW5kbGluZyB0aGlzIGNvbXBvdW5kLg0KMTk5NyAoSnVuIDEzKTpbSmFja10gQm9yZGVyDQoxOTk3IChKdW4gMjYpOltCb29rXSAzMllPIEouIEsuIFJvd2xpbmcgcHVibGlzaGVzIGhlciBmaXJzdCBIYXJyeSBQb3R0ZXIgYm9vaywgVGhlIFBoaWxvc29waGVyJ3MgU3RvbmU7IA0KVGhlIENoYW1iZXIgb2YgU2VjcmV0cyAoMiBKdWx5IDE5OTgpLA0KVGhlIFByaXNvbmVyIG9mIEF6a2FiYW4gKDggSnVseSAxOTk5KSwNClRoZSBHb2JsZXQgb2YgRmlyZSAoOCBKdWx5IDIwMDApLA0KVGhlIE9yZGVyIG9mIHRoZSBQaG9lbml4ICgsIDI3IEp1bmUgMjAwMyksDQpUaGUgSGFsZi1CbG9vZCBQcmluY2UgKDE2IEp1bHkgMjAwNSksDQpUaGUgRGVhdGhseSBIYWxsb3dzICgyMSBKdWx5IDIwMDcpDQoxOTk3IChBdWcgMjUpOltTcGFjZV0gQWR2YW5jZWQgQ29tcG9zaXRpb24gRXhwbG9yZXIgaXMgYSBOQVNBIEV4cGxvcmVyIHByb2dyYW0gc2F0ZWxsaXRlIGFuZCBzcGFjZSBleHBsb3JhdGlvbiBtaXNzaW9uIHRvIHN0dWR5IG1hdHRlciBjb21wcmlzaW5nIGVuZXJnZXRpYyBwYXJ0aWNsZXMgZnJvbSB0aGUgc29sYXIgd2luZCwgdGhlIGludGVycGxhbmV0YXJ5IG1lZGl1bSwgYW5kIG90aGVyIHNvdXJjZXMuDQoxOTk3IChTZXAgMTMpOiB0aGUgaW50cm9kdWN0b3J5IGVwaXNvZGUgb2YgU2hha3RpbWFuIHdhcyBhaXJlZCBvbiBEb29yZGFyc2hhbiAoSW5kaWEncyBuYXRpb25hbCB0ZWxldmlzaW9uIG5ldHdvcmspIGZyb20gMjcgU2VwdGVtYmVyIDE5OTcgdG8gMjcgTWFyY2ggMjAwNSwgb24gU3VuZGF5cyBhdCAxMiBub29uIElTVC4gVGhlIHRlbGVjYXN0IHNsb3QsIGhvd2V2ZXIgd2FzIHNoaWZ0ZWQgdG8gOTozMCBhLm0uIGZvciB0aGUgbGFzdCBlcGlzb2Rlcy4gDQoxOTk3IChTZXAgMjcgMTA6MjMgVVRDKTpbU3BhY2VdW01hcnNdIExhc3QgY29udGFjdCB3aXRoIE1hcnMgUGF0aGZpbmRlci4gTWlzc2lvbiBkdXJhdGlvbiAoTGF1bmNoIHRvIGxhc3QgY29udGFjdCk6IDkgbW9udGhzLCAyMyBkYXlzLg0KMTk5NyAoT2N0IDMxKTpbQm9va10gRG9uYWxkIFRydW1wJ3MgVHJ1bXA6IFRoZSBBcnQgb2YgdGhlIENvbWViYWNrOyBUaGUgQW1lcmljYSBXZSBEZXNlcnZlICgyMDAwKTsgVHJ1bXA6IFRoaW5rIExpa2UgYSBCaWxsaW9uYWlyZTogRXZlcnl0aGluZyBZb3UgTmVlZCB0byBLbm93IEFib3V0IFN1Y2Nlc3MsIFJlYWwgRXN0YXRlLCBhbmQgTGlmZSAoMjAwNCk7IFdoeSBXZSBXYW50IFlvdSB0byBCZSBSaWNoICgyMDA2KTsgVHJ1bXA6IFRoZSBCZXN0IFJlYWwgRXN0YXRlIEFkdmljZSBJIEV2ZXIgUmVjZWl2ZWQ6IDEwMCBUb3AgRXhwZXJ0cyBTaGFyZSBUaGVpciBTdHJhdGVnaWVzICgyMDA2LCBOb3YgMSk7IFRoaW5rIEJJRyBhbmQgS2ljayBBc3MgaW4gQnVzaW5lc3MgYW5kIExpZmUgKDIwMDcpOyBUcnVtcCBOZXZlciBHaXZlIFVwOiBIb3cgSSBUdXJuZWQgTXkgQmlnZ2VzdCBDaGFsbGVuZ2VzIGludG8gU3VjY2VzcyAoMjAwOCk7IFRpbWUgdG8gR2V0IFRvdWdoOiBNYWtpbmcgQW1lcmljYSAjMSBBZ2FpbiAoMjAxMSk7IENyaXBwbGVkIEFtZXJpY2E6IEhvdyB0byBNYWtlIEFtZXJpY2EgR3JlYXQgQWdhaW4gKDIwMTUpDQoxOTk3OiBBcnVuZGhhdGkgUm95IGJlY2FtZSB0aGUgZmlyc3QgSW5kaWFuIHRvIHdpbiBNYW4gQm9va2VyIFByaXplIGZvciBoZXIgbm92ZWwgJ1RoZSBHb2Qgb2YgU21hbGwgVGhpbmdzJy4NCjE5OTc6IElJVC1KRUUgd2FzIGNvbmR1Y3RlZCB0d2ljZSBhZnRlciB0aGUgUS1QYXBlciB3YXMgbGVha2VkLg0KMTk5NzogTkFTQSBlc3RpbWF0ZWQgdGhlcmUgd2VyZSBhcHByb3guIDIsNjQ1IGFydGlmaWNpYWwgc2F0ZWxsaXRlIHBheWxvYWRzIG9yYml0dGluZyB0aGUgZWFydGggYW5kIDYsMjE2IHBpZWNlcyBvZiBzcGFjZSBkZWJyaXMgYXMgdHJhY2tlZCBieSB0aGUgR1NGQy4gT3ZlciAxNiwyOTEgcHJldmlvdXNseSBsYXVuY2hlZCBvYmplY3RzIGhhdmUgZGVjYXllZCBpbnRvIHRoZSBFYXJ0aCdzIGF0bW9zcGhlcmUuDQoxOTk3OiBCSEMgRmluYW5jaWFsLCBJbmMuIG9mIFBlbm5zeWx2YW5pYSBtZXJnZWQgaW50byBGSVNWIHRvIGZvcm0gU2VjdXJlZCBUcmFuc2FjdGlvbiBQcm9jZXNzaW5nIFNlcnZpY2VzLg0KMTk5NzpbQm9va10gVGhlIEZvdXIgQWdyZWVtZW50czogQSBQcmFjdGljYWwgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSBpcyBhIHNlbGYtaGVscCBib29rIGJ5IGJlc3RzZWxsaW5nIGF1dGhvciBEb24gTWlndWVsIFJ1aXogd2l0aCBKYW5ldCBNaWxsczsgVGhlIE1hc3Rlcnkgb2YgTG92ZTogQSBQcmFjdGljYWwgR3VpZGUgdG8gdGhlIEFydCBvZiBSZWxhdGlvbnNoaXAgLS1Ub2x0ZWMgV2lzZG9tIEJvb2sgKDE5OTksIE1hciAzMCk7IFRoZSBWb2ljZSBvZiBLbm93bGVkZ2U6IEEgUHJhY3RpY2FsIEd1aWRlIHRvIElubmVyIFBlYWNlICgyMDA0LCBNYXIgMTApOyBUaGUgRmlmdGggQWdyZWVtZW50OiBBIFByYWN0aWNhbCBHdWlkZSB0byBTZWxmLU1hc3RlcnkgKDIwMDkpOyBUaGUgQ2lyY2xlIG9mIEZpcmU6IEluc3BpcmF0aW9uIGFuZCBHdWlkZWQgTWVkaXRhdGlvbnMgZm9yIExpdmluZyBpbiBMb3ZlIGFuZCBIYXBwaW5lc3MgKDIwMTMsIEF1ZyAxKTsgVGhlIE1hc3Rlcnkgb2YgU2VsZjogQSBUb2x0ZWMgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSAoMjAxNiwgTWF5IDYpDQoxOTk3OltCb29rXSBKb24gS3Jha2F1ZXIncyBJbnRvIFRoaW4gQWlyOiBBIFBlcnNvbmFsIEFjY291bnQgb2YgdGhlIE10LiBFdmVyZXN0IERpc2FzdGVyOyBVbmRlciB0aGUgQmFubmVyIG9mIEhlYXZlbiAoMjAwMyBKdWwpDQoxOTk3IChEZWMgMTEpOltFbnZdIFRoZSBLeW90byBQcm90b2NvbCB3YXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgd2hpY2ggZXh0ZW5kZWQgdGhlIDE5OTIgVW5pdGVkIE5hdGlvbnMgRnJhbWV3b3JrIENvbnZlbnRpb24gb24gQ2xpbWF0ZSBDaGFuZ2UgKFVORkNDQykgdGhhdCBjb21taXRzIHN0YXRlIHBhcnRpZXMgdG8gcmVkdWNlIGdyZWVuaG91c2UgZ2FzIGVtaXNzaW9ucywgYmFzZWQgb24gdGhlIHNjaWVudGlmaWMgY29uc2Vuc3VzIHRoYXQgKHBhcnQgb25lKSBnbG9iYWwgd2FybWluZyBpcyBvY2N1cnJpbmcgYW5kIChwYXJ0IHR3bykgdGhhdCBodW1hbi1tYWRlIENPMiBlbWlzc2lvbnMgYXJlIGRyaXZpbmcgaXQuDQoxOTk3OltJbmRpYV1bRWR1Y2F0aW9uXVtDdWx0dXJlXSBFa2xhdnlhIE1vZGVsIFJlc2lkZW50aWFsIFNjaG9vbCBpcyBhIEdvdmVybm1lbnQgb2YgSW5kaWEgc2NoZW1lIGZvciBtb2RlbCByZXNpZGVudGlhbCBzY2hvb2wgZm9yIEluZGlhbiB0cmliYWxzIGFjcm9zcyBJbmRpYS4gSXQgaXMgb25lIG9mIHRoZSBmbGFnc2hpcCBpbnRlcnZlbnRpb25zIG9mIHRoZSBNaW5pc3RyeSBvZiBUcmliYWwgQWZmYWlycywgR292ZXJubWVudCBvZiBJbmRpYSBhbmQgd2FzIGludHJvZHVjZWQgaW4gdGhlIHllYXIgMTk5Ny05OCB0byBlbnN1cmUgdHJpYmFsIHN0dWRlbnRzIGdldCBhY2Nlc3MgdG8gcXVhbGl0eSBlZHVjYXRpb24gaW4gdGhlIHJlbW90ZSB0cmliYWwgYXJlYXMuIEVNUlNzIGFyZSBzZXQgdXAgaW4gU3RhdGVzL1VUcyB3aXRoIGdyYW50cyB1bmRlciBBcnRpY2xlIDI3NSgxKSBvZiB0aGUgQ29uc3RpdHV0aW9uIG9mIEluZGlhLiBBcyBwZXIgdGhlIGJ1ZGdldCAyMDE4LTE5LCBldmVyeSBibG9jayB3aXRoIG1vcmUgdGhhbiA1MCUgU1QgcG9wdWxhdGlvbiBhbmQgYXQgbGVhc3QgMjAsMDAwIHRyaWJhbCBwZXJzb25zLCB3aWxsIGhhdmUgYW4gRWtsYXZ5YSBNb2RlbCBSZXNpZGVudGlhbCBTY2hvb2wgYnkgdGhlIHllYXIgMjAyMi4NCjE5OTc6W1NwYWNlXSBIaXBwYXJjb3MgKDE5ODkgLTE5OTMpLiBJdCB0b29rIDQtOCB5ZWFycyB0byBvcmdhbml6ZSBhbmQgcHVibGlzaCB0aGUgNCB5ZWFycyBzdHVkeSBieSB0aGlzIGV4cGVyaW1lbnQsIHdoaWNoIHBlcm1pdHRlZCB0aGUgZmlyc3QgaGlnaC1wcmVjaXNpb24gbWVhc3VyZW1lbnRzIG9mIHRoZSBpbnRyaW5zaWMgYnJpZ2h0bmVzc2VzIChjb21wYXJlZCB0byB0aGUgbGVzcyBwcmVjaXNlIGFwcGFyZW50IGJyaWdodG5lc3MpLCBwcm9wZXIgbW90aW9ucywgYW5kIHBhcmFsbGF4ZXMgb2Ygc3RhcnMsIGVuYWJsaW5nIGJldHRlciBjYWxjdWxhdGlvbnMgb2YgdGhlaXIgZGlzdGFuY2UgYW5kIHRhbmdlbnRpYWwgdmVsb2NpdHkuIFdoZW4gY29tYmluZWQgd2l0aCByYWRpYWwgdmVsb2NpdHkgbWVhc3VyZW1lbnRzIGZyb20gc3BlY3Ryb3Njb3B5LCBhc3Ryb3BoeXNpY2lzdHMgd2VyZSBhYmxlIHRvIGZpbmFsbHkgbWVhc3VyZSBhbGwgc2l4IHF1YW50aXRpZXMgbmVlZGVkIHRvIGRldGVybWluZSB0aGUgbW90aW9uIG9mIHN0YXJzLiBUaGUgcmVzdWx0aW5nIEhpcHBhcmNvcyBDYXRhbG9ndWUsIGEgaGlnaC1wcmVjaXNpb24gY2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiAxMTgsMjAwIHN0YXJzLCB3YXMgcHVibGlzaGVkIGluIDE5OTcuIFRoZSBsb3dlci1wcmVjaXNpb24gVHljaG8gQ2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiBhIG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBhdCB0aGUgc2FtZSB0aW1lLCB3aGlsZSB0aGUgZW5oYW5jZWQgVHljaG8tMiBDYXRhbG9ndWUgb2YgMi41IG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBpbiAyMDAwLiBIaXBwYXJjb3MnIGZvbGxvdy11cCBtaXNzaW9uLCBHYWlhLCB3YXMgbGF1bmNoZWQgaW4gMjAxMy4NCjE5OTc6W1NwYWNlXVtSZXNlYXJjaF0gU2luY2UgdGhlIDE5OTcgcHJvcG9zYWwgb2YgdGhlIEFkUy9DRlQgKEFudGktZGUgU2l0dGVyL0NvbmZvcm1hbCBGaWVsZCBUaGVvcnkpIGNvcnJlc3BvbmRlbmNlLCB0aGUgcHJlZG9taW5hbnQgYmVsaWVmIGFtb25nIHBoeXNpY2lzdHMgaXMgdGhhdCBpbmZvcm1hdGlvbiBpcyBpbmRlZWQgcHJlc2VydmVkIGluIGJsYWNrIGhvbGUgZXZhcG9yYXRpb24uIA0KMTk5NzpbU3BhY2VdW1Jlc2VhcmNoXSBBIHdpZGVseSBwdWJsaWNpemVkIGJldCBtYWRlIGluIDE5OTcgYmV0d2VlbiBKb2huIFByZXNraWxsIG9uIHRoZSBvbmUgaGFuZCB3aXRoIEhhd2tpbmcgYW5kIEtpcCBUaG9ybmUgb24gdGhlIG90aGVyIHRoYXQgaW5mb3JtYXRpb24gd2FzIG5vdCBsb3N0IGluIGJsYWNrIGhvbGVzLiBUaGUgc2NpZW50aWZpYyBkZWJhdGUgb24gdGhlIHBhcmFkb3ggd2FzIGRlc2NyaWJlZCBpbiBhIHBvcHVsYXIgYm9vayBwdWJsaXNoZWQgaW4gMjAwOCBieSBMZW9uYXJkIFN1c3NraW5kIGNhbGxlZCBUaGUgQmxhY2sgSG9sZSBXYXIuIChUaGUgYm9vayBjYXJlZnVsbHkgbm90ZXMgdGhhdCB0aGUgJ3dhcicgd2FzIHB1cmVseSBhIHNjaWVudGlmaWMgb25lLCBhbmQgdGhhdCBhdCBhIHBlcnNvbmFsIGxldmVsLCB0aGUgcGFydGljaXBhbnRzIHJlbWFpbmVkIGZyaWVuZHMuKSBUaGUgYm9vayBzdGF0ZXMgdGhhdCBIYXdraW5nIHdhcyBldmVudHVhbGx5IHBlcnN1YWRlZCB0aGF0IGJsYWNrLWhvbGUgZXZhcG9yYXRpb24gd2FzIHVuaXRhcnkgYnkgdGhlIGhvbG9ncmFwaGljIHByaW5jaXBsZSwgd2hpY2ggd2FzIGZpcnN0IHByb3Bvc2VkIGJ5ICd0IEhvb2Z0LCBmdXJ0aGVyIGRldmVsb3BlZCBieSBTdXNza2luZCBhbmQgbGF0ZXIgZ2l2ZW4gYSBwcmVjaXNlIHN0cmluZyB0aGVvcnkgaW50ZXJwcmV0YXRpb24gYnkgdGhlIEFkUy9DRlQgY29ycmVzcG9uZGVuY2UuIEluIDIwMDQsIEhhd2tpbmcgYWxzbyBjb25jZWRlZCB0aGUgMTk5NyBiZXQsIHBheWluZyBQcmVza2lsbCB3aXRoIGEgYmFzZWJhbGwgZW5jeWNsb3BlZGlhICJmcm9tIHdoaWNoIGluZm9ybWF0aW9uIGNhbiBiZSByZXRyaWV2ZWQgYXQgd2lsbCIgYWx0aG91Z2ggVGhvcm5lIHJlZnVzZWQgdG8gY29uY2VkZS4NCjE5OTc6W0VhcnRoXVtQaHlzaWNzXVtSZXNlYXJjaF0gdGhlcmUgd2VyZSB0d28gbGFyZ2UgZWFydGhxdWFrZXMgb2ZmIHRoZSBjb2FzdCBvZiBDaGlsZS4gVGhlIG1hZ25pdHVkZSBvZiB0aGUgZmlyc3QsIGluIEp1bHksIHdhcyBlc3RpbWF0ZWQgYXQgTXfigK82LjksIGJ1dCB3YXMgYmFyZWx5IGZlbHQsIGFuZCBvbmx5IGluIHRocmVlIHBsYWNlcy4gSW4gT2N0b2JlciBhIE134oCvNy4xIHF1YWtlIGluIG5lYXJseSB0aGUgc2FtZSBsb2NhdGlvbiwgYnV0IHR3aWNlIGFzIGRlZXAgYW5kIG9uIGEgZGlmZmVyZW50IGtpbmQgb2YgZmF1bHQsIHdhcyBmZWx0IG92ZXIgYSBicm9hZCBhcmVhLCBpbmp1cmVkIG92ZXIgMzAwIHBlb3BsZSwgYW5kIGRlc3Ryb3llZCBvciBzZXJpb3VzbHkgZGFtYWdlZCBvdmVyIDEwLDAwMCBob3VzZXMuIEFzIGNhbiBiZSBzZWVuIGluIHRoZSB0YWJsZSBiZWxvdywgdGhpcyBkaXNwYXJpdHkgb2YgZGFtYWdlIGRvbmUgaXMgbm90IHJlZmxlY3RlZCBpbiBlaXRoZXIgdGhlIG1vbWVudCBtYWduaXR1ZGUgKE134oCvKSBub3IgdGhlIHN1cmZhY2Utd2F2ZSBtYWduaXR1ZGUgKE1z4oCvKS4gT25seSB3aGVuIHRoZSBtYWduaXR1ZGUgaXMgbWVhc3VyZWQgb24gdGhlIGJhc2lzIG9mIHRoZSBib2R5LXdhdmUgKG1i4oCvKSBvciB0aGUgc2Vpc21pYyBlbmVyZ3kgKE1l4oCvKSBpcyB0aGVyZSBhIGRpZmZlcmVuY2UgY29tcGFyYWJsZSB0byB0aGUgZGlmZmVyZW5jZSBpbiBkYW1hZ2UuIChhcyByZXNlYXJjaGVkIGJ5IENob3ksIEJvYXR3cmlnaHQgJiBLaXJieSAyMDAxLCBwLiAxMy4pLiBNdyA2Ljkgd2FzIGFjdHVhbGx5IE1lIDYuMSwgYW4gaW50ZXJwbGF0ZS10aHJ1c3QgdHlwZSBvZiBmYXVsdCwgd2hpbGUgTXcgNy4xIHdhcyBhY3R1YWxseSBhIDcuNSBNZSBpbnRyYXNsYWItbm9ybWFsIHR5cGUgb2YgZmF1bHQuDQoxOTk3OltSZXNlYXJjaF0gRHVyaW5nIHN1cnZleXMgY2FycmllZCBvdXQgYmV0d2VlbiAxOTk3IGFuZCAyMDAxLCBhIHNwb3Qgd2FzIGZvdW5kIGFsb25nIHRoZSBNYXJpYW5hIFRyZW5jaCB0aGF0IGhhZCBhIGRlcHRoIHNpbWlsYXIgdG8gdGhlIENoYWxsZW5nZXIgRGVlcCwgcG9zc2libHkgZXZlbiBkZWVwZXIuIEl0IHdhcyBkaXNjb3ZlcmVkIHdoaWxlIHNjaWVudGlzdHMgZnJvbSB0aGUgSGF3YWlpIEluc3RpdHV0ZSBvZiBHZW9waHlzaWNzIGFuZCBQbGFuZXRvbG9neSB3ZXJlIGNvbXBsZXRpbmcgYSBzdXJ2ZXkgYXJvdW5kIEd1YW07IHRoZXkgdXNlZCBhIHNvbmFyIG1hcHBpbmcgc3lzdGVtIHRvd2VkIGJlaGluZCB0aGUgcmVzZWFyY2ggc2hpcCB0byBjb25kdWN0IHRoZSBzdXJ2ZXkuIFRoaXMgbmV3IHNwb3Qgd2FzIG5hbWVkIHRoZSBITVJHIChIYXdhaWkgTWFwcGluZyBSZXNlYXJjaCBHcm91cCkgRGVlcCwgYWZ0ZXIgdGhlIGdyb3VwIG9mIHNjaWVudGlzdHMgd2hvIGRpc2NvdmVyZWQgaXQuDQoxOTk3OltTcGFjZVhdIEEgcmVzb2x2ZWQgY2lyY3Vtc3RlbGxhciBkaXNrIHdhcyBmaXJzdCBpZGVudGlmaWVkIGluIDE5OTcgd2l0aCB0aGUgT3dlbnMgVmFsbGV5IFJhZGlvIE9ic2VydmF0b3J5LiBUaGUgc2VtaS1tYWpvciBheGlzIHdhcyBpbml0aWFsbHkgZXN0aW1hdGVkIHRvIGJlIDExMCBBVS4gSEQgMTYzMjk2IGFuZCBzdXJyb3VuZGluZ3MgQ3JlZGl0OiBFU08vRGlnaXRpemVkIFNreSBTdXJ2ZXkgMjsgQWNrbm93bGVkZ2VtZW50OiBEYXZpZGUgRGUgTWFydGluIE9ic2VydmF0aW9uIGRhdGEgRXBvY2ggSjIwMDAgICAgICBFcXVpbm94IEoyMDAwIENvbnN0ZWxsYXRpb24JU2FnaXR0YXJpdXMgUmlnaHQgYXNjZW5zaW9uCTE3aCA1Nm0gMjEuMjlzIERlY2xpbmF0aW9uCeKIkjIxwrAgNTfigLIgMjEuODfigLMgQXBwYXJlbnQgbWFnbml0dWRlIChWKQk2Ljg1OyBDaGFyYWN0ZXJpc3RpY3MgRXZvbHV0aW9uYXJ5IHN0YWdlCUhlcmJpZyBBZSBzdGFyIFNwZWN0cmFsIHR5cGUJQTNWYWVrQTFtQTE7IEFzdHJvbWV0cnkgUmFkaWFsIHZlbG9jaXR5IChSdikJLTQuMDAgwrEzLjNbM10ga20vcyBQcm9wZXIgbW90aW9uICjOvCkJUkE6IC03LjU4NiDCsTAuMDQxIG1hcy95cjsgRGVjLjogLTM5LjQ1OCDCsTAuMDI5IG1hcy95cls0XSBQYXJhbGxheCAoz4ApCTkuOTA0M8KxMC4wNDA4IG1hc1s0XSBEaXN0YW5jZQkzMjkgwrEgMSBseSAoMTAxLjAgwrEgMC40IHBjKSBEZXRhaWxzOyBNYXNzCTEuOTXCsTAuMDcgTeKYiSBSYWRpdXMJMS44N8KxMC4wNSBS4piJIEx1bWlub3NpdHkJMjAuNCszLjYg4oiSMy4wIEzimIkgU3VyZmFjZSBncmF2aXR5IChsb2cgZykJNC4xMMKxMC4xMCBjZ3MgVGVtcGVyYXR1cmUJOTAwMMKxMjUwIEsgQWdlCTYuMDMrMC4yOCDiiJIwLjI3IE15ciBPdGhlciBkZXNpZ25hdGlvbnMgQkQtMjEgNDc3OSwgQ1BELTIxIDY1MDgsIEVNKiBNV0MgMjc1LCBISVAgODc4MTksIElSQVMgMTc1MzMtMjE1NiwgMk1BU1MgSjE3NTYyMTI4LTIxNTcyMTgsIFBEUyA0NzMsIFRZQyA2MjYyLTIxMzEtMSwgRGF0YWJhc2UgcmVmZXJlbmNlcyBTSU1CQUQNCjE5OTc6W1NwYWNlWF0gMTAxOTkgQ2hhcmlrbG8gaXMgYSByaW5nZWQgYXN0ZXJvaWQgb3IgY2VudGF1ciBpbiB0aGUgb3V0ZXIgU29sYXIgU3lzdGVtLiBJdCBpcyB0aGUgbGFyZ2VzdCBrbm93biBjZW50YXVyLCB3aXRoIGEgZGlhbWV0ZXIgb2YgYWJvdXQgMjUwIGttLiBJdCBvcmJpdHMgdGhlIFN1biBiZXR3ZWVuIFNhdHVybiBhbmQgVXJhbnVzIHdpdGggYW4gb3JiaXRhbCBwZXJpb2Qgb2YgNjIuNSB5ZWFycy4gV2lraXBlZGlhIE9yYml0YWwgcGVyaW9kOiA2MyB5ZWFycyBSYWRpdXM6IDE1MSBrbSBEaXNjb3ZlcmVkOiAxNSBGZWJydWFyeSAxOTk3IERpbWVuc2lvbnM6ICgyODcuNisyLjg7IOKIkjMuMCkgw5cgKDI3MC40KzIuODsg4oiSNS42KSDDlyAoMTk4LjIrMTAuODsg4oiSNS40KSBrbTogMTEgRGlzY292ZXJlcjogSmFtZXMgVi4gU2NvdHRpIFNwZWN0cmFsIHR5cGU6IEQtdHlwZSBhc3Rlcm9pZCBBcGhlbGlvbjogMTguNDIwIEFVDQoxOTk3OltTcGFjZVhdIFRoZSBHcmVhdCBEYXlsaWdodCBGaXJlYmFsbCAtIFRoZSBhdG1vc3BoZXJpYyBwYXNzIG1vZGlmaWVkIHRoZSBvYmplY3QncyBtYXNzIGFuZCBvcmJpdCBhcm91bmQgdGhlIFN1bi4gQSAxOTk0IHN0dWR5IGZvdW5kIHRoYXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgaW4gYW4gRWFydGgtY3Jvc3Npbmcgb3JiaXQgYW5kIHByZWRpY3RlZCB0aGF0IGl0IHdvdWxkIHBhc3MgY2xvc2UgdG8gRWFydGggYWdhaW4gaW4gQXVndXN0IDE5OTcuIEhvd2V2ZXIsIHRoZSBvYmplY3QgaGFzIG5vdCBiZWVuIG9ic2VydmVkIGFnYWluIGFuZCBzbyBpdHMgcG9zdC1lbmNvdW50ZXIgb3JiaXQgcmVtYWlucyB1bmtub3duLg0KMTk5NzpOYWZpc2EgSm9zZXBoIHdhcyB0aGUgeW91bmdlc3QgTWlzcyBJbmRpYSB3aW5uZXIgYXQgYWdlIDE5LCB3aW5uaW5nIHRoZSB0aXRsZSBpbiAxOTk3LiBTaGUgbGF0ZXIgYmVjYW1lIGEgbW9kZWwgYW5kIHRlbGV2aXNpb24gcGVyc29uYWxpdHkuIFdoaWxlIG90aGVyIHdpbm5lcnMgbGlrZSBNZWVuYWtzaGkgU2VzaGFkcmkgd2VyZSBhbHNvIDE3IHdoZW4gdGhleSB3b24gaW4gMTk4MSwgSm9zZXBoIGlzIG9mdGVuIGNpdGVkIGZvciBoZXIgZWFybHkgd2luIGF0IDE5LCB3aGljaCB3YXMgdGhlbiBhIHlvdW5nZXIgYWdlIHRoYW4gaXMgdHlwaWNhbGx5IHNlZW4gaW4gdGhlIGNvbXBldGl0aW9uLiANCjE5OTc6W3NwYWNlXVt0ZWNoXSBUaGUgZmluYWwgQmxvY2sgSUlBIHdhcyBpbiBOb3YgMTk5Nywgd2hpbGUgQmxvY2sgSUlScyBiZWdhbiByZXBsYWNpbmcgdGhlbSBzaG9ydGx5IGFmdGVyLCBsYXN0aW5nIHVudGlsIDIwMDQuIEJsb2NrIElJUiAoUmVwbGVuaXNobWVudCkgbGF1bmNoZXMgZm9sbG93ZWQgZnJvbSAxOTk3IHRvIDIwMDQsIHdpdGggdGhlIGZpcnN0IGxhdW5jaCBpbiBKYW51YXJ5IDE5OTcuIA0KDQoxOTk4OltTcGFjZVhdIFRoZSBwcmltYXJ5IGNvbnN0cnVjdGlvbiBwaGFzZSBvZiB0aGUgSW50ZXJuYXRpb25hbCBTcGFjZSBTdGF0aW9uIChJU1MpIHRvb2sgYXBwcm94aW1hdGVseSAxMyB5ZWFycywgZnJvbSAxOTk4IHRvIDIwMTEsIHdpdGggdGhlIGZpcnN0IG1vZHVsZSBsYXVuY2hpbmcgaW4gTm92ZW1iZXIgMTk5OCBhbmQgSVNTIEFzc2VtYmx5IENvbXBsZXRlIGRlY2xhcmVkIGluIE1heSAyMDExLiBIb3dldmVyLCBhc3NlbWJseSB3YXMgYSBjb250aW51b3VzLCBtdWx0aS1zdGFnZSBwcm9jZXNzIGludm9sdmluZyBtb3JlIHRoYW4gMzAgbWlzc2lvbnMsIG51bWVyb3VzIHNwYWNld2Fsa3MsIGFuZCByb2JvdGljIGFzc2lzdGFuY2UgdG8gYnVpbGQgdGhlIHN0YXRpb24gcGllY2UgYnkgcGllY2UgaW4gb3JiaXQuIEV2ZW4gYWZ0ZXIgMjAxMSwgdGhlIElTUyBjb250aW51ZWQgdG8gZXZvbHZlIHdpdGggb25nb2luZyBhZGRpdGlvbnMgYW5kIHVwZ3JhZGVzLg0KMTk5ODpbUmVzZWFyY2hdW1NwYWNlXSBTcHJpbmcsIDE5OTg6IGEgbWljcm9mb3NzaWwgdGhhdCB3YXMgZm91bmQgaW4gYSBtZXRlb3JpdGUgYW5kIHBob3RvZ3JhcGhlZCBpbiAxOTY2LCB3YXMgcmVjb2duaXplZCBieSBhIFJ1c3NpYW4gbWljcm9iaW9sb2dpc3QgYXMgYSBtYWduZXRvdGFjdGljIGJhY3Rlcml1bS4gQnkgRmFsbCwgMTk5ODogTkFTQSdzIHB1YmxpYyBwb3NpdGlvbiBvbiBsaWZlLWZyb20tc3BhY2Ugc2hpZnRlZCBkcmFtYXRpY2FsbHkuDQoxOTk4OiBBcyBhIHJlc2VhcmNoIHByb2plY3QgYXQgU3RhbmZvcmQgVW5pdmVyc2l0eSwgU2VyZ2V5IEJyaW4gYW5kIExhcnJ5IFBhZ2UgY3JlYXRlZCBhIHNlYXJjaCBlbmdpbmUgdGhhdCBsaXN0ZWQgcmVzdWx0cyBhY2NvcmRpbmcgdG8gdGhlIHBvcHVsYXJpdHkgb2YgdGhlIHBhZ2VzLCBhZnRlciBjb25jbHVkaW5nIHRoYXQgdGhlIG1vc3QgcG9wdWxhciByZXN1bHQgd291bGQgb2Z0ZW4gYmUgdGhlIG1vc3QgdXNlZnVsLiBBZnRlciByYWlzaW5nICQxIG1pbGxpb24gZnJvbSBmYW1pbHksIGZyaWVuZHMgYW5kIG90aGVyIGludmVzdG9ycywgdGhlIHBhaXIgbGF1bmNoZWQgdGhlIGNvbXBhbnkgaW4gMTk5OC4gR29vZ2xlIGhhcyBzaW5jZSBiZWNvbWUgdGhlIHdvcmxk4oCZcyBtb3N0IHBvcHVsYXIgc2VhcmNoIGVuZ2luZSwgcmVjZWl2aW5nIG1vcmUgdGhhbiAyMDAgbWlsbGlvbiBxdWVyaWVzIGVhY2ggZGF5Lg0KMTk5OCAoTm92IDIwKTogDQoxOTk4IChBcHIgMjcpOiBSUkIgZm91bmRlZCBhcyBSYWlsd2F5IFJlY3J1aXRtZW50IENvbnRyb2wgQm9hcmQgaXMgYSBnb3Zlcm5tZW50IG9yZ2FuaXNhdGlvbiBpbiBJbmRpYS4gSXQgd2FzIHNldCB1cCBpbiAxOTk4IGluIHRoZSBNaW5pc3RyeSBvZiBSYWlsd2F5cyAoUmFpbHdheSBCb2FyZCksIE5ldyBEZWxoaS5JbiAxOTQ1LCB0aGUgU2VydmljZXMgQ29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgYXQgQm9tYmF5LCBDYWxjdXR0YSwgTWFkcmFzIGFuZCBMdWNrbm93LiBJbiAxOTgzLCB0byBjYXRlciB0byB0aGUgbmVlZHMgb2YgYXJlYXMgd2hpY2ggd2VyZSBiZWluZyBuZWdsZWN0ZWQgZHVlIHRvIGxvY2F0aW9ucyBvZiB0aGUgZXhpc3RpbmcgY29tbWlzc2lvbnMsIHNldmVuIG1vcmUgY29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgdml6LCBhdCBBaG1lZGFiYWQsIEFqbWVyLCBCaG9wYWwsIEJodXZuZXNod2FyLCBDaGFuZGlnYXJoLCBKYW1tdSBhbmQgU3JpbmFnYXIgd2l0aCBzaXR0aW5nIGF0IExlaCBhbmQgVHJpdmVuZHJ1bS4gSW4gMTk4NCB0d28gbW9yZSBzZXJ2aWNlIGNvbW1pc3Npb25zIHdlcmUgc2V0IHVwIGF0IE1hbGRhIGFuZCBHb3Jha2hwdXIuDQoxOTk4IChNYXkgMTkpOiBBdGFsIEJpaGFyaSBWYWpwYXllZSBiZWNvbWVzIFBNIG9mIEluZGlhIGZvciB0aGUgc2Vjb25kIHRpbWUsIG5vdyBmb3IgNiB5ZWFycyB0aWxsIE1heSAyMiwgMjAwNC4gDQoxOTk4IChNYXkgMjggMTU6MTVQU1QpOiBDaGFnYWktSSBpcyB0aGUgY29kZSBuYW1lIG9mIGZpdmUgc2ltdWx0YW5lb3VzIHVuZGVyZ3JvdW5kIG51Y2xlYXIgdGVzdHMgY29uZHVjdGVkIGJ5IFBha2lzdGFuLiBUaGUgdGVzdHMgd2VyZSBwZXJmb3JtZWQgYXQgUmFzIEtvaCBIaWxscyBpbiB0aGUgQ2hhZ2FpIERpc3RyaWN0IG9mIEJhbG9jaGlzdGFuIFByb3ZpbmNlLiBDaGFnYWktSSB3YXMgUGFraXN0YW4ncyBmaXJzdCBwdWJsaWMgdGVzdCBvZiBudWNsZWFyIHdlYXBvbnMuIFBha2lzdGFuJ3MgZmlzc2lsZSBtYXRlcmlhbCBwcm9kdWN0aW9uIHRha2VzIHBsYWNlIGF0IE5pbG9yZSwgS2FodXRhLCBhbmQgS2h1c2hhYiBOdWNsZWFyIENvbXBsZXgsIHdoZXJlIHdlYXBvbnMtZ3JhZGUgcGx1dG9uaXVtIGlzIHJlZmluZWQuDQoxOTk4OiBBZnRlciBjb21wbGV0aW5nIGhpcyBYIHN0YW5kYXJkIGV4YW1pbmF0aW9ucywgUmFuYmlyIEthcG9vciwgYWdlZCAxNiwgd29ya2VkIGFzIGFuIGFzc2lzdGFudCBkaXJlY3RvciB0byBoaXMgZmF0aGVyIG9uIHRoZSBmaWxtIEFhIEFiIExhdXQgQ2hhbGVuICgxOTk5KSwgZHVyaW5nIHdoaWNoIGhlIGRldmVsb3BlZCBhIGNsb3NlciBib25kIHdpdGggaGltLg0KMTk4ODogTmV0d29ya2VkIERhdGEgUHJvY2Vzc2luZyBDb3IsIElvd2EgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBJbnN1cmFuY2UgZGl2aXNpb24uDQoxOTk4OltCb29rXSBSb2JlcnQgR3JlZW5lJ3MgVGhlIDQ4IExhd3Mgb2YgUG93ZXI7IFRoZSAzMyBTdHJhdGVnaWVzIG9mIFdhciAoMjAwNik7IE1hc3RlcnkgKDIwMTIsIE5vdiAxMyk7IFRoZSBMYXdzIG9mIEh1bWFuIE5hdHVyZSAoMjAxOCwgT2N0IDE2KQ0KMTk5ODpbU3BhY2VdW1Jlc2VhcmNoXVtFeHRyZW1lXSBUaGVuIGNhbWUgMTk5OCBhbmQgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgKEhTVCkgb2JzZXJ2YXRpb25zIG9mIHZlcnkgZGlzdGFudCBzdXBlcm5vdmFlIHRoYXQgc2hvd2VkIHRoYXQsIGEgbG9uZyB0aW1lIGFnbywgdGhlIHVuaXZlcnNlIHdhcyBhY3R1YWxseSBleHBhbmRpbmcgbW9yZSBzbG93bHkgdGhhbiBpdCBpcyB0b2RheS4gU28gdGhlIGV4cGFuc2lvbiBvZiB0aGUgdW5pdmVyc2UgaGFzIG5vdCBiZWVuIHNsb3dpbmcgZHVlIHRvIGdyYXZpdHksIGFzIGV2ZXJ5b25lIHRob3VnaHQsIGl0IGhhcyBiZWVuIGFjY2VsZXJhdGluZy4NCjE5OTg6W0NyaW1lXVtJbmRpYV0gQW5lZXMgYXJyZXN0ZWQgaW4gVUFFIG9uIGNoYXJnZXMgb2YgaGF2aW5nIG11cmRlcmVkIGEgZm9ybWVyIGFzc29jaWF0ZSBhbmQgdGhlbiByaXZhbCwgSXJmYW4gR29nYSwgaW4gRHViYWksIGJ1dCB3YXMgZnJlZWQgYWZ0ZXIgdHdvIGRheXMgZm9yICdsYWNrIG9mIGV2aWRlbmNlJy4NCjE5OTg6W0NvbXB1dGluZ11bUXVhbnR1bV0gUmVzZWFyY2hlcnMgYXQgSUJNLCBPeGZvcmQsIEJlcmtlbGV5LCBTdGFuZm9yZCwgYW5kIE1JVCBwcm9kdWNlZCBhIDItcXViaXQgY29tcHV0aW5nIHN5c3RlbS4NCjE5OTg6W3d3d10gV2lyZXNoYXJrIGlzIGEgZnJlZSBhbmQgb3Blbi1zb3VyY2UgcGFja2V0IGFuYWx5emVyLiBJdCBpcyB1c2VkIGZvciBuZXR3b3JrIHRyb3VibGVzaG9vdGluZywgYW5hbHlzaXMsIHNvZnR3YXJlIGFuZCBjb21tdW5pY2F0aW9ucyBwcm90b2NvbCBkZXZlbG9wbWVudCwgYW5kIGVkdWNhdGlvbi4gT3JpZ2luYWxseSBuYW1lZCBFdGhlcmVhbCwgdGhlIHByb2plY3Qgd2FzIHJlbmFtZWQgV2lyZXNoYXJrIGluIE1heSAyMDA2IGR1ZSB0byB0cmFkZW1hcmsgaXNzdWVzLg0KMTk5ODpbVVNdW0Vjb25vbXldRGF2aWQgUm9ja2VmZWxsZXIgU3IuIHdhcyBhd2FyZGVkIHRoZSBQcmVzaWRlbnRpYWwgTWVkYWwgb2YgRnJlZWRvbSBieSBQcmVzaWRlbnQgQmlsbCBDbGludG9uIGZvciBoaXMgd29yayBvbiBJbnRlcm5hdGlvbmFsIEV4ZWN1dGl2ZSBTZXJ2aWNlIENvcnBzLg0KMTk5ODpbRGVmXVtBdmlhdGlvbl0gVGhlIExvY2toZWVkIFNSLTcxIEJsYWNrYmlyZCBmbGV3IHNvIGhpZ2ggYW5kIHNvIGZhc3QgdGhhdCB0aGUgY3JldyBuZWVkZWQgcHJlc3N1cml6ZWQgc3BhY2Ugc3VpdHMgd2hlbiBmbHlpbmcgaXQuIEFuZCBpdCBpcyBzYWlkIHRoYXQgYXQgdGhlIG1heGltdW0gYWx0aXR1ZGUgb2YgaXQgaXQgd2FzIHBvc3NpYmxlIHRvIHNlZSB0aGUgY3VydmF0dXJlIG9mIHRoZSBlYXJ0aCwgd2hpY2ggcmVmZXJzIHRvIHRoaXMgcXVvdGUgYnkgQ29sb25lbCBBbGlzb246IOKAnE9uIGEgY2xlYXIgZGF5IHlvdSBjYW4gc2VlIGZvcmV2ZXLigKbigJ0uIFRoZSBzZXJ2aWNlIGNlaWxpbmcgb2YgODUsMDAwIGZlZXQgKDI1LDkwMG0pIG1lYW50IHRoYXQgaXQgd2FzIGFuIGV4Y2VsbGVudCBleHBlcmltZW50YWwgdW5pdCBmb3Igc3BhY2UgdHJhdmVscy4gVGhhdCwgY29tYmluZWQgd2l0aCB0aGUgZ3JlYXQgc3BlZWRzIG9mIGl0IHdhcyB0d28gb2YgdGhlIHJlYXNvbnMgd2h5IE5BU0EgZGVjaWRlZCB0byB0YWtlIG92ZXIgdGhlIGxhc3QgdHdvIEJsYWNrYmlyZHMgYWZ0ZXIgaXRzIHJldGlyZW1lbnQgZnJvbSB0aGUgQWlyIEZvcmNlIGluIDE5OTguIFRoaXMgbWVhbnMgdGhhdCB0aGUgd29ybGTigJlzIGZhc3Rlc3QgYWlyY3JhZnQgd2FzIGluIHNlcnZpY2UgZnJvbSAxOTY2IHVudGlsIE5BU0EgcmV0aXJlZCBpdHMgdHdvIHVuaXRzIGluIDE5OTksIGFuZCBtb3N0IG9mIHRoZSByZW1haW5pbmcgQmxhY2tiaXJkcyBhcmUgdG9kYXkgc3RhdGlvbmVkIGF0IG11c2V1bXMgb3IgbWlsaXRhcnkgYmFzZXMgYWNyb3NzIHRoZSBVUy4NCjE5OTg6SW4gMTk5OCwgR2F1dGFtIEFkYW5pLCBhbG9uZyB3aXRoIGhpcyBhc3NvY2lhdGUgU2hhbnRpbGFsIFBhdGVsLCB3YXMga2lkbmFwcGVkIGZvciByYW5zb20gaW4gQWhtZWRhYmFkLCBJbmRpYS4gVGhleSB3ZXJlIGFiZHVjdGVkIGF0IGd1bnBvaW50IGFmdGVyIGxlYXZpbmcgdGhlIEthcm5hdmF0aSBDbHViIGluIGEgY2FyLiBUaGUga2lkbmFwcGVycywgYWxsZWdlZGx5IGdhbmdzdGVycyBGYXpsdSBSZWhtYW4gYW5kIEJob2dpbGFsIERhcmppLCByZXBvcnRlZGx5IGRlbWFuZGVkIGEgcmFuc29tIG9mICQxLjUtMiBtaWxsaW9uLiBCb3RoIEFkYW5pIGFuZCBQYXRlbCB3ZXJlIHJlbGVhc2VkIGEgZGF5IGxhdGVyLCBidXQgaXQncyB1bmNsZWFyIGlmIHRoZSByYW5zb20gd2FzIHBhaWQuIA0KVGhlIGtpZG5hcHBpbmcgaW5jaWRlbnQgaGFwcGVuZWQgaW4gdGhlIG1pZC0xOTkwcywgYXJvdW5kIHRoZSB0aW1lIEFkYW5pJ3MgYnVzaW5lc3Mgc3VjY2Vzc2VzIHN0YXJ0ZWQgYXR0cmFjdGluZyB1bndhbnRlZCBhdHRlbnRpb24uIFRoZSBraWRuYXBwaW5nIHdhcyBhbGxlZ2VkbHkgY2FycmllZCBvdXQgYnkgRmF6bHUgUmVobWFuIGFuZCBCaG9naWxhbCBEYXJqaSwgYWxzbyBrbm93biBhcyAiTWFtYSIuIFRoZXkgd2VyZSBsYXRlciBhY3F1aXR0ZWQgZHVlIHRvIGxhY2sgb2YgZXZpZGVuY2UuIA0KVGhlIGFiZHVjdGlvbiBpcyBqdXN0IG9uZSBvZiB0aGUgY2hhbGxlbmdlcyBBZGFuaSBoYXMgZmFjZWQuIEhlIHdhcyBhbHNvIGNhdWdodCBpbiB0aGUgMjYvMTEgTXVtYmFpIHRlcnJvciBhdHRhY2tzIGF0IHRoZSBUYWogSG90ZWwuIE1vcmUgcmVjZW50bHksIGhlIGhhcyBmYWNlZCBhY2N1c2F0aW9ucyBvZiBicmliZXJ5IGFuZCBzZWN1cml0aWVzIGZyYXVkLiANCkFkYW5pIGFuZCBvdGhlcnMgd2VyZSBlc2NvcnRlZCBieSBzdGFmZiB0byB0aGUga2l0Y2hlbiBhbmQgdGhlbiB0aGUgYmFzZW1lbnQuIFRoZXkgc3BlbnQgdGhlIGVudGlyZSBuaWdodCBpbiBhIGhhbGwgd2FpdGluZyBmb3IgcmVzY3VlLiBBZGFuaSBsYXRlciB0b2xkIG5ld3MgY2hhbm5lbHMgdGhhdCBoZSBzYXcg4oCcZGVhdGggYXQgYSBkaXN0YW5jZSBvZiBqdXN0IDE1IGZlZXQu4oCdIEhlIHdhcyByZXNjdWVkIHRoZSBuZXh0IG1vcm5pbmcgYnkgc2VjdXJpdHkgZm9yY2VzLg0KMTk5ODpbRW52XVtEaXNhc3Rlcl0gRWFzdGVybiBJbmRpYSwgMTk5OCBCYW5nbGFkZXNoIGZsb29kOyA0ayBkZWF0aHMNCjE5OTg6W1dob11bUmVzZWFyY2hdW0NvbXB1dGluZ11bVGVjaF1bQ3VsdHVyZV0gSW50ZXJuZXQgRG93bmxvYWQgTWFuYWdlciAoSURNKSB3YXMgZGV2ZWxvcGVkIGJ5IFRvbmVjIEluYy4sIGFuIEFtZXJpY2FuIGNvbXBhbnkgdGhhdCBzdGFydGVkIHRoZSBwcm9qZWN0IGluIDE5OTggYW5kIHJlbGVhc2VkIHRoZSBzb2Z0d2FyZSBpbiAyMDAxLiBUb25lYyBJbmMuIGZvY3VzZXMgb24gbmV0d29yayBwcm9ncmFtbWluZyBhbmQgY3JlYXRlZCBJRE0gdG8gc3BlZWQgdXAgZG93bmxvYWRzIGJ5IHVzaW5nIGR5bmFtaWMgZmlsZSBzZWdtZW50YXRpb24sIGFjY2VsZXJhdGluZyBzcGVlZHMgYnkgdXAgdG8gOCB0aW1lcy4gDQoNCjE5OTk6NCBKYW51YXJ5IDE5OTk6IE5BU0Egb2ZmaWNpYWxseSByZWNvZ25pemVkIHRoZSBwb3NzaWJpbGl0eSB0aGF0IGxpZmUgb24gRWFydGggY29tZXMgZnJvbSBzcGFjZS4NCjE5IE1hcmNoIDE5OTk6IE5BU0Egc2NpZW50aXN0cyBhbm5vdW5jZWQgdGhhdCB0d28gbW9yZSBtZXRlb3JpdGVzIGhvbGQgZXZlbiBzdHJvbmdlciBmb3NzaWxpemVkIGV2aWRlbmNlIGZvciBwYXN0IGxpZmUgb24gTWFycy4NCjE5OTk6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEcyMCBvciBHcm91cCBvZiAyMCBpcyBhbiBpbnRlcmdvdmVybm1lbnRhbCBmb3J1bSBjb21wcmlzaW5nIDE5IHNvdmVyZWlnbiBjb3VudHJpZXMsIHRoZSBFdXJvcGVhbiBVbmlvbiwgYW5kIHRoZSBBZnJpY2FuIFVuaW9uLiBGb3VuZGVkOiAyNiBTZXB0ZW1iZXIgMTk5OTsgQ2hhaXJtYW4gKEluY3VtYmVudCk6IEN5cmlsIFJhbWFwaG9zYSwgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYQ0KMTk5OTogVGhlIHRlcm0gV2ktRmkgd2FzIGludmVudGVkIGJ5IEludGVyYnJhbmQgKGFuIGFtZXJpY2FuIGJyYW5kIGNvbnN1bHRhbmN5IGNvbXBhbnkpIGFzIGEgcHVuIHVwb24gdGhlIHdvcmQgaGktZmkuDQpXaS1GaSBBbGxpYW5jZSBmb3JtZWQgYXMgYSB0cmFkZSBhc3NvY2lhdGlvbiB0byBob2xkIHRoZSBXaS1GaSB0cmFkZW1hcmsgdW5kZXIgd2hpY2ggbW9zdCBwcm9kdWN0cyBhcmUgc29sZC4NCjE5OTk6IHRoZSB0ZXJtDQoxOTk5OiBJc2xhbWljIFN0YXRlIG9mIElyYXEgYW5kIHRoZSBMZXZhbnQgKGFsc28ga25vd24gYXMgdGhlIElzbGFtaWMgU3RhdGUgb2YgSXJhcSBhbmQgU3lyaWEsIElzbGFtaWMgU3RhdGUsIG9yIGNvbW1vbmx5LCBJU0lTKSBmb3VuZGVkIGFzIEphbWEnYXQgYWwtVGF3aGlkIHdhbC1KaWhhZCBieSBBYnUgTXVzYWIgYWwtWmFycWF3aSBIUSdkIGF0ICBBbC1SYXFxYWguDQoxOTk5IChBcHIgMTIpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBJIFdhbnQgSXQgVGhhdCBXYXkuDQoxOTk5IChBcHIgMTgpOiBDT05DRVJUIGJlY2FtZSBvcGVyYXRpb25hbC4gSXQgd2FzIGRldmVsb3BlZCB1c2luZyBjbGllbnQtc2VydmVyIG1vZGVsIGZvciBkaXN0cmlidXRlZCBjb21wdXRpbmcgaXMgYSB0b3RhbCBzb2x1dGlvbiB0byB0aGUgbmV0d29ya2luZyBvZiB0aGUgUFJTcy4gQWxsIHRoZSBmaXZlIHNpdGVzIGhhdmUgYmVlbiBpbnRlcm5ldC13b3JrZWQgb3ZlciBhIDY0IGticHMgbGluZSB1c2luZyByb3V0ZXJzLCBvbiBsZWFzZWQgY29tbXVuaWNhdGlvbiBsaW5lIGNvbm5lY3Rpb25zIGZyb20gRGVwYXJ0bWVudCBvZiBUZWxlY29tIChET1QpLg0KMTk5OTogQ3JlZGl0IGNhcmRzIGFjY2VwdGVkIGZvciBib29raW5nIHRpY2tldHMgYW5kIHJlc2VydmF0aW9ucyBpbiBzb21lIHN0YXRpb25zIChpbmNsdWRpbmcgTXVtYmFpIENTVCkuDQoxOTk5IChNYXkgMSk6W0Jvb2tdIFJvYmVydCBLaXlvc2FraSAmIFNoYXJvbiBMZWNodGVyJ3MgUmljaCBEYWQncyBDYXNoZmxvdyBRdWFkcmFudDogUmljaCBEYWQncyBHdWlkZSB0byBGaW5hbmNpYWwgRnJlZWRvbTsgUmljaCBEYWQncyBHdWlkZSB0byBJbnZlc3Rpbmc6IFdoYXQgdGhlIFJpY2ggSW52ZXN0IGluIFRoYXQgdGhlIFBvb3IgYW5kIE1pZGRsZSBDbGFzcyBEbyBOb3QhICgyMDAxLCBKYW4gMSk7IFRoZSBSZWFsIEJvb2sgb2YgUmVhbCBFc3RhdGU6IFJlYWwgRXhwZXJ0cy4gUmVhbCBTdG9yaWVzLiBSZWFsIExpZmUuICgyMDA5LCBNYXkgMTIpOyBSaWNoIEtpZCBTbWFydCBLaWQ6IEdpdmluZyBZb3VyIENoaWxkIGEgRmluYW5jaWFsIEhlYWQgU3RhcnQgKDIwMDEsIEphbiAxKTsgDQoxOTk5IChNYXkgMTgpOltNdXNpY10gTWlsbGVubml1bSBpcyB0aGUgdGhpcmQgc3R1ZGlvIGFsYnVtIChzZWNvbmQgaW4gdGhlIFVuaXRlZCBTdGF0ZXMpIGJ5IEFtZXJpY2FuIGJveSBiYW5kIEJhY2tzdHJlZXQgQm95cywgcmVsZWFzZWQgYnkgSml2ZSBSZWNvcmRzLg0KMTk5OSAoRnJpLCAyNCBEZWMpOiBJbmRpYW4gQWlybGluZXMgRmxpZ2h0IDgxNCBjb21tb25seSBrbm93biBhcyBJQyA4MTQgd2FzIGFuIEluZGlhbiBBaXJsaW5lcyBBaXJidXMgQTMwMCBlbiByb3V0ZSBmcm9tIFRyaWJodXZhbiBJbnRlcm5hdGlvbmFsIEFpcnBvcnQgaW4gS2F0aG1hbmR1LCBOZXBhbCB0byBJbmRpcmEgR2FuZGhpIEludGVybmF0aW9uYWwgQWlycG9ydCBpbiBEZWxoaSwgSW5kaWEgd2FzIGhpamFja2VkLiBIYXJrYXQtdWwtTXVqYWhpZGVlbiB3YXMgYWNjdXNlZCBvZiB0aGUgaGlqYWNraW5nLg0KMTk5OTogSVJDVEMNCjE5OTkgKEF1Zyk6IEJvb2tNeVNob3cNCjE5OTkgKFNlcCAxNCk6IFtHZW9Qb2xpdGljc10gVGhlIENvbmZlcmVuY2Ugb24gSW50ZXJhY3Rpb24gYW5kIENvbmZpZGVuY2UtQnVpbGRpbmcgTWVhc3VyZXMgaW4gQXNpYSAoQ0lDQSkgaXMgYW4gaW50ZXItZ292ZXJubWVudGFsIGZvcnVtIGZvciBlbmhhbmNpbmcgY29vcGVyYXRpb24gdG93YXJkcyBwcm9tb3RpbmcgcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYS4gSXQgaXMgYSBmb3J1bSBiYXNlZCBvbiB0aGUgcmVjb2duaXRpb24gdGhhdCB0aGVyZSBpcyBjbG9zZSBsaW5rIGJldHdlZW4gcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYSBhbmQgaW4gdGhlIHJlc3Qgb2YgdGhlIHdvcmxkLiBUaGUga2V5IGlkZWEgb2YgdGhlIENvbmZlcmVuY2UgaXMgYmFzZWQgb24gdGhlIHByaW9yaXR5IG9mIHRoZSBpbmRpdmlzaWJpbGl0eSBvZiBzZWN1cml0eSwgam9pbnQgaW5pdGlhdGl2ZSBhbmQgbXV0dWFsbHkgYmVuZWZpY2lhbCBpbnRlcmFjdGlvbiBvZiBzbWFsbCBhbmQgbGFyZ2Ugc3RhdGVzLg0KMTk5OTogTm9ibGUgRWR1Y2F0aW9uIFNvY2lldHkncyBOb2JsZSBQdWJsaWMgU2Nob29sIChOUFMpLCBHYWpyYXVsYSBmb3VuZGVkIHdpdGggMjEzMDYyNyBhcyBpdHMgQ0JTRSBBZmZpbGlhdGlvbiBuby4NCjE5OTk6IGZpcnN0IC53bWEgZmlsZSBjcmVhdGVkDQoxOTk5OiBOYXBzdGVyIGZvdW5kZWQuDQoxOTk5IChEZWMgMTQpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBTaG93IE1lIHRoZSBNZWFuaW5nIG9mIEJlaW5nIExvbmVseS4gDQoxOTk5OltNdXNpY10gRHIuIERyZSBmdC4gU25vb3AgRG9nZydzIFN0aWxsIEQuUi5FLg0KMTk5OTpbQ3VsdHVyZV0gVGhlIENpdHRhc2xvdyBvcmdhbml6YXRpb24gd2FzIGNyZWF0ZWQgYnkgUGFvbG8gU2F0dXJuaW5pLCB0aGUgZm9ybWVyIG1heW9yIG9mIEdyZXZlIGluIENoaWFudGksIEl0YWx5LiBTYXR1cm5pbmkgd2FzIGluc3BpcmVkIGJ5IENhcmxvIFBldHJpbmkgYW5kIGhpcyBTbG93IEZvb2QgbW92ZW1lbnQsIHN0YXJ0ZWQgaW4gdGhlIDE5ODBzIHRvIHByb3Rlc3QgdGhlIGZpcnN0IE1jRG9uYWxkJ3MgY2hhaW4gaW4gUm9tZS4gU2luY2UgdGhlbiwgdGhlIENpdHRhc2xvdyBtb3ZlbWVudCBoYXMgZ3Jvd24gYWNyb3NzIGZvdXIgY29udGluZW50cywgd2l0aCAyNjIgcGFydGljaXBhdGluZyB0b3ducyBhcyBvZiAyMDIwLiANCjE5OTk6W01hbmFnZW1lbnRdW0J1c2luZXNzXVtQc3ljaG9sb2d5XVtSZXNlYXJjaF0gRHVubmluZyBhbmQgS3J1Z2VyIEVmZmVjdDogRGF2aWQgRHVubmluZyBhbmQgSnVzdGluIEtydWdlciBwdWJsaXNoZWQgdGhlIGluaXRpYWwgc3R1ZHkgaW4gMTk5OSB1bmRlciB0aGUgdGl0bGUgIlVuc2tpbGxlZCBhbmQgVW5hd2FyZSBvZiBJdDogSG93IERpZmZpY3VsdGllcyBpbiBSZWNvZ25pemluZyBPbmUncyBPd24gSW5jb21wZXRlbmNlIExlYWQgdG8gSW5mbGF0ZWQgU2VsZi1Bc3Nlc3NtZW50cyIuDQoxOTk5OltSZXNlYXJjaF0gUmVzZWFyY2ggYnkgVVMgTmF0aW9uYWwgUmVzZWFyY2ggQ291bmNpbC4gV2F0ZXIgZnJvbSB1bmRlcmdyb3VuZCBzb3VyY2VzIG1heSBjb250YWluIHNpZ25pZmljYW50IGFtb3VudHMgb2YgcmFkb24gZGVwZW5kaW5nIG9uIHRoZSBzdXJyb3VuZGluZyByb2NrIGFuZCBzb2lsIGNvbmRpdGlvbnMsIHdoZXJlYXMgc3VyZmFjZSBzb3VyY2VzIGdlbmVyYWxseSBkbyBub3QuDQoxOTk5OltOU0VdIEluY29ycG9yYXRlZCBpbiAxOTk5LCBJUkNUQyBpcyBhIE1pbmkgUmF0bmEgKENhdGVnb3J5IDEsIENlbnRyYWwgUHVibGljIFNlY3RvciBFbnRlcnByaXNlcyApIGFuZCB0aGUgb25seSBjb21wYW55IGF1dGhvcml6ZWQgYnkgdGhlIEluZGlhbiBnb3Zlcm5tZW50IHRvIHByb3ZpZGUgb25saW5lIHJhaWx3YXkgdGlja2V0cywgY2F0ZXJpbmcgc2VydmljZXMsIGFuZCBwYWNrYWdlZCBkcmlua2luZyB3YXRlciBhdCByYWlsd2F5IHN0YXRpb25zIGFuZCB0cmFpbnMgaW4gSW5kaWEuDQoxOTk5OltNbnRuZ2ddW0Jvb2tdIFN0ZXZlIEhvdXNlIGlzIGEgd29ybGQtcmVub3duZWQgY2xpbWJlciwgbW91bnRhaW4gZ3VpZGUgYW5kIFBhdGFnb25pYSBhbWJhc3NhZG9yLCB3aWRlbHkgcmVnYXJkZWQgZm9yIGhpcyBjbGVhbiwgbGlnaHQtYW5kLWZhc3Qgc3R5bGUuIEhlIGhhcyBwdWJsaXNoZWQgYXJ0aWNsZXMgaW4gYSBudW1iZXIgb2YgcGVyaW9kaWNhbHMgaW5jbHVkaW5nOiBBbHBpbmlzdCwgUm9jayBhbmQgSWNlLCBDbGltYmluZywgVGhlIEFtZXJpY2FuIEFscGluZSBKb3VybmFsLCBHcmlwcGVkLCBDYW5hZGlhbiBBbHBpbmUgSm91cm5hbCwgQ2xpbWIsIFZlcnRpY2FsLCBNb250YWduZXMsIFJpc2ssIEFscCssIENhbXBvIEJhc2UsIERlc25pdmVsLCBhbmQgU3RpbGUgQWxwaW4uIEhpcyBlc3NheXMgaGF2ZSBiZWVuIHB1Ymxpc2hlZCBpbiBzZXZlcmFsIGJvb2tzIGluY2x1ZGluZzsgQ29udGFjdDogTW91bnRhaW4gQ2xpbWJpbmcgYW5kIEVudmlyb25tZW50YWwgVGhpbmtpbmc7IFNvbHRhcmksIGEgY29sbGVjdGlvbiBvZiBlc3NheXMgYWJvdXQgc29sbyBjbGltYmluZyBwdWJsaXNoZWQgaW4gSXRhbGlhbjsgQmVyZywgYSBHZXJtYW4gYm9vayBhYm91dCBjbGltYmluZyBpbiB0aGUgSGltYWxheWE7IGFuZCBhbiB1cGNvbWluZyBib29rIGFib3V0IE5hbmdhIFBhcmJhdCBlZGl0ZWQgYnkgUmVpbmhvbGQgTWVzc25lci4gSGUgaGFzIHdvcmtlZCBhcyBhIFBhdGFnb25pYSBhbHBpbmUgYW1iYXNzYWRvciBzaW5jZSAxOTk5LiBQdWJsaXNoZWQ6IFRyYWluaW5nIGZvciB0aGUgTmV3IEFscGluaXNtOiBBIE1hbnVhbCBmb3IgdGhlIENsaW1iZXIgYXMgQXRobGV0ZSBQYXBlcmJhY2sg4oCTIElsbHVzdHJhdGVkLCAzIEFwcmlsIDIwMTQNCjE5OTk6W01udG5nZ10gQ29ucmFkIEFua2VyIChib3JuIE5vdmVtYmVyIDI3LCAxOTYyKSBpcyBhbiBBbWVyaWNhbiByb2NrIGNsaW1iZXIsIG1vdW50YWluZWVyLCBhbmQgYXV0aG9yLiBIZSB3YXMgdGhlIHRlYW0gbGVhZGVyIG9mIFRoZSBOb3J0aCBGYWNlIGNsaW1iaW5nIHRlYW0gZm9yIDI2IHllYXJzIHVudGlsIDIwMTguWzJdIEluIDE5OTksIGhlIGxvY2F0ZWQgR2VvcmdlIE1hbGxvcnkncyBib2R5IG9uIEV2ZXJlc3QgYXMgYSBtZW1iZXIgb2YgYSBzZWFyY2ggdGVhbSBsb29raW5nIGZvciB0aGUgcmVtYWlucyBvZiB0aGUgQnJpdGlzaCBjbGltYmVyIHdobyB3YXMgbGFzdCBzZWVuIGluIDE5MjQuDQoxOTk5OlRoZSBQaXBpc3RyZWwgVmlydXMgZmxldyBmb3IgdGhlIGZpcnN0IHRpbWUgb24gQXVndXN0IDEwLCAxOTk5LiBQcm9kdWN0aW9uIGJlZ2FuIG9uIEphbnVhcnkgMjAsIDIwMDAuIFRoZSBkZXZlbG9wbWVudCBvZiB0aGUgc2hvcnQgd2luZyB2ZXJzaW9uIHN0YXJ0ZWQgaW4gMjAwNy4gVGhlIFZpcnVzIFNXIHByb2R1Y3Rpb24gc3RhcnRlZCBpbiAyMDA4LiBUaGUgVmlydXMgd29uIHRoZSBOQVNBIDIwMDcgUGVyc29uYWwgQWlyIFZlaGljbGUgKFBBVikgQ2hhbGxlbmdlIGFuZCB0aGUgMjAwOCBHZW5lcmFsIEF2aWF0aW9uIFRlY2hub2xvZ3kgKEdBVCkgQ2hhbGxlbmdlLg0KMTk5OTpbc2lsdmljc10gU3VzdGFpbmFibGUgUHJhY3RpY2VzOiBSZXNlYXJjaCBpbiB0aGUgMjB0aCBjZW50dXJ5IHZhbGlkYXRlZCB0aGF0IHNlY29uZC1ncm93dGggc3RhbmRzIGNvdWxkIGJlIHN1c3RhaW5hYmx5IG1hbmFnZWQgdGhyb3VnaCB0ZWNobmlxdWVzIGxpa2UgdGhlIHNlZWQgdHJlZSBtZXRob2QuIFRvZGF5LCBzaWx2aWN1bHR1cmUgZm9jdXNlcyBvbiBjb21wbGV4IHN0YW5kIHN0cnVjdHVyZXMsIGJhbGFuY2luZyBjb21tZXJjaWFsIGRlbWFuZCB3aXRoIGVudmlyb25tZW50YWwgc3Rld2FyZHNoaXAuIA0KDQoyMXN0IGNlbnR1cnkgQ0Ugc3RhcnRlZCBvbiAxc3QgSmFuIDIwMDEgQUQuDQoNCjIwMDBzOltSZXNlYXJjaF0gVGhlIGNsYWltIHRoYXQgIndlIGFyZSA2MCUgYmFuYW5hIiAob3Igc2hhcmUgNjAlIG9mIG91ciBETkEpIGlzIGEgcG9wdWxhciwgeWV0IG9mdGVuIG1pc2ludGVycHJldGVkLCBzdGF0aXN0aWMgdGhhdCBvcmlnaW5hdGVkIGZyb20gY29tcGFyaXNvbnMgb2YgcHJvdGVpbi1jb2RpbmcgZ2VuZXMsIGxpa2VseSBwb3B1bGFyaXplZCBpbiB0aGUgZWFybHkgMjAwMHMgZm9sbG93aW5nIHByZWxpbWluYXJ5IHN0dWRpZXMgb2YgdGhlIGJhbmFuYSBnZW5vbWUuIEl0IHJlZmVycyB0byBhYm91dCA2MCUgb2YgaHVtYW4gZ2VuZXMgaGF2aW5nIGEgcmVjb2duaXphYmxlIGNvdW50ZXJwYXJ0IGluIGJhbmFuYXMsIG5vdCA2MCUgb2Ygb3VyIHRvdGFsIEROQS4gDQpNYW55IG9mIHRoZSDigJxob3VzZWtlZXBpbmfigJ0gZ2VuZXMgdGhhdCBhcmUgbmVjZXNzYXJ5IGZvciBiYXNpYyBjZWxsdWxhciBmdW5jdGlvbiwgc3VjaCBhcyBmb3IgcmVwbGljYXRpbmcgRE5BLCBjb250cm9sbGluZyB0aGUgY2VsbCBjeWNsZSwgYW5kIGhlbHBpbmcgY2VsbHMgZGl2aWRlIGFyZSBzaGFyZWQgYmV0d2VlbiBtYW55IHBsYW50cyAoaW5jbHVkaW5nIGJhbmFuYXMpIGFuZCBhbmltYWxzLldoaWxlIDYwJSBvZiBnZW5lcyBoYXZlIGNvdW50ZXJwYXJ0cywgdGhlc2UgZXNzZW50aWFsIGdlbmVzIG1ha2UgdXAgb25seSBhIHNtYWxsIGZyYWN0aW9uIG9mIHRoZSB0b3RhbCBnZW5vbWU7IGh1bWFucyBhbmQgYmFuYW5hcyBhcmUgbm90IDYwJSBpZGVudGljYWwgb3ZlcmFsbC4gDQpUaGUgcGhyYXNlIGlzIGVzc2VudGlhbGx5IGEgc2ltcGxpZmllZCwgb2Z0ZW4tZXhhZ2dlcmF0ZWQsIHdheSBvZiBoaWdobGlnaHRpbmcgdGhhdCBhbGwgbGlmZSBzaGFyZXMgY29tbW9uIGFuY2VzdHJhbCBnZW5lcyBmb3IgYmFzaWMgY2VsbHVsYXIgcHJvY2Vzc2VzLiANCjIwMDBzOltNQkFdIFNob3VsZCBDb3N0IE1vZGVsaW5nOiBNb2Rlcm4gIlNob3VsZCBDb3N0IiBtb2RlbHMgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBpZGVhbCBjb3N0IG9mIGEgcHJvZHVjdCwgYWNjb3VudGluZyBmb3IgbGFib3IsIG1hdGVyaWFscywgYW5kIG92ZXJoZWFkLiBFbnZpcm9ubWVudGFsICYgU29jaWFsIEltcGFjdDogTW9kZXJuIENCQSBub3cgcm91dGluZWx5IGluY2x1ZGVzIGVudmlyb25tZW50YWwgYW5kIHNvY2lhbCBpbXBhY3RzIGluIGFkZGl0aW9uIHRvIGZpbmFuY2lhbCBvbmVzLiBTaGlmdCBmcm9tIExvY2FsIHRvIEdsb2JhbDogRWFybHksIGhpZ2hseSBsb2NhbCBhc3Nlc3NtZW50cyBldm9sdmVkIGludG8gbGFyZ2Utc2NhbGUsIG5hdGlvbmFsLCBhbmQgaW50ZXJuYXRpb25hbCBDQkEuIFJlZmluZW1lbnQgb2YgVGVjaG5pcXVlczogTW92aW5nIGZyb20gc2ltcGxlLCBzaW5nbGUtcGVyaW9kIG1vZGVscyB0byBjb21wbGV4LCBtdWx0aS1wZXJpb2Qgc2ltdWxhdGlvbnMuIEluY3JlYXNlZCBEYXRhIFVzZTogVGhlIGF2YWlsYWJpbGl0eSBvZiBsYXJnZSwgZ3JhbnVsYXIgZGF0YSBzZXRzIGhhcyBhbGxvd2VkIGZvciBtb3JlIHByZWNpc2UgYW5kIHJlbGlhYmxlIGFuYWx5c2lzLiANCjIwMDBzOltNbnRuZ2ddW0V4dHJlbWVdIEluIHRoZSBlYXJseSAyMDAwcywgRGlkaWVyIEJlcnRob2Qgd2FzIHRoZSBiZXN0IGNyYWNrIGNsaW1iZXIgaW4gdGhlIHdvcmxkLCB0aGVuIGhlIGRyb3BwZWQgb3V0IG9mIGNsaW1iaW5nIGFuZCBlc3NlbnRpYWxseSBkaXNhcHBlYXJlZCBmcm9tIHRoZSB3b3JsZC4NCjIwMDBzOltSZWFsdHldIEVhcmx5IDIwMDBzOiBSZWFsIGVzdGF0ZSB3YXMgaW4gaXRzIGVhcmx5IHN0YWdlcyBpbiBJbmRpYSwgd2l0aCBncmFkdWFsIGdyb3d0aCBhbmQgZGV2ZWxvcG1lbnQuIA0KMjAwMHM6VGVhbXdvcmsgaXMgbm93IGFuIGludGVncmFsIHBhcnQgb2Ygb3JnYW5pemF0aW9uYWwgc3RyYXRlZ3ksIHdpdGggYSBncmVhdGVyIGVtcGhhc2lzIG9uIGN1c3RvbWl6YXRpb24sIHBlcnNvbmFsaXphdGlvbiwgYW5kIHN0cmF0ZWdpYyBpbnRlZ3JhdGlvbiBvZiB0ZWFtLWJ1aWxkaW5nIHByYWN0aWNlcy4gVGhlIHJpc2Ugb2YgdGVjaG5vbG9neSBoYXMgYWxzbyBpbmZsdWVuY2VkIHRlYW13b3JrLCB3aXRoIHJlbW90ZSB3b3JrIGJlY29taW5nIG1vcmUgcHJldmFsZW50IGFuZCBuZXcgdG9vbHMgZW1lcmdpbmcgdG8gZmFjaWxpdGF0ZSBjb2xsYWJvcmF0aW9uLiANCg0KMjAwMDpbVVNdW0dlb1BvbGl0aWNzXSBvdmVydGhyb3cgb2YgU2xvYm9kYW4gTWlsb8WhZXZpxIcuIChVUydzIGludm9sdmVtZW50IGluIHJlZ2ltZSBjaGFuZ2UpDQoyMDAwOiBbR2VvUG9saXRpY3NdW01pbGl0YXJ5XVtFY29ub21pY3NdIFRoZSBVUyBEb2xsYXIgaG9sZHMgYSA3MiUgc2hhcmUgb2YgYWxsIGdsb2JhbCBjdXJyZW5jeSByZXNlcnZlcyBbWzE2OjQyXShodHRwOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dllKcmkxZU5SeWMmdD0xMDAyKV0uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdIDI2IEFwcmlsIDIwMDA6IHRoZSBHZXJtYW4gdGVhbSBvcGVyYXRpbmcgdGhlIG1hc3Mgc3BlY3Ryb21ldGVyIG9uIE5BU0EncyBTdGFyZHVzdCBtaXNzaW9uIGFubm91bmNlZCB0aGUgZGV0ZWN0aW9uIG9mIHZlcnkgbGFyZ2Ugb3JnYW5pYyBtb2xlY3VsZXMgaW4gaW50ZXJzdGVsbGFyIHNwYWNlLiBOb25iaW9sb2dpY2FsIHNvdXJjZXMgZm9yIG9yZ2FuaWMgbW9sZWN1bGVzIHNvIGxhcmdlIGFyZSBub3Qga25vd24uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdMTkgT2N0b2JlciAyMDAwLCBhIHRlYW0gb2YgYmlvbG9naXN0cyBhbmQgYSBnZW9sb2dpc3QgYW5ub3VuY2VkIHRoZSByZXZpdmFsIG9mIGJhY3RlcmlhIHRoYXQgYXJlIDI1MCBtaWxsaW9uIHllYXJzIG9sZCwgc3RyZW5ndGhlbmluZyB0aGF0IGNhc2UgdGhhdCBiYWN0ZXJpYWwgc3BvcmVzIGNhbiBiZSBpbW1vcnRhbC4NCjEzIERlY2VtYmVyIDIwMDA6IGEgTkFTQSB0ZWFtIGRlbW9uc3RyYXRlZCB0aGF0IHRoZSBtYWduZXRvc29tZXMgaW4gTWFycyBtZXRlb3JpdGUgQUxIIDg0MDAxIGFyZSBiaW9sb2dpY2FsLg0KMjAwMDpbUmVzZWFyY2hdW1NwYWNlXSBNaWxlaWtvd3NreSBDLCBDdWNpbm90dGEgRkEsIFdpbHNvbiBKVywgR2xhZG1hbiBCLCBIb3JuZWNrIEcsIExpbmRlZ3JlbiBMLCBNZWxvc2ggSiwgUmlja21hbiBILCBWYWx0b25lbiBNLCBaaGVuZyBKUS4gTmF0dXJhbCB0cmFuc2ZlciBvZiB2aWFibGUgbWljcm9iZXMgaW4gc3BhY2UuIEljYXJ1cyAyMDAwLCAxNDU6Mzkx4oCTNDI3LiBbRE9JXSBbUHViTWVkXSBbR29vZ2xlIFNjaG9sYXJdDQoyMDAwOltTcGFjZVhdIFMvMjAwMCAoOTApIDEgTW9vbiBEaXNjb3ZlcmVyOiBXaWxsaWFtIEouIE1lcmxpbmUgT3JiaXRzOiA5MCBBbnRpb3BlIEFic29sdXRlIG1hZ25pdHVkZTogOS4wMg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gZGVtb25zdHJhdGVkIFNob3LigJlzIGFsZ29yaXRobSBvbiBhIDUtcXViaXQgTk1SIHF1YW50dW0gY29tcHV0ZXIsIGZhY3RvcmluZyB0aGUgbnVtYmVyIDE1Lg0KMjAwMDogQXQgYWdlIDE0IGFuZCBpbiBjbGFzcyA4dGgsIEFhcm9uIFN3YXJ0eiBiZWNhbWUgYSBtZW1iZXIgb2YgdGhlIHdvcmtpbmcgZ3JvdXAgdGhhdCBhdXRob3JlZCB0aGUgUlNTIDEuMCB3ZWIgc3luZGljYXRpb24gc3BlY2lmaWNhdGlvbi4NCjIwMDA6IE1ha2VteVRyaXANCjIwMDAgKEphbiAxNCk6W0phY2tdIEthaG8gTmFhLi4uIFB5YWFyIEhhaQ0KMjAwMCAoRmViKTogSW5kaWFuIFJhaWx3YXlzIHdlYiBzaXRlIGkuZS4gaHR0cDovL2luZGlhbnJhaWx3YXlzLmdvdi5pbi8gd2FzIGRlcGxveWVkIGJ5IENSSVMuDQoyMDAwIChNYXIpOltCb29rXSBNYWxjb2xtIEdsYWR3ZWxsJ3MgZGVidXQgYm9vaywgVGhlIFRpcHBpbmcgUG9pbnQ6IEhvdyBMaXR0bGUgVGhpbmdzIENhbiBNYWtlIGEgQmlnIERpZmZlcmVuY2UuIA0KQmxpbms6IFRoZSBQb3dlciBvZiBUaGlua2luZyBXaXRob3V0IFRoaW5raW5nICgyMDA1LCBKYW4gMTEpOyANCk91dGxpZXJzOiBUaGUgU3Rvcnkgb2YgU3VjY2VzcyAoMjAwOCwgTm92IDE4KTsgDQpXaGF0IHRoZSBEb2cgU2F3OiBBbmQgT3RoZXIgQWR2ZW50dXJlcyAoMjAwOSwgT2N0IDIwKTsgDQpEYXZpZCBhbmQgR29saWF0aDogVW5kZXJkb2dzLCBNaXNmaXRzLCBhbmQgdGhlIEFydCBvZiBCYXR0bGluZyBHaWFudHMgKDIwMTMsIE9jdCAxKQ0KVGFsa2luZyB0byBTdHJhbmdlcnM6IFdoYXQgV2UgU2hvdWxkIEtub3cgYWJvdXQgdGhlIFBlb3BsZSBXZSBEb24ndCBLbm93ICgyMDE5KQ0KMjAwMCAoQXByIDEpOltCb29rXSBSb2JlcnQgS2l5b3Nha2kgJiBTaGFyb24gTGVjaHRlcidzIFJpY2ggRGFkIFBvb3IgRGFkLg0KMjAwMCAoQXByIDEpOltUZWNobm9sb2d5XVtSZXNlYXJjaF0gIldoeSBUaGUgRnV0dXJlIERvZXNuJ3QgTmVlZCBVcyIgaXMgYW4gYXJ0aWNsZSB3cml0dGVuIGJ5IEJpbGwgSm95IGluIHRoZSBBcHJpbCAyMDAwIGlzc3VlIG9mIFdpcmVkIG1hZ2F6aW5lLiBJbiB0aGUgYXJ0aWNsZSwgaGUgYXJndWVzIHRoYXQgIk91ciBtb3N0IHBvd2VyZnVsIDIxc3QtY2VudHVyeSB0ZWNobm9sb2dpZXPigJRyb2JvdGljcywgZ2VuZXRpYyBlbmdpbmVlcmluZywgYW5kIG5hbm90ZWNo4oCUYXJlIHRocmVhdGVuaW5nIHRvIG1ha2UgaHVtYW5zIGFuIGVuZGFuZ2VyZWQgc3BlY2llcy4iIA0KMjAwMCAoSnVuIDI2KTpbTXVzaWNdICJZZWxsb3ciIGlzIGEgc29uZyBieSB0aGUgQnJpdGlzaCByb2NrIGJhbmQgQ29sZHBsYXkuIFRoZSBiYW5kIHdyb3RlIHRoZSBzb25nIGFuZCBjby1wcm9kdWNlZCBpdCB3aXRoIEJyaXRpc2ggcmVjb3JkIHByb2R1Y2VyIEtlbiBOZWxzb24gZm9yIHRoZWlyIGRlYnV0IGFsYnVtLCBQYXJhY2h1dGVzICgyMDAwKS4gVGhlIHNvbmcgd2FzIHJlY29yZGVkIGluIE1hcmNoIDIwMDAgYW5kIHJlbGVhc2VkIG9uIDI2IEp1bmUgdGhhdCBzYW1lIHllYXIuDQoyMDAwIChTZXApOiBBbWF6b24ncyBKZWZmIEJlem9zIGZvdW5kZWQuDQoyMDAwIChTZXApOltDcmltZV1bSW5kaWFdIENoaG90YSBTaGFrZWVsJ3MgYXR0YWNrIG9uIFJhamFuIGluIGhpcyBCYW5na29rIGhvdGVsIHJvb20uDQoyMDAwIChTZXApOiBSYWlsVGVsIENvcnBvcmF0aW9uIG9mIEluZGlhIEx0ZC4gZm91bmRlZCBhbmQgSFEnZCBhdCAxNDMsIEluc3RpdHV0aW9uYWwgQXJlYSwgU2VjdG9yLTQ0LCBHdXJnYW9uLCBIYXJ5YW5hLCBJbmRpYS4gSXQgaXMgYSBNaW5pcmF0bmEgZW50ZXJwcmlzZSBvZiBHb3Zlcm5tZW50IG9mIEluZGlhIGZvY3VzaW5nIG9uIHByb3ZpZGluZyBicm9hZGJhbmQgYW5kIFZQTiBzZXJ2aWNlcy4NCjIwMDAgKFNlcCAxNyk6IFtHZW9Qb2xpdGljc10gVGhlIGlkZWEgb2YgYW4gQXNpYSBDb29wZXJhdGlvbiBEaWFsb2d1ZSAoQUNEKSB3YXMgcmFpc2VkIGF0IHRoZSBGaXJzdCBJbnRlcm5hdGlvbmFsIENvbmZlcmVuY2Ugb2YgQXNpYW4gUG9saXRpY2FsIFBhcnRpZXMgKGhlbGQgaW4gTWFuaWxhIGJldHdlZW4gMTfigJMyMCBTZXB0ZW1iZXIgMjAwMCkgYnkgU3VyYWtpYXJ0IFNhdGhpcmF0aGFpLCB0aGVuIGRlcHV0eSBsZWFkZXIgb2YgdGhlIG5vdyBkZWZ1bmN0IFRoYWkgUmFrIFRoYWkgUGFydHksIG9uIGJlaGFsZiBvZiBoaXMgcGFydHkgbGVhZGVyLCBUaGFrc2luIFNoaW5hd2F0cmEsIHRoZW4gUHJpbWUgTWluaXN0ZXIgb2YgVGhhaWxhbmQuIEl0IHdhcyBzdWdnZXN0ZWQgdGhhdCBBc2lhIGFzIGEgY29udGluZW50IHNob3VsZCBoYXZlIGl0cyBvd24gZm9ydW0gdG8gZGlzY3VzcyBBc2lhLXdpZGUgY29vcGVyYXRpb24uIEFmdGVyd2FyZHMsIHRoZSBpZGVhIG9mIHRoZSBBQ0Qgd2FzIGZvcm1hbGx5IHB1dCBmb3J3YXJkIGR1cmluZyB0aGUgMzR0aCBBU0VBTiBGb3JlaWduIE1pbmlzdGVycyBNZWV0aW5nIGluIEhhbm9pLCAyM+KAkzI0IEp1bHkgMjAwMSBhbmQgYXQgdGhlIEFTRUFOIEZvcmVpZ24gTWluaXN0ZXJzIFJldHJlYXQgaW4gUGh1a2V0LCAyMOKAkzIxIEZlYnJ1YXJ5IDIwMDIuDQoyMDAwIChPY3QgNCk6W011c2ljXSBGb3JtZWQgaW4gMTk5NiwgTGlua2luIFBhcmsgcm9zZSB0byBpbnRlcm5hdGlvbmFsIGZhbWUgd2l0aCB0aGVpciBkZWJ1dCBzdHVkaW8gYWxidW0sIEh5YnJpZCBUaGVvcnkuIEZvdXIgc2luZ2xlcyB3ZXJlIHJlbGVhc2VkIGZyb20gSHlicmlkIFRoZW9yeTogIk9uZSBTdGVwIENsb3NlciIsICJJbiB0aGUgRW5kIiwgIkNyYXdsaW5nIiBhbmQgIlBhcGVyY3V0IiwgYWxsIG9mIHRoZW0gYmVpbmcgcmVzcG9uc2libGUgZm9yIGxhdW5jaGluZyBMaW5raW4gUGFyayBpbnRvIG1haW5zdHJlYW0gcG9wdWxhcml0eS4gV2hpbGUgIkluIHRoZSBFbmQiIHdhcyB0aGUgbW9zdCBzdWNjZXNzZnVsIG9mIHRoZSBmb3VyLCBhbGwgb2YgdGhlIHNpbmdsZXMgaW4gdGhlIGFsYnVtIHJlbWFpbiBzb21lIG9mIHRoZSBiYW5kJ3MgbW9zdCBzdWNjZXNzZnVsIHNvbmdzIHRvIGRhdGUuDQoyMDAwIChOb3YgOSk6IGZvcm1hdGlvbiBvZiBVdHRhcmFraGFuZCBhcyBVdHRhcmFuY2hhbCAyMDAwIChKdW4gOSk6IEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQWN0LCAyMDAwLiBUaGUgYmlsbCB3YXMgcGFzc2VkIGluIHRoZSBidWRnZXQgc2Vzc2lvbiBvZiAyMDAwIGFuZCBzaWduZWQgYnkgUHJlc2lkZW50IEsuIFIuIE5hcmF5YW5hbiBvbiA5IE1heSAyMDAwLiBUaGUgYmlsbCB3YXMgZmluYWxpc2VkIGJ5IGdyb3VwIG9mIG9mZmljaWFscyBoZWFkZWQgYnkgdGhlbiBNaW5pc3RlciBvZiBJbmZvcm1hdGlvbiBUZWNobm9sb2d5LCBQcmFtb2QgTWFoYWphbi4NCjIwMDA6IGZvcm1hdGlvbiBvZg0KMjAwMDogSmFpc2gtZS1Nb2hhbW1lZCAobGl0ZXJhbGx5ICJUaGUgQXJteSBvZiBNdWhhbW1hZCIsIEplTSkgZm91bmRlZCBhdCBCYWhhd2FscHVyLCBQdW5qYWIsIFBha2lzdGFuLg0KMjAwMDogQ2hpbmEncyBCZWlEb3UgbmF2aWdhdGlvbiB0ZXN0IHN5c3RlbSBzdGFydHMuDQoyMDAwOiBGaXNlcnYgaGFkIGFjcXVpcmVkIG1vcmUgdGhhbiA5MCBidXNpbmVzc2VzLiBUaGUgbnVtYmVyIG9mIGVtcGxveWVlcyBncmV3IGZyb20gMjY0IHRvIDE0LDAwMC4gRmlzZXJ2IHdhcyBhbiBpbmR1c3RyeSBsZWFkZXIsIHdpdGggcmV2ZW51ZSB0aGF0IGluY3JlYXNlZCBmcm9tICQyMSBtaWxsaW9uIHRvICQxLjQgYmlsbGlvbiBpbiAxNSB5ZWFycy4NCjIwMDAgKERlYyA4KTpbR2FtaW5nXSBQcm9qZWN0IEkuRy5JLiBpcyBhIHRhY3RpY2FsIGZpcnN0LXBlcnNvbiBzaG9vdGVyIHZpZGVvIGdhbWUuIEl0IHdhcyBkZXZlbG9wZWQgYnkgSW5uZXJsb29wIFN0dWRpb3MgYW5kIHJlbGVhc2VkIGluIERlY2VtYmVyIDIwMDAgYnkgRWlkb3MgSW50ZXJhY3RpdmUuIFRoZSBnYW1lIHJlY2VpdmVkIG1peGVkIHJldmlld3MgZHVlIHRvIHNob3J0Y29taW5ncyBpbmNsdWRpbmcgYSBwb29ybHkgcHJvZ3JhbW1lZCBBLkkuLCBsYWNrIG9mIGEgbWlkLWdhbWUgc2F2ZSBvcHRpb24sIGFuZCB0aGUgbGFjayBvZiBtdWx0aXBsYXllciBmZWF0dXJlcy4gSG93ZXZlciBpdCB3YXMgcHJhaXNlZCBmb3IgaXRzIHNvdW5kIGRlc2lnbiBhbmQgZ3JhcGhpY3MsIHRoYW5rcyBpbiBwYXJ0IHRvIGl0cyB1c2Ugb2YgYSBwcm9wcmlldGFyeSBnYW1lIGVuZ2luZSB0aGF0IHdhcyBwcmV2aW91c2x5IHVzZWQgaW4gSW5uZXJsb29wJ3MgSm9pbnQgU3RyaWtlIEZpZ2h0ZXIuDQoyMDAwIChEZWMgMjEpOltKYWNrXSBSYWp1IENoYWNoYSByZWxlYXNlZC4NCjIwMDA6IFtCdXNpbmVzc11bRmluYW5jZV1bQ29ycG9yYXRlXVtJbmRpYV0gUklMIHBpbG90ZWQgd29ybGQncyBsYXJnZXN0IHBldHJvbGV1bSByZWZpbmVyeSBhdCBKYW1uYWdhciwgR3VqYXJhdCwgcmVmaW5pbmcgMS4yNE1uIGJhcnJlbHMvZGF5Lg0KMjAwMDpbQ3JpbWVdW0luZGlhXSBQb2xpY2UgZW5jb3VudGVycyBpbiBNdW1iYWkuIE1vc3QgY3JpbWluYWxzIGZsZWVpbmcgdG8gQ2FsY3VsdHRhLiBBZnRhYiBCaGF0a2kgZGVzdGFiaWxpc2UgdGhlIGVjb25vbXkgYnkgc3ByZWFkaW5nIGZha2UgY3VycmVuY3kgbm90ZXMgcHJpbnRlZCBieSBJU0kgZnVuY3Rpb25hcmllcywgYW5kIHR3bywgc2VuZCBtZXJjZW5hcmllcyB0byBjb25kdWN0IGFiZHVjdGlvbnMgYW5kIHRlcnJvcmlzdCBhdHRhY2tzLg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBUZWNobmljYWwgVW5pdmVyc2l0eSBvZiBNdW5pY2ggKDUgcXViaXQpOyBMb3MgQWxhbW9zIE5hdGlvbmFsIExhYiAoNyBxdWJpdHMpDQoyMDAwOkluIDIwMDAsIFRhdGEgVGVhIGFjcXVpcmVkIHRoZSBUZXRsZXkgVGVhIENvbXBhbnkgZm9yICQ0MDcgbWlsbGlvbi4gT3RoZXIgbm90YWJsZSBhY3F1aXNpdGlvbnMgaW5jbHVkZSBOYXRTdGVlbCAoMjAwNCksIEJydW5uZXIgTW9uZCAoMjAwNSksIGFuZCBFaWdodCBPJ0Nsb2NrIENvZmZlZSAoMjAwNikuIA0KMjAwMDogQmlybGEgYWNxdWlyZWQgSW5kaWFuIEFsdW1pbnVtIENvbXBhbnkgKElOREFMKS4gDQoyMDAwOiBTYXR5YSBOYXJheWFuYSBHb2Vua2Egd29ya2VkIGFzIGFuIGludGVybmF0aW9uYWwgYnVzaW5lc3NtYW4gYmFzZWQgaW4gTXlhbm1hciBhbmQgSW5kaWEgZm9yIGEgbGFyZ2UgcGFydCBvZiBoaXMgbGlmZS4gSGUgd2FzIGEga2V5bm90ZSBzcGVha2VyIG9uIHRoZSBzdWJqZWN0IG9mIFNwaXJpdHVhbGl0eSBpbiBCdXNpbmVzcyBhdCB0aGUgMzB0aCBXb3JsZCBFY29ub21pYyBGb3J1bSBpbiBEYXZvcywgU3dpdHplcmxhbmQgYmV0d2VlbiAyNiBKYW4gYW5kIDIgRmViIDIwMDAuIFR3byB5ZWFycyBsYXRlciBoZSBjb25kdWN0ZWQgdGhlIGZpcnN0IDEwLWRheSBjb3Vyc2UgaW4gVmlwYXNzYW5hIE1lZGl0YXRpb24gZXNwZWNpYWxseSBmb3IgYnVzaW5lc3MgZXhlY3V0aXZlcyBhbmQgZ292ZXJubWVudCBvZmZpY2lhbHMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAyMjUgeWVhcnMgb2YgSW5kZXBlbmRlbnQgVVNBIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIA0KDQoyMDAxOltVU11bR2VvUG9saXRpY3NdIGludmFzaW9uIG9mIEFmZ2hhbmlzdGFuLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMjAwMTpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgU2hhbmdoYWkgQ29vcGVyYXRpb24gT3JnYW5pc2F0aW9uIChTQ08pIGlzIGEgRXVyYXNpYW4gcG9saXRpY2FsLCBlY29ub21pYywgaW50ZXJuYXRpb25hbCBzZWN1cml0eSBhbmQgZGVmZW5jZSBvcmdhbml6YXRpb24gb2YgdGVuIG1lbWJlciBzdGF0ZXMuIEl0IHdhcyBlc3RhYmxpc2hlZCBpbiAyMDAxIGJ5IHRoZSBQZW9wbGUncyBSZXB1YmxpYyBvZiBDaGluYSwgS2F6YWtoc3RhbiwgS3lyZ3l6c3RhbiwgUnVzc2lhLCBhbmQgVGFqaWtpc3RhbiBhbmQgVXpiZWtpc3Rhbi4gSW4gSnVuZSAyMDE3LCBpdCBleHBhbmRlZCB0byBlaWdodCBzdGF0ZXMsIHdpdGggSW5kaWEgYW5kIFBha2lzdGFuLiBJcmFuIGpvaW5lZCB0aGUgZ3JvdXAgaW4gSnVseSAyMDIzLCBhbmQgQmVsYXJ1cyBpbiBKdWx5IDIwMjQuIFNldmVyYWwgY291bnRyaWVzIGFyZSBlbmdhZ2VkIGFzIG9ic2VydmVycyBvciBkaWFsb2d1ZSBwYXJ0bmVycy4gRm91bmRlcnM6IENoaW5hLCBSdXNzaWEsIEthemFraHN0YW4sIFV6YmVraXN0YW4sIEt5cmd5enN0YW4sIFRhamlraXN0YW47IEhlYWRxdWFydGVyczogQmVpamluZywgQ2hpbmE7IEZvdW5kZWQ6IDE1IEp1bmUgMjAwMQ0KMjAwMTpbQnVzaW5lc3NdIDIwMDHigJMyMDA1OiBIRlQgZXhlY3V0aW9uIHRpbWVzIGRlY3JlYXNlZCBmcm9tIHNldmVyYWwgc2Vjb25kcyB0byBtaWxsaXNlY29uZHMuIChIRlQpDQoyMDAxOltDb21wdXRpbmddW1F1YW50dW1dICBJQk0gaW1wbGVtZW50ZWQgR3JvdmVy4oCZcyBhbGdvcml0aG0gb24gYSA3LXF1Yml0IE5NUiBxdWFudHVtIGNvbXB1dGVyLCBmaW5kaW5nIGEgbWFya2VkIGl0ZW0gaW4gYSBkYXRhYmFzZSBvZiA0IGVudHJpZXMuDQoyMDAxOiBMaWZlIG9mIFBpIGlzIGEgQ2FuYWRpYW4gcGhpbG9zb3BoaWNhbCBub3ZlbCBieSBZYW5uIE1hcnRlbCBwdWJsaXNoZWQuIFRoZSBwcm90YWdvbmlzdCBpcyBQaXNjaW5lIE1vbGl0b3IgIlBpIiBQYXRlbCwgYW4gSW5kaWFuIGJveSBmcm9tIFBvbmRpY2hlcnJ5IHdobyBleHBsb3JlcyBpc3N1ZXMgb2Ygc3Bpcml0dWFsaXR5IGFuZCBtZXRhcGh5c2ljcyBmcm9tIGFuIGVhcmx5IGFnZS4gSGUgc3Vydml2ZXMgMjI3IGRheXMgYWZ0ZXIgYSBzaGlwd3JlY2sgd2hpbGUgc3RyYW5kZWQgb24gYSBsaWZlYm9hdCBpbiB0aGUgUGFjaWZpYyBPY2VhbiB3aXRoIGEgQmVuZ2FsIHRpZ2VyIHdoaWNoIHJhaXNlcyBxdWVzdGlvbnMgYWJvdXQgdGhlIG5hdHVyZSBvZiByZWFsaXR5IGFuZCBob3cgaXQgaXMgcGVyY2VpdmVkIGFuZCB0b2xkLjtTZXZlbiBTdG9yaWVzICgxOTkzKQ0KMjAwMTpbQ3JpbWVdW0luZGlhXSBDaGhvdGEgUmFqYW4ncyBhc3NvY2lhdGVzIHRyYWNrZWQgZG93biBhbmQgc2hvdCBkZWFkIGhvdGVsaWVyIFZpbm9kIGluIE11bWJhaSwgYXMgd2VsbCBhcyBTdW5pbCBTb2FucyDigJMgYW5vdGhlciBEYXdvb2QgYXNzb2NpYXRlLg0KMjAwMSAoSmFuIDEpOltCb29rXSBHcmVnIE1jS2Vvd24ncyBFc3NlbnRpYWxpc206IFRoZSBEaXNjaXBsaW5lZCBQdXJzdWl0IG9mIExlc3MNCjIwMDEgKEphbiAxKTpbQm9va10gQnJpYW4gVHJhY3kncyBFYXQgVGhhdCBGcm9nIQ0KMjAwMTogVGhlIEFyZHVpbm8gcHJvamVjdCBzdGFydGVkIGF0IHRoZSBJbnRlcmFjdGlvbiBEZXNpZ24gSW5zdGl0dXRlIEl2cmVhIChJRElJKSBpbiBJdnJlYSwgSXRhbHkuIEF0IHRoYXQgdGltZSwgdGhlIHN0dWRlbnRzIHVzZWQgYSBCQVNJQyBTdGFtcCBtaWNyb2NvbnRyb2xsZXIgYXQgYSBjb3N0IG9mICQxMDAsIGEgY29uc2lkZXJhYmxlIGV4cGVuc2UgZm9yIG1hbnkgc3R1ZGVudHMuDQoyMDAxIChBcHIgNHRoKTogQ2hhcmxlcyBNLiBWZXN0LCB0aGUgdGhlbiBQcmVzaWRlbnQgb2YgTUlUIGFubm91bmNlZCBPcGVuQ291cnNlV2FyZSAoT0NXKSBwdWJsaWNpemluZyBhbGwgb2YgaXRzIDIsMDAwIGNvdXJzZXMgIGF0IHRoZSBlc3RpbWF0ZWQgY29zdCBvZiAkMTAwIG1pbGxpb24gKG9uIGFuIGF2Zy4sIGEgTUlUIHN0dWRlbnRzIHBheXMgYXJvdW5kICQyNiwwMDAgYXMgb2ZmbGluZSB0dWl0aW9uIGZlZSkNCjIwMDE6IFVTIGludmFkZWQgQWZnaGFuaXN0YW4gaW4gcmVzcG9uc2UgdG8gOS8xMSBhdHRhY2tzLiBPZmZpY2lhbGx5LCBJdCBoYXMgYmVjb21lIHRoZSBsb25nZXN0IHdhciBpbiBBbWVyaWNhbiBoaXN0b3J5Lg0KMjAwMTogaVBvZCBieSBUb255IEZhZGVsbA0KMjAwMSAoSnVuIDE1KTpbSmFja10gR2FkYXI6IEVrIFByZW0gS2F0aGE7IExhZ2FhbjogT25jZSBVcG9uIGEgVGltZSBpbiBJbmRpYQ0KMjAwMSAoU2VwIDExKTogOS8xMSBUZXJyb3Jpc3QgYXR0YWNrcy4gVGhlIFNlcHRlbWJlciAxMSBvciA5LzExLCBhdHRhY2tzIHdlcmUgYSBzZXJpZXMgb2YgZm91ciBjb29yZGluYXRlZCB0ZXJyb3Jpc3QgYXR0YWNrcyBieSB0aGUgSXNsYW1pYyB0ZXJyb3Jpc3QgZ3JvdXAgYWwtUWFlZGEgb24gdGhlIFVuaXRlZCBTdGF0ZXMgb24gdGhlIG1vcm5pbmcgb2YgVHVlc2RheSwgU2VwIDExLiBUaGUgbG9zcyBvZiBsaWZlIHdhcyBlc3RpbWF0ZWQgYXQganVzdCB1bmRlciAzLDAwMC4gVGhlIGV2ZW50IGNoYW5nZWQgQW1lcmljYW4gZm9yZWlnbiBwb2xpY3kuIEl0IHdhcyBhIG1vdGl2YXRpbmcgZmFjdG9yIGJlaGluZCB0aGUgY29udHJvdmVyc2lhbCBpbnZhc2lvbiBvZiBJcmFxIGFuZCBsZWQgdG8gYSDigJh3YXIgb24gdGVycm9y4oCZIHN5bWJvbGlzZWQgYnkgR3VhbnRhbmFtbyBCYXkgYW5kIGEgZGViYXRlIG92ZXIgdGhlIGp1c3RpZmljYXRpb24gb2YgdG9ydHVyZS4NCjIwMDEgKE9jdCA3KTpbR2VvUG9saXRpY3NdIFVuaXRlZCBTdGF0ZXMgaW52YXNpb24gb2YgQWZnaGFuaXN0YW46IEluIGxhdGUgMjAwMSwgdGhlIFVuaXRlZCBTdGF0ZXMgYW5kIGl0cyBjbG9zZSBhbGxpZXMgaW52YWRlZCBBZmdoYW5pc3RhbiBhbmQgdG9wcGxlZCB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50LiBUaGUgaW52YXNpb24ncyBzdGF0ZWQgYWltcyB3ZXJlIHRvIGRpc21hbnRsZSBhbC1RYWVkYSwgd2hpY2ggaGFkIGV4ZWN1dGVkIHRoZSBTZXB0ZW1iZXIgMTEgYXR0YWNrcywgYW5kIHRvIGRlbnkgaXQgYSBzYWZlIGJhc2Ugb2Ygb3BlcmF0aW9ucyBpbiBBZmdoYW5pc3RhbiBieSByZW1vdmluZyB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50IGZyb20gcG93ZXIuIERlYyA3LCAyMDAxIG9ud2FyZCBzdGFydGVkIFdhciBpbiBBZmdoYW5pc3Rhbi4NCjIwMDEgKE9jdCAxNik6W0Jvb2tdIE1jS2luc2V5IFJlc2VhcmNoZXIgSmFtZXMgQy4gQ29sbGlucycgR29vZCBUbyBHcmVhdDogV2h5IFNvbWUgQ29tcGFuaWVzIE1ha2UgdGhlIExlYXAuLi5BbmQgT3RoZXJzIERvbid0OyANCjIwMDEgKE5vdik6W0NyaW1lXVtJbmRpYV0gQWJkdWwgR2FmZmFyIGFsaWFzIENoaWtuYSBHYWZmYXIgY2F1Z2h0IGJ5IHRoZSBkZXRlY3RpdmUgZGVwYXJ0bWVudCBpbiBDYWxjdXR0YSANCjIwMDEgKEphbiAyKTogVGhlIG5vcnRoZXJuIGVsZWN0cmljYWwgZ3JpZCBjb2xsYXBzZWQgaW4gSW5kaWEuIEEgZmF1bHQgaW4gdGhlIHRyYW5zbWlzc2lvbiBzeXN0ZW0gaW4gdGhlIHN0YXRlIG9mIFV0dGFyIFByYWRlc2ggbGVkIHRvIGNhc2NhZGluZyBmYWlsdXJlIHRocm91Z2hvdXQgbm9ydGhlcm4gSW5kaWEgYWZmZWN0aW5nIDIzIGNyb3JlIHJlc2lkZW50cy4NCjIwMDE6IElWUlMgKCdJbnRlcmFjdGl2ZSBWb2ljZSBSZXNwb25zZSBTeXN0ZW0nKSBmb3IgdGVsZXBob25pYyBlbnF1aXJpZXMgYWJvdXQgdHJhaW5zIGludHJvZHVjZWQgaW4gc29tZSBzdGF0aW9ucy4NCjIwMDE6IE1hZGVFYXN5IGluY29ycG9yYXRlZCBhdCA0NC1BLzEsIEthbHUgU2FyYWksIE5lYXIgSGF1eiBLaGFzIE1ldHJvIFN0YXRpb24sIE5ldyBEZWxoaS0xMTAwMTYNCjIwMDE6IEFjYyB0byAyMDAxIGNlbnN1cywgMzAgbGFraHMgd2VyZSBpbW1pZ3JhdGVkIHRvIEluZGlhIGZyb20gQmFuZ2xhZGVzaCBhbG9uZSwgZm9sbG93ZWQgYnkgMTAgbGFraHMgZnJvbSBQYWtpc3RhbiBhbmQgNiBsYWtocyBmcm9tIE5lcGFsLg0KMjAwMSAoRGVjIDEzKTpbQ3JpbWVdW0luZGlhXSBUZXJyb3Jpc3QgYXR0YWNrIG9uIEluZGlhJ3MgUGFybGlhbWVudC4NCjIwMDE6IHRoZSBjdXN0b21lciBiYXNlIG9mIG1vYmlsZSBwaG9uZSBjb21wYW5pZXMgd2FzIDQgbWlsbGlvbi4NCjIwMDE6IEJlbmVmaXQgbGFubmVycywgVGV4YXMgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBIZWFsdGggQmVuZWZpdCBkaXZpc2lvbi4NCjIwMDE6IE5ldyBIb3Jpem9ucyB3YXMgaW5pdGlhbGx5IHNlbGVjdGVkIGZvciBmdW5kaW5nIGluIDIwMDEgYnV0IHdhcyBleGNsdWRlZCBmcm9tIHRoZSBOQVNBIDIwMDMgYnVkZ2V0LiBGdW5kaW5nIGZvciB0aGUgbWlzc2lvbiB3YXMgcmVpbnN0YXRlZCBhZnRlciBOZXcgSG9yaXpvbnMgd2FzIGxpc3RlZCBhcyBhIHRvcCBwcmlvcml0eSBpbiB0aGUgUGxhbmV0YXJ5IFNjaWVuY2UgRGVjYWRhbCBTdXJ2ZXkgb2YgMjAwM+jjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlallkllklklklklklklklklklklklklklklklklklklklklklklklklklklklkjjajlkasjdlajdlkajdlaj
+KAkzIwMDEuDQoxOTkzOiBBc2hvayBIYWxsIEdpcmwncyBSZXNpZGVudGlhbCBTY2hvb2wsIE1hamtoYWxpLg0KMTk5MzogQnkgdGhpcyB5ZWFyIHRoZXJlIHdlcmUgYXJvdW5kIDEwMCB3ZWItc2VydmVycyBhY3Jvc3MgdGhlIHdvcmxkLiAoQSByZXBvcnQgcHVibGlzaGVkIGluIGZpcnN0IGlzc3VlIG9mIFRoZSBXb3JsZCBXaWRlIFdlYiBOZXdzbGV0dGVyLCAxOTkzKQ0KMTk5MzogQUMgMy10aWVyIGNvYWNoZXMgJiBTbGVlcGVyIGNsYXNzIGFyZSBpbnRyb2R1Y2VkIGFwYXJ0IGZyb20gc2Vjb25kIGNsYXNzLg0KMTk5MzogR29JJ3MgRGlzdHJpY3QgUHJpbWFyeSBFZHVjYXRpb24gUHJvZ3JhbW1lIChEUEVQKSB3YXMgbGF1bmNoZWQsIHdpdGggYW4gYWltIG9mIGFjaGlldmluZyB0aGUgb2JqZWN0aXZlIG9mIHVuaXZlcnNhbCBwcmltYXJ5IGVkdWNhdGlvbi4gVGhpcyBwcm9ncmFtbWVkIGxhaWQgdGhlIGZvdW5kYXRpb25zIGZvciDgpLjgpLDgpY3gpLUg4KS24KS/4KSV4KWN4KS34KS+IOCkheCkreCkv+Ckr+CkvuCkqChFZHVjYXRpb24gZm9yIEFsbCBNb3ZlbWVudCkgYWltZWQgYXQgdGhlIHVuaXZlcnNhbGlzYXRpb24gb2YgZWxlbWVudGFyeSBlZHVjYXRpb24gbWFraW5nIGZyZWUgYW5kIGNvbXB1bHNvcnkgZWR1Y2F0aW9uIHRvIGNoaWxkcmVuIGJldHdlZW4gdGhlIGFnZXMgb2YgNiB0byAxNC4NCjE5OTM6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIHNwbGl0IHdpdGggRGF3b29kIGFuZCBmb3JtZWQgYW4gaW5kZXBlbmRlbnQgZ2FuZyB0aGF0IGZyZXF1ZW50bHkgY2xhc2hlZCB3aXRoIERhd29vZCdzIEQtQ29tcGFueS4NCjE5OTMgKEphbiA3KTpbQ3JpbWVdIFJpb3RzIHJlLXN0YXJ0ZWQgaW4gTXVtYmFpIGFuZCBsYXN0ZWQgZm9yIDIwIGRheXMuIFRoZSBJU0ksIHdoaWNoIGNvbnRyb2xsZWQgc2hpcHBpbmcgcm91dGVzIGZyb20gdGhlIEd1bGYgdG8gSW5kaWEncyB3ZXN0IGNvYXN0LCBkZW1hbmRlZCB0aGF0IHRoZSBtYWZpYSB0cmFuc3BvcnQgd2VhcG9ucyBhbmQgZXhwbG9zaXZlcyBpbnRvIEluZGlhIGluIHJldHVybiBmb3IgdGhlIHVzZSBvZiBQYWtpc3RhbidzIHdhdGVycy4gRGF3b29kIG1ldCB0aGVpciBJU0kgaGFuZGxlcnMgaW4gYSA1IHN0YXIgaG90ZWwgb2YgRHViYWkgaW4gSmFuIG9yIEZlYiBvZiAxOTkzLCB0aGVuIGNhbWUgdGhlIFJEWCB0aHJvdWdoIHRoZSBzYW1lIHBvcm91cyBhbmQgdW5jaGVja2VkIHNlYSByb3V0ZSB0aGF0IDI2LzExIGF0dGFja2VycyBzbGlwcGVkIGFjcm9zcyBhbmQgd3JlY2tlZCBtYXloZW0gaW4gTXVtYmFpLiBUaGUg4oCZOTMgYXR0YWNrcyB3ZXJlIGZpbmFsbHkgZXhlY3V0ZWQgaW4gbWFyY2ggdGhhdCBjbGFpbWVkIHNvbWUgMzAwIGlubm9jZW50IGxpdmVzLg0KMTk5MyAoTWFyIDYpOltQb2xpdHldW0luZGlhXSBTaGFyYWQgUGF3YXIgcmUtZWxlY2V0ZCBhcyBDTSBvZiBNSCBmb3IgMiB5ZWFycy4NCjE5OTMgKE1hciAxMik6W0NyaW1lXSBUaGUgMTk5MyBCb21iYXkgYm9tYmluZ3Mgd2VyZSBhIHNlcmllcyBvZiAxMiB0ZXJyb3Jpc3QgYm9tYmluZ3MgdGhhdCB0b29rIHBsYWNlIGluIEJvbWJheS4gVGhlIHNpbmdsZS1kYXkgYXR0YWNrcyByZXN1bHRlZCBpbiAyNTcgZmF0YWxpdGllcyBhbmQgMSw0MDAgaW5qdXJpZXMuIFRoZXJlIHdhcyBhbm90aGVyIHJhaWQgbmVhciBNYW5pc2ggbWFya2V0IHdoZXJlIGhhbmQgZ3JlbmFkZXMgd2VyZSByZWNvdmVyZWQuIEFmdGVyIGFub3RoZXIgdGlwIG9mZiBsZWQgdG8gZGlzY292ZXJ5IG9mIGEgaHVnZSBxdWFudGl0eSBvZiBSRFggZnJvbSBOYWdsYSBCdW5kZXIgb2ZmIEdob2RidW5kZXIgUm9hZCBpbiBUaGFuZS4g4oCcSW4gYWxsLCA1LDAwMCBraWxvZ3JhbXMgb2YgUkRYIHdhcyBicm91Z2h0IGludG8gTXVtYmFpIGFuZCB3ZSByZWNvdmVyZWQgMywzMDAga2lsb2dyYW1zIG9mIGl0IGluIGFsbCB0aGUgcmFpZHMs4oCdIHNheXMgQ2hhdWd1bGUuIFJlZHVjZWQgU2hvY2sgU2Vuc2l0aXZpdHkgKFJTUykgZXhwbG9zaXZlcywgc3VjaCBhcyBSU1MtUkRYLCB3aGljaCBjb3N0cyBhYm91dCBScy4gMSw1MDAtMiwwMDAgcGVyIGtnLiBBbmVlcyBjb250aW51ZWQgb3BlcmF0aW9uIG9mIEQtQ29tcGFueSB3aGljaCBpbmNsdWRlIGNvbnRyYWN0IGtpbGxpbmcsIGV4dG9ydGlvbiwgdGhlIGNpcmN1bGF0aW9uIG9mIGNvdW50ZXJmZWl0IGN1cnJlbmN5LCBhbmQgdGhlIHByb3Zpc2lvbiBvZiBhIHJhbmdlIG9mIGZyZWUtbGFuY2Ugc2VydmljZXMgdG8gdGVycm9yaXN0IGdyb3VwcyBhdCB0aGUgaW5zdGFuY2Ugb2YgUGFraXN0YW4ncyBJbnRlciBTZXJ2aWNlcyBJbnRlbGxpZ2VuY2UgKElTSSkuIEludGVycG9sIFJlZCBDb3JuZXIgbm90aWNlIGZvciBELUNvbXBhbnkuDQoxOTkzIChOb3YgMSk6IFRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGZvdW5kZWQuIEl0IGlzIGFuIGVjb25vbWljIGFuZCBwb2xpdGljYWwgcGFydG5lcnNoaXAgaW52b2x2aW5nIDI4IEV1cm9wZWFuIGNvdW50cmllcy4gSXQgYmVnYW4gYWZ0ZXIgV1cyIHRvIGZvc3RlciBlY29ub21pYyBjby1vcGVyYXRpb24sIHdpdGggdGhlIGlkZWEgdGhhdCBjb3VudHJpZXMgd2hpY2ggdHJhZGUgdG9nZXRoZXIgYXJlIG1vcmUgbGlrZWx5IHRvIGF2b2lkIGdvaW5nIHRvIHdhciB3aXRoIGVhY2ggb3RoZXIuDQoxOTkzIChOb3YgMyk6IFtHZW9Qb2xpdGljc10gVGhlIENvbW1vbiBNYXJrZXQgZm9yIEVhc3Rlcm4gYW5kIFNvdXRoZXJuIEFmcmljYSAoQ09NRVNBKSBpcyBhIHJlZ2lvbmFsIGVjb25vbWljIGNvbW11bml0eSBpbiBBZnJpY2Egd2l0aCB0d2VudHktb25lIG1lbWJlciBzdGF0ZXMgc3RyZXRjaGluZyBmcm9tIFR1bmlzaWEgdG8gRXN3YXRpbmkuIENPTUVTQSB3YXMgZm9ybWVkIGluIERlY2VtYmVyIDE5OTQsIHJlcGxhY2luZyBhIFByZWZlcmVudGlhbCBUcmFkZSBBcmVhIHdoaWNoIGhhZCBleGlzdGVkIHNpbmNlIDE5ODEuIE5pbmUgb2YgdGhlIG1lbWJlciBzdGF0ZXMgZm9ybWVkIGEgZnJlZSB0cmFkZSBhcmVhIGluIDIwMDAgKERqaWJvdXRpLCBFZ3lwdCwgS2VueWEsIE1hZGFnYXNjYXIsIE1hbGF3aSwgTWF1cml0aXVzLCBTdWRhbiwgWmFtYmlhIGFuZCBaaW1iYWJ3ZSksIHdpdGggUndhbmRhIGFuZCBCdXJ1bmRpIGpvaW5pbmcgdGhlIEZUQSBpbiAyMDA0LCB0aGUgQ29tb3JvcyBhbmQgTGlieWEgaW4gMjAwNiwgU2V5Y2hlbGxlcyBpbiAyMDA5IGFuZCBUdW5pc2lhIGFuZCBTb21hbGlhIGluIDIwMTguDQoxOTkzIChEZWMgMjApOiBPSENIUiBmb3JtZWQuIFRoZSBPZmZpY2Ugb2YgdGhlIFVuaXRlZCBOYXRpb25zIEhpZ2ggQ29tbWlzc2lvbmVyIGZvciBIdW1hbiBSaWdodHMgKE9IQ0hSKSwgYSBVbml0ZWQgTmF0aW9ucyBhZ2VuY3kgdGhhdCB3b3JrcyB0byBwcm9tb3RlIGFuZCBwcm90ZWN0IHRoZSBodW1hbiByaWdodHMgdGhhdCBhcmUgZ3VhcmFudGVlZCB1bmRlciBpbnRlcm5hdGlvbmFsIGxhdyBhbmQgc3RpcHVsYXRlZCBpbiB0aGUgVW5pdmVyc2FsIERlY2xhcmF0aW9uIG9mIEh1bWFuIFJpZ2h0cyBvZiAxOTQ4Lg0KMTk5Mzp0aGUgMjR0aCBhbmQgbGFzdCBHTE9OQVNTIHNhdGVsbGl0ZSB3YXMgbGF1bmNoZWQgZm9ybWluZyB0aGUgd2hvbGUgbmF2aWdhdGlvbiBjb25zdGVsbGF0aW9uIHNpbWlsYXIgdG8gdGhhdCBvZiBVUydzIEdQUy4NCjE5OTM6IFNIQS0wIChhIGhhc2ggZnVuY3Rpb24pIHdhcyBwcm9wb3NlZCBieSBOSVNULCBNYXJ5bGFuZCwgVVNBIChGb3VuZGVkOiAxOTAxKS4gSXQgcHJvZHVjZXMgYSAxNjAtYml0IGhhc2ggdmFsdWUsIHRodXMgdGhlIGJydXRlLWZvcmNlIGNvbGxpc2lvbiBvciAgbmVhci1jb2xsaXNpb24gYXR0YWNrIHJlcXVpcmVzIE8oMl44MCkgY29tcHV0YXRpb24uIFdpdGhpbiA1IHllYXJzLCBpdCB3YXMgbWFkZSBjb2xsaXNpb24gYXR0YWNrZWQgYnkgQ2hhYmF1ZCBhbmQgSm91eCB3aXRoIHRoZSBhdHRhY2sgY29tcGxleGl0eSBvZiAyXjYxLg0KMTk5MzogW0NvYWxnYXRlIHNjYW1dIE9uIDIzcmQgQXByaWwgMjAxMywgdGhlIFN0YW5kaW5nIENvbW1pdHRlZSBvbiBDb2FsIGFuZCBTdGVlbCB0YWJsZWQgaW4gUGFybGlhbWVudCB0aGF0IGFsbCAxOTQgY29hbCBibG9ja3MgZGlzdHJpYnV0ZWQgYmV0d2VlbiAxOTkzIGFuZCAyMDA4IHdlcmUgYXVjdGlvbmVkIGluIGFuIHVuYXV0aG9yaXplZCBtYW5uZXIgYW5kIHRoZSBjb3VudHJ5IGxvc3QgUnMuMS44NiBsYWtoIGNyb3JlLi4gRm9ybWVyIFByaW1lIE1pbmlzdGVyIE1hbm1vaGFuIFNpbmdoLCBhbG9uZyB3aXRoIEt1bWFyIE1hbmdhbGFtIEJpcmxhIGFuZCBQLkMuIFBhcmFraCwgd2VyZSBhY2N1c2VkIGFuZCBzdW1tb25lZCBieSBhIHNwZWNpYWwgY291cnQuIFsyTCBDcm9yZV0uIENvbXB0cm9sbGVyIGFuZCBBdWRpdG9yIEdlbmVyYWwgb2YgSW5kaWEgdG9vayAyMCB5ZWFycyB0byBJRCBvbmUgb2YgdGhlIGJpZ2dlc3Qgc2NhbXMgaW4gSW5kaWFuIGhpc3RvcnkuDQoxOTkzOiBBZnRlciBQcmVzaWRlbnQgQmlsbCBDbGludG9uIHRvb2sgb2ZmaWNlIGluIDE5OTMsIGhvd2V2ZXIsIHRoZSBVLlMuIGVjb25vbXkgZW1iYXJrZWQgb24gYSBsb25nIGFuZCBzdHJvbmcgZXhwYW5zaW9uLCBtYWtpbmcgdGhlIDE5OTBzIGEgZ3JlYXQgZGVjYWRlIGZvciBBbWVyaWNhJ3MgbW9uZXksIG92ZXJhbGwuIA0KMTk5MzpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTW90aHJhKDE5OTIpDQoxOTkzOltTcGFjZV0gSGlwcGFyY29zLCBhIHNjaWVudGlmaWMgc2F0ZWxsaXRlIG9mIHRoZSBFdXJvcGVhbiBTcGFjZSBBZ2VuY3kgKEVTQSkgbGFzdGVkIGZvciA0IHllYXJzIGJlZm9yZSBnb2luZyBvdXQtb2Ytc2VydmljZS4NCjE5OTM6W1NwYWNlXVtSZXNlYXJjaF0gSW4gMTk5MywgRG9uIFBhZ2UgYXJndWVkIHRoYXQgaWYgYSBibGFjayBob2xlIHN0YXJ0cyBpbiBhIHB1cmUgcXVhbnR1bSBzdGF0ZSBhbmQgZXZhcG9yYXRlcyBjb21wbGV0ZWx5IGJ5IGEgdW5pdGFyeSBwcm9jZXNzLCB0aGUgdm9uIE5ldW1hbm4gZW50cm9weSBvZiB0aGUgSGF3a2luZyByYWRpYXRpb24gaW5pdGlhbGx5IGluY3JlYXNlcyBhbmQgdGhlbiBkZWNyZWFzZXMgYmFjayB0byB6ZXJvIHdoZW4gdGhlIGJsYWNrIGhvbGUgaGFzIGRpc2FwcGVhcmVkLiBUaGlzIGlzIGNhbGxlZCB0aGUgUGFnZSBjdXJ2ZS4NCjE5OTM6W0Jvb2tzXVtIaXN0b3J5XSBHcmVlbuKAmXMgRGljdGlvbmFyeSBvZiBTbGFuZyBpcyB0aGUgbGFyZ2VzdCBoaXN0b3JpY2FsIGRpY3Rpb25hcnkgb2YgRW5nbGlzaCBzbGFuZy4gV3JpdHRlbiBieSBKb25hdGhvbiBHcmVlbiBvdmVyIDE3IHllYXJzIGZyb20gMTk5MywgaXQgcmVhY2hlZCB0aGUgcHJpbnRlZCBwYWdlIGluIDIwMTAgaW4gYSB0aHJlZS12b2x1bWUgc2V0IGNvbnRhaW5pbmcgbmVhcmx5IDEwMCwwMDAgZW50cmllcyBzdXBwb3J0ZWQgYnkgb3ZlciA0MDAsMDAwIGNpdGF0aW9ucyBmcm9tIGMuIGFkIDEwMDAgdG8gdGhlIHByZXNlbnQgZGF5LiBUaGUgbWFpbiBmb2N1cyBvZiB0aGUgZGljdGlvbmFyeSBpcyB0aGUgY292ZXJhZ2Ugb2Ygb3ZlciA1MDAgeWVhcnMgb2Ygc2xhbmcgZnJvbSBjLiAxNTAwIG9ud2FyZHMuDQoxOTkzOltFbnZdW0Rpc2FzdGVyXSBTb3V0aCBBc2lhbiBtb25zb29uIGZsb29kcywgM2sgZGVhdGhzDQoxOTkzOltHZW9ncmFwaHldIFRoZSBsYXN0IG1ham9yIHNoaWZ0cyBpbiBFYXJ0aCdzIGF4aXMgd2VyZSBpbmZsdWVuY2VkIGJ5IGNsaW1hdGUgY2hhbmdlOiBhIDMxLjUtaW5jaCBzaGlmdCBiZXR3ZWVuIDE5OTMgYW5kIDIwMTAgd2FzIHByaW1hcmlseSBjYXVzZWQgYnkgZ3JvdW5kd2F0ZXIgcHVtcGluZywgYW5kIGEgY2hhbmdlIGluIHBvbGFyIGRyaWZ0IGRpcmVjdGlvbiBhcm91bmQgdGhlIDE5OTBzIHdhcyBsaW5rZWQgdG8gbWVsdGluZyBnbGFjaWVycyBhbmQgaWNlIHNoZWV0cyBkdWUgdG8gZ2xvYmFsIHdhcm1pbmcuIEVhcnRoJ3MgYXhpcyBhbHNvIHNoaWZ0ZWQgYnkgYWJvdXQgNi41IGluY2hlcyBpbiBNYXJjaCAyMDExIGFmdGVyIHRoZSBKYXBhbmVzZSBlYXJ0aHF1YWtlLCBjYXVzaW5nIHRoZSBwbGFuZXQgdG8gc3BpbiBzbGlnaHRseSBmYXN0ZXIuDQoxOTkzOltXaG9dIEluIDE5OTMsIEluZGlhIGNhbWUgaGVhcnRicmVha2luZ2x5IGNsb3NlIHRvIHdpbm5pbmcgaXRzIGZpcnN0IE1pc3MgVW5pdmVyc2UgY3Jvd24gd2l0aCB0aGUgc3R1bm5pbmcgYW5kIGdyYWNlZnVsIE5hbXJhdGEgU2hpcm9ka2FyLCB3aG8gaGFkIGVhcmxpZXIgd29uIHRoZSBGZW1pbmEgTWlzcyBJbmRpYSB0aXRsZS4gUmVwcmVzZW50aW5nIEluZGlhIGF0IHRoZSBNaXNzIFVuaXZlcnNlIHBhZ2VhbnQgaGVsZCBpbiBNZXhpY28gQ2l0eSwgTmFtcmF0YSB3YXMgYSBzdHJvbmcgY29udGVuZGVy4oCUZWxlZ2FudCBpbiBoZXIgZ293biwgcG9pc2VkIGluIGludGVydmlld3MsIGFuZCBhIGZhbiBmYXZvcml0ZS4gU2hlIGVhc2lseSBtYWRlIGl0IHRvIHRoZSBUb3AgNiwgYW5kIGhlciBjaGFuY2VzIG9mIHdpbm5pbmcgbG9va2VkIGluY3JlZGlibHkgaGlnaC4gQnV0IHRoZW4gY2FtZSB0aGUgZmluYWwgcXVlc3Rpb246IOKAnElmIHlvdSBjb3VsZCBiZSBib3JuIGFzIGFueSBoaXN0b3JpY2FsIGZpZ3VyZSwgd2hvIHdvdWxkIGl0IGJlIGFuZCB3aHk/4oCdIFdoaWxlIG90aGVyIGNvbnRlc3RhbnRzIG5hbWVkIGdsb2JhbCBpY29ucyBsaWtlIE1vdGhlciBUZXJlc2EgYW5kIFByaW5jZXNzIERpYW5hLCBOYW1yYXRhIGdhdmUgYW4gaG9uZXN0LCBwZXJzb25hbCBhbnN3ZXLigJRzaGUgc2FpZCBzaGUgd291bGQgYmUgYm9ybiBhcyBoZXJzZWxmIG9yIHNvbWVvbmUgY2xvc2UgdG8gaGVyLCBiZWNhdXNlIHNoZSBiZWxpZXZlZCBpbiBsaXZpbmcgbGlmZSB3aXRoIHRydXRoIGFuZCBpbmRpdmlkdWFsaXR5LiBJdCB3YXMgYSBiZWF1dGlmdWwsIGdyb3VuZGVkIGFuc3dlcuKAlGJ1dCBub3QgdGhlIGtpbmQgb2YgZ3JhbmQsIGlkZWFsaXN0aWMgcmVzcG9uc2UgdGhlIGp1ZGdlcyB3ZXJlIGV4cGVjdGluZy4gVGhhdCBvbmUgbW9tZW50IG9mIHRydXRoLCBtYW55IGJlbGlldmUsIGNvc3QgaGVyIHRoZSBjcm93biwgYW5kIEluZGlhIGhhZCB0byB3YWl0IGFub3RoZXIgeWVhciBiZWZvcmUgU3VzaG1pdGEgU2VuIGJyb3VnaHQgdGhlIE1pc3MgVW5pdmVyc2UgdGl0bGUgaG9tZSBpbiAxOTk0LiBTdGlsbCwgTmFtcmF0YeKAmXMgYW5zd2VyIGJlY2FtZSBpY29uaWPigJRub3QgYmVjYXVzZSBpdCB3b24sIGJ1dCBiZWNhdXNlIGl0IHdhcyByZWFsLCBtYXJraW5nIGEgcmFyZSBpbnN0YW5jZSB3aGVyZSBob25lc3R5IHN0b29kIHRhbGxlciB0aGFuIGRpcGxvbWFjeS4NCjE5OTM6W0F2aWF0aW9uXVtFeHRyZW1lXVtXaG9dIFRoZSBIZXJic3QgbWFuZXV2ZXIgd2FzIGZpcnN0IHN1Y2Nlc3NmdWxseSBwZXJmb3JtZWQgb24gQXByaWwgMjksIDE5OTMsIGJ5IGFuIFgtMzEgYWlyY3JhZnQuIE5hbWVkIGFmdGVyIFdvbGZnYW5nIEhlcmJzdCwgYSBkZXZlbG9wZXIgb2YgcG9zdC1zdGFsbCB0ZWNobm9sb2d5IGZvciBNZXNzZXJzY2htaXR0LULDtmxrb3ctQmxvaG0gKE1CQiksIHRoaXMsIHBvc3Qtc3RhbGwgbWFuZXV2ZXIgZW5hYmxlcyBhIGZpZ2h0ZXIgdG8gbWFrZSBhIHJhcGlkIDE4MMKwIHR1cm4gd2l0aGluIGEgbWluaW1hbCByYWRpdXMuIA0KDQoxOTk04oCTMTk5NTpbVVNdW0dlb1BvbGl0aWNzXSBvY2N1cGF0aW9uIG9mIEhhaXRpLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgRXVyb3BlYW4gRWNvbm9taWMgQXJlYSwgYWJicmV2aWF0ZWQgYXMgRUVBLCBjb25zaXN0cyBvZiB0aGUgTWVtYmVyIFN0YXRlcyBvZiB0aGUgRXVyb3BlYW4gVW5pb24gKEVVKSBhbmQgdGhyZWUgY291bnRyaWVzIG9mIHRoZSBFdXJvcGVhbiBGcmVlIFRyYWRlIEFzc29jaWF0aW9uIChFRlRBKSAoSWNlbGFuZCwgTGllY2h0ZW5zdGVpbiBhbmQgTm9yd2F5OyBleGNsdWRpbmcgU3dpdHplcmxhbmQpLiBUaGUgQWdyZWVtZW50IG9uIHRoZSBFRUEgZW50ZXJlZCBpbnRvIGZvcmNlIG9uIDEgSmFudWFyeSAxOTk0LiANCjE5OTQ6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEV1cm9wZWFuIEVjb25vbWljIEFyZWEgKEVFQSkgd2FzIGVzdGFibGlzaGVkIG9uIDEgSmFudWFyeSAxOTk0LiBUaGUgYWdyZWVtZW50IGxpbmtzIHRoZSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aHJlZSBFRlRBIHN0YXRlc+KAlEljZWxhbmQsIExpZWNodGVuc3RlaW4sIGFuZCBOb3J3YXnigJRpbnRvIGEgc2luZ2xlIGludGVybmFsIG1hcmtldCwgYWxsb3dpbmcgZm9yIHRoZSBmcmVlIG1vdmVtZW50IG9mIGdvb2RzLCBwZXJzb25zLCBzZXJ2aWNlcywgYW5kIGNhcGl0YWwuIA0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBOQUZUQSwgdGhlIE5vcnRoIEFtZXJpY2FuIEZyZWUgVHJhZGUgQWdyZWVtZW50LCB3YXMgYSAxOTk0IGFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzLCBDYW5hZGEsIGFuZCBNZXhpY28gdG8gZWxpbWluYXRlIHRyYWRlIGJhcnJpZXJzIGFuZCBwcm9tb3RlIGZyZWUgdHJhZGUgaW4gTm9ydGggQW1lcmljYS4gSXQgZmFjaWxpdGF0ZWQgdGhlIG1vdmVtZW50IG9mIGdvb2RzIGFuZCBzZXJ2aWNlcyBhbmQgZXN0YWJsaXNoZWQgYSBsYXJnZSB0cmFkZSBibG9jLiBJbiBKdWx5IDIwMjAsIE5BRlRBIHdhcyByZXBsYWNlZCBieSB0aGUgVW5pdGVkIFN0YXRlcy1NZXhpY28tQ2FuYWRhIEFncmVlbWVudCAoVVNNQ0EpLCB3aGljaCBtb2Rlcm5pemVkIGFuZCBlbmhhbmNlZCB0aGUgdHJlYXR5IGZvciBhIGNvbnRlbXBvcmFyeSBlY29ub215Lg0KMTk5NDpbUy5BZnJpY2FdW1NvY2lhbGlzbV0gRmlyc3QgZnJlZSBlbGVjdGlvbnMgaW4gU291dGggQWZyaWNhOyBOZWxzb24gTWFuZGVsYQ0KMTk5NDpbUmVzZWFyY2hdW3NwYWNlXSBDYXJsIFNhZ2FuIGNvbmNlZGVkIHRoYXQgdGhpcyBhcHByb2FjaCB3b3VsZCBub3Qgd29yayBiZWNhdXNlIHRoZSBhdG1vc3BoZXJlIG9mIFZlbnVzIGlzIGZhciBkZW5zZXIgKDkwIGJhcnMpIHRoYW4gd2hhdCB3YXMgdW5kZXJzdG9vZCBpbiAxOTYxIChhIGZldyBiYXJzKSwgbWVhbmluZyB0aGUgY2FyYm9uIHdvdWxkIGp1c3QgYmUgb3hpZGl6ZWQgYmFjayBpbnRvIENPMi4NCjE5OTQ6W0NvbXB1dGluZ11bUXVhbnR1bV0gUGV0ZXIgU2hvciBkaXNjb3ZlcmVkIGFuIGFsZ29yaXRobSAoU2hvcidzIGFsZ29yaXRobSkgdGhhdCBjb3VsZCBmYWN0b3IgbGFyZ2UgbnVtYmVycyBpbiBwb2x5bm9taWFsIHRpbWUgb24gYSBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCB3b3VsZCBicmVhayB0aGUgc2VjdXJpdHkgb2YgbWFueSBjcnlwdG9ncmFwaGljIHNjaGVtZXMuIA0KMTk5NDpbQ29tcHV0aW5nXVtRdWFudHVtXSBQZXRlciBTaG9yIGFuZCBEb24gQ29wcGVyc21pdGggZmlndXJlZCBvdXQgaG93IHRvIHRha2UgYSBRdWFudHVtIEZvdXJpZXIgVHJhbnNmb3JtLg0KMTk5NDpUaGUgcHJvYmxlbSB3aXRoIHRoZSBwYXBlciBwdWJsaXNoZWQgZWFybGllciB0aGlzIG1vbnRoIHdhcyBpdHMgcmVsaWFuY2Ugb24gU2Nobm9ycidzIGFsZ29yaXRobSAobm90IHRvIGJlIGNvbmZ1c2VkIHdpdGggU2hvcuKAmXMgYWxnb3JpdGhtKSwgd2hpY2ggd2FzIGRldmVsb3BlZCBpbiAxOTk0LiBTY2hub3Jy4oCZcyBhbGdvcml0aG0gaXMgYSBjbGFzc2ljYWwgY29tcHV0YXRpb24gYmFzZWQgb24gbGF0dGljZXMsIHdoaWNoIGFyZSBtYXRoZW1hdGljYWwgc3RydWN0dXJlcyB0aGF0IGhhdmUgbWFueSBhcHBsaWNhdGlvbnMgaW4gY29uc3RydWN0aXZlIGNyeXB0b2dyYXBoeSBhbmQgY3J5cHRhbmFseXNpcy4gVGhlIGF1dGhvcnMgd2hvIGRldmlzZWQgU2Nobm9ycuKAmXMgYWxnb3JpdGhtIHNhaWQgaXQgY291bGQgZW5oYW5jZSB0aGUgdXNlIG9mIHRoZSBoZXVyaXN0aWMgcXVhbnR1bSBvcHRpbWl6YXRpb24gbWV0aG9kIGNhbGxlZCBRQU9BLg0KMTk5NCAoSmFuIDEpOiBbR2VvUG9saXRpY3NdIFRoZSBOb3J0aCBBbWVyaWNhbiBGcmVlIFRyYWRlIEFncmVlbWVudCAoTkFGVEEpIHdhcyBhbiBhZ3JlZW1lbnQgc2lnbmVkIGJ5IENhbmFkYSwgTWV4aWNvLCBhbmQgdGhlIFVuaXRlZCBTdGF0ZXMgdGhhdCBjcmVhdGVkIGEgdHJpbGF0ZXJhbCB0cmFkZSBibG9jIGluIE5vcnRoIEFtZXJpY2EuIFRoZSBhZ3JlZW1lbnQgY2FtZSBpbnRvIGZvcmNlIG9uIEphbnVhcnkgMSwgMTk5NCwgYW5kIHN1cGVyc2VkZWQgdGhlIDE5ODggQ2FuYWRh4oCTVW5pdGVkIFN0YXRlcyBGcmVlIFRyYWRlIEFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzIGFuZCBDYW5hZGEuIFRoZSBOQUZUQSB0cmFkZSBibG9jIGZvcm1lZCBvbmUgb2YgdGhlIGxhcmdlc3QgdHJhZGUgYmxvY3MgaW4gdGhlIHdvcmxkIGJ5IGdyb3NzIGRvbWVzdGljIHByb2R1Y3QuDQoxOTk0OltUZWNobm9sb2d5XVtCdXNpbmVzc11bVVNdW0NvbXB1dGluZ10gVGhlIERlbGwgTGF0aXR1ZGUgc2VyaWVzIGlzIGEgbGluZSBvZiBsYXB0b3AgY29tcHV0ZXJzIG1hbnVmYWN0dXJlZCBhbmQgc29sZCBieSBBbWVyaWNhbiBjb21wYW55IERlbGwuIEl0IGlzIGEgYnVzaW5lc3Mtb3JpZW50ZWQgbGluZSwgYWltZWQgYXQgY29ycG9yYXRlIGVudGVycHJpc2VzLCBoZWFsdGhjYXJlLCBnb3Zlcm5tZW50LCBhbmQgZWR1Y2F0aW9uIG1hcmtldHM7IHVubGlrZSB0aGUgSW5zcGlyb24gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBpbmRpdmlkdWFsIGN1c3RvbWVycywgYW5kIHRoZSBWb3N0cm8gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBzbWFsbGVyIGJ1c2luZXNzZXMuIFRoZSBMYXRpdHVkZSBkaXJlY3RseSBjb21wZXRlcyB3aXRoIHRoZSBMZW5vdm8gVGhpbmtQYWQgYW5kIHRoZSBFbGl0ZUJvb2sgc2VyaWVzIGJ5IEhQLiBBZGRpdGlvbmFsbHksIHRoZSAiUnVnZ2VkIChFeHRyZW1lKSIsICJYRlIiIGFuZCAiQVRHIiBtb2RlbHMgY29tcGV0ZSBwcmltYXJpbHkgd2l0aCBQYW5hc29uaWMncyBUb3VnaGJvb2sgbGluZSBvZiAicnVnZ2VkIiBsYXB0b3BzLg0KMTk5NDogU3VzaG1pdGEgU2VuIGJlY2FtZSBNaXNzIFVuaXZlcnNlLg0KMTk5NDogVGhlIEFubmFscyBvZiBJbXByb2JhYmxlIFJlc2VhcmNoIGlzIGEgYmktbW9udGhseSBtYWdhemluZSBkZXZvdGVkIHRvIHNjaWVudGlmaWMgaHVtb3IsIGluIHRoZSBmb3JtIG9mIGEgc2F0aXJpY2FsIHRha2Ugb24gdGhlIHN0YW5kYXJkIGFjYWRlbWljIGpvdXJuYWwuDQoxOTk0OiBMaW5kb24gTGVhZGVyIG9mIExhbmRvciBBc3NvY2lhdGVzLCBvZiBTYW4gRnJhbmNpc2NvIGRlc2lnbmVkIHdvcmRtYXJrcyBmb3IgRmVkRXgncyB2YXJpb3VzIE9wLXVuaXQuIEZlZEV44oCZcyBwdWJsaWMtcmVsYXRpb25zIGZpcm0gd2FudGVkIHRvIGhpZ2hsaWdodCB0aGUgYXJyb3cgc28gaXQgd291bGQgYmUgb2J2aW91cy4gQnV0IGhlIGZvdWdodCB0aGVtIG9uIHRoYXQg4oCUIGhlIHRob3VnaHQgaXQgd291bGQgYmUgb3ZlcmtpbGwuIFRoZXJl4oCZcyBzb21ldGhpbmcgYWJvdXQgbWFraW5nIHBlb3BsZSBkaXNjb3ZlciBzb21ldGhpbmcgb24gdGhlaXIgb3duIHRoYXTigJlzIGEgbG90IG1vcmUgcG93ZXJmdWwgdGhhbiBpdGFsaWNpemluZyBpdCB0byBtYWtlIHlvdXIgcG9pbnQuDQoxOTk0OiBTY2lsYWIgMS4xLCB0aGUgZmlyc3QgcmVsZWFzZWQgdmVyc2lvbiBvZiBTY2lsYWIsIHdhcyBwdXQgb24gYW5vbnltb3VzIGZ0cCBzaXRlLg0KMTk5NDogVGhlIGNvbmNlcHQgb2YgYSBjYWbDqSB3aXRoIGZ1bGwgSW50ZXJuZXQgYWNjZXNzIChhbmQgdGhlIG5hbWUgQ3liZXJjYWbDqSkgd2FzIGludmVudGVkIGluIGVhcmx5IGJ5ICBhIEJyaXRpc2ggdGVjaG5vbG9neSBhcnRpc3QsIEl2YW4gUG9wZS4NCjE5OTQ6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIGx1cmVkIG9uZSBvZiBEYXdvb2QncyBmYXZvcml0ZSAibmFyY28tdGVycm9yaXN0IiBQaGlsbHUgS2hhbiBhbGlhcyBCYWtodGl5YXIgQWhtZWQgS2hhbiB0byBhIGhvdGVsIHJvb20gaW4gQmFuZ2tvaywgd2hlcmUgaGUgd2FzIHRvcnR1cmVkIHRvIGRlYXRoLCBoYXZpbmcgYmVlbiBiZXRyYXllZCBieSBoaXMgY2xvc2VzdCBhaWRlIGFuZCBzaWRla2ljayBNYW5nZXNoICJNYW5neWEiIFBhd2FyLiBELUNvbXBhbnkncyBTaGFyYWQsIHVzZWQgaGlzIGxpbmtzIHdpdGggTXVtYmFpLWJhc2VkIGhvdGVsaWVyIFZpbm9kIGFuZCBBLiBNaXNocmEgdG8gdHJhY2sgZG93biBSYWphbiBpbiBCYW5na29rLiBSYWphbidzIGhpdG1hbiBSb2hpdCBWYXJtYSBhbmQgaGlzIHdpZmUgc2hvdCBieSBELUNvbXBhbnkuDQoxOTk0KEp1bCAxNik6W1NwYWNlXSBGcm9tIEp1bHkgMTYgdG8gMjIsIDE5OTQsIGVub3Jtb3VzIHBpZWNlcyBvZiB0aGUgY29tZXQgU2hvZW1ha2VyLUxldnkgOSAoU0w5KSwgZGlzY292ZXJlZCBqdXN0IGEgeWVhciBwcmlvciwgY3Jhc2hlZCBpbnRvIEp1cGl0ZXIgb3ZlciBzZXZlcmFsIGRheXMsIGNyZWF0aW5nIGh1Z2UsIGRhcmsgc2NhcnMgaW4gdGhlIHBsYW5ldCdzIGF0bW9zcGhlcmUgYW5kIGxvZnRpbmcgc3VwZXJoZWF0ZWQgcGx1bWVzIGludG8gaXRzIHN0cmF0b3NwaGVyZS4NCjE5OTQgKE9jdCk6IElUUE8gYW5kIEdvSSdzIE5JQyBqb2ludGx5IHNldC11cCB0aGUgTmF0aW9uYWwgQ2VudHJlIGZvciBUcmFkZSBJbmZvcm1hdGlvbiAoTkNUSSkgYXQgUHJhZ2F0aSBNYWlkYW4uDQoxOTk0IChOb3YgMSwgMTU6MDEgSVNUKTpbU3BhY2VdW1N1bl0gVGhlIEdsb2JhbCBHZW9zcGFjZSBTY2llbmNlICdXaW5kJyBzYXRlbGxpdGUgaXMgYSBOQVNBIHNjaWVuY2Ugc3BhY2VjcmFmdCBkZXNpZ25lZCB0byBzdHVkeSByYWRpbyB3YXZlcyBhbmQgcGxhc21hIHRoYXQgb2NjdXIgaW4gdGhlIHNvbGFyIHdpbmQgYW5kIGluIHRoZSBFYXJ0aCdzIG1hZ25ldG9zcGhlcmUuIA0KMTk5NCAoRGVjIDMpOiBTb255J3MgUGxheVN0YXRpb24gKGEgdmlkZW8gZ2FtZSBjb25zb2xlKSB3YXMgaW50cm9kdWNlZCB0byB0aGUgd29ybGQgZnJvbSBNaW5hdG8sIFRva3lvIChKYXBhbikuDQoxOTk0OiBXWFlDLSBmaXJzdCBpbnRlcm5ldCByYWRpbyBzdGF0aW9uIGJyb2FkY2FzdC4NCjE5OTQ6IE1lbW9yeSBjYXJkcyB3ZXJlIGludHJvZHVjZWQgaW4gdGhlIGNvbnN1bWVyIGVsZWN0cm9uaWNzIG1hcmtldC4NCjE5OTQgKEF1Zyk6IElUUE8ncyAxc3QgRGVsaGkgQm9vayBGYWlyIGF0ICBIYWxsIDggdG8gMTIgb2YgUHJhZ2F0aSBNYWlkYW4sIE5ldyBEZWxoaS4gVGhlIHRpbWluZ3Mgb2YgZmFpciBhcmUgZnJvbSAxMC4wMCBhbSB0byA4LjAwIHBtIChlbnRyeSB0byBmYWlyIHdpbGwgY2xvc2UgYXQgNy4zMCBwbSkuDQoxOTk0IChTZXApOiBUaGUgQ09OQ0VSVCBzb2Z0d2FyZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgaW1wbGVtZW50ZWQgYXQgYWxsIG9mIHRoZSBmaXZlIFBSUycgc2l0ZXMgU2VjdW5kZXJhYmFkIGluIFNlcHQuIDE5OTQsIE5ldyBEZWxoaSBvbiBTZXB0LiAxOTk2LCBDYWxjdXR0YSBvbiAxNHRoIEp1bmUgMTk5OCwgTXVtYmFpIG9uIDExdGggSmFuIDE5OTkgYW5kIENoZW5uYWkgb24gMTJ0aCBBcHJpbCAxOTk5Lg0KMTk5NDogdGhlIDI0dGggYW5kIHRoZSBsYXN0IEdQUyBzYXRlbGxpdGUgd2FzIGxhdW5jaGVkIGluIFVTLg0KMTk5NDogVGhlIHdvcmQgVGFsaWJhbiBpcyBQYXNodG8sINi32KfZhNio2KfZhiDhua3EgWxpYsSBbiwgbWVhbmluZyAic3R1ZGVudHMiLCB0aGUgcGx1cmFsIG9mIOG5rcSBbGliLiBBZnRlciB0aGUgU292aWV0IFVuaW9uIGludGVydmVuZWQgYW5kIG9jY3VwaWVkIEFmZ2hhbmlzdGFuIGluIDE5NzksIElzbGFtaWMgbXVqYWhpZGVlbiBmaWdodGVycyBlbmdhZ2VkIGluIHdhciB3aXRoIHRob3NlIFNvdmlldCBmb3JjZXMsIHdoaWNoIGxhaWQgdGhlIGZvdW5kYXRpb24gb2YgcG9saXRpY2FsIG1vdmVtZW50IGFuZCBtaWxpdGFyeSBvcmdhbml6YXRpb24gbmFtZWQgVGFsaWJhbi4NCjE5OTQ6IEFiZHVsIEthcmVlbSBUZWxnaSBhY3F1aXJlZCB0aGUgbGljZW5zZSBmb3Igc2VsbGluZyBzdGFtcCBwYXBlciBhbmQgb3BlbmVkIGFuIG9mZmljZSBpbiBNdW1iYWkuIEFmdGVyIHRoYXQsIGhlIHN0YXJ0ZWQgcHJpbnRpbmcgc3RhbXAgcGFwZXIgaW4gTmFzaGlrLiBXaXRoIHNvbWUgYWdlbnRz4oCZIGhlbHAsIGhlIHN0YXJ0cyBzZWxsaW5nIGZha2Ugc3RhbXAgcGFwZXIgaW4gYnVsayB0byBiYW5rcywgaW5zdXJhbmNlIGNvbXBhbmllcywgc3RvY2sgYnJva2VyYWdlIGZpcm1zLCBhbmQgY29ycG9yYXRlcy4gSW4gMjAwMyB0aGUgVGVsZ2kgc2NhbSB3YXMgdW5mb2xkZWQ7IHRoZSBmaWd1cmUgaW4gdGhlIG1pbmQgb2Ygc2VjdXJpdHkgYW5kIGludGVsbGlnZW5jZSBhZ2VuY2llcyB3YXMgdXAgdG8gUnMuMjBrIENyb3JlDQoxOTk0OiBbR2VvUG9saXRpY3NdIEludGVybmF0aW9uYWwgQXNzb2NpYXRpb24gb2YgR2VuZGFybWVyaWVzIGFuZCBQb2xpY2UgRm9yY2VzIHdpdGggTWlsaXRhcnkgU3RhdHVzIChjb21tb25seSBrbm93biBhcyBGSUVQIGZvciBGcmFuY2UtSXRhbGlhLUVzcGHDsWEtUG9ydHVnYWwsIHRoZSBmaXJzdCBmb3VyIG1lbWJlcnMpIGlzIGFuIGFzc29jaWF0aW9uIG9mIG5hdGlvbmFsIGdlbmRhcm1lcmllcyBvciBtaWxpdGFyeSBwb2xpY2UgZm9yY2VzLg0KMTk5NDpbQm9va10gUGFsZSBCbHVlIERvdDogQSBWaXNpb24gb2YgdGhlIEh1bWFuIEZ1dHVyZSBpbiBTcGFjZSBpcyBhIDE5OTQgYm9vayBieSB0aGUgYXN0cm9ub21lciBDYXJsIFNhZ2FuLiBJdCBpcyB0aGUgc2VxdWVsIHRvIFNhZ2FuJ3MgMTk4MCBib29rIENvc21vcyBhbmQgd2FzIGluc3BpcmVkIGJ5IHRoZSBmYW1vdXMgMTk5MCBQYWxlIEJsdWUgRG90IHBob3RvZ3JhcGgsIGZvciB3aGljaCBTYWdhbiBwcm92aWRlcyBhIHBvaWduYW50IGRlc2NyaXB0aW9uLiBJbiB0aGUgYm9vaywgU2FnYW4gbWl4ZXMgcGhpbG9zb3BoeSBhYm91dCB0aGUgaHVtYW4gcGxhY2UgaW4gdGhlIHVuaXZlcnNlIHdpdGggYSBkZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCBrbm93bGVkZ2UgYWJvdXQgdGhlIFNvbGFyIFN5c3RlbS4gSGUgYWxzbyBkZXRhaWxzIGEgaHVtYW4gdmlzaW9uIGZvciB0aGUgZnV0dXJlLg0KMTk5NDpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTWVjaGFnb2R6aWxsYSBJSSgxOTkzKQ0KMTk5NDpbQ2luZW1hXSBUaGUgQXBwbGUoMTk4MCkNCjE5OTQ6W0NpbmVtYV0gVGhlIEF0bGFudGlzIEludGVyY2VwdG9ycygxOTgzKQ0KMTk5NDpbTW50bmdnXSBJbiAxOTk0LCBNYXJrIFdoZXR1IHN1bW1pdHRlZCBNdCBFdmVyZXN0IHdpdGggTWlrZSBSZWluYmVyZ2VyLiBCdXQgYWZ0ZXIgYSBmcmVlemluZyBuaWdodCwgV2hldHUgZmFjZWQgYSBoYXJyb3dpbmcgY2hvaWNlOiBsZWF2ZSBoaXMgZnJpZW5kIG9yIHJlbWFpbiBmb3JldmVyLiBUaGUgRmF0YWwgR2FtZSAoMTk5NykNCjE5OTQ6W1RvdXJpc21dIFRoZSBBZHZlbnR1cmUgVG91ciBPcGVyYXRvcnMgQXNzb2NpYXRpb24gb2YgSW5kaWEgKEFUT0FJKSB3YXMgZm91bmRlZCBpbiAxOTk0LiBJdCB3YXMgZXN0YWJsaXNoZWQgYnkgYSBncm91cCBvZiB0cmF2ZWwgdHJhZGUgYWR2ZW50dXJlcnMgd2hvIGFpbWVkIHRvIGNyZWF0ZSBhIHN0cm9uZyBzdXBwb3J0IG5ldHdvcmsgZm9yIEluZGlhbiBhZHZlbnR1cmUgdG91ciBvcGVyYXRvcnMuIA0KDQoxOTk1IChNYXkgMTkpOiBbUmVzZWFyY2hdW1NwYWNlXSB0d28gc2NpZW50aXN0cyBhdCBDYWwgUG9seSBzaG93ZWQgdGhhdCBiYWN0ZXJpYSBjYW4gc3Vydml2ZSB3aXRob3V0IGFueSBtZXRhYm9saXNtIGZvciBhdCBsZWFzdCAyNSBtaWxsaW9uIHllYXJzOyBwcm9iYWJseSB0aGV5IGFyZSBpbW1vcnRhbC4NCjI0IE5vdmVtYmVyIDE5OTU6IFRoZSBOZXcgWW9yayBUaW1lcyBkZXNjcmliZWQgYmFjdGVyaWEgdGhhdCBjYW4gc3Vydml2ZSByYWRpYXRpb24gbXVjaCBzdHJvbmdlciB0aGFuIGFueSB0aGF0IEVhcnRoIGhhcyBldmVyIGV4cGVyaWVuY2VkLg0KV2UgYXJlIGNhbGxpbmcgdGhlIHVuaW9uIG9mIExvdmVsb2NrJ3MgR2FpYSB3aXRoIEhveWxlIGFuZCBXaWNrcmFtYXNpbmdoZSdzIGV4cGFuZGVkIHRoZW9yeSBvZiBwYW5zcGVybWlhIENvc21pYyBBbmNlc3RyeS4gVGhpcyBhY2NvdW50IG9mIGV2b2x1dGlvbiBhbmQgdGhlIG9yaWdpbiBvZiBsaWZlIG9uIEVhcnRoIGlzIHByb2ZvdW5kbHkgZGlmZmVyZW50IGZyb20gdGhlIHByZXZhaWxpbmcgc2NpZW50aWZpYyBwYXJhZGlnbS4gSXQgY2hhbGxlbmdlcyBub3QgbWVyZWx5IHRoZSBhbnN3ZXJzIGJ1dCB0aGUgcXVlc3Rpb25zIHRoYXQgYXJlIHBvcHVsYXIgdG9kYXkuIENvc21pYyBBbmNlc3RyeSByZXF1aXJlcyB0aGF0IGxpZmUgY2FuIG9ubHkgZGVzY2VuZCBmcm9tIGFuY2VzdG9ycyBhdCBsZWFzdCBhcyBoaWdobHkgZXZvbHZlZCBhcyBpdHNlbGYsIGFuZCB0aGF0IHRoZXJlIGNhbiBiZSBubyBvcmlnaW4gb2YgbGlmZSBmcm9tIG5vbmJpb2xvZ2ljYWwgbWF0dGVyLiBXaXRob3V0IHN1cGVybmF0dXJhbCBpbnRlcnZlbnRpb24sIHRoZXJlZm9yZSwgd2UgY29uY2x1ZGUgdGhhdCBsaWZlIG11c3QgaGF2ZSBhbHdheXMgZXhpc3RlZC4gQWx0aG91Z2ggdGhlc2UgY29uY2x1c2lvbnMgY3V0IGFjcm9zcyB0aGUgYm91bmRhcmllcyBiZXR3ZWVuIHNjaWVuY2UsIHBoaWxvc29waHksIGFuZCByZWxpZ2lvbiwgd2UgYmVsaWV2ZSB0aGV5IGFyZSBncm91bmRlZCBpbiBnb29kIGV2aWRlbmNlLiBBbmQgbmV3IGRhdGEgdGhhdCBzdXBwb3J0IG1hbnkgYXNwZWN0cyBvZiBDb3NtaWMgQW5jZXN0cnkgYXJlIGNvbWluZyBpbiByYXBpZGx5LiBJbiB0aGUgZm9sbG93aW5nIHBhZ2VzIHdlIHdpbGwgZXhwbGFpbiBob3cgdGhlc2UgYW5kIG90aGVyIHJlY2VudCBkZXZlbG9wbWVudHMgc3VwcG9ydCBDb3NtaWMgQW5jZXN0cnk6DQoNCjE5OTU6IEFOU0VUIHNvbGQgdG8gQU9MLCB3aG8gIG5vdyBydW5zIGl0Lg0KMTk5NSAoTWFyKTogRGVwdC4gb2YgSW5kaWFuIE1lZGljaW5lIGFuZCBIb21lb3BhdGh5IGZvdW5kZWQuDQoxOTk1IChNYXIgMjQpOltSZXNlYXJjaF0gUmVtb3RlbHkgT3BlcmF0ZWQgVmVoaWNsZSBLQUlLTyByZWFjaGVkIHRoZSBkZWVwZXN0IGFyZWEgb2YgdGhlIE1hcmlhbmEgVHJlbmNoIGFuZCBtYWRlIHRoZSBkZWVwZXN0IGRpdmluZyByZWNvcmQgb2YgMTAsOTExIG0gKDM1LDc5NyBmdDsgNSw5NjYgZmF0aG9tcykgDQoxOTk1OiBwaG9uZSBjYWxsIGNvc3RpbmcgUnMuIDE2IHBlciBtaW4uDQoxOTk1OltHYW1pbmddIFZpcnR1YSBDb3AgMiBpcyBhIGxpZ2h0IGd1biBzaG9vdGVyIGFyY2FkZSBnYW1lLCByZWxlYXNlZCBpbiAxOTk1IGFuZCBkZXZlbG9wZWQgaW50ZXJuYWxseSBhdCBTZWdhIGJ5IHRoZWlyIEFNMiBzdHVkaW8gKFl1IFN1enVraSkuIEl0IHdhcyBwb3J0ZWQgdG8gdGhlIFNlZ2EgU2F0dXJuIGluIDE5OTYuIEl0IHdhcyByZWxlYXNlZCBvbiBQQyBpbiAxOTk3IGFuZCBTZWdhIERyZWFtY2FzdCBpbiAyMDAwLiBJdCB3YXMgbGF0ZXIgYnVuZGxlZCB3aXRoIFZpcnR1YSBDb3AgaW4gVmlydHVhIENvcDogRWxpdGUgRWRpdGlvbiBmb3IgUGxheVN0YXRpb24gMiBpbiAyMDAyLg0KMTk5NSAoQXByIDEpOltSZXNlYXJjaF0gUGlsbGFycyBvZiBDcmVhdGlvbiBpcyBhIHBob3RvZ3JhcGggdGFrZW4gYnkgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgb2YgZWxlcGhhbnQgdHJ1bmtzIG9mIGludGVyc3RlbGxhciBnYXMgYW5kIGR1c3QgaW4gdGhlIEVhZ2xlIE5lYnVsYSwgaW4gdGhlIFNlcnBlbnMgY29uc3RlbGxhdGlvbiwgc29tZSA2LDUwMOKAkzcsMDAwIGxpZ2h0LXllYXJzICgyLDAwMOKAkzIsMTAwIHBjOyA2MeKAkzY2IEVtKSBmcm9tIEVhcnRoLg0KMTk5NSAoQXByIDEpOiBJQUFJIGFuZCBOQUEgd2VyZSBtZXJnZWQgYnkgYW4gQWN0IG9mIFBhcmxpYW1lbnQgYW5kIHdhcyBuYW1lZCBhcyBBaXJwb3J0cyBBdXRob3JpdHkgb2YgSW5kaWEgKEFBSSkuIFRoaXMgbmV3IG9yZ2FuaXNhdGlvbiB3YXMgdG8gYmUgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nLCB1cGdyYWRpbmcsIG1haW50YWluaW5nIGFuZCBtYW5hZ2luZyBjaXZpbCBhdmlhdGlvbiBpbmZyYXN0cnVjdHVyZSBib3RoIG9uIHRoZSBncm91bmQgYW5kIGFpciBzcGFjZSBpbiB0aGUgY291bnRyeS4NCjE5OTUgKEFwciAyMSk6W0NyaW1lXVtJbmRpYV0gQmFibG9vIHBpY2tlZCB1cCBieSB0aGUgU2luZ2Fwb3JlIGFpcnBvcnQgcG9saWNlIGZvciB0cmF2ZWxsaW5nIG9uIGZha2UgcGFzc3BvcnQuIEhlIHdhcyBzdGF5aW5nIGluIER1YmFpLg0KMTk5NSAoU2VwIDMwKTpbQ3JpbWVdW0luZGlhXSBTaW5nYXBvcmUgZXh0cmFkaXRlcyBJbmRpYSdzICdtb3N0LXdhbnRlZCBpbnRlci1zdGF0ZSBjcmltaW5hbCcgQmFibG9vIFNyaXZhc3RhdmEgKDMzWU8pDQoxOTk1IChOb3YgMzApOiBPcGVyYXRpb24gRGVzZXJ0IFN0b3JtIChGaXJzdCBJcmFxIFdhcilvZmZpY2lhbGx5IGVuZGVkLg0KMTk5NSAoTWF5IDMxKTpbQm9va11bTWlsaXRhcnldIEFkbWlyYWwgV2lsbGlhbSBILiBNY1JhdmVuJ3MgU3BlYyBPcHM6IENhc2UgU3R1ZGllcyBpbiBTcGVjaWFsIE9wZXJhdGlvbnMgV2FyZmFyZTogVGhlb3J5IGFuZCBQcmFjdGljZTsgU2VhIFN0b3JpZXM6IE15IExpZmUgaW4gU3BlY2lhbCBPcGVyYXRpb25zICgyMDE5LCBNYXkgMSk7IFRoZSBIZXJvIENvZGU6IExlc3NvbnMgTGVhcm5lZCBmcm9tIExpdmVzIFdlbGwgTGl2ZWQgKDIwMjEsIEFwciAxMykNCjE5OTU6IERyLiBIYW5kZSBhZnRlciBncmFkdWF0aW5nIGZyb20gSUlUIEtoYXJhZ3B1ciBjb25jZXB0dWFsaXplZCBTRUxDTyBJbmRpYSBkdXJpbmcgaGlzIFBoRCBvbiBzdXN0YWluYWJsZSBlbmVyZ3kgYXQgdGhlIFVuaXZlcnNpdHkgb2YgTWFzc2FjaHVzZXR0cy4gRHVyaW5nIGEgZmllbGQgdmlzaXQgdG8gdGhlIERvbWluaWNhbiBSZXB1YmxpYywgaGUgd2FzIHN1cnByaXNlZCB0byBzZWUgdGhlIHBvb3IgdXNpbmcgc29sYXIgbGlnaHRzLg0KMTk5NTogVGhlIEdvdmVybm1lbnQgb2YgSW5kaWEgYW5kIHRoZSBHb3Zlcm5tZW50IG9mIERlbGhpIGpvaW50bHkgc2V0IHVwIGEgY29tcGFueSBjYWxsZWQgdGhlIERlbGhpIE1ldHJvIFJhaWwgQ29ycG9yYXRpb24gKERNUkMpIG9uIDMgTWF5IDE5OTUsIHdpdGggRHIuIEUuIFNyZWVkaGFyYW4gYXMgdGhlIG1hbmFnaW5nIGRpcmVjdG9yLg0KMTk5NTogSW50J2wgR2FuZGhpIFBlYWNlIFByaXplIGxhdW5jaGVkLg0KMTk5NTogU2FjaGluIFIuIFRlbmR1a2FyIGFuZCBBbmphbGkgVGVuZHVsa2FyIHdlZGRlZCB0b2dldGhlci4NCjE5OTU6IC5tcDMgaW52ZW50ZWQuDQoxOTk1OltHYW1pbmddIFdoaWxlIEZJRkEgOTUgZGlkIG5vdCBhZGQgbXVjaCBvdGhlciB0aGFuIHRoZSBhYmlsaXR5IHRvIHBsYXkgd2l0aCBjbHViIHRlYW1zLCBGSUZBIDk2IHB1c2hlZCB0aGUgYm91bmRhcmllcy4gRm9yIHRoZSBmaXJzdCB0aW1lIHdpdGggcmVhbCBwbGF5ZXIgbmFtZXMgYnkgb2J0YWluaW5nIHRoZSBGSUZQcm8gbGljZW5zZSwgdGhlIFBsYXlTdGF0aW9uLCBQQywgMzJYIGFuZCBTZWdhIFNhdHVybiB2ZXJzaW9ucyB1c2VkIEVBJ3MgIlZpcnR1YWwgU3RhZGl1bSIgZW5naW5lLCB3aXRoIDJEIHNwcml0ZSBwbGF5ZXJzIG1vdmluZyBhcm91bmQgYSByZWFsLXRpbWUgM0Qgc3RhZGl1bS4NCjE5OTUgKEp1bCAxOCk6W0Jvb2tdIEJhcmFjayBPYmFtYSdzIERyZWFtcyBmcm9tIE15IEZhdGhlcjogQSBTdG9yeSBvZiBSYWNlIGFuZCBJbmhlcml0YW5jZTsgRHJlYW1zIGZyb20gTXkgRmF0aGVyOiBBIFN0b3J5IG9mIFJhY2UgYW5kIEluaGVyaXRhbmNlICgyMDA2LCBPY3QgMTcpOyBPZiBUaGVlIEkgU2luZzogQSBMZXR0ZXIgdG8gTXkgRGF1Z2h0ZXJzICgyMDEwLCBOb3YgMTYpOyBBIFByb21pc2VkIExhbmQgKDIwMjAsIE5vdiAxNykNCjE5OTUoSmFuIDEpOltFbnZdIFRoZSBBZ3JlZW1lbnQgb24gQWdyaWN1bHR1cmUgKEFvQSkgaXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgb2YgdGhlIFdvcmxkIFRyYWRlIE9yZ2FuaXphdGlvbi4gSXQgd2FzIG5lZ290aWF0ZWQgZHVyaW5nIHRoZSBVcnVndWF5IFJvdW5kIG9mIHRoZSBHZW5lcmFsIEFncmVlbWVudCBvbiBUYXJpZmZzIGFuZCBUcmFkZSwgYW5kIGVudGVyZWQgaW50byBmb3JjZSB3aXRoIHRoZSBlc3RhYmxpc2htZW50IG9mIHRoZSBXVE8gb24gSmFudWFyeSAxLCAxOTk1LiBCbHVlLCBSZWQsIEFtYmVyIGFuZCBHcmVlbiBCb3ggb2Ygc3Vic2lkaWVzLg0KMTk5NTpbQ2luZW1hXSBOZWxzb24gTWFuZGVsYSwgaW4gaGlzIGZpcnN0IHRlcm0gYXMgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYSwgaW5pdGlhdGVzIGEgdW5pcXVlIHZlbnR1cmUgdG8gdW5pdGUgdGhlIEFwYXJ0aGVpZC10b3JuIGxhbmQ6IGVubGlzdCB0aGUgbmF0aW9uYWwgcnVnYnkgdGVhbSBvbiBhIG1pc3Npb24gdG8gd2luIHRoZSAxOTk1IFJ1Z2J5IFdvcmxkIEN1cC4gLSAgSW52aWN0dXMgKDIwMDkpDQoxOTk1OltDaW5lbWFdIEEgQ2xvY2t3b3JrIE9yYW5nZSgxOTcxKQ0KMTk5NTpbQ2luZW1hXSBEZWFkIEVuZCBEcml2ZS1JbigxOTg2KQ0KMTk5NTpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gU3BhY2Vnb2R6aWxsYSgxOTk0KQ0KMTk5NTpbQ2luZW1hXSBIZWFydGJlZXBzKDE5ODEpDQoxOTk1OltDaW5lbWFdIFRoZSBNdW1teSdzIEN1cnNlKDE5NDQpDQoxOTk1IChEZWMpOltTcGFjZV0gU29sYXIgYW5kIEhlbGlvc3BoZXJpYyBPYnNlcnZhdG9yeSAoU29ITykgd2FzIGxhdW5jaGVkIGluIERlY2VtYmVyIDE5OTUgYXMgYSBqb2ludCBtaXNzaW9uIGJldHdlZW4gdGhlIEV1cm9wZWFuIFNwYWNlIEFnZW5jeSAoRVNBKSBhbmQgTkFTQSwgU29ITyB3YXMgZGVzaWduZWQgdG8gb3JiaXQgdGhlIFN1biB0byBsZWFybiBhYm91dCB0aGUgc3RydWN0dXJlIG9mIHRoZSBzdGFy4oCZcyBpbnRlcmlvciBhbmQgaXRzIG91dGVyIGF0bW9zcGhlcmUsIGFzIHdlbGwgYXMgdG8gaW52ZXN0aWdhdGUgdGhlIGJlaGF2aW9yIG9mIHNvbGFyIHdpbmRzLiBJdCB3YXMgZXhwZWN0ZWQgdG8gY29tcGxldGUgaXRzIG1pc3Npb24gaW4gMTk5OC4gSW5zdGVhZCwgaXQgaXMgc3RpbGwgYWN0aXZlIHRvZGF5LCBhbmQgaXMgbm93IGxpa2VseSB0byBrZWVwIHdvcmtpbmcgdW50aWwgMjAyNSwgd2hlbiBpdCB3aWxsIGhhdmUgYmVlbiBpbiBzcGFjZSBmb3IgMzAgeWVhcnMuDQoxOTk1OltQaHlzaWNzXVtTcGFjZV1bUmVzZWFyY2hdIFByaW9yIHRvIDE5OTUsIHRoZW9yaXN0cyBiZWxpZXZlZCB0aGF0IHRoZXJlIHdlcmUgZml2ZSBjb25zaXN0ZW50IHZlcnNpb25zIG9mIHN1cGVyc3RyaW5nIHRoZW9yeSAodHlwZSBJLCB0eXBlIElJQSwgdHlwZSBJSUIsIGFuZCB0d28gdmVyc2lvbnMgb2YgaGV0ZXJvdGljIHN0cmluZyB0aGVvcnkpLiBUaGlzIHVuZGVyc3RhbmRpbmcgY2hhbmdlZCBpbiAxOTk1IHdoZW4gRWR3YXJkIFdpdHRlbiBzdWdnZXN0ZWQgdGhhdCB0aGUgZml2ZSB0aGVvcmllcyB3ZXJlIGp1c3Qgc3BlY2lhbCBsaW1pdGluZyBjYXNlcyBvZiBhbiBlbGV2ZW4tZGltZW5zaW9uYWwgdGhlb3J5IGNhbGxlZCBNLXRoZW9yeS4gV2l0dGVuJ3MgY29uamVjdHVyZSB3YXMgYmFzZWQgb24gdGhlIHdvcmsgb2YgYSBudW1iZXIgb2Ygb3RoZXIgcGh5c2ljaXN0cywgaW5jbHVkaW5nIEFzaG9rZSBTZW4sIENocmlzIEh1bGwsIFBhdWwgVG93bnNlbmQsIGFuZCBNaWNoYWVsIER1ZmYuIEhpcyBhbm5vdW5jZW1lbnQgbGVkIHRvIGEgZmx1cnJ5IG9mIHJlc2VhcmNoIGFjdGl2aXR5IG5vdyBrbm93biBhcyB0aGUgc2Vjb25kIHN1cGVyc3RyaW5nIHJldm9sdXRpb24uDQoxOTk1OltDcmltZV1bSW5kaWFdIE11cmRlciBvZiBNdW1iYWktYmFzZWQgYnVpbGRlciBQcmFkZWVwIEphaW4gYnkgQWJ1IFNhbGVtDQoxOTk1OiBGb3J0dW5lIEhvdGVscyBpbiBJbmRpYSBpcyBvd25lZCBieSBpdHMgcGFyZW50IGNvbXBhbnksIElUQyBMdGQuLCB3aGljaCBlc3RhYmxpc2hlZCBGb3J0dW5lIEhvdGVscyBpbiAxOTk1IGFzIGEgc3Vic2lkaWFyeSB0byBwcm92aWRlIG1pZC1tYXJrZXQgdG8gdXBzY2FsZSBob3NwaXRhbGl0eSBzZXJ2aWNlcy4gSG93ZXZlciwgYSBzZXBhcmF0ZSBncm91cCwgRm9ydHVuZSBHcm91cCBvZiBIb3RlbHMsIGJhc2VkIGluIHRoZSBVbml0ZWQgQXJhYiBFbWlyYXRlcyAoVUFFKSBhbmQgZm91bmRlZCBieSBQcmF2ZWVuIFNoZXR0eSwgYWxzbyBvcGVyYXRlcyBhIGRpZmZlcmVudCBzZXQgb2YgaG90ZWxzIGluIHRoYXQgcmVnaW9uLg0KMTk5NTpbVUtdIENhbWlsbGEgaXMgUXVlZW4gb2YgdGhlIFVuaXRlZCBLaW5nZG9tIGFuZCAxNCBvdGhlciBDb21tb253ZWFsdGggcmVhbG1zIGFzIHRoZSB3aWZlIG9mIEtpbmcgQ2hhcmxlcyBJSUkuIENhbWlsbGEgd2FzIHJhaXNlZCBpbiBFYXN0IFN1c3NleCBhbmQgU291dGggS2Vuc2luZ3RvbiBpbiBFbmdsYW5kIGFuZCBlZHVjYXRlZCBpbiBFbmdsYW5kLCBTd2l0emVybGFuZCBhbmQgRnJhbmNlLiBJbiAxOTczLCBzaGUgbWFycmllZCBCcml0aXNoIEFybXkgb2ZmaWNlciBBbmRyZXcgUGFya2VyIEJvd2xlczsgdGhleSBkaXZvcmNlZCBpbiAxOTk1Lg0KDQoxOTk2OltHZW9Qb2xpdGljc11bQnVzaW5lc3NdIE1vbmdvbGlhIHdhcyBncmFudGVkIG9ic2VydmVyIHN0YXR1cyB0byBUUkFDRUNBLg0KMTk5NiAoNyBBdWd1c3QpOltSZXNlYXJjaF1bU3BhY2VdIE5BU0EgYW5ub3VuY2VkIGZvc3NpbGl6ZWQgZXZpZGVuY2Ugb2YgYW5jaWVudCBsaWZlIGluIG1ldGVvcml0ZSBBTEggODQwMDEgZnJvbSBNYXJzLg0KMTk5NiAoT2N0IDI3KTpbUmVzZWFyY2hdW1NwYWNlXSBnZW5ldGljaXN0cyBzaG93ZWQgZXZpZGVuY2UgdGhhdCBtYW55IGdlbmVzIGFyZSBtdWNoIG9sZGVyIHRoYW4gdGhlIGZvc3NpbCByZWNvcmQgd291bGQgaW5kaWNhdGUuIFN1YnNlcXVlbnQgc3R1ZGllcyBoYXZlIHN0cmVuZ3RoZW5lZCB0aGlzIGZpbmRpbmcuDQoxOTk2OltCdXNpbmVzc11bR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2hlbiB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4gc2lnbmVkIHRoZSBUcmVhdHkgb24gRGVlcGVuaW5nIE1pbGl0YXJ5IFRydXN0IGluIEJvcmRlciBSZWdpb25zIGluIFNoYW5naGFpLiBPbiAyNCBBcHJpbCAxOTk3IHRoZSBzYW1lIGNvdW50cmllcyBzaWduZWQgdGhlIFRyZWF0eSBvbiBSZWR1Y3Rpb24gb2YgTWlsaXRhcnkgRm9yY2VzIGluIEJvcmRlciBSZWdpb25zIGluIGEgbWVldGluZyBpbiBNb3Njb3csIFJ1c3NpYS4gT24gMjAgTWF5IDE5OTcgUnVzc2lhbiBQcmVzaWRlbnQgQm9yaXMgWWVsdHNpbiBhbmQgQ2hpbmVzZSBQcmVzaWRlbnQgSmlhbmcgWmVtaW4gc2lnbmVkIGEgZGVjbGFyYXRpb24gb24gYSAibXVsdGlwb2xhciB3b3JsZCIuDQoxOTk2OiAxOTk2IE1vdW50IEV2ZXJlc3QgRGlzYXN0ZXIsIGluIHdoaWNoIGVpZ2h0IHBlb3BsZSBkaWVkIHdoaWxlIG9uIGFuIGV4cGVkaXRpb24gdG8gc2NhbGUgdGhlIGluZmFtb3VzIHN1bW1pdC4gT25lIG9mIHRoZSBjbGltYmVycyB3aG8gbG9zdCBoaXMgbGlmZSB3YXMgQW5keSBIYXJyaXMsIHBsYXllZCBpbiBFdmVyZXN0IGJ5IE1hcnRpbiBIZW5kZXJzb24uIEhhcnJpcyB3YXMgb25lIG9mIHRoZSBndWlkZXMgZm9yIHRoZSBBZHZlbnR1cmUgQ29uc3VsdGFudHMsIGFsb25nIHdpdGggUm9iIEhhbGwgYW5kIE1pa2UgR3Jvb20uIEluIHRoZSBmaWxtLCBoZSBhcHBlYXJzIHRvIGRpZSB3aGlsZSB3aXRoIEhhbGwsIGZhbGxpbmcgb2ZmIGEgY2xpZmYgYWZ0ZXIgYSBoYWxsdWNpbmF0aW9uLiBCdXQgUm9iIEhhbGwgbmV2ZXIgcmVwb3J0ZWQgdGhpcywgYW5kIHNpbmNlIGhlIGRpZWQgc2hvcnRseSB0aGVyZWFmdGVyLCB0aGVyZSBpcyBubyB3YXkgdG8gY29uZmlybSB0aGUgY2lyY3Vtc3RhbmNlcyBzdXJyb3VuZGluZyBIYXJyaXMnIGRlYXRoLg0KMTk5NjpbQ29tcHV0aW5nXVtRdWFudHVtXSAgTG92IEdyb3ZlciBkZXZpc2VkIGFuIGFsZ29yaXRobSAoR3JvdmVyJ3MgYWxnb3JpdGhtKSB0aGF0IGNvdWxkIHNlYXJjaCBhbiB1bnNvcnRlZCBkYXRhYmFzZSBpbiBzcXVhcmUgcm9vdCB0aW1lIG9uIGEgcXVhbnR1bSBjb21wdXRlciwgd2hpY2ggd291bGQgb3V0cGVyZm9ybSBhbnkgY2xhc3NpY2FsIGFsZ29yaXRobS4NCjE5OTY6W1VTXSBCYXJhY2sgT2JhbWEgd2FzIGVsZWN0ZWQgdG8gdGhlIElsbGlub2lzIFNlbmF0ZSwgc3VjY2VlZGluZyBEZW1vY3JhdGljIFN0YXRlIFNlbmF0b3IgQWxpY2UgUGFsbWVyIGZyb20gSWxsaW5vaXMncyAxM3RoIERpc3RyaWN0LCB3aGljaCwgYXQgdGhhdCB0aW1lLCBzcGFubmVkIENoaWNhZ28gU291dGggU2lkZSBuZWlnaGJvcmhvb2RzIGZyb20gSHlkZSBQYXJr4oCTS2Vud29vZCBzb3V0aCB0byBTb3V0aCBTaG9yZSBhbmQgd2VzdCB0byBDaGljYWdvIExhd24uDQoxOTk2OltVS10gQ2hhcmxlcyBJSUkgYW5kIERpYW5hIGdldHMgZGl2b3JjZWQuDQoxOTk2IChKYW4gMjUpOltCb29rXSBQZXRlciBMeW5jaCAmIEpvaG4gUm90aGNoaWxkJ3MgTGVhcm4gdG8gRWFybjogQSBCZWdpbm5lcidzIEd1aWRlIHRvIHRoZSBCYXNpY3Mgb2YgSW52ZXN0aW5nIGFuZCBCdXNpbmVzcy4NCjE5OTYgKEphbik6W0NyaW1lXVtJbmRpYV0gQW5lZXMgSWJyYWhpbSBhcnJlc3RlZCBpbiBCYWhyYWluLCBzaGlmdGVkIHRvIER1YmFpIGFsbGVnZWRseSBvbiB0aGUgaW50ZXJ2ZW50aW9uIG9mIHNvbWUgb2YgRHViYWkncyBydWxpbmcgbm90YWJsZXMsIGFuZCB3YXMgdGhlbiBhbGxvd2VkIHRvIHNsaXAgYXdheSB0byBLYXJhY2hpLCBQYWtpc3Rhbi4NCjE5OTY6IE5hdGlvbmFsIEFlcm9zcGFjZSBMYWJvcmF0b3JpZXMsIEluZGlhIGluZGlnZW5vdXNseSBidWlsdCBGTE9TT0xWRVIsIEluZGlhJ3MgZmlyc3Qgc3VwZXJjb21wdXRlci4gSXQgd2FzIHJlcGxpY2F0ZWQgYW5kIGluc3RhbGxlZCBhdCBJQ0FEIE1vc2NvdyBpbiAxOTkxIHVuZGVyIFJ1c3NpYW4gY29sbGFib3JhdGlvbi4NCjE5OTY6IEluZGlhL1Bha2lzdGFuL1NyaSBMYW5rYSAxOTk2Lg0KMTk5NjpbQ29tcHV0aW5nXVt3d3ddIE1hcmlvIDY0IGdhbWUgcmFuIDEwMCBtaWxsaW9uIGNhbGN1bGF0aW9ucyBwZXIgc2Vjb25kLCA1NDAgbWlsbGlvbiAoSGFsZi1MaWZlKSBpbiAxOTk4LCBNaW5lY3JhZnQgKDIwMTEpIHJ1bm5pbmcgMTAwIGJpbGxpb24gY2FsY3VsYXRpb25zLCBDeWJlcnB1bmsgMjA3NyAobW9zdCByZWFsaXN0aWMgdmlkZW8gZ2FtZSAyMDI0KSwgeW91IG5lZWQgYSBncmFwaGljcyBjYXJkIHRoYXQgY2FuIHBlcmZvcm0gYXJvdW5kIDM2IHRyaWxsaW9uIGNhbGMgcGVyIHNlY29uZC4NCjE5OTY6IFByb2YgTWFsY29sbSBIZWF0aC4gUHJvZmVzc29yIG9mIEdyZWVrIExhbmd1YWdlIGFuZCBMaXRlcmF0dXJlIEBsZWVkcy5hYy51aywgdHJhbnNsYXRlZCBBcmlzdG90bGUncyBQb2V0aWNzLg0KMTk5NjogVGhlIDU2SyBtb2RlbSB3YXMgaW52ZW50ZWQgYnkgRHIuIEJyZW50IFRvd25zaGVuZA0KMTk5NiAoRmViIDEzKTogTmVwYWxlc2UgQ2l2aWwgV2FyIHN0YXJ0ZWQuIFRoZSBNYW9pc3QgUmViZWxsaW9uIChsYWJlbGxlZCB0aGUgUGVvcGxlJ3MgV2FyIGJ5IHRoZW4gQ1BOKE1hb2lzdCkpIHdhcyBhbiBhcm1lZCBjb25mbGljdCBhZ2FpbnN0IEdvdmVybm1lbnQgb2YgTmVwYWwgKHRoZW4gSE1HIG9mIE5lcGFsKSBmb3VnaHQgZnJvbSAxOTk2IHRvIDIwMDYuIFRoZSByZWJlbGxpb24gd2FzIGxhdW5jaGVkIGJ5IHRoZSBDb21tdW5pc3QgUGFydHkgb2YgTmVwYWwgKE1hb2lzdCkgb24gMTMgRmVicnVhcnkgMTk5NiB3aXRoIHRoZSBtYWluIGFpbSBvZiBvdmVydGhyb3dpbmcgdGhlIE5lcGFsZXNlIG1vbmFyY2h5IGFuZCBlc3RhYmxpc2hpbmcgYSAnUGVvcGxlJ3MgUmVwdWJsaWMnLiBJdCBlbmRlZCB3aXRoIHRoZSBDb21wcmVoZW5zaXZlIFBlYWNlIEFjY29yZCBzaWduZWQgb24gMjEgTm92ZW1iZXIgMjAwNi4NCjE5OTYgKE1hciAxKTogW0dlb1BvbGl0aWNzXSBUaGUgQXNpYeKAk0V1cm9wZSBNZWV0aW5nIChBU0VNKSBpcyBhbiBBc2lhbuKAk0V1cm9wZWFuIHBvbGl0aWNhbCBkaWFsb2d1ZSBmb3J1bSB0byBlbmhhbmNlIHJlbGF0aW9ucyBhbmQgdmFyaW91cyBmb3JtcyBvZiBjb29wZXJhdGlvbiBiZXR3ZWVuIGl0cyBwYXJ0bmVycy4gSXQgd2FzIG9mZmljaWFsbHkgZXN0YWJsaXNoZWQgYXQgdGhlIDFzdCBBU0VNIFN1bW1pdCAoQVNFTTEpIGluIEJhbmdrb2ssIFRoYWlsYW5kLCBieSB0aGUgdGhlbiAxNSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aGUgRXVyb3BlYW4gQ29tbWlzc2lvbiwgdGhlIHRoZW4gNyBNZW1iZXIgU3RhdGVzIG9mIHRoZSBBc3NvY2lhdGlvbiBvZiBTb3V0aGVhc3QgQXNpYW4gTmF0aW9ucyAoQVNFQU4pLCBhbmQgdGhlIGluZGl2aWR1YWwgY291bnRyaWVzIG9mIENoaW5hLCBKYXBhbiwgYW5kIFNvdXRoIEtvcmVhLiBBIHNlcmllcyBvZiBlbmxhcmdlbWVudHMgc2F3IGFkZGl0aW9uYWwgRVUgTWVtYmVyIFN0YXRlcyBqb2luIGFzIHdlbGwgYXMgSW5kaWEsIE1vbmdvbGlhLCBQYWtpc3RhbiBhbmQgdGhlIEFTRUFOIFNlY3JldGFyaWF0IGluIDIwMDgsIEF1c3RyYWxpYSwgTmV3IFplYWxhbmQgYW5kIFJ1c3NpYSBpbiAyMDEwLCBCYW5nbGFkZXNoLCBOb3J3YXksIGFuZCBTd2l0emVybGFuZCBpbiAyMDEyLCBhcyB3ZWxsIGFzIENyb2F0aWEsIGFuZCBLYXpha2hzdGFuIGluIDIwMTQuDQoxOTk2IChBcHIgMjYpOiBbR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2l0aCB0aGUgc2lnbmluZyBvZiB0aGUgVHJlYXR5IG9uIERlZXBlbmluZyBNaWxpdGFyeSBUcnVzdCBpbiBCb3JkZXIgUmVnaW9ucyBpbiBTaGFuZ2hhaSBieSB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4uIExhdGVyIG9uIEp1biAxNSwgMjAwMSBpdCBnb3QgcmVuYW1lZCBhcyBTaGFuZ2hhaSBDb29wZXJhdGlvbiBPcmdhbmlzYXRpb24gKFNDTykgb3IgU2hhbmdoYWkgUGFjdCANCjE5OTYgKE1heSAxNik6IEF0YWwgQmloYXJpIFZhanBheWVlIGJlY29tZXMgUE0gb2YgSW5kaWEgZm9yIHRoZSB2ZXJ5IGZpcnN0IHRpbWUgZm9yIDE2IGRheXMuDQoxOTk2IChKdW4gMSk6IEF0YWwgQmloYXJpIFZhanBheWVlIHJlc2lnbnMuIEhEIERldmUgR293ZGEgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NiAoQXVnIDE0KTpbcmVzZWFyY2hdW2V4dHJlbWVdIEthcmVuIEVsaXphYmV0aCBXZXR0ZXJoYWhuIChPY3RvYmVyIDE2LCAxOTQ4IOKAkyBKdW5lIDgsIDE5OTcpLCBhbHNvIGtub3duIGFzIEthcmVuIFdldHRlcmhhaG4gSmVubmV0dGUsIHdhcyBhbiBBbWVyaWNhbiBwcm9mZXNzb3Igb2YgY2hlbWlzdHJ5IGF0IERhcnRtb3V0aCBDb2xsZWdlLCBOZXcgSGFtcHNoaXJlLCB3aG8gc3BlY2lhbGl6ZWQgaW4gdG94aWMgbWV0YWwgZXhwb3N1cmUuIFNoZSBkaWVkIG9mIG1lcmN1cnkgcG9pc29uaW5nIGF0IHRoZSBhZ2Ugb2YgNDggZHVlIHRvIGFjY2lkZW50YWwgZXhwb3N1cmUgdG8gdGhlIGV4dHJlbWVseSB0b3hpYyBvcmdhbmljIG1lcmN1cnkgY29tcG91bmQgZGltZXRoeWxtZXJjdXJ5IChIZyhDSDMpMikuIFByb3RlY3RpdmUgZ2xvdmVzIGluIHVzZSBhdCB0aGUgdGltZSBvZiB0aGUgaW5jaWRlbnQgcHJvdmlkZWQgaW5zdWZmaWNpZW50IHByb3RlY3Rpb24sIGFuZCBleHBvc3VyZSB0byBvbmx5IGEgc2luZ2xlIGRyb3Agb3IgdHdvIG9mIHRoZSBkaW1ldGh5bG1lcmN1cnkgYWJzb3JiZWQgdGhyb3VnaCB0aGUgZ2xvdmVzIHByb3ZlZCB0byBiZSBmYXRhbCBhZnRlciBsZXNzIHRoYW4gYSB5ZWFyLiBUZXN0cyBsYXRlciByZXZlYWxlZCB0aGF0IGRpbWV0aHlsbWVyY3VyeSBjYW4sIGluIGZhY3QsIHJhcGlkbHkgcGVybWVhdGUgc2V2ZXJhbCBraW5kcyBvZiBsYXRleCBnbG92ZXMgYW5kIGVudGVyIHRoZSBza2luIHdpdGhpbiBhYm91dCAxNSBzZWNvbmRzLiBIZXIgZXhwb3N1cmUgd2FzIGxhdGVyIGNvbmZpcm1lZCBieSBoYWlyIGFuYWx5c2lzLCB3aGljaCBzaG93ZWQgYSBkcmFtYXRpYyBqdW1wIGluIG1lcmN1cnkgbGV2ZWxzIDE3IGRheXMgYWZ0ZXIgdGhlIGluaXRpYWwgYWNjaWRlbnQsIHBlYWtpbmcgYXQgMzkgZGF5cywgZm9sbG93ZWQgYnkgYSBncmFkdWFsIGRlY2xpbmUuIEFwcHJveGltYXRlbHkgdGhyZWUgbW9udGhzIGFmdGVyIHRoZSBpbml0aWFsIGFjY2lkZW50IFdldHRlcmhhaG4gYmVnYW4gZXhwZXJpZW5jaW5nIGJyaWVmIGVwaXNvZGVzIG9mIGFiZG9taW5hbCBkaXNjb21mb3J0IGFuZCBub3RpY2VkIHNpZ25pZmljYW50IHdlaWdodCBsb3NzLiBUaGUgbW9yZSBkaXN0aW5jdGl2ZSBuZXVyb2xvZ2ljYWwgc3ltcHRvbXMgb2YgbWVyY3VyeSBwb2lzb25pbmcsIGluY2x1ZGluZyBsb3NzIG9mIGJhbGFuY2UgYW5kIHNsdXJyZWQgc3BlZWNoLCBhcHBlYXJlZCBpbiBKYW51YXJ5IDE5OTcsIGZpdmUgbW9udGhzIGFmdGVyIHRoZSBhY2NpZGVudC4gSGVyIGJsb29kIGFuZCB1cmluYXJ5IG1lcmN1cnkgY29udGVudCB3ZXJlIG1lYXN1cmVkIGF0IDQsMDAwIM68Zy9MIGFuZCAyMzQgzrxnL0wsIHJlc3BlY3RpdmVseeKAlGJvdGggbWFueSB0aW1lcyB0aGVpciByZXNwZWN0aXZlIHRveGljIHRocmVzaG9sZHMgb2YgMjAwIM68Zy9MIGFuZCA1MCDOvGcvTCAoYmxvb2QgYW5kIHVyaW5lIHJlZmVyZW5jZSByYW5nZXMgYXJlIDEgdG8gOCDOvGcvTCBhbmQgMSB0byA1IM68Zy9MKS4NCjE5OTYgKERlYyA0IDA2OjU4OjA3IFVUQyk6W1NwYWNlXVtNYXJzXVtFYXJ0aF0gTGF1bmNoIG9mIE1hcnMgUGF0aGZpbmRlciBvbiBEZWx0YSBJSSA3OTI1ICgjRDI0MCkNCnJvY2tldCBmcm9tIENhcGUgQ2FuYXZlcmFsIFNMQy0xNy4gVG8gcHJvdmUgdGhhdCB0aGUgZGV2ZWxvcG1lbnQgb2YgImZhc3RlciwgYmV0dGVyIGFuZCBjaGVhcGVyIiBzcGFjZWNyYWZ0IHdhcyBwb3NzaWJsZSAod2l0aCB0aHJlZSB5ZWFycyBmb3IgZGV2ZWxvcG1lbnQgYW5kIGEgY29zdCB1bmRlciAkMTUwIG1pbGxpb24gZm9yIHRoZSBsYW5kZXIsIGFuZCAkMjUgbWlsbGlvbiBmb3IgdGhlIHJvdmVyKS4gVG8gc2hvdyB0aGF0IGl0IHdhcyBwb3NzaWJsZSB0byBzZW5kIGEgbG9hZCBvZiBzY2llbnRpZmljIGluc3RydW1lbnRzIHRvIGFub3RoZXIgcGxhbmV0IHdpdGggYSBzaW1wbGUgc3lzdGVtIGFuZCBhdCBvbmUtZmlmdGVlbnRoIHRoZSBjb3N0IG9mIGEgVmlraW5nIG1pc3Npb24uIChGb3IgY29tcGFyaXNvbiwgdGhlIFZpa2luZyBtaXNzaW9ucyBjb3N0ICQ5MzUgbWlsbGlvbiBpbiAxOTc0IG9yICQzLjUgYmlsbGlvbiBpbiAxOTk3IGRvbGxhcnMuKS4gVG8gZGVtb25zdHJhdGUgTkFTQSdzIGNvbW1pdG1lbnQgdG8gbG93LWNvc3QgcGxhbmV0YXJ5IGV4cGxvcmF0aW9uIGJ5IGZpbmlzaGluZyB0aGUgbWlzc2lvbiB3aXRoIGEgdG90YWwgZXhwZW5kaXR1cmUgb2YgJDI4MCBtaWxsaW9uLCBpbmNsdWRpbmcgdGhlIGxhdW5jaCB2ZWhpY2xlIGFuZCBtaXNzaW9uIG9wZXJhdGlvbnMuDQoxOTk2OiBhIHJhaWQgb24gdGhlIEFuaW1hbCBIdXNiYW5kcnkgZGVwYXJ0bWVudOKAmXMgb2ZmaWNlcyBpbiBDaGFpYmFzYSwgQmloYXIgdW5mb2xkZWQgdGhlIFJzLjk1MCBjcm9yZSBmb2RkZXIgc2NhbSwgaW4gd2hpY2ggdGhlIEJpaGFyIGNoaWVmIG1pbmlzdGVyIExhbHUgUHJhc2FkIFlhZGF2IGNhdGNoIHVwIGluIGEgbGlmZWxvbmcgdHVzc2xlIHdpdGggdGhlIENCSS4NCjE5OTY6W0Jvb2tdW0FkdmVudHVyZV0gSm9uIEtyYWthdWVyJ3MgSW50byB0aGUgV2lsZC4NCjE5OTY6W0NvbXB1dGluZ10gVGhlIFZpZGVvTEFOIHNvZnR3YXJlIG9yaWdpbmF0ZWQgYXMgYSBGcmVuY2ggYWNhZGVtaWMgcHJvamVjdC4gVkxDIHVzZWQgdG8gc3RhbmQgZm9yICJWaWRlb0xBTiBDbGllbnQiIHdoZW4gVkxDIHdhcyBhIGNsaWVudCBvZiB0aGUgVmlkZW9MQU4gcHJvamVjdCwgb2ZmaWNpYWxseSByZWxlYXNlZCB1bmRlciBHTlUgR1BMIG9uIDIwMDEgKEZlYiAxKS4NCjE5OTY6W01lbWVdIERhbmNpbmcgQmFieSBTY3JlZW5zYXZlcg0KMTk5NjpbU3BhY2VYXSBUaGUgZW50aXJlIHByb2Nlc3MgZm9yIHRoZSBKYW1lcyBXZWJiIFNwYWNlIFRlbGVzY29wZSAoSldTVCkgZnJvbSBpbml0aWFsIGNvbmNlcHQgdG8gbGF1bmNoIHNwYW5uZWQgYXBwcm94aW1hdGVseSAyNSB5ZWFycywgd2l0aCBpbml0aWFsIGRlc2lnbnMgYmVnaW5uaW5nIGluIDE5OTYgYW5kIHRoZSB0ZWxlc2NvcGUgbGF1bmNoaW5nIGluIDIwMjEsIGJ1dCBhIHNpZ25pZmljYW50IHBvcnRpb24gb2YgdGhpcyB3YXMgc3BlbnQgaW4gZGVzaWduLCB0ZXN0aW5nLCBhbmQgb3ZlcmNvbWluZyBtYWpvciByZWRlc2lnbnMgYW5kIGRlbGF5cywgbm90IGp1c3QgYXNzZW1ibHkuIA0KMTk5NiAoRmViIDI4KTpbRGVsaGldIEluZGlyYXB1cmFtLCBHaGF6aWFiYWQgd2FzIGVzdGQgd2hlbiBpdHMgZm91bmRhdGlvbiBzdG9uZSAoS2FsYSBQYXRoYXIpIHdhcyBpbmF1Z3VyYXRlZCBieSBTaCBNb3RpbGFsIFZvcmEsIHRoZW4gR292ZXJub3Igb2YgVVAuICgyMDIxKSBJJ3B1cmFtIEV4dG4gdG8gYmUgYnVpbHQgb24gMTIgYWNyZXMgb25seSwgY29uY2VpdmVkIGluIDIwMDQuDQoxOTk2OltCb29rXVtNaWxpdGFyeV1bQ3VsdHVyZV1bRVVdW1VTQV0gR2VvcmdlIFIuUi4gTWFydGluIGlzIHRoZSBBbWVyaWNhbiBhdXRob3Igb2YgdGhlIGVwaWMgZmFudGFzeSBib29rIHNlcmllcyBBIFNvbmcgb2YgSWNlIGFuZCBGaXJlLCB3aGljaCBiZWdhbiB3aXRoIEEgR2FtZSBvZiBUaHJvbmVzICgxOTk2KSBhbmQgc2VydmVkIGFzIHRoZSBiYXNpcyBmb3IgSEJPJ3MgbWFzc2l2ZWx5IHBvcHVsYXIgR2FtZSBvZiBUaHJvbmVzIFRWIHNlcmllcy4gQSBTb25nIG9mIEljZSBhbmQgRmlyZSBpcyBhIHNlcmllcyBvZiBoaWdoIGZhbnRhc3kgbm92ZWxzIGJ5IHRoZSBBbWVyaWNhbiBhdXRob3IgR2VvcmdlIFIuIFIuIE1hcnRpbi4gTWFydGluIGJlZ2FuIHdyaXRpbmcgdGhlIGZpcnN0IHZvbHVtZSwgQSBHYW1lIG9mIFRocm9uZXMsIGluIDE5OTEsIGFuZCBwdWJsaXNoZWQgaXQgaW4gMTk5Ni4gTWFydGluLCB3aG8gb3JpZ2luYWxseSBlbnZpc2lvbmVkIHRoZSBzZXJpZXMgYXMgYSB0cmlsb2d5LCBoYXMgcmVsZWFzZWQgZml2ZSBvdXQgb2Ygc2V2ZW4gcGxhbm5lZCB2b2x1bWVzLiANCg0KW0dlbmVyYXRpb25dIE1pbGxlbm5pYWwgZ2VuZXJhdGlvbiAoMTk4MeKAkzE5OTYpIGVuZHM7IGxhc3RlZCBmb3IgMTUgeWVhcnMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICA1MCB5ZWFycyBvZiBJbmRlcGVuZGVudCBJbmRpYSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSANCg0KW0dlbmVyYXRpb25dIEdlbiBaICgxOTk34oCTMjAxMikgc3RhcnRzOyBhbmQgZXhpc3RzIGZvciBuZXh0IDE1IHllYXJzLg0KDQoxOTk3OltXaG9dW1Jlc2VhcmNoXVtDb21wdXRpbmddW1RlY2hdW0N1bHR1cmVdIFZMQyBNZWRpYSBQbGF5ZXIgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBzdHVkZW50cyBhdCB0aGUgRnJlbmNoIGVuZ2luZWVyaW5nIHNjaG9vbCDDiWNvbGUgQ2VudHJhbGUgUGFyaXMgaW4gMTk5Ni4gV2hpbGUgaXQgc3RhcnRlZCBhcyBhbiBhY2FkZW1pYyBwcm9qZWN0IChWaWRlb0xBTikgdG8gc3RyZWFtIHZpZGVvIG92ZXIgYSBjYW1wdXMgbmV0d29yaywgaXRzIGRldmVsb3BtZW50IGFuZCBtb2Rlcm5pemF0aW9uIHdlcmUgbGF0ZXIgbGVkIGJ5IEplYW4tQmFwdGlzdGUgS2VtcGYuIA0KMTk5NzpbUmVzZWFyY2hdW1NwYWNlXSAyOSBKdWx5IDE5OTc6IGEgTkFTQSBzY2llbnRpc3QgYW5ub3VuY2VkIGV2aWRlbmNlIG9mIGZvc3NpbGl6ZWQgbWljcm9zY29waWMgbGlmZSBmb3JtcyBpbiBhIG1ldGVvcml0ZSBub3QgZnJvbSBhbnkga25vd24gcGxhbmV0Lg0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgR3JvdXAgb2YgRWlnaHQgKEc4KSB3YXMgYW4gaW50ZXJnb3Zlcm5tZW50YWwgcG9saXRpY2FsIGZvcnVtIGZyb20gMTk5NyB0byAyMDE0LCBmb3JtZWQgYnkgaW5jb3Jwb3JhdGluZyBSdXNzaWEgaW50byB0aGUgRzcuIFRoZSBHOCBiZWNhbWUgdGhlIEc3IGFnYWluIGFmdGVyIFJ1c3NpYSB3YXMgZXhwZWxsZWQgaW4gMjAxNCBhZnRlciB0aGUgUnVzc2lhbiBhbm5leGF0aW9uIG9mIENyaW1lYS4gRm91bmRlZDogMTk5NywgRGVudmVyLCBDb2xvcmFkbywgVW5pdGVkIFN0YXRlcw0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBGb3VuZGVkOiA2IEp1bmUgMTk5NywgVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiAoQklNU1RFQykgaXMgYW4gaW50ZXJuYXRpb25hbCBvcmdhbml6YXRpb24gb2Ygc2V2ZW4gU291dGggQXNpYW4gYW5kIFNvdXRoZWFzdCBBc2lhbiBuYXRpb25zLCBob3VzaW5nIDEuNzMgYmlsbGlvbiBwZW9wbGUgYW5kIGhhdmluZyBhIGNvbWJpbmVkIGdyb3NzIGRvbWVzdGljIHByb2R1Y3Qgb2YgVVMkNS4yIHRyaWxsaW9uLg0KMTk5NzpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gYnVpbHQgdGhlIGZpcnN0IGV4cGVyaW1lbnRhbCBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCBjb3VsZCBtYW5pcHVsYXRlIDcgcXViaXRzIHVzaW5nIG51Y2xlYXIgbWFnbmV0aWMgcmVzb25hbmNlIChOTVIpIHRlY2huaXF1ZXMuDQoxOTk3IChKdWwgNCk6W1NwYWNlXVtNYXJzXSBUaGUgTWFycyBQYXRoZmluZGVyIGVuZHVyZWQgYSAzMC1zZWNvbmQgY29tbXVuaWNhdGlvbnMgYmxhY2tvdXQgYXMgaXQgZW50ZXJlZCBNYXJzJyBhdG1vc3BoZXJlLiBJdCBsYW5kZWQgYXQgQXJlcyBWYWxsaXMsIENocnlzZSBQbGFuaXRpYSwgTWFycyAxOcKwN+KAsjQ44oCzTiAzM8KwMTPigLIxMuKAs1cuIE1hcnMgUGF0aGZpbmRlciAoTUVTVVIgUGF0aGZpbmRlcikgaXMgYW4gQW1lcmljYW4gcm9ib3RpYyBzcGFjZWNyYWZ0IHRoYXQgbGFuZGVkIGEgYmFzZSBzdGF0aW9uIHdpdGggYSByb3ZpbmcgcHJvYmUgb24gTWFycyBpbiAxOTk3LiBJdCBjb25zaXN0ZWQgb2YgYSBsYW5kZXIsIHJlbmFtZWQgdGhlIENhcmwgU2FnYW4gTWVtb3JpYWwgU3RhdGlvbiwgYW5kIGEgbGlnaHR3ZWlnaHQsIDEwLjYga2cgKDIzIGxiKSB3aGVlbGVkIHJvYm90aWMgTWFycyByb3ZlciBuYW1lZCBTb2pvdXJuZXIsIHRoZSBmaXJzdCByb3ZlciB0byBvcGVyYXRlIG91dHNpZGUgdGhlIEVhcnRo4oCTTW9vbiBzeXN0ZW0uDQoxOTk3OltCb29rXSBNaXRjaCBBbGJvbSdzIFR1ZXNkYXlzIHdpdGggTW9ycmllLg0KMTk5NzpbR2FtaW5nXSBHcmFuZCBUaGVmdCBBdXRvIChHVEEpIHJlbGVhc2VkIGJ5IERNQSBEZXNpZ24gKGxhdGVyIFJvY2tzdGFyIE5vcnRoKSBmb3IgUFMxLCBXaW5kb3dzIGFuZCBNUy1ET1M7IEdyYW5kIFRoZWZ0IEF1dG86IFZpY2UgQ2l0eSAoMjAwMik7IEdyYW5kIFRoZWZ0IEF1dG86IFNhbiBBbmRyZWFzICgyMDA0KTsgR3JhbmQgVGhlZnQgQXV0byBJViAoMjAwOCk7IEdyYW5kIFRoZWZ0IEF1dG8gViAoMjAxMyk7IEdyYW5kIFRoZWZ0IEF1dG86IFRoZSBUcmlsb2d5IOKAkyBUaGUgRGVmaW5pdGl2ZSBFZGl0aW9uICgyMDIxKQ0KMTk5NzogVGVra2VuIDMgd2FzIGRlc2lnbmVkIGJ5IEthdHN1aGlybyBIYXJhZGEgKE9zYWthLCBPc2FrYSBQcmVmZWN0dXJlLCBKYXBhbikgb2YgQmFuZGFpIE5hbWNvIEVudGVydGFpbm1lbnQgaGVhZHF1YXJ0ZXJlZCBhdCDFjHRhLCBUb2t5by4NCjE5OTcgKE1hciA2KTogW0dlb1BvbGl0aWNzXSBUaGUgSW5kaWFuIE9jZWFuIFJpbSBBc3NvY2lhdGlvbiwgZm9ybWVybHkga25vd24gYXMgdGhlIEluZGlhbiBPY2VhbiBSaW0gSW5pdGlhdGl2ZSBhbmQgdGhlIEluZGlhbiBPY2VhbiBSaW0gQXNzb2NpYXRpb24gZm9yIFJlZ2lvbmFsIENvb3BlcmF0aW9uLCBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBjb25zaXN0aW5nIG9mIDIzIHN0YXRlcyBib3JkZXJpbmcgdGhlIEluZGlhbiBPY2Vhbi4gVGhlIElPUkEgaXMgYSByZWdpb25hbCBmb3J1bSwgdHJpcGFydGl0ZSBpbiBuYXR1cmUsIGJyaW5naW5nIHRvZ2V0aGVyIHJlcHJlc2VudGF0aXZlcyBvZiBHb3Zlcm5tZW50LCBCdXNpbmVzcyBhbmQgQWNhZGVtaWEsIGZvciBwcm9tb3RpbmcgY28tb3BlcmF0aW9uIGFuZCBjbG9zZXIgaW50ZXJhY3Rpb24gYW1vbmcgdGhlbS4gSXQgaXMgYmFzZWQgb24gdGhlIHByaW5jaXBsZXMgb2YgT3BlbiBSZWdpb25hbGlzbSBmb3Igc3RyZW5ndGhlbmluZyBFY29ub21pYyBDb29wZXJhdGlvbiBwYXJ0aWN1bGFybHkgb24gVHJhZGUgRmFjaWxpdGF0aW9uIGFuZCBJbnZlc3RtZW50LCBQcm9tb3Rpb24gYXMgd2VsbCBhcyBTb2NpYWwgRGV2ZWxvcG1lbnQgb2YgdGhlIHJlZ2lvbi4gVGhlIENvb3JkaW5hdGluZyBTZWNyZXRhcmlhdCBvZiBJT1JBIGlzIGxvY2F0ZWQgYXQgRWJlbmUsIE1hdXJpdGl1cy4NCjE5OTcgKEFwciAyMSk6IEguRC4gRGV2ZSBHb3dkYSByZXNpZ25zLiBJbmRlciBLdW1hciBHdWpyYWwgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NyAoSnVuIDYpOiBbR2VvUG9saXRpY3NdIEJJTVNURUMgZm91bmRlZC4gVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBvZiBzZXZlbiBTb3V0aCBBc2lhbiBhbmQgU291dGhlYXN0IEFzaWFuIG5hdGlvbnMsIGhvdXNpbmcgMS43MyBiaWxsaW9uIHBlb3BsZSBhbmQgaGF2aW5nIGEgY29tYmluZWQgZ3Jvc3MgZG9tZXN0aWMgcHJvZHVjdCBvZiAkMy44IHRyaWxsaW9uLiBUaGUgQklNU1RFQyBtZW1iZXIgc3RhdGVzIOKAkyBCYW5nbGFkZXNoLCBCaHV0YW4sIEluZGlhLCBNeWFubWFyLCBOZXBhbCwgU3JpIExhbmthLCBhbmQgVGhhaWxhbmQg4oCTIGFyZSBhbW9uZyB0aGUgY291bnRyaWVzIGRlcGVuZGVudCBvbiB0aGUgQmF5IG9mIEJlbmdhbC4NCjE5OTcgKEp1biA4KTogRGVzcGl0ZSBhZ2dyZXNzaXZlIGNoZWxhdGlvbiB0aGVyYXB5LCBoZXIgY29uZGl0aW9uIHJhcGlkbHkgZGV0ZXJpb3JhdGVkLiBUaHJlZSB3ZWVrcyBhZnRlciB0aGUgZmlyc3QgbmV1cm9sb2dpY2FsIHN5bXB0b21zIGFwcGVhcmVkLCBXZXR0ZXJoYWhuIGxhcHNlZCBpbnRvIHdoYXQgYXBwZWFyZWQgdG8gYmUgYSB2ZWdldGF0aXZlIHN0YXRlIHB1bmN0dWF0ZWQgYnkgcGVyaW9kcyBvZiBleHRyZW1lIGFnaXRhdGlvbi4gT25lIG9mIGhlciBmb3JtZXIgc3R1ZGVudHMgc2FpZCB0aGF0ICJIZXIgaHVzYmFuZCBzYXcgdGVhcnMgcm9sbGluZyBkb3duIGhlciBmYWNlLiBJIGFza2VkIGlmIHNoZSB3YXMgaW4gcGFpbi4gVGhlIGRvY3RvcnMgc2FpZCBpdCBkaWRuJ3QgYXBwZWFyIHRoYXQgaGVyIGJyYWluIGNvdWxkIGV2ZW4gcmVnaXN0ZXIgcGFpbi4iIFdldHRlcmhhaG4gd2FzIHJlbW92ZWQgZnJvbSBsaWZlIHN1cHBvcnQgYW5kIHByb25vdW5jZWQgZGVhZCBvbiBKdW5lIDgsIDE5OTcsIHRlbiBtb250aHMgYWZ0ZXIgaGVyIGluaXRpYWwgZXhwb3N1cmUuIEluIHJlc3BvbnNlLCB0aGUgT2NjdXBhdGlvbmFsIFNhZmV0eSBhbmQgSGVhbHRoIEFkbWluaXN0cmF0aW9uIHJlY29tbWVuZGVkIHRoYXQgdGhlIHVzZSBvZiBkaW1ldGh5bG1lcmN1cnkgYmUgYXZvaWRlZCB1bmxlc3MgYWJzb2x1dGVseSBuZWNlc3NhcnkgYW5kIG1hbmRhdGVkIHRoZSB1c2Ugb2YgcGxhc3RpYy1sYW1pbmF0ZSBnbG92ZXMgKFNpbHZlclNoaWVsZCkgd2hlbiBoYW5kbGluZyB0aGlzIGNvbXBvdW5kLg0KMTk5NyAoSnVuIDEzKTpbSmFja10gQm9yZGVyDQoxOTk3IChKdW4gMjYpOltCb29rXSAzMllPIEouIEsuIFJvd2xpbmcgcHVibGlzaGVzIGhlciBmaXJzdCBIYXJyeSBQb3R0ZXIgYm9vaywgVGhlIFBoaWxvc29waGVyJ3MgU3RvbmU7IA0KVGhlIENoYW1iZXIgb2YgU2VjcmV0cyAoMiBKdWx5IDE5OTgpLA0KVGhlIFByaXNvbmVyIG9mIEF6a2FiYW4gKDggSnVseSAxOTk5KSwNClRoZSBHb2JsZXQgb2YgRmlyZSAoOCBKdWx5IDIwMDApLA0KVGhlIE9yZGVyIG9mIHRoZSBQaG9lbml4ICgsIDI3IEp1bmUgMjAwMyksDQpUaGUgSGFsZi1CbG9vZCBQcmluY2UgKDE2IEp1bHkgMjAwNSksDQpUaGUgRGVhdGhseSBIYWxsb3dzICgyMSBKdWx5IDIwMDcpDQoxOTk3IChBdWcgMjUpOltTcGFjZV0gQWR2YW5jZWQgQ29tcG9zaXRpb24gRXhwbG9yZXIgaXMgYSBOQVNBIEV4cGxvcmVyIHByb2dyYW0gc2F0ZWxsaXRlIGFuZCBzcGFjZSBleHBsb3JhdGlvbiBtaXNzaW9uIHRvIHN0dWR5IG1hdHRlciBjb21wcmlzaW5nIGVuZXJnZXRpYyBwYXJ0aWNsZXMgZnJvbSB0aGUgc29sYXIgd2luZCwgdGhlIGludGVycGxhbmV0YXJ5IG1lZGl1bSwgYW5kIG90aGVyIHNvdXJjZXMuDQoxOTk3IChTZXAgMTMpOiB0aGUgaW50cm9kdWN0b3J5IGVwaXNvZGUgb2YgU2hha3RpbWFuIHdhcyBhaXJlZCBvbiBEb29yZGFyc2hhbiAoSW5kaWEncyBuYXRpb25hbCB0ZWxldmlzaW9uIG5ldHdvcmspIGZyb20gMjcgU2VwdGVtYmVyIDE5OTcgdG8gMjcgTWFyY2ggMjAwNSwgb24gU3VuZGF5cyBhdCAxMiBub29uIElTVC4gVGhlIHRlbGVjYXN0IHNsb3QsIGhvd2V2ZXIgd2FzIHNoaWZ0ZWQgdG8gOTozMCBhLm0uIGZvciB0aGUgbGFzdCBlcGlzb2Rlcy4gDQoxOTk3IChTZXAgMjcgMTA6MjMgVVRDKTpbU3BhY2VdW01hcnNdIExhc3QgY29udGFjdCB3aXRoIE1hcnMgUGF0aGZpbmRlci4gTWlzc2lvbiBkdXJhdGlvbiAoTGF1bmNoIHRvIGxhc3QgY29udGFjdCk6IDkgbW9udGhzLCAyMyBkYXlzLg0KMTk5NyAoT2N0IDMxKTpbQm9va10gRG9uYWxkIFRydW1wJ3MgVHJ1bXA6IFRoZSBBcnQgb2YgdGhlIENvbWViYWNrOyBUaGUgQW1lcmljYSBXZSBEZXNlcnZlICgyMDAwKTsgVHJ1bXA6IFRoaW5rIExpa2UgYSBCaWxsaW9uYWlyZTogRXZlcnl0aGluZyBZb3UgTmVlZCB0byBLbm93IEFib3V0IFN1Y2Nlc3MsIFJlYWwgRXN0YXRlLCBhbmQgTGlmZSAoMjAwNCk7IFdoeSBXZSBXYW50IFlvdSB0byBCZSBSaWNoICgyMDA2KTsgVHJ1bXA6IFRoZSBCZXN0IFJlYWwgRXN0YXRlIEFkdmljZSBJIEV2ZXIgUmVjZWl2ZWQ6IDEwMCBUb3AgRXhwZXJ0cyBTaGFyZSBUaGVpciBTdHJhdGVnaWVzICgyMDA2LCBOb3YgMSk7IFRoaW5rIEJJRyBhbmQgS2ljayBBc3MgaW4gQnVzaW5lc3MgYW5kIExpZmUgKDIwMDcpOyBUcnVtcCBOZXZlciBHaXZlIFVwOiBIb3cgSSBUdXJuZWQgTXkgQmlnZ2VzdCBDaGFsbGVuZ2VzIGludG8gU3VjY2VzcyAoMjAwOCk7IFRpbWUgdG8gR2V0IFRvdWdoOiBNYWtpbmcgQW1lcmljYSAjMSBBZ2FpbiAoMjAxMSk7IENyaXBwbGVkIEFtZXJpY2E6IEhvdyB0byBNYWtlIEFtZXJpY2EgR3JlYXQgQWdhaW4gKDIwMTUpDQoxOTk3OiBBcnVuZGhhdGkgUm95IGJlY2FtZSB0aGUgZmlyc3QgSW5kaWFuIHRvIHdpbiBNYW4gQm9va2VyIFByaXplIGZvciBoZXIgbm92ZWwgJ1RoZSBHb2Qgb2YgU21hbGwgVGhpbmdzJy4NCjE5OTc6IElJVC1KRUUgd2FzIGNvbmR1Y3RlZCB0d2ljZSBhZnRlciB0aGUgUS1QYXBlciB3YXMgbGVha2VkLg0KMTk5NzogTkFTQSBlc3RpbWF0ZWQgdGhlcmUgd2VyZSBhcHByb3guIDIsNjQ1IGFydGlmaWNpYWwgc2F0ZWxsaXRlIHBheWxvYWRzIG9yYml0dGluZyB0aGUgZWFydGggYW5kIDYsMjE2IHBpZWNlcyBvZiBzcGFjZSBkZWJyaXMgYXMgdHJhY2tlZCBieSB0aGUgR1NGQy4gT3ZlciAxNiwyOTEgcHJldmlvdXNseSBsYXVuY2hlZCBvYmplY3RzIGhhdmUgZGVjYXllZCBpbnRvIHRoZSBFYXJ0aCdzIGF0bW9zcGhlcmUuDQoxOTk3OiBCSEMgRmluYW5jaWFsLCBJbmMuIG9mIFBlbm5zeWx2YW5pYSBtZXJnZWQgaW50byBGSVNWIHRvIGZvcm0gU2VjdXJlZCBUcmFuc2FjdGlvbiBQcm9jZXNzaW5nIFNlcnZpY2VzLg0KMTk5NzpbQm9va10gVGhlIEZvdXIgQWdyZWVtZW50czogQSBQcmFjdGljYWwgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSBpcyBhIHNlbGYtaGVscCBib29rIGJ5IGJlc3RzZWxsaW5nIGF1dGhvciBEb24gTWlndWVsIFJ1aXogd2l0aCBKYW5ldCBNaWxsczsgVGhlIE1hc3Rlcnkgb2YgTG92ZTogQSBQcmFjdGljYWwgR3VpZGUgdG8gdGhlIEFydCBvZiBSZWxhdGlvbnNoaXAgLS1Ub2x0ZWMgV2lzZG9tIEJvb2sgKDE5OTksIE1hciAzMCk7IFRoZSBWb2ljZSBvZiBLbm93bGVkZ2U6IEEgUHJhY3RpY2FsIEd1aWRlIHRvIElubmVyIFBlYWNlICgyMDA0LCBNYXIgMTApOyBUaGUgRmlmdGggQWdyZWVtZW50OiBBIFByYWN0aWNhbCBHdWlkZSB0byBTZWxmLU1hc3RlcnkgKDIwMDkpOyBUaGUgQ2lyY2xlIG9mIEZpcmU6IEluc3BpcmF0aW9uIGFuZCBHdWlkZWQgTWVkaXRhdGlvbnMgZm9yIExpdmluZyBpbiBMb3ZlIGFuZCBIYXBwaW5lc3MgKDIwMTMsIEF1ZyAxKTsgVGhlIE1hc3Rlcnkgb2YgU2VsZjogQSBUb2x0ZWMgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSAoMjAxNiwgTWF5IDYpDQoxOTk3OltCb29rXSBKb24gS3Jha2F1ZXIncyBJbnRvIFRoaW4gQWlyOiBBIFBlcnNvbmFsIEFjY291bnQgb2YgdGhlIE10LiBFdmVyZXN0IERpc2FzdGVyOyBVbmRlciB0aGUgQmFubmVyIG9mIEhlYXZlbiAoMjAwMyBKdWwpDQoxOTk3IChEZWMgMTEpOltFbnZdIFRoZSBLeW90byBQcm90b2NvbCB3YXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgd2hpY2ggZXh0ZW5kZWQgdGhlIDE5OTIgVW5pdGVkIE5hdGlvbnMgRnJhbWV3b3JrIENvbnZlbnRpb24gb24gQ2xpbWF0ZSBDaGFuZ2UgKFVORkNDQykgdGhhdCBjb21taXRzIHN0YXRlIHBhcnRpZXMgdG8gcmVkdWNlIGdyZWVuaG91c2UgZ2FzIGVtaXNzaW9ucywgYmFzZWQgb24gdGhlIHNjaWVudGlmaWMgY29uc2Vuc3VzIHRoYXQgKHBhcnQgb25lKSBnbG9iYWwgd2FybWluZyBpcyBvY2N1cnJpbmcgYW5kIChwYXJ0IHR3bykgdGhhdCBodW1hbi1tYWRlIENPMiBlbWlzc2lvbnMgYXJlIGRyaXZpbmcgaXQuDQoxOTk3OltJbmRpYV1bRWR1Y2F0aW9uXVtDdWx0dXJlXSBFa2xhdnlhIE1vZGVsIFJlc2lkZW50aWFsIFNjaG9vbCBpcyBhIEdvdmVybm1lbnQgb2YgSW5kaWEgc2NoZW1lIGZvciBtb2RlbCByZXNpZGVudGlhbCBzY2hvb2wgZm9yIEluZGlhbiB0cmliYWxzIGFjcm9zcyBJbmRpYS4gSXQgaXMgb25lIG9mIHRoZSBmbGFnc2hpcCBpbnRlcnZlbnRpb25zIG9mIHRoZSBNaW5pc3RyeSBvZiBUcmliYWwgQWZmYWlycywgR292ZXJubWVudCBvZiBJbmRpYSBhbmQgd2FzIGludHJvZHVjZWQgaW4gdGhlIHllYXIgMTk5Ny05OCB0byBlbnN1cmUgdHJpYmFsIHN0dWRlbnRzIGdldCBhY2Nlc3MgdG8gcXVhbGl0eSBlZHVjYXRpb24gaW4gdGhlIHJlbW90ZSB0cmliYWwgYXJlYXMuIEVNUlNzIGFyZSBzZXQgdXAgaW4gU3RhdGVzL1VUcyB3aXRoIGdyYW50cyB1bmRlciBBcnRpY2xlIDI3NSgxKSBvZiB0aGUgQ29uc3RpdHV0aW9uIG9mIEluZGlhLiBBcyBwZXIgdGhlIGJ1ZGdldCAyMDE4LTE5LCBldmVyeSBibG9jayB3aXRoIG1vcmUgdGhhbiA1MCUgU1QgcG9wdWxhdGlvbiBhbmQgYXQgbGVhc3QgMjAsMDAwIHRyaWJhbCBwZXJzb25zLCB3aWxsIGhhdmUgYW4gRWtsYXZ5YSBNb2RlbCBSZXNpZGVudGlhbCBTY2hvb2wgYnkgdGhlIHllYXIgMjAyMi4NCjE5OTc6W1NwYWNlXSBIaXBwYXJjb3MgKDE5ODkgLTE5OTMpLiBJdCB0b29rIDQtOCB5ZWFycyB0byBvcmdhbml6ZSBhbmQgcHVibGlzaCB0aGUgNCB5ZWFycyBzdHVkeSBieSB0aGlzIGV4cGVyaW1lbnQsIHdoaWNoIHBlcm1pdHRlZCB0aGUgZmlyc3QgaGlnaC1wcmVjaXNpb24gbWVhc3VyZW1lbnRzIG9mIHRoZSBpbnRyaW5zaWMgYnJpZ2h0bmVzc2VzIChjb21wYXJlZCB0byB0aGUgbGVzcyBwcmVjaXNlIGFwcGFyZW50IGJyaWdodG5lc3MpLCBwcm9wZXIgbW90aW9ucywgYW5kIHBhcmFsbGF4ZXMgb2Ygc3RhcnMsIGVuYWJsaW5nIGJldHRlciBjYWxjdWxhdGlvbnMgb2YgdGhlaXIgZGlzdGFuY2UgYW5kIHRhbmdlbnRpYWwgdmVsb2NpdHkuIFdoZW4gY29tYmluZWQgd2l0aCByYWRpYWwgdmVsb2NpdHkgbWVhc3VyZW1lbnRzIGZyb20gc3BlY3Ryb3Njb3B5LCBhc3Ryb3BoeXNpY2lzdHMgd2VyZSBhYmxlIHRvIGZpbmFsbHkgbWVhc3VyZSBhbGwgc2l4IHF1YW50aXRpZXMgbmVlZGVkIHRvIGRldGVybWluZSB0aGUgbW90aW9uIG9mIHN0YXJzLiBUaGUgcmVzdWx0aW5nIEhpcHBhcmNvcyBDYXRhbG9ndWUsIGEgaGlnaC1wcmVjaXNpb24gY2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiAxMTgsMjAwIHN0YXJzLCB3YXMgcHVibGlzaGVkIGluIDE5OTcuIFRoZSBsb3dlci1wcmVjaXNpb24gVHljaG8gQ2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiBhIG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBhdCB0aGUgc2FtZSB0aW1lLCB3aGlsZSB0aGUgZW5oYW5jZWQgVHljaG8tMiBDYXRhbG9ndWUgb2YgMi41IG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBpbiAyMDAwLiBIaXBwYXJjb3MnIGZvbGxvdy11cCBtaXNzaW9uLCBHYWlhLCB3YXMgbGF1bmNoZWQgaW4gMjAxMy4NCjE5OTc6W1NwYWNlXVtSZXNlYXJjaF0gU2luY2UgdGhlIDE5OTcgcHJvcG9zYWwgb2YgdGhlIEFkUy9DRlQgKEFudGktZGUgU2l0dGVyL0NvbmZvcm1hbCBGaWVsZCBUaGVvcnkpIGNvcnJlc3BvbmRlbmNlLCB0aGUgcHJlZG9taW5hbnQgYmVsaWVmIGFtb25nIHBoeXNpY2lzdHMgaXMgdGhhdCBpbmZvcm1hdGlvbiBpcyBpbmRlZWQgcHJlc2VydmVkIGluIGJsYWNrIGhvbGUgZXZhcG9yYXRpb24uIA0KMTk5NzpbU3BhY2VdW1Jlc2VhcmNoXSBBIHdpZGVseSBwdWJsaWNpemVkIGJldCBtYWRlIGluIDE5OTcgYmV0d2VlbiBKb2huIFByZXNraWxsIG9uIHRoZSBvbmUgaGFuZCB3aXRoIEhhd2tpbmcgYW5kIEtpcCBUaG9ybmUgb24gdGhlIG90aGVyIHRoYXQgaW5mb3JtYXRpb24gd2FzIG5vdCBsb3N0IGluIGJsYWNrIGhvbGVzLiBUaGUgc2NpZW50aWZpYyBkZWJhdGUgb24gdGhlIHBhcmFkb3ggd2FzIGRlc2NyaWJlZCBpbiBhIHBvcHVsYXIgYm9vayBwdWJsaXNoZWQgaW4gMjAwOCBieSBMZW9uYXJkIFN1c3NraW5kIGNhbGxlZCBUaGUgQmxhY2sgSG9sZSBXYXIuIChUaGUgYm9vayBjYXJlZnVsbHkgbm90ZXMgdGhhdCB0aGUgJ3dhcicgd2FzIHB1cmVseSBhIHNjaWVudGlmaWMgb25lLCBhbmQgdGhhdCBhdCBhIHBlcnNvbmFsIGxldmVsLCB0aGUgcGFydGljaXBhbnRzIHJlbWFpbmVkIGZyaWVuZHMuKSBUaGUgYm9vayBzdGF0ZXMgdGhhdCBIYXdraW5nIHdhcyBldmVudHVhbGx5IHBlcnN1YWRlZCB0aGF0IGJsYWNrLWhvbGUgZXZhcG9yYXRpb24gd2FzIHVuaXRhcnkgYnkgdGhlIGhvbG9ncmFwaGljIHByaW5jaXBsZSwgd2hpY2ggd2FzIGZpcnN0IHByb3Bvc2VkIGJ5ICd0IEhvb2Z0LCBmdXJ0aGVyIGRldmVsb3BlZCBieSBTdXNza2luZCBhbmQgbGF0ZXIgZ2l2ZW4gYSBwcmVjaXNlIHN0cmluZyB0aGVvcnkgaW50ZXJwcmV0YXRpb24gYnkgdGhlIEFkUy9DRlQgY29ycmVzcG9uZGVuY2UuIEluIDIwMDQsIEhhd2tpbmcgYWxzbyBjb25jZWRlZCB0aGUgMTk5NyBiZXQsIHBheWluZyBQcmVza2lsbCB3aXRoIGEgYmFzZWJhbGwgZW5jeWNsb3BlZGlhICJmcm9tIHdoaWNoIGluZm9ybWF0aW9uIGNhbiBiZSByZXRyaWV2ZWQgYXQgd2lsbCIgYWx0aG91Z2ggVGhvcm5lIHJlZnVzZWQgdG8gY29uY2VkZS4NCjE5OTc6W0VhcnRoXVtQaHlzaWNzXVtSZXNlYXJjaF0gdGhlcmUgd2VyZSB0d28gbGFyZ2UgZWFydGhxdWFrZXMgb2ZmIHRoZSBjb2FzdCBvZiBDaGlsZS4gVGhlIG1hZ25pdHVkZSBvZiB0aGUgZmlyc3QsIGluIEp1bHksIHdhcyBlc3RpbWF0ZWQgYXQgTXfigK82LjksIGJ1dCB3YXMgYmFyZWx5IGZlbHQsIGFuZCBvbmx5IGluIHRocmVlIHBsYWNlcy4gSW4gT2N0b2JlciBhIE134oCvNy4xIHF1YWtlIGluIG5lYXJseSB0aGUgc2FtZSBsb2NhdGlvbiwgYnV0IHR3aWNlIGFzIGRlZXAgYW5kIG9uIGEgZGlmZmVyZW50IGtpbmQgb2YgZmF1bHQsIHdhcyBmZWx0IG92ZXIgYSBicm9hZCBhcmVhLCBpbmp1cmVkIG92ZXIgMzAwIHBlb3BsZSwgYW5kIGRlc3Ryb3llZCBvciBzZXJpb3VzbHkgZGFtYWdlZCBvdmVyIDEwLDAwMCBob3VzZXMuIEFzIGNhbiBiZSBzZWVuIGluIHRoZSB0YWJsZSBiZWxvdywgdGhpcyBkaXNwYXJpdHkgb2YgZGFtYWdlIGRvbmUgaXMgbm90IHJlZmxlY3RlZCBpbiBlaXRoZXIgdGhlIG1vbWVudCBtYWduaXR1ZGUgKE134oCvKSBub3IgdGhlIHN1cmZhY2Utd2F2ZSBtYWduaXR1ZGUgKE1z4oCvKS4gT25seSB3aGVuIHRoZSBtYWduaXR1ZGUgaXMgbWVhc3VyZWQgb24gdGhlIGJhc2lzIG9mIHRoZSBib2R5LXdhdmUgKG1i4oCvKSBvciB0aGUgc2Vpc21pYyBlbmVyZ3kgKE1l4oCvKSBpcyB0aGVyZSBhIGRpZmZlcmVuY2UgY29tcGFyYWJsZSB0byB0aGUgZGlmZmVyZW5jZSBpbiBkYW1hZ2UuIChhcyByZXNlYXJjaGVkIGJ5IENob3ksIEJvYXR3cmlnaHQgJiBLaXJieSAyMDAxLCBwLiAxMy4pLiBNdyA2Ljkgd2FzIGFjdHVhbGx5IE1lIDYuMSwgYW4gaW50ZXJwbGF0ZS10aHJ1c3QgdHlwZSBvZiBmYXVsdCwgd2hpbGUgTXcgNy4xIHdhcyBhY3R1YWxseSBhIDcuNSBNZSBpbnRyYXNsYWItbm9ybWFsIHR5cGUgb2YgZmF1bHQuDQoxOTk3OltSZXNlYXJjaF0gRHVyaW5nIHN1cnZleXMgY2FycmllZCBvdXQgYmV0d2VlbiAxOTk3IGFuZCAyMDAxLCBhIHNwb3Qgd2FzIGZvdW5kIGFsb25nIHRoZSBNYXJpYW5hIFRyZW5jaCB0aGF0IGhhZCBhIGRlcHRoIHNpbWlsYXIgdG8gdGhlIENoYWxsZW5nZXIgRGVlcCwgcG9zc2libHkgZXZlbiBkZWVwZXIuIEl0IHdhcyBkaXNjb3ZlcmVkIHdoaWxlIHNjaWVudGlzdHMgZnJvbSB0aGUgSGF3YWlpIEluc3RpdHV0ZSBvZiBHZW9waHlzaWNzIGFuZCBQbGFuZXRvbG9neSB3ZXJlIGNvbXBsZXRpbmcgYSBzdXJ2ZXkgYXJvdW5kIEd1YW07IHRoZXkgdXNlZCBhIHNvbmFyIG1hcHBpbmcgc3lzdGVtIHRvd2VkIGJlaGluZCB0aGUgcmVzZWFyY2ggc2hpcCB0byBjb25kdWN0IHRoZSBzdXJ2ZXkuIFRoaXMgbmV3IHNwb3Qgd2FzIG5hbWVkIHRoZSBITVJHIChIYXdhaWkgTWFwcGluZyBSZXNlYXJjaCBHcm91cCkgRGVlcCwgYWZ0ZXIgdGhlIGdyb3VwIG9mIHNjaWVudGlzdHMgd2hvIGRpc2NvdmVyZWQgaXQuDQoxOTk3OltTcGFjZVhdIEEgcmVzb2x2ZWQgY2lyY3Vtc3RlbGxhciBkaXNrIHdhcyBmaXJzdCBpZGVudGlmaWVkIGluIDE5OTcgd2l0aCB0aGUgT3dlbnMgVmFsbGV5IFJhZGlvIE9ic2VydmF0b3J5LiBUaGUgc2VtaS1tYWpvciBheGlzIHdhcyBpbml0aWFsbHkgZXN0aW1hdGVkIHRvIGJlIDExMCBBVS4gSEQgMTYzMjk2IGFuZCBzdXJyb3VuZGluZ3MgQ3JlZGl0OiBFU08vRGlnaXRpemVkIFNreSBTdXJ2ZXkgMjsgQWNrbm93bGVkZ2VtZW50OiBEYXZpZGUgRGUgTWFydGluIE9ic2VydmF0aW9uIGRhdGEgRXBvY2ggSjIwMDAgICAgICBFcXVpbm94IEoyMDAwIENvbnN0ZWxsYXRpb24JU2FnaXR0YXJpdXMgUmlnaHQgYXNjZW5zaW9uCTE3aCA1Nm0gMjEuMjlzIERlY2xpbmF0aW9uCeKIkjIxwrAgNTfigLIgMjEuODfigLMgQXBwYXJlbnQgbWFnbml0dWRlIChWKQk2Ljg1OyBDaGFyYWN0ZXJpc3RpY3MgRXZvbHV0aW9uYXJ5IHN0YWdlCUhlcmJpZyBBZSBzdGFyIFNwZWN0cmFsIHR5cGUJQTNWYWVrQTFtQTE7IEFzdHJvbWV0cnkgUmFkaWFsIHZlbG9jaXR5IChSdikJLTQuMDAgwrEzLjNbM10ga20vcyBQcm9wZXIgbW90aW9uICjOvCkJUkE6IC03LjU4NiDCsTAuMDQxIG1hcy95cjsgRGVjLjogLTM5LjQ1OCDCsTAuMDI5IG1hcy95cls0XSBQYXJhbGxheCAoz4ApCTkuOTA0M8KxMC4wNDA4IG1hc1s0XSBEaXN0YW5jZQkzMjkgwrEgMSBseSAoMTAxLjAgwrEgMC40IHBjKSBEZXRhaWxzOyBNYXNzCTEuOTXCsTAuMDcgTeKYiSBSYWRpdXMJMS44N8KxMC4wNSBS4piJIEx1bWlub3NpdHkJMjAuNCszLjYg4oiSMy4wIEzimIkgU3VyZmFjZSBncmF2aXR5IChsb2cgZykJNC4xMMKxMC4xMCBjZ3MgVGVtcGVyYXR1cmUJOTAwMMKxMjUwIEsgQWdlCTYuMDMrMC4yOCDiiJIwLjI3IE15ciBPdGhlciBkZXNpZ25hdGlvbnMgQkQtMjEgNDc3OSwgQ1BELTIxIDY1MDgsIEVNKiBNV0MgMjc1LCBISVAgODc4MTksIElSQVMgMTc1MzMtMjE1NiwgMk1BU1MgSjE3NTYyMTI4LTIxNTcyMTgsIFBEUyA0NzMsIFRZQyA2MjYyLTIxMzEtMSwgRGF0YWJhc2UgcmVmZXJlbmNlcyBTSU1CQUQNCjE5OTc6W1NwYWNlWF0gMTAxOTkgQ2hhcmlrbG8gaXMgYSByaW5nZWQgYXN0ZXJvaWQgb3IgY2VudGF1ciBpbiB0aGUgb3V0ZXIgU29sYXIgU3lzdGVtLiBJdCBpcyB0aGUgbGFyZ2VzdCBrbm93biBjZW50YXVyLCB3aXRoIGEgZGlhbWV0ZXIgb2YgYWJvdXQgMjUwIGttLiBJdCBvcmJpdHMgdGhlIFN1biBiZXR3ZWVuIFNhdHVybiBhbmQgVXJhbnVzIHdpdGggYW4gb3JiaXRhbCBwZXJpb2Qgb2YgNjIuNSB5ZWFycy4gV2lraXBlZGlhIE9yYml0YWwgcGVyaW9kOiA2MyB5ZWFycyBSYWRpdXM6IDE1MSBrbSBEaXNjb3ZlcmVkOiAxNSBGZWJydWFyeSAxOTk3IERpbWVuc2lvbnM6ICgyODcuNisyLjg7IOKIkjMuMCkgw5cgKDI3MC40KzIuODsg4oiSNS42KSDDlyAoMTk4LjIrMTAuODsg4oiSNS40KSBrbTogMTEgRGlzY292ZXJlcjogSmFtZXMgVi4gU2NvdHRpIFNwZWN0cmFsIHR5cGU6IEQtdHlwZSBhc3Rlcm9pZCBBcGhlbGlvbjogMTguNDIwIEFVDQoxOTk3OltTcGFjZVhdIFRoZSBHcmVhdCBEYXlsaWdodCBGaXJlYmFsbCAtIFRoZSBhdG1vc3BoZXJpYyBwYXNzIG1vZGlmaWVkIHRoZSBvYmplY3QncyBtYXNzIGFuZCBvcmJpdCBhcm91bmQgdGhlIFN1bi4gQSAxOTk0IHN0dWR5IGZvdW5kIHRoYXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgaW4gYW4gRWFydGgtY3Jvc3Npbmcgb3JiaXQgYW5kIHByZWRpY3RlZCB0aGF0IGl0IHdvdWxkIHBhc3MgY2xvc2UgdG8gRWFydGggYWdhaW4gaW4gQXVndXN0IDE5OTcuIEhvd2V2ZXIsIHRoZSBvYmplY3QgaGFzIG5vdCBiZWVuIG9ic2VydmVkIGFnYWluIGFuZCBzbyBpdHMgcG9zdC1lbmNvdW50ZXIgb3JiaXQgcmVtYWlucyB1bmtub3duLg0KMTk5NzpOYWZpc2EgSm9zZXBoIHdhcyB0aGUgeW91bmdlc3QgTWlzcyBJbmRpYSB3aW5uZXIgYXQgYWdlIDE5LCB3aW5uaW5nIHRoZSB0aXRsZSBpbiAxOTk3LiBTaGUgbGF0ZXIgYmVjYW1lIGEgbW9kZWwgYW5kIHRlbGV2aXNpb24gcGVyc29uYWxpdHkuIFdoaWxlIG90aGVyIHdpbm5lcnMgbGlrZSBNZWVuYWtzaGkgU2VzaGFkcmkgd2VyZSBhbHNvIDE3IHdoZW4gdGhleSB3b24gaW4gMTk4MSwgSm9zZXBoIGlzIG9mdGVuIGNpdGVkIGZvciBoZXIgZWFybHkgd2luIGF0IDE5LCB3aGljaCB3YXMgdGhlbiBhIHlvdW5nZXIgYWdlIHRoYW4gaXMgdHlwaWNhbGx5IHNlZW4gaW4gdGhlIGNvbXBldGl0aW9uLiANCjE5OTc6W3NwYWNlXVt0ZWNoXSBUaGUgZmluYWwgQmxvY2sgSUlBIHdhcyBpbiBOb3YgMTk5Nywgd2hpbGUgQmxvY2sgSUlScyBiZWdhbiByZXBsYWNpbmcgdGhlbSBzaG9ydGx5IGFmdGVyLCBsYXN0aW5nIHVudGlsIDIwMDQuIEJsb2NrIElJUiAoUmVwbGVuaXNobWVudCkgbGF1bmNoZXMgZm9sbG93ZWQgZnJvbSAxOTk3IHRvIDIwMDQsIHdpdGggdGhlIGZpcnN0IGxhdW5jaCBpbiBKYW51YXJ5IDE5OTcuIA0KDQoxOTk4OltTcGFjZVhdIFRoZSBwcmltYXJ5IGNvbnN0cnVjdGlvbiBwaGFzZSBvZiB0aGUgSW50ZXJuYXRpb25hbCBTcGFjZSBTdGF0aW9uIChJU1MpIHRvb2sgYXBwcm94aW1hdGVseSAxMyB5ZWFycywgZnJvbSAxOTk4IHRvIDIwMTEsIHdpdGggdGhlIGZpcnN0IG1vZHVsZSBsYXVuY2hpbmcgaW4gTm92ZW1iZXIgMTk5OCBhbmQgSVNTIEFzc2VtYmx5IENvbXBsZXRlIGRlY2xhcmVkIGluIE1heSAyMDExLiBIb3dldmVyLCBhc3NlbWJseSB3YXMgYSBjb250aW51b3VzLCBtdWx0aS1zdGFnZSBwcm9jZXNzIGludm9sdmluZyBtb3JlIHRoYW4gMzAgbWlzc2lvbnMsIG51bWVyb3VzIHNwYWNld2Fsa3MsIGFuZCByb2JvdGljIGFzc2lzdGFuY2UgdG8gYnVpbGQgdGhlIHN0YXRpb24gcGllY2UgYnkgcGllY2UgaW4gb3JiaXQuIEV2ZW4gYWZ0ZXIgMjAxMSwgdGhlIElTUyBjb250aW51ZWQgdG8gZXZvbHZlIHdpdGggb25nb2luZyBhZGRpdGlvbnMgYW5kIHVwZ3JhZGVzLg0KMTk5ODpbUmVzZWFyY2hdW1NwYWNlXSBTcHJpbmcsIDE5OTg6IGEgbWljcm9mb3NzaWwgdGhhdCB3YXMgZm91bmQgaW4gYSBtZXRlb3JpdGUgYW5kIHBob3RvZ3JhcGhlZCBpbiAxOTY2LCB3YXMgcmVjb2duaXplZCBieSBhIFJ1c3NpYW4gbWljcm9iaW9sb2dpc3QgYXMgYSBtYWduZXRvdGFjdGljIGJhY3Rlcml1bS4gQnkgRmFsbCwgMTk5ODogTkFTQSdzIHB1YmxpYyBwb3NpdGlvbiBvbiBsaWZlLWZyb20tc3BhY2Ugc2hpZnRlZCBkcmFtYXRpY2FsbHkuDQoxOTk4OiBBcyBhIHJlc2VhcmNoIHByb2plY3QgYXQgU3RhbmZvcmQgVW5pdmVyc2l0eSwgU2VyZ2V5IEJyaW4gYW5kIExhcnJ5IFBhZ2UgY3JlYXRlZCBhIHNlYXJjaCBlbmdpbmUgdGhhdCBsaXN0ZWQgcmVzdWx0cyBhY2NvcmRpbmcgdG8gdGhlIHBvcHVsYXJpdHkgb2YgdGhlIHBhZ2VzLCBhZnRlciBjb25jbHVkaW5nIHRoYXQgdGhlIG1vc3QgcG9wdWxhciByZXN1bHQgd291bGQgb2Z0ZW4gYmUgdGhlIG1vc3QgdXNlZnVsLiBBZnRlciByYWlzaW5nICQxIG1pbGxpb24gZnJvbSBmYW1pbHksIGZyaWVuZHMgYW5kIG90aGVyIGludmVzdG9ycywgdGhlIHBhaXIgbGF1bmNoZWQgdGhlIGNvbXBhbnkgaW4gMTk5OC4gR29vZ2xlIGhhcyBzaW5jZSBiZWNvbWUgdGhlIHdvcmxk4oCZcyBtb3N0IHBvcHVsYXIgc2VhcmNoIGVuZ2luZSwgcmVjZWl2aW5nIG1vcmUgdGhhbiAyMDAgbWlsbGlvbiBxdWVyaWVzIGVhY2ggZGF5Lg0KMTk5OCAoTm92IDIwKTogDQoxOTk4IChBcHIgMjcpOiBSUkIgZm91bmRlZCBhcyBSYWlsd2F5IFJlY3J1aXRtZW50IENvbnRyb2wgQm9hcmQgaXMgYSBnb3Zlcm5tZW50IG9yZ2FuaXNhdGlvbiBpbiBJbmRpYS4gSXQgd2FzIHNldCB1cCBpbiAxOTk4IGluIHRoZSBNaW5pc3RyeSBvZiBSYWlsd2F5cyAoUmFpbHdheSBCb2FyZCksIE5ldyBEZWxoaS5JbiAxOTQ1LCB0aGUgU2VydmljZXMgQ29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgYXQgQm9tYmF5LCBDYWxjdXR0YSwgTWFkcmFzIGFuZCBMdWNrbm93LiBJbiAxOTgzLCB0byBjYXRlciB0byB0aGUgbmVlZHMgb2YgYXJlYXMgd2hpY2ggd2VyZSBiZWluZyBuZWdsZWN0ZWQgZHVlIHRvIGxvY2F0aW9ucyBvZiB0aGUgZXhpc3RpbmcgY29tbWlzc2lvbnMsIHNldmVuIG1vcmUgY29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgdml6LCBhdCBBaG1lZGFiYWQsIEFqbWVyLCBCaG9wYWwsIEJodXZuZXNod2FyLCBDaGFuZGlnYXJoLCBKYW1tdSBhbmQgU3JpbmFnYXIgd2l0aCBzaXR0aW5nIGF0IExlaCBhbmQgVHJpdmVuZHJ1bS4gSW4gMTk4NCB0d28gbW9yZSBzZXJ2aWNlIGNvbW1pc3Npb25zIHdlcmUgc2V0IHVwIGF0IE1hbGRhIGFuZCBHb3Jha2hwdXIuDQoxOTk4IChNYXkgMTkpOiBBdGFsIEJpaGFyaSBWYWpwYXllZSBiZWNvbWVzIFBNIG9mIEluZGlhIGZvciB0aGUgc2Vjb25kIHRpbWUsIG5vdyBmb3IgNiB5ZWFycyB0aWxsIE1heSAyMiwgMjAwNC4gDQoxOTk4IChNYXkgMjggMTU6MTVQU1QpOiBDaGFnYWktSSBpcyB0aGUgY29kZSBuYW1lIG9mIGZpdmUgc2ltdWx0YW5lb3VzIHVuZGVyZ3JvdW5kIG51Y2xlYXIgdGVzdHMgY29uZHVjdGVkIGJ5IFBha2lzdGFuLiBUaGUgdGVzdHMgd2VyZSBwZXJmb3JtZWQgYXQgUmFzIEtvaCBIaWxscyBpbiB0aGUgQ2hhZ2FpIERpc3RyaWN0IG9mIEJhbG9jaGlzdGFuIFByb3ZpbmNlLiBDaGFnYWktSSB3YXMgUGFraXN0YW4ncyBmaXJzdCBwdWJsaWMgdGVzdCBvZiBudWNsZWFyIHdlYXBvbnMuIFBha2lzdGFuJ3MgZmlzc2lsZSBtYXRlcmlhbCBwcm9kdWN0aW9uIHRha2VzIHBsYWNlIGF0IE5pbG9yZSwgS2FodXRhLCBhbmQgS2h1c2hhYiBOdWNsZWFyIENvbXBsZXgsIHdoZXJlIHdlYXBvbnMtZ3JhZGUgcGx1dG9uaXVtIGlzIHJlZmluZWQuDQoxOTk4OiBBZnRlciBjb21wbGV0aW5nIGhpcyBYIHN0YW5kYXJkIGV4YW1pbmF0aW9ucywgUmFuYmlyIEthcG9vciwgYWdlZCAxNiwgd29ya2VkIGFzIGFuIGFzc2lzdGFudCBkaXJlY3RvciB0byBoaXMgZmF0aGVyIG9uIHRoZSBmaWxtIEFhIEFiIExhdXQgQ2hhbGVuICgxOTk5KSwgZHVyaW5nIHdoaWNoIGhlIGRldmVsb3BlZCBhIGNsb3NlciBib25kIHdpdGggaGltLg0KMTk4ODogTmV0d29ya2VkIERhdGEgUHJvY2Vzc2luZyBDb3IsIElvd2EgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBJbnN1cmFuY2UgZGl2aXNpb24uDQoxOTk4OltCb29rXSBSb2JlcnQgR3JlZW5lJ3MgVGhlIDQ4IExhd3Mgb2YgUG93ZXI7IFRoZSAzMyBTdHJhdGVnaWVzIG9mIFdhciAoMjAwNik7IE1hc3RlcnkgKDIwMTIsIE5vdiAxMyk7IFRoZSBMYXdzIG9mIEh1bWFuIE5hdHVyZSAoMjAxOCwgT2N0IDE2KQ0KMTk5ODpbU3BhY2VdW1Jlc2VhcmNoXVtFeHRyZW1lXSBUaGVuIGNhbWUgMTk5OCBhbmQgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgKEhTVCkgb2JzZXJ2YXRpb25zIG9mIHZlcnkgZGlzdGFudCBzdXBlcm5vdmFlIHRoYXQgc2hvd2VkIHRoYXQsIGEgbG9uZyB0aW1lIGFnbywgdGhlIHVuaXZlcnNlIHdhcyBhY3R1YWxseSBleHBhbmRpbmcgbW9yZSBzbG93bHkgdGhhbiBpdCBpcyB0b2RheS4gU28gdGhlIGV4cGFuc2lvbiBvZiB0aGUgdW5pdmVyc2UgaGFzIG5vdCBiZWVuIHNsb3dpbmcgZHVlIHRvIGdyYXZpdHksIGFzIGV2ZXJ5b25lIHRob3VnaHQsIGl0IGhhcyBiZWVuIGFjY2VsZXJhdGluZy4NCjE5OTg6W0NyaW1lXVtJbmRpYV0gQW5lZXMgYXJyZXN0ZWQgaW4gVUFFIG9uIGNoYXJnZXMgb2YgaGF2aW5nIG11cmRlcmVkIGEgZm9ybWVyIGFzc29jaWF0ZSBhbmQgdGhlbiByaXZhbCwgSXJmYW4gR29nYSwgaW4gRHViYWksIGJ1dCB3YXMgZnJlZWQgYWZ0ZXIgdHdvIGRheXMgZm9yICdsYWNrIG9mIGV2aWRlbmNlJy4NCjE5OTg6W0NvbXB1dGluZ11bUXVhbnR1bV0gUmVzZWFyY2hlcnMgYXQgSUJNLCBPeGZvcmQsIEJlcmtlbGV5LCBTdGFuZm9yZCwgYW5kIE1JVCBwcm9kdWNlZCBhIDItcXViaXQgY29tcHV0aW5nIHN5c3RlbS4NCjE5OTg6W3d3d10gV2lyZXNoYXJrIGlzIGEgZnJlZSBhbmQgb3Blbi1zb3VyY2UgcGFja2V0IGFuYWx5emVyLiBJdCBpcyB1c2VkIGZvciBuZXR3b3JrIHRyb3VibGVzaG9vdGluZywgYW5hbHlzaXMsIHNvZnR3YXJlIGFuZCBjb21tdW5pY2F0aW9ucyBwcm90b2NvbCBkZXZlbG9wbWVudCwgYW5kIGVkdWNhdGlvbi4gT3JpZ2luYWxseSBuYW1lZCBFdGhlcmVhbCwgdGhlIHByb2plY3Qgd2FzIHJlbmFtZWQgV2lyZXNoYXJrIGluIE1heSAyMDA2IGR1ZSB0byB0cmFkZW1hcmsgaXNzdWVzLg0KMTk5ODpbVVNdW0Vjb25vbXldRGF2aWQgUm9ja2VmZWxsZXIgU3IuIHdhcyBhd2FyZGVkIHRoZSBQcmVzaWRlbnRpYWwgTWVkYWwgb2YgRnJlZWRvbSBieSBQcmVzaWRlbnQgQmlsbCBDbGludG9uIGZvciBoaXMgd29yayBvbiBJbnRlcm5hdGlvbmFsIEV4ZWN1dGl2ZSBTZXJ2aWNlIENvcnBzLg0KMTk5ODpbRGVmXVtBdmlhdGlvbl0gVGhlIExvY2toZWVkIFNSLTcxIEJsYWNrYmlyZCBmbGV3IHNvIGhpZ2ggYW5kIHNvIGZhc3QgdGhhdCB0aGUgY3JldyBuZWVkZWQgcHJlc3N1cml6ZWQgc3BhY2Ugc3VpdHMgd2hlbiBmbHlpbmcgaXQuIEFuZCBpdCBpcyBzYWlkIHRoYXQgYXQgdGhlIG1heGltdW0gYWx0aXR1ZGUgb2YgaXQgaXQgd2FzIHBvc3NpYmxlIHRvIHNlZSB0aGUgY3VydmF0dXJlIG9mIHRoZSBlYXJ0aCwgd2hpY2ggcmVmZXJzIHRvIHRoaXMgcXVvdGUgYnkgQ29sb25lbCBBbGlzb246IOKAnE9uIGEgY2xlYXIgZGF5IHlvdSBjYW4gc2VlIGZvcmV2ZXLigKbigJ0uIFRoZSBzZXJ2aWNlIGNlaWxpbmcgb2YgODUsMDAwIGZlZXQgKDI1LDkwMG0pIG1lYW50IHRoYXQgaXQgd2FzIGFuIGV4Y2VsbGVudCBleHBlcmltZW50YWwgdW5pdCBmb3Igc3BhY2UgdHJhdmVscy4gVGhhdCwgY29tYmluZWQgd2l0aCB0aGUgZ3JlYXQgc3BlZWRzIG9mIGl0IHdhcyB0d28gb2YgdGhlIHJlYXNvbnMgd2h5IE5BU0EgZGVjaWRlZCB0byB0YWtlIG92ZXIgdGhlIGxhc3QgdHdvIEJsYWNrYmlyZHMgYWZ0ZXIgaXRzIHJldGlyZW1lbnQgZnJvbSB0aGUgQWlyIEZvcmNlIGluIDE5OTguIFRoaXMgbWVhbnMgdGhhdCB0aGUgd29ybGTigJlzIGZhc3Rlc3QgYWlyY3JhZnQgd2FzIGluIHNlcnZpY2UgZnJvbSAxOTY2IHVudGlsIE5BU0EgcmV0aXJlZCBpdHMgdHdvIHVuaXRzIGluIDE5OTksIGFuZCBtb3N0IG9mIHRoZSByZW1haW5pbmcgQmxhY2tiaXJkcyBhcmUgdG9kYXkgc3RhdGlvbmVkIGF0IG11c2V1bXMgb3IgbWlsaXRhcnkgYmFzZXMgYWNyb3NzIHRoZSBVUy4NCjE5OTg6SW4gMTk5OCwgR2F1dGFtIEFkYW5pLCBhbG9uZyB3aXRoIGhpcyBhc3NvY2lhdGUgU2hhbnRpbGFsIFBhdGVsLCB3YXMga2lkbmFwcGVkIGZvciByYW5zb20gaW4gQWhtZWRhYmFkLCBJbmRpYS4gVGhleSB3ZXJlIGFiZHVjdGVkIGF0IGd1bnBvaW50IGFmdGVyIGxlYXZpbmcgdGhlIEthcm5hdmF0aSBDbHViIGluIGEgY2FyLiBUaGUga2lkbmFwcGVycywgYWxsZWdlZGx5IGdhbmdzdGVycyBGYXpsdSBSZWhtYW4gYW5kIEJob2dpbGFsIERhcmppLCByZXBvcnRlZGx5IGRlbWFuZGVkIGEgcmFuc29tIG9mICQxLjUtMiBtaWxsaW9uLiBCb3RoIEFkYW5pIGFuZCBQYXRlbCB3ZXJlIHJlbGVhc2VkIGEgZGF5IGxhdGVyLCBidXQgaXQncyB1bmNsZWFyIGlmIHRoZSByYW5zb20gd2FzIHBhaWQuIA0KVGhlIGtpZG5hcHBpbmcgaW5jaWRlbnQgaGFwcGVuZWQgaW4gdGhlIG1pZC0xOTkwcywgYXJvdW5kIHRoZSB0aW1lIEFkYW5pJ3MgYnVzaW5lc3Mgc3VjY2Vzc2VzIHN0YXJ0ZWQgYXR0cmFjdGluZyB1bndhbnRlZCBhdHRlbnRpb24uIFRoZSBraWRuYXBwaW5nIHdhcyBhbGxlZ2VkbHkgY2FycmllZCBvdXQgYnkgRmF6bHUgUmVobWFuIGFuZCBCaG9naWxhbCBEYXJqaSwgYWxzbyBrbm93biBhcyAiTWFtYSIuIFRoZXkgd2VyZSBsYXRlciBhY3F1aXR0ZWQgZHVlIHRvIGxhY2sgb2YgZXZpZGVuY2UuIA0KVGhlIGFiZHVjdGlvbiBpcyBqdXN0IG9uZSBvZiB0aGUgY2hhbGxlbmdlcyBBZGFuaSBoYXMgZmFjZWQuIEhlIHdhcyBhbHNvIGNhdWdodCBpbiB0aGUgMjYvMTEgTXVtYmFpIHRlcnJvciBhdHRhY2tzIGF0IHRoZSBUYWogSG90ZWwuIE1vcmUgcmVjZW50bHksIGhlIGhhcyBmYWNlZCBhY2N1c2F0aW9ucyBvZiBicmliZXJ5IGFuZCBzZWN1cml0aWVzIGZyYXVkLiANCkFkYW5pIGFuZCBvdGhlcnMgd2VyZSBlc2NvcnRlZCBieSBzdGFmZiB0byB0aGUga2l0Y2hlbiBhbmQgdGhlbiB0aGUgYmFzZW1lbnQuIFRoZXkgc3BlbnQgdGhlIGVudGlyZSBuaWdodCBpbiBhIGhhbGwgd2FpdGluZyBmb3IgcmVzY3VlLiBBZGFuaSBsYXRlciB0b2xkIG5ld3MgY2hhbm5lbHMgdGhhdCBoZSBzYXcg4oCcZGVhdGggYXQgYSBkaXN0YW5jZSBvZiBqdXN0IDE1IGZlZXQu4oCdIEhlIHdhcyByZXNjdWVkIHRoZSBuZXh0IG1vcm5pbmcgYnkgc2VjdXJpdHkgZm9yY2VzLg0KMTk5ODpbRW52XVtEaXNhc3Rlcl0gRWFzdGVybiBJbmRpYSwgMTk5OCBCYW5nbGFkZXNoIGZsb29kOyA0ayBkZWF0aHMNCjE5OTg6W1dob11bUmVzZWFyY2hdW0NvbXB1dGluZ11bVGVjaF1bQ3VsdHVyZV0gSW50ZXJuZXQgRG93bmxvYWQgTWFuYWdlciAoSURNKSB3YXMgZGV2ZWxvcGVkIGJ5IFRvbmVjIEluYy4sIGFuIEFtZXJpY2FuIGNvbXBhbnkgdGhhdCBzdGFydGVkIHRoZSBwcm9qZWN0IGluIDE5OTggYW5kIHJlbGVhc2VkIHRoZSBzb2Z0d2FyZSBpbiAyMDAxLiBUb25lYyBJbmMuIGZvY3VzZXMgb24gbmV0d29yayBwcm9ncmFtbWluZyBhbmQgY3JlYXRlZCBJRE0gdG8gc3BlZWQgdXAgZG93bmxvYWRzIGJ5IHVzaW5nIGR5bmFtaWMgZmlsZSBzZWdtZW50YXRpb24sIGFjY2VsZXJhdGluZyBzcGVlZHMgYnkgdXAgdG8gOCB0aW1lcy4gDQoNCjE5OTk6NCBKYW51YXJ5IDE5OTk6IE5BU0Egb2ZmaWNpYWxseSByZWNvZ25pemVkIHRoZSBwb3NzaWJpbGl0eSB0aGF0IGxpZmUgb24gRWFydGggY29tZXMgZnJvbSBzcGFjZS4NCjE5IE1hcmNoIDE5OTk6IE5BU0Egc2NpZW50aXN0cyBhbm5vdW5jZWQgdGhhdCB0d28gbW9yZSBtZXRlb3JpdGVzIGhvbGQgZXZlbiBzdHJvbmdlciBmb3NzaWxpemVkIGV2aWRlbmNlIGZvciBwYXN0IGxpZmUgb24gTWFycy4NCjE5OTk6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEcyMCBvciBHcm91cCBvZiAyMCBpcyBhbiBpbnRlcmdvdmVybm1lbnRhbCBmb3J1bSBjb21wcmlzaW5nIDE5IHNvdmVyZWlnbiBjb3VudHJpZXMsIHRoZSBFdXJvcGVhbiBVbmlvbiwgYW5kIHRoZSBBZnJpY2FuIFVuaW9uLiBGb3VuZGVkOiAyNiBTZXB0ZW1iZXIgMTk5OTsgQ2hhaXJtYW4gKEluY3VtYmVudCk6IEN5cmlsIFJhbWFwaG9zYSwgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYQ0KMTk5OTogVGhlIHRlcm0gV2ktRmkgd2FzIGludmVudGVkIGJ5IEludGVyYnJhbmQgKGFuIGFtZXJpY2FuIGJyYW5kIGNvbnN1bHRhbmN5IGNvbXBhbnkpIGFzIGEgcHVuIHVwb24gdGhlIHdvcmQgaGktZmkuDQpXaS1GaSBBbGxpYW5jZSBmb3JtZWQgYXMgYSB0cmFkZSBhc3NvY2lhdGlvbiB0byBob2xkIHRoZSBXaS1GaSB0cmFkZW1hcmsgdW5kZXIgd2hpY2ggbW9zdCBwcm9kdWN0cyBhcmUgc29sZC4NCjE5OTk6IHRoZSB0ZXJtDQoxOTk5OiBJc2xhbWljIFN0YXRlIG9mIElyYXEgYW5kIHRoZSBMZXZhbnQgKGFsc28ga25vd24gYXMgdGhlIElzbGFtaWMgU3RhdGUgb2YgSXJhcSBhbmQgU3lyaWEsIElzbGFtaWMgU3RhdGUsIG9yIGNvbW1vbmx5LCBJU0lTKSBmb3VuZGVkIGFzIEphbWEnYXQgYWwtVGF3aGlkIHdhbC1KaWhhZCBieSBBYnUgTXVzYWIgYWwtWmFycWF3aSBIUSdkIGF0ICBBbC1SYXFxYWguDQoxOTk5IChBcHIgMTIpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBJIFdhbnQgSXQgVGhhdCBXYXkuDQoxOTk5IChBcHIgMTgpOiBDT05DRVJUIGJlY2FtZSBvcGVyYXRpb25hbC4gSXQgd2FzIGRldmVsb3BlZCB1c2luZyBjbGllbnQtc2VydmVyIG1vZGVsIGZvciBkaXN0cmlidXRlZCBjb21wdXRpbmcgaXMgYSB0b3RhbCBzb2x1dGlvbiB0byB0aGUgbmV0d29ya2luZyBvZiB0aGUgUFJTcy4gQWxsIHRoZSBmaXZlIHNpdGVzIGhhdmUgYmVlbiBpbnRlcm5ldC13b3JrZWQgb3ZlciBhIDY0IGticHMgbGluZSB1c2luZyByb3V0ZXJzLCBvbiBsZWFzZWQgY29tbXVuaWNhdGlvbiBsaW5lIGNvbm5lY3Rpb25zIGZyb20gRGVwYXJ0bWVudCBvZiBUZWxlY29tIChET1QpLg0KMTk5OTogQ3JlZGl0IGNhcmRzIGFjY2VwdGVkIGZvciBib29raW5nIHRpY2tldHMgYW5kIHJlc2VydmF0aW9ucyBpbiBzb21lIHN0YXRpb25zIChpbmNsdWRpbmcgTXVtYmFpIENTVCkuDQoxOTk5IChNYXkgMSk6W0Jvb2tdIFJvYmVydCBLaXlvc2FraSAmIFNoYXJvbiBMZWNodGVyJ3MgUmljaCBEYWQncyBDYXNoZmxvdyBRdWFkcmFudDogUmljaCBEYWQncyBHdWlkZSB0byBGaW5hbmNpYWwgRnJlZWRvbTsgUmljaCBEYWQncyBHdWlkZSB0byBJbnZlc3Rpbmc6IFdoYXQgdGhlIFJpY2ggSW52ZXN0IGluIFRoYXQgdGhlIFBvb3IgYW5kIE1pZGRsZSBDbGFzcyBEbyBOb3QhICgyMDAxLCBKYW4gMSk7IFRoZSBSZWFsIEJvb2sgb2YgUmVhbCBFc3RhdGU6IFJlYWwgRXhwZXJ0cy4gUmVhbCBTdG9yaWVzLiBSZWFsIExpZmUuICgyMDA5LCBNYXkgMTIpOyBSaWNoIEtpZCBTbWFydCBLaWQ6IEdpdmluZyBZb3VyIENoaWxkIGEgRmluYW5jaWFsIEhlYWQgU3RhcnQgKDIwMDEsIEphbiAxKTsgDQoxOTk5IChNYXkgMTgpOltNdXNpY10gTWlsbGVubml1bSBpcyB0aGUgdGhpcmQgc3R1ZGlvIGFsYnVtIChzZWNvbmQgaW4gdGhlIFVuaXRlZCBTdGF0ZXMpIGJ5IEFtZXJpY2FuIGJveSBiYW5kIEJhY2tzdHJlZXQgQm95cywgcmVsZWFzZWQgYnkgSml2ZSBSZWNvcmRzLg0KMTk5OSAoRnJpLCAyNCBEZWMpOiBJbmRpYW4gQWlybGluZXMgRmxpZ2h0IDgxNCBjb21tb25seSBrbm93biBhcyBJQyA4MTQgd2FzIGFuIEluZGlhbiBBaXJsaW5lcyBBaXJidXMgQTMwMCBlbiByb3V0ZSBmcm9tIFRyaWJodXZhbiBJbnRlcm5hdGlvbmFsIEFpcnBvcnQgaW4gS2F0aG1hbmR1LCBOZXBhbCB0byBJbmRpcmEgR2FuZGhpIEludGVybmF0aW9uYWwgQWlycG9ydCBpbiBEZWxoaSwgSW5kaWEgd2FzIGhpamFja2VkLiBIYXJrYXQtdWwtTXVqYWhpZGVlbiB3YXMgYWNjdXNlZCBvZiB0aGUgaGlqYWNraW5nLg0KMTk5OTogSVJDVEMNCjE5OTkgKEF1Zyk6IEJvb2tNeVNob3cNCjE5OTkgKFNlcCAxNCk6IFtHZW9Qb2xpdGljc10gVGhlIENvbmZlcmVuY2Ugb24gSW50ZXJhY3Rpb24gYW5kIENvbmZpZGVuY2UtQnVpbGRpbmcgTWVhc3VyZXMgaW4gQXNpYSAoQ0lDQSkgaXMgYW4gaW50ZXItZ292ZXJubWVudGFsIGZvcnVtIGZvciBlbmhhbmNpbmcgY29vcGVyYXRpb24gdG93YXJkcyBwcm9tb3RpbmcgcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYS4gSXQgaXMgYSBmb3J1bSBiYXNlZCBvbiB0aGUgcmVjb2duaXRpb24gdGhhdCB0aGVyZSBpcyBjbG9zZSBsaW5rIGJldHdlZW4gcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYSBhbmQgaW4gdGhlIHJlc3Qgb2YgdGhlIHdvcmxkLiBUaGUga2V5IGlkZWEgb2YgdGhlIENvbmZlcmVuY2UgaXMgYmFzZWQgb24gdGhlIHByaW9yaXR5IG9mIHRoZSBpbmRpdmlzaWJpbGl0eSBvZiBzZWN1cml0eSwgam9pbnQgaW5pdGlhdGl2ZSBhbmQgbXV0dWFsbHkgYmVuZWZpY2lhbCBpbnRlcmFjdGlvbiBvZiBzbWFsbCBhbmQgbGFyZ2Ugc3RhdGVzLg0KMTk5OTogTm9ibGUgRWR1Y2F0aW9uIFNvY2lldHkncyBOb2JsZSBQdWJsaWMgU2Nob29sIChOUFMpLCBHYWpyYXVsYSBmb3VuZGVkIHdpdGggMjEzMDYyNyBhcyBpdHMgQ0JTRSBBZmZpbGlhdGlvbiBuby4NCjE5OTk6IGZpcnN0IC53bWEgZmlsZSBjcmVhdGVkDQoxOTk5OiBOYXBzdGVyIGZvdW5kZWQuDQoxOTk5IChEZWMgMTQpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBTaG93IE1lIHRoZSBNZWFuaW5nIG9mIEJlaW5nIExvbmVseS4gDQoxOTk5OltNdXNpY10gRHIuIERyZSBmdC4gU25vb3AgRG9nZydzIFN0aWxsIEQuUi5FLg0KMTk5OTpbQ3VsdHVyZV0gVGhlIENpdHRhc2xvdyBvcmdhbml6YXRpb24gd2FzIGNyZWF0ZWQgYnkgUGFvbG8gU2F0dXJuaW5pLCB0aGUgZm9ybWVyIG1heW9yIG9mIEdyZXZlIGluIENoaWFudGksIEl0YWx5LiBTYXR1cm5pbmkgd2FzIGluc3BpcmVkIGJ5IENhcmxvIFBldHJpbmkgYW5kIGhpcyBTbG93IEZvb2QgbW92ZW1lbnQsIHN0YXJ0ZWQgaW4gdGhlIDE5ODBzIHRvIHByb3Rlc3QgdGhlIGZpcnN0IE1jRG9uYWxkJ3MgY2hhaW4gaW4gUm9tZS4gU2luY2UgdGhlbiwgdGhlIENpdHRhc2xvdyBtb3ZlbWVudCBoYXMgZ3Jvd24gYWNyb3NzIGZvdXIgY29udGluZW50cywgd2l0aCAyNjIgcGFydGljaXBhdGluZyB0b3ducyBhcyBvZiAyMDIwLiANCjE5OTk6W01hbmFnZW1lbnRdW0J1c2luZXNzXVtQc3ljaG9sb2d5XVtSZXNlYXJjaF0gRHVubmluZyBhbmQgS3J1Z2VyIEVmZmVjdDogRGF2aWQgRHVubmluZyBhbmQgSnVzdGluIEtydWdlciBwdWJsaXNoZWQgdGhlIGluaXRpYWwgc3R1ZHkgaW4gMTk5OSB1bmRlciB0aGUgdGl0bGUgIlVuc2tpbGxlZCBhbmQgVW5hd2FyZSBvZiBJdDogSG93IERpZmZpY3VsdGllcyBpbiBSZWNvZ25pemluZyBPbmUncyBPd24gSW5jb21wZXRlbmNlIExlYWQgdG8gSW5mbGF0ZWQgU2VsZi1Bc3Nlc3NtZW50cyIuDQoxOTk5OltSZXNlYXJjaF0gUmVzZWFyY2ggYnkgVVMgTmF0aW9uYWwgUmVzZWFyY2ggQ291bmNpbC4gV2F0ZXIgZnJvbSB1bmRlcmdyb3VuZCBzb3VyY2VzIG1heSBjb250YWluIHNpZ25pZmljYW50IGFtb3VudHMgb2YgcmFkb24gZGVwZW5kaW5nIG9uIHRoZSBzdXJyb3VuZGluZyByb2NrIGFuZCBzb2lsIGNvbmRpdGlvbnMsIHdoZXJlYXMgc3VyZmFjZSBzb3VyY2VzIGdlbmVyYWxseSBkbyBub3QuDQoxOTk5OltOU0VdIEluY29ycG9yYXRlZCBpbiAxOTk5LCBJUkNUQyBpcyBhIE1pbmkgUmF0bmEgKENhdGVnb3J5IDEsIENlbnRyYWwgUHVibGljIFNlY3RvciBFbnRlcnByaXNlcyApIGFuZCB0aGUgb25seSBjb21wYW55IGF1dGhvcml6ZWQgYnkgdGhlIEluZGlhbiBnb3Zlcm5tZW50IHRvIHByb3ZpZGUgb25saW5lIHJhaWx3YXkgdGlja2V0cywgY2F0ZXJpbmcgc2VydmljZXMsIGFuZCBwYWNrYWdlZCBkcmlua2luZyB3YXRlciBhdCByYWlsd2F5IHN0YXRpb25zIGFuZCB0cmFpbnMgaW4gSW5kaWEuDQoxOTk5OltNbnRuZ2ddW0Jvb2tdIFN0ZXZlIEhvdXNlIGlzIGEgd29ybGQtcmVub3duZWQgY2xpbWJlciwgbW91bnRhaW4gZ3VpZGUgYW5kIFBhdGFnb25pYSBhbWJhc3NhZG9yLCB3aWRlbHkgcmVnYXJkZWQgZm9yIGhpcyBjbGVhbiwgbGlnaHQtYW5kLWZhc3Qgc3R5bGUuIEhlIGhhcyBwdWJsaXNoZWQgYXJ0aWNsZXMgaW4gYSBudW1iZXIgb2YgcGVyaW9kaWNhbHMgaW5jbHVkaW5nOiBBbHBpbmlzdCwgUm9jayBhbmQgSWNlLCBDbGltYmluZywgVGhlIEFtZXJpY2FuIEFscGluZSBKb3VybmFsLCBHcmlwcGVkLCBDYW5hZGlhbiBBbHBpbmUgSm91cm5hbCwgQ2xpbWIsIFZlcnRpY2FsLCBNb250YWduZXMsIFJpc2ssIEFscCssIENhbXBvIEJhc2UsIERlc25pdmVsLCBhbmQgU3RpbGUgQWxwaW4uIEhpcyBlc3NheXMgaGF2ZSBiZWVuIHB1Ymxpc2hlZCBpbiBzZXZlcmFsIGJvb2tzIGluY2x1ZGluZzsgQ29udGFjdDogTW91bnRhaW4gQ2xpbWJpbmcgYW5kIEVudmlyb25tZW50YWwgVGhpbmtpbmc7IFNvbHRhcmksIGEgY29sbGVjdGlvbiBvZiBlc3NheXMgYWJvdXQgc29sbyBjbGltYmluZyBwdWJsaXNoZWQgaW4gSXRhbGlhbjsgQmVyZywgYSBHZXJtYW4gYm9vayBhYm91dCBjbGltYmluZyBpbiB0aGUgSGltYWxheWE7IGFuZCBhbiB1cGNvbWluZyBib29rIGFib3V0IE5hbmdhIFBhcmJhdCBlZGl0ZWQgYnkgUmVpbmhvbGQgTWVzc25lci4gSGUgaGFzIHdvcmtlZCBhcyBhIFBhdGFnb25pYSBhbHBpbmUgYW1iYXNzYWRvciBzaW5jZSAxOTk5LiBQdWJsaXNoZWQ6IFRyYWluaW5nIGZvciB0aGUgTmV3IEFscGluaXNtOiBBIE1hbnVhbCBmb3IgdGhlIENsaW1iZXIgYXMgQXRobGV0ZSBQYXBlcmJhY2sg4oCTIElsbHVzdHJhdGVkLCAzIEFwcmlsIDIwMTQNCjE5OTk6W01udG5nZ10gQ29ucmFkIEFua2VyIChib3JuIE5vdmVtYmVyIDI3LCAxOTYyKSBpcyBhbiBBbWVyaWNhbiByb2NrIGNsaW1iZXIsIG1vdW50YWluZWVyLCBhbmQgYXV0aG9yLiBIZSB3YXMgdGhlIHRlYW0gbGVhZGVyIG9mIFRoZSBOb3J0aCBGYWNlIGNsaW1iaW5nIHRlYW0gZm9yIDI2IHllYXJzIHVudGlsIDIwMTguWzJdIEluIDE5OTksIGhlIGxvY2F0ZWQgR2VvcmdlIE1hbGxvcnkncyBib2R5IG9uIEV2ZXJlc3QgYXMgYSBtZW1iZXIgb2YgYSBzZWFyY2ggdGVhbSBsb29raW5nIGZvciB0aGUgcmVtYWlucyBvZiB0aGUgQnJpdGlzaCBjbGltYmVyIHdobyB3YXMgbGFzdCBzZWVuIGluIDE5MjQuDQoxOTk5OlRoZSBQaXBpc3RyZWwgVmlydXMgZmxldyBmb3IgdGhlIGZpcnN0IHRpbWUgb24gQXVndXN0IDEwLCAxOTk5LiBQcm9kdWN0aW9uIGJlZ2FuIG9uIEphbnVhcnkgMjAsIDIwMDAuIFRoZSBkZXZlbG9wbWVudCBvZiB0aGUgc2hvcnQgd2luZyB2ZXJzaW9uIHN0YXJ0ZWQgaW4gMjAwNy4gVGhlIFZpcnVzIFNXIHByb2R1Y3Rpb24gc3RhcnRlZCBpbiAyMDA4LiBUaGUgVmlydXMgd29uIHRoZSBOQVNBIDIwMDcgUGVyc29uYWwgQWlyIFZlaGljbGUgKFBBVikgQ2hhbGxlbmdlIGFuZCB0aGUgMjAwOCBHZW5lcmFsIEF2aWF0aW9uIFRlY2hub2xvZ3kgKEdBVCkgQ2hhbGxlbmdlLg0KMTk5OTpbc2lsdmljc10gU3VzdGFpbmFibGUgUHJhY3RpY2VzOiBSZXNlYXJjaCBpbiB0aGUgMjB0aCBjZW50dXJ5IHZhbGlkYXRlZCB0aGF0IHNlY29uZC1ncm93dGggc3RhbmRzIGNvdWxkIGJlIHN1c3RhaW5hYmx5IG1hbmFnZWQgdGhyb3VnaCB0ZWNobmlxdWVzIGxpa2UgdGhlIHNlZWQgdHJlZSBtZXRob2QuIFRvZGF5LCBzaWx2aWN1bHR1cmUgZm9jdXNlcyBvbiBjb21wbGV4IHN0YW5kIHN0cnVjdHVyZXMsIGJhbGFuY2luZyBjb21tZXJjaWFsIGRlbWFuZCB3aXRoIGVudmlyb25tZW50YWwgc3Rld2FyZHNoaXAuIA0KDQoyMXN0IGNlbnR1cnkgQ0Ugc3RhcnRlZCBvbiAxc3QgSmFuIDIwMDEgQUQuDQoNCjIwMDBzOltSZXNlYXJjaF0gVGhlIGNsYWltIHRoYXQgIndlIGFyZSA2MCUgYmFuYW5hIiAob3Igc2hhcmUgNjAlIG9mIG91ciBETkEpIGlzIGEgcG9wdWxhciwgeWV0IG9mdGVuIG1pc2ludGVycHJldGVkLCBzdGF0aXN0aWMgdGhhdCBvcmlnaW5hdGVkIGZyb20gY29tcGFyaXNvbnMgb2YgcHJvdGVpbi1jb2RpbmcgZ2VuZXMsIGxpa2VseSBwb3B1bGFyaXplZCBpbiB0aGUgZWFybHkgMjAwMHMgZm9sbG93aW5nIHByZWxpbWluYXJ5IHN0dWRpZXMgb2YgdGhlIGJhbmFuYSBnZW5vbWUuIEl0IHJlZmVycyB0byBhYm91dCA2MCUgb2YgaHVtYW4gZ2VuZXMgaGF2aW5nIGEgcmVjb2duaXphYmxlIGNvdW50ZXJwYXJ0IGluIGJhbmFuYXMsIG5vdCA2MCUgb2Ygb3VyIHRvdGFsIEROQS4gDQpNYW55IG9mIHRoZSDigJxob3VzZWtlZXBpbmfigJ0gZ2VuZXMgdGhhdCBhcmUgbmVjZXNzYXJ5IGZvciBiYXNpYyBjZWxsdWxhciBmdW5jdGlvbiwgc3VjaCBhcyBmb3IgcmVwbGljYXRpbmcgRE5BLCBjb250cm9sbGluZyB0aGUgY2VsbCBjeWNsZSwgYW5kIGhlbHBpbmcgY2VsbHMgZGl2aWRlIGFyZSBzaGFyZWQgYmV0d2VlbiBtYW55IHBsYW50cyAoaW5jbHVkaW5nIGJhbmFuYXMpIGFuZCBhbmltYWxzLldoaWxlIDYwJSBvZiBnZW5lcyBoYXZlIGNvdW50ZXJwYXJ0cywgdGhlc2UgZXNzZW50aWFsIGdlbmVzIG1ha2UgdXAgb25seSBhIHNtYWxsIGZyYWN0aW9uIG9mIHRoZSB0b3RhbCBnZW5vbWU7IGh1bWFucyBhbmQgYmFuYW5hcyBhcmUgbm90IDYwJSBpZGVudGljYWwgb3ZlcmFsbC4gDQpUaGUgcGhyYXNlIGlzIGVzc2VudGlhbGx5IGEgc2ltcGxpZmllZCwgb2Z0ZW4tZXhhZ2dlcmF0ZWQsIHdheSBvZiBoaWdobGlnaHRpbmcgdGhhdCBhbGwgbGlmZSBzaGFyZXMgY29tbW9uIGFuY2VzdHJhbCBnZW5lcyBmb3IgYmFzaWMgY2VsbHVsYXIgcHJvY2Vzc2VzLiANCjIwMDBzOltNQkFdIFNob3VsZCBDb3N0IE1vZGVsaW5nOiBNb2Rlcm4gIlNob3VsZCBDb3N0IiBtb2RlbHMgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBpZGVhbCBjb3N0IG9mIGEgcHJvZHVjdCwgYWNjb3VudGluZyBmb3IgbGFib3IsIG1hdGVyaWFscywgYW5kIG92ZXJoZWFkLiBFbnZpcm9ubWVudGFsICYgU29jaWFsIEltcGFjdDogTW9kZXJuIENCQSBub3cgcm91dGluZWx5IGluY2x1ZGVzIGVudmlyb25tZW50YWwgYW5kIHNvY2lhbCBpbXBhY3RzIGluIGFkZGl0aW9uIHRvIGZpbmFuY2lhbCBvbmVzLiBTaGlmdCBmcm9tIExvY2FsIHRvIEdsb2JhbDogRWFybHksIGhpZ2hseSBsb2NhbCBhc3Nlc3NtZW50cyBldm9sdmVkIGludG8gbGFyZ2Utc2NhbGUsIG5hdGlvbmFsLCBhbmQgaW50ZXJuYXRpb25hbCBDQkEuIFJlZmluZW1lbnQgb2YgVGVjaG5pcXVlczogTW92aW5nIGZyb20gc2ltcGxlLCBzaW5nbGUtcGVyaW9kIG1vZGVscyB0byBjb21wbGV4LCBtdWx0aS1wZXJpb2Qgc2ltdWxhdGlvbnMuIEluY3JlYXNlZCBEYXRhIFVzZTogVGhlIGF2YWlsYWJpbGl0eSBvZiBsYXJnZSwgZ3JhbnVsYXIgZGF0YSBzZXRzIGhhcyBhbGxvd2VkIGZvciBtb3JlIHByZWNpc2UgYW5kIHJlbGlhYmxlIGFuYWx5c2lzLiANCjIwMDBzOltNbnRuZ2ddW0V4dHJlbWVdIEluIHRoZSBlYXJseSAyMDAwcywgRGlkaWVyIEJlcnRob2Qgd2FzIHRoZSBiZXN0IGNyYWNrIGNsaW1iZXIgaW4gdGhlIHdvcmxkLCB0aGVuIGhlIGRyb3BwZWQgb3V0IG9mIGNsaW1iaW5nIGFuZCBlc3NlbnRpYWxseSBkaXNhcHBlYXJlZCBmcm9tIHRoZSB3b3JsZC4NCjIwMDBzOltSZWFsdHldIEVhcmx5IDIwMDBzOiBSZWFsIGVzdGF0ZSB3YXMgaW4gaXRzIGVhcmx5IHN0YWdlcyBpbiBJbmRpYSwgd2l0aCBncmFkdWFsIGdyb3d0aCBhbmQgZGV2ZWxvcG1lbnQuIA0KMjAwMHM6VGVhbXdvcmsgaXMgbm93IGFuIGludGVncmFsIHBhcnQgb2Ygb3JnYW5pemF0aW9uYWwgc3RyYXRlZ3ksIHdpdGggYSBncmVhdGVyIGVtcGhhc2lzIG9uIGN1c3RvbWl6YXRpb24sIHBlcnNvbmFsaXphdGlvbiwgYW5kIHN0cmF0ZWdpYyBpbnRlZ3JhdGlvbiBvZiB0ZWFtLWJ1aWxkaW5nIHByYWN0aWNlcy4gVGhlIHJpc2Ugb2YgdGVjaG5vbG9neSBoYXMgYWxzbyBpbmZsdWVuY2VkIHRlYW13b3JrLCB3aXRoIHJlbW90ZSB3b3JrIGJlY29taW5nIG1vcmUgcHJldmFsZW50IGFuZCBuZXcgdG9vbHMgZW1lcmdpbmcgdG8gZmFjaWxpdGF0ZSBjb2xsYWJvcmF0aW9uLiANCg0KMjAwMDpbVVNdW0dlb1BvbGl0aWNzXSBvdmVydGhyb3cgb2YgU2xvYm9kYW4gTWlsb8WhZXZpxIcuIChVUydzIGludm9sdmVtZW50IGluIHJlZ2ltZSBjaGFuZ2UpDQoyMDAwOiBbR2VvUG9saXRpY3NdW01pbGl0YXJ5XVtFY29ub21pY3NdIFRoZSBVUyBEb2xsYXIgaG9sZHMgYSA3MiUgc2hhcmUgb2YgYWxsIGdsb2JhbCBjdXJyZW5jeSByZXNlcnZlcyBbWzE2OjQyXShodHRwOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dllKcmkxZU5SeWMmdD0xMDAyKV0uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdIDI2IEFwcmlsIDIwMDA6IHRoZSBHZXJtYW4gdGVhbSBvcGVyYXRpbmcgdGhlIG1hc3Mgc3BlY3Ryb21ldGVyIG9uIE5BU0EncyBTdGFyZHVzdCBtaXNzaW9uIGFubm91bmNlZCB0aGUgZGV0ZWN0aW9uIG9mIHZlcnkgbGFyZ2Ugb3JnYW5pYyBtb2xlY3VsZXMgaW4gaW50ZXJzdGVsbGFyIHNwYWNlLiBOb25iaW9sb2dpY2FsIHNvdXJjZXMgZm9yIG9yZ2FuaWMgbW9sZWN1bGVzIHNvIGxhcmdlIGFyZSBub3Qga25vd24uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdMTkgT2N0b2JlciAyMDAwLCBhIHRlYW0gb2YgYmlvbG9naXN0cyBhbmQgYSBnZW9sb2dpc3QgYW5ub3VuY2VkIHRoZSByZXZpdmFsIG9mIGJhY3RlcmlhIHRoYXQgYXJlIDI1MCBtaWxsaW9uIHllYXJzIG9sZCwgc3RyZW5ndGhlbmluZyB0aGF0IGNhc2UgdGhhdCBiYWN0ZXJpYWwgc3BvcmVzIGNhbiBiZSBpbW1vcnRhbC4NCjEzIERlY2VtYmVyIDIwMDA6IGEgTkFTQSB0ZWFtIGRlbW9uc3RyYXRlZCB0aGF0IHRoZSBtYWduZXRvc29tZXMgaW4gTWFycyBtZXRlb3JpdGUgQUxIIDg0MDAxIGFyZSBiaW9sb2dpY2FsLg0KMjAwMDpbUmVzZWFyY2hdW1NwYWNlXSBNaWxlaWtvd3NreSBDLCBDdWNpbm90dGEgRkEsIFdpbHNvbiBKVywgR2xhZG1hbiBCLCBIb3JuZWNrIEcsIExpbmRlZ3JlbiBMLCBNZWxvc2ggSiwgUmlja21hbiBILCBWYWx0b25lbiBNLCBaaGVuZyBKUS4gTmF0dXJhbCB0cmFuc2ZlciBvZiB2aWFibGUgbWljcm9iZXMgaW4gc3BhY2UuIEljYXJ1cyAyMDAwLCAxNDU6Mzkx4oCTNDI3LiBbRE9JXSBbUHViTWVkXSBbR29vZ2xlIFNjaG9sYXJdDQoyMDAwOltTcGFjZVhdIFMvMjAwMCAoOTApIDEgTW9vbiBEaXNjb3ZlcmVyOiBXaWxsaWFtIEouIE1lcmxpbmUgT3JiaXRzOiA5MCBBbnRpb3BlIEFic29sdXRlIG1hZ25pdHVkZTogOS4wMg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gZGVtb25zdHJhdGVkIFNob3LigJlzIGFsZ29yaXRobSBvbiBhIDUtcXViaXQgTk1SIHF1YW50dW0gY29tcHV0ZXIsIGZhY3RvcmluZyB0aGUgbnVtYmVyIDE1Lg0KMjAwMDogQXQgYWdlIDE0IGFuZCBpbiBjbGFzcyA4dGgsIEFhcm9uIFN3YXJ0eiBiZWNhbWUgYSBtZW1iZXIgb2YgdGhlIHdvcmtpbmcgZ3JvdXAgdGhhdCBhdXRob3JlZCB0aGUgUlNTIDEuMCB3ZWIgc3luZGljYXRpb24gc3BlY2lmaWNhdGlvbi4NCjIwMDA6IE1ha2VteVRyaXANCjIwMDAgKEphbiAxNCk6W0phY2tdIEthaG8gTmFhLi4uIFB5YWFyIEhhaQ0KMjAwMCAoRmViKTogSW5kaWFuIFJhaWx3YXlzIHdlYiBzaXRlIGkuZS4gaHR0cDovL2luZGlhbnJhaWx3YXlzLmdvdi5pbi8gd2FzIGRlcGxveWVkIGJ5IENSSVMuDQoyMDAwIChNYXIpOltCb29rXSBNYWxjb2xtIEdsYWR3ZWxsJ3MgZGVidXQgYm9vaywgVGhlIFRpcHBpbmcgUG9pbnQ6IEhvdyBMaXR0bGUgVGhpbmdzIENhbiBNYWtlIGEgQmlnIERpZmZlcmVuY2UuIA0KQmxpbms6IFRoZSBQb3dlciBvZiBUaGlua2luZyBXaXRob3V0IFRoaW5raW5nICgyMDA1LCBKYW4gMTEpOyANCk91dGxpZXJzOiBUaGUgU3Rvcnkgb2YgU3VjY2VzcyAoMjAwOCwgTm92IDE4KTsgDQpXaGF0IHRoZSBEb2cgU2F3OiBBbmQgT3RoZXIgQWR2ZW50dXJlcyAoMjAwOSwgT2N0IDIwKTsgDQpEYXZpZCBhbmQgR29saWF0aDogVW5kZXJkb2dzLCBNaXNmaXRzLCBhbmQgdGhlIEFydCBvZiBCYXR0bGluZyBHaWFudHMgKDIwMTMsIE9jdCAxKQ0KVGFsa2luZyB0byBTdHJhbmdlcnM6IFdoYXQgV2UgU2hvdWxkIEtub3cgYWJvdXQgdGhlIFBlb3BsZSBXZSBEb24ndCBLbm93ICgyMDE5KQ0KMjAwMCAoQXByIDEpOltCb29rXSBSb2JlcnQgS2l5b3Nha2kgJiBTaGFyb24gTGVjaHRlcidzIFJpY2ggRGFkIFBvb3IgRGFkLg0KMjAwMCAoQXByIDEpOltUZWNobm9sb2d5XVtSZXNlYXJjaF0gIldoeSBUaGUgRnV0dXJlIERvZXNuJ3QgTmVlZCBVcyIgaXMgYW4gYXJ0aWNsZSB3cml0dGVuIGJ5IEJpbGwgSm95IGluIHRoZSBBcHJpbCAyMDAwIGlzc3VlIG9mIFdpcmVkIG1hZ2F6aW5lLiBJbiB0aGUgYXJ0aWNsZSwgaGUgYXJndWVzIHRoYXQgIk91ciBtb3N0IHBvd2VyZnVsIDIxc3QtY2VudHVyeSB0ZWNobm9sb2dpZXPigJRyb2JvdGljcywgZ2VuZXRpYyBlbmdpbmVlcmluZywgYW5kIG5hbm90ZWNo4oCUYXJlIHRocmVhdGVuaW5nIHRvIG1ha2UgaHVtYW5zIGFuIGVuZGFuZ2VyZWQgc3BlY2llcy4iIA0KMjAwMCAoSnVuIDI2KTpbTXVzaWNdICJZZWxsb3ciIGlzIGEgc29uZyBieSB0aGUgQnJpdGlzaCByb2NrIGJhbmQgQ29sZHBsYXkuIFRoZSBiYW5kIHdyb3RlIHRoZSBzb25nIGFuZCBjby1wcm9kdWNlZCBpdCB3aXRoIEJyaXRpc2ggcmVjb3JkIHByb2R1Y2VyIEtlbiBOZWxzb24gZm9yIHRoZWlyIGRlYnV0IGFsYnVtLCBQYXJhY2h1dGVzICgyMDAwKS4gVGhlIHNvbmcgd2FzIHJlY29yZGVkIGluIE1hcmNoIDIwMDAgYW5kIHJlbGVhc2VkIG9uIDI2IEp1bmUgdGhhdCBzYW1lIHllYXIuDQoyMDAwIChTZXApOiBBbWF6b24ncyBKZWZmIEJlem9zIGZvdW5kZWQuDQoyMDAwIChTZXApOltDcmltZV1bSW5kaWFdIENoaG90YSBTaGFrZWVsJ3MgYXR0YWNrIG9uIFJhamFuIGluIGhpcyBCYW5na29rIGhvdGVsIHJvb20uDQoyMDAwIChTZXApOiBSYWlsVGVsIENvcnBvcmF0aW9uIG9mIEluZGlhIEx0ZC4gZm91bmRlZCBhbmQgSFEnZCBhdCAxNDMsIEluc3RpdHV0aW9uYWwgQXJlYSwgU2VjdG9yLTQ0LCBHdXJnYW9uLCBIYXJ5YW5hLCBJbmRpYS4gSXQgaXMgYSBNaW5pcmF0bmEgZW50ZXJwcmlzZSBvZiBHb3Zlcm5tZW50IG9mIEluZGlhIGZvY3VzaW5nIG9uIHByb3ZpZGluZyBicm9hZGJhbmQgYW5kIFZQTiBzZXJ2aWNlcy4NCjIwMDAgKFNlcCAxNyk6IFtHZW9Qb2xpdGljc10gVGhlIGlkZWEgb2YgYW4gQXNpYSBDb29wZXJhdGlvbiBEaWFsb2d1ZSAoQUNEKSB3YXMgcmFpc2VkIGF0IHRoZSBGaXJzdCBJbnRlcm5hdGlvbmFsIENvbmZlcmVuY2Ugb2YgQXNpYW4gUG9saXRpY2FsIFBhcnRpZXMgKGhlbGQgaW4gTWFuaWxhIGJldHdlZW4gMTfigJMyMCBTZXB0ZW1iZXIgMjAwMCkgYnkgU3VyYWtpYXJ0IFNhdGhpcmF0aGFpLCB0aGVuIGRlcHV0eSBsZWFkZXIgb2YgdGhlIG5vdyBkZWZ1bmN0IFRoYWkgUmFrIFRoYWkgUGFydHksIG9uIGJlaGFsZiBvZiBoaXMgcGFydHkgbGVhZGVyLCBUaGFrc2luIFNoaW5hd2F0cmEsIHRoZW4gUHJpbWUgTWluaXN0ZXIgb2YgVGhhaWxhbmQuIEl0IHdhcyBzdWdnZXN0ZWQgdGhhdCBBc2lhIGFzIGEgY29udGluZW50IHNob3VsZCBoYXZlIGl0cyBvd24gZm9ydW0gdG8gZGlzY3VzcyBBc2lhLXdpZGUgY29vcGVyYXRpb24uIEFmdGVyd2FyZHMsIHRoZSBpZGVhIG9mIHRoZSBBQ0Qgd2FzIGZvcm1hbGx5IHB1dCBmb3J3YXJkIGR1cmluZyB0aGUgMzR0aCBBU0VBTiBGb3JlaWduIE1pbmlzdGVycyBNZWV0aW5nIGluIEhhbm9pLCAyM+KAkzI0IEp1bHkgMjAwMSBhbmQgYXQgdGhlIEFTRUFOIEZvcmVpZ24gTWluaXN0ZXJzIFJldHJlYXQgaW4gUGh1a2V0LCAyMOKAkzIxIEZlYnJ1YXJ5IDIwMDIuDQoyMDAwIChPY3QgNCk6W011c2ljXSBGb3JtZWQgaW4gMTk5NiwgTGlua2luIFBhcmsgcm9zZSB0byBpbnRlcm5hdGlvbmFsIGZhbWUgd2l0aCB0aGVpciBkZWJ1dCBzdHVkaW8gYWxidW0sIEh5YnJpZCBUaGVvcnkuIEZvdXIgc2luZ2xlcyB3ZXJlIHJlbGVhc2VkIGZyb20gSHlicmlkIFRoZW9yeTogIk9uZSBTdGVwIENsb3NlciIsICJJbiB0aGUgRW5kIiwgIkNyYXdsaW5nIiBhbmQgIlBhcGVyY3V0IiwgYWxsIG9mIHRoZW0gYmVpbmcgcmVzcG9uc2libGUgZm9yIGxhdW5jaGluZyBMaW5raW4gUGFyayBpbnRvIG1haW5zdHJlYW0gcG9wdWxhcml0eS4gV2hpbGUgIkluIHRoZSBFbmQiIHdhcyB0aGUgbW9zdCBzdWNjZXNzZnVsIG9mIHRoZSBmb3VyLCBhbGwgb2YgdGhlIHNpbmdsZXMgaW4gdGhlIGFsYnVtIHJlbWFpbiBzb21lIG9mIHRoZSBiYW5kJ3MgbW9zdCBzdWNjZXNzZnVsIHNvbmdzIHRvIGRhdGUuDQoyMDAwIChOb3YgOSk6IGZvcm1hdGlvbiBvZiBVdHRhcmFraGFuZCBhcyBVdHRhcmFuY2hhbCAyMDAwIChKdW4gOSk6IEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQWN0LCAyMDAwLiBUaGUgYmlsbCB3YXMgcGFzc2VkIGluIHRoZSBidWRnZXQgc2Vzc2lvbiBvZiAyMDAwIGFuZCBzaWduZWQgYnkgUHJlc2lkZW50IEsuIFIuIE5hcmF5YW5hbiBvbiA5IE1heSAyMDAwLiBUaGUgYmlsbCB3YXMgZmluYWxpc2VkIGJ5IGdyb3VwIG9mIG9mZmljaWFscyBoZWFkZWQgYnkgdGhlbiBNaW5pc3RlciBvZiBJbmZvcm1hdGlvbiBUZWNobm9sb2d5LCBQcmFtb2QgTWFoYWphbi4NCjIwMDA6IGZvcm1hdGlvbiBvZg0KMjAwMDogSmFpc2gtZS1Nb2hhbW1lZCAobGl0ZXJhbGx5ICJUaGUgQXJteSBvZiBNdWhhbW1hZCIsIEplTSkgZm91bmRlZCBhdCBCYWhhd2FscHVyLCBQdW5qYWIsIFBha2lzdGFuLg0KMjAwMDogQ2hpbmEncyBCZWlEb3UgbmF2aWdhdGlvbiB0ZXN0IHN5c3RlbSBzdGFydHMuDQoyMDAwOiBGaXNlcnYgaGFkIGFjcXVpcmVkIG1vcmUgdGhhbiA5MCBidXNpbmVzc2VzLiBUaGUgbnVtYmVyIG9mIGVtcGxveWVlcyBncmV3IGZyb20gMjY0IHRvIDE0LDAwMC4gRmlzZXJ2IHdhcyBhbiBpbmR1c3RyeSBsZWFkZXIsIHdpdGggcmV2ZW51ZSB0aGF0IGluY3JlYXNlZCBmcm9tICQyMSBtaWxsaW9uIHRvICQxLjQgYmlsbGlvbiBpbiAxNSB5ZWFycy4NCjIwMDAgKERlYyA4KTpbR2FtaW5nXSBQcm9qZWN0IEkuRy5JLiBpcyBhIHRhY3RpY2FsIGZpcnN0LXBlcnNvbiBzaG9vdGVyIHZpZGVvIGdhbWUuIEl0IHdhcyBkZXZlbG9wZWQgYnkgSW5uZXJsb29wIFN0dWRpb3MgYW5kIHJlbGVhc2VkIGluIERlY2VtYmVyIDIwMDAgYnkgRWlkb3MgSW50ZXJhY3RpdmUuIFRoZSBnYW1lIHJlY2VpdmVkIG1peGVkIHJldmlld3MgZHVlIHRvIHNob3J0Y29taW5ncyBpbmNsdWRpbmcgYSBwb29ybHkgcHJvZ3JhbW1lZCBBLkkuLCBsYWNrIG9mIGEgbWlkLWdhbWUgc2F2ZSBvcHRpb24sIGFuZCB0aGUgbGFjayBvZiBtdWx0aXBsYXllciBmZWF0dXJlcy4gSG93ZXZlciBpdCB3YXMgcHJhaXNlZCBmb3IgaXRzIHNvdW5kIGRlc2lnbiBhbmQgZ3JhcGhpY3MsIHRoYW5rcyBpbiBwYXJ0IHRvIGl0cyB1c2Ugb2YgYSBwcm9wcmlldGFyeSBnYW1lIGVuZ2luZSB0aGF0IHdhcyBwcmV2aW91c2x5IHVzZWQgaW4gSW5uZXJsb29wJ3MgSm9pbnQgU3RyaWtlIEZpZ2h0ZXIuDQoyMDAwIChEZWMgMjEpOltKYWNrXSBSYWp1IENoYWNoYSByZWxlYXNlZC4NCjIwMDA6IFtCdXNpbmVzc11bRmluYW5jZV1bQ29ycG9yYXRlXVtJbmRpYV0gUklMIHBpbG90ZWQgd29ybGQncyBsYXJnZXN0IHBldHJvbGV1bSByZWZpbmVyeSBhdCBKYW1uYWdhciwgR3VqYXJhdCwgcmVmaW5pbmcgMS4yNE1uIGJhcnJlbHMvZGF5Lg0KMjAwMDpbQ3JpbWVdW0luZGlhXSBQb2xpY2UgZW5jb3VudGVycyBpbiBNdW1iYWkuIE1vc3QgY3JpbWluYWxzIGZsZWVpbmcgdG8gQ2FsY3VsdHRhLiBBZnRhYiBCaGF0a2kgZGVzdGFiaWxpc2UgdGhlIGVjb25vbXkgYnkgc3ByZWFkaW5nIGZha2UgY3VycmVuY3kgbm90ZXMgcHJpbnRlZCBieSBJU0kgZnVuY3Rpb25hcmllcywgYW5kIHR3bywgc2VuZCBtZXJjZW5hcmllcyB0byBjb25kdWN0IGFiZHVjdGlvbnMgYW5kIHRlcnJvcmlzdCBhdHRhY2tzLg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBUZWNobmljYWwgVW5pdmVyc2l0eSBvZiBNdW5pY2ggKDUgcXViaXQpOyBMb3MgQWxhbW9zIE5hdGlvbmFsIExhYiAoNyBxdWJpdHMpDQoyMDAwOkluIDIwMDAsIFRhdGEgVGVhIGFjcXVpcmVkIHRoZSBUZXRsZXkgVGVhIENvbXBhbnkgZm9yICQ0MDcgbWlsbGlvbi4gT3RoZXIgbm90YWJsZSBhY3F1aXNpdGlvbnMgaW5jbHVkZSBOYXRTdGVlbCAoMjAwNCksIEJydW5uZXIgTW9uZCAoMjAwNSksIGFuZCBFaWdodCBPJ0Nsb2NrIENvZmZlZSAoMjAwNikuIA0KMjAwMDogQmlybGEgYWNxdWlyZWQgSW5kaWFuIEFsdW1pbnVtIENvbXBhbnkgKElOREFMKS4gDQoyMDAwOiBTYXR5YSBOYXJheWFuYSBHb2Vua2Egd29ya2VkIGFzIGFuIGludGVybmF0aW9uYWwgYnVzaW5lc3NtYW4gYmFzZWQgaW4gTXlhbm1hciBhbmQgSW5kaWEgZm9yIGEgbGFyZ2UgcGFydCBvZiBoaXMgbGlmZS4gSGUgd2FzIGEga2V5bm90ZSBzcGVha2VyIG9uIHRoZSBzdWJqZWN0IG9mIFNwaXJpdHVhbGl0eSBpbiBCdXNpbmVzcyBhdCB0aGUgMzB0aCBXb3JsZCBFY29ub21pYyBGb3J1bSBpbiBEYXZvcywgU3dpdHplcmxhbmQgYmV0d2VlbiAyNiBKYW4gYW5kIDIgRmViIDIwMDAuIFR3byB5ZWFycyBsYXRlciBoZSBjb25kdWN0ZWQgdGhlIGZpcnN0IDEwLWRheSBjb3Vyc2UgaW4gVmlwYXNzYW5hIE1lZGl0YXRpb24gZXNwZWNpYWxseSBmb3IgYnVzaW5lc3MgZXhlY3V0aXZlcyBhbmQgZ292ZXJubWVudCBvZmZpY2lhbHMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAyMjUgeWVhcnMgb2YgSW5kZXBlbmRlbnQgVVNBIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIA0KDQoyMDAxOltVU11bR2VvUG9saXRpY3NdIGludmFzaW9uIG9mIEFmZ2hhbmlzdGFuLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMjAwMTpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgU2hhbmdoYWkgQ29vcGVyYXRpb24gT3JnYW5pc2F0aW9uIChTQ08pIGlzIGEgRXVyYXNpYW4gcG9saXRpY2FsLCBlY29ub21pYywgaW50ZXJuYXRpb25hbCBzZWN1cml0eSBhbmQgZGVmZW5jZSBvcmdhbml6YXRpb24gb2YgdGVuIG1lbWJlciBzdGF0ZXMuIEl0IHdhcyBlc3RhYmxpc2hlZCBpbiAyMDAxIGJ5IHRoZSBQZW9wbGUncyBSZXB1YmxpYyBvZiBDaGluYSwgS2F6YWtoc3RhbiwgS3lyZ3l6c3RhbiwgUnVzc2lhLCBhbmQgVGFqaWtpc3RhbiBhbmQgVXpiZWtpc3Rhbi4gSW4gSnVuZSAyMDE3LCBpdCBleHBhbmRlZCB0byBlaWdodCBzdGF0ZXMsIHdpdGggSW5kaWEgYW5kIFBha2lzdGFuLiBJcmFuIGpvaW5lZCB0aGUgZ3JvdXAgaW4gSnVseSAyMDIzLCBhbmQgQmVsYXJ1cyBpbiBKdWx5IDIwMjQuIFNldmVyYWwgY291bnRyaWVzIGFyZSBlbmdhZ2VkIGFzIG9ic2VydmVycyBvciBkaWFsb2d1ZSBwYXJ0bmVycy4gRm91bmRlcnM6IENoaW5hLCBSdXNzaWEsIEthemFraHN0YW4sIFV6YmVraXN0YW4sIEt5cmd5enN0YW4sIFRhamlraXN0YW47IEhlYWRxdWFydGVyczogQmVpamluZywgQ2hpbmE7IEZvdW5kZWQ6IDE1IEp1bmUgMjAwMQ0KMjAwMTpbQnVzaW5lc3NdIDIwMDHigJMyMDA1OiBIRlQgZXhlY3V0aW9uIHRpbWVzIGRlY3JlYXNlZCBmcm9tIHNldmVyYWwgc2Vjb25kcyB0byBtaWxsaXNlY29uZHMuIChIRlQpDQoyMDAxOltDb21wdXRpbmddW1F1YW50dW1dICBJQk0gaW1wbGVtZW50ZWQgR3JvdmVy4oCZcyBhbGdvcml0aG0gb24gYSA3LXF1Yml0IE5NUiBxdWFudHVtIGNvbXB1dGVyLCBmaW5kaW5nIGEgbWFya2VkIGl0ZW0gaW4gYSBkYXRhYmFzZSBvZiA0IGVudHJpZXMuDQoyMDAxOiBMaWZlIG9mIFBpIGlzIGEgQ2FuYWRpYW4gcGhpbG9zb3BoaWNhbCBub3ZlbCBieSBZYW5uIE1hcnRlbCBwdWJsaXNoZWQuIFRoZSBwcm90YWdvbmlzdCBpcyBQaXNjaW5lIE1vbGl0b3IgIlBpIiBQYXRlbCwgYW4gSW5kaWFuIGJveSBmcm9tIFBvbmRpY2hlcnJ5IHdobyBleHBsb3JlcyBpc3N1ZXMgb2Ygc3Bpcml0dWFsaXR5IGFuZCBtZXRhcGh5c2ljcyBmcm9tIGFuIGVhcmx5IGFnZS4gSGUgc3Vydml2ZXMgMjI3IGRheXMgYWZ0ZXIgYSBzaGlwd3JlY2sgd2hpbGUgc3RyYW5kZWQgb24gYSBsaWZlYm9hdCBpbiB0aGUgUGFjaWZpYyBPY2VhbiB3aXRoIGEgQmVuZ2FsIHRpZ2VyIHdoaWNoIHJhaXNlcyBxdWVzdGlvbnMgYWJvdXQgdGhlIG5hdHVyZSBvZiByZWFsaXR5IGFuZCBob3cgaXQgaXMgcGVyY2VpdmVkIGFuZCB0b2xkLjtTZXZlbiBTdG9yaWVzICgxOTkzKQ0KMjAwMTpbQ3JpbWVdW0luZGlhXSBDaGhvdGEgUmFqYW4ncyBhc3NvY2lhdGVzIHRyYWNrZWQgZG93biBhbmQgc2hvdCBkZWFkIGhvdGVsaWVyIFZpbm9kIGluIE11bWJhaSwgYXMgd2VsbCBhcyBTdW5pbCBTb2FucyDigJMgYW5vdGhlciBEYXdvb2QgYXNzb2NpYXRlLg0KMjAwMSAoSmFuIDEpOltCb29rXSBHcmVnIE1jS2Vvd24ncyBFc3NlbnRpYWxpc206IFRoZSBEaXNjaXBsaW5lZCBQdXJzdWl0IG9mIExlc3MNCjIwMDEgKEphbiAxKTpbQm9va10gQnJpYW4gVHJhY3kncyBFYXQgVGhhdCBGcm9nIQ0KMjAwMTogVGhlIEFyZHVpbm8gcHJvamVjdCBzdGFydGVkIGF0IHRoZSBJbnRlcmFjdGlvbiBEZXNpZ24gSW5zdGl0dXRlIEl2cmVhIChJRElJKSBpbiBJdnJlYSwgSXRhbHkuIEF0IHRoYXQgdGltZSwgdGhlIHN0dWRlbnRzIHVzZWQgYSBCQVNJQyBTdGFtcCBtaWNyb2NvbnRyb2xsZXIgYXQgYSBjb3N0IG9mICQxMDAsIGEgY29uc2lkZXJhYmxlIGV4cGVuc2UgZm9yIG1hbnkgc3R1ZGVudHMuDQoyMDAxIChBcHIgNHRoKTogQ2hhcmxlcyBNLiBWZXN0LCB0aGUgdGhlbiBQcmVzaWRlbnQgb2YgTUlUIGFubm91bmNlZCBPcGVuQ291cnNlV2FyZSAoT0NXKSBwdWJsaWNpemluZyBhbGwgb2YgaXRzIDIsMDAwIGNvdXJzZXMgIGF0IHRoZSBlc3RpbWF0ZWQgY29zdCBvZiAkMTAwIG1pbGxpb24gKG9uIGFuIGF2Zy4sIGEgTUlUIHN0dWRlbnRzIHBheXMgYXJvdW5kICQyNiwwMDAgYXMgb2ZmbGluZSB0dWl0aW9uIGZlZSkNCjIwMDE6IFVTIGludmFkZWQgQWZnaGFuaXN0YW4gaW4gcmVzcG9uc2UgdG8gOS8xMSBhdHRhY2tzLiBPZmZpY2lhbGx5LCBJdCBoYXMgYmVjb21lIHRoZSBsb25nZXN0IHdhciBpbiBBbWVyaWNhbiBoaXN0b3J5Lg0KMjAwMTogaVBvZCBieSBUb255IEZhZGVsbA0KMjAwMSAoSnVuIDE1KTpbSmFja10gR2FkYXI6IEVrIFByZW0gS2F0aGE7IExhZ2FhbjogT25jZSBVcG9uIGEgVGltZSBpbiBJbmRpYQ0KMjAwMSAoU2VwIDExKTogOS8xMSBUZXJyb3Jpc3QgYXR0YWNrcy4gVGhlIFNlcHRlbWJlciAxMSBvciA5LzExLCBhdHRhY2tzIHdlcmUgYSBzZXJpZXMgb2YgZm91ciBjb29yZGluYXRlZCB0ZXJyb3Jpc3QgYXR0YWNrcyBieSB0aGUgSXNsYW1pYyB0ZXJyb3Jpc3QgZ3JvdXAgYWwtUWFlZGEgb24gdGhlIFVuaXRlZCBTdGF0ZXMgb24gdGhlIG1vcm5pbmcgb2YgVHVlc2RheSwgU2VwIDExLiBUaGUgbG9zcyBvZiBsaWZlIHdhcyBlc3RpbWF0ZWQgYXQganVzdCB1bmRlciAzLDAwMC4gVGhlIGV2ZW50IGNoYW5nZWQgQW1lcmljYW4gZm9yZWlnbiBwb2xpY3kuIEl0IHdhcyBhIG1vdGl2YXRpbmcgZmFjdG9yIGJlaGluZCB0aGUgY29udHJvdmVyc2lhbCBpbnZhc2lvbiBvZiBJcmFxIGFuZCBsZWQgdG8gYSDigJh3YXIgb24gdGVycm9y4oCZIHN5bWJvbGlzZWQgYnkgR3VhbnRhbmFtbyBCYXkgYW5kIGEgZGViYXRlIG92ZXIgdGhlIGp1c3RpZmljYXRpb24gb2YgdG9ydHVyZS4NCjIwMDEgKE9jdCA3KTpbR2VvUG9saXRpY3NdIFVuaXRlZCBTdGF0ZXMgaW52YXNpb24gb2YgQWZnaGFuaXN0YW46IEluIGxhdGUgMjAwMSwgdGhlIFVuaXRlZCBTdGF0ZXMgYW5kIGl0cyBjbG9zZSBhbGxpZXMgaW52YWRlZCBBZmdoYW5pc3RhbiBhbmQgdG9wcGxlZCB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50LiBUaGUgaW52YXNpb24ncyBzdGF0ZWQgYWltcyB3ZXJlIHRvIGRpc21hbnRsZSBhbC1RYWVkYSwgd2hpY2ggaGFkIGV4ZWN1dGVkIHRoZSBTZXB0ZW1iZXIgMTEgYXR0YWNrcywgYW5kIHRvIGRlbnkgaXQgYSBzYWZlIGJhc2Ugb2Ygb3BlcmF0aW9ucyBpbiBBZmdoYW5pc3RhbiBieSByZW1vdmluZyB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50IGZyb20gcG93ZXIuIERlYyA3LCAyMDAxIG9ud2FyZCBzdGFydGVkIFdhciBpbiBBZmdoYW5pc3Rhbi4NCjIwMDEgKE9jdCAxNik6W0Jvb2tdIE1jS2luc2V5IFJlc2VhcmNoZXIgSmFtZXMgQy4gQ29sbGlucycgR29vZCBUbyBHcmVhdDogV2h5IFNvbWUgQ29tcGFuaWVzIE1ha2UgdGhlIExlYXAuLi5BbmQgT3RoZXJzIERvbid0OyANCjIwMDEgKE5vdik6W0NyaW1lXVtJbmRpYV0gQWJkdWwgR2FmZmFyIGFsaWFzIENoaWtuYSBHYWZmYXIgY2F1Z2h0IGJ5IHRoZSBkZXRlY3RpdmUgZGVwYXJ0bWVudCBpbiBDYWxjdXR0YSANCjIwMDEgKEphbiAyKTogVGhlIG5vcnRoZXJuIGVsZWN0cmljYWwgZ3JpZCBjb2xsYXBzZWQgaW4gSW5kaWEuIEEgZmF1bHQgaW4gdGhlIHRyYW5zbWlzc2lvbiBzeXN0ZW0gaW4gdGhlIHN0YXRlIG9mIFV0dGFyIFByYWRlc2ggbGVkIHRvIGNhc2NhZGluZyBmYWlsdXJlIHRocm91Z2hvdXQgbm9ydGhlcm4gSW5kaWEgYWZmZWN0aW5nIDIzIGNyb3JlIHJlc2lkZW50cy4NCjIwMDE6IElWUlMgKCdJbnRlcmFjdGl2ZSBWb2ljZSBSZXNwb25zZSBTeXN0ZW0nKSBmb3IgdGVsZXBob25pYyBlbnF1aXJpZXMgYWJvdXQgdHJhaW5zIGludHJvZHVjZWQgaW4gc29tZSBzdGF0aW9ucy4NCjIwMDE6IE1hZGVFYXN5IGluY29ycG9yYXRlZCBhdCA0NC1BLzEsIEthbHUgU2FyYWksIE5lYXIgSGF1eiBLaGFzIE1ldHJvIFN0YXRpb24sIE5ldyBEZWxoaS0xMTAwMTYNCjIwMDE6IEFjYyB0byAyMDAxIGNlbnN1cywgMzAgbGFraHMgd2VyZSBpbW1pZ3JhdGVkIHRvIEluZGlhIGZyb20gQmFuZ2xhZGVzaCBhbG9uZSwgZm9sbG93ZWQgYnkgMTAgbGFraHMgZnJvbSBQYWtpc3RhbiBhbmQgNiBsYWtocyBmcm9tIE5lcGFsLg0KMjAwMSAoRGVjIDEzKTpbQ3JpbWVdW0luZGlhXSBUZXJyb3Jpc3QgYXR0YWNrIG9uIEluZGlhJ3MgUGFybGlhbWVudC4NCjIwMDE6IHRoZSBjdXN0b21lciBiYXNlIG9mIG1vYmlsZSBwaG9uZSBjb21wYW5pZXMgd2FzIDQgbWlsbGlvbi4NCjIwMDE6IEJlbmVmaXQgbGFubmVycywgVGV4YXMgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBIZWFsdGggQmVuZWZpdCBkaXZpc2lvbi4NCjIwMDE6IE5ldyBIb3Jpem9ucyB3YXMgaW5pdGlhbGx5IHNlbGVjdGVkIGZvciBmdW5kaW5nIGluIDIwMDEgYnV0IHdhcyBleGNsdWRlZCBmcm9tIHRoZSBOQVNBIDIwMDMgYnVkZ2V0LiBGdW5kaW5nIGZvciB0aGUgbWlzc2lvbiB3YXMgcmVpbnN0YXRlZCBhZnRlciBOZXcgSG9yaXpvbnMgd2FzIGxpc3RlZCBhcyBhIHRvcCBwcmlvcml0eSBpbiB0aGUgUGxhbmV0YXJ5IFNjaWVuY2UgRGVjYWRhbCBTdXJ2ZXkgb2YgMjAwM+jjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlallkllklklklklklklklklklklklklklklklklklklklklklklklklklklklkjjajlkasjdlajdlkajdlaj
+KAkzIwMDEuDQoxOTkzOiBBc2hvayBIYWxsIEdpcmwncyBSZXNpZGVudGlhbCBTY2hvb2wsIE1hamtoYWxpLg0KMTk5MzogQnkgdGhpcyB5ZWFyIHRoZXJlIHdlcmUgYXJvdW5kIDEwMCB3ZWItc2VydmVycyBhY3Jvc3MgdGhlIHdvcmxkLiAoQSByZXBvcnQgcHVibGlzaGVkIGluIGZpcnN0IGlzc3VlIG9mIFRoZSBXb3JsZCBXaWRlIFdlYiBOZXdzbGV0dGVyLCAxOTkzKQ0KMTk5MzogQUMgMy10aWVyIGNvYWNoZXMgJiBTbGVlcGVyIGNsYXNzIGFyZSBpbnRyb2R1Y2VkIGFwYXJ0IGZyb20gc2Vjb25kIGNsYXNzLg0KMTk5MzogR29JJ3MgRGlzdHJpY3QgUHJpbWFyeSBFZHVjYXRpb24gUHJvZ3JhbW1lIChEUEVQKSB3YXMgbGF1bmNoZWQsIHdpdGggYW4gYWltIG9mIGFjaGlldmluZyB0aGUgb2JqZWN0aXZlIG9mIHVuaXZlcnNhbCBwcmltYXJ5IGVkdWNhdGlvbi4gVGhpcyBwcm9ncmFtbWVkIGxhaWQgdGhlIGZvdW5kYXRpb25zIGZvciDgpLjgpLDgpY3gpLUg4KS24KS/4KSV4KWN4KS34KS+IOCkheCkreCkv+Ckr+CkvuCkqChFZHVjYXRpb24gZm9yIEFsbCBNb3ZlbWVudCkgYWltZWQgYXQgdGhlIHVuaXZlcnNhbGlzYXRpb24gb2YgZWxlbWVudGFyeSBlZHVjYXRpb24gbWFraW5nIGZyZWUgYW5kIGNvbXB1bHNvcnkgZWR1Y2F0aW9uIHRvIGNoaWxkcmVuIGJldHdlZW4gdGhlIGFnZXMgb2YgNiB0byAxNC4NCjE5OTM6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIHNwbGl0IHdpdGggRGF3b29kIGFuZCBmb3JtZWQgYW4gaW5kZXBlbmRlbnQgZ2FuZyB0aGF0IGZyZXF1ZW50bHkgY2xhc2hlZCB3aXRoIERhd29vZCdzIEQtQ29tcGFueS4NCjE5OTMgKEphbiA3KTpbQ3JpbWVdIFJpb3RzIHJlLXN0YXJ0ZWQgaW4gTXVtYmFpIGFuZCBsYXN0ZWQgZm9yIDIwIGRheXMuIFRoZSBJU0ksIHdoaWNoIGNvbnRyb2xsZWQgc2hpcHBpbmcgcm91dGVzIGZyb20gdGhlIEd1bGYgdG8gSW5kaWEncyB3ZXN0IGNvYXN0LCBkZW1hbmRlZCB0aGF0IHRoZSBtYWZpYSB0cmFuc3BvcnQgd2VhcG9ucyBhbmQgZXhwbG9zaXZlcyBpbnRvIEluZGlhIGluIHJldHVybiBmb3IgdGhlIHVzZSBvZiBQYWtpc3RhbidzIHdhdGVycy4gRGF3b29kIG1ldCB0aGVpciBJU0kgaGFuZGxlcnMgaW4gYSA1IHN0YXIgaG90ZWwgb2YgRHViYWkgaW4gSmFuIG9yIEZlYiBvZiAxOTkzLCB0aGVuIGNhbWUgdGhlIFJEWCB0aHJvdWdoIHRoZSBzYW1lIHBvcm91cyBhbmQgdW5jaGVja2VkIHNlYSByb3V0ZSB0aGF0IDI2LzExIGF0dGFja2VycyBzbGlwcGVkIGFjcm9zcyBhbmQgd3JlY2tlZCBtYXloZW0gaW4gTXVtYmFpLiBUaGUg4oCZOTMgYXR0YWNrcyB3ZXJlIGZpbmFsbHkgZXhlY3V0ZWQgaW4gbWFyY2ggdGhhdCBjbGFpbWVkIHNvbWUgMzAwIGlubm9jZW50IGxpdmVzLg0KMTk5MyAoTWFyIDYpOltQb2xpdHldW0luZGlhXSBTaGFyYWQgUGF3YXIgcmUtZWxlY2V0ZCBhcyBDTSBvZiBNSCBmb3IgMiB5ZWFycy4NCjE5OTMgKE1hciAxMik6W0NyaW1lXSBUaGUgMTk5MyBCb21iYXkgYm9tYmluZ3Mgd2VyZSBhIHNlcmllcyBvZiAxMiB0ZXJyb3Jpc3QgYm9tYmluZ3MgdGhhdCB0b29rIHBsYWNlIGluIEJvbWJheS4gVGhlIHNpbmdsZS1kYXkgYXR0YWNrcyByZXN1bHRlZCBpbiAyNTcgZmF0YWxpdGllcyBhbmQgMSw0MDAgaW5qdXJpZXMuIFRoZXJlIHdhcyBhbm90aGVyIHJhaWQgbmVhciBNYW5pc2ggbWFya2V0IHdoZXJlIGhhbmQgZ3JlbmFkZXMgd2VyZSByZWNvdmVyZWQuIEFmdGVyIGFub3RoZXIgdGlwIG9mZiBsZWQgdG8gZGlzY292ZXJ5IG9mIGEgaHVnZSBxdWFudGl0eSBvZiBSRFggZnJvbSBOYWdsYSBCdW5kZXIgb2ZmIEdob2RidW5kZXIgUm9hZCBpbiBUaGFuZS4g4oCcSW4gYWxsLCA1LDAwMCBraWxvZ3JhbXMgb2YgUkRYIHdhcyBicm91Z2h0IGludG8gTXVtYmFpIGFuZCB3ZSByZWNvdmVyZWQgMywzMDAga2lsb2dyYW1zIG9mIGl0IGluIGFsbCB0aGUgcmFpZHMs4oCdIHNheXMgQ2hhdWd1bGUuIFJlZHVjZWQgU2hvY2sgU2Vuc2l0aXZpdHkgKFJTUykgZXhwbG9zaXZlcywgc3VjaCBhcyBSU1MtUkRYLCB3aGljaCBjb3N0cyBhYm91dCBScy4gMSw1MDAtMiwwMDAgcGVyIGtnLiBBbmVlcyBjb250aW51ZWQgb3BlcmF0aW9uIG9mIEQtQ29tcGFueSB3aGljaCBpbmNsdWRlIGNvbnRyYWN0IGtpbGxpbmcsIGV4dG9ydGlvbiwgdGhlIGNpcmN1bGF0aW9uIG9mIGNvdW50ZXJmZWl0IGN1cnJlbmN5LCBhbmQgdGhlIHByb3Zpc2lvbiBvZiBhIHJhbmdlIG9mIGZyZWUtbGFuY2Ugc2VydmljZXMgdG8gdGVycm9yaXN0IGdyb3VwcyBhdCB0aGUgaW5zdGFuY2Ugb2YgUGFraXN0YW4ncyBJbnRlciBTZXJ2aWNlcyBJbnRlbGxpZ2VuY2UgKElTSSkuIEludGVycG9sIFJlZCBDb3JuZXIgbm90aWNlIGZvciBELUNvbXBhbnkuDQoxOTkzIChOb3YgMSk6IFRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGZvdW5kZWQuIEl0IGlzIGFuIGVjb25vbWljIGFuZCBwb2xpdGljYWwgcGFydG5lcnNoaXAgaW52b2x2aW5nIDI4IEV1cm9wZWFuIGNvdW50cmllcy4gSXQgYmVnYW4gYWZ0ZXIgV1cyIHRvIGZvc3RlciBlY29ub21pYyBjby1vcGVyYXRpb24sIHdpdGggdGhlIGlkZWEgdGhhdCBjb3VudHJpZXMgd2hpY2ggdHJhZGUgdG9nZXRoZXIgYXJlIG1vcmUgbGlrZWx5IHRvIGF2b2lkIGdvaW5nIHRvIHdhciB3aXRoIGVhY2ggb3RoZXIuDQoxOTkzIChOb3YgMyk6IFtHZW9Qb2xpdGljc10gVGhlIENvbW1vbiBNYXJrZXQgZm9yIEVhc3Rlcm4gYW5kIFNvdXRoZXJuIEFmcmljYSAoQ09NRVNBKSBpcyBhIHJlZ2lvbmFsIGVjb25vbWljIGNvbW11bml0eSBpbiBBZnJpY2Egd2l0aCB0d2VudHktb25lIG1lbWJlciBzdGF0ZXMgc3RyZXRjaGluZyBmcm9tIFR1bmlzaWEgdG8gRXN3YXRpbmkuIENPTUVTQSB3YXMgZm9ybWVkIGluIERlY2VtYmVyIDE5OTQsIHJlcGxhY2luZyBhIFByZWZlcmVudGlhbCBUcmFkZSBBcmVhIHdoaWNoIGhhZCBleGlzdGVkIHNpbmNlIDE5ODEuIE5pbmUgb2YgdGhlIG1lbWJlciBzdGF0ZXMgZm9ybWVkIGEgZnJlZSB0cmFkZSBhcmVhIGluIDIwMDAgKERqaWJvdXRpLCBFZ3lwdCwgS2VueWEsIE1hZGFnYXNjYXIsIE1hbGF3aSwgTWF1cml0aXVzLCBTdWRhbiwgWmFtYmlhIGFuZCBaaW1iYWJ3ZSksIHdpdGggUndhbmRhIGFuZCBCdXJ1bmRpIGpvaW5pbmcgdGhlIEZUQSBpbiAyMDA0LCB0aGUgQ29tb3JvcyBhbmQgTGlieWEgaW4gMjAwNiwgU2V5Y2hlbGxlcyBpbiAyMDA5IGFuZCBUdW5pc2lhIGFuZCBTb21hbGlhIGluIDIwMTguDQoxOTkzIChEZWMgMjApOiBPSENIUiBmb3JtZWQuIFRoZSBPZmZpY2Ugb2YgdGhlIFVuaXRlZCBOYXRpb25zIEhpZ2ggQ29tbWlzc2lvbmVyIGZvciBIdW1hbiBSaWdodHMgKE9IQ0hSKSwgYSBVbml0ZWQgTmF0aW9ucyBhZ2VuY3kgdGhhdCB3b3JrcyB0byBwcm9tb3RlIGFuZCBwcm90ZWN0IHRoZSBodW1hbiByaWdodHMgdGhhdCBhcmUgZ3VhcmFudGVlZCB1bmRlciBpbnRlcm5hdGlvbmFsIGxhdyBhbmQgc3RpcHVsYXRlZCBpbiB0aGUgVW5pdmVyc2FsIERlY2xhcmF0aW9uIG9mIEh1bWFuIFJpZ2h0cyBvZiAxOTQ4Lg0KMTk5Mzp0aGUgMjR0aCBhbmQgbGFzdCBHTE9OQVNTIHNhdGVsbGl0ZSB3YXMgbGF1bmNoZWQgZm9ybWluZyB0aGUgd2hvbGUgbmF2aWdhdGlvbiBjb25zdGVsbGF0aW9uIHNpbWlsYXIgdG8gdGhhdCBvZiBVUydzIEdQUy4NCjE5OTM6IFNIQS0wIChhIGhhc2ggZnVuY3Rpb24pIHdhcyBwcm9wb3NlZCBieSBOSVNULCBNYXJ5bGFuZCwgVVNBIChGb3VuZGVkOiAxOTAxKS4gSXQgcHJvZHVjZXMgYSAxNjAtYml0IGhhc2ggdmFsdWUsIHRodXMgdGhlIGJydXRlLWZvcmNlIGNvbGxpc2lvbiBvciAgbmVhci1jb2xsaXNpb24gYXR0YWNrIHJlcXVpcmVzIE8oMl44MCkgY29tcHV0YXRpb24uIFdpdGhpbiA1IHllYXJzLCBpdCB3YXMgbWFkZSBjb2xsaXNpb24gYXR0YWNrZWQgYnkgQ2hhYmF1ZCBhbmQgSm91eCB3aXRoIHRoZSBhdHRhY2sgY29tcGxleGl0eSBvZiAyXjYxLg0KMTk5MzogW0NvYWxnYXRlIHNjYW1dIE9uIDIzcmQgQXByaWwgMjAxMywgdGhlIFN0YW5kaW5nIENvbW1pdHRlZSBvbiBDb2FsIGFuZCBTdGVlbCB0YWJsZWQgaW4gUGFybGlhbWVudCB0aGF0IGFsbCAxOTQgY29hbCBibG9ja3MgZGlzdHJpYnV0ZWQgYmV0d2VlbiAxOTkzIGFuZCAyMDA4IHdlcmUgYXVjdGlvbmVkIGluIGFuIHVuYXV0aG9yaXplZCBtYW5uZXIgYW5kIHRoZSBjb3VudHJ5IGxvc3QgUnMuMS44NiBsYWtoIGNyb3JlLi4gRm9ybWVyIFByaW1lIE1pbmlzdGVyIE1hbm1vaGFuIFNpbmdoLCBhbG9uZyB3aXRoIEt1bWFyIE1hbmdhbGFtIEJpcmxhIGFuZCBQLkMuIFBhcmFraCwgd2VyZSBhY2N1c2VkIGFuZCBzdW1tb25lZCBieSBhIHNwZWNpYWwgY291cnQuIFsyTCBDcm9yZV0uIENvbXB0cm9sbGVyIGFuZCBBdWRpdG9yIEdlbmVyYWwgb2YgSW5kaWEgdG9vayAyMCB5ZWFycyB0byBJRCBvbmUgb2YgdGhlIGJpZ2dlc3Qgc2NhbXMgaW4gSW5kaWFuIGhpc3RvcnkuDQoxOTkzOiBBZnRlciBQcmVzaWRlbnQgQmlsbCBDbGludG9uIHRvb2sgb2ZmaWNlIGluIDE5OTMsIGhvd2V2ZXIsIHRoZSBVLlMuIGVjb25vbXkgZW1iYXJrZWQgb24gYSBsb25nIGFuZCBzdHJvbmcgZXhwYW5zaW9uLCBtYWtpbmcgdGhlIDE5OTBzIGEgZ3JlYXQgZGVjYWRlIGZvciBBbWVyaWNhJ3MgbW9uZXksIG92ZXJhbGwuIA0KMTk5MzpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTW90aHJhKDE5OTIpDQoxOTkzOltTcGFjZV0gSGlwcGFyY29zLCBhIHNjaWVudGlmaWMgc2F0ZWxsaXRlIG9mIHRoZSBFdXJvcGVhbiBTcGFjZSBBZ2VuY3kgKEVTQSkgbGFzdGVkIGZvciA0IHllYXJzIGJlZm9yZSBnb2luZyBvdXQtb2Ytc2VydmljZS4NCjE5OTM6W1NwYWNlXVtSZXNlYXJjaF0gSW4gMTk5MywgRG9uIFBhZ2UgYXJndWVkIHRoYXQgaWYgYSBibGFjayBob2xlIHN0YXJ0cyBpbiBhIHB1cmUgcXVhbnR1bSBzdGF0ZSBhbmQgZXZhcG9yYXRlcyBjb21wbGV0ZWx5IGJ5IGEgdW5pdGFyeSBwcm9jZXNzLCB0aGUgdm9uIE5ldW1hbm4gZW50cm9weSBvZiB0aGUgSGF3a2luZyByYWRpYXRpb24gaW5pdGlhbGx5IGluY3JlYXNlcyBhbmQgdGhlbiBkZWNyZWFzZXMgYmFjayB0byB6ZXJvIHdoZW4gdGhlIGJsYWNrIGhvbGUgaGFzIGRpc2FwcGVhcmVkLiBUaGlzIGlzIGNhbGxlZCB0aGUgUGFnZSBjdXJ2ZS4NCjE5OTM6W0Jvb2tzXVtIaXN0b3J5XSBHcmVlbuKAmXMgRGljdGlvbmFyeSBvZiBTbGFuZyBpcyB0aGUgbGFyZ2VzdCBoaXN0b3JpY2FsIGRpY3Rpb25hcnkgb2YgRW5nbGlzaCBzbGFuZy4gV3JpdHRlbiBieSBKb25hdGhvbiBHcmVlbiBvdmVyIDE3IHllYXJzIGZyb20gMTk5MywgaXQgcmVhY2hlZCB0aGUgcHJpbnRlZCBwYWdlIGluIDIwMTAgaW4gYSB0aHJlZS12b2x1bWUgc2V0IGNvbnRhaW5pbmcgbmVhcmx5IDEwMCwwMDAgZW50cmllcyBzdXBwb3J0ZWQgYnkgb3ZlciA0MDAsMDAwIGNpdGF0aW9ucyBmcm9tIGMuIGFkIDEwMDAgdG8gdGhlIHByZXNlbnQgZGF5LiBUaGUgbWFpbiBmb2N1cyBvZiB0aGUgZGljdGlvbmFyeSBpcyB0aGUgY292ZXJhZ2Ugb2Ygb3ZlciA1MDAgeWVhcnMgb2Ygc2xhbmcgZnJvbSBjLiAxNTAwIG9ud2FyZHMuDQoxOTkzOltFbnZdW0Rpc2FzdGVyXSBTb3V0aCBBc2lhbiBtb25zb29uIGZsb29kcywgM2sgZGVhdGhzDQoxOTkzOltHZW9ncmFwaHldIFRoZSBsYXN0IG1ham9yIHNoaWZ0cyBpbiBFYXJ0aCdzIGF4aXMgd2VyZSBpbmZsdWVuY2VkIGJ5IGNsaW1hdGUgY2hhbmdlOiBhIDMxLjUtaW5jaCBzaGlmdCBiZXR3ZWVuIDE5OTMgYW5kIDIwMTAgd2FzIHByaW1hcmlseSBjYXVzZWQgYnkgZ3JvdW5kd2F0ZXIgcHVtcGluZywgYW5kIGEgY2hhbmdlIGluIHBvbGFyIGRyaWZ0IGRpcmVjdGlvbiBhcm91bmQgdGhlIDE5OTBzIHdhcyBsaW5rZWQgdG8gbWVsdGluZyBnbGFjaWVycyBhbmQgaWNlIHNoZWV0cyBkdWUgdG8gZ2xvYmFsIHdhcm1pbmcuIEVhcnRoJ3MgYXhpcyBhbHNvIHNoaWZ0ZWQgYnkgYWJvdXQgNi41IGluY2hlcyBpbiBNYXJjaCAyMDExIGFmdGVyIHRoZSBKYXBhbmVzZSBlYXJ0aHF1YWtlLCBjYXVzaW5nIHRoZSBwbGFuZXQgdG8gc3BpbiBzbGlnaHRseSBmYXN0ZXIuDQoxOTkzOltXaG9dIEluIDE5OTMsIEluZGlhIGNhbWUgaGVhcnRicmVha2luZ2x5IGNsb3NlIHRvIHdpbm5pbmcgaXRzIGZpcnN0IE1pc3MgVW5pdmVyc2UgY3Jvd24gd2l0aCB0aGUgc3R1bm5pbmcgYW5kIGdyYWNlZnVsIE5hbXJhdGEgU2hpcm9ka2FyLCB3aG8gaGFkIGVhcmxpZXIgd29uIHRoZSBGZW1pbmEgTWlzcyBJbmRpYSB0aXRsZS4gUmVwcmVzZW50aW5nIEluZGlhIGF0IHRoZSBNaXNzIFVuaXZlcnNlIHBhZ2VhbnQgaGVsZCBpbiBNZXhpY28gQ2l0eSwgTmFtcmF0YSB3YXMgYSBzdHJvbmcgY29udGVuZGVy4oCUZWxlZ2FudCBpbiBoZXIgZ293biwgcG9pc2VkIGluIGludGVydmlld3MsIGFuZCBhIGZhbiBmYXZvcml0ZS4gU2hlIGVhc2lseSBtYWRlIGl0IHRvIHRoZSBUb3AgNiwgYW5kIGhlciBjaGFuY2VzIG9mIHdpbm5pbmcgbG9va2VkIGluY3JlZGlibHkgaGlnaC4gQnV0IHRoZW4gY2FtZSB0aGUgZmluYWwgcXVlc3Rpb246IOKAnElmIHlvdSBjb3VsZCBiZSBib3JuIGFzIGFueSBoaXN0b3JpY2FsIGZpZ3VyZSwgd2hvIHdvdWxkIGl0IGJlIGFuZCB3aHk/4oCdIFdoaWxlIG90aGVyIGNvbnRlc3RhbnRzIG5hbWVkIGdsb2JhbCBpY29ucyBsaWtlIE1vdGhlciBUZXJlc2EgYW5kIFByaW5jZXNzIERpYW5hLCBOYW1yYXRhIGdhdmUgYW4gaG9uZXN0LCBwZXJzb25hbCBhbnN3ZXLigJRzaGUgc2FpZCBzaGUgd291bGQgYmUgYm9ybiBhcyBoZXJzZWxmIG9yIHNvbWVvbmUgY2xvc2UgdG8gaGVyLCBiZWNhdXNlIHNoZSBiZWxpZXZlZCBpbiBsaXZpbmcgbGlmZSB3aXRoIHRydXRoIGFuZCBpbmRpdmlkdWFsaXR5LiBJdCB3YXMgYSBiZWF1dGlmdWwsIGdyb3VuZGVkIGFuc3dlcuKAlGJ1dCBub3QgdGhlIGtpbmQgb2YgZ3JhbmQsIGlkZWFsaXN0aWMgcmVzcG9uc2UgdGhlIGp1ZGdlcyB3ZXJlIGV4cGVjdGluZy4gVGhhdCBvbmUgbW9tZW50IG9mIHRydXRoLCBtYW55IGJlbGlldmUsIGNvc3QgaGVyIHRoZSBjcm93biwgYW5kIEluZGlhIGhhZCB0byB3YWl0IGFub3RoZXIgeWVhciBiZWZvcmUgU3VzaG1pdGEgU2VuIGJyb3VnaHQgdGhlIE1pc3MgVW5pdmVyc2UgdGl0bGUgaG9tZSBpbiAxOTk0LiBTdGlsbCwgTmFtcmF0YeKAmXMgYW5zd2VyIGJlY2FtZSBpY29uaWPigJRub3QgYmVjYXVzZSBpdCB3b24sIGJ1dCBiZWNhdXNlIGl0IHdhcyByZWFsLCBtYXJraW5nIGEgcmFyZSBpbnN0YW5jZSB3aGVyZSBob25lc3R5IHN0b29kIHRhbGxlciB0aGFuIGRpcGxvbWFjeS4NCjE5OTM6W0F2aWF0aW9uXVtFeHRyZW1lXVtXaG9dIFRoZSBIZXJic3QgbWFuZXV2ZXIgd2FzIGZpcnN0IHN1Y2Nlc3NmdWxseSBwZXJmb3JtZWQgb24gQXByaWwgMjksIDE5OTMsIGJ5IGFuIFgtMzEgYWlyY3JhZnQuIE5hbWVkIGFmdGVyIFdvbGZnYW5nIEhlcmJzdCwgYSBkZXZlbG9wZXIgb2YgcG9zdC1zdGFsbCB0ZWNobm9sb2d5IGZvciBNZXNzZXJzY2htaXR0LULDtmxrb3ctQmxvaG0gKE1CQiksIHRoaXMsIHBvc3Qtc3RhbGwgbWFuZXV2ZXIgZW5hYmxlcyBhIGZpZ2h0ZXIgdG8gbWFrZSBhIHJhcGlkIDE4MMKwIHR1cm4gd2l0aGluIGEgbWluaW1hbCByYWRpdXMuIA0KDQoxOTk04oCTMTk5NTpbVVNdW0dlb1BvbGl0aWNzXSBvY2N1cGF0aW9uIG9mIEhhaXRpLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgRXVyb3BlYW4gRWNvbm9taWMgQXJlYSwgYWJicmV2aWF0ZWQgYXMgRUVBLCBjb25zaXN0cyBvZiB0aGUgTWVtYmVyIFN0YXRlcyBvZiB0aGUgRXVyb3BlYW4gVW5pb24gKEVVKSBhbmQgdGhyZWUgY291bnRyaWVzIG9mIHRoZSBFdXJvcGVhbiBGcmVlIFRyYWRlIEFzc29jaWF0aW9uIChFRlRBKSAoSWNlbGFuZCwgTGllY2h0ZW5zdGVpbiBhbmQgTm9yd2F5OyBleGNsdWRpbmcgU3dpdHplcmxhbmQpLiBUaGUgQWdyZWVtZW50IG9uIHRoZSBFRUEgZW50ZXJlZCBpbnRvIGZvcmNlIG9uIDEgSmFudWFyeSAxOTk0LiANCjE5OTQ6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEV1cm9wZWFuIEVjb25vbWljIEFyZWEgKEVFQSkgd2FzIGVzdGFibGlzaGVkIG9uIDEgSmFudWFyeSAxOTk0LiBUaGUgYWdyZWVtZW50IGxpbmtzIHRoZSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aHJlZSBFRlRBIHN0YXRlc+KAlEljZWxhbmQsIExpZWNodGVuc3RlaW4sIGFuZCBOb3J3YXnigJRpbnRvIGEgc2luZ2xlIGludGVybmFsIG1hcmtldCwgYWxsb3dpbmcgZm9yIHRoZSBmcmVlIG1vdmVtZW50IG9mIGdvb2RzLCBwZXJzb25zLCBzZXJ2aWNlcywgYW5kIGNhcGl0YWwuIA0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBOQUZUQSwgdGhlIE5vcnRoIEFtZXJpY2FuIEZyZWUgVHJhZGUgQWdyZWVtZW50LCB3YXMgYSAxOTk0IGFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzLCBDYW5hZGEsIGFuZCBNZXhpY28gdG8gZWxpbWluYXRlIHRyYWRlIGJhcnJpZXJzIGFuZCBwcm9tb3RlIGZyZWUgdHJhZGUgaW4gTm9ydGggQW1lcmljYS4gSXQgZmFjaWxpdGF0ZWQgdGhlIG1vdmVtZW50IG9mIGdvb2RzIGFuZCBzZXJ2aWNlcyBhbmQgZXN0YWJsaXNoZWQgYSBsYXJnZSB0cmFkZSBibG9jLiBJbiBKdWx5IDIwMjAsIE5BRlRBIHdhcyByZXBsYWNlZCBieSB0aGUgVW5pdGVkIFN0YXRlcy1NZXhpY28tQ2FuYWRhIEFncmVlbWVudCAoVVNNQ0EpLCB3aGljaCBtb2Rlcm5pemVkIGFuZCBlbmhhbmNlZCB0aGUgdHJlYXR5IGZvciBhIGNvbnRlbXBvcmFyeSBlY29ub215Lg0KMTk5NDpbUy5BZnJpY2FdW1NvY2lhbGlzbV0gRmlyc3QgZnJlZSBlbGVjdGlvbnMgaW4gU291dGggQWZyaWNhOyBOZWxzb24gTWFuZGVsYQ0KMTk5NDpbUmVzZWFyY2hdW3NwYWNlXSBDYXJsIFNhZ2FuIGNvbmNlZGVkIHRoYXQgdGhpcyBhcHByb2FjaCB3b3VsZCBub3Qgd29yayBiZWNhdXNlIHRoZSBhdG1vc3BoZXJlIG9mIFZlbnVzIGlzIGZhciBkZW5zZXIgKDkwIGJhcnMpIHRoYW4gd2hhdCB3YXMgdW5kZXJzdG9vZCBpbiAxOTYxIChhIGZldyBiYXJzKSwgbWVhbmluZyB0aGUgY2FyYm9uIHdvdWxkIGp1c3QgYmUgb3hpZGl6ZWQgYmFjayBpbnRvIENPMi4NCjE5OTQ6W0NvbXB1dGluZ11bUXVhbnR1bV0gUGV0ZXIgU2hvciBkaXNjb3ZlcmVkIGFuIGFsZ29yaXRobSAoU2hvcidzIGFsZ29yaXRobSkgdGhhdCBjb3VsZCBmYWN0b3IgbGFyZ2UgbnVtYmVycyBpbiBwb2x5bm9taWFsIHRpbWUgb24gYSBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCB3b3VsZCBicmVhayB0aGUgc2VjdXJpdHkgb2YgbWFueSBjcnlwdG9ncmFwaGljIHNjaGVtZXMuIA0KMTk5NDpbQ29tcHV0aW5nXVtRdWFudHVtXSBQZXRlciBTaG9yIGFuZCBEb24gQ29wcGVyc21pdGggZmlndXJlZCBvdXQgaG93IHRvIHRha2UgYSBRdWFudHVtIEZvdXJpZXIgVHJhbnNmb3JtLg0KMTk5NDpUaGUgcHJvYmxlbSB3aXRoIHRoZSBwYXBlciBwdWJsaXNoZWQgZWFybGllciB0aGlzIG1vbnRoIHdhcyBpdHMgcmVsaWFuY2Ugb24gU2Nobm9ycidzIGFsZ29yaXRobSAobm90IHRvIGJlIGNvbmZ1c2VkIHdpdGggU2hvcuKAmXMgYWxnb3JpdGhtKSwgd2hpY2ggd2FzIGRldmVsb3BlZCBpbiAxOTk0LiBTY2hub3Jy4oCZcyBhbGdvcml0aG0gaXMgYSBjbGFzc2ljYWwgY29tcHV0YXRpb24gYmFzZWQgb24gbGF0dGljZXMsIHdoaWNoIGFyZSBtYXRoZW1hdGljYWwgc3RydWN0dXJlcyB0aGF0IGhhdmUgbWFueSBhcHBsaWNhdGlvbnMgaW4gY29uc3RydWN0aXZlIGNyeXB0b2dyYXBoeSBhbmQgY3J5cHRhbmFseXNpcy4gVGhlIGF1dGhvcnMgd2hvIGRldmlzZWQgU2Nobm9ycuKAmXMgYWxnb3JpdGhtIHNhaWQgaXQgY291bGQgZW5oYW5jZSB0aGUgdXNlIG9mIHRoZSBoZXVyaXN0aWMgcXVhbnR1bSBvcHRpbWl6YXRpb24gbWV0aG9kIGNhbGxlZCBRQU9BLg0KMTk5NCAoSmFuIDEpOiBbR2VvUG9saXRpY3NdIFRoZSBOb3J0aCBBbWVyaWNhbiBGcmVlIFRyYWRlIEFncmVlbWVudCAoTkFGVEEpIHdhcyBhbiBhZ3JlZW1lbnQgc2lnbmVkIGJ5IENhbmFkYSwgTWV4aWNvLCBhbmQgdGhlIFVuaXRlZCBTdGF0ZXMgdGhhdCBjcmVhdGVkIGEgdHJpbGF0ZXJhbCB0cmFkZSBibG9jIGluIE5vcnRoIEFtZXJpY2EuIFRoZSBhZ3JlZW1lbnQgY2FtZSBpbnRvIGZvcmNlIG9uIEphbnVhcnkgMSwgMTk5NCwgYW5kIHN1cGVyc2VkZWQgdGhlIDE5ODggQ2FuYWRh4oCTVW5pdGVkIFN0YXRlcyBGcmVlIFRyYWRlIEFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzIGFuZCBDYW5hZGEuIFRoZSBOQUZUQSB0cmFkZSBibG9jIGZvcm1lZCBvbmUgb2YgdGhlIGxhcmdlc3QgdHJhZGUgYmxvY3MgaW4gdGhlIHdvcmxkIGJ5IGdyb3NzIGRvbWVzdGljIHByb2R1Y3QuDQoxOTk0OltUZWNobm9sb2d5XVtCdXNpbmVzc11bVVNdW0NvbXB1dGluZ10gVGhlIERlbGwgTGF0aXR1ZGUgc2VyaWVzIGlzIGEgbGluZSBvZiBsYXB0b3AgY29tcHV0ZXJzIG1hbnVmYWN0dXJlZCBhbmQgc29sZCBieSBBbWVyaWNhbiBjb21wYW55IERlbGwuIEl0IGlzIGEgYnVzaW5lc3Mtb3JpZW50ZWQgbGluZSwgYWltZWQgYXQgY29ycG9yYXRlIGVudGVycHJpc2VzLCBoZWFsdGhjYXJlLCBnb3Zlcm5tZW50LCBhbmQgZWR1Y2F0aW9uIG1hcmtldHM7IHVubGlrZSB0aGUgSW5zcGlyb24gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBpbmRpdmlkdWFsIGN1c3RvbWVycywgYW5kIHRoZSBWb3N0cm8gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBzbWFsbGVyIGJ1c2luZXNzZXMuIFRoZSBMYXRpdHVkZSBkaXJlY3RseSBjb21wZXRlcyB3aXRoIHRoZSBMZW5vdm8gVGhpbmtQYWQgYW5kIHRoZSBFbGl0ZUJvb2sgc2VyaWVzIGJ5IEhQLiBBZGRpdGlvbmFsbHksIHRoZSAiUnVnZ2VkIChFeHRyZW1lKSIsICJYRlIiIGFuZCAiQVRHIiBtb2RlbHMgY29tcGV0ZSBwcmltYXJpbHkgd2l0aCBQYW5hc29uaWMncyBUb3VnaGJvb2sgbGluZSBvZiAicnVnZ2VkIiBsYXB0b3BzLg0KMTk5NDogU3VzaG1pdGEgU2VuIGJlY2FtZSBNaXNzIFVuaXZlcnNlLg0KMTk5NDogVGhlIEFubmFscyBvZiBJbXByb2JhYmxlIFJlc2VhcmNoIGlzIGEgYmktbW9udGhseSBtYWdhemluZSBkZXZvdGVkIHRvIHNjaWVudGlmaWMgaHVtb3IsIGluIHRoZSBmb3JtIG9mIGEgc2F0aXJpY2FsIHRha2Ugb24gdGhlIHN0YW5kYXJkIGFjYWRlbWljIGpvdXJuYWwuDQoxOTk0OiBMaW5kb24gTGVhZGVyIG9mIExhbmRvciBBc3NvY2lhdGVzLCBvZiBTYW4gRnJhbmNpc2NvIGRlc2lnbmVkIHdvcmRtYXJrcyBmb3IgRmVkRXgncyB2YXJpb3VzIE9wLXVuaXQuIEZlZEV44oCZcyBwdWJsaWMtcmVsYXRpb25zIGZpcm0gd2FudGVkIHRvIGhpZ2hsaWdodCB0aGUgYXJyb3cgc28gaXQgd291bGQgYmUgb2J2aW91cy4gQnV0IGhlIGZvdWdodCB0aGVtIG9uIHRoYXQg4oCUIGhlIHRob3VnaHQgaXQgd291bGQgYmUgb3ZlcmtpbGwuIFRoZXJl4oCZcyBzb21ldGhpbmcgYWJvdXQgbWFraW5nIHBlb3BsZSBkaXNjb3ZlciBzb21ldGhpbmcgb24gdGhlaXIgb3duIHRoYXTigJlzIGEgbG90IG1vcmUgcG93ZXJmdWwgdGhhbiBpdGFsaWNpemluZyBpdCB0byBtYWtlIHlvdXIgcG9pbnQuDQoxOTk0OiBTY2lsYWIgMS4xLCB0aGUgZmlyc3QgcmVsZWFzZWQgdmVyc2lvbiBvZiBTY2lsYWIsIHdhcyBwdXQgb24gYW5vbnltb3VzIGZ0cCBzaXRlLg0KMTk5NDogVGhlIGNvbmNlcHQgb2YgYSBjYWbDqSB3aXRoIGZ1bGwgSW50ZXJuZXQgYWNjZXNzIChhbmQgdGhlIG5hbWUgQ3liZXJjYWbDqSkgd2FzIGludmVudGVkIGluIGVhcmx5IGJ5ICBhIEJyaXRpc2ggdGVjaG5vbG9neSBhcnRpc3QsIEl2YW4gUG9wZS4NCjE5OTQ6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIGx1cmVkIG9uZSBvZiBEYXdvb2QncyBmYXZvcml0ZSAibmFyY28tdGVycm9yaXN0IiBQaGlsbHUgS2hhbiBhbGlhcyBCYWtodGl5YXIgQWhtZWQgS2hhbiB0byBhIGhvdGVsIHJvb20gaW4gQmFuZ2tvaywgd2hlcmUgaGUgd2FzIHRvcnR1cmVkIHRvIGRlYXRoLCBoYXZpbmcgYmVlbiBiZXRyYXllZCBieSBoaXMgY2xvc2VzdCBhaWRlIGFuZCBzaWRla2ljayBNYW5nZXNoICJNYW5neWEiIFBhd2FyLiBELUNvbXBhbnkncyBTaGFyYWQsIHVzZWQgaGlzIGxpbmtzIHdpdGggTXVtYmFpLWJhc2VkIGhvdGVsaWVyIFZpbm9kIGFuZCBBLiBNaXNocmEgdG8gdHJhY2sgZG93biBSYWphbiBpbiBCYW5na29rLiBSYWphbidzIGhpdG1hbiBSb2hpdCBWYXJtYSBhbmQgaGlzIHdpZmUgc2hvdCBieSBELUNvbXBhbnkuDQoxOTk0KEp1bCAxNik6W1NwYWNlXSBGcm9tIEp1bHkgMTYgdG8gMjIsIDE5OTQsIGVub3Jtb3VzIHBpZWNlcyBvZiB0aGUgY29tZXQgU2hvZW1ha2VyLUxldnkgOSAoU0w5KSwgZGlzY292ZXJlZCBqdXN0IGEgeWVhciBwcmlvciwgY3Jhc2hlZCBpbnRvIEp1cGl0ZXIgb3ZlciBzZXZlcmFsIGRheXMsIGNyZWF0aW5nIGh1Z2UsIGRhcmsgc2NhcnMgaW4gdGhlIHBsYW5ldCdzIGF0bW9zcGhlcmUgYW5kIGxvZnRpbmcgc3VwZXJoZWF0ZWQgcGx1bWVzIGludG8gaXRzIHN0cmF0b3NwaGVyZS4NCjE5OTQgKE9jdCk6IElUUE8gYW5kIEdvSSdzIE5JQyBqb2ludGx5IHNldC11cCB0aGUgTmF0aW9uYWwgQ2VudHJlIGZvciBUcmFkZSBJbmZvcm1hdGlvbiAoTkNUSSkgYXQgUHJhZ2F0aSBNYWlkYW4uDQoxOTk0IChOb3YgMSwgMTU6MDEgSVNUKTpbU3BhY2VdW1N1bl0gVGhlIEdsb2JhbCBHZW9zcGFjZSBTY2llbmNlICdXaW5kJyBzYXRlbGxpdGUgaXMgYSBOQVNBIHNjaWVuY2Ugc3BhY2VjcmFmdCBkZXNpZ25lZCB0byBzdHVkeSByYWRpbyB3YXZlcyBhbmQgcGxhc21hIHRoYXQgb2NjdXIgaW4gdGhlIHNvbGFyIHdpbmQgYW5kIGluIHRoZSBFYXJ0aCdzIG1hZ25ldG9zcGhlcmUuIA0KMTk5NCAoRGVjIDMpOiBTb255J3MgUGxheVN0YXRpb24gKGEgdmlkZW8gZ2FtZSBjb25zb2xlKSB3YXMgaW50cm9kdWNlZCB0byB0aGUgd29ybGQgZnJvbSBNaW5hdG8sIFRva3lvIChKYXBhbikuDQoxOTk0OiBXWFlDLSBmaXJzdCBpbnRlcm5ldCByYWRpbyBzdGF0aW9uIGJyb2FkY2FzdC4NCjE5OTQ6IE1lbW9yeSBjYXJkcyB3ZXJlIGludHJvZHVjZWQgaW4gdGhlIGNvbnN1bWVyIGVsZWN0cm9uaWNzIG1hcmtldC4NCjE5OTQgKEF1Zyk6IElUUE8ncyAxc3QgRGVsaGkgQm9vayBGYWlyIGF0ICBIYWxsIDggdG8gMTIgb2YgUHJhZ2F0aSBNYWlkYW4sIE5ldyBEZWxoaS4gVGhlIHRpbWluZ3Mgb2YgZmFpciBhcmUgZnJvbSAxMC4wMCBhbSB0byA4LjAwIHBtIChlbnRyeSB0byBmYWlyIHdpbGwgY2xvc2UgYXQgNy4zMCBwbSkuDQoxOTk0IChTZXApOiBUaGUgQ09OQ0VSVCBzb2Z0d2FyZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgaW1wbGVtZW50ZWQgYXQgYWxsIG9mIHRoZSBmaXZlIFBSUycgc2l0ZXMgU2VjdW5kZXJhYmFkIGluIFNlcHQuIDE5OTQsIE5ldyBEZWxoaSBvbiBTZXB0LiAxOTk2LCBDYWxjdXR0YSBvbiAxNHRoIEp1bmUgMTk5OCwgTXVtYmFpIG9uIDExdGggSmFuIDE5OTkgYW5kIENoZW5uYWkgb24gMTJ0aCBBcHJpbCAxOTk5Lg0KMTk5NDogdGhlIDI0dGggYW5kIHRoZSBsYXN0IEdQUyBzYXRlbGxpdGUgd2FzIGxhdW5jaGVkIGluIFVTLg0KMTk5NDogVGhlIHdvcmQgVGFsaWJhbiBpcyBQYXNodG8sINi32KfZhNio2KfZhiDhua3EgWxpYsSBbiwgbWVhbmluZyAic3R1ZGVudHMiLCB0aGUgcGx1cmFsIG9mIOG5rcSBbGliLiBBZnRlciB0aGUgU292aWV0IFVuaW9uIGludGVydmVuZWQgYW5kIG9jY3VwaWVkIEFmZ2hhbmlzdGFuIGluIDE5NzksIElzbGFtaWMgbXVqYWhpZGVlbiBmaWdodGVycyBlbmdhZ2VkIGluIHdhciB3aXRoIHRob3NlIFNvdmlldCBmb3JjZXMsIHdoaWNoIGxhaWQgdGhlIGZvdW5kYXRpb24gb2YgcG9saXRpY2FsIG1vdmVtZW50IGFuZCBtaWxpdGFyeSBvcmdhbml6YXRpb24gbmFtZWQgVGFsaWJhbi4NCjE5OTQ6IEFiZHVsIEthcmVlbSBUZWxnaSBhY3F1aXJlZCB0aGUgbGljZW5zZSBmb3Igc2VsbGluZyBzdGFtcCBwYXBlciBhbmQgb3BlbmVkIGFuIG9mZmljZSBpbiBNdW1iYWkuIEFmdGVyIHRoYXQsIGhlIHN0YXJ0ZWQgcHJpbnRpbmcgc3RhbXAgcGFwZXIgaW4gTmFzaGlrLiBXaXRoIHNvbWUgYWdlbnRz4oCZIGhlbHAsIGhlIHN0YXJ0cyBzZWxsaW5nIGZha2Ugc3RhbXAgcGFwZXIgaW4gYnVsayB0byBiYW5rcywgaW5zdXJhbmNlIGNvbXBhbmllcywgc3RvY2sgYnJva2VyYWdlIGZpcm1zLCBhbmQgY29ycG9yYXRlcy4gSW4gMjAwMyB0aGUgVGVsZ2kgc2NhbSB3YXMgdW5mb2xkZWQ7IHRoZSBmaWd1cmUgaW4gdGhlIG1pbmQgb2Ygc2VjdXJpdHkgYW5kIGludGVsbGlnZW5jZSBhZ2VuY2llcyB3YXMgdXAgdG8gUnMuMjBrIENyb3JlDQoxOTk0OiBbR2VvUG9saXRpY3NdIEludGVybmF0aW9uYWwgQXNzb2NpYXRpb24gb2YgR2VuZGFybWVyaWVzIGFuZCBQb2xpY2UgRm9yY2VzIHdpdGggTWlsaXRhcnkgU3RhdHVzIChjb21tb25seSBrbm93biBhcyBGSUVQIGZvciBGcmFuY2UtSXRhbGlhLUVzcGHDsWEtUG9ydHVnYWwsIHRoZSBmaXJzdCBmb3VyIG1lbWJlcnMpIGlzIGFuIGFzc29jaWF0aW9uIG9mIG5hdGlvbmFsIGdlbmRhcm1lcmllcyBvciBtaWxpdGFyeSBwb2xpY2UgZm9yY2VzLg0KMTk5NDpbQm9va10gUGFsZSBCbHVlIERvdDogQSBWaXNpb24gb2YgdGhlIEh1bWFuIEZ1dHVyZSBpbiBTcGFjZSBpcyBhIDE5OTQgYm9vayBieSB0aGUgYXN0cm9ub21lciBDYXJsIFNhZ2FuLiBJdCBpcyB0aGUgc2VxdWVsIHRvIFNhZ2FuJ3MgMTk4MCBib29rIENvc21vcyBhbmQgd2FzIGluc3BpcmVkIGJ5IHRoZSBmYW1vdXMgMTk5MCBQYWxlIEJsdWUgRG90IHBob3RvZ3JhcGgsIGZvciB3aGljaCBTYWdhbiBwcm92aWRlcyBhIHBvaWduYW50IGRlc2NyaXB0aW9uLiBJbiB0aGUgYm9vaywgU2FnYW4gbWl4ZXMgcGhpbG9zb3BoeSBhYm91dCB0aGUgaHVtYW4gcGxhY2UgaW4gdGhlIHVuaXZlcnNlIHdpdGggYSBkZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCBrbm93bGVkZ2UgYWJvdXQgdGhlIFNvbGFyIFN5c3RlbS4gSGUgYWxzbyBkZXRhaWxzIGEgaHVtYW4gdmlzaW9uIGZvciB0aGUgZnV0dXJlLg0KMTk5NDpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTWVjaGFnb2R6aWxsYSBJSSgxOTkzKQ0KMTk5NDpbQ2luZW1hXSBUaGUgQXBwbGUoMTk4MCkNCjE5OTQ6W0NpbmVtYV0gVGhlIEF0bGFudGlzIEludGVyY2VwdG9ycygxOTgzKQ0KMTk5NDpbTW50bmdnXSBJbiAxOTk0LCBNYXJrIFdoZXR1IHN1bW1pdHRlZCBNdCBFdmVyZXN0IHdpdGggTWlrZSBSZWluYmVyZ2VyLiBCdXQgYWZ0ZXIgYSBmcmVlemluZyBuaWdodCwgV2hldHUgZmFjZWQgYSBoYXJyb3dpbmcgY2hvaWNlOiBsZWF2ZSBoaXMgZnJpZW5kIG9yIHJlbWFpbiBmb3JldmVyLiBUaGUgRmF0YWwgR2FtZSAoMTk5NykNCjE5OTQ6W1RvdXJpc21dIFRoZSBBZHZlbnR1cmUgVG91ciBPcGVyYXRvcnMgQXNzb2NpYXRpb24gb2YgSW5kaWEgKEFUT0FJKSB3YXMgZm91bmRlZCBpbiAxOTk0LiBJdCB3YXMgZXN0YWJsaXNoZWQgYnkgYSBncm91cCBvZiB0cmF2ZWwgdHJhZGUgYWR2ZW50dXJlcnMgd2hvIGFpbWVkIHRvIGNyZWF0ZSBhIHN0cm9uZyBzdXBwb3J0IG5ldHdvcmsgZm9yIEluZGlhbiBhZHZlbnR1cmUgdG91ciBvcGVyYXRvcnMuIA0KDQoxOTk1IChNYXkgMTkpOiBbUmVzZWFyY2hdW1NwYWNlXSB0d28gc2NpZW50aXN0cyBhdCBDYWwgUG9seSBzaG93ZWQgdGhhdCBiYWN0ZXJpYSBjYW4gc3Vydml2ZSB3aXRob3V0IGFueSBtZXRhYm9saXNtIGZvciBhdCBsZWFzdCAyNSBtaWxsaW9uIHllYXJzOyBwcm9iYWJseSB0aGV5IGFyZSBpbW1vcnRhbC4NCjI0IE5vdmVtYmVyIDE5OTU6IFRoZSBOZXcgWW9yayBUaW1lcyBkZXNjcmliZWQgYmFjdGVyaWEgdGhhdCBjYW4gc3Vydml2ZSByYWRpYXRpb24gbXVjaCBzdHJvbmdlciB0aGFuIGFueSB0aGF0IEVhcnRoIGhhcyBldmVyIGV4cGVyaWVuY2VkLg0KV2UgYXJlIGNhbGxpbmcgdGhlIHVuaW9uIG9mIExvdmVsb2NrJ3MgR2FpYSB3aXRoIEhveWxlIGFuZCBXaWNrcmFtYXNpbmdoZSdzIGV4cGFuZGVkIHRoZW9yeSBvZiBwYW5zcGVybWlhIENvc21pYyBBbmNlc3RyeS4gVGhpcyBhY2NvdW50IG9mIGV2b2x1dGlvbiBhbmQgdGhlIG9yaWdpbiBvZiBsaWZlIG9uIEVhcnRoIGlzIHByb2ZvdW5kbHkgZGlmZmVyZW50IGZyb20gdGhlIHByZXZhaWxpbmcgc2NpZW50aWZpYyBwYXJhZGlnbS4gSXQgY2hhbGxlbmdlcyBub3QgbWVyZWx5IHRoZSBhbnN3ZXJzIGJ1dCB0aGUgcXVlc3Rpb25zIHRoYXQgYXJlIHBvcHVsYXIgdG9kYXkuIENvc21pYyBBbmNlc3RyeSByZXF1aXJlcyB0aGF0IGxpZmUgY2FuIG9ubHkgZGVzY2VuZCBmcm9tIGFuY2VzdG9ycyBhdCBsZWFzdCBhcyBoaWdobHkgZXZvbHZlZCBhcyBpdHNlbGYsIGFuZCB0aGF0IHRoZXJlIGNhbiBiZSBubyBvcmlnaW4gb2YgbGlmZSBmcm9tIG5vbmJpb2xvZ2ljYWwgbWF0dGVyLiBXaXRob3V0IHN1cGVybmF0dXJhbCBpbnRlcnZlbnRpb24sIHRoZXJlZm9yZSwgd2UgY29uY2x1ZGUgdGhhdCBsaWZlIG11c3QgaGF2ZSBhbHdheXMgZXhpc3RlZC4gQWx0aG91Z2ggdGhlc2UgY29uY2x1c2lvbnMgY3V0IGFjcm9zcyB0aGUgYm91bmRhcmllcyBiZXR3ZWVuIHNjaWVuY2UsIHBoaWxvc29waHksIGFuZCByZWxpZ2lvbiwgd2UgYmVsaWV2ZSB0aGV5IGFyZSBncm91bmRlZCBpbiBnb29kIGV2aWRlbmNlLiBBbmQgbmV3IGRhdGEgdGhhdCBzdXBwb3J0IG1hbnkgYXNwZWN0cyBvZiBDb3NtaWMgQW5jZXN0cnkgYXJlIGNvbWluZyBpbiByYXBpZGx5LiBJbiB0aGUgZm9sbG93aW5nIHBhZ2VzIHdlIHdpbGwgZXhwbGFpbiBob3cgdGhlc2UgYW5kIG90aGVyIHJlY2VudCBkZXZlbG9wbWVudHMgc3VwcG9ydCBDb3NtaWMgQW5jZXN0cnk6DQoNCjE5OTU6IEFOU0VUIHNvbGQgdG8gQU9MLCB3aG8gIG5vdyBydW5zIGl0Lg0KMTk5NSAoTWFyKTogRGVwdC4gb2YgSW5kaWFuIE1lZGljaW5lIGFuZCBIb21lb3BhdGh5IGZvdW5kZWQuDQoxOTk1IChNYXIgMjQpOltSZXNlYXJjaF0gUmVtb3RlbHkgT3BlcmF0ZWQgVmVoaWNsZSBLQUlLTyByZWFjaGVkIHRoZSBkZWVwZXN0IGFyZWEgb2YgdGhlIE1hcmlhbmEgVHJlbmNoIGFuZCBtYWRlIHRoZSBkZWVwZXN0IGRpdmluZyByZWNvcmQgb2YgMTAsOTExIG0gKDM1LDc5NyBmdDsgNSw5NjYgZmF0aG9tcykgDQoxOTk1OiBwaG9uZSBjYWxsIGNvc3RpbmcgUnMuIDE2IHBlciBtaW4uDQoxOTk1OltHYW1pbmddIFZpcnR1YSBDb3AgMiBpcyBhIGxpZ2h0IGd1biBzaG9vdGVyIGFyY2FkZSBnYW1lLCByZWxlYXNlZCBpbiAxOTk1IGFuZCBkZXZlbG9wZWQgaW50ZXJuYWxseSBhdCBTZWdhIGJ5IHRoZWlyIEFNMiBzdHVkaW8gKFl1IFN1enVraSkuIEl0IHdhcyBwb3J0ZWQgdG8gdGhlIFNlZ2EgU2F0dXJuIGluIDE5OTYuIEl0IHdhcyByZWxlYXNlZCBvbiBQQyBpbiAxOTk3IGFuZCBTZWdhIERyZWFtY2FzdCBpbiAyMDAwLiBJdCB3YXMgbGF0ZXIgYnVuZGxlZCB3aXRoIFZpcnR1YSBDb3AgaW4gVmlydHVhIENvcDogRWxpdGUgRWRpdGlvbiBmb3IgUGxheVN0YXRpb24gMiBpbiAyMDAyLg0KMTk5NSAoQXByIDEpOltSZXNlYXJjaF0gUGlsbGFycyBvZiBDcmVhdGlvbiBpcyBhIHBob3RvZ3JhcGggdGFrZW4gYnkgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgb2YgZWxlcGhhbnQgdHJ1bmtzIG9mIGludGVyc3RlbGxhciBnYXMgYW5kIGR1c3QgaW4gdGhlIEVhZ2xlIE5lYnVsYSwgaW4gdGhlIFNlcnBlbnMgY29uc3RlbGxhdGlvbiwgc29tZSA2LDUwMOKAkzcsMDAwIGxpZ2h0LXllYXJzICgyLDAwMOKAkzIsMTAwIHBjOyA2MeKAkzY2IEVtKSBmcm9tIEVhcnRoLg0KMTk5NSAoQXByIDEpOiBJQUFJIGFuZCBOQUEgd2VyZSBtZXJnZWQgYnkgYW4gQWN0IG9mIFBhcmxpYW1lbnQgYW5kIHdhcyBuYW1lZCBhcyBBaXJwb3J0cyBBdXRob3JpdHkgb2YgSW5kaWEgKEFBSSkuIFRoaXMgbmV3IG9yZ2FuaXNhdGlvbiB3YXMgdG8gYmUgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nLCB1cGdyYWRpbmcsIG1haW50YWluaW5nIGFuZCBtYW5hZ2luZyBjaXZpbCBhdmlhdGlvbiBpbmZyYXN0cnVjdHVyZSBib3RoIG9uIHRoZSBncm91bmQgYW5kIGFpciBzcGFjZSBpbiB0aGUgY291bnRyeS4NCjE5OTUgKEFwciAyMSk6W0NyaW1lXVtJbmRpYV0gQmFibG9vIHBpY2tlZCB1cCBieSB0aGUgU2luZ2Fwb3JlIGFpcnBvcnQgcG9saWNlIGZvciB0cmF2ZWxsaW5nIG9uIGZha2UgcGFzc3BvcnQuIEhlIHdhcyBzdGF5aW5nIGluIER1YmFpLg0KMTk5NSAoU2VwIDMwKTpbQ3JpbWVdW0luZGlhXSBTaW5nYXBvcmUgZXh0cmFkaXRlcyBJbmRpYSdzICdtb3N0LXdhbnRlZCBpbnRlci1zdGF0ZSBjcmltaW5hbCcgQmFibG9vIFNyaXZhc3RhdmEgKDMzWU8pDQoxOTk1IChOb3YgMzApOiBPcGVyYXRpb24gRGVzZXJ0IFN0b3JtIChGaXJzdCBJcmFxIFdhcilvZmZpY2lhbGx5IGVuZGVkLg0KMTk5NSAoTWF5IDMxKTpbQm9va11bTWlsaXRhcnldIEFkbWlyYWwgV2lsbGlhbSBILiBNY1JhdmVuJ3MgU3BlYyBPcHM6IENhc2UgU3R1ZGllcyBpbiBTcGVjaWFsIE9wZXJhdGlvbnMgV2FyZmFyZTogVGhlb3J5IGFuZCBQcmFjdGljZTsgU2VhIFN0b3JpZXM6IE15IExpZmUgaW4gU3BlY2lhbCBPcGVyYXRpb25zICgyMDE5LCBNYXkgMSk7IFRoZSBIZXJvIENvZGU6IExlc3NvbnMgTGVhcm5lZCBmcm9tIExpdmVzIFdlbGwgTGl2ZWQgKDIwMjEsIEFwciAxMykNCjE5OTU6IERyLiBIYW5kZSBhZnRlciBncmFkdWF0aW5nIGZyb20gSUlUIEtoYXJhZ3B1ciBjb25jZXB0dWFsaXplZCBTRUxDTyBJbmRpYSBkdXJpbmcgaGlzIFBoRCBvbiBzdXN0YWluYWJsZSBlbmVyZ3kgYXQgdGhlIFVuaXZlcnNpdHkgb2YgTWFzc2FjaHVzZXR0cy4gRHVyaW5nIGEgZmllbGQgdmlzaXQgdG8gdGhlIERvbWluaWNhbiBSZXB1YmxpYywgaGUgd2FzIHN1cnByaXNlZCB0byBzZWUgdGhlIHBvb3IgdXNpbmcgc29sYXIgbGlnaHRzLg0KMTk5NTogVGhlIEdvdmVybm1lbnQgb2YgSW5kaWEgYW5kIHRoZSBHb3Zlcm5tZW50IG9mIERlbGhpIGpvaW50bHkgc2V0IHVwIGEgY29tcGFueSBjYWxsZWQgdGhlIERlbGhpIE1ldHJvIFJhaWwgQ29ycG9yYXRpb24gKERNUkMpIG9uIDMgTWF5IDE5OTUsIHdpdGggRHIuIEUuIFNyZWVkaGFyYW4gYXMgdGhlIG1hbmFnaW5nIGRpcmVjdG9yLg0KMTk5NTogSW50J2wgR2FuZGhpIFBlYWNlIFByaXplIGxhdW5jaGVkLg0KMTk5NTogU2FjaGluIFIuIFRlbmR1a2FyIGFuZCBBbmphbGkgVGVuZHVsa2FyIHdlZGRlZCB0b2dldGhlci4NCjE5OTU6IC5tcDMgaW52ZW50ZWQuDQoxOTk1OltHYW1pbmddIFdoaWxlIEZJRkEgOTUgZGlkIG5vdCBhZGQgbXVjaCBvdGhlciB0aGFuIHRoZSBhYmlsaXR5IHRvIHBsYXkgd2l0aCBjbHViIHRlYW1zLCBGSUZBIDk2IHB1c2hlZCB0aGUgYm91bmRhcmllcy4gRm9yIHRoZSBmaXJzdCB0aW1lIHdpdGggcmVhbCBwbGF5ZXIgbmFtZXMgYnkgb2J0YWluaW5nIHRoZSBGSUZQcm8gbGljZW5zZSwgdGhlIFBsYXlTdGF0aW9uLCBQQywgMzJYIGFuZCBTZWdhIFNhdHVybiB2ZXJzaW9ucyB1c2VkIEVBJ3MgIlZpcnR1YWwgU3RhZGl1bSIgZW5naW5lLCB3aXRoIDJEIHNwcml0ZSBwbGF5ZXJzIG1vdmluZyBhcm91bmQgYSByZWFsLXRpbWUgM0Qgc3RhZGl1bS4NCjE5OTUgKEp1bCAxOCk6W0Jvb2tdIEJhcmFjayBPYmFtYSdzIERyZWFtcyBmcm9tIE15IEZhdGhlcjogQSBTdG9yeSBvZiBSYWNlIGFuZCBJbmhlcml0YW5jZTsgRHJlYW1zIGZyb20gTXkgRmF0aGVyOiBBIFN0b3J5IG9mIFJhY2UgYW5kIEluaGVyaXRhbmNlICgyMDA2LCBPY3QgMTcpOyBPZiBUaGVlIEkgU2luZzogQSBMZXR0ZXIgdG8gTXkgRGF1Z2h0ZXJzICgyMDEwLCBOb3YgMTYpOyBBIFByb21pc2VkIExhbmQgKDIwMjAsIE5vdiAxNykNCjE5OTUoSmFuIDEpOltFbnZdIFRoZSBBZ3JlZW1lbnQgb24gQWdyaWN1bHR1cmUgKEFvQSkgaXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgb2YgdGhlIFdvcmxkIFRyYWRlIE9yZ2FuaXphdGlvbi4gSXQgd2FzIG5lZ290aWF0ZWQgZHVyaW5nIHRoZSBVcnVndWF5IFJvdW5kIG9mIHRoZSBHZW5lcmFsIEFncmVlbWVudCBvbiBUYXJpZmZzIGFuZCBUcmFkZSwgYW5kIGVudGVyZWQgaW50byBmb3JjZSB3aXRoIHRoZSBlc3RhYmxpc2htZW50IG9mIHRoZSBXVE8gb24gSmFudWFyeSAxLCAxOTk1LiBCbHVlLCBSZWQsIEFtYmVyIGFuZCBHcmVlbiBCb3ggb2Ygc3Vic2lkaWVzLg0KMTk5NTpbQ2luZW1hXSBOZWxzb24gTWFuZGVsYSwgaW4gaGlzIGZpcnN0IHRlcm0gYXMgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYSwgaW5pdGlhdGVzIGEgdW5pcXVlIHZlbnR1cmUgdG8gdW5pdGUgdGhlIEFwYXJ0aGVpZC10b3JuIGxhbmQ6IGVubGlzdCB0aGUgbmF0aW9uYWwgcnVnYnkgdGVhbSBvbiBhIG1pc3Npb24gdG8gd2luIHRoZSAxOTk1IFJ1Z2J5IFdvcmxkIEN1cC4gLSAgSW52aWN0dXMgKDIwMDkpDQoxOTk1OltDaW5lbWFdIEEgQ2xvY2t3b3JrIE9yYW5nZSgxOTcxKQ0KMTk5NTpbQ2luZW1hXSBEZWFkIEVuZCBEcml2ZS1JbigxOTg2KQ0KMTk5NTpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gU3BhY2Vnb2R6aWxsYSgxOTk0KQ0KMTk5NTpbQ2luZW1hXSBIZWFydGJlZXBzKDE5ODEpDQoxOTk1OltDaW5lbWFdIFRoZSBNdW1teSdzIEN1cnNlKDE5NDQpDQoxOTk1IChEZWMpOltTcGFjZV0gU29sYXIgYW5kIEhlbGlvc3BoZXJpYyBPYnNlcnZhdG9yeSAoU29ITykgd2FzIGxhdW5jaGVkIGluIERlY2VtYmVyIDE5OTUgYXMgYSBqb2ludCBtaXNzaW9uIGJldHdlZW4gdGhlIEV1cm9wZWFuIFNwYWNlIEFnZW5jeSAoRVNBKSBhbmQgTkFTQSwgU29ITyB3YXMgZGVzaWduZWQgdG8gb3JiaXQgdGhlIFN1biB0byBsZWFybiBhYm91dCB0aGUgc3RydWN0dXJlIG9mIHRoZSBzdGFy4oCZcyBpbnRlcmlvciBhbmQgaXRzIG91dGVyIGF0bW9zcGhlcmUsIGFzIHdlbGwgYXMgdG8gaW52ZXN0aWdhdGUgdGhlIGJlaGF2aW9yIG9mIHNvbGFyIHdpbmRzLiBJdCB3YXMgZXhwZWN0ZWQgdG8gY29tcGxldGUgaXRzIG1pc3Npb24gaW4gMTk5OC4gSW5zdGVhZCwgaXQgaXMgc3RpbGwgYWN0aXZlIHRvZGF5LCBhbmQgaXMgbm93IGxpa2VseSB0byBrZWVwIHdvcmtpbmcgdW50aWwgMjAyNSwgd2hlbiBpdCB3aWxsIGhhdmUgYmVlbiBpbiBzcGFjZSBmb3IgMzAgeWVhcnMuDQoxOTk1OltQaHlzaWNzXVtTcGFjZV1bUmVzZWFyY2hdIFByaW9yIHRvIDE5OTUsIHRoZW9yaXN0cyBiZWxpZXZlZCB0aGF0IHRoZXJlIHdlcmUgZml2ZSBjb25zaXN0ZW50IHZlcnNpb25zIG9mIHN1cGVyc3RyaW5nIHRoZW9yeSAodHlwZSBJLCB0eXBlIElJQSwgdHlwZSBJSUIsIGFuZCB0d28gdmVyc2lvbnMgb2YgaGV0ZXJvdGljIHN0cmluZyB0aGVvcnkpLiBUaGlzIHVuZGVyc3RhbmRpbmcgY2hhbmdlZCBpbiAxOTk1IHdoZW4gRWR3YXJkIFdpdHRlbiBzdWdnZXN0ZWQgdGhhdCB0aGUgZml2ZSB0aGVvcmllcyB3ZXJlIGp1c3Qgc3BlY2lhbCBsaW1pdGluZyBjYXNlcyBvZiBhbiBlbGV2ZW4tZGltZW5zaW9uYWwgdGhlb3J5IGNhbGxlZCBNLXRoZW9yeS4gV2l0dGVuJ3MgY29uamVjdHVyZSB3YXMgYmFzZWQgb24gdGhlIHdvcmsgb2YgYSBudW1iZXIgb2Ygb3RoZXIgcGh5c2ljaXN0cywgaW5jbHVkaW5nIEFzaG9rZSBTZW4sIENocmlzIEh1bGwsIFBhdWwgVG93bnNlbmQsIGFuZCBNaWNoYWVsIER1ZmYuIEhpcyBhbm5vdW5jZW1lbnQgbGVkIHRvIGEgZmx1cnJ5IG9mIHJlc2VhcmNoIGFjdGl2aXR5IG5vdyBrbm93biBhcyB0aGUgc2Vjb25kIHN1cGVyc3RyaW5nIHJldm9sdXRpb24uDQoxOTk1OltDcmltZV1bSW5kaWFdIE11cmRlciBvZiBNdW1iYWktYmFzZWQgYnVpbGRlciBQcmFkZWVwIEphaW4gYnkgQWJ1IFNhbGVtDQoxOTk1OiBGb3J0dW5lIEhvdGVscyBpbiBJbmRpYSBpcyBvd25lZCBieSBpdHMgcGFyZW50IGNvbXBhbnksIElUQyBMdGQuLCB3aGljaCBlc3RhYmxpc2hlZCBGb3J0dW5lIEhvdGVscyBpbiAxOTk1IGFzIGEgc3Vic2lkaWFyeSB0byBwcm92aWRlIG1pZC1tYXJrZXQgdG8gdXBzY2FsZSBob3NwaXRhbGl0eSBzZXJ2aWNlcy4gSG93ZXZlciwgYSBzZXBhcmF0ZSBncm91cCwgRm9ydHVuZSBHcm91cCBvZiBIb3RlbHMsIGJhc2VkIGluIHRoZSBVbml0ZWQgQXJhYiBFbWlyYXRlcyAoVUFFKSBhbmQgZm91bmRlZCBieSBQcmF2ZWVuIFNoZXR0eSwgYWxzbyBvcGVyYXRlcyBhIGRpZmZlcmVudCBzZXQgb2YgaG90ZWxzIGluIHRoYXQgcmVnaW9uLg0KMTk5NTpbVUtdIENhbWlsbGEgaXMgUXVlZW4gb2YgdGhlIFVuaXRlZCBLaW5nZG9tIGFuZCAxNCBvdGhlciBDb21tb253ZWFsdGggcmVhbG1zIGFzIHRoZSB3aWZlIG9mIEtpbmcgQ2hhcmxlcyBJSUkuIENhbWlsbGEgd2FzIHJhaXNlZCBpbiBFYXN0IFN1c3NleCBhbmQgU291dGggS2Vuc2luZ3RvbiBpbiBFbmdsYW5kIGFuZCBlZHVjYXRlZCBpbiBFbmdsYW5kLCBTd2l0emVybGFuZCBhbmQgRnJhbmNlLiBJbiAxOTczLCBzaGUgbWFycmllZCBCcml0aXNoIEFybXkgb2ZmaWNlciBBbmRyZXcgUGFya2VyIEJvd2xlczsgdGhleSBkaXZvcmNlZCBpbiAxOTk1Lg0KDQoxOTk2OltHZW9Qb2xpdGljc11bQnVzaW5lc3NdIE1vbmdvbGlhIHdhcyBncmFudGVkIG9ic2VydmVyIHN0YXR1cyB0byBUUkFDRUNBLg0KMTk5NiAoNyBBdWd1c3QpOltSZXNlYXJjaF1bU3BhY2VdIE5BU0EgYW5ub3VuY2VkIGZvc3NpbGl6ZWQgZXZpZGVuY2Ugb2YgYW5jaWVudCBsaWZlIGluIG1ldGVvcml0ZSBBTEggODQwMDEgZnJvbSBNYXJzLg0KMTk5NiAoT2N0IDI3KTpbUmVzZWFyY2hdW1NwYWNlXSBnZW5ldGljaXN0cyBzaG93ZWQgZXZpZGVuY2UgdGhhdCBtYW55IGdlbmVzIGFyZSBtdWNoIG9sZGVyIHRoYW4gdGhlIGZvc3NpbCByZWNvcmQgd291bGQgaW5kaWNhdGUuIFN1YnNlcXVlbnQgc3R1ZGllcyBoYXZlIHN0cmVuZ3RoZW5lZCB0aGlzIGZpbmRpbmcuDQoxOTk2OltCdXNpbmVzc11bR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2hlbiB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4gc2lnbmVkIHRoZSBUcmVhdHkgb24gRGVlcGVuaW5nIE1pbGl0YXJ5IFRydXN0IGluIEJvcmRlciBSZWdpb25zIGluIFNoYW5naGFpLiBPbiAyNCBBcHJpbCAxOTk3IHRoZSBzYW1lIGNvdW50cmllcyBzaWduZWQgdGhlIFRyZWF0eSBvbiBSZWR1Y3Rpb24gb2YgTWlsaXRhcnkgRm9yY2VzIGluIEJvcmRlciBSZWdpb25zIGluIGEgbWVldGluZyBpbiBNb3Njb3csIFJ1c3NpYS4gT24gMjAgTWF5IDE5OTcgUnVzc2lhbiBQcmVzaWRlbnQgQm9yaXMgWWVsdHNpbiBhbmQgQ2hpbmVzZSBQcmVzaWRlbnQgSmlhbmcgWmVtaW4gc2lnbmVkIGEgZGVjbGFyYXRpb24gb24gYSAibXVsdGlwb2xhciB3b3JsZCIuDQoxOTk2OiAxOTk2IE1vdW50IEV2ZXJlc3QgRGlzYXN0ZXIsIGluIHdoaWNoIGVpZ2h0IHBlb3BsZSBkaWVkIHdoaWxlIG9uIGFuIGV4cGVkaXRpb24gdG8gc2NhbGUgdGhlIGluZmFtb3VzIHN1bW1pdC4gT25lIG9mIHRoZSBjbGltYmVycyB3aG8gbG9zdCBoaXMgbGlmZSB3YXMgQW5keSBIYXJyaXMsIHBsYXllZCBpbiBFdmVyZXN0IGJ5IE1hcnRpbiBIZW5kZXJzb24uIEhhcnJpcyB3YXMgb25lIG9mIHRoZSBndWlkZXMgZm9yIHRoZSBBZHZlbnR1cmUgQ29uc3VsdGFudHMsIGFsb25nIHdpdGggUm9iIEhhbGwgYW5kIE1pa2UgR3Jvb20uIEluIHRoZSBmaWxtLCBoZSBhcHBlYXJzIHRvIGRpZSB3aGlsZSB3aXRoIEhhbGwsIGZhbGxpbmcgb2ZmIGEgY2xpZmYgYWZ0ZXIgYSBoYWxsdWNpbmF0aW9uLiBCdXQgUm9iIEhhbGwgbmV2ZXIgcmVwb3J0ZWQgdGhpcywgYW5kIHNpbmNlIGhlIGRpZWQgc2hvcnRseSB0aGVyZWFmdGVyLCB0aGVyZSBpcyBubyB3YXkgdG8gY29uZmlybSB0aGUgY2lyY3Vtc3RhbmNlcyBzdXJyb3VuZGluZyBIYXJyaXMnIGRlYXRoLg0KMTk5NjpbQ29tcHV0aW5nXVtRdWFudHVtXSAgTG92IEdyb3ZlciBkZXZpc2VkIGFuIGFsZ29yaXRobSAoR3JvdmVyJ3MgYWxnb3JpdGhtKSB0aGF0IGNvdWxkIHNlYXJjaCBhbiB1bnNvcnRlZCBkYXRhYmFzZSBpbiBzcXVhcmUgcm9vdCB0aW1lIG9uIGEgcXVhbnR1bSBjb21wdXRlciwgd2hpY2ggd291bGQgb3V0cGVyZm9ybSBhbnkgY2xhc3NpY2FsIGFsZ29yaXRobS4NCjE5OTY6W1VTXSBCYXJhY2sgT2JhbWEgd2FzIGVsZWN0ZWQgdG8gdGhlIElsbGlub2lzIFNlbmF0ZSwgc3VjY2VlZGluZyBEZW1vY3JhdGljIFN0YXRlIFNlbmF0b3IgQWxpY2UgUGFsbWVyIGZyb20gSWxsaW5vaXMncyAxM3RoIERpc3RyaWN0LCB3aGljaCwgYXQgdGhhdCB0aW1lLCBzcGFubmVkIENoaWNhZ28gU291dGggU2lkZSBuZWlnaGJvcmhvb2RzIGZyb20gSHlkZSBQYXJr4oCTS2Vud29vZCBzb3V0aCB0byBTb3V0aCBTaG9yZSBhbmQgd2VzdCB0byBDaGljYWdvIExhd24uDQoxOTk2OltVS10gQ2hhcmxlcyBJSUkgYW5kIERpYW5hIGdldHMgZGl2b3JjZWQuDQoxOTk2IChKYW4gMjUpOltCb29rXSBQZXRlciBMeW5jaCAmIEpvaG4gUm90aGNoaWxkJ3MgTGVhcm4gdG8gRWFybjogQSBCZWdpbm5lcidzIEd1aWRlIHRvIHRoZSBCYXNpY3Mgb2YgSW52ZXN0aW5nIGFuZCBCdXNpbmVzcy4NCjE5OTYgKEphbik6W0NyaW1lXVtJbmRpYV0gQW5lZXMgSWJyYWhpbSBhcnJlc3RlZCBpbiBCYWhyYWluLCBzaGlmdGVkIHRvIER1YmFpIGFsbGVnZWRseSBvbiB0aGUgaW50ZXJ2ZW50aW9uIG9mIHNvbWUgb2YgRHViYWkncyBydWxpbmcgbm90YWJsZXMsIGFuZCB3YXMgdGhlbiBhbGxvd2VkIHRvIHNsaXAgYXdheSB0byBLYXJhY2hpLCBQYWtpc3Rhbi4NCjE5OTY6IE5hdGlvbmFsIEFlcm9zcGFjZSBMYWJvcmF0b3JpZXMsIEluZGlhIGluZGlnZW5vdXNseSBidWlsdCBGTE9TT0xWRVIsIEluZGlhJ3MgZmlyc3Qgc3VwZXJjb21wdXRlci4gSXQgd2FzIHJlcGxpY2F0ZWQgYW5kIGluc3RhbGxlZCBhdCBJQ0FEIE1vc2NvdyBpbiAxOTkxIHVuZGVyIFJ1c3NpYW4gY29sbGFib3JhdGlvbi4NCjE5OTY6IEluZGlhL1Bha2lzdGFuL1NyaSBMYW5rYSAxOTk2Lg0KMTk5NjpbQ29tcHV0aW5nXVt3d3ddIE1hcmlvIDY0IGdhbWUgcmFuIDEwMCBtaWxsaW9uIGNhbGN1bGF0aW9ucyBwZXIgc2Vjb25kLCA1NDAgbWlsbGlvbiAoSGFsZi1MaWZlKSBpbiAxOTk4LCBNaW5lY3JhZnQgKDIwMTEpIHJ1bm5pbmcgMTAwIGJpbGxpb24gY2FsY3VsYXRpb25zLCBDeWJlcnB1bmsgMjA3NyAobW9zdCByZWFsaXN0aWMgdmlkZW8gZ2FtZSAyMDI0KSwgeW91IG5lZWQgYSBncmFwaGljcyBjYXJkIHRoYXQgY2FuIHBlcmZvcm0gYXJvdW5kIDM2IHRyaWxsaW9uIGNhbGMgcGVyIHNlY29uZC4NCjE5OTY6IFByb2YgTWFsY29sbSBIZWF0aC4gUHJvZmVzc29yIG9mIEdyZWVrIExhbmd1YWdlIGFuZCBMaXRlcmF0dXJlIEBsZWVkcy5hYy51aywgdHJhbnNsYXRlZCBBcmlzdG90bGUncyBQb2V0aWNzLg0KMTk5NjogVGhlIDU2SyBtb2RlbSB3YXMgaW52ZW50ZWQgYnkgRHIuIEJyZW50IFRvd25zaGVuZA0KMTk5NiAoRmViIDEzKTogTmVwYWxlc2UgQ2l2aWwgV2FyIHN0YXJ0ZWQuIFRoZSBNYW9pc3QgUmViZWxsaW9uIChsYWJlbGxlZCB0aGUgUGVvcGxlJ3MgV2FyIGJ5IHRoZW4gQ1BOKE1hb2lzdCkpIHdhcyBhbiBhcm1lZCBjb25mbGljdCBhZ2FpbnN0IEdvdmVybm1lbnQgb2YgTmVwYWwgKHRoZW4gSE1HIG9mIE5lcGFsKSBmb3VnaHQgZnJvbSAxOTk2IHRvIDIwMDYuIFRoZSByZWJlbGxpb24gd2FzIGxhdW5jaGVkIGJ5IHRoZSBDb21tdW5pc3QgUGFydHkgb2YgTmVwYWwgKE1hb2lzdCkgb24gMTMgRmVicnVhcnkgMTk5NiB3aXRoIHRoZSBtYWluIGFpbSBvZiBvdmVydGhyb3dpbmcgdGhlIE5lcGFsZXNlIG1vbmFyY2h5IGFuZCBlc3RhYmxpc2hpbmcgYSAnUGVvcGxlJ3MgUmVwdWJsaWMnLiBJdCBlbmRlZCB3aXRoIHRoZSBDb21wcmVoZW5zaXZlIFBlYWNlIEFjY29yZCBzaWduZWQgb24gMjEgTm92ZW1iZXIgMjAwNi4NCjE5OTYgKE1hciAxKTogW0dlb1BvbGl0aWNzXSBUaGUgQXNpYeKAk0V1cm9wZSBNZWV0aW5nIChBU0VNKSBpcyBhbiBBc2lhbuKAk0V1cm9wZWFuIHBvbGl0aWNhbCBkaWFsb2d1ZSBmb3J1bSB0byBlbmhhbmNlIHJlbGF0aW9ucyBhbmQgdmFyaW91cyBmb3JtcyBvZiBjb29wZXJhdGlvbiBiZXR3ZWVuIGl0cyBwYXJ0bmVycy4gSXQgd2FzIG9mZmljaWFsbHkgZXN0YWJsaXNoZWQgYXQgdGhlIDFzdCBBU0VNIFN1bW1pdCAoQVNFTTEpIGluIEJhbmdrb2ssIFRoYWlsYW5kLCBieSB0aGUgdGhlbiAxNSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aGUgRXVyb3BlYW4gQ29tbWlzc2lvbiwgdGhlIHRoZW4gNyBNZW1iZXIgU3RhdGVzIG9mIHRoZSBBc3NvY2lhdGlvbiBvZiBTb3V0aGVhc3QgQXNpYW4gTmF0aW9ucyAoQVNFQU4pLCBhbmQgdGhlIGluZGl2aWR1YWwgY291bnRyaWVzIG9mIENoaW5hLCBKYXBhbiwgYW5kIFNvdXRoIEtvcmVhLiBBIHNlcmllcyBvZiBlbmxhcmdlbWVudHMgc2F3IGFkZGl0aW9uYWwgRVUgTWVtYmVyIFN0YXRlcyBqb2luIGFzIHdlbGwgYXMgSW5kaWEsIE1vbmdvbGlhLCBQYWtpc3RhbiBhbmQgdGhlIEFTRUFOIFNlY3JldGFyaWF0IGluIDIwMDgsIEF1c3RyYWxpYSwgTmV3IFplYWxhbmQgYW5kIFJ1c3NpYSBpbiAyMDEwLCBCYW5nbGFkZXNoLCBOb3J3YXksIGFuZCBTd2l0emVybGFuZCBpbiAyMDEyLCBhcyB3ZWxsIGFzIENyb2F0aWEsIGFuZCBLYXpha2hzdGFuIGluIDIwMTQuDQoxOTk2IChBcHIgMjYpOiBbR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2l0aCB0aGUgc2lnbmluZyBvZiB0aGUgVHJlYXR5IG9uIERlZXBlbmluZyBNaWxpdGFyeSBUcnVzdCBpbiBCb3JkZXIgUmVnaW9ucyBpbiBTaGFuZ2hhaSBieSB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4uIExhdGVyIG9uIEp1biAxNSwgMjAwMSBpdCBnb3QgcmVuYW1lZCBhcyBTaGFuZ2hhaSBDb29wZXJhdGlvbiBPcmdhbmlzYXRpb24gKFNDTykgb3IgU2hhbmdoYWkgUGFjdCANCjE5OTYgKE1heSAxNik6IEF0YWwgQmloYXJpIFZhanBheWVlIGJlY29tZXMgUE0gb2YgSW5kaWEgZm9yIHRoZSB2ZXJ5IGZpcnN0IHRpbWUgZm9yIDE2IGRheXMuDQoxOTk2IChKdW4gMSk6IEF0YWwgQmloYXJpIFZhanBheWVlIHJlc2lnbnMuIEhEIERldmUgR293ZGEgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NiAoQXVnIDE0KTpbcmVzZWFyY2hdW2V4dHJlbWVdIEthcmVuIEVsaXphYmV0aCBXZXR0ZXJoYWhuIChPY3RvYmVyIDE2LCAxOTQ4IOKAkyBKdW5lIDgsIDE5OTcpLCBhbHNvIGtub3duIGFzIEthcmVuIFdldHRlcmhhaG4gSmVubmV0dGUsIHdhcyBhbiBBbWVyaWNhbiBwcm9mZXNzb3Igb2YgY2hlbWlzdHJ5IGF0IERhcnRtb3V0aCBDb2xsZWdlLCBOZXcgSGFtcHNoaXJlLCB3aG8gc3BlY2lhbGl6ZWQgaW4gdG94aWMgbWV0YWwgZXhwb3N1cmUuIFNoZSBkaWVkIG9mIG1lcmN1cnkgcG9pc29uaW5nIGF0IHRoZSBhZ2Ugb2YgNDggZHVlIHRvIGFjY2lkZW50YWwgZXhwb3N1cmUgdG8gdGhlIGV4dHJlbWVseSB0b3hpYyBvcmdhbmljIG1lcmN1cnkgY29tcG91bmQgZGltZXRoeWxtZXJjdXJ5IChIZyhDSDMpMikuIFByb3RlY3RpdmUgZ2xvdmVzIGluIHVzZSBhdCB0aGUgdGltZSBvZiB0aGUgaW5jaWRlbnQgcHJvdmlkZWQgaW5zdWZmaWNpZW50IHByb3RlY3Rpb24sIGFuZCBleHBvc3VyZSB0byBvbmx5IGEgc2luZ2xlIGRyb3Agb3IgdHdvIG9mIHRoZSBkaW1ldGh5bG1lcmN1cnkgYWJzb3JiZWQgdGhyb3VnaCB0aGUgZ2xvdmVzIHByb3ZlZCB0byBiZSBmYXRhbCBhZnRlciBsZXNzIHRoYW4gYSB5ZWFyLiBUZXN0cyBsYXRlciByZXZlYWxlZCB0aGF0IGRpbWV0aHlsbWVyY3VyeSBjYW4sIGluIGZhY3QsIHJhcGlkbHkgcGVybWVhdGUgc2V2ZXJhbCBraW5kcyBvZiBsYXRleCBnbG92ZXMgYW5kIGVudGVyIHRoZSBza2luIHdpdGhpbiBhYm91dCAxNSBzZWNvbmRzLiBIZXIgZXhwb3N1cmUgd2FzIGxhdGVyIGNvbmZpcm1lZCBieSBoYWlyIGFuYWx5c2lzLCB3aGljaCBzaG93ZWQgYSBkcmFtYXRpYyBqdW1wIGluIG1lcmN1cnkgbGV2ZWxzIDE3IGRheXMgYWZ0ZXIgdGhlIGluaXRpYWwgYWNjaWRlbnQsIHBlYWtpbmcgYXQgMzkgZGF5cywgZm9sbG93ZWQgYnkgYSBncmFkdWFsIGRlY2xpbmUuIEFwcHJveGltYXRlbHkgdGhyZWUgbW9udGhzIGFmdGVyIHRoZSBpbml0aWFsIGFjY2lkZW50IFdldHRlcmhhaG4gYmVnYW4gZXhwZXJpZW5jaW5nIGJyaWVmIGVwaXNvZGVzIG9mIGFiZG9taW5hbCBkaXNjb21mb3J0IGFuZCBub3RpY2VkIHNpZ25pZmljYW50IHdlaWdodCBsb3NzLiBUaGUgbW9yZSBkaXN0aW5jdGl2ZSBuZXVyb2xvZ2ljYWwgc3ltcHRvbXMgb2YgbWVyY3VyeSBwb2lzb25pbmcsIGluY2x1ZGluZyBsb3NzIG9mIGJhbGFuY2UgYW5kIHNsdXJyZWQgc3BlZWNoLCBhcHBlYXJlZCBpbiBKYW51YXJ5IDE5OTcsIGZpdmUgbW9udGhzIGFmdGVyIHRoZSBhY2NpZGVudC4gSGVyIGJsb29kIGFuZCB1cmluYXJ5IG1lcmN1cnkgY29udGVudCB3ZXJlIG1lYXN1cmVkIGF0IDQsMDAwIM68Zy9MIGFuZCAyMzQgzrxnL0wsIHJlc3BlY3RpdmVseeKAlGJvdGggbWFueSB0aW1lcyB0aGVpciByZXNwZWN0aXZlIHRveGljIHRocmVzaG9sZHMgb2YgMjAwIM68Zy9MIGFuZCA1MCDOvGcvTCAoYmxvb2QgYW5kIHVyaW5lIHJlZmVyZW5jZSByYW5nZXMgYXJlIDEgdG8gOCDOvGcvTCBhbmQgMSB0byA1IM68Zy9MKS4NCjE5OTYgKERlYyA0IDA2OjU4OjA3IFVUQyk6W1NwYWNlXVtNYXJzXVtFYXJ0aF0gTGF1bmNoIG9mIE1hcnMgUGF0aGZpbmRlciBvbiBEZWx0YSBJSSA3OTI1ICgjRDI0MCkNCnJvY2tldCBmcm9tIENhcGUgQ2FuYXZlcmFsIFNMQy0xNy4gVG8gcHJvdmUgdGhhdCB0aGUgZGV2ZWxvcG1lbnQgb2YgImZhc3RlciwgYmV0dGVyIGFuZCBjaGVhcGVyIiBzcGFjZWNyYWZ0IHdhcyBwb3NzaWJsZSAod2l0aCB0aHJlZSB5ZWFycyBmb3IgZGV2ZWxvcG1lbnQgYW5kIGEgY29zdCB1bmRlciAkMTUwIG1pbGxpb24gZm9yIHRoZSBsYW5kZXIsIGFuZCAkMjUgbWlsbGlvbiBmb3IgdGhlIHJvdmVyKS4gVG8gc2hvdyB0aGF0IGl0IHdhcyBwb3NzaWJsZSB0byBzZW5kIGEgbG9hZCBvZiBzY2llbnRpZmljIGluc3RydW1lbnRzIHRvIGFub3RoZXIgcGxhbmV0IHdpdGggYSBzaW1wbGUgc3lzdGVtIGFuZCBhdCBvbmUtZmlmdGVlbnRoIHRoZSBjb3N0IG9mIGEgVmlraW5nIG1pc3Npb24uIChGb3IgY29tcGFyaXNvbiwgdGhlIFZpa2luZyBtaXNzaW9ucyBjb3N0ICQ5MzUgbWlsbGlvbiBpbiAxOTc0IG9yICQzLjUgYmlsbGlvbiBpbiAxOTk3IGRvbGxhcnMuKS4gVG8gZGVtb25zdHJhdGUgTkFTQSdzIGNvbW1pdG1lbnQgdG8gbG93LWNvc3QgcGxhbmV0YXJ5IGV4cGxvcmF0aW9uIGJ5IGZpbmlzaGluZyB0aGUgbWlzc2lvbiB3aXRoIGEgdG90YWwgZXhwZW5kaXR1cmUgb2YgJDI4MCBtaWxsaW9uLCBpbmNsdWRpbmcgdGhlIGxhdW5jaCB2ZWhpY2xlIGFuZCBtaXNzaW9uIG9wZXJhdGlvbnMuDQoxOTk2OiBhIHJhaWQgb24gdGhlIEFuaW1hbCBIdXNiYW5kcnkgZGVwYXJ0bWVudOKAmXMgb2ZmaWNlcyBpbiBDaGFpYmFzYSwgQmloYXIgdW5mb2xkZWQgdGhlIFJzLjk1MCBjcm9yZSBmb2RkZXIgc2NhbSwgaW4gd2hpY2ggdGhlIEJpaGFyIGNoaWVmIG1pbmlzdGVyIExhbHUgUHJhc2FkIFlhZGF2IGNhdGNoIHVwIGluIGEgbGlmZWxvbmcgdHVzc2xlIHdpdGggdGhlIENCSS4NCjE5OTY6W0Jvb2tdW0FkdmVudHVyZV0gSm9uIEtyYWthdWVyJ3MgSW50byB0aGUgV2lsZC4NCjE5OTY6W0NvbXB1dGluZ10gVGhlIFZpZGVvTEFOIHNvZnR3YXJlIG9yaWdpbmF0ZWQgYXMgYSBGcmVuY2ggYWNhZGVtaWMgcHJvamVjdC4gVkxDIHVzZWQgdG8gc3RhbmQgZm9yICJWaWRlb0xBTiBDbGllbnQiIHdoZW4gVkxDIHdhcyBhIGNsaWVudCBvZiB0aGUgVmlkZW9MQU4gcHJvamVjdCwgb2ZmaWNpYWxseSByZWxlYXNlZCB1bmRlciBHTlUgR1BMIG9uIDIwMDEgKEZlYiAxKS4NCjE5OTY6W01lbWVdIERhbmNpbmcgQmFieSBTY3JlZW5zYXZlcg0KMTk5NjpbU3BhY2VYXSBUaGUgZW50aXJlIHByb2Nlc3MgZm9yIHRoZSBKYW1lcyBXZWJiIFNwYWNlIFRlbGVzY29wZSAoSldTVCkgZnJvbSBpbml0aWFsIGNvbmNlcHQgdG8gbGF1bmNoIHNwYW5uZWQgYXBwcm94aW1hdGVseSAyNSB5ZWFycywgd2l0aCBpbml0aWFsIGRlc2lnbnMgYmVnaW5uaW5nIGluIDE5OTYgYW5kIHRoZSB0ZWxlc2NvcGUgbGF1bmNoaW5nIGluIDIwMjEsIGJ1dCBhIHNpZ25pZmljYW50IHBvcnRpb24gb2YgdGhpcyB3YXMgc3BlbnQgaW4gZGVzaWduLCB0ZXN0aW5nLCBhbmQgb3ZlcmNvbWluZyBtYWpvciByZWRlc2lnbnMgYW5kIGRlbGF5cywgbm90IGp1c3QgYXNzZW1ibHkuIA0KMTk5NiAoRmViIDI4KTpbRGVsaGldIEluZGlyYXB1cmFtLCBHaGF6aWFiYWQgd2FzIGVzdGQgd2hlbiBpdHMgZm91bmRhdGlvbiBzdG9uZSAoS2FsYSBQYXRoYXIpIHdhcyBpbmF1Z3VyYXRlZCBieSBTaCBNb3RpbGFsIFZvcmEsIHRoZW4gR292ZXJub3Igb2YgVVAuICgyMDIxKSBJJ3B1cmFtIEV4dG4gdG8gYmUgYnVpbHQgb24gMTIgYWNyZXMgb25seSwgY29uY2VpdmVkIGluIDIwMDQuDQoxOTk2OltCb29rXVtNaWxpdGFyeV1bQ3VsdHVyZV1bRVVdW1VTQV0gR2VvcmdlIFIuUi4gTWFydGluIGlzIHRoZSBBbWVyaWNhbiBhdXRob3Igb2YgdGhlIGVwaWMgZmFudGFzeSBib29rIHNlcmllcyBBIFNvbmcgb2YgSWNlIGFuZCBGaXJlLCB3aGljaCBiZWdhbiB3aXRoIEEgR2FtZSBvZiBUaHJvbmVzICgxOTk2KSBhbmQgc2VydmVkIGFzIHRoZSBiYXNpcyBmb3IgSEJPJ3MgbWFzc2l2ZWx5IHBvcHVsYXIgR2FtZSBvZiBUaHJvbmVzIFRWIHNlcmllcy4gQSBTb25nIG9mIEljZSBhbmQgRmlyZSBpcyBhIHNlcmllcyBvZiBoaWdoIGZhbnRhc3kgbm92ZWxzIGJ5IHRoZSBBbWVyaWNhbiBhdXRob3IgR2VvcmdlIFIuIFIuIE1hcnRpbi4gTWFydGluIGJlZ2FuIHdyaXRpbmcgdGhlIGZpcnN0IHZvbHVtZSwgQSBHYW1lIG9mIFRocm9uZXMsIGluIDE5OTEsIGFuZCBwdWJsaXNoZWQgaXQgaW4gMTk5Ni4gTWFydGluLCB3aG8gb3JpZ2luYWxseSBlbnZpc2lvbmVkIHRoZSBzZXJpZXMgYXMgYSB0cmlsb2d5LCBoYXMgcmVsZWFzZWQgZml2ZSBvdXQgb2Ygc2V2ZW4gcGxhbm5lZCB2b2x1bWVzLiANCg0KW0dlbmVyYXRpb25dIE1pbGxlbm5pYWwgZ2VuZXJhdGlvbiAoMTk4MeKAkzE5OTYpIGVuZHM7IGxhc3RlZCBmb3IgMTUgeWVhcnMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICA1MCB5ZWFycyBvZiBJbmRlcGVuZGVudCBJbmRpYSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSANCg0KW0dlbmVyYXRpb25dIEdlbiBaICgxOTk34oCTMjAxMikgc3RhcnRzOyBhbmQgZXhpc3RzIGZvciBuZXh0IDE1IHllYXJzLg0KDQoxOTk3OltXaG9dW1Jlc2VhcmNoXVtDb21wdXRpbmddW1RlY2hdW0N1bHR1cmVdIFZMQyBNZWRpYSBQbGF5ZXIgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBzdHVkZW50cyBhdCB0aGUgRnJlbmNoIGVuZ2luZWVyaW5nIHNjaG9vbCDDiWNvbGUgQ2VudHJhbGUgUGFyaXMgaW4gMTk5Ni4gV2hpbGUgaXQgc3RhcnRlZCBhcyBhbiBhY2FkZW1pYyBwcm9qZWN0IChWaWRlb0xBTikgdG8gc3RyZWFtIHZpZGVvIG92ZXIgYSBjYW1wdXMgbmV0d29yaywgaXRzIGRldmVsb3BtZW50IGFuZCBtb2Rlcm5pemF0aW9uIHdlcmUgbGF0ZXIgbGVkIGJ5IEplYW4tQmFwdGlzdGUgS2VtcGYuIA0KMTk5NzpbUmVzZWFyY2hdW1NwYWNlXSAyOSBKdWx5IDE5OTc6IGEgTkFTQSBzY2llbnRpc3QgYW5ub3VuY2VkIGV2aWRlbmNlIG9mIGZvc3NpbGl6ZWQgbWljcm9zY29waWMgbGlmZSBmb3JtcyBpbiBhIG1ldGVvcml0ZSBub3QgZnJvbSBhbnkga25vd24gcGxhbmV0Lg0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgR3JvdXAgb2YgRWlnaHQgKEc4KSB3YXMgYW4gaW50ZXJnb3Zlcm5tZW50YWwgcG9saXRpY2FsIGZvcnVtIGZyb20gMTk5NyB0byAyMDE0LCBmb3JtZWQgYnkgaW5jb3Jwb3JhdGluZyBSdXNzaWEgaW50byB0aGUgRzcuIFRoZSBHOCBiZWNhbWUgdGhlIEc3IGFnYWluIGFmdGVyIFJ1c3NpYSB3YXMgZXhwZWxsZWQgaW4gMjAxNCBhZnRlciB0aGUgUnVzc2lhbiBhbm5leGF0aW9uIG9mIENyaW1lYS4gRm91bmRlZDogMTk5NywgRGVudmVyLCBDb2xvcmFkbywgVW5pdGVkIFN0YXRlcw0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBGb3VuZGVkOiA2IEp1bmUgMTk5NywgVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiAoQklNU1RFQykgaXMgYW4gaW50ZXJuYXRpb25hbCBvcmdhbml6YXRpb24gb2Ygc2V2ZW4gU291dGggQXNpYW4gYW5kIFNvdXRoZWFzdCBBc2lhbiBuYXRpb25zLCBob3VzaW5nIDEuNzMgYmlsbGlvbiBwZW9wbGUgYW5kIGhhdmluZyBhIGNvbWJpbmVkIGdyb3NzIGRvbWVzdGljIHByb2R1Y3Qgb2YgVVMkNS4yIHRyaWxsaW9uLg0KMTk5NzpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gYnVpbHQgdGhlIGZpcnN0IGV4cGVyaW1lbnRhbCBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCBjb3VsZCBtYW5pcHVsYXRlIDcgcXViaXRzIHVzaW5nIG51Y2xlYXIgbWFnbmV0aWMgcmVzb25hbmNlIChOTVIpIHRlY2huaXF1ZXMuDQoxOTk3IChKdWwgNCk6W1NwYWNlXVtNYXJzXSBUaGUgTWFycyBQYXRoZmluZGVyIGVuZHVyZWQgYSAzMC1zZWNvbmQgY29tbXVuaWNhdGlvbnMgYmxhY2tvdXQgYXMgaXQgZW50ZXJlZCBNYXJzJyBhdG1vc3BoZXJlLiBJdCBsYW5kZWQgYXQgQXJlcyBWYWxsaXMsIENocnlzZSBQbGFuaXRpYSwgTWFycyAxOcKwN+KAsjQ44oCzTiAzM8KwMTPigLIxMuKAs1cuIE1hcnMgUGF0aGZpbmRlciAoTUVTVVIgUGF0aGZpbmRlcikgaXMgYW4gQW1lcmljYW4gcm9ib3RpYyBzcGFjZWNyYWZ0IHRoYXQgbGFuZGVkIGEgYmFzZSBzdGF0aW9uIHdpdGggYSByb3ZpbmcgcHJvYmUgb24gTWFycyBpbiAxOTk3LiBJdCBjb25zaXN0ZWQgb2YgYSBsYW5kZXIsIHJlbmFtZWQgdGhlIENhcmwgU2FnYW4gTWVtb3JpYWwgU3RhdGlvbiwgYW5kIGEgbGlnaHR3ZWlnaHQsIDEwLjYga2cgKDIzIGxiKSB3aGVlbGVkIHJvYm90aWMgTWFycyByb3ZlciBuYW1lZCBTb2pvdXJuZXIsIHRoZSBmaXJzdCByb3ZlciB0byBvcGVyYXRlIG91dHNpZGUgdGhlIEVhcnRo4oCTTW9vbiBzeXN0ZW0uDQoxOTk3OltCb29rXSBNaXRjaCBBbGJvbSdzIFR1ZXNkYXlzIHdpdGggTW9ycmllLg0KMTk5NzpbR2FtaW5nXSBHcmFuZCBUaGVmdCBBdXRvIChHVEEpIHJlbGVhc2VkIGJ5IERNQSBEZXNpZ24gKGxhdGVyIFJvY2tzdGFyIE5vcnRoKSBmb3IgUFMxLCBXaW5kb3dzIGFuZCBNUy1ET1M7IEdyYW5kIFRoZWZ0IEF1dG86IFZpY2UgQ2l0eSAoMjAwMik7IEdyYW5kIFRoZWZ0IEF1dG86IFNhbiBBbmRyZWFzICgyMDA0KTsgR3JhbmQgVGhlZnQgQXV0byBJViAoMjAwOCk7IEdyYW5kIFRoZWZ0IEF1dG8gViAoMjAxMyk7IEdyYW5kIFRoZWZ0IEF1dG86IFRoZSBUcmlsb2d5IOKAkyBUaGUgRGVmaW5pdGl2ZSBFZGl0aW9uICgyMDIxKQ0KMTk5NzogVGVra2VuIDMgd2FzIGRlc2lnbmVkIGJ5IEthdHN1aGlybyBIYXJhZGEgKE9zYWthLCBPc2FrYSBQcmVmZWN0dXJlLCBKYXBhbikgb2YgQmFuZGFpIE5hbWNvIEVudGVydGFpbm1lbnQgaGVhZHF1YXJ0ZXJlZCBhdCDFjHRhLCBUb2t5by4NCjE5OTcgKE1hciA2KTogW0dlb1BvbGl0aWNzXSBUaGUgSW5kaWFuIE9jZWFuIFJpbSBBc3NvY2lhdGlvbiwgZm9ybWVybHkga25vd24gYXMgdGhlIEluZGlhbiBPY2VhbiBSaW0gSW5pdGlhdGl2ZSBhbmQgdGhlIEluZGlhbiBPY2VhbiBSaW0gQXNzb2NpYXRpb24gZm9yIFJlZ2lvbmFsIENvb3BlcmF0aW9uLCBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBjb25zaXN0aW5nIG9mIDIzIHN0YXRlcyBib3JkZXJpbmcgdGhlIEluZGlhbiBPY2Vhbi4gVGhlIElPUkEgaXMgYSByZWdpb25hbCBmb3J1bSwgdHJpcGFydGl0ZSBpbiBuYXR1cmUsIGJyaW5naW5nIHRvZ2V0aGVyIHJlcHJlc2VudGF0aXZlcyBvZiBHb3Zlcm5tZW50LCBCdXNpbmVzcyBhbmQgQWNhZGVtaWEsIGZvciBwcm9tb3RpbmcgY28tb3BlcmF0aW9uIGFuZCBjbG9zZXIgaW50ZXJhY3Rpb24gYW1vbmcgdGhlbS4gSXQgaXMgYmFzZWQgb24gdGhlIHByaW5jaXBsZXMgb2YgT3BlbiBSZWdpb25hbGlzbSBmb3Igc3RyZW5ndGhlbmluZyBFY29ub21pYyBDb29wZXJhdGlvbiBwYXJ0aWN1bGFybHkgb24gVHJhZGUgRmFjaWxpdGF0aW9uIGFuZCBJbnZlc3RtZW50LCBQcm9tb3Rpb24gYXMgd2VsbCBhcyBTb2NpYWwgRGV2ZWxvcG1lbnQgb2YgdGhlIHJlZ2lvbi4gVGhlIENvb3JkaW5hdGluZyBTZWNyZXRhcmlhdCBvZiBJT1JBIGlzIGxvY2F0ZWQgYXQgRWJlbmUsIE1hdXJpdGl1cy4NCjE5OTcgKEFwciAyMSk6IEguRC4gRGV2ZSBHb3dkYSByZXNpZ25zLiBJbmRlciBLdW1hciBHdWpyYWwgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NyAoSnVuIDYpOiBbR2VvUG9saXRpY3NdIEJJTVNURUMgZm91bmRlZC4gVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBvZiBzZXZlbiBTb3V0aCBBc2lhbiBhbmQgU291dGhlYXN0IEFzaWFuIG5hdGlvbnMsIGhvdXNpbmcgMS43MyBiaWxsaW9uIHBlb3BsZSBhbmQgaGF2aW5nIGEgY29tYmluZWQgZ3Jvc3MgZG9tZXN0aWMgcHJvZHVjdCBvZiAkMy44IHRyaWxsaW9uLiBUaGUgQklNU1RFQyBtZW1iZXIgc3RhdGVzIOKAkyBCYW5nbGFkZXNoLCBCaHV0YW4sIEluZGlhLCBNeWFubWFyLCBOZXBhbCwgU3JpIExhbmthLCBhbmQgVGhhaWxhbmQg4oCTIGFyZSBhbW9uZyB0aGUgY291bnRyaWVzIGRlcGVuZGVudCBvbiB0aGUgQmF5IG9mIEJlbmdhbC4NCjE5OTcgKEp1biA4KTogRGVzcGl0ZSBhZ2dyZXNzaXZlIGNoZWxhdGlvbiB0aGVyYXB5LCBoZXIgY29uZGl0aW9uIHJhcGlkbHkgZGV0ZXJpb3JhdGVkLiBUaHJlZSB3ZWVrcyBhZnRlciB0aGUgZmlyc3QgbmV1cm9sb2dpY2FsIHN5bXB0b21zIGFwcGVhcmVkLCBXZXR0ZXJoYWhuIGxhcHNlZCBpbnRvIHdoYXQgYXBwZWFyZWQgdG8gYmUgYSB2ZWdldGF0aXZlIHN0YXRlIHB1bmN0dWF0ZWQgYnkgcGVyaW9kcyBvZiBleHRyZW1lIGFnaXRhdGlvbi4gT25lIG9mIGhlciBmb3JtZXIgc3R1ZGVudHMgc2FpZCB0aGF0ICJIZXIgaHVzYmFuZCBzYXcgdGVhcnMgcm9sbGluZyBkb3duIGhlciBmYWNlLiBJIGFza2VkIGlmIHNoZSB3YXMgaW4gcGFpbi4gVGhlIGRvY3RvcnMgc2FpZCBpdCBkaWRuJ3QgYXBwZWFyIHRoYXQgaGVyIGJyYWluIGNvdWxkIGV2ZW4gcmVnaXN0ZXIgcGFpbi4iIFdldHRlcmhhaG4gd2FzIHJlbW92ZWQgZnJvbSBsaWZlIHN1cHBvcnQgYW5kIHByb25vdW5jZWQgZGVhZCBvbiBKdW5lIDgsIDE5OTcsIHRlbiBtb250aHMgYWZ0ZXIgaGVyIGluaXRpYWwgZXhwb3N1cmUuIEluIHJlc3BvbnNlLCB0aGUgT2NjdXBhdGlvbmFsIFNhZmV0eSBhbmQgSGVhbHRoIEFkbWluaXN0cmF0aW9uIHJlY29tbWVuZGVkIHRoYXQgdGhlIHVzZSBvZiBkaW1ldGh5bG1lcmN1cnkgYmUgYXZvaWRlZCB1bmxlc3MgYWJzb2x1dGVseSBuZWNlc3NhcnkgYW5kIG1hbmRhdGVkIHRoZSB1c2Ugb2YgcGxhc3RpYy1sYW1pbmF0ZSBnbG92ZXMgKFNpbHZlclNoaWVsZCkgd2hlbiBoYW5kbGluZyB0aGlzIGNvbXBvdW5kLg0KMTk5NyAoSnVuIDEzKTpbSmFja10gQm9yZGVyDQoxOTk3IChKdW4gMjYpOltCb29rXSAzMllPIEouIEsuIFJvd2xpbmcgcHVibGlzaGVzIGhlciBmaXJzdCBIYXJyeSBQb3R0ZXIgYm9vaywgVGhlIFBoaWxvc29waGVyJ3MgU3RvbmU7IA0KVGhlIENoYW1iZXIgb2YgU2VjcmV0cyAoMiBKdWx5IDE5OTgpLA0KVGhlIFByaXNvbmVyIG9mIEF6a2FiYW4gKDggSnVseSAxOTk5KSwNClRoZSBHb2JsZXQgb2YgRmlyZSAoOCBKdWx5IDIwMDApLA0KVGhlIE9yZGVyIG9mIHRoZSBQaG9lbml4ICgsIDI3IEp1bmUgMjAwMyksDQpUaGUgSGFsZi1CbG9vZCBQcmluY2UgKDE2IEp1bHkgMjAwNSksDQpUaGUgRGVhdGhseSBIYWxsb3dzICgyMSBKdWx5IDIwMDcpDQoxOTk3IChBdWcgMjUpOltTcGFjZV0gQWR2YW5jZWQgQ29tcG9zaXRpb24gRXhwbG9yZXIgaXMgYSBOQVNBIEV4cGxvcmVyIHByb2dyYW0gc2F0ZWxsaXRlIGFuZCBzcGFjZSBleHBsb3JhdGlvbiBtaXNzaW9uIHRvIHN0dWR5IG1hdHRlciBjb21wcmlzaW5nIGVuZXJnZXRpYyBwYXJ0aWNsZXMgZnJvbSB0aGUgc29sYXIgd2luZCwgdGhlIGludGVycGxhbmV0YXJ5IG1lZGl1bSwgYW5kIG90aGVyIHNvdXJjZXMuDQoxOTk3IChTZXAgMTMpOiB0aGUgaW50cm9kdWN0b3J5IGVwaXNvZGUgb2YgU2hha3RpbWFuIHdhcyBhaXJlZCBvbiBEb29yZGFyc2hhbiAoSW5kaWEncyBuYXRpb25hbCB0ZWxldmlzaW9uIG5ldHdvcmspIGZyb20gMjcgU2VwdGVtYmVyIDE5OTcgdG8gMjcgTWFyY2ggMjAwNSwgb24gU3VuZGF5cyBhdCAxMiBub29uIElTVC4gVGhlIHRlbGVjYXN0IHNsb3QsIGhvd2V2ZXIgd2FzIHNoaWZ0ZWQgdG8gOTozMCBhLm0uIGZvciB0aGUgbGFzdCBlcGlzb2Rlcy4gDQoxOTk3IChTZXAgMjcgMTA6MjMgVVRDKTpbU3BhY2VdW01hcnNdIExhc3QgY29udGFjdCB3aXRoIE1hcnMgUGF0aGZpbmRlci4gTWlzc2lvbiBkdXJhdGlvbiAoTGF1bmNoIHRvIGxhc3QgY29udGFjdCk6IDkgbW9udGhzLCAyMyBkYXlzLg0KMTk5NyAoT2N0IDMxKTpbQm9va10gRG9uYWxkIFRydW1wJ3MgVHJ1bXA6IFRoZSBBcnQgb2YgdGhlIENvbWViYWNrOyBUaGUgQW1lcmljYSBXZSBEZXNlcnZlICgyMDAwKTsgVHJ1bXA6IFRoaW5rIExpa2UgYSBCaWxsaW9uYWlyZTogRXZlcnl0aGluZyBZb3UgTmVlZCB0byBLbm93IEFib3V0IFN1Y2Nlc3MsIFJlYWwgRXN0YXRlLCBhbmQgTGlmZSAoMjAwNCk7IFdoeSBXZSBXYW50IFlvdSB0byBCZSBSaWNoICgyMDA2KTsgVHJ1bXA6IFRoZSBCZXN0IFJlYWwgRXN0YXRlIEFkdmljZSBJIEV2ZXIgUmVjZWl2ZWQ6IDEwMCBUb3AgRXhwZXJ0cyBTaGFyZSBUaGVpciBTdHJhdGVnaWVzICgyMDA2LCBOb3YgMSk7IFRoaW5rIEJJRyBhbmQgS2ljayBBc3MgaW4gQnVzaW5lc3MgYW5kIExpZmUgKDIwMDcpOyBUcnVtcCBOZXZlciBHaXZlIFVwOiBIb3cgSSBUdXJuZWQgTXkgQmlnZ2VzdCBDaGFsbGVuZ2VzIGludG8gU3VjY2VzcyAoMjAwOCk7IFRpbWUgdG8gR2V0IFRvdWdoOiBNYWtpbmcgQW1lcmljYSAjMSBBZ2FpbiAoMjAxMSk7IENyaXBwbGVkIEFtZXJpY2E6IEhvdyB0byBNYWtlIEFtZXJpY2EgR3JlYXQgQWdhaW4gKDIwMTUpDQoxOTk3OiBBcnVuZGhhdGkgUm95IGJlY2FtZSB0aGUgZmlyc3QgSW5kaWFuIHRvIHdpbiBNYW4gQm9va2VyIFByaXplIGZvciBoZXIgbm92ZWwgJ1RoZSBHb2Qgb2YgU21hbGwgVGhpbmdzJy4NCjE5OTc6IElJVC1KRUUgd2FzIGNvbmR1Y3RlZCB0d2ljZSBhZnRlciB0aGUgUS1QYXBlciB3YXMgbGVha2VkLg0KMTk5NzogTkFTQSBlc3RpbWF0ZWQgdGhlcmUgd2VyZSBhcHByb3guIDIsNjQ1IGFydGlmaWNpYWwgc2F0ZWxsaXRlIHBheWxvYWRzIG9yYml0dGluZyB0aGUgZWFydGggYW5kIDYsMjE2IHBpZWNlcyBvZiBzcGFjZSBkZWJyaXMgYXMgdHJhY2tlZCBieSB0aGUgR1NGQy4gT3ZlciAxNiwyOTEgcHJldmlvdXNseSBsYXVuY2hlZCBvYmplY3RzIGhhdmUgZGVjYXllZCBpbnRvIHRoZSBFYXJ0aCdzIGF0bW9zcGhlcmUuDQoxOTk3OiBCSEMgRmluYW5jaWFsLCBJbmMuIG9mIFBlbm5zeWx2YW5pYSBtZXJnZWQgaW50byBGSVNWIHRvIGZvcm0gU2VjdXJlZCBUcmFuc2FjdGlvbiBQcm9jZXNzaW5nIFNlcnZpY2VzLg0KMTk5NzpbQm9va10gVGhlIEZvdXIgQWdyZWVtZW50czogQSBQcmFjdGljYWwgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSBpcyBhIHNlbGYtaGVscCBib29rIGJ5IGJlc3RzZWxsaW5nIGF1dGhvciBEb24gTWlndWVsIFJ1aXogd2l0aCBKYW5ldCBNaWxsczsgVGhlIE1hc3Rlcnkgb2YgTG92ZTogQSBQcmFjdGljYWwgR3VpZGUgdG8gdGhlIEFydCBvZiBSZWxhdGlvbnNoaXAgLS1Ub2x0ZWMgV2lzZG9tIEJvb2sgKDE5OTksIE1hciAzMCk7IFRoZSBWb2ljZSBvZiBLbm93bGVkZ2U6IEEgUHJhY3RpY2FsIEd1aWRlIHRvIElubmVyIFBlYWNlICgyMDA0LCBNYXIgMTApOyBUaGUgRmlmdGggQWdyZWVtZW50OiBBIFByYWN0aWNhbCBHdWlkZSB0byBTZWxmLU1hc3RlcnkgKDIwMDkpOyBUaGUgQ2lyY2xlIG9mIEZpcmU6IEluc3BpcmF0aW9uIGFuZCBHdWlkZWQgTWVkaXRhdGlvbnMgZm9yIExpdmluZyBpbiBMb3ZlIGFuZCBIYXBwaW5lc3MgKDIwMTMsIEF1ZyAxKTsgVGhlIE1hc3Rlcnkgb2YgU2VsZjogQSBUb2x0ZWMgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSAoMjAxNiwgTWF5IDYpDQoxOTk3OltCb29rXSBKb24gS3Jha2F1ZXIncyBJbnRvIFRoaW4gQWlyOiBBIFBlcnNvbmFsIEFjY291bnQgb2YgdGhlIE10LiBFdmVyZXN0IERpc2FzdGVyOyBVbmRlciB0aGUgQmFubmVyIG9mIEhlYXZlbiAoMjAwMyBKdWwpDQoxOTk3IChEZWMgMTEpOltFbnZdIFRoZSBLeW90byBQcm90b2NvbCB3YXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgd2hpY2ggZXh0ZW5kZWQgdGhlIDE5OTIgVW5pdGVkIE5hdGlvbnMgRnJhbWV3b3JrIENvbnZlbnRpb24gb24gQ2xpbWF0ZSBDaGFuZ2UgKFVORkNDQykgdGhhdCBjb21taXRzIHN0YXRlIHBhcnRpZXMgdG8gcmVkdWNlIGdyZWVuaG91c2UgZ2FzIGVtaXNzaW9ucywgYmFzZWQgb24gdGhlIHNjaWVudGlmaWMgY29uc2Vuc3VzIHRoYXQgKHBhcnQgb25lKSBnbG9iYWwgd2FybWluZyBpcyBvY2N1cnJpbmcgYW5kIChwYXJ0IHR3bykgdGhhdCBodW1hbi1tYWRlIENPMiBlbWlzc2lvbnMgYXJlIGRyaXZpbmcgaXQuDQoxOTk3OltJbmRpYV1bRWR1Y2F0aW9uXVtDdWx0dXJlXSBFa2xhdnlhIE1vZGVsIFJlc2lkZW50aWFsIFNjaG9vbCBpcyBhIEdvdmVybm1lbnQgb2YgSW5kaWEgc2NoZW1lIGZvciBtb2RlbCByZXNpZGVudGlhbCBzY2hvb2wgZm9yIEluZGlhbiB0cmliYWxzIGFjcm9zcyBJbmRpYS4gSXQgaXMgb25lIG9mIHRoZSBmbGFnc2hpcCBpbnRlcnZlbnRpb25zIG9mIHRoZSBNaW5pc3RyeSBvZiBUcmliYWwgQWZmYWlycywgR292ZXJubWVudCBvZiBJbmRpYSBhbmQgd2FzIGludHJvZHVjZWQgaW4gdGhlIHllYXIgMTk5Ny05OCB0byBlbnN1cmUgdHJpYmFsIHN0dWRlbnRzIGdldCBhY2Nlc3MgdG8gcXVhbGl0eSBlZHVjYXRpb24gaW4gdGhlIHJlbW90ZSB0cmliYWwgYXJlYXMuIEVNUlNzIGFyZSBzZXQgdXAgaW4gU3RhdGVzL1VUcyB3aXRoIGdyYW50cyB1bmRlciBBcnRpY2xlIDI3NSgxKSBvZiB0aGUgQ29uc3RpdHV0aW9uIG9mIEluZGlhLiBBcyBwZXIgdGhlIGJ1ZGdldCAyMDE4LTE5LCBldmVyeSBibG9jayB3aXRoIG1vcmUgdGhhbiA1MCUgU1QgcG9wdWxhdGlvbiBhbmQgYXQgbGVhc3QgMjAsMDAwIHRyaWJhbCBwZXJzb25zLCB3aWxsIGhhdmUgYW4gRWtsYXZ5YSBNb2RlbCBSZXNpZGVudGlhbCBTY2hvb2wgYnkgdGhlIHllYXIgMjAyMi4NCjE5OTc6W1NwYWNlXSBIaXBwYXJjb3MgKDE5ODkgLTE5OTMpLiBJdCB0b29rIDQtOCB5ZWFycyB0byBvcmdhbml6ZSBhbmQgcHVibGlzaCB0aGUgNCB5ZWFycyBzdHVkeSBieSB0aGlzIGV4cGVyaW1lbnQsIHdoaWNoIHBlcm1pdHRlZCB0aGUgZmlyc3QgaGlnaC1wcmVjaXNpb24gbWVhc3VyZW1lbnRzIG9mIHRoZSBpbnRyaW5zaWMgYnJpZ2h0bmVzc2VzIChjb21wYXJlZCB0byB0aGUgbGVzcyBwcmVjaXNlIGFwcGFyZW50IGJyaWdodG5lc3MpLCBwcm9wZXIgbW90aW9ucywgYW5kIHBhcmFsbGF4ZXMgb2Ygc3RhcnMsIGVuYWJsaW5nIGJldHRlciBjYWxjdWxhdGlvbnMgb2YgdGhlaXIgZGlzdGFuY2UgYW5kIHRhbmdlbnRpYWwgdmVsb2NpdHkuIFdoZW4gY29tYmluZWQgd2l0aCByYWRpYWwgdmVsb2NpdHkgbWVhc3VyZW1lbnRzIGZyb20gc3BlY3Ryb3Njb3B5LCBhc3Ryb3BoeXNpY2lzdHMgd2VyZSBhYmxlIHRvIGZpbmFsbHkgbWVhc3VyZSBhbGwgc2l4IHF1YW50aXRpZXMgbmVlZGVkIHRvIGRldGVybWluZSB0aGUgbW90aW9uIG9mIHN0YXJzLiBUaGUgcmVzdWx0aW5nIEhpcHBhcmNvcyBDYXRhbG9ndWUsIGEgaGlnaC1wcmVjaXNpb24gY2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiAxMTgsMjAwIHN0YXJzLCB3YXMgcHVibGlzaGVkIGluIDE5OTcuIFRoZSBsb3dlci1wcmVjaXNpb24gVHljaG8gQ2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiBhIG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBhdCB0aGUgc2FtZSB0aW1lLCB3aGlsZSB0aGUgZW5oYW5jZWQgVHljaG8tMiBDYXRhbG9ndWUgb2YgMi41IG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBpbiAyMDAwLiBIaXBwYXJjb3MnIGZvbGxvdy11cCBtaXNzaW9uLCBHYWlhLCB3YXMgbGF1bmNoZWQgaW4gMjAxMy4NCjE5OTc6W1NwYWNlXVtSZXNlYXJjaF0gU2luY2UgdGhlIDE5OTcgcHJvcG9zYWwgb2YgdGhlIEFkUy9DRlQgKEFudGktZGUgU2l0dGVyL0NvbmZvcm1hbCBGaWVsZCBUaGVvcnkpIGNvcnJlc3BvbmRlbmNlLCB0aGUgcHJlZG9taW5hbnQgYmVsaWVmIGFtb25nIHBoeXNpY2lzdHMgaXMgdGhhdCBpbmZvcm1hdGlvbiBpcyBpbmRlZWQgcHJlc2VydmVkIGluIGJsYWNrIGhvbGUgZXZhcG9yYXRpb24uIA0KMTk5NzpbU3BhY2VdW1Jlc2VhcmNoXSBBIHdpZGVseSBwdWJsaWNpemVkIGJldCBtYWRlIGluIDE5OTcgYmV0d2VlbiBKb2huIFByZXNraWxsIG9uIHRoZSBvbmUgaGFuZCB3aXRoIEhhd2tpbmcgYW5kIEtpcCBUaG9ybmUgb24gdGhlIG90aGVyIHRoYXQgaW5mb3JtYXRpb24gd2FzIG5vdCBsb3N0IGluIGJsYWNrIGhvbGVzLiBUaGUgc2NpZW50aWZpYyBkZWJhdGUgb24gdGhlIHBhcmFkb3ggd2FzIGRlc2NyaWJlZCBpbiBhIHBvcHVsYXIgYm9vayBwdWJsaXNoZWQgaW4gMjAwOCBieSBMZW9uYXJkIFN1c3NraW5kIGNhbGxlZCBUaGUgQmxhY2sgSG9sZSBXYXIuIChUaGUgYm9vayBjYXJlZnVsbHkgbm90ZXMgdGhhdCB0aGUgJ3dhcicgd2FzIHB1cmVseSBhIHNjaWVudGlmaWMgb25lLCBhbmQgdGhhdCBhdCBhIHBlcnNvbmFsIGxldmVsLCB0aGUgcGFydGljaXBhbnRzIHJlbWFpbmVkIGZyaWVuZHMuKSBUaGUgYm9vayBzdGF0ZXMgdGhhdCBIYXdraW5nIHdhcyBldmVudHVhbGx5IHBlcnN1YWRlZCB0aGF0IGJsYWNrLWhvbGUgZXZhcG9yYXRpb24gd2FzIHVuaXRhcnkgYnkgdGhlIGhvbG9ncmFwaGljIHByaW5jaXBsZSwgd2hpY2ggd2FzIGZpcnN0IHByb3Bvc2VkIGJ5ICd0IEhvb2Z0LCBmdXJ0aGVyIGRldmVsb3BlZCBieSBTdXNza2luZCBhbmQgbGF0ZXIgZ2l2ZW4gYSBwcmVjaXNlIHN0cmluZyB0aGVvcnkgaW50ZXJwcmV0YXRpb24gYnkgdGhlIEFkUy9DRlQgY29ycmVzcG9uZGVuY2UuIEluIDIwMDQsIEhhd2tpbmcgYWxzbyBjb25jZWRlZCB0aGUgMTk5NyBiZXQsIHBheWluZyBQcmVza2lsbCB3aXRoIGEgYmFzZWJhbGwgZW5jeWNsb3BlZGlhICJmcm9tIHdoaWNoIGluZm9ybWF0aW9uIGNhbiBiZSByZXRyaWV2ZWQgYXQgd2lsbCIgYWx0aG91Z2ggVGhvcm5lIHJlZnVzZWQgdG8gY29uY2VkZS4NCjE5OTc6W0VhcnRoXVtQaHlzaWNzXVtSZXNlYXJjaF0gdGhlcmUgd2VyZSB0d28gbGFyZ2UgZWFydGhxdWFrZXMgb2ZmIHRoZSBjb2FzdCBvZiBDaGlsZS4gVGhlIG1hZ25pdHVkZSBvZiB0aGUgZmlyc3QsIGluIEp1bHksIHdhcyBlc3RpbWF0ZWQgYXQgTXfigK82LjksIGJ1dCB3YXMgYmFyZWx5IGZlbHQsIGFuZCBvbmx5IGluIHRocmVlIHBsYWNlcy4gSW4gT2N0b2JlciBhIE134oCvNy4xIHF1YWtlIGluIG5lYXJseSB0aGUgc2FtZSBsb2NhdGlvbiwgYnV0IHR3aWNlIGFzIGRlZXAgYW5kIG9uIGEgZGlmZmVyZW50IGtpbmQgb2YgZmF1bHQsIHdhcyBmZWx0IG92ZXIgYSBicm9hZCBhcmVhLCBpbmp1cmVkIG92ZXIgMzAwIHBlb3BsZSwgYW5kIGRlc3Ryb3llZCBvciBzZXJpb3VzbHkgZGFtYWdlZCBvdmVyIDEwLDAwMCBob3VzZXMuIEFzIGNhbiBiZSBzZWVuIGluIHRoZSB0YWJsZSBiZWxvdywgdGhpcyBkaXNwYXJpdHkgb2YgZGFtYWdlIGRvbmUgaXMgbm90IHJlZmxlY3RlZCBpbiBlaXRoZXIgdGhlIG1vbWVudCBtYWduaXR1ZGUgKE134oCvKSBub3IgdGhlIHN1cmZhY2Utd2F2ZSBtYWduaXR1ZGUgKE1z4oCvKS4gT25seSB3aGVuIHRoZSBtYWduaXR1ZGUgaXMgbWVhc3VyZWQgb24gdGhlIGJhc2lzIG9mIHRoZSBib2R5LXdhdmUgKG1i4oCvKSBvciB0aGUgc2Vpc21pYyBlbmVyZ3kgKE1l4oCvKSBpcyB0aGVyZSBhIGRpZmZlcmVuY2UgY29tcGFyYWJsZSB0byB0aGUgZGlmZmVyZW5jZSBpbiBkYW1hZ2UuIChhcyByZXNlYXJjaGVkIGJ5IENob3ksIEJvYXR3cmlnaHQgJiBLaXJieSAyMDAxLCBwLiAxMy4pLiBNdyA2Ljkgd2FzIGFjdHVhbGx5IE1lIDYuMSwgYW4gaW50ZXJwbGF0ZS10aHJ1c3QgdHlwZSBvZiBmYXVsdCwgd2hpbGUgTXcgNy4xIHdhcyBhY3R1YWxseSBhIDcuNSBNZSBpbnRyYXNsYWItbm9ybWFsIHR5cGUgb2YgZmF1bHQuDQoxOTk3OltSZXNlYXJjaF0gRHVyaW5nIHN1cnZleXMgY2FycmllZCBvdXQgYmV0d2VlbiAxOTk3IGFuZCAyMDAxLCBhIHNwb3Qgd2FzIGZvdW5kIGFsb25nIHRoZSBNYXJpYW5hIFRyZW5jaCB0aGF0IGhhZCBhIGRlcHRoIHNpbWlsYXIgdG8gdGhlIENoYWxsZW5nZXIgRGVlcCwgcG9zc2libHkgZXZlbiBkZWVwZXIuIEl0IHdhcyBkaXNjb3ZlcmVkIHdoaWxlIHNjaWVudGlzdHMgZnJvbSB0aGUgSGF3YWlpIEluc3RpdHV0ZSBvZiBHZW9waHlzaWNzIGFuZCBQbGFuZXRvbG9neSB3ZXJlIGNvbXBsZXRpbmcgYSBzdXJ2ZXkgYXJvdW5kIEd1YW07IHRoZXkgdXNlZCBhIHNvbmFyIG1hcHBpbmcgc3lzdGVtIHRvd2VkIGJlaGluZCB0aGUgcmVzZWFyY2ggc2hpcCB0byBjb25kdWN0IHRoZSBzdXJ2ZXkuIFRoaXMgbmV3IHNwb3Qgd2FzIG5hbWVkIHRoZSBITVJHIChIYXdhaWkgTWFwcGluZyBSZXNlYXJjaCBHcm91cCkgRGVlcCwgYWZ0ZXIgdGhlIGdyb3VwIG9mIHNjaWVudGlzdHMgd2hvIGRpc2NvdmVyZWQgaXQuDQoxOTk3OltTcGFjZVhdIEEgcmVzb2x2ZWQgY2lyY3Vtc3RlbGxhciBkaXNrIHdhcyBmaXJzdCBpZGVudGlmaWVkIGluIDE5OTcgd2l0aCB0aGUgT3dlbnMgVmFsbGV5IFJhZGlvIE9ic2VydmF0b3J5LiBUaGUgc2VtaS1tYWpvciBheGlzIHdhcyBpbml0aWFsbHkgZXN0aW1hdGVkIHRvIGJlIDExMCBBVS4gSEQgMTYzMjk2IGFuZCBzdXJyb3VuZGluZ3MgQ3JlZGl0OiBFU08vRGlnaXRpemVkIFNreSBTdXJ2ZXkgMjsgQWNrbm93bGVkZ2VtZW50OiBEYXZpZGUgRGUgTWFydGluIE9ic2VydmF0aW9uIGRhdGEgRXBvY2ggSjIwMDAgICAgICBFcXVpbm94IEoyMDAwIENvbnN0ZWxsYXRpb24JU2FnaXR0YXJpdXMgUmlnaHQgYXNjZW5zaW9uCTE3aCA1Nm0gMjEuMjlzIERlY2xpbmF0aW9uCeKIkjIxwrAgNTfigLIgMjEuODfigLMgQXBwYXJlbnQgbWFnbml0dWRlIChWKQk2Ljg1OyBDaGFyYWN0ZXJpc3RpY3MgRXZvbHV0aW9uYXJ5IHN0YWdlCUhlcmJpZyBBZSBzdGFyIFNwZWN0cmFsIHR5cGUJQTNWYWVrQTFtQTE7IEFzdHJvbWV0cnkgUmFkaWFsIHZlbG9jaXR5IChSdikJLTQuMDAgwrEzLjNbM10ga20vcyBQcm9wZXIgbW90aW9uICjOvCkJUkE6IC03LjU4NiDCsTAuMDQxIG1hcy95cjsgRGVjLjogLTM5LjQ1OCDCsTAuMDI5IG1hcy95cls0XSBQYXJhbGxheCAoz4ApCTkuOTA0M8KxMC4wNDA4IG1hc1s0XSBEaXN0YW5jZQkzMjkgwrEgMSBseSAoMTAxLjAgwrEgMC40IHBjKSBEZXRhaWxzOyBNYXNzCTEuOTXCsTAuMDcgTeKYiSBSYWRpdXMJMS44N8KxMC4wNSBS4piJIEx1bWlub3NpdHkJMjAuNCszLjYg4oiSMy4wIEzimIkgU3VyZmFjZSBncmF2aXR5IChsb2cgZykJNC4xMMKxMC4xMCBjZ3MgVGVtcGVyYXR1cmUJOTAwMMKxMjUwIEsgQWdlCTYuMDMrMC4yOCDiiJIwLjI3IE15ciBPdGhlciBkZXNpZ25hdGlvbnMgQkQtMjEgNDc3OSwgQ1BELTIxIDY1MDgsIEVNKiBNV0MgMjc1LCBISVAgODc4MTksIElSQVMgMTc1MzMtMjE1NiwgMk1BU1MgSjE3NTYyMTI4LTIxNTcyMTgsIFBEUyA0NzMsIFRZQyA2MjYyLTIxMzEtMSwgRGF0YWJhc2UgcmVmZXJlbmNlcyBTSU1CQUQNCjE5OTc6W1NwYWNlWF0gMTAxOTkgQ2hhcmlrbG8gaXMgYSByaW5nZWQgYXN0ZXJvaWQgb3IgY2VudGF1ciBpbiB0aGUgb3V0ZXIgU29sYXIgU3lzdGVtLiBJdCBpcyB0aGUgbGFyZ2VzdCBrbm93biBjZW50YXVyLCB3aXRoIGEgZGlhbWV0ZXIgb2YgYWJvdXQgMjUwIGttLiBJdCBvcmJpdHMgdGhlIFN1biBiZXR3ZWVuIFNhdHVybiBhbmQgVXJhbnVzIHdpdGggYW4gb3JiaXRhbCBwZXJpb2Qgb2YgNjIuNSB5ZWFycy4gV2lraXBlZGlhIE9yYml0YWwgcGVyaW9kOiA2MyB5ZWFycyBSYWRpdXM6IDE1MSBrbSBEaXNjb3ZlcmVkOiAxNSBGZWJydWFyeSAxOTk3IERpbWVuc2lvbnM6ICgyODcuNisyLjg7IOKIkjMuMCkgw5cgKDI3MC40KzIuODsg4oiSNS42KSDDlyAoMTk4LjIrMTAuODsg4oiSNS40KSBrbTogMTEgRGlzY292ZXJlcjogSmFtZXMgVi4gU2NvdHRpIFNwZWN0cmFsIHR5cGU6IEQtdHlwZSBhc3Rlcm9pZCBBcGhlbGlvbjogMTguNDIwIEFVDQoxOTk3OltTcGFjZVhdIFRoZSBHcmVhdCBEYXlsaWdodCBGaXJlYmFsbCAtIFRoZSBhdG1vc3BoZXJpYyBwYXNzIG1vZGlmaWVkIHRoZSBvYmplY3QncyBtYXNzIGFuZCBvcmJpdCBhcm91bmQgdGhlIFN1bi4gQSAxOTk0IHN0dWR5IGZvdW5kIHRoYXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgaW4gYW4gRWFydGgtY3Jvc3Npbmcgb3JiaXQgYW5kIHByZWRpY3RlZCB0aGF0IGl0IHdvdWxkIHBhc3MgY2xvc2UgdG8gRWFydGggYWdhaW4gaW4gQXVndXN0IDE5OTcuIEhvd2V2ZXIsIHRoZSBvYmplY3QgaGFzIG5vdCBiZWVuIG9ic2VydmVkIGFnYWluIGFuZCBzbyBpdHMgcG9zdC1lbmNvdW50ZXIgb3JiaXQgcmVtYWlucyB1bmtub3duLg0KMTk5NzpOYWZpc2EgSm9zZXBoIHdhcyB0aGUgeW91bmdlc3QgTWlzcyBJbmRpYSB3aW5uZXIgYXQgYWdlIDE5LCB3aW5uaW5nIHRoZSB0aXRsZSBpbiAxOTk3LiBTaGUgbGF0ZXIgYmVjYW1lIGEgbW9kZWwgYW5kIHRlbGV2aXNpb24gcGVyc29uYWxpdHkuIFdoaWxlIG90aGVyIHdpbm5lcnMgbGlrZSBNZWVuYWtzaGkgU2VzaGFkcmkgd2VyZSBhbHNvIDE3IHdoZW4gdGhleSB3b24gaW4gMTk4MSwgSm9zZXBoIGlzIG9mdGVuIGNpdGVkIGZvciBoZXIgZWFybHkgd2luIGF0IDE5LCB3aGljaCB3YXMgdGhlbiBhIHlvdW5nZXIgYWdlIHRoYW4gaXMgdHlwaWNhbGx5IHNlZW4gaW4gdGhlIGNvbXBldGl0aW9uLiANCjE5OTc6W3NwYWNlXVt0ZWNoXSBUaGUgZmluYWwgQmxvY2sgSUlBIHdhcyBpbiBOb3YgMTk5Nywgd2hpbGUgQmxvY2sgSUlScyBiZWdhbiByZXBsYWNpbmcgdGhlbSBzaG9ydGx5IGFmdGVyLCBsYXN0aW5nIHVudGlsIDIwMDQuIEJsb2NrIElJUiAoUmVwbGVuaXNobWVudCkgbGF1bmNoZXMgZm9sbG93ZWQgZnJvbSAxOTk3IHRvIDIwMDQsIHdpdGggdGhlIGZpcnN0IGxhdW5jaCBpbiBKYW51YXJ5IDE5OTcuIA0KDQoxOTk4OltTcGFjZVhdIFRoZSBwcmltYXJ5IGNvbnN0cnVjdGlvbiBwaGFzZSBvZiB0aGUgSW50ZXJuYXRpb25hbCBTcGFjZSBTdGF0aW9uIChJU1MpIHRvb2sgYXBwcm94aW1hdGVseSAxMyB5ZWFycywgZnJvbSAxOTk4IHRvIDIwMTEsIHdpdGggdGhlIGZpcnN0IG1vZHVsZSBsYXVuY2hpbmcgaW4gTm92ZW1iZXIgMTk5OCBhbmQgSVNTIEFzc2VtYmx5IENvbXBsZXRlIGRlY2xhcmVkIGluIE1heSAyMDExLiBIb3dldmVyLCBhc3NlbWJseSB3YXMgYSBjb250aW51b3VzLCBtdWx0aS1zdGFnZSBwcm9jZXNzIGludm9sdmluZyBtb3JlIHRoYW4gMzAgbWlzc2lvbnMsIG51bWVyb3VzIHNwYWNld2Fsa3MsIGFuZCByb2JvdGljIGFzc2lzdGFuY2UgdG8gYnVpbGQgdGhlIHN0YXRpb24gcGllY2UgYnkgcGllY2UgaW4gb3JiaXQuIEV2ZW4gYWZ0ZXIgMjAxMSwgdGhlIElTUyBjb250aW51ZWQgdG8gZXZvbHZlIHdpdGggb25nb2luZyBhZGRpdGlvbnMgYW5kIHVwZ3JhZGVzLg0KMTk5ODpbUmVzZWFyY2hdW1NwYWNlXSBTcHJpbmcsIDE5OTg6IGEgbWljcm9mb3NzaWwgdGhhdCB3YXMgZm91bmQgaW4gYSBtZXRlb3JpdGUgYW5kIHBob3RvZ3JhcGhlZCBpbiAxOTY2LCB3YXMgcmVjb2duaXplZCBieSBhIFJ1c3NpYW4gbWljcm9iaW9sb2dpc3QgYXMgYSBtYWduZXRvdGFjdGljIGJhY3Rlcml1bS4gQnkgRmFsbCwgMTk5ODogTkFTQSdzIHB1YmxpYyBwb3NpdGlvbiBvbiBsaWZlLWZyb20tc3BhY2Ugc2hpZnRlZCBkcmFtYXRpY2FsbHkuDQoxOTk4OiBBcyBhIHJlc2VhcmNoIHByb2plY3QgYXQgU3RhbmZvcmQgVW5pdmVyc2l0eSwgU2VyZ2V5IEJyaW4gYW5kIExhcnJ5IFBhZ2UgY3JlYXRlZCBhIHNlYXJjaCBlbmdpbmUgdGhhdCBsaXN0ZWQgcmVzdWx0cyBhY2NvcmRpbmcgdG8gdGhlIHBvcHVsYXJpdHkgb2YgdGhlIHBhZ2VzLCBhZnRlciBjb25jbHVkaW5nIHRoYXQgdGhlIG1vc3QgcG9wdWxhciByZXN1bHQgd291bGQgb2Z0ZW4gYmUgdGhlIG1vc3QgdXNlZnVsLiBBZnRlciByYWlzaW5nICQxIG1pbGxpb24gZnJvbSBmYW1pbHksIGZyaWVuZHMgYW5kIG90aGVyIGludmVzdG9ycywgdGhlIHBhaXIgbGF1bmNoZWQgdGhlIGNvbXBhbnkgaW4gMTk5OC4gR29vZ2xlIGhhcyBzaW5jZSBiZWNvbWUgdGhlIHdvcmxk4oCZcyBtb3N0IHBvcHVsYXIgc2VhcmNoIGVuZ2luZSwgcmVjZWl2aW5nIG1vcmUgdGhhbiAyMDAgbWlsbGlvbiBxdWVyaWVzIGVhY2ggZGF5Lg0KMTk5OCAoTm92IDIwKTogDQoxOTk4IChBcHIgMjcpOiBSUkIgZm91bmRlZCBhcyBSYWlsd2F5IFJlY3J1aXRtZW50IENvbnRyb2wgQm9hcmQgaXMgYSBnb3Zlcm5tZW50IG9yZ2FuaXNhdGlvbiBpbiBJbmRpYS4gSXQgd2FzIHNldCB1cCBpbiAxOTk4IGluIHRoZSBNaW5pc3RyeSBvZiBSYWlsd2F5cyAoUmFpbHdheSBCb2FyZCksIE5ldyBEZWxoaS5JbiAxOTQ1LCB0aGUgU2VydmljZXMgQ29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgYXQgQm9tYmF5LCBDYWxjdXR0YSwgTWFkcmFzIGFuZCBMdWNrbm93LiBJbiAxOTgzLCB0byBjYXRlciB0byB0aGUgbmVlZHMgb2YgYXJlYXMgd2hpY2ggd2VyZSBiZWluZyBuZWdsZWN0ZWQgZHVlIHRvIGxvY2F0aW9ucyBvZiB0aGUgZXhpc3RpbmcgY29tbWlzc2lvbnMsIHNldmVuIG1vcmUgY29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgdml6LCBhdCBBaG1lZGFiYWQsIEFqbWVyLCBCaG9wYWwsIEJodXZuZXNod2FyLCBDaGFuZGlnYXJoLCBKYW1tdSBhbmQgU3JpbmFnYXIgd2l0aCBzaXR0aW5nIGF0IExlaCBhbmQgVHJpdmVuZHJ1bS4gSW4gMTk4NCB0d28gbW9yZSBzZXJ2aWNlIGNvbW1pc3Npb25zIHdlcmUgc2V0IHVwIGF0IE1hbGRhIGFuZCBHb3Jha2hwdXIuDQoxOTk4IChNYXkgMTkpOiBBdGFsIEJpaGFyaSBWYWpwYXllZSBiZWNvbWVzIFBNIG9mIEluZGlhIGZvciB0aGUgc2Vjb25kIHRpbWUsIG5vdyBmb3IgNiB5ZWFycyB0aWxsIE1heSAyMiwgMjAwNC4gDQoxOTk4IChNYXkgMjggMTU6MTVQU1QpOiBDaGFnYWktSSBpcyB0aGUgY29kZSBuYW1lIG9mIGZpdmUgc2ltdWx0YW5lb3VzIHVuZGVyZ3JvdW5kIG51Y2xlYXIgdGVzdHMgY29uZHVjdGVkIGJ5IFBha2lzdGFuLiBUaGUgdGVzdHMgd2VyZSBwZXJmb3JtZWQgYXQgUmFzIEtvaCBIaWxscyBpbiB0aGUgQ2hhZ2FpIERpc3RyaWN0IG9mIEJhbG9jaGlzdGFuIFByb3ZpbmNlLiBDaGFnYWktSSB3YXMgUGFraXN0YW4ncyBmaXJzdCBwdWJsaWMgdGVzdCBvZiBudWNsZWFyIHdlYXBvbnMuIFBha2lzdGFuJ3MgZmlzc2lsZSBtYXRlcmlhbCBwcm9kdWN0aW9uIHRha2VzIHBsYWNlIGF0IE5pbG9yZSwgS2FodXRhLCBhbmQgS2h1c2hhYiBOdWNsZWFyIENvbXBsZXgsIHdoZXJlIHdlYXBvbnMtZ3JhZGUgcGx1dG9uaXVtIGlzIHJlZmluZWQuDQoxOTk4OiBBZnRlciBjb21wbGV0aW5nIGhpcyBYIHN0YW5kYXJkIGV4YW1pbmF0aW9ucywgUmFuYmlyIEthcG9vciwgYWdlZCAxNiwgd29ya2VkIGFzIGFuIGFzc2lzdGFudCBkaXJlY3RvciB0byBoaXMgZmF0aGVyIG9uIHRoZSBmaWxtIEFhIEFiIExhdXQgQ2hhbGVuICgxOTk5KSwgZHVyaW5nIHdoaWNoIGhlIGRldmVsb3BlZCBhIGNsb3NlciBib25kIHdpdGggaGltLg0KMTk4ODogTmV0d29ya2VkIERhdGEgUHJvY2Vzc2luZyBDb3IsIElvd2EgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBJbnN1cmFuY2UgZGl2aXNpb24uDQoxOTk4OltCb29rXSBSb2JlcnQgR3JlZW5lJ3MgVGhlIDQ4IExhd3Mgb2YgUG93ZXI7IFRoZSAzMyBTdHJhdGVnaWVzIG9mIFdhciAoMjAwNik7IE1hc3RlcnkgKDIwMTIsIE5vdiAxMyk7IFRoZSBMYXdzIG9mIEh1bWFuIE5hdHVyZSAoMjAxOCwgT2N0IDE2KQ0KMTk5ODpbU3BhY2VdW1Jlc2VhcmNoXVtFeHRyZW1lXSBUaGVuIGNhbWUgMTk5OCBhbmQgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgKEhTVCkgb2JzZXJ2YXRpb25zIG9mIHZlcnkgZGlzdGFudCBzdXBlcm5vdmFlIHRoYXQgc2hvd2VkIHRoYXQsIGEgbG9uZyB0aW1lIGFnbywgdGhlIHVuaXZlcnNlIHdhcyBhY3R1YWxseSBleHBhbmRpbmcgbW9yZSBzbG93bHkgdGhhbiBpdCBpcyB0b2RheS4gU28gdGhlIGV4cGFuc2lvbiBvZiB0aGUgdW5pdmVyc2UgaGFzIG5vdCBiZWVuIHNsb3dpbmcgZHVlIHRvIGdyYXZpdHksIGFzIGV2ZXJ5b25lIHRob3VnaHQsIGl0IGhhcyBiZWVuIGFjY2VsZXJhdGluZy4NCjE5OTg6W0NyaW1lXVtJbmRpYV0gQW5lZXMgYXJyZXN0ZWQgaW4gVUFFIG9uIGNoYXJnZXMgb2YgaGF2aW5nIG11cmRlcmVkIGEgZm9ybWVyIGFzc29jaWF0ZSBhbmQgdGhlbiByaXZhbCwgSXJmYW4gR29nYSwgaW4gRHViYWksIGJ1dCB3YXMgZnJlZWQgYWZ0ZXIgdHdvIGRheXMgZm9yICdsYWNrIG9mIGV2aWRlbmNlJy4NCjE5OTg6W0NvbXB1dGluZ11bUXVhbnR1bV0gUmVzZWFyY2hlcnMgYXQgSUJNLCBPeGZvcmQsIEJlcmtlbGV5LCBTdGFuZm9yZCwgYW5kIE1JVCBwcm9kdWNlZCBhIDItcXViaXQgY29tcHV0aW5nIHN5c3RlbS4NCjE5OTg6W3d3d10gV2lyZXNoYXJrIGlzIGEgZnJlZSBhbmQgb3Blbi1zb3VyY2UgcGFja2V0IGFuYWx5emVyLiBJdCBpcyB1c2VkIGZvciBuZXR3b3JrIHRyb3VibGVzaG9vdGluZywgYW5hbHlzaXMsIHNvZnR3YXJlIGFuZCBjb21tdW5pY2F0aW9ucyBwcm90b2NvbCBkZXZlbG9wbWVudCwgYW5kIGVkdWNhdGlvbi4gT3JpZ2luYWxseSBuYW1lZCBFdGhlcmVhbCwgdGhlIHByb2plY3Qgd2FzIHJlbmFtZWQgV2lyZXNoYXJrIGluIE1heSAyMDA2IGR1ZSB0byB0cmFkZW1hcmsgaXNzdWVzLg0KMTk5ODpbVVNdW0Vjb25vbXldRGF2aWQgUm9ja2VmZWxsZXIgU3IuIHdhcyBhd2FyZGVkIHRoZSBQcmVzaWRlbnRpYWwgTWVkYWwgb2YgRnJlZWRvbSBieSBQcmVzaWRlbnQgQmlsbCBDbGludG9uIGZvciBoaXMgd29yayBvbiBJbnRlcm5hdGlvbmFsIEV4ZWN1dGl2ZSBTZXJ2aWNlIENvcnBzLg0KMTk5ODpbRGVmXVtBdmlhdGlvbl0gVGhlIExvY2toZWVkIFNSLTcxIEJsYWNrYmlyZCBmbGV3IHNvIGhpZ2ggYW5kIHNvIGZhc3QgdGhhdCB0aGUgY3JldyBuZWVkZWQgcHJlc3N1cml6ZWQgc3BhY2Ugc3VpdHMgd2hlbiBmbHlpbmcgaXQuIEFuZCBpdCBpcyBzYWlkIHRoYXQgYXQgdGhlIG1heGltdW0gYWx0aXR1ZGUgb2YgaXQgaXQgd2FzIHBvc3NpYmxlIHRvIHNlZSB0aGUgY3VydmF0dXJlIG9mIHRoZSBlYXJ0aCwgd2hpY2ggcmVmZXJzIHRvIHRoaXMgcXVvdGUgYnkgQ29sb25lbCBBbGlzb246IOKAnE9uIGEgY2xlYXIgZGF5IHlvdSBjYW4gc2VlIGZvcmV2ZXLigKbigJ0uIFRoZSBzZXJ2aWNlIGNlaWxpbmcgb2YgODUsMDAwIGZlZXQgKDI1LDkwMG0pIG1lYW50IHRoYXQgaXQgd2FzIGFuIGV4Y2VsbGVudCBleHBlcmltZW50YWwgdW5pdCBmb3Igc3BhY2UgdHJhdmVscy4gVGhhdCwgY29tYmluZWQgd2l0aCB0aGUgZ3JlYXQgc3BlZWRzIG9mIGl0IHdhcyB0d28gb2YgdGhlIHJlYXNvbnMgd2h5IE5BU0EgZGVjaWRlZCB0byB0YWtlIG92ZXIgdGhlIGxhc3QgdHdvIEJsYWNrYmlyZHMgYWZ0ZXIgaXRzIHJldGlyZW1lbnQgZnJvbSB0aGUgQWlyIEZvcmNlIGluIDE5OTguIFRoaXMgbWVhbnMgdGhhdCB0aGUgd29ybGTigJlzIGZhc3Rlc3QgYWlyY3JhZnQgd2FzIGluIHNlcnZpY2UgZnJvbSAxOTY2IHVudGlsIE5BU0EgcmV0aXJlZCBpdHMgdHdvIHVuaXRzIGluIDE5OTksIGFuZCBtb3N0IG9mIHRoZSByZW1haW5pbmcgQmxhY2tiaXJkcyBhcmUgdG9kYXkgc3RhdGlvbmVkIGF0IG11c2V1bXMgb3IgbWlsaXRhcnkgYmFzZXMgYWNyb3NzIHRoZSBVUy4NCjE5OTg6SW4gMTk5OCwgR2F1dGFtIEFkYW5pLCBhbG9uZyB3aXRoIGhpcyBhc3NvY2lhdGUgU2hhbnRpbGFsIFBhdGVsLCB3YXMga2lkbmFwcGVkIGZvciByYW5zb20gaW4gQWhtZWRhYmFkLCBJbmRpYS4gVGhleSB3ZXJlIGFiZHVjdGVkIGF0IGd1bnBvaW50IGFmdGVyIGxlYXZpbmcgdGhlIEthcm5hdmF0aSBDbHViIGluIGEgY2FyLiBUaGUga2lkbmFwcGVycywgYWxsZWdlZGx5IGdhbmdzdGVycyBGYXpsdSBSZWhtYW4gYW5kIEJob2dpbGFsIERhcmppLCByZXBvcnRlZGx5IGRlbWFuZGVkIGEgcmFuc29tIG9mICQxLjUtMiBtaWxsaW9uLiBCb3RoIEFkYW5pIGFuZCBQYXRlbCB3ZXJlIHJlbGVhc2VkIGEgZGF5IGxhdGVyLCBidXQgaXQncyB1bmNsZWFyIGlmIHRoZSByYW5zb20gd2FzIHBhaWQuIA0KVGhlIGtpZG5hcHBpbmcgaW5jaWRlbnQgaGFwcGVuZWQgaW4gdGhlIG1pZC0xOTkwcywgYXJvdW5kIHRoZSB0aW1lIEFkYW5pJ3MgYnVzaW5lc3Mgc3VjY2Vzc2VzIHN0YXJ0ZWQgYXR0cmFjdGluZyB1bndhbnRlZCBhdHRlbnRpb24uIFRoZSBraWRuYXBwaW5nIHdhcyBhbGxlZ2VkbHkgY2FycmllZCBvdXQgYnkgRmF6bHUgUmVobWFuIGFuZCBCaG9naWxhbCBEYXJqaSwgYWxzbyBrbm93biBhcyAiTWFtYSIuIFRoZXkgd2VyZSBsYXRlciBhY3F1aXR0ZWQgZHVlIHRvIGxhY2sgb2YgZXZpZGVuY2UuIA0KVGhlIGFiZHVjdGlvbiBpcyBqdXN0IG9uZSBvZiB0aGUgY2hhbGxlbmdlcyBBZGFuaSBoYXMgZmFjZWQuIEhlIHdhcyBhbHNvIGNhdWdodCBpbiB0aGUgMjYvMTEgTXVtYmFpIHRlcnJvciBhdHRhY2tzIGF0IHRoZSBUYWogSG90ZWwuIE1vcmUgcmVjZW50bHksIGhlIGhhcyBmYWNlZCBhY2N1c2F0aW9ucyBvZiBicmliZXJ5IGFuZCBzZWN1cml0aWVzIGZyYXVkLiANCkFkYW5pIGFuZCBvdGhlcnMgd2VyZSBlc2NvcnRlZCBieSBzdGFmZiB0byB0aGUga2l0Y2hlbiBhbmQgdGhlbiB0aGUgYmFzZW1lbnQuIFRoZXkgc3BlbnQgdGhlIGVudGlyZSBuaWdodCBpbiBhIGhhbGwgd2FpdGluZyBmb3IgcmVzY3VlLiBBZGFuaSBsYXRlciB0b2xkIG5ld3MgY2hhbm5lbHMgdGhhdCBoZSBzYXcg4oCcZGVhdGggYXQgYSBkaXN0YW5jZSBvZiBqdXN0IDE1IGZlZXQu4oCdIEhlIHdhcyByZXNjdWVkIHRoZSBuZXh0IG1vcm5pbmcgYnkgc2VjdXJpdHkgZm9yY2VzLg0KMTk5ODpbRW52XVtEaXNhc3Rlcl0gRWFzdGVybiBJbmRpYSwgMTk5OCBCYW5nbGFkZXNoIGZsb29kOyA0ayBkZWF0aHMNCjE5OTg6W1dob11bUmVzZWFyY2hdW0NvbXB1dGluZ11bVGVjaF1bQ3VsdHVyZV0gSW50ZXJuZXQgRG93bmxvYWQgTWFuYWdlciAoSURNKSB3YXMgZGV2ZWxvcGVkIGJ5IFRvbmVjIEluYy4sIGFuIEFtZXJpY2FuIGNvbXBhbnkgdGhhdCBzdGFydGVkIHRoZSBwcm9qZWN0IGluIDE5OTggYW5kIHJlbGVhc2VkIHRoZSBzb2Z0d2FyZSBpbiAyMDAxLiBUb25lYyBJbmMuIGZvY3VzZXMgb24gbmV0d29yayBwcm9ncmFtbWluZyBhbmQgY3JlYXRlZCBJRE0gdG8gc3BlZWQgdXAgZG93bmxvYWRzIGJ5IHVzaW5nIGR5bmFtaWMgZmlsZSBzZWdtZW50YXRpb24sIGFjY2VsZXJhdGluZyBzcGVlZHMgYnkgdXAgdG8gOCB0aW1lcy4gDQoNCjE5OTk6NCBKYW51YXJ5IDE5OTk6IE5BU0Egb2ZmaWNpYWxseSByZWNvZ25pemVkIHRoZSBwb3NzaWJpbGl0eSB0aGF0IGxpZmUgb24gRWFydGggY29tZXMgZnJvbSBzcGFjZS4NCjE5IE1hcmNoIDE5OTk6IE5BU0Egc2NpZW50aXN0cyBhbm5vdW5jZWQgdGhhdCB0d28gbW9yZSBtZXRlb3JpdGVzIGhvbGQgZXZlbiBzdHJvbmdlciBmb3NzaWxpemVkIGV2aWRlbmNlIGZvciBwYXN0IGxpZmUgb24gTWFycy4NCjE5OTk6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEcyMCBvciBHcm91cCBvZiAyMCBpcyBhbiBpbnRlcmdvdmVybm1lbnRhbCBmb3J1bSBjb21wcmlzaW5nIDE5IHNvdmVyZWlnbiBjb3VudHJpZXMsIHRoZSBFdXJvcGVhbiBVbmlvbiwgYW5kIHRoZSBBZnJpY2FuIFVuaW9uLiBGb3VuZGVkOiAyNiBTZXB0ZW1iZXIgMTk5OTsgQ2hhaXJtYW4gKEluY3VtYmVudCk6IEN5cmlsIFJhbWFwaG9zYSwgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYQ0KMTk5OTogVGhlIHRlcm0gV2ktRmkgd2FzIGludmVudGVkIGJ5IEludGVyYnJhbmQgKGFuIGFtZXJpY2FuIGJyYW5kIGNvbnN1bHRhbmN5IGNvbXBhbnkpIGFzIGEgcHVuIHVwb24gdGhlIHdvcmQgaGktZmkuDQpXaS1GaSBBbGxpYW5jZSBmb3JtZWQgYXMgYSB0cmFkZSBhc3NvY2lhdGlvbiB0byBob2xkIHRoZSBXaS1GaSB0cmFkZW1hcmsgdW5kZXIgd2hpY2ggbW9zdCBwcm9kdWN0cyBhcmUgc29sZC4NCjE5OTk6IHRoZSB0ZXJtDQoxOTk5OiBJc2xhbWljIFN0YXRlIG9mIElyYXEgYW5kIHRoZSBMZXZhbnQgKGFsc28ga25vd24gYXMgdGhlIElzbGFtaWMgU3RhdGUgb2YgSXJhcSBhbmQgU3lyaWEsIElzbGFtaWMgU3RhdGUsIG9yIGNvbW1vbmx5LCBJU0lTKSBmb3VuZGVkIGFzIEphbWEnYXQgYWwtVGF3aGlkIHdhbC1KaWhhZCBieSBBYnUgTXVzYWIgYWwtWmFycWF3aSBIUSdkIGF0ICBBbC1SYXFxYWguDQoxOTk5IChBcHIgMTIpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBJIFdhbnQgSXQgVGhhdCBXYXkuDQoxOTk5IChBcHIgMTgpOiBDT05DRVJUIGJlY2FtZSBvcGVyYXRpb25hbC4gSXQgd2FzIGRldmVsb3BlZCB1c2luZyBjbGllbnQtc2VydmVyIG1vZGVsIGZvciBkaXN0cmlidXRlZCBjb21wdXRpbmcgaXMgYSB0b3RhbCBzb2x1dGlvbiB0byB0aGUgbmV0d29ya2luZyBvZiB0aGUgUFJTcy4gQWxsIHRoZSBmaXZlIHNpdGVzIGhhdmUgYmVlbiBpbnRlcm5ldC13b3JrZWQgb3ZlciBhIDY0IGticHMgbGluZSB1c2luZyByb3V0ZXJzLCBvbiBsZWFzZWQgY29tbXVuaWNhdGlvbiBsaW5lIGNvbm5lY3Rpb25zIGZyb20gRGVwYXJ0bWVudCBvZiBUZWxlY29tIChET1QpLg0KMTk5OTogQ3JlZGl0IGNhcmRzIGFjY2VwdGVkIGZvciBib29raW5nIHRpY2tldHMgYW5kIHJlc2VydmF0aW9ucyBpbiBzb21lIHN0YXRpb25zIChpbmNsdWRpbmcgTXVtYmFpIENTVCkuDQoxOTk5IChNYXkgMSk6W0Jvb2tdIFJvYmVydCBLaXlvc2FraSAmIFNoYXJvbiBMZWNodGVyJ3MgUmljaCBEYWQncyBDYXNoZmxvdyBRdWFkcmFudDogUmljaCBEYWQncyBHdWlkZSB0byBGaW5hbmNpYWwgRnJlZWRvbTsgUmljaCBEYWQncyBHdWlkZSB0byBJbnZlc3Rpbmc6IFdoYXQgdGhlIFJpY2ggSW52ZXN0IGluIFRoYXQgdGhlIFBvb3IgYW5kIE1pZGRsZSBDbGFzcyBEbyBOb3QhICgyMDAxLCBKYW4gMSk7IFRoZSBSZWFsIEJvb2sgb2YgUmVhbCBFc3RhdGU6IFJlYWwgRXhwZXJ0cy4gUmVhbCBTdG9yaWVzLiBSZWFsIExpZmUuICgyMDA5LCBNYXkgMTIpOyBSaWNoIEtpZCBTbWFydCBLaWQ6IEdpdmluZyBZb3VyIENoaWxkIGEgRmluYW5jaWFsIEhlYWQgU3RhcnQgKDIwMDEsIEphbiAxKTsgDQoxOTk5IChNYXkgMTgpOltNdXNpY10gTWlsbGVubml1bSBpcyB0aGUgdGhpcmQgc3R1ZGlvIGFsYnVtIChzZWNvbmQgaW4gdGhlIFVuaXRlZCBTdGF0ZXMpIGJ5IEFtZXJpY2FuIGJveSBiYW5kIEJhY2tzdHJlZXQgQm95cywgcmVsZWFzZWQgYnkgSml2ZSBSZWNvcmRzLg0KMTk5OSAoRnJpLCAyNCBEZWMpOiBJbmRpYW4gQWlybGluZXMgRmxpZ2h0IDgxNCBjb21tb25seSBrbm93biBhcyBJQyA4MTQgd2FzIGFuIEluZGlhbiBBaXJsaW5lcyBBaXJidXMgQTMwMCBlbiByb3V0ZSBmcm9tIFRyaWJodXZhbiBJbnRlcm5hdGlvbmFsIEFpcnBvcnQgaW4gS2F0aG1hbmR1LCBOZXBhbCB0byBJbmRpcmEgR2FuZGhpIEludGVybmF0aW9uYWwgQWlycG9ydCBpbiBEZWxoaSwgSW5kaWEgd2FzIGhpamFja2VkLiBIYXJrYXQtdWwtTXVqYWhpZGVlbiB3YXMgYWNjdXNlZCBvZiB0aGUgaGlqYWNraW5nLg0KMTk5OTogSVJDVEMNCjE5OTkgKEF1Zyk6IEJvb2tNeVNob3cNCjE5OTkgKFNlcCAxNCk6IFtHZW9Qb2xpdGljc10gVGhlIENvbmZlcmVuY2Ugb24gSW50ZXJhY3Rpb24gYW5kIENvbmZpZGVuY2UtQnVpbGRpbmcgTWVhc3VyZXMgaW4gQXNpYSAoQ0lDQSkgaXMgYW4gaW50ZXItZ292ZXJubWVudGFsIGZvcnVtIGZvciBlbmhhbmNpbmcgY29vcGVyYXRpb24gdG93YXJkcyBwcm9tb3RpbmcgcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYS4gSXQgaXMgYSBmb3J1bSBiYXNlZCBvbiB0aGUgcmVjb2duaXRpb24gdGhhdCB0aGVyZSBpcyBjbG9zZSBsaW5rIGJldHdlZW4gcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYSBhbmQgaW4gdGhlIHJlc3Qgb2YgdGhlIHdvcmxkLiBUaGUga2V5IGlkZWEgb2YgdGhlIENvbmZlcmVuY2UgaXMgYmFzZWQgb24gdGhlIHByaW9yaXR5IG9mIHRoZSBpbmRpdmlzaWJpbGl0eSBvZiBzZWN1cml0eSwgam9pbnQgaW5pdGlhdGl2ZSBhbmQgbXV0dWFsbHkgYmVuZWZpY2lhbCBpbnRlcmFjdGlvbiBvZiBzbWFsbCBhbmQgbGFyZ2Ugc3RhdGVzLg0KMTk5OTogTm9ibGUgRWR1Y2F0aW9uIFNvY2lldHkncyBOb2JsZSBQdWJsaWMgU2Nob29sIChOUFMpLCBHYWpyYXVsYSBmb3VuZGVkIHdpdGggMjEzMDYyNyBhcyBpdHMgQ0JTRSBBZmZpbGlhdGlvbiBuby4NCjE5OTk6IGZpcnN0IC53bWEgZmlsZSBjcmVhdGVkDQoxOTk5OiBOYXBzdGVyIGZvdW5kZWQuDQoxOTk5IChEZWMgMTQpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBTaG93IE1lIHRoZSBNZWFuaW5nIG9mIEJlaW5nIExvbmVseS4gDQoxOTk5OltNdXNpY10gRHIuIERyZSBmdC4gU25vb3AgRG9nZydzIFN0aWxsIEQuUi5FLg0KMTk5OTpbQ3VsdHVyZV0gVGhlIENpdHRhc2xvdyBvcmdhbml6YXRpb24gd2FzIGNyZWF0ZWQgYnkgUGFvbG8gU2F0dXJuaW5pLCB0aGUgZm9ybWVyIG1heW9yIG9mIEdyZXZlIGluIENoaWFudGksIEl0YWx5LiBTYXR1cm5pbmkgd2FzIGluc3BpcmVkIGJ5IENhcmxvIFBldHJpbmkgYW5kIGhpcyBTbG93IEZvb2QgbW92ZW1lbnQsIHN0YXJ0ZWQgaW4gdGhlIDE5ODBzIHRvIHByb3Rlc3QgdGhlIGZpcnN0IE1jRG9uYWxkJ3MgY2hhaW4gaW4gUm9tZS4gU2luY2UgdGhlbiwgdGhlIENpdHRhc2xvdyBtb3ZlbWVudCBoYXMgZ3Jvd24gYWNyb3NzIGZvdXIgY29udGluZW50cywgd2l0aCAyNjIgcGFydGljaXBhdGluZyB0b3ducyBhcyBvZiAyMDIwLiANCjE5OTk6W01hbmFnZW1lbnRdW0J1c2luZXNzXVtQc3ljaG9sb2d5XVtSZXNlYXJjaF0gRHVubmluZyBhbmQgS3J1Z2VyIEVmZmVjdDogRGF2aWQgRHVubmluZyBhbmQgSnVzdGluIEtydWdlciBwdWJsaXNoZWQgdGhlIGluaXRpYWwgc3R1ZHkgaW4gMTk5OSB1bmRlciB0aGUgdGl0bGUgIlVuc2tpbGxlZCBhbmQgVW5hd2FyZSBvZiBJdDogSG93IERpZmZpY3VsdGllcyBpbiBSZWNvZ25pemluZyBPbmUncyBPd24gSW5jb21wZXRlbmNlIExlYWQgdG8gSW5mbGF0ZWQgU2VsZi1Bc3Nlc3NtZW50cyIuDQoxOTk5OltSZXNlYXJjaF0gUmVzZWFyY2ggYnkgVVMgTmF0aW9uYWwgUmVzZWFyY2ggQ291bmNpbC4gV2F0ZXIgZnJvbSB1bmRlcmdyb3VuZCBzb3VyY2VzIG1heSBjb250YWluIHNpZ25pZmljYW50IGFtb3VudHMgb2YgcmFkb24gZGVwZW5kaW5nIG9uIHRoZSBzdXJyb3VuZGluZyByb2NrIGFuZCBzb2lsIGNvbmRpdGlvbnMsIHdoZXJlYXMgc3VyZmFjZSBzb3VyY2VzIGdlbmVyYWxseSBkbyBub3QuDQoxOTk5OltOU0VdIEluY29ycG9yYXRlZCBpbiAxOTk5LCBJUkNUQyBpcyBhIE1pbmkgUmF0bmEgKENhdGVnb3J5IDEsIENlbnRyYWwgUHVibGljIFNlY3RvciBFbnRlcnByaXNlcyApIGFuZCB0aGUgb25seSBjb21wYW55IGF1dGhvcml6ZWQgYnkgdGhlIEluZGlhbiBnb3Zlcm5tZW50IHRvIHByb3ZpZGUgb25saW5lIHJhaWx3YXkgdGlja2V0cywgY2F0ZXJpbmcgc2VydmljZXMsIGFuZCBwYWNrYWdlZCBkcmlua2luZyB3YXRlciBhdCByYWlsd2F5IHN0YXRpb25zIGFuZCB0cmFpbnMgaW4gSW5kaWEuDQoxOTk5OltNbnRuZ2ddW0Jvb2tdIFN0ZXZlIEhvdXNlIGlzIGEgd29ybGQtcmVub3duZWQgY2xpbWJlciwgbW91bnRhaW4gZ3VpZGUgYW5kIFBhdGFnb25pYSBhbWJhc3NhZG9yLCB3aWRlbHkgcmVnYXJkZWQgZm9yIGhpcyBjbGVhbiwgbGlnaHQtYW5kLWZhc3Qgc3R5bGUuIEhlIGhhcyBwdWJsaXNoZWQgYXJ0aWNsZXMgaW4gYSBudW1iZXIgb2YgcGVyaW9kaWNhbHMgaW5jbHVkaW5nOiBBbHBpbmlzdCwgUm9jayBhbmQgSWNlLCBDbGltYmluZywgVGhlIEFtZXJpY2FuIEFscGluZSBKb3VybmFsLCBHcmlwcGVkLCBDYW5hZGlhbiBBbHBpbmUgSm91cm5hbCwgQ2xpbWIsIFZlcnRpY2FsLCBNb250YWduZXMsIFJpc2ssIEFscCssIENhbXBvIEJhc2UsIERlc25pdmVsLCBhbmQgU3RpbGUgQWxwaW4uIEhpcyBlc3NheXMgaGF2ZSBiZWVuIHB1Ymxpc2hlZCBpbiBzZXZlcmFsIGJvb2tzIGluY2x1ZGluZzsgQ29udGFjdDogTW91bnRhaW4gQ2xpbWJpbmcgYW5kIEVudmlyb25tZW50YWwgVGhpbmtpbmc7IFNvbHRhcmksIGEgY29sbGVjdGlvbiBvZiBlc3NheXMgYWJvdXQgc29sbyBjbGltYmluZyBwdWJsaXNoZWQgaW4gSXRhbGlhbjsgQmVyZywgYSBHZXJtYW4gYm9vayBhYm91dCBjbGltYmluZyBpbiB0aGUgSGltYWxheWE7IGFuZCBhbiB1cGNvbWluZyBib29rIGFib3V0IE5hbmdhIFBhcmJhdCBlZGl0ZWQgYnkgUmVpbmhvbGQgTWVzc25lci4gSGUgaGFzIHdvcmtlZCBhcyBhIFBhdGFnb25pYSBhbHBpbmUgYW1iYXNzYWRvciBzaW5jZSAxOTk5LiBQdWJsaXNoZWQ6IFRyYWluaW5nIGZvciB0aGUgTmV3IEFscGluaXNtOiBBIE1hbnVhbCBmb3IgdGhlIENsaW1iZXIgYXMgQXRobGV0ZSBQYXBlcmJhY2sg4oCTIElsbHVzdHJhdGVkLCAzIEFwcmlsIDIwMTQNCjE5OTk6W01udG5nZ10gQ29ucmFkIEFua2VyIChib3JuIE5vdmVtYmVyIDI3LCAxOTYyKSBpcyBhbiBBbWVyaWNhbiByb2NrIGNsaW1iZXIsIG1vdW50YWluZWVyLCBhbmQgYXV0aG9yLiBIZSB3YXMgdGhlIHRlYW0gbGVhZGVyIG9mIFRoZSBOb3J0aCBGYWNlIGNsaW1iaW5nIHRlYW0gZm9yIDI2IHllYXJzIHVudGlsIDIwMTguWzJdIEluIDE5OTksIGhlIGxvY2F0ZWQgR2VvcmdlIE1hbGxvcnkncyBib2R5IG9uIEV2ZXJlc3QgYXMgYSBtZW1iZXIgb2YgYSBzZWFyY2ggdGVhbSBsb29raW5nIGZvciB0aGUgcmVtYWlucyBvZiB0aGUgQnJpdGlzaCBjbGltYmVyIHdobyB3YXMgbGFzdCBzZWVuIGluIDE5MjQuDQoxOTk5OlRoZSBQaXBpc3RyZWwgVmlydXMgZmxldyBmb3IgdGhlIGZpcnN0IHRpbWUgb24gQXVndXN0IDEwLCAxOTk5LiBQcm9kdWN0aW9uIGJlZ2FuIG9uIEphbnVhcnkgMjAsIDIwMDAuIFRoZSBkZXZlbG9wbWVudCBvZiB0aGUgc2hvcnQgd2luZyB2ZXJzaW9uIHN0YXJ0ZWQgaW4gMjAwNy4gVGhlIFZpcnVzIFNXIHByb2R1Y3Rpb24gc3RhcnRlZCBpbiAyMDA4LiBUaGUgVmlydXMgd29uIHRoZSBOQVNBIDIwMDcgUGVyc29uYWwgQWlyIFZlaGljbGUgKFBBVikgQ2hhbGxlbmdlIGFuZCB0aGUgMjAwOCBHZW5lcmFsIEF2aWF0aW9uIFRlY2hub2xvZ3kgKEdBVCkgQ2hhbGxlbmdlLg0KMTk5OTpbc2lsdmljc10gU3VzdGFpbmFibGUgUHJhY3RpY2VzOiBSZXNlYXJjaCBpbiB0aGUgMjB0aCBjZW50dXJ5IHZhbGlkYXRlZCB0aGF0IHNlY29uZC1ncm93dGggc3RhbmRzIGNvdWxkIGJlIHN1c3RhaW5hYmx5IG1hbmFnZWQgdGhyb3VnaCB0ZWNobmlxdWVzIGxpa2UgdGhlIHNlZWQgdHJlZSBtZXRob2QuIFRvZGF5LCBzaWx2aWN1bHR1cmUgZm9jdXNlcyBvbiBjb21wbGV4IHN0YW5kIHN0cnVjdHVyZXMsIGJhbGFuY2luZyBjb21tZXJjaWFsIGRlbWFuZCB3aXRoIGVudmlyb25tZW50YWwgc3Rld2FyZHNoaXAuIA0KDQoyMXN0IGNlbnR1cnkgQ0Ugc3RhcnRlZCBvbiAxc3QgSmFuIDIwMDEgQUQuDQoNCjIwMDBzOltSZXNlYXJjaF0gVGhlIGNsYWltIHRoYXQgIndlIGFyZSA2MCUgYmFuYW5hIiAob3Igc2hhcmUgNjAlIG9mIG91ciBETkEpIGlzIGEgcG9wdWxhciwgeWV0IG9mdGVuIG1pc2ludGVycHJldGVkLCBzdGF0aXN0aWMgdGhhdCBvcmlnaW5hdGVkIGZyb20gY29tcGFyaXNvbnMgb2YgcHJvdGVpbi1jb2RpbmcgZ2VuZXMsIGxpa2VseSBwb3B1bGFyaXplZCBpbiB0aGUgZWFybHkgMjAwMHMgZm9sbG93aW5nIHByZWxpbWluYXJ5IHN0dWRpZXMgb2YgdGhlIGJhbmFuYSBnZW5vbWUuIEl0IHJlZmVycyB0byBhYm91dCA2MCUgb2YgaHVtYW4gZ2VuZXMgaGF2aW5nIGEgcmVjb2duaXphYmxlIGNvdW50ZXJwYXJ0IGluIGJhbmFuYXMsIG5vdCA2MCUgb2Ygb3VyIHRvdGFsIEROQS4gDQpNYW55IG9mIHRoZSDigJxob3VzZWtlZXBpbmfigJ0gZ2VuZXMgdGhhdCBhcmUgbmVjZXNzYXJ5IGZvciBiYXNpYyBjZWxsdWxhciBmdW5jdGlvbiwgc3VjaCBhcyBmb3IgcmVwbGljYXRpbmcgRE5BLCBjb250cm9sbGluZyB0aGUgY2VsbCBjeWNsZSwgYW5kIGhlbHBpbmcgY2VsbHMgZGl2aWRlIGFyZSBzaGFyZWQgYmV0d2VlbiBtYW55IHBsYW50cyAoaW5jbHVkaW5nIGJhbmFuYXMpIGFuZCBhbmltYWxzLldoaWxlIDYwJSBvZiBnZW5lcyBoYXZlIGNvdW50ZXJwYXJ0cywgdGhlc2UgZXNzZW50aWFsIGdlbmVzIG1ha2UgdXAgb25seSBhIHNtYWxsIGZyYWN0aW9uIG9mIHRoZSB0b3RhbCBnZW5vbWU7IGh1bWFucyBhbmQgYmFuYW5hcyBhcmUgbm90IDYwJSBpZGVudGljYWwgb3ZlcmFsbC4gDQpUaGUgcGhyYXNlIGlzIGVzc2VudGlhbGx5IGEgc2ltcGxpZmllZCwgb2Z0ZW4tZXhhZ2dlcmF0ZWQsIHdheSBvZiBoaWdobGlnaHRpbmcgdGhhdCBhbGwgbGlmZSBzaGFyZXMgY29tbW9uIGFuY2VzdHJhbCBnZW5lcyBmb3IgYmFzaWMgY2VsbHVsYXIgcHJvY2Vzc2VzLiANCjIwMDBzOltNQkFdIFNob3VsZCBDb3N0IE1vZGVsaW5nOiBNb2Rlcm4gIlNob3VsZCBDb3N0IiBtb2RlbHMgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBpZGVhbCBjb3N0IG9mIGEgcHJvZHVjdCwgYWNjb3VudGluZyBmb3IgbGFib3IsIG1hdGVyaWFscywgYW5kIG92ZXJoZWFkLiBFbnZpcm9ubWVudGFsICYgU29jaWFsIEltcGFjdDogTW9kZXJuIENCQSBub3cgcm91dGluZWx5IGluY2x1ZGVzIGVudmlyb25tZW50YWwgYW5kIHNvY2lhbCBpbXBhY3RzIGluIGFkZGl0aW9uIHRvIGZpbmFuY2lhbCBvbmVzLiBTaGlmdCBmcm9tIExvY2FsIHRvIEdsb2JhbDogRWFybHksIGhpZ2hseSBsb2NhbCBhc3Nlc3NtZW50cyBldm9sdmVkIGludG8gbGFyZ2Utc2NhbGUsIG5hdGlvbmFsLCBhbmQgaW50ZXJuYXRpb25hbCBDQkEuIFJlZmluZW1lbnQgb2YgVGVjaG5pcXVlczogTW92aW5nIGZyb20gc2ltcGxlLCBzaW5nbGUtcGVyaW9kIG1vZGVscyB0byBjb21wbGV4LCBtdWx0aS1wZXJpb2Qgc2ltdWxhdGlvbnMuIEluY3JlYXNlZCBEYXRhIFVzZTogVGhlIGF2YWlsYWJpbGl0eSBvZiBsYXJnZSwgZ3JhbnVsYXIgZGF0YSBzZXRzIGhhcyBhbGxvd2VkIGZvciBtb3JlIHByZWNpc2UgYW5kIHJlbGlhYmxlIGFuYWx5c2lzLiANCjIwMDBzOltNbnRuZ2ddW0V4dHJlbWVdIEluIHRoZSBlYXJseSAyMDAwcywgRGlkaWVyIEJlcnRob2Qgd2FzIHRoZSBiZXN0IGNyYWNrIGNsaW1iZXIgaW4gdGhlIHdvcmxkLCB0aGVuIGhlIGRyb3BwZWQgb3V0IG9mIGNsaW1iaW5nIGFuZCBlc3NlbnRpYWxseSBkaXNhcHBlYXJlZCBmcm9tIHRoZSB3b3JsZC4NCjIwMDBzOltSZWFsdHldIEVhcmx5IDIwMDBzOiBSZWFsIGVzdGF0ZSB3YXMgaW4gaXRzIGVhcmx5IHN0YWdlcyBpbiBJbmRpYSwgd2l0aCBncmFkdWFsIGdyb3d0aCBhbmQgZGV2ZWxvcG1lbnQuIA0KMjAwMHM6VGVhbXdvcmsgaXMgbm93IGFuIGludGVncmFsIHBhcnQgb2Ygb3JnYW5pemF0aW9uYWwgc3RyYXRlZ3ksIHdpdGggYSBncmVhdGVyIGVtcGhhc2lzIG9uIGN1c3RvbWl6YXRpb24sIHBlcnNvbmFsaXphdGlvbiwgYW5kIHN0cmF0ZWdpYyBpbnRlZ3JhdGlvbiBvZiB0ZWFtLWJ1aWxkaW5nIHByYWN0aWNlcy4gVGhlIHJpc2Ugb2YgdGVjaG5vbG9neSBoYXMgYWxzbyBpbmZsdWVuY2VkIHRlYW13b3JrLCB3aXRoIHJlbW90ZSB3b3JrIGJlY29taW5nIG1vcmUgcHJldmFsZW50IGFuZCBuZXcgdG9vbHMgZW1lcmdpbmcgdG8gZmFjaWxpdGF0ZSBjb2xsYWJvcmF0aW9uLiANCg0KMjAwMDpbVVNdW0dlb1BvbGl0aWNzXSBvdmVydGhyb3cgb2YgU2xvYm9kYW4gTWlsb8WhZXZpxIcuIChVUydzIGludm9sdmVtZW50IGluIHJlZ2ltZSBjaGFuZ2UpDQoyMDAwOiBbR2VvUG9saXRpY3NdW01pbGl0YXJ5XVtFY29ub21pY3NdIFRoZSBVUyBEb2xsYXIgaG9sZHMgYSA3MiUgc2hhcmUgb2YgYWxsIGdsb2JhbCBjdXJyZW5jeSByZXNlcnZlcyBbWzE2OjQyXShodHRwOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dllKcmkxZU5SeWMmdD0xMDAyKV0uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdIDI2IEFwcmlsIDIwMDA6IHRoZSBHZXJtYW4gdGVhbSBvcGVyYXRpbmcgdGhlIG1hc3Mgc3BlY3Ryb21ldGVyIG9uIE5BU0EncyBTdGFyZHVzdCBtaXNzaW9uIGFubm91bmNlZCB0aGUgZGV0ZWN0aW9uIG9mIHZlcnkgbGFyZ2Ugb3JnYW5pYyBtb2xlY3VsZXMgaW4gaW50ZXJzdGVsbGFyIHNwYWNlLiBOb25iaW9sb2dpY2FsIHNvdXJjZXMgZm9yIG9yZ2FuaWMgbW9sZWN1bGVzIHNvIGxhcmdlIGFyZSBub3Qga25vd24uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdMTkgT2N0b2JlciAyMDAwLCBhIHRlYW0gb2YgYmlvbG9naXN0cyBhbmQgYSBnZW9sb2dpc3QgYW5ub3VuY2VkIHRoZSByZXZpdmFsIG9mIGJhY3RlcmlhIHRoYXQgYXJlIDI1MCBtaWxsaW9uIHllYXJzIG9sZCwgc3RyZW5ndGhlbmluZyB0aGF0IGNhc2UgdGhhdCBiYWN0ZXJpYWwgc3BvcmVzIGNhbiBiZSBpbW1vcnRhbC4NCjEzIERlY2VtYmVyIDIwMDA6IGEgTkFTQSB0ZWFtIGRlbW9uc3RyYXRlZCB0aGF0IHRoZSBtYWduZXRvc29tZXMgaW4gTWFycyBtZXRlb3JpdGUgQUxIIDg0MDAxIGFyZSBiaW9sb2dpY2FsLg0KMjAwMDpbUmVzZWFyY2hdW1NwYWNlXSBNaWxlaWtvd3NreSBDLCBDdWNpbm90dGEgRkEsIFdpbHNvbiBKVywgR2xhZG1hbiBCLCBIb3JuZWNrIEcsIExpbmRlZ3JlbiBMLCBNZWxvc2ggSiwgUmlja21hbiBILCBWYWx0b25lbiBNLCBaaGVuZyBKUS4gTmF0dXJhbCB0cmFuc2ZlciBvZiB2aWFibGUgbWljcm9iZXMgaW4gc3BhY2UuIEljYXJ1cyAyMDAwLCAxNDU6Mzkx4oCTNDI3LiBbRE9JXSBbUHViTWVkXSBbR29vZ2xlIFNjaG9sYXJdDQoyMDAwOltTcGFjZVhdIFMvMjAwMCAoOTApIDEgTW9vbiBEaXNjb3ZlcmVyOiBXaWxsaWFtIEouIE1lcmxpbmUgT3JiaXRzOiA5MCBBbnRpb3BlIEFic29sdXRlIG1hZ25pdHVkZTogOS4wMg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gZGVtb25zdHJhdGVkIFNob3LigJlzIGFsZ29yaXRobSBvbiBhIDUtcXViaXQgTk1SIHF1YW50dW0gY29tcHV0ZXIsIGZhY3RvcmluZyB0aGUgbnVtYmVyIDE1Lg0KMjAwMDogQXQgYWdlIDE0IGFuZCBpbiBjbGFzcyA4dGgsIEFhcm9uIFN3YXJ0eiBiZWNhbWUgYSBtZW1iZXIgb2YgdGhlIHdvcmtpbmcgZ3JvdXAgdGhhdCBhdXRob3JlZCB0aGUgUlNTIDEuMCB3ZWIgc3luZGljYXRpb24gc3BlY2lmaWNhdGlvbi4NCjIwMDA6IE1ha2VteVRyaXANCjIwMDAgKEphbiAxNCk6W0phY2tdIEthaG8gTmFhLi4uIFB5YWFyIEhhaQ0KMjAwMCAoRmViKTogSW5kaWFuIFJhaWx3YXlzIHdlYiBzaXRlIGkuZS4gaHR0cDovL2luZGlhbnJhaWx3YXlzLmdvdi5pbi8gd2FzIGRlcGxveWVkIGJ5IENSSVMuDQoyMDAwIChNYXIpOltCb29rXSBNYWxjb2xtIEdsYWR3ZWxsJ3MgZGVidXQgYm9vaywgVGhlIFRpcHBpbmcgUG9pbnQ6IEhvdyBMaXR0bGUgVGhpbmdzIENhbiBNYWtlIGEgQmlnIERpZmZlcmVuY2UuIA0KQmxpbms6IFRoZSBQb3dlciBvZiBUaGlua2luZyBXaXRob3V0IFRoaW5raW5nICgyMDA1LCBKYW4gMTEpOyANCk91dGxpZXJzOiBUaGUgU3Rvcnkgb2YgU3VjY2VzcyAoMjAwOCwgTm92IDE4KTsgDQpXaGF0IHRoZSBEb2cgU2F3OiBBbmQgT3RoZXIgQWR2ZW50dXJlcyAoMjAwOSwgT2N0IDIwKTsgDQpEYXZpZCBhbmQgR29saWF0aDogVW5kZXJkb2dzLCBNaXNmaXRzLCBhbmQgdGhlIEFydCBvZiBCYXR0bGluZyBHaWFudHMgKDIwMTMsIE9jdCAxKQ0KVGFsa2luZyB0byBTdHJhbmdlcnM6IFdoYXQgV2UgU2hvdWxkIEtub3cgYWJvdXQgdGhlIFBlb3BsZSBXZSBEb24ndCBLbm93ICgyMDE5KQ0KMjAwMCAoQXByIDEpOltCb29rXSBSb2JlcnQgS2l5b3Nha2kgJiBTaGFyb24gTGVjaHRlcidzIFJpY2ggRGFkIFBvb3IgRGFkLg0KMjAwMCAoQXByIDEpOltUZWNobm9sb2d5XVtSZXNlYXJjaF0gIldoeSBUaGUgRnV0dXJlIERvZXNuJ3QgTmVlZCBVcyIgaXMgYW4gYXJ0aWNsZSB3cml0dGVuIGJ5IEJpbGwgSm95IGluIHRoZSBBcHJpbCAyMDAwIGlzc3VlIG9mIFdpcmVkIG1hZ2F6aW5lLiBJbiB0aGUgYXJ0aWNsZSwgaGUgYXJndWVzIHRoYXQgIk91ciBtb3N0IHBvd2VyZnVsIDIxc3QtY2VudHVyeSB0ZWNobm9sb2dpZXPigJRyb2JvdGljcywgZ2VuZXRpYyBlbmdpbmVlcmluZywgYW5kIG5hbm90ZWNo4oCUYXJlIHRocmVhdGVuaW5nIHRvIG1ha2UgaHVtYW5zIGFuIGVuZGFuZ2VyZWQgc3BlY2llcy4iIA0KMjAwMCAoSnVuIDI2KTpbTXVzaWNdICJZZWxsb3ciIGlzIGEgc29uZyBieSB0aGUgQnJpdGlzaCByb2NrIGJhbmQgQ29sZHBsYXkuIFRoZSBiYW5kIHdyb3RlIHRoZSBzb25nIGFuZCBjby1wcm9kdWNlZCBpdCB3aXRoIEJyaXRpc2ggcmVjb3JkIHByb2R1Y2VyIEtlbiBOZWxzb24gZm9yIHRoZWlyIGRlYnV0IGFsYnVtLCBQYXJhY2h1dGVzICgyMDAwKS4gVGhlIHNvbmcgd2FzIHJlY29yZGVkIGluIE1hcmNoIDIwMDAgYW5kIHJlbGVhc2VkIG9uIDI2IEp1bmUgdGhhdCBzYW1lIHllYXIuDQoyMDAwIChTZXApOiBBbWF6b24ncyBKZWZmIEJlem9zIGZvdW5kZWQuDQoyMDAwIChTZXApOltDcmltZV1bSW5kaWFdIENoaG90YSBTaGFrZWVsJ3MgYXR0YWNrIG9uIFJhamFuIGluIGhpcyBCYW5na29rIGhvdGVsIHJvb20uDQoyMDAwIChTZXApOiBSYWlsVGVsIENvcnBvcmF0aW9uIG9mIEluZGlhIEx0ZC4gZm91bmRlZCBhbmQgSFEnZCBhdCAxNDMsIEluc3RpdHV0aW9uYWwgQXJlYSwgU2VjdG9yLTQ0LCBHdXJnYW9uLCBIYXJ5YW5hLCBJbmRpYS4gSXQgaXMgYSBNaW5pcmF0bmEgZW50ZXJwcmlzZSBvZiBHb3Zlcm5tZW50IG9mIEluZGlhIGZvY3VzaW5nIG9uIHByb3ZpZGluZyBicm9hZGJhbmQgYW5kIFZQTiBzZXJ2aWNlcy4NCjIwMDAgKFNlcCAxNyk6IFtHZW9Qb2xpdGljc10gVGhlIGlkZWEgb2YgYW4gQXNpYSBDb29wZXJhdGlvbiBEaWFsb2d1ZSAoQUNEKSB3YXMgcmFpc2VkIGF0IHRoZSBGaXJzdCBJbnRlcm5hdGlvbmFsIENvbmZlcmVuY2Ugb2YgQXNpYW4gUG9saXRpY2FsIFBhcnRpZXMgKGhlbGQgaW4gTWFuaWxhIGJldHdlZW4gMTfigJMyMCBTZXB0ZW1iZXIgMjAwMCkgYnkgU3VyYWtpYXJ0IFNhdGhpcmF0aGFpLCB0aGVuIGRlcHV0eSBsZWFkZXIgb2YgdGhlIG5vdyBkZWZ1bmN0IFRoYWkgUmFrIFRoYWkgUGFydHksIG9uIGJlaGFsZiBvZiBoaXMgcGFydHkgbGVhZGVyLCBUaGFrc2luIFNoaW5hd2F0cmEsIHRoZW4gUHJpbWUgTWluaXN0ZXIgb2YgVGhhaWxhbmQuIEl0IHdhcyBzdWdnZXN0ZWQgdGhhdCBBc2lhIGFzIGEgY29udGluZW50IHNob3VsZCBoYXZlIGl0cyBvd24gZm9ydW0gdG8gZGlzY3VzcyBBc2lhLXdpZGUgY29vcGVyYXRpb24uIEFmdGVyd2FyZHMsIHRoZSBpZGVhIG9mIHRoZSBBQ0Qgd2FzIGZvcm1hbGx5IHB1dCBmb3J3YXJkIGR1cmluZyB0aGUgMzR0aCBBU0VBTiBGb3JlaWduIE1pbmlzdGVycyBNZWV0aW5nIGluIEhhbm9pLCAyM+KAkzI0IEp1bHkgMjAwMSBhbmQgYXQgdGhlIEFTRUFOIEZvcmVpZ24gTWluaXN0ZXJzIFJldHJlYXQgaW4gUGh1a2V0LCAyMOKAkzIxIEZlYnJ1YXJ5IDIwMDIuDQoyMDAwIChPY3QgNCk6W011c2ljXSBGb3JtZWQgaW4gMTk5NiwgTGlua2luIFBhcmsgcm9zZSB0byBpbnRlcm5hdGlvbmFsIGZhbWUgd2l0aCB0aGVpciBkZWJ1dCBzdHVkaW8gYWxidW0sIEh5YnJpZCBUaGVvcnkuIEZvdXIgc2luZ2xlcyB3ZXJlIHJlbGVhc2VkIGZyb20gSHlicmlkIFRoZW9yeTogIk9uZSBTdGVwIENsb3NlciIsICJJbiB0aGUgRW5kIiwgIkNyYXdsaW5nIiBhbmQgIlBhcGVyY3V0IiwgYWxsIG9mIHRoZW0gYmVpbmcgcmVzcG9uc2libGUgZm9yIGxhdW5jaGluZyBMaW5raW4gUGFyayBpbnRvIG1haW5zdHJlYW0gcG9wdWxhcml0eS4gV2hpbGUgIkluIHRoZSBFbmQiIHdhcyB0aGUgbW9zdCBzdWNjZXNzZnVsIG9mIHRoZSBmb3VyLCBhbGwgb2YgdGhlIHNpbmdsZXMgaW4gdGhlIGFsYnVtIHJlbWFpbiBzb21lIG9mIHRoZSBiYW5kJ3MgbW9zdCBzdWNjZXNzZnVsIHNvbmdzIHRvIGRhdGUuDQoyMDAwIChOb3YgOSk6IGZvcm1hdGlvbiBvZiBVdHRhcmFraGFuZCBhcyBVdHRhcmFuY2hhbCAyMDAwIChKdW4gOSk6IEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQWN0LCAyMDAwLiBUaGUgYmlsbCB3YXMgcGFzc2VkIGluIHRoZSBidWRnZXQgc2Vzc2lvbiBvZiAyMDAwIGFuZCBzaWduZWQgYnkgUHJlc2lkZW50IEsuIFIuIE5hcmF5YW5hbiBvbiA5IE1heSAyMDAwLiBUaGUgYmlsbCB3YXMgZmluYWxpc2VkIGJ5IGdyb3VwIG9mIG9mZmljaWFscyBoZWFkZWQgYnkgdGhlbiBNaW5pc3RlciBvZiBJbmZvcm1hdGlvbiBUZWNobm9sb2d5LCBQcmFtb2QgTWFoYWphbi4NCjIwMDA6IGZvcm1hdGlvbiBvZg0KMjAwMDogSmFpc2gtZS1Nb2hhbW1lZCAobGl0ZXJhbGx5ICJUaGUgQXJteSBvZiBNdWhhbW1hZCIsIEplTSkgZm91bmRlZCBhdCBCYWhhd2FscHVyLCBQdW5qYWIsIFBha2lzdGFuLg0KMjAwMDogQ2hpbmEncyBCZWlEb3UgbmF2aWdhdGlvbiB0ZXN0IHN5c3RlbSBzdGFydHMuDQoyMDAwOiBGaXNlcnYgaGFkIGFjcXVpcmVkIG1vcmUgdGhhbiA5MCBidXNpbmVzc2VzLiBUaGUgbnVtYmVyIG9mIGVtcGxveWVlcyBncmV3IGZyb20gMjY0IHRvIDE0LDAwMC4gRmlzZXJ2IHdhcyBhbiBpbmR1c3RyeSBsZWFkZXIsIHdpdGggcmV2ZW51ZSB0aGF0IGluY3JlYXNlZCBmcm9tICQyMSBtaWxsaW9uIHRvICQxLjQgYmlsbGlvbiBpbiAxNSB5ZWFycy4NCjIwMDAgKERlYyA4KTpbR2FtaW5nXSBQcm9qZWN0IEkuRy5JLiBpcyBhIHRhY3RpY2FsIGZpcnN0LXBlcnNvbiBzaG9vdGVyIHZpZGVvIGdhbWUuIEl0IHdhcyBkZXZlbG9wZWQgYnkgSW5uZXJsb29wIFN0dWRpb3MgYW5kIHJlbGVhc2VkIGluIERlY2VtYmVyIDIwMDAgYnkgRWlkb3MgSW50ZXJhY3RpdmUuIFRoZSBnYW1lIHJlY2VpdmVkIG1peGVkIHJldmlld3MgZHVlIHRvIHNob3J0Y29taW5ncyBpbmNsdWRpbmcgYSBwb29ybHkgcHJvZ3JhbW1lZCBBLkkuLCBsYWNrIG9mIGEgbWlkLWdhbWUgc2F2ZSBvcHRpb24sIGFuZCB0aGUgbGFjayBvZiBtdWx0aXBsYXllciBmZWF0dXJlcy4gSG93ZXZlciBpdCB3YXMgcHJhaXNlZCBmb3IgaXRzIHNvdW5kIGRlc2lnbiBhbmQgZ3JhcGhpY3MsIHRoYW5rcyBpbiBwYXJ0IHRvIGl0cyB1c2Ugb2YgYSBwcm9wcmlldGFyeSBnYW1lIGVuZ2luZSB0aGF0IHdhcyBwcmV2aW91c2x5IHVzZWQgaW4gSW5uZXJsb29wJ3MgSm9pbnQgU3RyaWtlIEZpZ2h0ZXIuDQoyMDAwIChEZWMgMjEpOltKYWNrXSBSYWp1IENoYWNoYSByZWxlYXNlZC4NCjIwMDA6IFtCdXNpbmVzc11bRmluYW5jZV1bQ29ycG9yYXRlXVtJbmRpYV0gUklMIHBpbG90ZWQgd29ybGQncyBsYXJnZXN0IHBldHJvbGV1bSByZWZpbmVyeSBhdCBKYW1uYWdhciwgR3VqYXJhdCwgcmVmaW5pbmcgMS4yNE1uIGJhcnJlbHMvZGF5Lg0KMjAwMDpbQ3JpbWVdW0luZGlhXSBQb2xpY2UgZW5jb3VudGVycyBpbiBNdW1iYWkuIE1vc3QgY3JpbWluYWxzIGZsZWVpbmcgdG8gQ2FsY3VsdHRhLiBBZnRhYiBCaGF0a2kgZGVzdGFiaWxpc2UgdGhlIGVjb25vbXkgYnkgc3ByZWFkaW5nIGZha2UgY3VycmVuY3kgbm90ZXMgcHJpbnRlZCBieSBJU0kgZnVuY3Rpb25hcmllcywgYW5kIHR3bywgc2VuZCBtZXJjZW5hcmllcyB0byBjb25kdWN0IGFiZHVjdGlvbnMgYW5kIHRlcnJvcmlzdCBhdHRhY2tzLg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBUZWNobmljYWwgVW5pdmVyc2l0eSBvZiBNdW5pY2ggKDUgcXViaXQpOyBMb3MgQWxhbW9zIE5hdGlvbmFsIExhYiAoNyBxdWJpdHMpDQoyMDAwOkluIDIwMDAsIFRhdGEgVGVhIGFjcXVpcmVkIHRoZSBUZXRsZXkgVGVhIENvbXBhbnkgZm9yICQ0MDcgbWlsbGlvbi4gT3RoZXIgbm90YWJsZSBhY3F1aXNpdGlvbnMgaW5jbHVkZSBOYXRTdGVlbCAoMjAwNCksIEJydW5uZXIgTW9uZCAoMjAwNSksIGFuZCBFaWdodCBPJ0Nsb2NrIENvZmZlZSAoMjAwNikuIA0KMjAwMDogQmlybGEgYWNxdWlyZWQgSW5kaWFuIEFsdW1pbnVtIENvbXBhbnkgKElOREFMKS4gDQoyMDAwOiBTYXR5YSBOYXJheWFuYSBHb2Vua2Egd29ya2VkIGFzIGFuIGludGVybmF0aW9uYWwgYnVzaW5lc3NtYW4gYmFzZWQgaW4gTXlhbm1hciBhbmQgSW5kaWEgZm9yIGEgbGFyZ2UgcGFydCBvZiBoaXMgbGlmZS4gSGUgd2FzIGEga2V5bm90ZSBzcGVha2VyIG9uIHRoZSBzdWJqZWN0IG9mIFNwaXJpdHVhbGl0eSBpbiBCdXNpbmVzcyBhdCB0aGUgMzB0aCBXb3JsZCBFY29ub21pYyBGb3J1bSBpbiBEYXZvcywgU3dpdHplcmxhbmQgYmV0d2VlbiAyNiBKYW4gYW5kIDIgRmViIDIwMDAuIFR3byB5ZWFycyBsYXRlciBoZSBjb25kdWN0ZWQgdGhlIGZpcnN0IDEwLWRheSBjb3Vyc2UgaW4gVmlwYXNzYW5hIE1lZGl0YXRpb24gZXNwZWNpYWxseSBmb3IgYnVzaW5lc3MgZXhlY3V0aXZlcyBhbmQgZ292ZXJubWVudCBvZmZpY2lhbHMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAyMjUgeWVhcnMgb2YgSW5kZXBlbmRlbnQgVVNBIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIA0KDQoyMDAxOltVU11bR2VvUG9saXRpY3NdIGludmFzaW9uIG9mIEFmZ2hhbmlzdGFuLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMjAwMTpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgU2hhbmdoYWkgQ29vcGVyYXRpb24gT3JnYW5pc2F0aW9uIChTQ08pIGlzIGEgRXVyYXNpYW4gcG9saXRpY2FsLCBlY29ub21pYywgaW50ZXJuYXRpb25hbCBzZWN1cml0eSBhbmQgZGVmZW5jZSBvcmdhbml6YXRpb24gb2YgdGVuIG1lbWJlciBzdGF0ZXMuIEl0IHdhcyBlc3RhYmxpc2hlZCBpbiAyMDAxIGJ5IHRoZSBQZW9wbGUncyBSZXB1YmxpYyBvZiBDaGluYSwgS2F6YWtoc3RhbiwgS3lyZ3l6c3RhbiwgUnVzc2lhLCBhbmQgVGFqaWtpc3RhbiBhbmQgVXpiZWtpc3Rhbi4gSW4gSnVuZSAyMDE3LCBpdCBleHBhbmRlZCB0byBlaWdodCBzdGF0ZXMsIHdpdGggSW5kaWEgYW5kIFBha2lzdGFuLiBJcmFuIGpvaW5lZCB0aGUgZ3JvdXAgaW4gSnVseSAyMDIzLCBhbmQgQmVsYXJ1cyBpbiBKdWx5IDIwMjQuIFNldmVyYWwgY291bnRyaWVzIGFyZSBlbmdhZ2VkIGFzIG9ic2VydmVycyBvciBkaWFsb2d1ZSBwYXJ0bmVycy4gRm91bmRlcnM6IENoaW5hLCBSdXNzaWEsIEthemFraHN0YW4sIFV6YmVraXN0YW4sIEt5cmd5enN0YW4sIFRhamlraXN0YW47IEhlYWRxdWFydGVyczogQmVpamluZywgQ2hpbmE7IEZvdW5kZWQ6IDE1IEp1bmUgMjAwMQ0KMjAwMTpbQnVzaW5lc3NdIDIwMDHigJMyMDA1OiBIRlQgZXhlY3V0aW9uIHRpbWVzIGRlY3JlYXNlZCBmcm9tIHNldmVyYWwgc2Vjb25kcyB0byBtaWxsaXNlY29uZHMuIChIRlQpDQoyMDAxOltDb21wdXRpbmddW1F1YW50dW1dICBJQk0gaW1wbGVtZW50ZWQgR3JvdmVy4oCZcyBhbGdvcml0aG0gb24gYSA3LXF1Yml0IE5NUiBxdWFudHVtIGNvbXB1dGVyLCBmaW5kaW5nIGEgbWFya2VkIGl0ZW0gaW4gYSBkYXRhYmFzZSBvZiA0IGVudHJpZXMuDQoyMDAxOiBMaWZlIG9mIFBpIGlzIGEgQ2FuYWRpYW4gcGhpbG9zb3BoaWNhbCBub3ZlbCBieSBZYW5uIE1hcnRlbCBwdWJsaXNoZWQuIFRoZSBwcm90YWdvbmlzdCBpcyBQaXNjaW5lIE1vbGl0b3IgIlBpIiBQYXRlbCwgYW4gSW5kaWFuIGJveSBmcm9tIFBvbmRpY2hlcnJ5IHdobyBleHBsb3JlcyBpc3N1ZXMgb2Ygc3Bpcml0dWFsaXR5IGFuZCBtZXRhcGh5c2ljcyBmcm9tIGFuIGVhcmx5IGFnZS4gSGUgc3Vydml2ZXMgMjI3IGRheXMgYWZ0ZXIgYSBzaGlwd3JlY2sgd2hpbGUgc3RyYW5kZWQgb24gYSBsaWZlYm9hdCBpbiB0aGUgUGFjaWZpYyBPY2VhbiB3aXRoIGEgQmVuZ2FsIHRpZ2VyIHdoaWNoIHJhaXNlcyBxdWVzdGlvbnMgYWJvdXQgdGhlIG5hdHVyZSBvZiByZWFsaXR5IGFuZCBob3cgaXQgaXMgcGVyY2VpdmVkIGFuZCB0b2xkLjtTZXZlbiBTdG9yaWVzICgxOTkzKQ0KMjAwMTpbQ3JpbWVdW0luZGlhXSBDaGhvdGEgUmFqYW4ncyBhc3NvY2lhdGVzIHRyYWNrZWQgZG93biBhbmQgc2hvdCBkZWFkIGhvdGVsaWVyIFZpbm9kIGluIE11bWJhaSwgYXMgd2VsbCBhcyBTdW5pbCBTb2FucyDigJMgYW5vdGhlciBEYXdvb2QgYXNzb2NpYXRlLg0KMjAwMSAoSmFuIDEpOltCb29rXSBHcmVnIE1jS2Vvd24ncyBFc3NlbnRpYWxpc206IFRoZSBEaXNjaXBsaW5lZCBQdXJzdWl0IG9mIExlc3MNCjIwMDEgKEphbiAxKTpbQm9va10gQnJpYW4gVHJhY3kncyBFYXQgVGhhdCBGcm9nIQ0KMjAwMTogVGhlIEFyZHVpbm8gcHJvamVjdCBzdGFydGVkIGF0IHRoZSBJbnRlcmFjdGlvbiBEZXNpZ24gSW5zdGl0dXRlIEl2cmVhIChJRElJKSBpbiBJdnJlYSwgSXRhbHkuIEF0IHRoYXQgdGltZSwgdGhlIHN0dWRlbnRzIHVzZWQgYSBCQVNJQyBTdGFtcCBtaWNyb2NvbnRyb2xsZXIgYXQgYSBjb3N0IG9mICQxMDAsIGEgY29uc2lkZXJhYmxlIGV4cGVuc2UgZm9yIG1hbnkgc3R1ZGVudHMuDQoyMDAxIChBcHIgNHRoKTogQ2hhcmxlcyBNLiBWZXN0LCB0aGUgdGhlbiBQcmVzaWRlbnQgb2YgTUlUIGFubm91bmNlZCBPcGVuQ291cnNlV2FyZSAoT0NXKSBwdWJsaWNpemluZyBhbGwgb2YgaXRzIDIsMDAwIGNvdXJzZXMgIGF0IHRoZSBlc3RpbWF0ZWQgY29zdCBvZiAkMTAwIG1pbGxpb24gKG9uIGFuIGF2Zy4sIGEgTUlUIHN0dWRlbnRzIHBheXMgYXJvdW5kICQyNiwwMDAgYXMgb2ZmbGluZSB0dWl0aW9uIGZlZSkNCjIwMDE6IFVTIGludmFkZWQgQWZnaGFuaXN0YW4gaW4gcmVzcG9uc2UgdG8gOS8xMSBhdHRhY2tzLiBPZmZpY2lhbGx5LCBJdCBoYXMgYmVjb21lIHRoZSBsb25nZXN0IHdhciBpbiBBbWVyaWNhbiBoaXN0b3J5Lg0KMjAwMTogaVBvZCBieSBUb255IEZhZGVsbA0KMjAwMSAoSnVuIDE1KTpbSmFja10gR2FkYXI6IEVrIFByZW0gS2F0aGE7IExhZ2FhbjogT25jZSBVcG9uIGEgVGltZSBpbiBJbmRpYQ0KMjAwMSAoU2VwIDExKTogOS8xMSBUZXJyb3Jpc3QgYXR0YWNrcy4gVGhlIFNlcHRlbWJlciAxMSBvciA5LzExLCBhdHRhY2tzIHdlcmUgYSBzZXJpZXMgb2YgZm91ciBjb29yZGluYXRlZCB0ZXJyb3Jpc3QgYXR0YWNrcyBieSB0aGUgSXNsYW1pYyB0ZXJyb3Jpc3QgZ3JvdXAgYWwtUWFlZGEgb24gdGhlIFVuaXRlZCBTdGF0ZXMgb24gdGhlIG1vcm5pbmcgb2YgVHVlc2RheSwgU2VwIDExLiBUaGUgbG9zcyBvZiBsaWZlIHdhcyBlc3RpbWF0ZWQgYXQganVzdCB1bmRlciAzLDAwMC4gVGhlIGV2ZW50IGNoYW5nZWQgQW1lcmljYW4gZm9yZWlnbiBwb2xpY3kuIEl0IHdhcyBhIG1vdGl2YXRpbmcgZmFjdG9yIGJlaGluZCB0aGUgY29udHJvdmVyc2lhbCBpbnZhc2lvbiBvZiBJcmFxIGFuZCBsZWQgdG8gYSDigJh3YXIgb24gdGVycm9y4oCZIHN5bWJvbGlzZWQgYnkgR3VhbnRhbmFtbyBCYXkgYW5kIGEgZGViYXRlIG92ZXIgdGhlIGp1c3RpZmljYXRpb24gb2YgdG9ydHVyZS4NCjIwMDEgKE9jdCA3KTpbR2VvUG9saXRpY3NdIFVuaXRlZCBTdGF0ZXMgaW52YXNpb24gb2YgQWZnaGFuaXN0YW46IEluIGxhdGUgMjAwMSwgdGhlIFVuaXRlZCBTdGF0ZXMgYW5kIGl0cyBjbG9zZSBhbGxpZXMgaW52YWRlZCBBZmdoYW5pc3RhbiBhbmQgdG9wcGxlZCB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50LiBUaGUgaW52YXNpb24ncyBzdGF0ZWQgYWltcyB3ZXJlIHRvIGRpc21hbnRsZSBhbC1RYWVkYSwgd2hpY2ggaGFkIGV4ZWN1dGVkIHRoZSBTZXB0ZW1iZXIgMTEgYXR0YWNrcywgYW5kIHRvIGRlbnkgaXQgYSBzYWZlIGJhc2Ugb2Ygb3BlcmF0aW9ucyBpbiBBZmdoYW5pc3RhbiBieSByZW1vdmluZyB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50IGZyb20gcG93ZXIuIERlYyA3LCAyMDAxIG9ud2FyZCBzdGFydGVkIFdhciBpbiBBZmdoYW5pc3Rhbi4NCjIwMDEgKE9jdCAxNik6W0Jvb2tdIE1jS2luc2V5IFJlc2VhcmNoZXIgSmFtZXMgQy4gQ29sbGlucycgR29vZCBUbyBHcmVhdDogV2h5IFNvbWUgQ29tcGFuaWVzIE1ha2UgdGhlIExlYXAuLi5BbmQgT3RoZXJzIERvbid0OyANCjIwMDEgKE5vdik6W0NyaW1lXVtJbmRpYV0gQWJkdWwgR2FmZmFyIGFsaWFzIENoaWtuYSBHYWZmYXIgY2F1Z2h0IGJ5IHRoZSBkZXRlY3RpdmUgZGVwYXJ0bWVudCBpbiBDYWxjdXR0YSANCjIwMDEgKEphbiAyKTogVGhlIG5vcnRoZXJuIGVsZWN0cmljYWwgZ3JpZCBjb2xsYXBzZWQgaW4gSW5kaWEuIEEgZmF1bHQgaW4gdGhlIHRyYW5zbWlzc2lvbiBzeXN0ZW0gaW4gdGhlIHN0YXRlIG9mIFV0dGFyIFByYWRlc2ggbGVkIHRvIGNhc2NhZGluZyBmYWlsdXJlIHRocm91Z2hvdXQgbm9ydGhlcm4gSW5kaWEgYWZmZWN0aW5nIDIzIGNyb3JlIHJlc2lkZW50cy4NCjIwMDE6IElWUlMgKCdJbnRlcmFjdGl2ZSBWb2ljZSBSZXNwb25zZSBTeXN0ZW0nKSBmb3IgdGVsZXBob25pYyBlbnF1aXJpZXMgYWJvdXQgdHJhaW5zIGludHJvZHVjZWQgaW4gc29tZSBzdGF0aW9ucy4NCjIwMDE6IE1hZGVFYXN5IGluY29ycG9yYXRlZCBhdCA0NC1BLzEsIEthbHUgU2FyYWksIE5lYXIgSGF1eiBLaGFzIE1ldHJvIFN0YXRpb24sIE5ldyBEZWxoaS0xMTAwMTYNCjIwMDE6IEFjYyB0byAyMDAxIGNlbnN1cywgMzAgbGFraHMgd2VyZSBpbW1pZ3JhdGVkIHRvIEluZGlhIGZyb20gQmFuZ2xhZGVzaCBhbG9uZSwgZm9sbG93ZWQgYnkgMTAgbGFraHMgZnJvbSBQYWtpc3RhbiBhbmQgNiBsYWtocyBmcm9tIE5lcGFsLg0KMjAwMSAoRGVjIDEzKTpbQ3JpbWVdW0luZGlhXSBUZXJyb3Jpc3QgYXR0YWNrIG9uIEluZGlhJ3MgUGFybGlhbWVudC4NCjIwMDE6IHRoZSBjdXN0b21lciBiYXNlIG9mIG1vYmlsZSBwaG9uZSBjb21wYW5pZXMgd2FzIDQgbWlsbGlvbi4NCjIwMDE6IEJlbmVmaXQgbGFubmVycywgVGV4YXMgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBIZWFsdGggQmVuZWZpdCBkaXZpc2lvbi4NCjIwMDE6IE5ldyBIb3Jpem9ucyB3YXMgaW5pdGlhbGx5IHNlbGVjdGVkIGZvciBmdW5kaW5nIGluIDIwMDEgYnV0IHdhcyBleGNsdWRlZCBmcm9tIHRoZSBOQVNBIDIwMDMgYnVkZ2V0LiBGdW5kaW5nIGZvciB0aGUgbWlzc2lvbiB3YXMgcmVpbnN0YXRlZCBhZnRlciBOZXcgSG9yaXpvbnMgd2FzIGxpc3RlZCBhcyBhIHRvcCBwcmlvcml0eSBpbiB0aGUgUGxhbmV0YXJ5IFNjaWVuY2UgRGVjYWRhbCBTdXJ2ZXkgb2YgMjAwM+jjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlallkllklklklklklklklklklklklklklklklklklklklklklklklklklklklkjjajlkasjdlajdlkajdlaj
+KAkzIwMDEuDQoxOTkzOiBBc2hvayBIYWxsIEdpcmwncyBSZXNpZGVudGlhbCBTY2hvb2wsIE1hamtoYWxpLg0KMTk5MzogQnkgdGhpcyB5ZWFyIHRoZXJlIHdlcmUgYXJvdW5kIDEwMCB3ZWItc2VydmVycyBhY3Jvc3MgdGhlIHdvcmxkLiAoQSByZXBvcnQgcHVibGlzaGVkIGluIGZpcnN0IGlzc3VlIG9mIFRoZSBXb3JsZCBXaWRlIFdlYiBOZXdzbGV0dGVyLCAxOTkzKQ0KMTk5MzogQUMgMy10aWVyIGNvYWNoZXMgJiBTbGVlcGVyIGNsYXNzIGFyZSBpbnRyb2R1Y2VkIGFwYXJ0IGZyb20gc2Vjb25kIGNsYXNzLg0KMTk5MzogR29JJ3MgRGlzdHJpY3QgUHJpbWFyeSBFZHVjYXRpb24gUHJvZ3JhbW1lIChEUEVQKSB3YXMgbGF1bmNoZWQsIHdpdGggYW4gYWltIG9mIGFjaGlldmluZyB0aGUgb2JqZWN0aXZlIG9mIHVuaXZlcnNhbCBwcmltYXJ5IGVkdWNhdGlvbi4gVGhpcyBwcm9ncmFtbWVkIGxhaWQgdGhlIGZvdW5kYXRpb25zIGZvciDgpLjgpLDgpY3gpLUg4KS24KS/4KSV4KWN4KS34KS+IOCkheCkreCkv+Ckr+CkvuCkqChFZHVjYXRpb24gZm9yIEFsbCBNb3ZlbWVudCkgYWltZWQgYXQgdGhlIHVuaXZlcnNhbGlzYXRpb24gb2YgZWxlbWVudGFyeSBlZHVjYXRpb24gbWFraW5nIGZyZWUgYW5kIGNvbXB1bHNvcnkgZWR1Y2F0aW9uIHRvIGNoaWxkcmVuIGJldHdlZW4gdGhlIGFnZXMgb2YgNiB0byAxNC4NCjE5OTM6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIHNwbGl0IHdpdGggRGF3b29kIGFuZCBmb3JtZWQgYW4gaW5kZXBlbmRlbnQgZ2FuZyB0aGF0IGZyZXF1ZW50bHkgY2xhc2hlZCB3aXRoIERhd29vZCdzIEQtQ29tcGFueS4NCjE5OTMgKEphbiA3KTpbQ3JpbWVdIFJpb3RzIHJlLXN0YXJ0ZWQgaW4gTXVtYmFpIGFuZCBsYXN0ZWQgZm9yIDIwIGRheXMuIFRoZSBJU0ksIHdoaWNoIGNvbnRyb2xsZWQgc2hpcHBpbmcgcm91dGVzIGZyb20gdGhlIEd1bGYgdG8gSW5kaWEncyB3ZXN0IGNvYXN0LCBkZW1hbmRlZCB0aGF0IHRoZSBtYWZpYSB0cmFuc3BvcnQgd2VhcG9ucyBhbmQgZXhwbG9zaXZlcyBpbnRvIEluZGlhIGluIHJldHVybiBmb3IgdGhlIHVzZSBvZiBQYWtpc3RhbidzIHdhdGVycy4gRGF3b29kIG1ldCB0aGVpciBJU0kgaGFuZGxlcnMgaW4gYSA1IHN0YXIgaG90ZWwgb2YgRHViYWkgaW4gSmFuIG9yIEZlYiBvZiAxOTkzLCB0aGVuIGNhbWUgdGhlIFJEWCB0aHJvdWdoIHRoZSBzYW1lIHBvcm91cyBhbmQgdW5jaGVja2VkIHNlYSByb3V0ZSB0aGF0IDI2LzExIGF0dGFja2VycyBzbGlwcGVkIGFjcm9zcyBhbmQgd3JlY2tlZCBtYXloZW0gaW4gTXVtYmFpLiBUaGUg4oCZOTMgYXR0YWNrcyB3ZXJlIGZpbmFsbHkgZXhlY3V0ZWQgaW4gbWFyY2ggdGhhdCBjbGFpbWVkIHNvbWUgMzAwIGlubm9jZW50IGxpdmVzLg0KMTk5MyAoTWFyIDYpOltQb2xpdHldW0luZGlhXSBTaGFyYWQgUGF3YXIgcmUtZWxlY2V0ZCBhcyBDTSBvZiBNSCBmb3IgMiB5ZWFycy4NCjE5OTMgKE1hciAxMik6W0NyaW1lXSBUaGUgMTk5MyBCb21iYXkgYm9tYmluZ3Mgd2VyZSBhIHNlcmllcyBvZiAxMiB0ZXJyb3Jpc3QgYm9tYmluZ3MgdGhhdCB0b29rIHBsYWNlIGluIEJvbWJheS4gVGhlIHNpbmdsZS1kYXkgYXR0YWNrcyByZXN1bHRlZCBpbiAyNTcgZmF0YWxpdGllcyBhbmQgMSw0MDAgaW5qdXJpZXMuIFRoZXJlIHdhcyBhbm90aGVyIHJhaWQgbmVhciBNYW5pc2ggbWFya2V0IHdoZXJlIGhhbmQgZ3JlbmFkZXMgd2VyZSByZWNvdmVyZWQuIEFmdGVyIGFub3RoZXIgdGlwIG9mZiBsZWQgdG8gZGlzY292ZXJ5IG9mIGEgaHVnZSBxdWFudGl0eSBvZiBSRFggZnJvbSBOYWdsYSBCdW5kZXIgb2ZmIEdob2RidW5kZXIgUm9hZCBpbiBUaGFuZS4g4oCcSW4gYWxsLCA1LDAwMCBraWxvZ3JhbXMgb2YgUkRYIHdhcyBicm91Z2h0IGludG8gTXVtYmFpIGFuZCB3ZSByZWNvdmVyZWQgMywzMDAga2lsb2dyYW1zIG9mIGl0IGluIGFsbCB0aGUgcmFpZHMs4oCdIHNheXMgQ2hhdWd1bGUuIFJlZHVjZWQgU2hvY2sgU2Vuc2l0aXZpdHkgKFJTUykgZXhwbG9zaXZlcywgc3VjaCBhcyBSU1MtUkRYLCB3aGljaCBjb3N0cyBhYm91dCBScy4gMSw1MDAtMiwwMDAgcGVyIGtnLiBBbmVlcyBjb250aW51ZWQgb3BlcmF0aW9uIG9mIEQtQ29tcGFueSB3aGljaCBpbmNsdWRlIGNvbnRyYWN0IGtpbGxpbmcsIGV4dG9ydGlvbiwgdGhlIGNpcmN1bGF0aW9uIG9mIGNvdW50ZXJmZWl0IGN1cnJlbmN5LCBhbmQgdGhlIHByb3Zpc2lvbiBvZiBhIHJhbmdlIG9mIGZyZWUtbGFuY2Ugc2VydmljZXMgdG8gdGVycm9yaXN0IGdyb3VwcyBhdCB0aGUgaW5zdGFuY2Ugb2YgUGFraXN0YW4ncyBJbnRlciBTZXJ2aWNlcyBJbnRlbGxpZ2VuY2UgKElTSSkuIEludGVycG9sIFJlZCBDb3JuZXIgbm90aWNlIGZvciBELUNvbXBhbnkuDQoxOTkzIChOb3YgMSk6IFRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGZvdW5kZWQuIEl0IGlzIGFuIGVjb25vbWljIGFuZCBwb2xpdGljYWwgcGFydG5lcnNoaXAgaW52b2x2aW5nIDI4IEV1cm9wZWFuIGNvdW50cmllcy4gSXQgYmVnYW4gYWZ0ZXIgV1cyIHRvIGZvc3RlciBlY29ub21pYyBjby1vcGVyYXRpb24sIHdpdGggdGhlIGlkZWEgdGhhdCBjb3VudHJpZXMgd2hpY2ggdHJhZGUgdG9nZXRoZXIgYXJlIG1vcmUgbGlrZWx5IHRvIGF2b2lkIGdvaW5nIHRvIHdhciB3aXRoIGVhY2ggb3RoZXIuDQoxOTkzIChOb3YgMyk6IFtHZW9Qb2xpdGljc10gVGhlIENvbW1vbiBNYXJrZXQgZm9yIEVhc3Rlcm4gYW5kIFNvdXRoZXJuIEFmcmljYSAoQ09NRVNBKSBpcyBhIHJlZ2lvbmFsIGVjb25vbWljIGNvbW11bml0eSBpbiBBZnJpY2Egd2l0aCB0d2VudHktb25lIG1lbWJlciBzdGF0ZXMgc3RyZXRjaGluZyBmcm9tIFR1bmlzaWEgdG8gRXN3YXRpbmkuIENPTUVTQSB3YXMgZm9ybWVkIGluIERlY2VtYmVyIDE5OTQsIHJlcGxhY2luZyBhIFByZWZlcmVudGlhbCBUcmFkZSBBcmVhIHdoaWNoIGhhZCBleGlzdGVkIHNpbmNlIDE5ODEuIE5pbmUgb2YgdGhlIG1lbWJlciBzdGF0ZXMgZm9ybWVkIGEgZnJlZSB0cmFkZSBhcmVhIGluIDIwMDAgKERqaWJvdXRpLCBFZ3lwdCwgS2VueWEsIE1hZGFnYXNjYXIsIE1hbGF3aSwgTWF1cml0aXVzLCBTdWRhbiwgWmFtYmlhIGFuZCBaaW1iYWJ3ZSksIHdpdGggUndhbmRhIGFuZCBCdXJ1bmRpIGpvaW5pbmcgdGhlIEZUQSBpbiAyMDA0LCB0aGUgQ29tb3JvcyBhbmQgTGlieWEgaW4gMjAwNiwgU2V5Y2hlbGxlcyBpbiAyMDA5IGFuZCBUdW5pc2lhIGFuZCBTb21hbGlhIGluIDIwMTguDQoxOTkzIChEZWMgMjApOiBPSENIUiBmb3JtZWQuIFRoZSBPZmZpY2Ugb2YgdGhlIFVuaXRlZCBOYXRpb25zIEhpZ2ggQ29tbWlzc2lvbmVyIGZvciBIdW1hbiBSaWdodHMgKE9IQ0hSKSwgYSBVbml0ZWQgTmF0aW9ucyBhZ2VuY3kgdGhhdCB3b3JrcyB0byBwcm9tb3RlIGFuZCBwcm90ZWN0IHRoZSBodW1hbiByaWdodHMgdGhhdCBhcmUgZ3VhcmFudGVlZCB1bmRlciBpbnRlcm5hdGlvbmFsIGxhdyBhbmQgc3RpcHVsYXRlZCBpbiB0aGUgVW5pdmVyc2FsIERlY2xhcmF0aW9uIG9mIEh1bWFuIFJpZ2h0cyBvZiAxOTQ4Lg0KMTk5Mzp0aGUgMjR0aCBhbmQgbGFzdCBHTE9OQVNTIHNhdGVsbGl0ZSB3YXMgbGF1bmNoZWQgZm9ybWluZyB0aGUgd2hvbGUgbmF2aWdhdGlvbiBjb25zdGVsbGF0aW9uIHNpbWlsYXIgdG8gdGhhdCBvZiBVUydzIEdQUy4NCjE5OTM6IFNIQS0wIChhIGhhc2ggZnVuY3Rpb24pIHdhcyBwcm9wb3NlZCBieSBOSVNULCBNYXJ5bGFuZCwgVVNBIChGb3VuZGVkOiAxOTAxKS4gSXQgcHJvZHVjZXMgYSAxNjAtYml0IGhhc2ggdmFsdWUsIHRodXMgdGhlIGJydXRlLWZvcmNlIGNvbGxpc2lvbiBvciAgbmVhci1jb2xsaXNpb24gYXR0YWNrIHJlcXVpcmVzIE8oMl44MCkgY29tcHV0YXRpb24uIFdpdGhpbiA1IHllYXJzLCBpdCB3YXMgbWFkZSBjb2xsaXNpb24gYXR0YWNrZWQgYnkgQ2hhYmF1ZCBhbmQgSm91eCB3aXRoIHRoZSBhdHRhY2sgY29tcGxleGl0eSBvZiAyXjYxLg0KMTk5MzogW0NvYWxnYXRlIHNjYW1dIE9uIDIzcmQgQXByaWwgMjAxMywgdGhlIFN0YW5kaW5nIENvbW1pdHRlZSBvbiBDb2FsIGFuZCBTdGVlbCB0YWJsZWQgaW4gUGFybGlhbWVudCB0aGF0IGFsbCAxOTQgY29hbCBibG9ja3MgZGlzdHJpYnV0ZWQgYmV0d2VlbiAxOTkzIGFuZCAyMDA4IHdlcmUgYXVjdGlvbmVkIGluIGFuIHVuYXV0aG9yaXplZCBtYW5uZXIgYW5kIHRoZSBjb3VudHJ5IGxvc3QgUnMuMS44NiBsYWtoIGNyb3JlLi4gRm9ybWVyIFByaW1lIE1pbmlzdGVyIE1hbm1vaGFuIFNpbmdoLCBhbG9uZyB3aXRoIEt1bWFyIE1hbmdhbGFtIEJpcmxhIGFuZCBQLkMuIFBhcmFraCwgd2VyZSBhY2N1c2VkIGFuZCBzdW1tb25lZCBieSBhIHNwZWNpYWwgY291cnQuIFsyTCBDcm9yZV0uIENvbXB0cm9sbGVyIGFuZCBBdWRpdG9yIEdlbmVyYWwgb2YgSW5kaWEgdG9vayAyMCB5ZWFycyB0byBJRCBvbmUgb2YgdGhlIGJpZ2dlc3Qgc2NhbXMgaW4gSW5kaWFuIGhpc3RvcnkuDQoxOTkzOiBBZnRlciBQcmVzaWRlbnQgQmlsbCBDbGludG9uIHRvb2sgb2ZmaWNlIGluIDE5OTMsIGhvd2V2ZXIsIHRoZSBVLlMuIGVjb25vbXkgZW1iYXJrZWQgb24gYSBsb25nIGFuZCBzdHJvbmcgZXhwYW5zaW9uLCBtYWtpbmcgdGhlIDE5OTBzIGEgZ3JlYXQgZGVjYWRlIGZvciBBbWVyaWNhJ3MgbW9uZXksIG92ZXJhbGwuIA0KMTk5MzpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTW90aHJhKDE5OTIpDQoxOTkzOltTcGFjZV0gSGlwcGFyY29zLCBhIHNjaWVudGlmaWMgc2F0ZWxsaXRlIG9mIHRoZSBFdXJvcGVhbiBTcGFjZSBBZ2VuY3kgKEVTQSkgbGFzdGVkIGZvciA0IHllYXJzIGJlZm9yZSBnb2luZyBvdXQtb2Ytc2VydmljZS4NCjE5OTM6W1NwYWNlXVtSZXNlYXJjaF0gSW4gMTk5MywgRG9uIFBhZ2UgYXJndWVkIHRoYXQgaWYgYSBibGFjayBob2xlIHN0YXJ0cyBpbiBhIHB1cmUgcXVhbnR1bSBzdGF0ZSBhbmQgZXZhcG9yYXRlcyBjb21wbGV0ZWx5IGJ5IGEgdW5pdGFyeSBwcm9jZXNzLCB0aGUgdm9uIE5ldW1hbm4gZW50cm9weSBvZiB0aGUgSGF3a2luZyByYWRpYXRpb24gaW5pdGlhbGx5IGluY3JlYXNlcyBhbmQgdGhlbiBkZWNyZWFzZXMgYmFjayB0byB6ZXJvIHdoZW4gdGhlIGJsYWNrIGhvbGUgaGFzIGRpc2FwcGVhcmVkLiBUaGlzIGlzIGNhbGxlZCB0aGUgUGFnZSBjdXJ2ZS4NCjE5OTM6W0Jvb2tzXVtIaXN0b3J5XSBHcmVlbuKAmXMgRGljdGlvbmFyeSBvZiBTbGFuZyBpcyB0aGUgbGFyZ2VzdCBoaXN0b3JpY2FsIGRpY3Rpb25hcnkgb2YgRW5nbGlzaCBzbGFuZy4gV3JpdHRlbiBieSBKb25hdGhvbiBHcmVlbiBvdmVyIDE3IHllYXJzIGZyb20gMTk5MywgaXQgcmVhY2hlZCB0aGUgcHJpbnRlZCBwYWdlIGluIDIwMTAgaW4gYSB0aHJlZS12b2x1bWUgc2V0IGNvbnRhaW5pbmcgbmVhcmx5IDEwMCwwMDAgZW50cmllcyBzdXBwb3J0ZWQgYnkgb3ZlciA0MDAsMDAwIGNpdGF0aW9ucyBmcm9tIGMuIGFkIDEwMDAgdG8gdGhlIHByZXNlbnQgZGF5LiBUaGUgbWFpbiBmb2N1cyBvZiB0aGUgZGljdGlvbmFyeSBpcyB0aGUgY292ZXJhZ2Ugb2Ygb3ZlciA1MDAgeWVhcnMgb2Ygc2xhbmcgZnJvbSBjLiAxNTAwIG9ud2FyZHMuDQoxOTkzOltFbnZdW0Rpc2FzdGVyXSBTb3V0aCBBc2lhbiBtb25zb29uIGZsb29kcywgM2sgZGVhdGhzDQoxOTkzOltHZW9ncmFwaHldIFRoZSBsYXN0IG1ham9yIHNoaWZ0cyBpbiBFYXJ0aCdzIGF4aXMgd2VyZSBpbmZsdWVuY2VkIGJ5IGNsaW1hdGUgY2hhbmdlOiBhIDMxLjUtaW5jaCBzaGlmdCBiZXR3ZWVuIDE5OTMgYW5kIDIwMTAgd2FzIHByaW1hcmlseSBjYXVzZWQgYnkgZ3JvdW5kd2F0ZXIgcHVtcGluZywgYW5kIGEgY2hhbmdlIGluIHBvbGFyIGRyaWZ0IGRpcmVjdGlvbiBhcm91bmQgdGhlIDE5OTBzIHdhcyBsaW5rZWQgdG8gbWVsdGluZyBnbGFjaWVycyBhbmQgaWNlIHNoZWV0cyBkdWUgdG8gZ2xvYmFsIHdhcm1pbmcuIEVhcnRoJ3MgYXhpcyBhbHNvIHNoaWZ0ZWQgYnkgYWJvdXQgNi41IGluY2hlcyBpbiBNYXJjaCAyMDExIGFmdGVyIHRoZSBKYXBhbmVzZSBlYXJ0aHF1YWtlLCBjYXVzaW5nIHRoZSBwbGFuZXQgdG8gc3BpbiBzbGlnaHRseSBmYXN0ZXIuDQoxOTkzOltXaG9dIEluIDE5OTMsIEluZGlhIGNhbWUgaGVhcnRicmVha2luZ2x5IGNsb3NlIHRvIHdpbm5pbmcgaXRzIGZpcnN0IE1pc3MgVW5pdmVyc2UgY3Jvd24gd2l0aCB0aGUgc3R1bm5pbmcgYW5kIGdyYWNlZnVsIE5hbXJhdGEgU2hpcm9ka2FyLCB3aG8gaGFkIGVhcmxpZXIgd29uIHRoZSBGZW1pbmEgTWlzcyBJbmRpYSB0aXRsZS4gUmVwcmVzZW50aW5nIEluZGlhIGF0IHRoZSBNaXNzIFVuaXZlcnNlIHBhZ2VhbnQgaGVsZCBpbiBNZXhpY28gQ2l0eSwgTmFtcmF0YSB3YXMgYSBzdHJvbmcgY29udGVuZGVy4oCUZWxlZ2FudCBpbiBoZXIgZ293biwgcG9pc2VkIGluIGludGVydmlld3MsIGFuZCBhIGZhbiBmYXZvcml0ZS4gU2hlIGVhc2lseSBtYWRlIGl0IHRvIHRoZSBUb3AgNiwgYW5kIGhlciBjaGFuY2VzIG9mIHdpbm5pbmcgbG9va2VkIGluY3JlZGlibHkgaGlnaC4gQnV0IHRoZW4gY2FtZSB0aGUgZmluYWwgcXVlc3Rpb246IOKAnElmIHlvdSBjb3VsZCBiZSBib3JuIGFzIGFueSBoaXN0b3JpY2FsIGZpZ3VyZSwgd2hvIHdvdWxkIGl0IGJlIGFuZCB3aHk/4oCdIFdoaWxlIG90aGVyIGNvbnRlc3RhbnRzIG5hbWVkIGdsb2JhbCBpY29ucyBsaWtlIE1vdGhlciBUZXJlc2EgYW5kIFByaW5jZXNzIERpYW5hLCBOYW1yYXRhIGdhdmUgYW4gaG9uZXN0LCBwZXJzb25hbCBhbnN3ZXLigJRzaGUgc2FpZCBzaGUgd291bGQgYmUgYm9ybiBhcyBoZXJzZWxmIG9yIHNvbWVvbmUgY2xvc2UgdG8gaGVyLCBiZWNhdXNlIHNoZSBiZWxpZXZlZCBpbiBsaXZpbmcgbGlmZSB3aXRoIHRydXRoIGFuZCBpbmRpdmlkdWFsaXR5LiBJdCB3YXMgYSBiZWF1dGlmdWwsIGdyb3VuZGVkIGFuc3dlcuKAlGJ1dCBub3QgdGhlIGtpbmQgb2YgZ3JhbmQsIGlkZWFsaXN0aWMgcmVzcG9uc2UgdGhlIGp1ZGdlcyB3ZXJlIGV4cGVjdGluZy4gVGhhdCBvbmUgbW9tZW50IG9mIHRydXRoLCBtYW55IGJlbGlldmUsIGNvc3QgaGVyIHRoZSBjcm93biwgYW5kIEluZGlhIGhhZCB0byB3YWl0IGFub3RoZXIgeWVhciBiZWZvcmUgU3VzaG1pdGEgU2VuIGJyb3VnaHQgdGhlIE1pc3MgVW5pdmVyc2UgdGl0bGUgaG9tZSBpbiAxOTk0LiBTdGlsbCwgTmFtcmF0YeKAmXMgYW5zd2VyIGJlY2FtZSBpY29uaWPigJRub3QgYmVjYXVzZSBpdCB3b24sIGJ1dCBiZWNhdXNlIGl0IHdhcyByZWFsLCBtYXJraW5nIGEgcmFyZSBpbnN0YW5jZSB3aGVyZSBob25lc3R5IHN0b29kIHRhbGxlciB0aGFuIGRpcGxvbWFjeS4NCjE5OTM6W0F2aWF0aW9uXVtFeHRyZW1lXVtXaG9dIFRoZSBIZXJic3QgbWFuZXV2ZXIgd2FzIGZpcnN0IHN1Y2Nlc3NmdWxseSBwZXJmb3JtZWQgb24gQXByaWwgMjksIDE5OTMsIGJ5IGFuIFgtMzEgYWlyY3JhZnQuIE5hbWVkIGFmdGVyIFdvbGZnYW5nIEhlcmJzdCwgYSBkZXZlbG9wZXIgb2YgcG9zdC1zdGFsbCB0ZWNobm9sb2d5IGZvciBNZXNzZXJzY2htaXR0LULDtmxrb3ctQmxvaG0gKE1CQiksIHRoaXMsIHBvc3Qtc3RhbGwgbWFuZXV2ZXIgZW5hYmxlcyBhIGZpZ2h0ZXIgdG8gbWFrZSBhIHJhcGlkIDE4MMKwIHR1cm4gd2l0aGluIGEgbWluaW1hbCByYWRpdXMuIA0KDQoxOTk04oCTMTk5NTpbVVNdW0dlb1BvbGl0aWNzXSBvY2N1cGF0aW9uIG9mIEhhaXRpLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgRXVyb3BlYW4gRWNvbm9taWMgQXJlYSwgYWJicmV2aWF0ZWQgYXMgRUVBLCBjb25zaXN0cyBvZiB0aGUgTWVtYmVyIFN0YXRlcyBvZiB0aGUgRXVyb3BlYW4gVW5pb24gKEVVKSBhbmQgdGhyZWUgY291bnRyaWVzIG9mIHRoZSBFdXJvcGVhbiBGcmVlIFRyYWRlIEFzc29jaWF0aW9uIChFRlRBKSAoSWNlbGFuZCwgTGllY2h0ZW5zdGVpbiBhbmQgTm9yd2F5OyBleGNsdWRpbmcgU3dpdHplcmxhbmQpLiBUaGUgQWdyZWVtZW50IG9uIHRoZSBFRUEgZW50ZXJlZCBpbnRvIGZvcmNlIG9uIDEgSmFudWFyeSAxOTk0LiANCjE5OTQ6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEV1cm9wZWFuIEVjb25vbWljIEFyZWEgKEVFQSkgd2FzIGVzdGFibGlzaGVkIG9uIDEgSmFudWFyeSAxOTk0LiBUaGUgYWdyZWVtZW50IGxpbmtzIHRoZSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aHJlZSBFRlRBIHN0YXRlc+KAlEljZWxhbmQsIExpZWNodGVuc3RlaW4sIGFuZCBOb3J3YXnigJRpbnRvIGEgc2luZ2xlIGludGVybmFsIG1hcmtldCwgYWxsb3dpbmcgZm9yIHRoZSBmcmVlIG1vdmVtZW50IG9mIGdvb2RzLCBwZXJzb25zLCBzZXJ2aWNlcywgYW5kIGNhcGl0YWwuIA0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBOQUZUQSwgdGhlIE5vcnRoIEFtZXJpY2FuIEZyZWUgVHJhZGUgQWdyZWVtZW50LCB3YXMgYSAxOTk0IGFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzLCBDYW5hZGEsIGFuZCBNZXhpY28gdG8gZWxpbWluYXRlIHRyYWRlIGJhcnJpZXJzIGFuZCBwcm9tb3RlIGZyZWUgdHJhZGUgaW4gTm9ydGggQW1lcmljYS4gSXQgZmFjaWxpdGF0ZWQgdGhlIG1vdmVtZW50IG9mIGdvb2RzIGFuZCBzZXJ2aWNlcyBhbmQgZXN0YWJsaXNoZWQgYSBsYXJnZSB0cmFkZSBibG9jLiBJbiBKdWx5IDIwMjAsIE5BRlRBIHdhcyByZXBsYWNlZCBieSB0aGUgVW5pdGVkIFN0YXRlcy1NZXhpY28tQ2FuYWRhIEFncmVlbWVudCAoVVNNQ0EpLCB3aGljaCBtb2Rlcm5pemVkIGFuZCBlbmhhbmNlZCB0aGUgdHJlYXR5IGZvciBhIGNvbnRlbXBvcmFyeSBlY29ub215Lg0KMTk5NDpbUy5BZnJpY2FdW1NvY2lhbGlzbV0gRmlyc3QgZnJlZSBlbGVjdGlvbnMgaW4gU291dGggQWZyaWNhOyBOZWxzb24gTWFuZGVsYQ0KMTk5NDpbUmVzZWFyY2hdW3NwYWNlXSBDYXJsIFNhZ2FuIGNvbmNlZGVkIHRoYXQgdGhpcyBhcHByb2FjaCB3b3VsZCBub3Qgd29yayBiZWNhdXNlIHRoZSBhdG1vc3BoZXJlIG9mIFZlbnVzIGlzIGZhciBkZW5zZXIgKDkwIGJhcnMpIHRoYW4gd2hhdCB3YXMgdW5kZXJzdG9vZCBpbiAxOTYxIChhIGZldyBiYXJzKSwgbWVhbmluZyB0aGUgY2FyYm9uIHdvdWxkIGp1c3QgYmUgb3hpZGl6ZWQgYmFjayBpbnRvIENPMi4NCjE5OTQ6W0NvbXB1dGluZ11bUXVhbnR1bV0gUGV0ZXIgU2hvciBkaXNjb3ZlcmVkIGFuIGFsZ29yaXRobSAoU2hvcidzIGFsZ29yaXRobSkgdGhhdCBjb3VsZCBmYWN0b3IgbGFyZ2UgbnVtYmVycyBpbiBwb2x5bm9taWFsIHRpbWUgb24gYSBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCB3b3VsZCBicmVhayB0aGUgc2VjdXJpdHkgb2YgbWFueSBjcnlwdG9ncmFwaGljIHNjaGVtZXMuIA0KMTk5NDpbQ29tcHV0aW5nXVtRdWFudHVtXSBQZXRlciBTaG9yIGFuZCBEb24gQ29wcGVyc21pdGggZmlndXJlZCBvdXQgaG93IHRvIHRha2UgYSBRdWFudHVtIEZvdXJpZXIgVHJhbnNmb3JtLg0KMTk5NDpUaGUgcHJvYmxlbSB3aXRoIHRoZSBwYXBlciBwdWJsaXNoZWQgZWFybGllciB0aGlzIG1vbnRoIHdhcyBpdHMgcmVsaWFuY2Ugb24gU2Nobm9ycidzIGFsZ29yaXRobSAobm90IHRvIGJlIGNvbmZ1c2VkIHdpdGggU2hvcuKAmXMgYWxnb3JpdGhtKSwgd2hpY2ggd2FzIGRldmVsb3BlZCBpbiAxOTk0LiBTY2hub3Jy4oCZcyBhbGdvcml0aG0gaXMgYSBjbGFzc2ljYWwgY29tcHV0YXRpb24gYmFzZWQgb24gbGF0dGljZXMsIHdoaWNoIGFyZSBtYXRoZW1hdGljYWwgc3RydWN0dXJlcyB0aGF0IGhhdmUgbWFueSBhcHBsaWNhdGlvbnMgaW4gY29uc3RydWN0aXZlIGNyeXB0b2dyYXBoeSBhbmQgY3J5cHRhbmFseXNpcy4gVGhlIGF1dGhvcnMgd2hvIGRldmlzZWQgU2Nobm9ycuKAmXMgYWxnb3JpdGhtIHNhaWQgaXQgY291bGQgZW5oYW5jZSB0aGUgdXNlIG9mIHRoZSBoZXVyaXN0aWMgcXVhbnR1bSBvcHRpbWl6YXRpb24gbWV0aG9kIGNhbGxlZCBRQU9BLg0KMTk5NCAoSmFuIDEpOiBbR2VvUG9saXRpY3NdIFRoZSBOb3J0aCBBbWVyaWNhbiBGcmVlIFRyYWRlIEFncmVlbWVudCAoTkFGVEEpIHdhcyBhbiBhZ3JlZW1lbnQgc2lnbmVkIGJ5IENhbmFkYSwgTWV4aWNvLCBhbmQgdGhlIFVuaXRlZCBTdGF0ZXMgdGhhdCBjcmVhdGVkIGEgdHJpbGF0ZXJhbCB0cmFkZSBibG9jIGluIE5vcnRoIEFtZXJpY2EuIFRoZSBhZ3JlZW1lbnQgY2FtZSBpbnRvIGZvcmNlIG9uIEphbnVhcnkgMSwgMTk5NCwgYW5kIHN1cGVyc2VkZWQgdGhlIDE5ODggQ2FuYWRh4oCTVW5pdGVkIFN0YXRlcyBGcmVlIFRyYWRlIEFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzIGFuZCBDYW5hZGEuIFRoZSBOQUZUQSB0cmFkZSBibG9jIGZvcm1lZCBvbmUgb2YgdGhlIGxhcmdlc3QgdHJhZGUgYmxvY3MgaW4gdGhlIHdvcmxkIGJ5IGdyb3NzIGRvbWVzdGljIHByb2R1Y3QuDQoxOTk0OltUZWNobm9sb2d5XVtCdXNpbmVzc11bVVNdW0NvbXB1dGluZ10gVGhlIERlbGwgTGF0aXR1ZGUgc2VyaWVzIGlzIGEgbGluZSBvZiBsYXB0b3AgY29tcHV0ZXJzIG1hbnVmYWN0dXJlZCBhbmQgc29sZCBieSBBbWVyaWNhbiBjb21wYW55IERlbGwuIEl0IGlzIGEgYnVzaW5lc3Mtb3JpZW50ZWQgbGluZSwgYWltZWQgYXQgY29ycG9yYXRlIGVudGVycHJpc2VzLCBoZWFsdGhjYXJlLCBnb3Zlcm5tZW50LCBhbmQgZWR1Y2F0aW9uIG1hcmtldHM7IHVubGlrZSB0aGUgSW5zcGlyb24gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBpbmRpdmlkdWFsIGN1c3RvbWVycywgYW5kIHRoZSBWb3N0cm8gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBzbWFsbGVyIGJ1c2luZXNzZXMuIFRoZSBMYXRpdHVkZSBkaXJlY3RseSBjb21wZXRlcyB3aXRoIHRoZSBMZW5vdm8gVGhpbmtQYWQgYW5kIHRoZSBFbGl0ZUJvb2sgc2VyaWVzIGJ5IEhQLiBBZGRpdGlvbmFsbHksIHRoZSAiUnVnZ2VkIChFeHRyZW1lKSIsICJYRlIiIGFuZCAiQVRHIiBtb2RlbHMgY29tcGV0ZSBwcmltYXJpbHkgd2l0aCBQYW5hc29uaWMncyBUb3VnaGJvb2sgbGluZSBvZiAicnVnZ2VkIiBsYXB0b3BzLg0KMTk5NDogU3VzaG1pdGEgU2VuIGJlY2FtZSBNaXNzIFVuaXZlcnNlLg0KMTk5NDogVGhlIEFubmFscyBvZiBJbXByb2JhYmxlIFJlc2VhcmNoIGlzIGEgYmktbW9udGhseSBtYWdhemluZSBkZXZvdGVkIHRvIHNjaWVudGlmaWMgaHVtb3IsIGluIHRoZSBmb3JtIG9mIGEgc2F0aXJpY2FsIHRha2Ugb24gdGhlIHN0YW5kYXJkIGFjYWRlbWljIGpvdXJuYWwuDQoxOTk0OiBMaW5kb24gTGVhZGVyIG9mIExhbmRvciBBc3NvY2lhdGVzLCBvZiBTYW4gRnJhbmNpc2NvIGRlc2lnbmVkIHdvcmRtYXJrcyBmb3IgRmVkRXgncyB2YXJpb3VzIE9wLXVuaXQuIEZlZEV44oCZcyBwdWJsaWMtcmVsYXRpb25zIGZpcm0gd2FudGVkIHRvIGhpZ2hsaWdodCB0aGUgYXJyb3cgc28gaXQgd291bGQgYmUgb2J2aW91cy4gQnV0IGhlIGZvdWdodCB0aGVtIG9uIHRoYXQg4oCUIGhlIHRob3VnaHQgaXQgd291bGQgYmUgb3ZlcmtpbGwuIFRoZXJl4oCZcyBzb21ldGhpbmcgYWJvdXQgbWFraW5nIHBlb3BsZSBkaXNjb3ZlciBzb21ldGhpbmcgb24gdGhlaXIgb3duIHRoYXTigJlzIGEgbG90IG1vcmUgcG93ZXJmdWwgdGhhbiBpdGFsaWNpemluZyBpdCB0byBtYWtlIHlvdXIgcG9pbnQuDQoxOTk0OiBTY2lsYWIgMS4xLCB0aGUgZmlyc3QgcmVsZWFzZWQgdmVyc2lvbiBvZiBTY2lsYWIsIHdhcyBwdXQgb24gYW5vbnltb3VzIGZ0cCBzaXRlLg0KMTk5NDogVGhlIGNvbmNlcHQgb2YgYSBjYWbDqSB3aXRoIGZ1bGwgSW50ZXJuZXQgYWNjZXNzIChhbmQgdGhlIG5hbWUgQ3liZXJjYWbDqSkgd2FzIGludmVudGVkIGluIGVhcmx5IGJ5ICBhIEJyaXRpc2ggdGVjaG5vbG9neSBhcnRpc3QsIEl2YW4gUG9wZS4NCjE5OTQ6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIGx1cmVkIG9uZSBvZiBEYXdvb2QncyBmYXZvcml0ZSAibmFyY28tdGVycm9yaXN0IiBQaGlsbHUgS2hhbiBhbGlhcyBCYWtodGl5YXIgQWhtZWQgS2hhbiB0byBhIGhvdGVsIHJvb20gaW4gQmFuZ2tvaywgd2hlcmUgaGUgd2FzIHRvcnR1cmVkIHRvIGRlYXRoLCBoYXZpbmcgYmVlbiBiZXRyYXllZCBieSBoaXMgY2xvc2VzdCBhaWRlIGFuZCBzaWRla2ljayBNYW5nZXNoICJNYW5neWEiIFBhd2FyLiBELUNvbXBhbnkncyBTaGFyYWQsIHVzZWQgaGlzIGxpbmtzIHdpdGggTXVtYmFpLWJhc2VkIGhvdGVsaWVyIFZpbm9kIGFuZCBBLiBNaXNocmEgdG8gdHJhY2sgZG93biBSYWphbiBpbiBCYW5na29rLiBSYWphbidzIGhpdG1hbiBSb2hpdCBWYXJtYSBhbmQgaGlzIHdpZmUgc2hvdCBieSBELUNvbXBhbnkuDQoxOTk0KEp1bCAxNik6W1NwYWNlXSBGcm9tIEp1bHkgMTYgdG8gMjIsIDE5OTQsIGVub3Jtb3VzIHBpZWNlcyBvZiB0aGUgY29tZXQgU2hvZW1ha2VyLUxldnkgOSAoU0w5KSwgZGlzY292ZXJlZCBqdXN0IGEgeWVhciBwcmlvciwgY3Jhc2hlZCBpbnRvIEp1cGl0ZXIgb3ZlciBzZXZlcmFsIGRheXMsIGNyZWF0aW5nIGh1Z2UsIGRhcmsgc2NhcnMgaW4gdGhlIHBsYW5ldCdzIGF0bW9zcGhlcmUgYW5kIGxvZnRpbmcgc3VwZXJoZWF0ZWQgcGx1bWVzIGludG8gaXRzIHN0cmF0b3NwaGVyZS4NCjE5OTQgKE9jdCk6IElUUE8gYW5kIEdvSSdzIE5JQyBqb2ludGx5IHNldC11cCB0aGUgTmF0aW9uYWwgQ2VudHJlIGZvciBUcmFkZSBJbmZvcm1hdGlvbiAoTkNUSSkgYXQgUHJhZ2F0aSBNYWlkYW4uDQoxOTk0IChOb3YgMSwgMTU6MDEgSVNUKTpbU3BhY2VdW1N1bl0gVGhlIEdsb2JhbCBHZW9zcGFjZSBTY2llbmNlICdXaW5kJyBzYXRlbGxpdGUgaXMgYSBOQVNBIHNjaWVuY2Ugc3BhY2VjcmFmdCBkZXNpZ25lZCB0byBzdHVkeSByYWRpbyB3YXZlcyBhbmQgcGxhc21hIHRoYXQgb2NjdXIgaW4gdGhlIHNvbGFyIHdpbmQgYW5kIGluIHRoZSBFYXJ0aCdzIG1hZ25ldG9zcGhlcmUuIA0KMTk5NCAoRGVjIDMpOiBTb255J3MgUGxheVN0YXRpb24gKGEgdmlkZW8gZ2FtZSBjb25zb2xlKSB3YXMgaW50cm9kdWNlZCB0byB0aGUgd29ybGQgZnJvbSBNaW5hdG8sIFRva3lvIChKYXBhbikuDQoxOTk0OiBXWFlDLSBmaXJzdCBpbnRlcm5ldCByYWRpbyBzdGF0aW9uIGJyb2FkY2FzdC4NCjE5OTQ6IE1lbW9yeSBjYXJkcyB3ZXJlIGludHJvZHVjZWQgaW4gdGhlIGNvbnN1bWVyIGVsZWN0cm9uaWNzIG1hcmtldC4NCjE5OTQgKEF1Zyk6IElUUE8ncyAxc3QgRGVsaGkgQm9vayBGYWlyIGF0ICBIYWxsIDggdG8gMTIgb2YgUHJhZ2F0aSBNYWlkYW4sIE5ldyBEZWxoaS4gVGhlIHRpbWluZ3Mgb2YgZmFpciBhcmUgZnJvbSAxMC4wMCBhbSB0byA4LjAwIHBtIChlbnRyeSB0byBmYWlyIHdpbGwgY2xvc2UgYXQgNy4zMCBwbSkuDQoxOTk0IChTZXApOiBUaGUgQ09OQ0VSVCBzb2Z0d2FyZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgaW1wbGVtZW50ZWQgYXQgYWxsIG9mIHRoZSBmaXZlIFBSUycgc2l0ZXMgU2VjdW5kZXJhYmFkIGluIFNlcHQuIDE5OTQsIE5ldyBEZWxoaSBvbiBTZXB0LiAxOTk2LCBDYWxjdXR0YSBvbiAxNHRoIEp1bmUgMTk5OCwgTXVtYmFpIG9uIDExdGggSmFuIDE5OTkgYW5kIENoZW5uYWkgb24gMTJ0aCBBcHJpbCAxOTk5Lg0KMTk5NDogdGhlIDI0dGggYW5kIHRoZSBsYXN0IEdQUyBzYXRlbGxpdGUgd2FzIGxhdW5jaGVkIGluIFVTLg0KMTk5NDogVGhlIHdvcmQgVGFsaWJhbiBpcyBQYXNodG8sINi32KfZhNio2KfZhiDhua3EgWxpYsSBbiwgbWVhbmluZyAic3R1ZGVudHMiLCB0aGUgcGx1cmFsIG9mIOG5rcSBbGliLiBBZnRlciB0aGUgU292aWV0IFVuaW9uIGludGVydmVuZWQgYW5kIG9jY3VwaWVkIEFmZ2hhbmlzdGFuIGluIDE5NzksIElzbGFtaWMgbXVqYWhpZGVlbiBmaWdodGVycyBlbmdhZ2VkIGluIHdhciB3aXRoIHRob3NlIFNvdmlldCBmb3JjZXMsIHdoaWNoIGxhaWQgdGhlIGZvdW5kYXRpb24gb2YgcG9saXRpY2FsIG1vdmVtZW50IGFuZCBtaWxpdGFyeSBvcmdhbml6YXRpb24gbmFtZWQgVGFsaWJhbi4NCjE5OTQ6IEFiZHVsIEthcmVlbSBUZWxnaSBhY3F1aXJlZCB0aGUgbGljZW5zZSBmb3Igc2VsbGluZyBzdGFtcCBwYXBlciBhbmQgb3BlbmVkIGFuIG9mZmljZSBpbiBNdW1iYWkuIEFmdGVyIHRoYXQsIGhlIHN0YXJ0ZWQgcHJpbnRpbmcgc3RhbXAgcGFwZXIgaW4gTmFzaGlrLiBXaXRoIHNvbWUgYWdlbnRz4oCZIGhlbHAsIGhlIHN0YXJ0cyBzZWxsaW5nIGZha2Ugc3RhbXAgcGFwZXIgaW4gYnVsayB0byBiYW5rcywgaW5zdXJhbmNlIGNvbXBhbmllcywgc3RvY2sgYnJva2VyYWdlIGZpcm1zLCBhbmQgY29ycG9yYXRlcy4gSW4gMjAwMyB0aGUgVGVsZ2kgc2NhbSB3YXMgdW5mb2xkZWQ7IHRoZSBmaWd1cmUgaW4gdGhlIG1pbmQgb2Ygc2VjdXJpdHkgYW5kIGludGVsbGlnZW5jZSBhZ2VuY2llcyB3YXMgdXAgdG8gUnMuMjBrIENyb3JlDQoxOTk0OiBbR2VvUG9saXRpY3NdIEludGVybmF0aW9uYWwgQXNzb2NpYXRpb24gb2YgR2VuZGFybWVyaWVzIGFuZCBQb2xpY2UgRm9yY2VzIHdpdGggTWlsaXRhcnkgU3RhdHVzIChjb21tb25seSBrbm93biBhcyBGSUVQIGZvciBGcmFuY2UtSXRhbGlhLUVzcGHDsWEtUG9ydHVnYWwsIHRoZSBmaXJzdCBmb3VyIG1lbWJlcnMpIGlzIGFuIGFzc29jaWF0aW9uIG9mIG5hdGlvbmFsIGdlbmRhcm1lcmllcyBvciBtaWxpdGFyeSBwb2xpY2UgZm9yY2VzLg0KMTk5NDpbQm9va10gUGFsZSBCbHVlIERvdDogQSBWaXNpb24gb2YgdGhlIEh1bWFuIEZ1dHVyZSBpbiBTcGFjZSBpcyBhIDE5OTQgYm9vayBieSB0aGUgYXN0cm9ub21lciBDYXJsIFNhZ2FuLiBJdCBpcyB0aGUgc2VxdWVsIHRvIFNhZ2FuJ3MgMTk4MCBib29rIENvc21vcyBhbmQgd2FzIGluc3BpcmVkIGJ5IHRoZSBmYW1vdXMgMTk5MCBQYWxlIEJsdWUgRG90IHBob3RvZ3JhcGgsIGZvciB3aGljaCBTYWdhbiBwcm92aWRlcyBhIHBvaWduYW50IGRlc2NyaXB0aW9uLiBJbiB0aGUgYm9vaywgU2FnYW4gbWl4ZXMgcGhpbG9zb3BoeSBhYm91dCB0aGUgaHVtYW4gcGxhY2UgaW4gdGhlIHVuaXZlcnNlIHdpdGggYSBkZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCBrbm93bGVkZ2UgYWJvdXQgdGhlIFNvbGFyIFN5c3RlbS4gSGUgYWxzbyBkZXRhaWxzIGEgaHVtYW4gdmlzaW9uIGZvciB0aGUgZnV0dXJlLg0KMTk5NDpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTWVjaGFnb2R6aWxsYSBJSSgxOTkzKQ0KMTk5NDpbQ2luZW1hXSBUaGUgQXBwbGUoMTk4MCkNCjE5OTQ6W0NpbmVtYV0gVGhlIEF0bGFudGlzIEludGVyY2VwdG9ycygxOTgzKQ0KMTk5NDpbTW50bmdnXSBJbiAxOTk0LCBNYXJrIFdoZXR1IHN1bW1pdHRlZCBNdCBFdmVyZXN0IHdpdGggTWlrZSBSZWluYmVyZ2VyLiBCdXQgYWZ0ZXIgYSBmcmVlemluZyBuaWdodCwgV2hldHUgZmFjZWQgYSBoYXJyb3dpbmcgY2hvaWNlOiBsZWF2ZSBoaXMgZnJpZW5kIG9yIHJlbWFpbiBmb3JldmVyLiBUaGUgRmF0YWwgR2FtZSAoMTk5NykNCjE5OTQ6W1RvdXJpc21dIFRoZSBBZHZlbnR1cmUgVG91ciBPcGVyYXRvcnMgQXNzb2NpYXRpb24gb2YgSW5kaWEgKEFUT0FJKSB3YXMgZm91bmRlZCBpbiAxOTk0LiBJdCB3YXMgZXN0YWJsaXNoZWQgYnkgYSBncm91cCBvZiB0cmF2ZWwgdHJhZGUgYWR2ZW50dXJlcnMgd2hvIGFpbWVkIHRvIGNyZWF0ZSBhIHN0cm9uZyBzdXBwb3J0IG5ldHdvcmsgZm9yIEluZGlhbiBhZHZlbnR1cmUgdG91ciBvcGVyYXRvcnMuIA0KDQoxOTk1IChNYXkgMTkpOiBbUmVzZWFyY2hdW1NwYWNlXSB0d28gc2NpZW50aXN0cyBhdCBDYWwgUG9seSBzaG93ZWQgdGhhdCBiYWN0ZXJpYSBjYW4gc3Vydml2ZSB3aXRob3V0IGFueSBtZXRhYm9saXNtIGZvciBhdCBsZWFzdCAyNSBtaWxsaW9uIHllYXJzOyBwcm9iYWJseSB0aGV5IGFyZSBpbW1vcnRhbC4NCjI0IE5vdmVtYmVyIDE5OTU6IFRoZSBOZXcgWW9yayBUaW1lcyBkZXNjcmliZWQgYmFjdGVyaWEgdGhhdCBjYW4gc3Vydml2ZSByYWRpYXRpb24gbXVjaCBzdHJvbmdlciB0aGFuIGFueSB0aGF0IEVhcnRoIGhhcyBldmVyIGV4cGVyaWVuY2VkLg0KV2UgYXJlIGNhbGxpbmcgdGhlIHVuaW9uIG9mIExvdmVsb2NrJ3MgR2FpYSB3aXRoIEhveWxlIGFuZCBXaWNrcmFtYXNpbmdoZSdzIGV4cGFuZGVkIHRoZW9yeSBvZiBwYW5zcGVybWlhIENvc21pYyBBbmNlc3RyeS4gVGhpcyBhY2NvdW50IG9mIGV2b2x1dGlvbiBhbmQgdGhlIG9yaWdpbiBvZiBsaWZlIG9uIEVhcnRoIGlzIHByb2ZvdW5kbHkgZGlmZmVyZW50IGZyb20gdGhlIHByZXZhaWxpbmcgc2NpZW50aWZpYyBwYXJhZGlnbS4gSXQgY2hhbGxlbmdlcyBub3QgbWVyZWx5IHRoZSBhbnN3ZXJzIGJ1dCB0aGUgcXVlc3Rpb25zIHRoYXQgYXJlIHBvcHVsYXIgdG9kYXkuIENvc21pYyBBbmNlc3RyeSByZXF1aXJlcyB0aGF0IGxpZmUgY2FuIG9ubHkgZGVzY2VuZCBmcm9tIGFuY2VzdG9ycyBhdCBsZWFzdCBhcyBoaWdobHkgZXZvbHZlZCBhcyBpdHNlbGYsIGFuZCB0aGF0IHRoZXJlIGNhbiBiZSBubyBvcmlnaW4gb2YgbGlmZSBmcm9tIG5vbmJpb2xvZ2ljYWwgbWF0dGVyLiBXaXRob3V0IHN1cGVybmF0dXJhbCBpbnRlcnZlbnRpb24sIHRoZXJlZm9yZSwgd2UgY29uY2x1ZGUgdGhhdCBsaWZlIG11c3QgaGF2ZSBhbHdheXMgZXhpc3RlZC4gQWx0aG91Z2ggdGhlc2UgY29uY2x1c2lvbnMgY3V0IGFjcm9zcyB0aGUgYm91bmRhcmllcyBiZXR3ZWVuIHNjaWVuY2UsIHBoaWxvc29waHksIGFuZCByZWxpZ2lvbiwgd2UgYmVsaWV2ZSB0aGV5IGFyZSBncm91bmRlZCBpbiBnb29kIGV2aWRlbmNlLiBBbmQgbmV3IGRhdGEgdGhhdCBzdXBwb3J0IG1hbnkgYXNwZWN0cyBvZiBDb3NtaWMgQW5jZXN0cnkgYXJlIGNvbWluZyBpbiByYXBpZGx5LiBJbiB0aGUgZm9sbG93aW5nIHBhZ2VzIHdlIHdpbGwgZXhwbGFpbiBob3cgdGhlc2UgYW5kIG90aGVyIHJlY2VudCBkZXZlbG9wbWVudHMgc3VwcG9ydCBDb3NtaWMgQW5jZXN0cnk6DQoNCjE5OTU6IEFOU0VUIHNvbGQgdG8gQU9MLCB3aG8gIG5vdyBydW5zIGl0Lg0KMTk5NSAoTWFyKTogRGVwdC4gb2YgSW5kaWFuIE1lZGljaW5lIGFuZCBIb21lb3BhdGh5IGZvdW5kZWQuDQoxOTk1IChNYXIgMjQpOltSZXNlYXJjaF0gUmVtb3RlbHkgT3BlcmF0ZWQgVmVoaWNsZSBLQUlLTyByZWFjaGVkIHRoZSBkZWVwZXN0IGFyZWEgb2YgdGhlIE1hcmlhbmEgVHJlbmNoIGFuZCBtYWRlIHRoZSBkZWVwZXN0IGRpdmluZyByZWNvcmQgb2YgMTAsOTExIG0gKDM1LDc5NyBmdDsgNSw5NjYgZmF0aG9tcykgDQoxOTk1OiBwaG9uZSBjYWxsIGNvc3RpbmcgUnMuIDE2IHBlciBtaW4uDQoxOTk1OltHYW1pbmddIFZpcnR1YSBDb3AgMiBpcyBhIGxpZ2h0IGd1biBzaG9vdGVyIGFyY2FkZSBnYW1lLCByZWxlYXNlZCBpbiAxOTk1IGFuZCBkZXZlbG9wZWQgaW50ZXJuYWxseSBhdCBTZWdhIGJ5IHRoZWlyIEFNMiBzdHVkaW8gKFl1IFN1enVraSkuIEl0IHdhcyBwb3J0ZWQgdG8gdGhlIFNlZ2EgU2F0dXJuIGluIDE5OTYuIEl0IHdhcyByZWxlYXNlZCBvbiBQQyBpbiAxOTk3IGFuZCBTZWdhIERyZWFtY2FzdCBpbiAyMDAwLiBJdCB3YXMgbGF0ZXIgYnVuZGxlZCB3aXRoIFZpcnR1YSBDb3AgaW4gVmlydHVhIENvcDogRWxpdGUgRWRpdGlvbiBmb3IgUGxheVN0YXRpb24gMiBpbiAyMDAyLg0KMTk5NSAoQXByIDEpOltSZXNlYXJjaF0gUGlsbGFycyBvZiBDcmVhdGlvbiBpcyBhIHBob3RvZ3JhcGggdGFrZW4gYnkgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgb2YgZWxlcGhhbnQgdHJ1bmtzIG9mIGludGVyc3RlbGxhciBnYXMgYW5kIGR1c3QgaW4gdGhlIEVhZ2xlIE5lYnVsYSwgaW4gdGhlIFNlcnBlbnMgY29uc3RlbGxhdGlvbiwgc29tZSA2LDUwMOKAkzcsMDAwIGxpZ2h0LXllYXJzICgyLDAwMOKAkzIsMTAwIHBjOyA2MeKAkzY2IEVtKSBmcm9tIEVhcnRoLg0KMTk5NSAoQXByIDEpOiBJQUFJIGFuZCBOQUEgd2VyZSBtZXJnZWQgYnkgYW4gQWN0IG9mIFBhcmxpYW1lbnQgYW5kIHdhcyBuYW1lZCBhcyBBaXJwb3J0cyBBdXRob3JpdHkgb2YgSW5kaWEgKEFBSSkuIFRoaXMgbmV3IG9yZ2FuaXNhdGlvbiB3YXMgdG8gYmUgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nLCB1cGdyYWRpbmcsIG1haW50YWluaW5nIGFuZCBtYW5hZ2luZyBjaXZpbCBhdmlhdGlvbiBpbmZyYXN0cnVjdHVyZSBib3RoIG9uIHRoZSBncm91bmQgYW5kIGFpciBzcGFjZSBpbiB0aGUgY291bnRyeS4NCjE5OTUgKEFwciAyMSk6W0NyaW1lXVtJbmRpYV0gQmFibG9vIHBpY2tlZCB1cCBieSB0aGUgU2luZ2Fwb3JlIGFpcnBvcnQgcG9saWNlIGZvciB0cmF2ZWxsaW5nIG9uIGZha2UgcGFzc3BvcnQuIEhlIHdhcyBzdGF5aW5nIGluIER1YmFpLg0KMTk5NSAoU2VwIDMwKTpbQ3JpbWVdW0luZGlhXSBTaW5nYXBvcmUgZXh0cmFkaXRlcyBJbmRpYSdzICdtb3N0LXdhbnRlZCBpbnRlci1zdGF0ZSBjcmltaW5hbCcgQmFibG9vIFNyaXZhc3RhdmEgKDMzWU8pDQoxOTk1IChOb3YgMzApOiBPcGVyYXRpb24gRGVzZXJ0IFN0b3JtIChGaXJzdCBJcmFxIFdhcilvZmZpY2lhbGx5IGVuZGVkLg0KMTk5NSAoTWF5IDMxKTpbQm9va11bTWlsaXRhcnldIEFkbWlyYWwgV2lsbGlhbSBILiBNY1JhdmVuJ3MgU3BlYyBPcHM6IENhc2UgU3R1ZGllcyBpbiBTcGVjaWFsIE9wZXJhdGlvbnMgV2FyZmFyZTogVGhlb3J5IGFuZCBQcmFjdGljZTsgU2VhIFN0b3JpZXM6IE15IExpZmUgaW4gU3BlY2lhbCBPcGVyYXRpb25zICgyMDE5LCBNYXkgMSk7IFRoZSBIZXJvIENvZGU6IExlc3NvbnMgTGVhcm5lZCBmcm9tIExpdmVzIFdlbGwgTGl2ZWQgKDIwMjEsIEFwciAxMykNCjE5OTU6IERyLiBIYW5kZSBhZnRlciBncmFkdWF0aW5nIGZyb20gSUlUIEtoYXJhZ3B1ciBjb25jZXB0dWFsaXplZCBTRUxDTyBJbmRpYSBkdXJpbmcgaGlzIFBoRCBvbiBzdXN0YWluYWJsZSBlbmVyZ3kgYXQgdGhlIFVuaXZlcnNpdHkgb2YgTWFzc2FjaHVzZXR0cy4gRHVyaW5nIGEgZmllbGQgdmlzaXQgdG8gdGhlIERvbWluaWNhbiBSZXB1YmxpYywgaGUgd2FzIHN1cnByaXNlZCB0byBzZWUgdGhlIHBvb3IgdXNpbmcgc29sYXIgbGlnaHRzLg0KMTk5NTogVGhlIEdvdmVybm1lbnQgb2YgSW5kaWEgYW5kIHRoZSBHb3Zlcm5tZW50IG9mIERlbGhpIGpvaW50bHkgc2V0IHVwIGEgY29tcGFueSBjYWxsZWQgdGhlIERlbGhpIE1ldHJvIFJhaWwgQ29ycG9yYXRpb24gKERNUkMpIG9uIDMgTWF5IDE5OTUsIHdpdGggRHIuIEUuIFNyZWVkaGFyYW4gYXMgdGhlIG1hbmFnaW5nIGRpcmVjdG9yLg0KMTk5NTogSW50J2wgR2FuZGhpIFBlYWNlIFByaXplIGxhdW5jaGVkLg0KMTk5NTogU2FjaGluIFIuIFRlbmR1a2FyIGFuZCBBbmphbGkgVGVuZHVsa2FyIHdlZGRlZCB0b2dldGhlci4NCjE5OTU6IC5tcDMgaW52ZW50ZWQuDQoxOTk1OltHYW1pbmddIFdoaWxlIEZJRkEgOTUgZGlkIG5vdCBhZGQgbXVjaCBvdGhlciB0aGFuIHRoZSBhYmlsaXR5IHRvIHBsYXkgd2l0aCBjbHViIHRlYW1zLCBGSUZBIDk2IHB1c2hlZCB0aGUgYm91bmRhcmllcy4gRm9yIHRoZSBmaXJzdCB0aW1lIHdpdGggcmVhbCBwbGF5ZXIgbmFtZXMgYnkgb2J0YWluaW5nIHRoZSBGSUZQcm8gbGljZW5zZSwgdGhlIFBsYXlTdGF0aW9uLCBQQywgMzJYIGFuZCBTZWdhIFNhdHVybiB2ZXJzaW9ucyB1c2VkIEVBJ3MgIlZpcnR1YWwgU3RhZGl1bSIgZW5naW5lLCB3aXRoIDJEIHNwcml0ZSBwbGF5ZXJzIG1vdmluZyBhcm91bmQgYSByZWFsLXRpbWUgM0Qgc3RhZGl1bS4NCjE5OTUgKEp1bCAxOCk6W0Jvb2tdIEJhcmFjayBPYmFtYSdzIERyZWFtcyBmcm9tIE15IEZhdGhlcjogQSBTdG9yeSBvZiBSYWNlIGFuZCBJbmhlcml0YW5jZTsgRHJlYW1zIGZyb20gTXkgRmF0aGVyOiBBIFN0b3J5IG9mIFJhY2UgYW5kIEluaGVyaXRhbmNlICgyMDA2LCBPY3QgMTcpOyBPZiBUaGVlIEkgU2luZzogQSBMZXR0ZXIgdG8gTXkgRGF1Z2h0ZXJzICgyMDEwLCBOb3YgMTYpOyBBIFByb21pc2VkIExhbmQgKDIwMjAsIE5vdiAxNykNCjE5OTUoSmFuIDEpOltFbnZdIFRoZSBBZ3JlZW1lbnQgb24gQWdyaWN1bHR1cmUgKEFvQSkgaXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgb2YgdGhlIFdvcmxkIFRyYWRlIE9yZ2FuaXphdGlvbi4gSXQgd2FzIG5lZ290aWF0ZWQgZHVyaW5nIHRoZSBVcnVndWF5IFJvdW5kIG9mIHRoZSBHZW5lcmFsIEFncmVlbWVudCBvbiBUYXJpZmZzIGFuZCBUcmFkZSwgYW5kIGVudGVyZWQgaW50byBmb3JjZSB3aXRoIHRoZSBlc3RhYmxpc2htZW50IG9mIHRoZSBXVE8gb24gSmFudWFyeSAxLCAxOTk1LiBCbHVlLCBSZWQsIEFtYmVyIGFuZCBHcmVlbiBCb3ggb2Ygc3Vic2lkaWVzLg0KMTk5NTpbQ2luZW1hXSBOZWxzb24gTWFuZGVsYSwgaW4gaGlzIGZpcnN0IHRlcm0gYXMgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYSwgaW5pdGlhdGVzIGEgdW5pcXVlIHZlbnR1cmUgdG8gdW5pdGUgdGhlIEFwYXJ0aGVpZC10b3JuIGxhbmQ6IGVubGlzdCB0aGUgbmF0aW9uYWwgcnVnYnkgdGVhbSBvbiBhIG1pc3Npb24gdG8gd2luIHRoZSAxOTk1IFJ1Z2J5IFdvcmxkIEN1cC4gLSAgSW52aWN0dXMgKDIwMDkpDQoxOTk1OltDaW5lbWFdIEEgQ2xvY2t3b3JrIE9yYW5nZSgxOTcxKQ0KMTk5NTpbQ2luZW1hXSBEZWFkIEVuZCBEcml2ZS1JbigxOTg2KQ0KMTk5NTpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gU3BhY2Vnb2R6aWxsYSgxOTk0KQ0KMTk5NTpbQ2luZW1hXSBIZWFydGJlZXBzKDE5ODEpDQoxOTk1OltDaW5lbWFdIFRoZSBNdW1teSdzIEN1cnNlKDE5NDQpDQoxOTk1IChEZWMpOltTcGFjZV0gU29sYXIgYW5kIEhlbGlvc3BoZXJpYyBPYnNlcnZhdG9yeSAoU29ITykgd2FzIGxhdW5jaGVkIGluIERlY2VtYmVyIDE5OTUgYXMgYSBqb2ludCBtaXNzaW9uIGJldHdlZW4gdGhlIEV1cm9wZWFuIFNwYWNlIEFnZW5jeSAoRVNBKSBhbmQgTkFTQSwgU29ITyB3YXMgZGVzaWduZWQgdG8gb3JiaXQgdGhlIFN1biB0byBsZWFybiBhYm91dCB0aGUgc3RydWN0dXJlIG9mIHRoZSBzdGFy4oCZcyBpbnRlcmlvciBhbmQgaXRzIG91dGVyIGF0bW9zcGhlcmUsIGFzIHdlbGwgYXMgdG8gaW52ZXN0aWdhdGUgdGhlIGJlaGF2aW9yIG9mIHNvbGFyIHdpbmRzLiBJdCB3YXMgZXhwZWN0ZWQgdG8gY29tcGxldGUgaXRzIG1pc3Npb24gaW4gMTk5OC4gSW5zdGVhZCwgaXQgaXMgc3RpbGwgYWN0aXZlIHRvZGF5LCBhbmQgaXMgbm93IGxpa2VseSB0byBrZWVwIHdvcmtpbmcgdW50aWwgMjAyNSwgd2hlbiBpdCB3aWxsIGhhdmUgYmVlbiBpbiBzcGFjZSBmb3IgMzAgeWVhcnMuDQoxOTk1OltQaHlzaWNzXVtTcGFjZV1bUmVzZWFyY2hdIFByaW9yIHRvIDE5OTUsIHRoZW9yaXN0cyBiZWxpZXZlZCB0aGF0IHRoZXJlIHdlcmUgZml2ZSBjb25zaXN0ZW50IHZlcnNpb25zIG9mIHN1cGVyc3RyaW5nIHRoZW9yeSAodHlwZSBJLCB0eXBlIElJQSwgdHlwZSBJSUIsIGFuZCB0d28gdmVyc2lvbnMgb2YgaGV0ZXJvdGljIHN0cmluZyB0aGVvcnkpLiBUaGlzIHVuZGVyc3RhbmRpbmcgY2hhbmdlZCBpbiAxOTk1IHdoZW4gRWR3YXJkIFdpdHRlbiBzdWdnZXN0ZWQgdGhhdCB0aGUgZml2ZSB0aGVvcmllcyB3ZXJlIGp1c3Qgc3BlY2lhbCBsaW1pdGluZyBjYXNlcyBvZiBhbiBlbGV2ZW4tZGltZW5zaW9uYWwgdGhlb3J5IGNhbGxlZCBNLXRoZW9yeS4gV2l0dGVuJ3MgY29uamVjdHVyZSB3YXMgYmFzZWQgb24gdGhlIHdvcmsgb2YgYSBudW1iZXIgb2Ygb3RoZXIgcGh5c2ljaXN0cywgaW5jbHVkaW5nIEFzaG9rZSBTZW4sIENocmlzIEh1bGwsIFBhdWwgVG93bnNlbmQsIGFuZCBNaWNoYWVsIER1ZmYuIEhpcyBhbm5vdW5jZW1lbnQgbGVkIHRvIGEgZmx1cnJ5IG9mIHJlc2VhcmNoIGFjdGl2aXR5IG5vdyBrbm93biBhcyB0aGUgc2Vjb25kIHN1cGVyc3RyaW5nIHJldm9sdXRpb24uDQoxOTk1OltDcmltZV1bSW5kaWFdIE11cmRlciBvZiBNdW1iYWktYmFzZWQgYnVpbGRlciBQcmFkZWVwIEphaW4gYnkgQWJ1IFNhbGVtDQoxOTk1OiBGb3J0dW5lIEhvdGVscyBpbiBJbmRpYSBpcyBvd25lZCBieSBpdHMgcGFyZW50IGNvbXBhbnksIElUQyBMdGQuLCB3aGljaCBlc3RhYmxpc2hlZCBGb3J0dW5lIEhvdGVscyBpbiAxOTk1IGFzIGEgc3Vic2lkaWFyeSB0byBwcm92aWRlIG1pZC1tYXJrZXQgdG8gdXBzY2FsZSBob3NwaXRhbGl0eSBzZXJ2aWNlcy4gSG93ZXZlciwgYSBzZXBhcmF0ZSBncm91cCwgRm9ydHVuZSBHcm91cCBvZiBIb3RlbHMsIGJhc2VkIGluIHRoZSBVbml0ZWQgQXJhYiBFbWlyYXRlcyAoVUFFKSBhbmQgZm91bmRlZCBieSBQcmF2ZWVuIFNoZXR0eSwgYWxzbyBvcGVyYXRlcyBhIGRpZmZlcmVudCBzZXQgb2YgaG90ZWxzIGluIHRoYXQgcmVnaW9uLg0KMTk5NTpbVUtdIENhbWlsbGEgaXMgUXVlZW4gb2YgdGhlIFVuaXRlZCBLaW5nZG9tIGFuZCAxNCBvdGhlciBDb21tb253ZWFsdGggcmVhbG1zIGFzIHRoZSB3aWZlIG9mIEtpbmcgQ2hhcmxlcyBJSUkuIENhbWlsbGEgd2FzIHJhaXNlZCBpbiBFYXN0IFN1c3NleCBhbmQgU291dGggS2Vuc2luZ3RvbiBpbiBFbmdsYW5kIGFuZCBlZHVjYXRlZCBpbiBFbmdsYW5kLCBTd2l0emVybGFuZCBhbmQgRnJhbmNlLiBJbiAxOTczLCBzaGUgbWFycmllZCBCcml0aXNoIEFybXkgb2ZmaWNlciBBbmRyZXcgUGFya2VyIEJvd2xlczsgdGhleSBkaXZvcmNlZCBpbiAxOTk1Lg0KDQoxOTk2OltHZW9Qb2xpdGljc11bQnVzaW5lc3NdIE1vbmdvbGlhIHdhcyBncmFudGVkIG9ic2VydmVyIHN0YXR1cyB0byBUUkFDRUNBLg0KMTk5NiAoNyBBdWd1c3QpOltSZXNlYXJjaF1bU3BhY2VdIE5BU0EgYW5ub3VuY2VkIGZvc3NpbGl6ZWQgZXZpZGVuY2Ugb2YgYW5jaWVudCBsaWZlIGluIG1ldGVvcml0ZSBBTEggODQwMDEgZnJvbSBNYXJzLg0KMTk5NiAoT2N0IDI3KTpbUmVzZWFyY2hdW1NwYWNlXSBnZW5ldGljaXN0cyBzaG93ZWQgZXZpZGVuY2UgdGhhdCBtYW55IGdlbmVzIGFyZSBtdWNoIG9sZGVyIHRoYW4gdGhlIGZvc3NpbCByZWNvcmQgd291bGQgaW5kaWNhdGUuIFN1YnNlcXVlbnQgc3R1ZGllcyBoYXZlIHN0cmVuZ3RoZW5lZCB0aGlzIGZpbmRpbmcuDQoxOTk2OltCdXNpbmVzc11bR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2hlbiB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4gc2lnbmVkIHRoZSBUcmVhdHkgb24gRGVlcGVuaW5nIE1pbGl0YXJ5IFRydXN0IGluIEJvcmRlciBSZWdpb25zIGluIFNoYW5naGFpLiBPbiAyNCBBcHJpbCAxOTk3IHRoZSBzYW1lIGNvdW50cmllcyBzaWduZWQgdGhlIFRyZWF0eSBvbiBSZWR1Y3Rpb24gb2YgTWlsaXRhcnkgRm9yY2VzIGluIEJvcmRlciBSZWdpb25zIGluIGEgbWVldGluZyBpbiBNb3Njb3csIFJ1c3NpYS4gT24gMjAgTWF5IDE5OTcgUnVzc2lhbiBQcmVzaWRlbnQgQm9yaXMgWWVsdHNpbiBhbmQgQ2hpbmVzZSBQcmVzaWRlbnQgSmlhbmcgWmVtaW4gc2lnbmVkIGEgZGVjbGFyYXRpb24gb24gYSAibXVsdGlwb2xhciB3b3JsZCIuDQoxOTk2OiAxOTk2IE1vdW50IEV2ZXJlc3QgRGlzYXN0ZXIsIGluIHdoaWNoIGVpZ2h0IHBlb3BsZSBkaWVkIHdoaWxlIG9uIGFuIGV4cGVkaXRpb24gdG8gc2NhbGUgdGhlIGluZmFtb3VzIHN1bW1pdC4gT25lIG9mIHRoZSBjbGltYmVycyB3aG8gbG9zdCBoaXMgbGlmZSB3YXMgQW5keSBIYXJyaXMsIHBsYXllZCBpbiBFdmVyZXN0IGJ5IE1hcnRpbiBIZW5kZXJzb24uIEhhcnJpcyB3YXMgb25lIG9mIHRoZSBndWlkZXMgZm9yIHRoZSBBZHZlbnR1cmUgQ29uc3VsdGFudHMsIGFsb25nIHdpdGggUm9iIEhhbGwgYW5kIE1pa2UgR3Jvb20uIEluIHRoZSBmaWxtLCBoZSBhcHBlYXJzIHRvIGRpZSB3aGlsZSB3aXRoIEhhbGwsIGZhbGxpbmcgb2ZmIGEgY2xpZmYgYWZ0ZXIgYSBoYWxsdWNpbmF0aW9uLiBCdXQgUm9iIEhhbGwgbmV2ZXIgcmVwb3J0ZWQgdGhpcywgYW5kIHNpbmNlIGhlIGRpZWQgc2hvcnRseSB0aGVyZWFmdGVyLCB0aGVyZSBpcyBubyB3YXkgdG8gY29uZmlybSB0aGUgY2lyY3Vtc3RhbmNlcyBzdXJyb3VuZGluZyBIYXJyaXMnIGRlYXRoLg0KMTk5NjpbQ29tcHV0aW5nXVtRdWFudHVtXSAgTG92IEdyb3ZlciBkZXZpc2VkIGFuIGFsZ29yaXRobSAoR3JvdmVyJ3MgYWxnb3JpdGhtKSB0aGF0IGNvdWxkIHNlYXJjaCBhbiB1bnNvcnRlZCBkYXRhYmFzZSBpbiBzcXVhcmUgcm9vdCB0aW1lIG9uIGEgcXVhbnR1bSBjb21wdXRlciwgd2hpY2ggd291bGQgb3V0cGVyZm9ybSBhbnkgY2xhc3NpY2FsIGFsZ29yaXRobS4NCjE5OTY6W1VTXSBCYXJhY2sgT2JhbWEgd2FzIGVsZWN0ZWQgdG8gdGhlIElsbGlub2lzIFNlbmF0ZSwgc3VjY2VlZGluZyBEZW1vY3JhdGljIFN0YXRlIFNlbmF0b3IgQWxpY2UgUGFsbWVyIGZyb20gSWxsaW5vaXMncyAxM3RoIERpc3RyaWN0LCB3aGljaCwgYXQgdGhhdCB0aW1lLCBzcGFubmVkIENoaWNhZ28gU291dGggU2lkZSBuZWlnaGJvcmhvb2RzIGZyb20gSHlkZSBQYXJr4oCTS2Vud29vZCBzb3V0aCB0byBTb3V0aCBTaG9yZSBhbmQgd2VzdCB0byBDaGljYWdvIExhd24uDQoxOTk2OltVS10gQ2hhcmxlcyBJSUkgYW5kIERpYW5hIGdldHMgZGl2b3JjZWQuDQoxOTk2IChKYW4gMjUpOltCb29rXSBQZXRlciBMeW5jaCAmIEpvaG4gUm90aGNoaWxkJ3MgTGVhcm4gdG8gRWFybjogQSBCZWdpbm5lcidzIEd1aWRlIHRvIHRoZSBCYXNpY3Mgb2YgSW52ZXN0aW5nIGFuZCBCdXNpbmVzcy4NCjE5OTYgKEphbik6W0NyaW1lXVtJbmRpYV0gQW5lZXMgSWJyYWhpbSBhcnJlc3RlZCBpbiBCYWhyYWluLCBzaGlmdGVkIHRvIER1YmFpIGFsbGVnZWRseSBvbiB0aGUgaW50ZXJ2ZW50aW9uIG9mIHNvbWUgb2YgRHViYWkncyBydWxpbmcgbm90YWJsZXMsIGFuZCB3YXMgdGhlbiBhbGxvd2VkIHRvIHNsaXAgYXdheSB0byBLYXJhY2hpLCBQYWtpc3Rhbi4NCjE5OTY6IE5hdGlvbmFsIEFlcm9zcGFjZSBMYWJvcmF0b3JpZXMsIEluZGlhIGluZGlnZW5vdXNseSBidWlsdCBGTE9TT0xWRVIsIEluZGlhJ3MgZmlyc3Qgc3VwZXJjb21wdXRlci4gSXQgd2FzIHJlcGxpY2F0ZWQgYW5kIGluc3RhbGxlZCBhdCBJQ0FEIE1vc2NvdyBpbiAxOTkxIHVuZGVyIFJ1c3NpYW4gY29sbGFib3JhdGlvbi4NCjE5OTY6IEluZGlhL1Bha2lzdGFuL1NyaSBMYW5rYSAxOTk2Lg0KMTk5NjpbQ29tcHV0aW5nXVt3d3ddIE1hcmlvIDY0IGdhbWUgcmFuIDEwMCBtaWxsaW9uIGNhbGN1bGF0aW9ucyBwZXIgc2Vjb25kLCA1NDAgbWlsbGlvbiAoSGFsZi1MaWZlKSBpbiAxOTk4LCBNaW5lY3JhZnQgKDIwMTEpIHJ1bm5pbmcgMTAwIGJpbGxpb24gY2FsY3VsYXRpb25zLCBDeWJlcnB1bmsgMjA3NyAobW9zdCByZWFsaXN0aWMgdmlkZW8gZ2FtZSAyMDI0KSwgeW91IG5lZWQgYSBncmFwaGljcyBjYXJkIHRoYXQgY2FuIHBlcmZvcm0gYXJvdW5kIDM2IHRyaWxsaW9uIGNhbGMgcGVyIHNlY29uZC4NCjE5OTY6IFByb2YgTWFsY29sbSBIZWF0aC4gUHJvZmVzc29yIG9mIEdyZWVrIExhbmd1YWdlIGFuZCBMaXRlcmF0dXJlIEBsZWVkcy5hYy51aywgdHJhbnNsYXRlZCBBcmlzdG90bGUncyBQb2V0aWNzLg0KMTk5NjogVGhlIDU2SyBtb2RlbSB3YXMgaW52ZW50ZWQgYnkgRHIuIEJyZW50IFRvd25zaGVuZA0KMTk5NiAoRmViIDEzKTogTmVwYWxlc2UgQ2l2aWwgV2FyIHN0YXJ0ZWQuIFRoZSBNYW9pc3QgUmViZWxsaW9uIChsYWJlbGxlZCB0aGUgUGVvcGxlJ3MgV2FyIGJ5IHRoZW4gQ1BOKE1hb2lzdCkpIHdhcyBhbiBhcm1lZCBjb25mbGljdCBhZ2FpbnN0IEdvdmVybm1lbnQgb2YgTmVwYWwgKHRoZW4gSE1HIG9mIE5lcGFsKSBmb3VnaHQgZnJvbSAxOTk2IHRvIDIwMDYuIFRoZSByZWJlbGxpb24gd2FzIGxhdW5jaGVkIGJ5IHRoZSBDb21tdW5pc3QgUGFydHkgb2YgTmVwYWwgKE1hb2lzdCkgb24gMTMgRmVicnVhcnkgMTk5NiB3aXRoIHRoZSBtYWluIGFpbSBvZiBvdmVydGhyb3dpbmcgdGhlIE5lcGFsZXNlIG1vbmFyY2h5IGFuZCBlc3RhYmxpc2hpbmcgYSAnUGVvcGxlJ3MgUmVwdWJsaWMnLiBJdCBlbmRlZCB3aXRoIHRoZSBDb21wcmVoZW5zaXZlIFBlYWNlIEFjY29yZCBzaWduZWQgb24gMjEgTm92ZW1iZXIgMjAwNi4NCjE5OTYgKE1hciAxKTogW0dlb1BvbGl0aWNzXSBUaGUgQXNpYeKAk0V1cm9wZSBNZWV0aW5nIChBU0VNKSBpcyBhbiBBc2lhbuKAk0V1cm9wZWFuIHBvbGl0aWNhbCBkaWFsb2d1ZSBmb3J1bSB0byBlbmhhbmNlIHJlbGF0aW9ucyBhbmQgdmFyaW91cyBmb3JtcyBvZiBjb29wZXJhdGlvbiBiZXR3ZWVuIGl0cyBwYXJ0bmVycy4gSXQgd2FzIG9mZmljaWFsbHkgZXN0YWJsaXNoZWQgYXQgdGhlIDFzdCBBU0VNIFN1bW1pdCAoQVNFTTEpIGluIEJhbmdrb2ssIFRoYWlsYW5kLCBieSB0aGUgdGhlbiAxNSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aGUgRXVyb3BlYW4gQ29tbWlzc2lvbiwgdGhlIHRoZW4gNyBNZW1iZXIgU3RhdGVzIG9mIHRoZSBBc3NvY2lhdGlvbiBvZiBTb3V0aGVhc3QgQXNpYW4gTmF0aW9ucyAoQVNFQU4pLCBhbmQgdGhlIGluZGl2aWR1YWwgY291bnRyaWVzIG9mIENoaW5hLCBKYXBhbiwgYW5kIFNvdXRoIEtvcmVhLiBBIHNlcmllcyBvZiBlbmxhcmdlbWVudHMgc2F3IGFkZGl0aW9uYWwgRVUgTWVtYmVyIFN0YXRlcyBqb2luIGFzIHdlbGwgYXMgSW5kaWEsIE1vbmdvbGlhLCBQYWtpc3RhbiBhbmQgdGhlIEFTRUFOIFNlY3JldGFyaWF0IGluIDIwMDgsIEF1c3RyYWxpYSwgTmV3IFplYWxhbmQgYW5kIFJ1c3NpYSBpbiAyMDEwLCBCYW5nbGFkZXNoLCBOb3J3YXksIGFuZCBTd2l0emVybGFuZCBpbiAyMDEyLCBhcyB3ZWxsIGFzIENyb2F0aWEsIGFuZCBLYXpha2hzdGFuIGluIDIwMTQuDQoxOTk2IChBcHIgMjYpOiBbR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2l0aCB0aGUgc2lnbmluZyBvZiB0aGUgVHJlYXR5IG9uIERlZXBlbmluZyBNaWxpdGFyeSBUcnVzdCBpbiBCb3JkZXIgUmVnaW9ucyBpbiBTaGFuZ2hhaSBieSB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4uIExhdGVyIG9uIEp1biAxNSwgMjAwMSBpdCBnb3QgcmVuYW1lZCBhcyBTaGFuZ2hhaSBDb29wZXJhdGlvbiBPcmdhbmlzYXRpb24gKFNDTykgb3IgU2hhbmdoYWkgUGFjdCANCjE5OTYgKE1heSAxNik6IEF0YWwgQmloYXJpIFZhanBheWVlIGJlY29tZXMgUE0gb2YgSW5kaWEgZm9yIHRoZSB2ZXJ5IGZpcnN0IHRpbWUgZm9yIDE2IGRheXMuDQoxOTk2IChKdW4gMSk6IEF0YWwgQmloYXJpIFZhanBheWVlIHJlc2lnbnMuIEhEIERldmUgR293ZGEgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NiAoQXVnIDE0KTpbcmVzZWFyY2hdW2V4dHJlbWVdIEthcmVuIEVsaXphYmV0aCBXZXR0ZXJoYWhuIChPY3RvYmVyIDE2LCAxOTQ4IOKAkyBKdW5lIDgsIDE5OTcpLCBhbHNvIGtub3duIGFzIEthcmVuIFdldHRlcmhhaG4gSmVubmV0dGUsIHdhcyBhbiBBbWVyaWNhbiBwcm9mZXNzb3Igb2YgY2hlbWlzdHJ5IGF0IERhcnRtb3V0aCBDb2xsZWdlLCBOZXcgSGFtcHNoaXJlLCB3aG8gc3BlY2lhbGl6ZWQgaW4gdG94aWMgbWV0YWwgZXhwb3N1cmUuIFNoZSBkaWVkIG9mIG1lcmN1cnkgcG9pc29uaW5nIGF0IHRoZSBhZ2Ugb2YgNDggZHVlIHRvIGFjY2lkZW50YWwgZXhwb3N1cmUgdG8gdGhlIGV4dHJlbWVseSB0b3hpYyBvcmdhbmljIG1lcmN1cnkgY29tcG91bmQgZGltZXRoeWxtZXJjdXJ5IChIZyhDSDMpMikuIFByb3RlY3RpdmUgZ2xvdmVzIGluIHVzZSBhdCB0aGUgdGltZSBvZiB0aGUgaW5jaWRlbnQgcHJvdmlkZWQgaW5zdWZmaWNpZW50IHByb3RlY3Rpb24sIGFuZCBleHBvc3VyZSB0byBvbmx5IGEgc2luZ2xlIGRyb3Agb3IgdHdvIG9mIHRoZSBkaW1ldGh5bG1lcmN1cnkgYWJzb3JiZWQgdGhyb3VnaCB0aGUgZ2xvdmVzIHByb3ZlZCB0byBiZSBmYXRhbCBhZnRlciBsZXNzIHRoYW4gYSB5ZWFyLiBUZXN0cyBsYXRlciByZXZlYWxlZCB0aGF0IGRpbWV0aHlsbWVyY3VyeSBjYW4sIGluIGZhY3QsIHJhcGlkbHkgcGVybWVhdGUgc2V2ZXJhbCBraW5kcyBvZiBsYXRleCBnbG92ZXMgYW5kIGVudGVyIHRoZSBza2luIHdpdGhpbiBhYm91dCAxNSBzZWNvbmRzLiBIZXIgZXhwb3N1cmUgd2FzIGxhdGVyIGNvbmZpcm1lZCBieSBoYWlyIGFuYWx5c2lzLCB3aGljaCBzaG93ZWQgYSBkcmFtYXRpYyBqdW1wIGluIG1lcmN1cnkgbGV2ZWxzIDE3IGRheXMgYWZ0ZXIgdGhlIGluaXRpYWwgYWNjaWRlbnQsIHBlYWtpbmcgYXQgMzkgZGF5cywgZm9sbG93ZWQgYnkgYSBncmFkdWFsIGRlY2xpbmUuIEFwcHJveGltYXRlbHkgdGhyZWUgbW9udGhzIGFmdGVyIHRoZSBpbml0aWFsIGFjY2lkZW50IFdldHRlcmhhaG4gYmVnYW4gZXhwZXJpZW5jaW5nIGJyaWVmIGVwaXNvZGVzIG9mIGFiZG9taW5hbCBkaXNjb21mb3J0IGFuZCBub3RpY2VkIHNpZ25pZmljYW50IHdlaWdodCBsb3NzLiBUaGUgbW9yZSBkaXN0aW5jdGl2ZSBuZXVyb2xvZ2ljYWwgc3ltcHRvbXMgb2YgbWVyY3VyeSBwb2lzb25pbmcsIGluY2x1ZGluZyBsb3NzIG9mIGJhbGFuY2UgYW5kIHNsdXJyZWQgc3BlZWNoLCBhcHBlYXJlZCBpbiBKYW51YXJ5IDE5OTcsIGZpdmUgbW9udGhzIGFmdGVyIHRoZSBhY2NpZGVudC4gSGVyIGJsb29kIGFuZCB1cmluYXJ5IG1lcmN1cnkgY29udGVudCB3ZXJlIG1lYXN1cmVkIGF0IDQsMDAwIM68Zy9MIGFuZCAyMzQgzrxnL0wsIHJlc3BlY3RpdmVseeKAlGJvdGggbWFueSB0aW1lcyB0aGVpciByZXNwZWN0aXZlIHRveGljIHRocmVzaG9sZHMgb2YgMjAwIM68Zy9MIGFuZCA1MCDOvGcvTCAoYmxvb2QgYW5kIHVyaW5lIHJlZmVyZW5jZSByYW5nZXMgYXJlIDEgdG8gOCDOvGcvTCBhbmQgMSB0byA1IM68Zy9MKS4NCjE5OTYgKERlYyA0IDA2OjU4OjA3IFVUQyk6W1NwYWNlXVtNYXJzXVtFYXJ0aF0gTGF1bmNoIG9mIE1hcnMgUGF0aGZpbmRlciBvbiBEZWx0YSBJSSA3OTI1ICgjRDI0MCkNCnJvY2tldCBmcm9tIENhcGUgQ2FuYXZlcmFsIFNMQy0xNy4gVG8gcHJvdmUgdGhhdCB0aGUgZGV2ZWxvcG1lbnQgb2YgImZhc3RlciwgYmV0dGVyIGFuZCBjaGVhcGVyIiBzcGFjZWNyYWZ0IHdhcyBwb3NzaWJsZSAod2l0aCB0aHJlZSB5ZWFycyBmb3IgZGV2ZWxvcG1lbnQgYW5kIGEgY29zdCB1bmRlciAkMTUwIG1pbGxpb24gZm9yIHRoZSBsYW5kZXIsIGFuZCAkMjUgbWlsbGlvbiBmb3IgdGhlIHJvdmVyKS4gVG8gc2hvdyB0aGF0IGl0IHdhcyBwb3NzaWJsZSB0byBzZW5kIGEgbG9hZCBvZiBzY2llbnRpZmljIGluc3RydW1lbnRzIHRvIGFub3RoZXIgcGxhbmV0IHdpdGggYSBzaW1wbGUgc3lzdGVtIGFuZCBhdCBvbmUtZmlmdGVlbnRoIHRoZSBjb3N0IG9mIGEgVmlraW5nIG1pc3Npb24uIChGb3IgY29tcGFyaXNvbiwgdGhlIFZpa2luZyBtaXNzaW9ucyBjb3N0ICQ5MzUgbWlsbGlvbiBpbiAxOTc0IG9yICQzLjUgYmlsbGlvbiBpbiAxOTk3IGRvbGxhcnMuKS4gVG8gZGVtb25zdHJhdGUgTkFTQSdzIGNvbW1pdG1lbnQgdG8gbG93LWNvc3QgcGxhbmV0YXJ5IGV4cGxvcmF0aW9uIGJ5IGZpbmlzaGluZyB0aGUgbWlzc2lvbiB3aXRoIGEgdG90YWwgZXhwZW5kaXR1cmUgb2YgJDI4MCBtaWxsaW9uLCBpbmNsdWRpbmcgdGhlIGxhdW5jaCB2ZWhpY2xlIGFuZCBtaXNzaW9uIG9wZXJhdGlvbnMuDQoxOTk2OiBhIHJhaWQgb24gdGhlIEFuaW1hbCBIdXNiYW5kcnkgZGVwYXJ0bWVudOKAmXMgb2ZmaWNlcyBpbiBDaGFpYmFzYSwgQmloYXIgdW5mb2xkZWQgdGhlIFJzLjk1MCBjcm9yZSBmb2RkZXIgc2NhbSwgaW4gd2hpY2ggdGhlIEJpaGFyIGNoaWVmIG1pbmlzdGVyIExhbHUgUHJhc2FkIFlhZGF2IGNhdGNoIHVwIGluIGEgbGlmZWxvbmcgdHVzc2xlIHdpdGggdGhlIENCSS4NCjE5OTY6W0Jvb2tdW0FkdmVudHVyZV0gSm9uIEtyYWthdWVyJ3MgSW50byB0aGUgV2lsZC4NCjE5OTY6W0NvbXB1dGluZ10gVGhlIFZpZGVvTEFOIHNvZnR3YXJlIG9yaWdpbmF0ZWQgYXMgYSBGcmVuY2ggYWNhZGVtaWMgcHJvamVjdC4gVkxDIHVzZWQgdG8gc3RhbmQgZm9yICJWaWRlb0xBTiBDbGllbnQiIHdoZW4gVkxDIHdhcyBhIGNsaWVudCBvZiB0aGUgVmlkZW9MQU4gcHJvamVjdCwgb2ZmaWNpYWxseSByZWxlYXNlZCB1bmRlciBHTlUgR1BMIG9uIDIwMDEgKEZlYiAxKS4NCjE5OTY6W01lbWVdIERhbmNpbmcgQmFieSBTY3JlZW5zYXZlcg0KMTk5NjpbU3BhY2VYXSBUaGUgZW50aXJlIHByb2Nlc3MgZm9yIHRoZSBKYW1lcyBXZWJiIFNwYWNlIFRlbGVzY29wZSAoSldTVCkgZnJvbSBpbml0aWFsIGNvbmNlcHQgdG8gbGF1bmNoIHNwYW5uZWQgYXBwcm94aW1hdGVseSAyNSB5ZWFycywgd2l0aCBpbml0aWFsIGRlc2lnbnMgYmVnaW5uaW5nIGluIDE5OTYgYW5kIHRoZSB0ZWxlc2NvcGUgbGF1bmNoaW5nIGluIDIwMjEsIGJ1dCBhIHNpZ25pZmljYW50IHBvcnRpb24gb2YgdGhpcyB3YXMgc3BlbnQgaW4gZGVzaWduLCB0ZXN0aW5nLCBhbmQgb3ZlcmNvbWluZyBtYWpvciByZWRlc2lnbnMgYW5kIGRlbGF5cywgbm90IGp1c3QgYXNzZW1ibHkuIA0KMTk5NiAoRmViIDI4KTpbRGVsaGldIEluZGlyYXB1cmFtLCBHaGF6aWFiYWQgd2FzIGVzdGQgd2hlbiBpdHMgZm91bmRhdGlvbiBzdG9uZSAoS2FsYSBQYXRoYXIpIHdhcyBpbmF1Z3VyYXRlZCBieSBTaCBNb3RpbGFsIFZvcmEsIHRoZW4gR292ZXJub3Igb2YgVVAuICgyMDIxKSBJJ3B1cmFtIEV4dG4gdG8gYmUgYnVpbHQgb24gMTIgYWNyZXMgb25seSwgY29uY2VpdmVkIGluIDIwMDQuDQoxOTk2OltCb29rXVtNaWxpdGFyeV1bQ3VsdHVyZV1bRVVdW1VTQV0gR2VvcmdlIFIuUi4gTWFydGluIGlzIHRoZSBBbWVyaWNhbiBhdXRob3Igb2YgdGhlIGVwaWMgZmFudGFzeSBib29rIHNlcmllcyBBIFNvbmcgb2YgSWNlIGFuZCBGaXJlLCB3aGljaCBiZWdhbiB3aXRoIEEgR2FtZSBvZiBUaHJvbmVzICgxOTk2KSBhbmQgc2VydmVkIGFzIHRoZSBiYXNpcyBmb3IgSEJPJ3MgbWFzc2l2ZWx5IHBvcHVsYXIgR2FtZSBvZiBUaHJvbmVzIFRWIHNlcmllcy4gQSBTb25nIG9mIEljZSBhbmQgRmlyZSBpcyBhIHNlcmllcyBvZiBoaWdoIGZhbnRhc3kgbm92ZWxzIGJ5IHRoZSBBbWVyaWNhbiBhdXRob3IgR2VvcmdlIFIuIFIuIE1hcnRpbi4gTWFydGluIGJlZ2FuIHdyaXRpbmcgdGhlIGZpcnN0IHZvbHVtZSwgQSBHYW1lIG9mIFRocm9uZXMsIGluIDE5OTEsIGFuZCBwdWJsaXNoZWQgaXQgaW4gMTk5Ni4gTWFydGluLCB3aG8gb3JpZ2luYWxseSBlbnZpc2lvbmVkIHRoZSBzZXJpZXMgYXMgYSB0cmlsb2d5LCBoYXMgcmVsZWFzZWQgZml2ZSBvdXQgb2Ygc2V2ZW4gcGxhbm5lZCB2b2x1bWVzLiANCg0KW0dlbmVyYXRpb25dIE1pbGxlbm5pYWwgZ2VuZXJhdGlvbiAoMTk4MeKAkzE5OTYpIGVuZHM7IGxhc3RlZCBmb3IgMTUgeWVhcnMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICA1MCB5ZWFycyBvZiBJbmRlcGVuZGVudCBJbmRpYSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSANCg0KW0dlbmVyYXRpb25dIEdlbiBaICgxOTk34oCTMjAxMikgc3RhcnRzOyBhbmQgZXhpc3RzIGZvciBuZXh0IDE1IHllYXJzLg0KDQoxOTk3OltXaG9dW1Jlc2VhcmNoXVtDb21wdXRpbmddW1RlY2hdW0N1bHR1cmVdIFZMQyBNZWRpYSBQbGF5ZXIgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBzdHVkZW50cyBhdCB0aGUgRnJlbmNoIGVuZ2luZWVyaW5nIHNjaG9vbCDDiWNvbGUgQ2VudHJhbGUgUGFyaXMgaW4gMTk5Ni4gV2hpbGUgaXQgc3RhcnRlZCBhcyBhbiBhY2FkZW1pYyBwcm9qZWN0IChWaWRlb0xBTikgdG8gc3RyZWFtIHZpZGVvIG92ZXIgYSBjYW1wdXMgbmV0d29yaywgaXRzIGRldmVsb3BtZW50IGFuZCBtb2Rlcm5pemF0aW9uIHdlcmUgbGF0ZXIgbGVkIGJ5IEplYW4tQmFwdGlzdGUgS2VtcGYuIA0KMTk5NzpbUmVzZWFyY2hdW1NwYWNlXSAyOSBKdWx5IDE5OTc6IGEgTkFTQSBzY2llbnRpc3QgYW5ub3VuY2VkIGV2aWRlbmNlIG9mIGZvc3NpbGl6ZWQgbWljcm9zY29waWMgbGlmZSBmb3JtcyBpbiBhIG1ldGVvcml0ZSBub3QgZnJvbSBhbnkga25vd24gcGxhbmV0Lg0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgR3JvdXAgb2YgRWlnaHQgKEc4KSB3YXMgYW4gaW50ZXJnb3Zlcm5tZW50YWwgcG9saXRpY2FsIGZvcnVtIGZyb20gMTk5NyB0byAyMDE0LCBmb3JtZWQgYnkgaW5jb3Jwb3JhdGluZyBSdXNzaWEgaW50byB0aGUgRzcuIFRoZSBHOCBiZWNhbWUgdGhlIEc3IGFnYWluIGFmdGVyIFJ1c3NpYSB3YXMgZXhwZWxsZWQgaW4gMjAxNCBhZnRlciB0aGUgUnVzc2lhbiBhbm5leGF0aW9uIG9mIENyaW1lYS4gRm91bmRlZDogMTk5NywgRGVudmVyLCBDb2xvcmFkbywgVW5pdGVkIFN0YXRlcw0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBGb3VuZGVkOiA2IEp1bmUgMTk5NywgVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiAoQklNU1RFQykgaXMgYW4gaW50ZXJuYXRpb25hbCBvcmdhbml6YXRpb24gb2Ygc2V2ZW4gU291dGggQXNpYW4gYW5kIFNvdXRoZWFzdCBBc2lhbiBuYXRpb25zLCBob3VzaW5nIDEuNzMgYmlsbGlvbiBwZW9wbGUgYW5kIGhhdmluZyBhIGNvbWJpbmVkIGdyb3NzIGRvbWVzdGljIHByb2R1Y3Qgb2YgVVMkNS4yIHRyaWxsaW9uLg0KMTk5NzpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gYnVpbHQgdGhlIGZpcnN0IGV4cGVyaW1lbnRhbCBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCBjb3VsZCBtYW5pcHVsYXRlIDcgcXViaXRzIHVzaW5nIG51Y2xlYXIgbWFnbmV0aWMgcmVzb25hbmNlIChOTVIpIHRlY2huaXF1ZXMuDQoxOTk3IChKdWwgNCk6W1NwYWNlXVtNYXJzXSBUaGUgTWFycyBQYXRoZmluZGVyIGVuZHVyZWQgYSAzMC1zZWNvbmQgY29tbXVuaWNhdGlvbnMgYmxhY2tvdXQgYXMgaXQgZW50ZXJlZCBNYXJzJyBhdG1vc3BoZXJlLiBJdCBsYW5kZWQgYXQgQXJlcyBWYWxsaXMsIENocnlzZSBQbGFuaXRpYSwgTWFycyAxOcKwN+KAsjQ44oCzTiAzM8KwMTPigLIxMuKAs1cuIE1hcnMgUGF0aGZpbmRlciAoTUVTVVIgUGF0aGZpbmRlcikgaXMgYW4gQW1lcmljYW4gcm9ib3RpYyBzcGFjZWNyYWZ0IHRoYXQgbGFuZGVkIGEgYmFzZSBzdGF0aW9uIHdpdGggYSByb3ZpbmcgcHJvYmUgb24gTWFycyBpbiAxOTk3LiBJdCBjb25zaXN0ZWQgb2YgYSBsYW5kZXIsIHJlbmFtZWQgdGhlIENhcmwgU2FnYW4gTWVtb3JpYWwgU3RhdGlvbiwgYW5kIGEgbGlnaHR3ZWlnaHQsIDEwLjYga2cgKDIzIGxiKSB3aGVlbGVkIHJvYm90aWMgTWFycyByb3ZlciBuYW1lZCBTb2pvdXJuZXIsIHRoZSBmaXJzdCByb3ZlciB0byBvcGVyYXRlIG91dHNpZGUgdGhlIEVhcnRo4oCTTW9vbiBzeXN0ZW0uDQoxOTk3OltCb29rXSBNaXRjaCBBbGJvbSdzIFR1ZXNkYXlzIHdpdGggTW9ycmllLg0KMTk5NzpbR2FtaW5nXSBHcmFuZCBUaGVmdCBBdXRvIChHVEEpIHJlbGVhc2VkIGJ5IERNQSBEZXNpZ24gKGxhdGVyIFJvY2tzdGFyIE5vcnRoKSBmb3IgUFMxLCBXaW5kb3dzIGFuZCBNUy1ET1M7IEdyYW5kIFRoZWZ0IEF1dG86IFZpY2UgQ2l0eSAoMjAwMik7IEdyYW5kIFRoZWZ0IEF1dG86IFNhbiBBbmRyZWFzICgyMDA0KTsgR3JhbmQgVGhlZnQgQXV0byBJViAoMjAwOCk7IEdyYW5kIFRoZWZ0IEF1dG8gViAoMjAxMyk7IEdyYW5kIFRoZWZ0IEF1dG86IFRoZSBUcmlsb2d5IOKAkyBUaGUgRGVmaW5pdGl2ZSBFZGl0aW9uICgyMDIxKQ0KMTk5NzogVGVra2VuIDMgd2FzIGRlc2lnbmVkIGJ5IEthdHN1aGlybyBIYXJhZGEgKE9zYWthLCBPc2FrYSBQcmVmZWN0dXJlLCBKYXBhbikgb2YgQmFuZGFpIE5hbWNvIEVudGVydGFpbm1lbnQgaGVhZHF1YXJ0ZXJlZCBhdCDFjHRhLCBUb2t5by4NCjE5OTcgKE1hciA2KTogW0dlb1BvbGl0aWNzXSBUaGUgSW5kaWFuIE9jZWFuIFJpbSBBc3NvY2lhdGlvbiwgZm9ybWVybHkga25vd24gYXMgdGhlIEluZGlhbiBPY2VhbiBSaW0gSW5pdGlhdGl2ZSBhbmQgdGhlIEluZGlhbiBPY2VhbiBSaW0gQXNzb2NpYXRpb24gZm9yIFJlZ2lvbmFsIENvb3BlcmF0aW9uLCBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBjb25zaXN0aW5nIG9mIDIzIHN0YXRlcyBib3JkZXJpbmcgdGhlIEluZGlhbiBPY2Vhbi4gVGhlIElPUkEgaXMgYSByZWdpb25hbCBmb3J1bSwgdHJpcGFydGl0ZSBpbiBuYXR1cmUsIGJyaW5naW5nIHRvZ2V0aGVyIHJlcHJlc2VudGF0aXZlcyBvZiBHb3Zlcm5tZW50LCBCdXNpbmVzcyBhbmQgQWNhZGVtaWEsIGZvciBwcm9tb3RpbmcgY28tb3BlcmF0aW9uIGFuZCBjbG9zZXIgaW50ZXJhY3Rpb24gYW1vbmcgdGhlbS4gSXQgaXMgYmFzZWQgb24gdGhlIHByaW5jaXBsZXMgb2YgT3BlbiBSZWdpb25hbGlzbSBmb3Igc3RyZW5ndGhlbmluZyBFY29ub21pYyBDb29wZXJhdGlvbiBwYXJ0aWN1bGFybHkgb24gVHJhZGUgRmFjaWxpdGF0aW9uIGFuZCBJbnZlc3RtZW50LCBQcm9tb3Rpb24gYXMgd2VsbCBhcyBTb2NpYWwgRGV2ZWxvcG1lbnQgb2YgdGhlIHJlZ2lvbi4gVGhlIENvb3JkaW5hdGluZyBTZWNyZXRhcmlhdCBvZiBJT1JBIGlzIGxvY2F0ZWQgYXQgRWJlbmUsIE1hdXJpdGl1cy4NCjE5OTcgKEFwciAyMSk6IEguRC4gRGV2ZSBHb3dkYSByZXNpZ25zLiBJbmRlciBLdW1hciBHdWpyYWwgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NyAoSnVuIDYpOiBbR2VvUG9saXRpY3NdIEJJTVNURUMgZm91bmRlZC4gVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBvZiBzZXZlbiBTb3V0aCBBc2lhbiBhbmQgU291dGhlYXN0IEFzaWFuIG5hdGlvbnMsIGhvdXNpbmcgMS43MyBiaWxsaW9uIHBlb3BsZSBhbmQgaGF2aW5nIGEgY29tYmluZWQgZ3Jvc3MgZG9tZXN0aWMgcHJvZHVjdCBvZiAkMy44IHRyaWxsaW9uLiBUaGUgQklNU1RFQyBtZW1iZXIgc3RhdGVzIOKAkyBCYW5nbGFkZXNoLCBCaHV0YW4sIEluZGlhLCBNeWFubWFyLCBOZXBhbCwgU3JpIExhbmthLCBhbmQgVGhhaWxhbmQg4oCTIGFyZSBhbW9uZyB0aGUgY291bnRyaWVzIGRlcGVuZGVudCBvbiB0aGUgQmF5IG9mIEJlbmdhbC4NCjE5OTcgKEp1biA4KTogRGVzcGl0ZSBhZ2dyZXNzaXZlIGNoZWxhdGlvbiB0aGVyYXB5LCBoZXIgY29uZGl0aW9uIHJhcGlkbHkgZGV0ZXJpb3JhdGVkLiBUaHJlZSB3ZWVrcyBhZnRlciB0aGUgZmlyc3QgbmV1cm9sb2dpY2FsIHN5bXB0b21zIGFwcGVhcmVkLCBXZXR0ZXJoYWhuIGxhcHNlZCBpbnRvIHdoYXQgYXBwZWFyZWQgdG8gYmUgYSB2ZWdldGF0aXZlIHN0YXRlIHB1bmN0dWF0ZWQgYnkgcGVyaW9kcyBvZiBleHRyZW1lIGFnaXRhdGlvbi4gT25lIG9mIGhlciBmb3JtZXIgc3R1ZGVudHMgc2FpZCB0aGF0ICJIZXIgaHVzYmFuZCBzYXcgdGVhcnMgcm9sbGluZyBkb3duIGhlciBmYWNlLiBJIGFza2VkIGlmIHNoZSB3YXMgaW4gcGFpbi4gVGhlIGRvY3RvcnMgc2FpZCBpdCBkaWRuJ3QgYXBwZWFyIHRoYXQgaGVyIGJyYWluIGNvdWxkIGV2ZW4gcmVnaXN0ZXIgcGFpbi4iIFdldHRlcmhhaG4gd2FzIHJlbW92ZWQgZnJvbSBsaWZlIHN1cHBvcnQgYW5kIHByb25vdW5jZWQgZGVhZCBvbiBKdW5lIDgsIDE5OTcsIHRlbiBtb250aHMgYWZ0ZXIgaGVyIGluaXRpYWwgZXhwb3N1cmUuIEluIHJlc3BvbnNlLCB0aGUgT2NjdXBhdGlvbmFsIFNhZmV0eSBhbmQgSGVhbHRoIEFkbWluaXN0cmF0aW9uIHJlY29tbWVuZGVkIHRoYXQgdGhlIHVzZSBvZiBkaW1ldGh5bG1lcmN1cnkgYmUgYXZvaWRlZCB1bmxlc3MgYWJzb2x1dGVseSBuZWNlc3NhcnkgYW5kIG1hbmRhdGVkIHRoZSB1c2Ugb2YgcGxhc3RpYy1sYW1pbmF0ZSBnbG92ZXMgKFNpbHZlclNoaWVsZCkgd2hlbiBoYW5kbGluZyB0aGlzIGNvbXBvdW5kLg0KMTk5NyAoSnVuIDEzKTpbSmFja10gQm9yZGVyDQoxOTk3IChKdW4gMjYpOltCb29rXSAzMllPIEouIEsuIFJvd2xpbmcgcHVibGlzaGVzIGhlciBmaXJzdCBIYXJyeSBQb3R0ZXIgYm9vaywgVGhlIFBoaWxvc29waGVyJ3MgU3RvbmU7IA0KVGhlIENoYW1iZXIgb2YgU2VjcmV0cyAoMiBKdWx5IDE5OTgpLA0KVGhlIFByaXNvbmVyIG9mIEF6a2FiYW4gKDggSnVseSAxOTk5KSwNClRoZSBHb2JsZXQgb2YgRmlyZSAoOCBKdWx5IDIwMDApLA0KVGhlIE9yZGVyIG9mIHRoZSBQaG9lbml4ICgsIDI3IEp1bmUgMjAwMyksDQpUaGUgSGFsZi1CbG9vZCBQcmluY2UgKDE2IEp1bHkgMjAwNSksDQpUaGUgRGVhdGhseSBIYWxsb3dzICgyMSBKdWx5IDIwMDcpDQoxOTk3IChBdWcgMjUpOltTcGFjZV0gQWR2YW5jZWQgQ29tcG9zaXRpb24gRXhwbG9yZXIgaXMgYSBOQVNBIEV4cGxvcmVyIHByb2dyYW0gc2F0ZWxsaXRlIGFuZCBzcGFjZSBleHBsb3JhdGlvbiBtaXNzaW9uIHRvIHN0dWR5IG1hdHRlciBjb21wcmlzaW5nIGVuZXJnZXRpYyBwYXJ0aWNsZXMgZnJvbSB0aGUgc29sYXIgd2luZCwgdGhlIGludGVycGxhbmV0YXJ5IG1lZGl1bSwgYW5kIG90aGVyIHNvdXJjZXMuDQoxOTk3IChTZXAgMTMpOiB0aGUgaW50cm9kdWN0b3J5IGVwaXNvZGUgb2YgU2hha3RpbWFuIHdhcyBhaXJlZCBvbiBEb29yZGFyc2hhbiAoSW5kaWEncyBuYXRpb25hbCB0ZWxldmlzaW9uIG5ldHdvcmspIGZyb20gMjcgU2VwdGVtYmVyIDE5OTcgdG8gMjcgTWFyY2ggMjAwNSwgb24gU3VuZGF5cyBhdCAxMiBub29uIElTVC4gVGhlIHRlbGVjYXN0IHNsb3QsIGhvd2V2ZXIgd2FzIHNoaWZ0ZWQgdG8gOTozMCBhLm0uIGZvciB0aGUgbGFzdCBlcGlzb2Rlcy4gDQoxOTk3IChTZXAgMjcgMTA6MjMgVVRDKTpbU3BhY2VdW01hcnNdIExhc3QgY29udGFjdCB3aXRoIE1hcnMgUGF0aGZpbmRlci4gTWlzc2lvbiBkdXJhdGlvbiAoTGF1bmNoIHRvIGxhc3QgY29udGFjdCk6IDkgbW9udGhzLCAyMyBkYXlzLg0KMTk5NyAoT2N0IDMxKTpbQm9va10gRG9uYWxkIFRydW1wJ3MgVHJ1bXA6IFRoZSBBcnQgb2YgdGhlIENvbWViYWNrOyBUaGUgQW1lcmljYSBXZSBEZXNlcnZlICgyMDAwKTsgVHJ1bXA6IFRoaW5rIExpa2UgYSBCaWxsaW9uYWlyZTogRXZlcnl0aGluZyBZb3UgTmVlZCB0byBLbm93IEFib3V0IFN1Y2Nlc3MsIFJlYWwgRXN0YXRlLCBhbmQgTGlmZSAoMjAwNCk7IFdoeSBXZSBXYW50IFlvdSB0byBCZSBSaWNoICgyMDA2KTsgVHJ1bXA6IFRoZSBCZXN0IFJlYWwgRXN0YXRlIEFkdmljZSBJIEV2ZXIgUmVjZWl2ZWQ6IDEwMCBUb3AgRXhwZXJ0cyBTaGFyZSBUaGVpciBTdHJhdGVnaWVzICgyMDA2LCBOb3YgMSk7IFRoaW5rIEJJRyBhbmQgS2ljayBBc3MgaW4gQnVzaW5lc3MgYW5kIExpZmUgKDIwMDcpOyBUcnVtcCBOZXZlciBHaXZlIFVwOiBIb3cgSSBUdXJuZWQgTXkgQmlnZ2VzdCBDaGFsbGVuZ2VzIGludG8gU3VjY2VzcyAoMjAwOCk7IFRpbWUgdG8gR2V0IFRvdWdoOiBNYWtpbmcgQW1lcmljYSAjMSBBZ2FpbiAoMjAxMSk7IENyaXBwbGVkIEFtZXJpY2E6IEhvdyB0byBNYWtlIEFtZXJpY2EgR3JlYXQgQWdhaW4gKDIwMTUpDQoxOTk3OiBBcnVuZGhhdGkgUm95IGJlY2FtZSB0aGUgZmlyc3QgSW5kaWFuIHRvIHdpbiBNYW4gQm9va2VyIFByaXplIGZvciBoZXIgbm92ZWwgJ1RoZSBHb2Qgb2YgU21hbGwgVGhpbmdzJy4NCjE5OTc6IElJVC1KRUUgd2FzIGNvbmR1Y3RlZCB0d2ljZSBhZnRlciB0aGUgUS1QYXBlciB3YXMgbGVha2VkLg0KMTk5NzogTkFTQSBlc3RpbWF0ZWQgdGhlcmUgd2VyZSBhcHByb3guIDIsNjQ1IGFydGlmaWNpYWwgc2F0ZWxsaXRlIHBheWxvYWRzIG9yYml0dGluZyB0aGUgZWFydGggYW5kIDYsMjE2IHBpZWNlcyBvZiBzcGFjZSBkZWJyaXMgYXMgdHJhY2tlZCBieSB0aGUgR1NGQy4gT3ZlciAxNiwyOTEgcHJldmlvdXNseSBsYXVuY2hlZCBvYmplY3RzIGhhdmUgZGVjYXllZCBpbnRvIHRoZSBFYXJ0aCdzIGF0bW9zcGhlcmUuDQoxOTk3OiBCSEMgRmluYW5jaWFsLCBJbmMuIG9mIFBlbm5zeWx2YW5pYSBtZXJnZWQgaW50byBGSVNWIHRvIGZvcm0gU2VjdXJlZCBUcmFuc2FjdGlvbiBQcm9jZXNzaW5nIFNlcnZpY2VzLg0KMTk5NzpbQm9va10gVGhlIEZvdXIgQWdyZWVtZW50czogQSBQcmFjdGljYWwgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSBpcyBhIHNlbGYtaGVscCBib29rIGJ5IGJlc3RzZWxsaW5nIGF1dGhvciBEb24gTWlndWVsIFJ1aXogd2l0aCBKYW5ldCBNaWxsczsgVGhlIE1hc3Rlcnkgb2YgTG92ZTogQSBQcmFjdGljYWwgR3VpZGUgdG8gdGhlIEFydCBvZiBSZWxhdGlvbnNoaXAgLS1Ub2x0ZWMgV2lzZG9tIEJvb2sgKDE5OTksIE1hciAzMCk7IFRoZSBWb2ljZSBvZiBLbm93bGVkZ2U6IEEgUHJhY3RpY2FsIEd1aWRlIHRvIElubmVyIFBlYWNlICgyMDA0LCBNYXIgMTApOyBUaGUgRmlmdGggQWdyZWVtZW50OiBBIFByYWN0aWNhbCBHdWlkZSB0byBTZWxmLU1hc3RlcnkgKDIwMDkpOyBUaGUgQ2lyY2xlIG9mIEZpcmU6IEluc3BpcmF0aW9uIGFuZCBHdWlkZWQgTWVkaXRhdGlvbnMgZm9yIExpdmluZyBpbiBMb3ZlIGFuZCBIYXBwaW5lc3MgKDIwMTMsIEF1ZyAxKTsgVGhlIE1hc3Rlcnkgb2YgU2VsZjogQSBUb2x0ZWMgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSAoMjAxNiwgTWF5IDYpDQoxOTk3OltCb29rXSBKb24gS3Jha2F1ZXIncyBJbnRvIFRoaW4gQWlyOiBBIFBlcnNvbmFsIEFjY291bnQgb2YgdGhlIE10LiBFdmVyZXN0IERpc2FzdGVyOyBVbmRlciB0aGUgQmFubmVyIG9mIEhlYXZlbiAoMjAwMyBKdWwpDQoxOTk3IChEZWMgMTEpOltFbnZdIFRoZSBLeW90byBQcm90b2NvbCB3YXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgd2hpY2ggZXh0ZW5kZWQgdGhlIDE5OTIgVW5pdGVkIE5hdGlvbnMgRnJhbWV3b3JrIENvbnZlbnRpb24gb24gQ2xpbWF0ZSBDaGFuZ2UgKFVORkNDQykgdGhhdCBjb21taXRzIHN0YXRlIHBhcnRpZXMgdG8gcmVkdWNlIGdyZWVuaG91c2UgZ2FzIGVtaXNzaW9ucywgYmFzZWQgb24gdGhlIHNjaWVudGlmaWMgY29uc2Vuc3VzIHRoYXQgKHBhcnQgb25lKSBnbG9iYWwgd2FybWluZyBpcyBvY2N1cnJpbmcgYW5kIChwYXJ0IHR3bykgdGhhdCBodW1hbi1tYWRlIENPMiBlbWlzc2lvbnMgYXJlIGRyaXZpbmcgaXQuDQoxOTk3OltJbmRpYV1bRWR1Y2F0aW9uXVtDdWx0dXJlXSBFa2xhdnlhIE1vZGVsIFJlc2lkZW50aWFsIFNjaG9vbCBpcyBhIEdvdmVybm1lbnQgb2YgSW5kaWEgc2NoZW1lIGZvciBtb2RlbCByZXNpZGVudGlhbCBzY2hvb2wgZm9yIEluZGlhbiB0cmliYWxzIGFjcm9zcyBJbmRpYS4gSXQgaXMgb25lIG9mIHRoZSBmbGFnc2hpcCBpbnRlcnZlbnRpb25zIG9mIHRoZSBNaW5pc3RyeSBvZiBUcmliYWwgQWZmYWlycywgR292ZXJubWVudCBvZiBJbmRpYSBhbmQgd2FzIGludHJvZHVjZWQgaW4gdGhlIHllYXIgMTk5Ny05OCB0byBlbnN1cmUgdHJpYmFsIHN0dWRlbnRzIGdldCBhY2Nlc3MgdG8gcXVhbGl0eSBlZHVjYXRpb24gaW4gdGhlIHJlbW90ZSB0cmliYWwgYXJlYXMuIEVNUlNzIGFyZSBzZXQgdXAgaW4gU3RhdGVzL1VUcyB3aXRoIGdyYW50cyB1bmRlciBBcnRpY2xlIDI3NSgxKSBvZiB0aGUgQ29uc3RpdHV0aW9uIG9mIEluZGlhLiBBcyBwZXIgdGhlIGJ1ZGdldCAyMDE4LTE5LCBldmVyeSBibG9jayB3aXRoIG1vcmUgdGhhbiA1MCUgU1QgcG9wdWxhdGlvbiBhbmQgYXQgbGVhc3QgMjAsMDAwIHRyaWJhbCBwZXJzb25zLCB3aWxsIGhhdmUgYW4gRWtsYXZ5YSBNb2RlbCBSZXNpZGVudGlhbCBTY2hvb2wgYnkgdGhlIHllYXIgMjAyMi4NCjE5OTc6W1NwYWNlXSBIaXBwYXJjb3MgKDE5ODkgLTE5OTMpLiBJdCB0b29rIDQtOCB5ZWFycyB0byBvcmdhbml6ZSBhbmQgcHVibGlzaCB0aGUgNCB5ZWFycyBzdHVkeSBieSB0aGlzIGV4cGVyaW1lbnQsIHdoaWNoIHBlcm1pdHRlZCB0aGUgZmlyc3QgaGlnaC1wcmVjaXNpb24gbWVhc3VyZW1lbnRzIG9mIHRoZSBpbnRyaW5zaWMgYnJpZ2h0bmVzc2VzIChjb21wYXJlZCB0byB0aGUgbGVzcyBwcmVjaXNlIGFwcGFyZW50IGJyaWdodG5lc3MpLCBwcm9wZXIgbW90aW9ucywgYW5kIHBhcmFsbGF4ZXMgb2Ygc3RhcnMsIGVuYWJsaW5nIGJldHRlciBjYWxjdWxhdGlvbnMgb2YgdGhlaXIgZGlzdGFuY2UgYW5kIHRhbmdlbnRpYWwgdmVsb2NpdHkuIFdoZW4gY29tYmluZWQgd2l0aCByYWRpYWwgdmVsb2NpdHkgbWVhc3VyZW1lbnRzIGZyb20gc3BlY3Ryb3Njb3B5LCBhc3Ryb3BoeXNpY2lzdHMgd2VyZSBhYmxlIHRvIGZpbmFsbHkgbWVhc3VyZSBhbGwgc2l4IHF1YW50aXRpZXMgbmVlZGVkIHRvIGRldGVybWluZSB0aGUgbW90aW9uIG9mIHN0YXJzLiBUaGUgcmVzdWx0aW5nIEhpcHBhcmNvcyBDYXRhbG9ndWUsIGEgaGlnaC1wcmVjaXNpb24gY2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiAxMTgsMjAwIHN0YXJzLCB3YXMgcHVibGlzaGVkIGluIDE5OTcuIFRoZSBsb3dlci1wcmVjaXNpb24gVHljaG8gQ2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiBhIG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBhdCB0aGUgc2FtZSB0aW1lLCB3aGlsZSB0aGUgZW5oYW5jZWQgVHljaG8tMiBDYXRhbG9ndWUgb2YgMi41IG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBpbiAyMDAwLiBIaXBwYXJjb3MnIGZvbGxvdy11cCBtaXNzaW9uLCBHYWlhLCB3YXMgbGF1bmNoZWQgaW4gMjAxMy4NCjE5OTc6W1NwYWNlXVtSZXNlYXJjaF0gU2luY2UgdGhlIDE5OTcgcHJvcG9zYWwgb2YgdGhlIEFkUy9DRlQgKEFudGktZGUgU2l0dGVyL0NvbmZvcm1hbCBGaWVsZCBUaGVvcnkpIGNvcnJlc3BvbmRlbmNlLCB0aGUgcHJlZG9taW5hbnQgYmVsaWVmIGFtb25nIHBoeXNpY2lzdHMgaXMgdGhhdCBpbmZvcm1hdGlvbiBpcyBpbmRlZWQgcHJlc2VydmVkIGluIGJsYWNrIGhvbGUgZXZhcG9yYXRpb24uIA0KMTk5NzpbU3BhY2VdW1Jlc2VhcmNoXSBBIHdpZGVseSBwdWJsaWNpemVkIGJldCBtYWRlIGluIDE5OTcgYmV0d2VlbiBKb2huIFByZXNraWxsIG9uIHRoZSBvbmUgaGFuZCB3aXRoIEhhd2tpbmcgYW5kIEtpcCBUaG9ybmUgb24gdGhlIG90aGVyIHRoYXQgaW5mb3JtYXRpb24gd2FzIG5vdCBsb3N0IGluIGJsYWNrIGhvbGVzLiBUaGUgc2NpZW50aWZpYyBkZWJhdGUgb24gdGhlIHBhcmFkb3ggd2FzIGRlc2NyaWJlZCBpbiBhIHBvcHVsYXIgYm9vayBwdWJsaXNoZWQgaW4gMjAwOCBieSBMZW9uYXJkIFN1c3NraW5kIGNhbGxlZCBUaGUgQmxhY2sgSG9sZSBXYXIuIChUaGUgYm9vayBjYXJlZnVsbHkgbm90ZXMgdGhhdCB0aGUgJ3dhcicgd2FzIHB1cmVseSBhIHNjaWVudGlmaWMgb25lLCBhbmQgdGhhdCBhdCBhIHBlcnNvbmFsIGxldmVsLCB0aGUgcGFydGljaXBhbnRzIHJlbWFpbmVkIGZyaWVuZHMuKSBUaGUgYm9vayBzdGF0ZXMgdGhhdCBIYXdraW5nIHdhcyBldmVudHVhbGx5IHBlcnN1YWRlZCB0aGF0IGJsYWNrLWhvbGUgZXZhcG9yYXRpb24gd2FzIHVuaXRhcnkgYnkgdGhlIGhvbG9ncmFwaGljIHByaW5jaXBsZSwgd2hpY2ggd2FzIGZpcnN0IHByb3Bvc2VkIGJ5ICd0IEhvb2Z0LCBmdXJ0aGVyIGRldmVsb3BlZCBieSBTdXNza2luZCBhbmQgbGF0ZXIgZ2l2ZW4gYSBwcmVjaXNlIHN0cmluZyB0aGVvcnkgaW50ZXJwcmV0YXRpb24gYnkgdGhlIEFkUy9DRlQgY29ycmVzcG9uZGVuY2UuIEluIDIwMDQsIEhhd2tpbmcgYWxzbyBjb25jZWRlZCB0aGUgMTk5NyBiZXQsIHBheWluZyBQcmVza2lsbCB3aXRoIGEgYmFzZWJhbGwgZW5jeWNsb3BlZGlhICJmcm9tIHdoaWNoIGluZm9ybWF0aW9uIGNhbiBiZSByZXRyaWV2ZWQgYXQgd2lsbCIgYWx0aG91Z2ggVGhvcm5lIHJlZnVzZWQgdG8gY29uY2VkZS4NCjE5OTc6W0VhcnRoXVtQaHlzaWNzXVtSZXNlYXJjaF0gdGhlcmUgd2VyZSB0d28gbGFyZ2UgZWFydGhxdWFrZXMgb2ZmIHRoZSBjb2FzdCBvZiBDaGlsZS4gVGhlIG1hZ25pdHVkZSBvZiB0aGUgZmlyc3QsIGluIEp1bHksIHdhcyBlc3RpbWF0ZWQgYXQgTXfigK82LjksIGJ1dCB3YXMgYmFyZWx5IGZlbHQsIGFuZCBvbmx5IGluIHRocmVlIHBsYWNlcy4gSW4gT2N0b2JlciBhIE134oCvNy4xIHF1YWtlIGluIG5lYXJseSB0aGUgc2FtZSBsb2NhdGlvbiwgYnV0IHR3aWNlIGFzIGRlZXAgYW5kIG9uIGEgZGlmZmVyZW50IGtpbmQgb2YgZmF1bHQsIHdhcyBmZWx0IG92ZXIgYSBicm9hZCBhcmVhLCBpbmp1cmVkIG92ZXIgMzAwIHBlb3BsZSwgYW5kIGRlc3Ryb3llZCBvciBzZXJpb3VzbHkgZGFtYWdlZCBvdmVyIDEwLDAwMCBob3VzZXMuIEFzIGNhbiBiZSBzZWVuIGluIHRoZSB0YWJsZSBiZWxvdywgdGhpcyBkaXNwYXJpdHkgb2YgZGFtYWdlIGRvbmUgaXMgbm90IHJlZmxlY3RlZCBpbiBlaXRoZXIgdGhlIG1vbWVudCBtYWduaXR1ZGUgKE134oCvKSBub3IgdGhlIHN1cmZhY2Utd2F2ZSBtYWduaXR1ZGUgKE1z4oCvKS4gT25seSB3aGVuIHRoZSBtYWduaXR1ZGUgaXMgbWVhc3VyZWQgb24gdGhlIGJhc2lzIG9mIHRoZSBib2R5LXdhdmUgKG1i4oCvKSBvciB0aGUgc2Vpc21pYyBlbmVyZ3kgKE1l4oCvKSBpcyB0aGVyZSBhIGRpZmZlcmVuY2UgY29tcGFyYWJsZSB0byB0aGUgZGlmZmVyZW5jZSBpbiBkYW1hZ2UuIChhcyByZXNlYXJjaGVkIGJ5IENob3ksIEJvYXR3cmlnaHQgJiBLaXJieSAyMDAxLCBwLiAxMy4pLiBNdyA2Ljkgd2FzIGFjdHVhbGx5IE1lIDYuMSwgYW4gaW50ZXJwbGF0ZS10aHJ1c3QgdHlwZSBvZiBmYXVsdCwgd2hpbGUgTXcgNy4xIHdhcyBhY3R1YWxseSBhIDcuNSBNZSBpbnRyYXNsYWItbm9ybWFsIHR5cGUgb2YgZmF1bHQuDQoxOTk3OltSZXNlYXJjaF0gRHVyaW5nIHN1cnZleXMgY2FycmllZCBvdXQgYmV0d2VlbiAxOTk3IGFuZCAyMDAxLCBhIHNwb3Qgd2FzIGZvdW5kIGFsb25nIHRoZSBNYXJpYW5hIFRyZW5jaCB0aGF0IGhhZCBhIGRlcHRoIHNpbWlsYXIgdG8gdGhlIENoYWxsZW5nZXIgRGVlcCwgcG9zc2libHkgZXZlbiBkZWVwZXIuIEl0IHdhcyBkaXNjb3ZlcmVkIHdoaWxlIHNjaWVudGlzdHMgZnJvbSB0aGUgSGF3YWlpIEluc3RpdHV0ZSBvZiBHZW9waHlzaWNzIGFuZCBQbGFuZXRvbG9neSB3ZXJlIGNvbXBsZXRpbmcgYSBzdXJ2ZXkgYXJvdW5kIEd1YW07IHRoZXkgdXNlZCBhIHNvbmFyIG1hcHBpbmcgc3lzdGVtIHRvd2VkIGJlaGluZCB0aGUgcmVzZWFyY2ggc2hpcCB0byBjb25kdWN0IHRoZSBzdXJ2ZXkuIFRoaXMgbmV3IHNwb3Qgd2FzIG5hbWVkIHRoZSBITVJHIChIYXdhaWkgTWFwcGluZyBSZXNlYXJjaCBHcm91cCkgRGVlcCwgYWZ0ZXIgdGhlIGdyb3VwIG9mIHNjaWVudGlzdHMgd2hvIGRpc2NvdmVyZWQgaXQuDQoxOTk3OltTcGFjZVhdIEEgcmVzb2x2ZWQgY2lyY3Vtc3RlbGxhciBkaXNrIHdhcyBmaXJzdCBpZGVudGlmaWVkIGluIDE5OTcgd2l0aCB0aGUgT3dlbnMgVmFsbGV5IFJhZGlvIE9ic2VydmF0b3J5LiBUaGUgc2VtaS1tYWpvciBheGlzIHdhcyBpbml0aWFsbHkgZXN0aW1hdGVkIHRvIGJlIDExMCBBVS4gSEQgMTYzMjk2IGFuZCBzdXJyb3VuZGluZ3MgQ3JlZGl0OiBFU08vRGlnaXRpemVkIFNreSBTdXJ2ZXkgMjsgQWNrbm93bGVkZ2VtZW50OiBEYXZpZGUgRGUgTWFydGluIE9ic2VydmF0aW9uIGRhdGEgRXBvY2ggSjIwMDAgICAgICBFcXVpbm94IEoyMDAwIENvbnN0ZWxsYXRpb24JU2FnaXR0YXJpdXMgUmlnaHQgYXNjZW5zaW9uCTE3aCA1Nm0gMjEuMjlzIERlY2xpbmF0aW9uCeKIkjIxwrAgNTfigLIgMjEuODfigLMgQXBwYXJlbnQgbWFnbml0dWRlIChWKQk2Ljg1OyBDaGFyYWN0ZXJpc3RpY3MgRXZvbHV0aW9uYXJ5IHN0YWdlCUhlcmJpZyBBZSBzdGFyIFNwZWN0cmFsIHR5cGUJQTNWYWVrQTFtQTE7IEFzdHJvbWV0cnkgUmFkaWFsIHZlbG9jaXR5IChSdikJLTQuMDAgwrEzLjNbM10ga20vcyBQcm9wZXIgbW90aW9uICjOvCkJUkE6IC03LjU4NiDCsTAuMDQxIG1hcy95cjsgRGVjLjogLTM5LjQ1OCDCsTAuMDI5IG1hcy95cls0XSBQYXJhbGxheCAoz4ApCTkuOTA0M8KxMC4wNDA4IG1hc1s0XSBEaXN0YW5jZQkzMjkgwrEgMSBseSAoMTAxLjAgwrEgMC40IHBjKSBEZXRhaWxzOyBNYXNzCTEuOTXCsTAuMDcgTeKYiSBSYWRpdXMJMS44N8KxMC4wNSBS4piJIEx1bWlub3NpdHkJMjAuNCszLjYg4oiSMy4wIEzimIkgU3VyZmFjZSBncmF2aXR5IChsb2cgZykJNC4xMMKxMC4xMCBjZ3MgVGVtcGVyYXR1cmUJOTAwMMKxMjUwIEsgQWdlCTYuMDMrMC4yOCDiiJIwLjI3IE15ciBPdGhlciBkZXNpZ25hdGlvbnMgQkQtMjEgNDc3OSwgQ1BELTIxIDY1MDgsIEVNKiBNV0MgMjc1LCBISVAgODc4MTksIElSQVMgMTc1MzMtMjE1NiwgMk1BU1MgSjE3NTYyMTI4LTIxNTcyMTgsIFBEUyA0NzMsIFRZQyA2MjYyLTIxMzEtMSwgRGF0YWJhc2UgcmVmZXJlbmNlcyBTSU1CQUQNCjE5OTc6W1NwYWNlWF0gMTAxOTkgQ2hhcmlrbG8gaXMgYSByaW5nZWQgYXN0ZXJvaWQgb3IgY2VudGF1ciBpbiB0aGUgb3V0ZXIgU29sYXIgU3lzdGVtLiBJdCBpcyB0aGUgbGFyZ2VzdCBrbm93biBjZW50YXVyLCB3aXRoIGEgZGlhbWV0ZXIgb2YgYWJvdXQgMjUwIGttLiBJdCBvcmJpdHMgdGhlIFN1biBiZXR3ZWVuIFNhdHVybiBhbmQgVXJhbnVzIHdpdGggYW4gb3JiaXRhbCBwZXJpb2Qgb2YgNjIuNSB5ZWFycy4gV2lraXBlZGlhIE9yYml0YWwgcGVyaW9kOiA2MyB5ZWFycyBSYWRpdXM6IDE1MSBrbSBEaXNjb3ZlcmVkOiAxNSBGZWJydWFyeSAxOTk3IERpbWVuc2lvbnM6ICgyODcuNisyLjg7IOKIkjMuMCkgw5cgKDI3MC40KzIuODsg4oiSNS42KSDDlyAoMTk4LjIrMTAuODsg4oiSNS40KSBrbTogMTEgRGlzY292ZXJlcjogSmFtZXMgVi4gU2NvdHRpIFNwZWN0cmFsIHR5cGU6IEQtdHlwZSBhc3Rlcm9pZCBBcGhlbGlvbjogMTguNDIwIEFVDQoxOTk3OltTcGFjZVhdIFRoZSBHcmVhdCBEYXlsaWdodCBGaXJlYmFsbCAtIFRoZSBhdG1vc3BoZXJpYyBwYXNzIG1vZGlmaWVkIHRoZSBvYmplY3QncyBtYXNzIGFuZCBvcmJpdCBhcm91bmQgdGhlIFN1bi4gQSAxOTk0IHN0dWR5IGZvdW5kIHRoYXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgaW4gYW4gRWFydGgtY3Jvc3Npbmcgb3JiaXQgYW5kIHByZWRpY3RlZCB0aGF0IGl0IHdvdWxkIHBhc3MgY2xvc2UgdG8gRWFydGggYWdhaW4gaW4gQXVndXN0IDE5OTcuIEhvd2V2ZXIsIHRoZSBvYmplY3QgaGFzIG5vdCBiZWVuIG9ic2VydmVkIGFnYWluIGFuZCBzbyBpdHMgcG9zdC1lbmNvdW50ZXIgb3JiaXQgcmVtYWlucyB1bmtub3duLg0KMTk5NzpOYWZpc2EgSm9zZXBoIHdhcyB0aGUgeW91bmdlc3QgTWlzcyBJbmRpYSB3aW5uZXIgYXQgYWdlIDE5LCB3aW5uaW5nIHRoZSB0aXRsZSBpbiAxOTk3LiBTaGUgbGF0ZXIgYmVjYW1lIGEgbW9kZWwgYW5kIHRlbGV2aXNpb24gcGVyc29uYWxpdHkuIFdoaWxlIG90aGVyIHdpbm5lcnMgbGlrZSBNZWVuYWtzaGkgU2VzaGFkcmkgd2VyZSBhbHNvIDE3IHdoZW4gdGhleSB3b24gaW4gMTk4MSwgSm9zZXBoIGlzIG9mdGVuIGNpdGVkIGZvciBoZXIgZWFybHkgd2luIGF0IDE5LCB3aGljaCB3YXMgdGhlbiBhIHlvdW5nZXIgYWdlIHRoYW4gaXMgdHlwaWNhbGx5IHNlZW4gaW4gdGhlIGNvbXBldGl0aW9uLiANCjE5OTc6W3NwYWNlXVt0ZWNoXSBUaGUgZmluYWwgQmxvY2sgSUlBIHdhcyBpbiBOb3YgMTk5Nywgd2hpbGUgQmxvY2sgSUlScyBiZWdhbiByZXBsYWNpbmcgdGhlbSBzaG9ydGx5IGFmdGVyLCBsYXN0aW5nIHVudGlsIDIwMDQuIEJsb2NrIElJUiAoUmVwbGVuaXNobWVudCkgbGF1bmNoZXMgZm9sbG93ZWQgZnJvbSAxOTk3IHRvIDIwMDQsIHdpdGggdGhlIGZpcnN0IGxhdW5jaCBpbiBKYW51YXJ5IDE5OTcuIA0KDQoxOTk4OltTcGFjZVhdIFRoZSBwcmltYXJ5IGNvbnN0cnVjdGlvbiBwaGFzZSBvZiB0aGUgSW50ZXJuYXRpb25hbCBTcGFjZSBTdGF0aW9uIChJU1MpIHRvb2sgYXBwcm94aW1hdGVseSAxMyB5ZWFycywgZnJvbSAxOTk4IHRvIDIwMTEsIHdpdGggdGhlIGZpcnN0IG1vZHVsZSBsYXVuY2hpbmcgaW4gTm92ZW1iZXIgMTk5OCBhbmQgSVNTIEFzc2VtYmx5IENvbXBsZXRlIGRlY2xhcmVkIGluIE1heSAyMDExLiBIb3dldmVyLCBhc3NlbWJseSB3YXMgYSBjb250aW51b3VzLCBtdWx0aS1zdGFnZSBwcm9jZXNzIGludm9sdmluZyBtb3JlIHRoYW4gMzAgbWlzc2lvbnMsIG51bWVyb3VzIHNwYWNld2Fsa3MsIGFuZCByb2JvdGljIGFzc2lzdGFuY2UgdG8gYnVpbGQgdGhlIHN0YXRpb24gcGllY2UgYnkgcGllY2UgaW4gb3JiaXQuIEV2ZW4gYWZ0ZXIgMjAxMSwgdGhlIElTUyBjb250aW51ZWQgdG8gZXZvbHZlIHdpdGggb25nb2luZyBhZGRpdGlvbnMgYW5kIHVwZ3JhZGVzLg0KMTk5ODpbUmVzZWFyY2hdW1NwYWNlXSBTcHJpbmcsIDE5OTg6IGEgbWljcm9mb3NzaWwgdGhhdCB3YXMgZm91bmQgaW4gYSBtZXRlb3JpdGUgYW5kIHBob3RvZ3JhcGhlZCBpbiAxOTY2LCB3YXMgcmVjb2duaXplZCBieSBhIFJ1c3NpYW4gbWljcm9iaW9sb2dpc3QgYXMgYSBtYWduZXRvdGFjdGljIGJhY3Rlcml1bS4gQnkgRmFsbCwgMTk5ODogTkFTQSdzIHB1YmxpYyBwb3NpdGlvbiBvbiBsaWZlLWZyb20tc3BhY2Ugc2hpZnRlZCBkcmFtYXRpY2FsbHkuDQoxOTk4OiBBcyBhIHJlc2VhcmNoIHByb2plY3QgYXQgU3RhbmZvcmQgVW5pdmVyc2l0eSwgU2VyZ2V5IEJyaW4gYW5kIExhcnJ5IFBhZ2UgY3JlYXRlZCBhIHNlYXJjaCBlbmdpbmUgdGhhdCBsaXN0ZWQgcmVzdWx0cyBhY2NvcmRpbmcgdG8gdGhlIHBvcHVsYXJpdHkgb2YgdGhlIHBhZ2VzLCBhZnRlciBjb25jbHVkaW5nIHRoYXQgdGhlIG1vc3QgcG9wdWxhciByZXN1bHQgd291bGQgb2Z0ZW4gYmUgdGhlIG1vc3QgdXNlZnVsLiBBZnRlciByYWlzaW5nICQxIG1pbGxpb24gZnJvbSBmYW1pbHksIGZyaWVuZHMgYW5kIG90aGVyIGludmVzdG9ycywgdGhlIHBhaXIgbGF1bmNoZWQgdGhlIGNvbXBhbnkgaW4gMTk5OC4gR29vZ2xlIGhhcyBzaW5jZSBiZWNvbWUgdGhlIHdvcmxk4oCZcyBtb3N0IHBvcHVsYXIgc2VhcmNoIGVuZ2luZSwgcmVjZWl2aW5nIG1vcmUgdGhhbiAyMDAgbWlsbGlvbiBxdWVyaWVzIGVhY2ggZGF5Lg0KMTk5OCAoTm92IDIwKTogDQoxOTk4IChBcHIgMjcpOiBSUkIgZm91bmRlZCBhcyBSYWlsd2F5IFJlY3J1aXRtZW50IENvbnRyb2wgQm9hcmQgaXMgYSBnb3Zlcm5tZW50IG9yZ2FuaXNhdGlvbiBpbiBJbmRpYS4gSXQgd2FzIHNldCB1cCBpbiAxOTk4IGluIHRoZSBNaW5pc3RyeSBvZiBSYWlsd2F5cyAoUmFpbHdheSBCb2FyZCksIE5ldyBEZWxoaS5JbiAxOTQ1LCB0aGUgU2VydmljZXMgQ29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgYXQgQm9tYmF5LCBDYWxjdXR0YSwgTWFkcmFzIGFuZCBMdWNrbm93LiBJbiAxOTgzLCB0byBjYXRlciB0byB0aGUgbmVlZHMgb2YgYXJlYXMgd2hpY2ggd2VyZSBiZWluZyBuZWdsZWN0ZWQgZHVlIHRvIGxvY2F0aW9ucyBvZiB0aGUgZXhpc3RpbmcgY29tbWlzc2lvbnMsIHNldmVuIG1vcmUgY29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgdml6LCBhdCBBaG1lZGFiYWQsIEFqbWVyLCBCaG9wYWwsIEJodXZuZXNod2FyLCBDaGFuZGlnYXJoLCBKYW1tdSBhbmQgU3JpbmFnYXIgd2l0aCBzaXR0aW5nIGF0IExlaCBhbmQgVHJpdmVuZHJ1bS4gSW4gMTk4NCB0d28gbW9yZSBzZXJ2aWNlIGNvbW1pc3Npb25zIHdlcmUgc2V0IHVwIGF0IE1hbGRhIGFuZCBHb3Jha2hwdXIuDQoxOTk4IChNYXkgMTkpOiBBdGFsIEJpaGFyaSBWYWpwYXllZSBiZWNvbWVzIFBNIG9mIEluZGlhIGZvciB0aGUgc2Vjb25kIHRpbWUsIG5vdyBmb3IgNiB5ZWFycyB0aWxsIE1heSAyMiwgMjAwNC4gDQoxOTk4IChNYXkgMjggMTU6MTVQU1QpOiBDaGFnYWktSSBpcyB0aGUgY29kZSBuYW1lIG9mIGZpdmUgc2ltdWx0YW5lb3VzIHVuZGVyZ3JvdW5kIG51Y2xlYXIgdGVzdHMgY29uZHVjdGVkIGJ5IFBha2lzdGFuLiBUaGUgdGVzdHMgd2VyZSBwZXJmb3JtZWQgYXQgUmFzIEtvaCBIaWxscyBpbiB0aGUgQ2hhZ2FpIERpc3RyaWN0IG9mIEJhbG9jaGlzdGFuIFByb3ZpbmNlLiBDaGFnYWktSSB3YXMgUGFraXN0YW4ncyBmaXJzdCBwdWJsaWMgdGVzdCBvZiBudWNsZWFyIHdlYXBvbnMuIFBha2lzdGFuJ3MgZmlzc2lsZSBtYXRlcmlhbCBwcm9kdWN0aW9uIHRha2VzIHBsYWNlIGF0IE5pbG9yZSwgS2FodXRhLCBhbmQgS2h1c2hhYiBOdWNsZWFyIENvbXBsZXgsIHdoZXJlIHdlYXBvbnMtZ3JhZGUgcGx1dG9uaXVtIGlzIHJlZmluZWQuDQoxOTk4OiBBZnRlciBjb21wbGV0aW5nIGhpcyBYIHN0YW5kYXJkIGV4YW1pbmF0aW9ucywgUmFuYmlyIEthcG9vciwgYWdlZCAxNiwgd29ya2VkIGFzIGFuIGFzc2lzdGFudCBkaXJlY3RvciB0byBoaXMgZmF0aGVyIG9uIHRoZSBmaWxtIEFhIEFiIExhdXQgQ2hhbGVuICgxOTk5KSwgZHVyaW5nIHdoaWNoIGhlIGRldmVsb3BlZCBhIGNsb3NlciBib25kIHdpdGggaGltLg0KMTk4ODogTmV0d29ya2VkIERhdGEgUHJvY2Vzc2luZyBDb3IsIElvd2EgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBJbnN1cmFuY2UgZGl2aXNpb24uDQoxOTk4OltCb29rXSBSb2JlcnQgR3JlZW5lJ3MgVGhlIDQ4IExhd3Mgb2YgUG93ZXI7IFRoZSAzMyBTdHJhdGVnaWVzIG9mIFdhciAoMjAwNik7IE1hc3RlcnkgKDIwMTIsIE5vdiAxMyk7IFRoZSBMYXdzIG9mIEh1bWFuIE5hdHVyZSAoMjAxOCwgT2N0IDE2KQ0KMTk5ODpbU3BhY2VdW1Jlc2VhcmNoXVtFeHRyZW1lXSBUaGVuIGNhbWUgMTk5OCBhbmQgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgKEhTVCkgb2JzZXJ2YXRpb25zIG9mIHZlcnkgZGlzdGFudCBzdXBlcm5vdmFlIHRoYXQgc2hvd2VkIHRoYXQsIGEgbG9uZyB0aW1lIGFnbywgdGhlIHVuaXZlcnNlIHdhcyBhY3R1YWxseSBleHBhbmRpbmcgbW9yZSBzbG93bHkgdGhhbiBpdCBpcyB0b2RheS4gU28gdGhlIGV4cGFuc2lvbiBvZiB0aGUgdW5pdmVyc2UgaGFzIG5vdCBiZWVuIHNsb3dpbmcgZHVlIHRvIGdyYXZpdHksIGFzIGV2ZXJ5b25lIHRob3VnaHQsIGl0IGhhcyBiZWVuIGFjY2VsZXJhdGluZy4NCjE5OTg6W0NyaW1lXVtJbmRpYV0gQW5lZXMgYXJyZXN0ZWQgaW4gVUFFIG9uIGNoYXJnZXMgb2YgaGF2aW5nIG11cmRlcmVkIGEgZm9ybWVyIGFzc29jaWF0ZSBhbmQgdGhlbiByaXZhbCwgSXJmYW4gR29nYSwgaW4gRHViYWksIGJ1dCB3YXMgZnJlZWQgYWZ0ZXIgdHdvIGRheXMgZm9yICdsYWNrIG9mIGV2aWRlbmNlJy4NCjE5OTg6W0NvbXB1dGluZ11bUXVhbnR1bV0gUmVzZWFyY2hlcnMgYXQgSUJNLCBPeGZvcmQsIEJlcmtlbGV5LCBTdGFuZm9yZCwgYW5kIE1JVCBwcm9kdWNlZCBhIDItcXViaXQgY29tcHV0aW5nIHN5c3RlbS4NCjE5OTg6W3d3d10gV2lyZXNoYXJrIGlzIGEgZnJlZSBhbmQgb3Blbi1zb3VyY2UgcGFja2V0IGFuYWx5emVyLiBJdCBpcyB1c2VkIGZvciBuZXR3b3JrIHRyb3VibGVzaG9vdGluZywgYW5hbHlzaXMsIHNvZnR3YXJlIGFuZCBjb21tdW5pY2F0aW9ucyBwcm90b2NvbCBkZXZlbG9wbWVudCwgYW5kIGVkdWNhdGlvbi4gT3JpZ2luYWxseSBuYW1lZCBFdGhlcmVhbCwgdGhlIHByb2plY3Qgd2FzIHJlbmFtZWQgV2lyZXNoYXJrIGluIE1heSAyMDA2IGR1ZSB0byB0cmFkZW1hcmsgaXNzdWVzLg0KMTk5ODpbVVNdW0Vjb25vbXldRGF2aWQgUm9ja2VmZWxsZXIgU3IuIHdhcyBhd2FyZGVkIHRoZSBQcmVzaWRlbnRpYWwgTWVkYWwgb2YgRnJlZWRvbSBieSBQcmVzaWRlbnQgQmlsbCBDbGludG9uIGZvciBoaXMgd29yayBvbiBJbnRlcm5hdGlvbmFsIEV4ZWN1dGl2ZSBTZXJ2aWNlIENvcnBzLg0KMTk5ODpbRGVmXVtBdmlhdGlvbl0gVGhlIExvY2toZWVkIFNSLTcxIEJsYWNrYmlyZCBmbGV3IHNvIGhpZ2ggYW5kIHNvIGZhc3QgdGhhdCB0aGUgY3JldyBuZWVkZWQgcHJlc3N1cml6ZWQgc3BhY2Ugc3VpdHMgd2hlbiBmbHlpbmcgaXQuIEFuZCBpdCBpcyBzYWlkIHRoYXQgYXQgdGhlIG1heGltdW0gYWx0aXR1ZGUgb2YgaXQgaXQgd2FzIHBvc3NpYmxlIHRvIHNlZSB0aGUgY3VydmF0dXJlIG9mIHRoZSBlYXJ0aCwgd2hpY2ggcmVmZXJzIHRvIHRoaXMgcXVvdGUgYnkgQ29sb25lbCBBbGlzb246IOKAnE9uIGEgY2xlYXIgZGF5IHlvdSBjYW4gc2VlIGZvcmV2ZXLigKbigJ0uIFRoZSBzZXJ2aWNlIGNlaWxpbmcgb2YgODUsMDAwIGZlZXQgKDI1LDkwMG0pIG1lYW50IHRoYXQgaXQgd2FzIGFuIGV4Y2VsbGVudCBleHBlcmltZW50YWwgdW5pdCBmb3Igc3BhY2UgdHJhdmVscy4gVGhhdCwgY29tYmluZWQgd2l0aCB0aGUgZ3JlYXQgc3BlZWRzIG9mIGl0IHdhcyB0d28gb2YgdGhlIHJlYXNvbnMgd2h5IE5BU0EgZGVjaWRlZCB0byB0YWtlIG92ZXIgdGhlIGxhc3QgdHdvIEJsYWNrYmlyZHMgYWZ0ZXIgaXRzIHJldGlyZW1lbnQgZnJvbSB0aGUgQWlyIEZvcmNlIGluIDE5OTguIFRoaXMgbWVhbnMgdGhhdCB0aGUgd29ybGTigJlzIGZhc3Rlc3QgYWlyY3JhZnQgd2FzIGluIHNlcnZpY2UgZnJvbSAxOTY2IHVudGlsIE5BU0EgcmV0aXJlZCBpdHMgdHdvIHVuaXRzIGluIDE5OTksIGFuZCBtb3N0IG9mIHRoZSByZW1haW5pbmcgQmxhY2tiaXJkcyBhcmUgdG9kYXkgc3RhdGlvbmVkIGF0IG11c2V1bXMgb3IgbWlsaXRhcnkgYmFzZXMgYWNyb3NzIHRoZSBVUy4NCjE5OTg6SW4gMTk5OCwgR2F1dGFtIEFkYW5pLCBhbG9uZyB3aXRoIGhpcyBhc3NvY2lhdGUgU2hhbnRpbGFsIFBhdGVsLCB3YXMga2lkbmFwcGVkIGZvciByYW5zb20gaW4gQWhtZWRhYmFkLCBJbmRpYS4gVGhleSB3ZXJlIGFiZHVjdGVkIGF0IGd1bnBvaW50IGFmdGVyIGxlYXZpbmcgdGhlIEthcm5hdmF0aSBDbHViIGluIGEgY2FyLiBUaGUga2lkbmFwcGVycywgYWxsZWdlZGx5IGdhbmdzdGVycyBGYXpsdSBSZWhtYW4gYW5kIEJob2dpbGFsIERhcmppLCByZXBvcnRlZGx5IGRlbWFuZGVkIGEgcmFuc29tIG9mICQxLjUtMiBtaWxsaW9uLiBCb3RoIEFkYW5pIGFuZCBQYXRlbCB3ZXJlIHJlbGVhc2VkIGEgZGF5IGxhdGVyLCBidXQgaXQncyB1bmNsZWFyIGlmIHRoZSByYW5zb20gd2FzIHBhaWQuIA0KVGhlIGtpZG5hcHBpbmcgaW5jaWRlbnQgaGFwcGVuZWQgaW4gdGhlIG1pZC0xOTkwcywgYXJvdW5kIHRoZSB0aW1lIEFkYW5pJ3MgYnVzaW5lc3Mgc3VjY2Vzc2VzIHN0YXJ0ZWQgYXR0cmFjdGluZyB1bndhbnRlZCBhdHRlbnRpb24uIFRoZSBraWRuYXBwaW5nIHdhcyBhbGxlZ2VkbHkgY2FycmllZCBvdXQgYnkgRmF6bHUgUmVobWFuIGFuZCBCaG9naWxhbCBEYXJqaSwgYWxzbyBrbm93biBhcyAiTWFtYSIuIFRoZXkgd2VyZSBsYXRlciBhY3F1aXR0ZWQgZHVlIHRvIGxhY2sgb2YgZXZpZGVuY2UuIA0KVGhlIGFiZHVjdGlvbiBpcyBqdXN0IG9uZSBvZiB0aGUgY2hhbGxlbmdlcyBBZGFuaSBoYXMgZmFjZWQuIEhlIHdhcyBhbHNvIGNhdWdodCBpbiB0aGUgMjYvMTEgTXVtYmFpIHRlcnJvciBhdHRhY2tzIGF0IHRoZSBUYWogSG90ZWwuIE1vcmUgcmVjZW50bHksIGhlIGhhcyBmYWNlZCBhY2N1c2F0aW9ucyBvZiBicmliZXJ5IGFuZCBzZWN1cml0aWVzIGZyYXVkLiANCkFkYW5pIGFuZCBvdGhlcnMgd2VyZSBlc2NvcnRlZCBieSBzdGFmZiB0byB0aGUga2l0Y2hlbiBhbmQgdGhlbiB0aGUgYmFzZW1lbnQuIFRoZXkgc3BlbnQgdGhlIGVudGlyZSBuaWdodCBpbiBhIGhhbGwgd2FpdGluZyBmb3IgcmVzY3VlLiBBZGFuaSBsYXRlciB0b2xkIG5ld3MgY2hhbm5lbHMgdGhhdCBoZSBzYXcg4oCcZGVhdGggYXQgYSBkaXN0YW5jZSBvZiBqdXN0IDE1IGZlZXQu4oCdIEhlIHdhcyByZXNjdWVkIHRoZSBuZXh0IG1vcm5pbmcgYnkgc2VjdXJpdHkgZm9yY2VzLg0KMTk5ODpbRW52XVtEaXNhc3Rlcl0gRWFzdGVybiBJbmRpYSwgMTk5OCBCYW5nbGFkZXNoIGZsb29kOyA0ayBkZWF0aHMNCjE5OTg6W1dob11bUmVzZWFyY2hdW0NvbXB1dGluZ11bVGVjaF1bQ3VsdHVyZV0gSW50ZXJuZXQgRG93bmxvYWQgTWFuYWdlciAoSURNKSB3YXMgZGV2ZWxvcGVkIGJ5IFRvbmVjIEluYy4sIGFuIEFtZXJpY2FuIGNvbXBhbnkgdGhhdCBzdGFydGVkIHRoZSBwcm9qZWN0IGluIDE5OTggYW5kIHJlbGVhc2VkIHRoZSBzb2Z0d2FyZSBpbiAyMDAxLiBUb25lYyBJbmMuIGZvY3VzZXMgb24gbmV0d29yayBwcm9ncmFtbWluZyBhbmQgY3JlYXRlZCBJRE0gdG8gc3BlZWQgdXAgZG93bmxvYWRzIGJ5IHVzaW5nIGR5bmFtaWMgZmlsZSBzZWdtZW50YXRpb24sIGFjY2VsZXJhdGluZyBzcGVlZHMgYnkgdXAgdG8gOCB0aW1lcy4gDQoNCjE5OTk6NCBKYW51YXJ5IDE5OTk6IE5BU0Egb2ZmaWNpYWxseSByZWNvZ25pemVkIHRoZSBwb3NzaWJpbGl0eSB0aGF0IGxpZmUgb24gRWFydGggY29tZXMgZnJvbSBzcGFjZS4NCjE5IE1hcmNoIDE5OTk6IE5BU0Egc2NpZW50aXN0cyBhbm5vdW5jZWQgdGhhdCB0d28gbW9yZSBtZXRlb3JpdGVzIGhvbGQgZXZlbiBzdHJvbmdlciBmb3NzaWxpemVkIGV2aWRlbmNlIGZvciBwYXN0IGxpZmUgb24gTWFycy4NCjE5OTk6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEcyMCBvciBHcm91cCBvZiAyMCBpcyBhbiBpbnRlcmdvdmVybm1lbnRhbCBmb3J1bSBjb21wcmlzaW5nIDE5IHNvdmVyZWlnbiBjb3VudHJpZXMsIHRoZSBFdXJvcGVhbiBVbmlvbiwgYW5kIHRoZSBBZnJpY2FuIFVuaW9uLiBGb3VuZGVkOiAyNiBTZXB0ZW1iZXIgMTk5OTsgQ2hhaXJtYW4gKEluY3VtYmVudCk6IEN5cmlsIFJhbWFwaG9zYSwgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYQ0KMTk5OTogVGhlIHRlcm0gV2ktRmkgd2FzIGludmVudGVkIGJ5IEludGVyYnJhbmQgKGFuIGFtZXJpY2FuIGJyYW5kIGNvbnN1bHRhbmN5IGNvbXBhbnkpIGFzIGEgcHVuIHVwb24gdGhlIHdvcmQgaGktZmkuDQpXaS1GaSBBbGxpYW5jZSBmb3JtZWQgYXMgYSB0cmFkZSBhc3NvY2lhdGlvbiB0byBob2xkIHRoZSBXaS1GaSB0cmFkZW1hcmsgdW5kZXIgd2hpY2ggbW9zdCBwcm9kdWN0cyBhcmUgc29sZC4NCjE5OTk6IHRoZSB0ZXJtDQoxOTk5OiBJc2xhbWljIFN0YXRlIG9mIElyYXEgYW5kIHRoZSBMZXZhbnQgKGFsc28ga25vd24gYXMgdGhlIElzbGFtaWMgU3RhdGUgb2YgSXJhcSBhbmQgU3lyaWEsIElzbGFtaWMgU3RhdGUsIG9yIGNvbW1vbmx5LCBJU0lTKSBmb3VuZGVkIGFzIEphbWEnYXQgYWwtVGF3aGlkIHdhbC1KaWhhZCBieSBBYnUgTXVzYWIgYWwtWmFycWF3aSBIUSdkIGF0ICBBbC1SYXFxYWguDQoxOTk5IChBcHIgMTIpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBJIFdhbnQgSXQgVGhhdCBXYXkuDQoxOTk5IChBcHIgMTgpOiBDT05DRVJUIGJlY2FtZSBvcGVyYXRpb25hbC4gSXQgd2FzIGRldmVsb3BlZCB1c2luZyBjbGllbnQtc2VydmVyIG1vZGVsIGZvciBkaXN0cmlidXRlZCBjb21wdXRpbmcgaXMgYSB0b3RhbCBzb2x1dGlvbiB0byB0aGUgbmV0d29ya2luZyBvZiB0aGUgUFJTcy4gQWxsIHRoZSBmaXZlIHNpdGVzIGhhdmUgYmVlbiBpbnRlcm5ldC13b3JrZWQgb3ZlciBhIDY0IGticHMgbGluZSB1c2luZyByb3V0ZXJzLCBvbiBsZWFzZWQgY29tbXVuaWNhdGlvbiBsaW5lIGNvbm5lY3Rpb25zIGZyb20gRGVwYXJ0bWVudCBvZiBUZWxlY29tIChET1QpLg0KMTk5OTogQ3JlZGl0IGNhcmRzIGFjY2VwdGVkIGZvciBib29raW5nIHRpY2tldHMgYW5kIHJlc2VydmF0aW9ucyBpbiBzb21lIHN0YXRpb25zIChpbmNsdWRpbmcgTXVtYmFpIENTVCkuDQoxOTk5IChNYXkgMSk6W0Jvb2tdIFJvYmVydCBLaXlvc2FraSAmIFNoYXJvbiBMZWNodGVyJ3MgUmljaCBEYWQncyBDYXNoZmxvdyBRdWFkcmFudDogUmljaCBEYWQncyBHdWlkZSB0byBGaW5hbmNpYWwgRnJlZWRvbTsgUmljaCBEYWQncyBHdWlkZSB0byBJbnZlc3Rpbmc6IFdoYXQgdGhlIFJpY2ggSW52ZXN0IGluIFRoYXQgdGhlIFBvb3IgYW5kIE1pZGRsZSBDbGFzcyBEbyBOb3QhICgyMDAxLCBKYW4gMSk7IFRoZSBSZWFsIEJvb2sgb2YgUmVhbCBFc3RhdGU6IFJlYWwgRXhwZXJ0cy4gUmVhbCBTdG9yaWVzLiBSZWFsIExpZmUuICgyMDA5LCBNYXkgMTIpOyBSaWNoIEtpZCBTbWFydCBLaWQ6IEdpdmluZyBZb3VyIENoaWxkIGEgRmluYW5jaWFsIEhlYWQgU3RhcnQgKDIwMDEsIEphbiAxKTsgDQoxOTk5IChNYXkgMTgpOltNdXNpY10gTWlsbGVubml1bSBpcyB0aGUgdGhpcmQgc3R1ZGlvIGFsYnVtIChzZWNvbmQgaW4gdGhlIFVuaXRlZCBTdGF0ZXMpIGJ5IEFtZXJpY2FuIGJveSBiYW5kIEJhY2tzdHJlZXQgQm95cywgcmVsZWFzZWQgYnkgSml2ZSBSZWNvcmRzLg0KMTk5OSAoRnJpLCAyNCBEZWMpOiBJbmRpYW4gQWlybGluZXMgRmxpZ2h0IDgxNCBjb21tb25seSBrbm93biBhcyBJQyA4MTQgd2FzIGFuIEluZGlhbiBBaXJsaW5lcyBBaXJidXMgQTMwMCBlbiByb3V0ZSBmcm9tIFRyaWJodXZhbiBJbnRlcm5hdGlvbmFsIEFpcnBvcnQgaW4gS2F0aG1hbmR1LCBOZXBhbCB0byBJbmRpcmEgR2FuZGhpIEludGVybmF0aW9uYWwgQWlycG9ydCBpbiBEZWxoaSwgSW5kaWEgd2FzIGhpamFja2VkLiBIYXJrYXQtdWwtTXVqYWhpZGVlbiB3YXMgYWNjdXNlZCBvZiB0aGUgaGlqYWNraW5nLg0KMTk5OTogSVJDVEMNCjE5OTkgKEF1Zyk6IEJvb2tNeVNob3cNCjE5OTkgKFNlcCAxNCk6IFtHZW9Qb2xpdGljc10gVGhlIENvbmZlcmVuY2Ugb24gSW50ZXJhY3Rpb24gYW5kIENvbmZpZGVuY2UtQnVpbGRpbmcgTWVhc3VyZXMgaW4gQXNpYSAoQ0lDQSkgaXMgYW4gaW50ZXItZ292ZXJubWVudGFsIGZvcnVtIGZvciBlbmhhbmNpbmcgY29vcGVyYXRpb24gdG93YXJkcyBwcm9tb3RpbmcgcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYS4gSXQgaXMgYSBmb3J1bSBiYXNlZCBvbiB0aGUgcmVjb2duaXRpb24gdGhhdCB0aGVyZSBpcyBjbG9zZSBsaW5rIGJldHdlZW4gcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYSBhbmQgaW4gdGhlIHJlc3Qgb2YgdGhlIHdvcmxkLiBUaGUga2V5IGlkZWEgb2YgdGhlIENvbmZlcmVuY2UgaXMgYmFzZWQgb24gdGhlIHByaW9yaXR5IG9mIHRoZSBpbmRpdmlzaWJpbGl0eSBvZiBzZWN1cml0eSwgam9pbnQgaW5pdGlhdGl2ZSBhbmQgbXV0dWFsbHkgYmVuZWZpY2lhbCBpbnRlcmFjdGlvbiBvZiBzbWFsbCBhbmQgbGFyZ2Ugc3RhdGVzLg0KMTk5OTogTm9ibGUgRWR1Y2F0aW9uIFNvY2lldHkncyBOb2JsZSBQdWJsaWMgU2Nob29sIChOUFMpLCBHYWpyYXVsYSBmb3VuZGVkIHdpdGggMjEzMDYyNyBhcyBpdHMgQ0JTRSBBZmZpbGlhdGlvbiBuby4NCjE5OTk6IGZpcnN0IC53bWEgZmlsZSBjcmVhdGVkDQoxOTk5OiBOYXBzdGVyIGZvdW5kZWQuDQoxOTk5IChEZWMgMTQpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBTaG93IE1lIHRoZSBNZWFuaW5nIG9mIEJlaW5nIExvbmVseS4gDQoxOTk5OltNdXNpY10gRHIuIERyZSBmdC4gU25vb3AgRG9nZydzIFN0aWxsIEQuUi5FLg0KMTk5OTpbQ3VsdHVyZV0gVGhlIENpdHRhc2xvdyBvcmdhbml6YXRpb24gd2FzIGNyZWF0ZWQgYnkgUGFvbG8gU2F0dXJuaW5pLCB0aGUgZm9ybWVyIG1heW9yIG9mIEdyZXZlIGluIENoaWFudGksIEl0YWx5LiBTYXR1cm5pbmkgd2FzIGluc3BpcmVkIGJ5IENhcmxvIFBldHJpbmkgYW5kIGhpcyBTbG93IEZvb2QgbW92ZW1lbnQsIHN0YXJ0ZWQgaW4gdGhlIDE5ODBzIHRvIHByb3Rlc3QgdGhlIGZpcnN0IE1jRG9uYWxkJ3MgY2hhaW4gaW4gUm9tZS4gU2luY2UgdGhlbiwgdGhlIENpdHRhc2xvdyBtb3ZlbWVudCBoYXMgZ3Jvd24gYWNyb3NzIGZvdXIgY29udGluZW50cywgd2l0aCAyNjIgcGFydGljaXBhdGluZyB0b3ducyBhcyBvZiAyMDIwLiANCjE5OTk6W01hbmFnZW1lbnRdW0J1c2luZXNzXVtQc3ljaG9sb2d5XVtSZXNlYXJjaF0gRHVubmluZyBhbmQgS3J1Z2VyIEVmZmVjdDogRGF2aWQgRHVubmluZyBhbmQgSnVzdGluIEtydWdlciBwdWJsaXNoZWQgdGhlIGluaXRpYWwgc3R1ZHkgaW4gMTk5OSB1bmRlciB0aGUgdGl0bGUgIlVuc2tpbGxlZCBhbmQgVW5hd2FyZSBvZiBJdDogSG93IERpZmZpY3VsdGllcyBpbiBSZWNvZ25pemluZyBPbmUncyBPd24gSW5jb21wZXRlbmNlIExlYWQgdG8gSW5mbGF0ZWQgU2VsZi1Bc3Nlc3NtZW50cyIuDQoxOTk5OltSZXNlYXJjaF0gUmVzZWFyY2ggYnkgVVMgTmF0aW9uYWwgUmVzZWFyY2ggQ291bmNpbC4gV2F0ZXIgZnJvbSB1bmRlcmdyb3VuZCBzb3VyY2VzIG1heSBjb250YWluIHNpZ25pZmljYW50IGFtb3VudHMgb2YgcmFkb24gZGVwZW5kaW5nIG9uIHRoZSBzdXJyb3VuZGluZyByb2NrIGFuZCBzb2lsIGNvbmRpdGlvbnMsIHdoZXJlYXMgc3VyZmFjZSBzb3VyY2VzIGdlbmVyYWxseSBkbyBub3QuDQoxOTk5OltOU0VdIEluY29ycG9yYXRlZCBpbiAxOTk5LCBJUkNUQyBpcyBhIE1pbmkgUmF0bmEgKENhdGVnb3J5IDEsIENlbnRyYWwgUHVibGljIFNlY3RvciBFbnRlcnByaXNlcyApIGFuZCB0aGUgb25seSBjb21wYW55IGF1dGhvcml6ZWQgYnkgdGhlIEluZGlhbiBnb3Zlcm5tZW50IHRvIHByb3ZpZGUgb25saW5lIHJhaWx3YXkgdGlja2V0cywgY2F0ZXJpbmcgc2VydmljZXMsIGFuZCBwYWNrYWdlZCBkcmlua2luZyB3YXRlciBhdCByYWlsd2F5IHN0YXRpb25zIGFuZCB0cmFpbnMgaW4gSW5kaWEuDQoxOTk5OltNbnRuZ2ddW0Jvb2tdIFN0ZXZlIEhvdXNlIGlzIGEgd29ybGQtcmVub3duZWQgY2xpbWJlciwgbW91bnRhaW4gZ3VpZGUgYW5kIFBhdGFnb25pYSBhbWJhc3NhZG9yLCB3aWRlbHkgcmVnYXJkZWQgZm9yIGhpcyBjbGVhbiwgbGlnaHQtYW5kLWZhc3Qgc3R5bGUuIEhlIGhhcyBwdWJsaXNoZWQgYXJ0aWNsZXMgaW4gYSBudW1iZXIgb2YgcGVyaW9kaWNhbHMgaW5jbHVkaW5nOiBBbHBpbmlzdCwgUm9jayBhbmQgSWNlLCBDbGltYmluZywgVGhlIEFtZXJpY2FuIEFscGluZSBKb3VybmFsLCBHcmlwcGVkLCBDYW5hZGlhbiBBbHBpbmUgSm91cm5hbCwgQ2xpbWIsIFZlcnRpY2FsLCBNb250YWduZXMsIFJpc2ssIEFscCssIENhbXBvIEJhc2UsIERlc25pdmVsLCBhbmQgU3RpbGUgQWxwaW4uIEhpcyBlc3NheXMgaGF2ZSBiZWVuIHB1Ymxpc2hlZCBpbiBzZXZlcmFsIGJvb2tzIGluY2x1ZGluZzsgQ29udGFjdDogTW91bnRhaW4gQ2xpbWJpbmcgYW5kIEVudmlyb25tZW50YWwgVGhpbmtpbmc7IFNvbHRhcmksIGEgY29sbGVjdGlvbiBvZiBlc3NheXMgYWJvdXQgc29sbyBjbGltYmluZyBwdWJsaXNoZWQgaW4gSXRhbGlhbjsgQmVyZywgYSBHZXJtYW4gYm9vayBhYm91dCBjbGltYmluZyBpbiB0aGUgSGltYWxheWE7IGFuZCBhbiB1cGNvbWluZyBib29rIGFib3V0IE5hbmdhIFBhcmJhdCBlZGl0ZWQgYnkgUmVpbmhvbGQgTWVzc25lci4gSGUgaGFzIHdvcmtlZCBhcyBhIFBhdGFnb25pYSBhbHBpbmUgYW1iYXNzYWRvciBzaW5jZSAxOTk5LiBQdWJsaXNoZWQ6IFRyYWluaW5nIGZvciB0aGUgTmV3IEFscGluaXNtOiBBIE1hbnVhbCBmb3IgdGhlIENsaW1iZXIgYXMgQXRobGV0ZSBQYXBlcmJhY2sg4oCTIElsbHVzdHJhdGVkLCAzIEFwcmlsIDIwMTQNCjE5OTk6W01udG5nZ10gQ29ucmFkIEFua2VyIChib3JuIE5vdmVtYmVyIDI3LCAxOTYyKSBpcyBhbiBBbWVyaWNhbiByb2NrIGNsaW1iZXIsIG1vdW50YWluZWVyLCBhbmQgYXV0aG9yLiBIZSB3YXMgdGhlIHRlYW0gbGVhZGVyIG9mIFRoZSBOb3J0aCBGYWNlIGNsaW1iaW5nIHRlYW0gZm9yIDI2IHllYXJzIHVudGlsIDIwMTguWzJdIEluIDE5OTksIGhlIGxvY2F0ZWQgR2VvcmdlIE1hbGxvcnkncyBib2R5IG9uIEV2ZXJlc3QgYXMgYSBtZW1iZXIgb2YgYSBzZWFyY2ggdGVhbSBsb29raW5nIGZvciB0aGUgcmVtYWlucyBvZiB0aGUgQnJpdGlzaCBjbGltYmVyIHdobyB3YXMgbGFzdCBzZWVuIGluIDE5MjQuDQoxOTk5OlRoZSBQaXBpc3RyZWwgVmlydXMgZmxldyBmb3IgdGhlIGZpcnN0IHRpbWUgb24gQXVndXN0IDEwLCAxOTk5LiBQcm9kdWN0aW9uIGJlZ2FuIG9uIEphbnVhcnkgMjAsIDIwMDAuIFRoZSBkZXZlbG9wbWVudCBvZiB0aGUgc2hvcnQgd2luZyB2ZXJzaW9uIHN0YXJ0ZWQgaW4gMjAwNy4gVGhlIFZpcnVzIFNXIHByb2R1Y3Rpb24gc3RhcnRlZCBpbiAyMDA4LiBUaGUgVmlydXMgd29uIHRoZSBOQVNBIDIwMDcgUGVyc29uYWwgQWlyIFZlaGljbGUgKFBBVikgQ2hhbGxlbmdlIGFuZCB0aGUgMjAwOCBHZW5lcmFsIEF2aWF0aW9uIFRlY2hub2xvZ3kgKEdBVCkgQ2hhbGxlbmdlLg0KMTk5OTpbc2lsdmljc10gU3VzdGFpbmFibGUgUHJhY3RpY2VzOiBSZXNlYXJjaCBpbiB0aGUgMjB0aCBjZW50dXJ5IHZhbGlkYXRlZCB0aGF0IHNlY29uZC1ncm93dGggc3RhbmRzIGNvdWxkIGJlIHN1c3RhaW5hYmx5IG1hbmFnZWQgdGhyb3VnaCB0ZWNobmlxdWVzIGxpa2UgdGhlIHNlZWQgdHJlZSBtZXRob2QuIFRvZGF5LCBzaWx2aWN1bHR1cmUgZm9jdXNlcyBvbiBjb21wbGV4IHN0YW5kIHN0cnVjdHVyZXMsIGJhbGFuY2luZyBjb21tZXJjaWFsIGRlbWFuZCB3aXRoIGVudmlyb25tZW50YWwgc3Rld2FyZHNoaXAuIA0KDQoyMXN0IGNlbnR1cnkgQ0Ugc3RhcnRlZCBvbiAxc3QgSmFuIDIwMDEgQUQuDQoNCjIwMDBzOltSZXNlYXJjaF0gVGhlIGNsYWltIHRoYXQgIndlIGFyZSA2MCUgYmFuYW5hIiAob3Igc2hhcmUgNjAlIG9mIG91ciBETkEpIGlzIGEgcG9wdWxhciwgeWV0IG9mdGVuIG1pc2ludGVycHJldGVkLCBzdGF0aXN0aWMgdGhhdCBvcmlnaW5hdGVkIGZyb20gY29tcGFyaXNvbnMgb2YgcHJvdGVpbi1jb2RpbmcgZ2VuZXMsIGxpa2VseSBwb3B1bGFyaXplZCBpbiB0aGUgZWFybHkgMjAwMHMgZm9sbG93aW5nIHByZWxpbWluYXJ5IHN0dWRpZXMgb2YgdGhlIGJhbmFuYSBnZW5vbWUuIEl0IHJlZmVycyB0byBhYm91dCA2MCUgb2YgaHVtYW4gZ2VuZXMgaGF2aW5nIGEgcmVjb2duaXphYmxlIGNvdW50ZXJwYXJ0IGluIGJhbmFuYXMsIG5vdCA2MCUgb2Ygb3VyIHRvdGFsIEROQS4gDQpNYW55IG9mIHRoZSDigJxob3VzZWtlZXBpbmfigJ0gZ2VuZXMgdGhhdCBhcmUgbmVjZXNzYXJ5IGZvciBiYXNpYyBjZWxsdWxhciBmdW5jdGlvbiwgc3VjaCBhcyBmb3IgcmVwbGljYXRpbmcgRE5BLCBjb250cm9sbGluZyB0aGUgY2VsbCBjeWNsZSwgYW5kIGhlbHBpbmcgY2VsbHMgZGl2aWRlIGFyZSBzaGFyZWQgYmV0d2VlbiBtYW55IHBsYW50cyAoaW5jbHVkaW5nIGJhbmFuYXMpIGFuZCBhbmltYWxzLldoaWxlIDYwJSBvZiBnZW5lcyBoYXZlIGNvdW50ZXJwYXJ0cywgdGhlc2UgZXNzZW50aWFsIGdlbmVzIG1ha2UgdXAgb25seSBhIHNtYWxsIGZyYWN0aW9uIG9mIHRoZSB0b3RhbCBnZW5vbWU7IGh1bWFucyBhbmQgYmFuYW5hcyBhcmUgbm90IDYwJSBpZGVudGljYWwgb3ZlcmFsbC4gDQpUaGUgcGhyYXNlIGlzIGVzc2VudGlhbGx5IGEgc2ltcGxpZmllZCwgb2Z0ZW4tZXhhZ2dlcmF0ZWQsIHdheSBvZiBoaWdobGlnaHRpbmcgdGhhdCBhbGwgbGlmZSBzaGFyZXMgY29tbW9uIGFuY2VzdHJhbCBnZW5lcyBmb3IgYmFzaWMgY2VsbHVsYXIgcHJvY2Vzc2VzLiANCjIwMDBzOltNQkFdIFNob3VsZCBDb3N0IE1vZGVsaW5nOiBNb2Rlcm4gIlNob3VsZCBDb3N0IiBtb2RlbHMgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBpZGVhbCBjb3N0IG9mIGEgcHJvZHVjdCwgYWNjb3VudGluZyBmb3IgbGFib3IsIG1hdGVyaWFscywgYW5kIG92ZXJoZWFkLiBFbnZpcm9ubWVudGFsICYgU29jaWFsIEltcGFjdDogTW9kZXJuIENCQSBub3cgcm91dGluZWx5IGluY2x1ZGVzIGVudmlyb25tZW50YWwgYW5kIHNvY2lhbCBpbXBhY3RzIGluIGFkZGl0aW9uIHRvIGZpbmFuY2lhbCBvbmVzLiBTaGlmdCBmcm9tIExvY2FsIHRvIEdsb2JhbDogRWFybHksIGhpZ2hseSBsb2NhbCBhc3Nlc3NtZW50cyBldm9sdmVkIGludG8gbGFyZ2Utc2NhbGUsIG5hdGlvbmFsLCBhbmQgaW50ZXJuYXRpb25hbCBDQkEuIFJlZmluZW1lbnQgb2YgVGVjaG5pcXVlczogTW92aW5nIGZyb20gc2ltcGxlLCBzaW5nbGUtcGVyaW9kIG1vZGVscyB0byBjb21wbGV4LCBtdWx0aS1wZXJpb2Qgc2ltdWxhdGlvbnMuIEluY3JlYXNlZCBEYXRhIFVzZTogVGhlIGF2YWlsYWJpbGl0eSBvZiBsYXJnZSwgZ3JhbnVsYXIgZGF0YSBzZXRzIGhhcyBhbGxvd2VkIGZvciBtb3JlIHByZWNpc2UgYW5kIHJlbGlhYmxlIGFuYWx5c2lzLiANCjIwMDBzOltNbnRuZ2ddW0V4dHJlbWVdIEluIHRoZSBlYXJseSAyMDAwcywgRGlkaWVyIEJlcnRob2Qgd2FzIHRoZSBiZXN0IGNyYWNrIGNsaW1iZXIgaW4gdGhlIHdvcmxkLCB0aGVuIGhlIGRyb3BwZWQgb3V0IG9mIGNsaW1iaW5nIGFuZCBlc3NlbnRpYWxseSBkaXNhcHBlYXJlZCBmcm9tIHRoZSB3b3JsZC4NCjIwMDBzOltSZWFsdHldIEVhcmx5IDIwMDBzOiBSZWFsIGVzdGF0ZSB3YXMgaW4gaXRzIGVhcmx5IHN0YWdlcyBpbiBJbmRpYSwgd2l0aCBncmFkdWFsIGdyb3d0aCBhbmQgZGV2ZWxvcG1lbnQuIA0KMjAwMHM6VGVhbXdvcmsgaXMgbm93IGFuIGludGVncmFsIHBhcnQgb2Ygb3JnYW5pemF0aW9uYWwgc3RyYXRlZ3ksIHdpdGggYSBncmVhdGVyIGVtcGhhc2lzIG9uIGN1c3RvbWl6YXRpb24sIHBlcnNvbmFsaXphdGlvbiwgYW5kIHN0cmF0ZWdpYyBpbnRlZ3JhdGlvbiBvZiB0ZWFtLWJ1aWxkaW5nIHByYWN0aWNlcy4gVGhlIHJpc2Ugb2YgdGVjaG5vbG9neSBoYXMgYWxzbyBpbmZsdWVuY2VkIHRlYW13b3JrLCB3aXRoIHJlbW90ZSB3b3JrIGJlY29taW5nIG1vcmUgcHJldmFsZW50IGFuZCBuZXcgdG9vbHMgZW1lcmdpbmcgdG8gZmFjaWxpdGF0ZSBjb2xsYWJvcmF0aW9uLiANCg0KMjAwMDpbVVNdW0dlb1BvbGl0aWNzXSBvdmVydGhyb3cgb2YgU2xvYm9kYW4gTWlsb8WhZXZpxIcuIChVUydzIGludm9sdmVtZW50IGluIHJlZ2ltZSBjaGFuZ2UpDQoyMDAwOiBbR2VvUG9saXRpY3NdW01pbGl0YXJ5XVtFY29ub21pY3NdIFRoZSBVUyBEb2xsYXIgaG9sZHMgYSA3MiUgc2hhcmUgb2YgYWxsIGdsb2JhbCBjdXJyZW5jeSByZXNlcnZlcyBbWzE2OjQyXShodHRwOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dllKcmkxZU5SeWMmdD0xMDAyKV0uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdIDI2IEFwcmlsIDIwMDA6IHRoZSBHZXJtYW4gdGVhbSBvcGVyYXRpbmcgdGhlIG1hc3Mgc3BlY3Ryb21ldGVyIG9uIE5BU0EncyBTdGFyZHVzdCBtaXNzaW9uIGFubm91bmNlZCB0aGUgZGV0ZWN0aW9uIG9mIHZlcnkgbGFyZ2Ugb3JnYW5pYyBtb2xlY3VsZXMgaW4gaW50ZXJzdGVsbGFyIHNwYWNlLiBOb25iaW9sb2dpY2FsIHNvdXJjZXMgZm9yIG9yZ2FuaWMgbW9sZWN1bGVzIHNvIGxhcmdlIGFyZSBub3Qga25vd24uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdMTkgT2N0b2JlciAyMDAwLCBhIHRlYW0gb2YgYmlvbG9naXN0cyBhbmQgYSBnZW9sb2dpc3QgYW5ub3VuY2VkIHRoZSByZXZpdmFsIG9mIGJhY3RlcmlhIHRoYXQgYXJlIDI1MCBtaWxsaW9uIHllYXJzIG9sZCwgc3RyZW5ndGhlbmluZyB0aGF0IGNhc2UgdGhhdCBiYWN0ZXJpYWwgc3BvcmVzIGNhbiBiZSBpbW1vcnRhbC4NCjEzIERlY2VtYmVyIDIwMDA6IGEgTkFTQSB0ZWFtIGRlbW9uc3RyYXRlZCB0aGF0IHRoZSBtYWduZXRvc29tZXMgaW4gTWFycyBtZXRlb3JpdGUgQUxIIDg0MDAxIGFyZSBiaW9sb2dpY2FsLg0KMjAwMDpbUmVzZWFyY2hdW1NwYWNlXSBNaWxlaWtvd3NreSBDLCBDdWNpbm90dGEgRkEsIFdpbHNvbiBKVywgR2xhZG1hbiBCLCBIb3JuZWNrIEcsIExpbmRlZ3JlbiBMLCBNZWxvc2ggSiwgUmlja21hbiBILCBWYWx0b25lbiBNLCBaaGVuZyBKUS4gTmF0dXJhbCB0cmFuc2ZlciBvZiB2aWFibGUgbWljcm9iZXMgaW4gc3BhY2UuIEljYXJ1cyAyMDAwLCAxNDU6Mzkx4oCTNDI3LiBbRE9JXSBbUHViTWVkXSBbR29vZ2xlIFNjaG9sYXJdDQoyMDAwOltTcGFjZVhdIFMvMjAwMCAoOTApIDEgTW9vbiBEaXNjb3ZlcmVyOiBXaWxsaWFtIEouIE1lcmxpbmUgT3JiaXRzOiA5MCBBbnRpb3BlIEFic29sdXRlIG1hZ25pdHVkZTogOS4wMg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gZGVtb25zdHJhdGVkIFNob3LigJlzIGFsZ29yaXRobSBvbiBhIDUtcXViaXQgTk1SIHF1YW50dW0gY29tcHV0ZXIsIGZhY3RvcmluZyB0aGUgbnVtYmVyIDE1Lg0KMjAwMDogQXQgYWdlIDE0IGFuZCBpbiBjbGFzcyA4dGgsIEFhcm9uIFN3YXJ0eiBiZWNhbWUgYSBtZW1iZXIgb2YgdGhlIHdvcmtpbmcgZ3JvdXAgdGhhdCBhdXRob3JlZCB0aGUgUlNTIDEuMCB3ZWIgc3luZGljYXRpb24gc3BlY2lmaWNhdGlvbi4NCjIwMDA6IE1ha2VteVRyaXANCjIwMDAgKEphbiAxNCk6W0phY2tdIEthaG8gTmFhLi4uIFB5YWFyIEhhaQ0KMjAwMCAoRmViKTogSW5kaWFuIFJhaWx3YXlzIHdlYiBzaXRlIGkuZS4gaHR0cDovL2luZGlhbnJhaWx3YXlzLmdvdi5pbi8gd2FzIGRlcGxveWVkIGJ5IENSSVMuDQoyMDAwIChNYXIpOltCb29rXSBNYWxjb2xtIEdsYWR3ZWxsJ3MgZGVidXQgYm9vaywgVGhlIFRpcHBpbmcgUG9pbnQ6IEhvdyBMaXR0bGUgVGhpbmdzIENhbiBNYWtlIGEgQmlnIERpZmZlcmVuY2UuIA0KQmxpbms6IFRoZSBQb3dlciBvZiBUaGlua2luZyBXaXRob3V0IFRoaW5raW5nICgyMDA1LCBKYW4gMTEpOyANCk91dGxpZXJzOiBUaGUgU3Rvcnkgb2YgU3VjY2VzcyAoMjAwOCwgTm92IDE4KTsgDQpXaGF0IHRoZSBEb2cgU2F3OiBBbmQgT3RoZXIgQWR2ZW50dXJlcyAoMjAwOSwgT2N0IDIwKTsgDQpEYXZpZCBhbmQgR29saWF0aDogVW5kZXJkb2dzLCBNaXNmaXRzLCBhbmQgdGhlIEFydCBvZiBCYXR0bGluZyBHaWFudHMgKDIwMTMsIE9jdCAxKQ0KVGFsa2luZyB0byBTdHJhbmdlcnM6IFdoYXQgV2UgU2hvdWxkIEtub3cgYWJvdXQgdGhlIFBlb3BsZSBXZSBEb24ndCBLbm93ICgyMDE5KQ0KMjAwMCAoQXByIDEpOltCb29rXSBSb2JlcnQgS2l5b3Nha2kgJiBTaGFyb24gTGVjaHRlcidzIFJpY2ggRGFkIFBvb3IgRGFkLg0KMjAwMCAoQXByIDEpOltUZWNobm9sb2d5XVtSZXNlYXJjaF0gIldoeSBUaGUgRnV0dXJlIERvZXNuJ3QgTmVlZCBVcyIgaXMgYW4gYXJ0aWNsZSB3cml0dGVuIGJ5IEJpbGwgSm95IGluIHRoZSBBcHJpbCAyMDAwIGlzc3VlIG9mIFdpcmVkIG1hZ2F6aW5lLiBJbiB0aGUgYXJ0aWNsZSwgaGUgYXJndWVzIHRoYXQgIk91ciBtb3N0IHBvd2VyZnVsIDIxc3QtY2VudHVyeSB0ZWNobm9sb2dpZXPigJRyb2JvdGljcywgZ2VuZXRpYyBlbmdpbmVlcmluZywgYW5kIG5hbm90ZWNo4oCUYXJlIHRocmVhdGVuaW5nIHRvIG1ha2UgaHVtYW5zIGFuIGVuZGFuZ2VyZWQgc3BlY2llcy4iIA0KMjAwMCAoSnVuIDI2KTpbTXVzaWNdICJZZWxsb3ciIGlzIGEgc29uZyBieSB0aGUgQnJpdGlzaCByb2NrIGJhbmQgQ29sZHBsYXkuIFRoZSBiYW5kIHdyb3RlIHRoZSBzb25nIGFuZCBjby1wcm9kdWNlZCBpdCB3aXRoIEJyaXRpc2ggcmVjb3JkIHByb2R1Y2VyIEtlbiBOZWxzb24gZm9yIHRoZWlyIGRlYnV0IGFsYnVtLCBQYXJhY2h1dGVzICgyMDAwKS4gVGhlIHNvbmcgd2FzIHJlY29yZGVkIGluIE1hcmNoIDIwMDAgYW5kIHJlbGVhc2VkIG9uIDI2IEp1bmUgdGhhdCBzYW1lIHllYXIuDQoyMDAwIChTZXApOiBBbWF6b24ncyBKZWZmIEJlem9zIGZvdW5kZWQuDQoyMDAwIChTZXApOltDcmltZV1bSW5kaWFdIENoaG90YSBTaGFrZWVsJ3MgYXR0YWNrIG9uIFJhamFuIGluIGhpcyBCYW5na29rIGhvdGVsIHJvb20uDQoyMDAwIChTZXApOiBSYWlsVGVsIENvcnBvcmF0aW9uIG9mIEluZGlhIEx0ZC4gZm91bmRlZCBhbmQgSFEnZCBhdCAxNDMsIEluc3RpdHV0aW9uYWwgQXJlYSwgU2VjdG9yLTQ0LCBHdXJnYW9uLCBIYXJ5YW5hLCBJbmRpYS4gSXQgaXMgYSBNaW5pcmF0bmEgZW50ZXJwcmlzZSBvZiBHb3Zlcm5tZW50IG9mIEluZGlhIGZvY3VzaW5nIG9uIHByb3ZpZGluZyBicm9hZGJhbmQgYW5kIFZQTiBzZXJ2aWNlcy4NCjIwMDAgKFNlcCAxNyk6IFtHZW9Qb2xpdGljc10gVGhlIGlkZWEgb2YgYW4gQXNpYSBDb29wZXJhdGlvbiBEaWFsb2d1ZSAoQUNEKSB3YXMgcmFpc2VkIGF0IHRoZSBGaXJzdCBJbnRlcm5hdGlvbmFsIENvbmZlcmVuY2Ugb2YgQXNpYW4gUG9saXRpY2FsIFBhcnRpZXMgKGhlbGQgaW4gTWFuaWxhIGJldHdlZW4gMTfigJMyMCBTZXB0ZW1iZXIgMjAwMCkgYnkgU3VyYWtpYXJ0IFNhdGhpcmF0aGFpLCB0aGVuIGRlcHV0eSBsZWFkZXIgb2YgdGhlIG5vdyBkZWZ1bmN0IFRoYWkgUmFrIFRoYWkgUGFydHksIG9uIGJlaGFsZiBvZiBoaXMgcGFydHkgbGVhZGVyLCBUaGFrc2luIFNoaW5hd2F0cmEsIHRoZW4gUHJpbWUgTWluaXN0ZXIgb2YgVGhhaWxhbmQuIEl0IHdhcyBzdWdnZXN0ZWQgdGhhdCBBc2lhIGFzIGEgY29udGluZW50IHNob3VsZCBoYXZlIGl0cyBvd24gZm9ydW0gdG8gZGlzY3VzcyBBc2lhLXdpZGUgY29vcGVyYXRpb24uIEFmdGVyd2FyZHMsIHRoZSBpZGVhIG9mIHRoZSBBQ0Qgd2FzIGZvcm1hbGx5IHB1dCBmb3J3YXJkIGR1cmluZyB0aGUgMzR0aCBBU0VBTiBGb3JlaWduIE1pbmlzdGVycyBNZWV0aW5nIGluIEhhbm9pLCAyM+KAkzI0IEp1bHkgMjAwMSBhbmQgYXQgdGhlIEFTRUFOIEZvcmVpZ24gTWluaXN0ZXJzIFJldHJlYXQgaW4gUGh1a2V0LCAyMOKAkzIxIEZlYnJ1YXJ5IDIwMDIuDQoyMDAwIChPY3QgNCk6W011c2ljXSBGb3JtZWQgaW4gMTk5NiwgTGlua2luIFBhcmsgcm9zZSB0byBpbnRlcm5hdGlvbmFsIGZhbWUgd2l0aCB0aGVpciBkZWJ1dCBzdHVkaW8gYWxidW0sIEh5YnJpZCBUaGVvcnkuIEZvdXIgc2luZ2xlcyB3ZXJlIHJlbGVhc2VkIGZyb20gSHlicmlkIFRoZW9yeTogIk9uZSBTdGVwIENsb3NlciIsICJJbiB0aGUgRW5kIiwgIkNyYXdsaW5nIiBhbmQgIlBhcGVyY3V0IiwgYWxsIG9mIHRoZW0gYmVpbmcgcmVzcG9uc2libGUgZm9yIGxhdW5jaGluZyBMaW5raW4gUGFyayBpbnRvIG1haW5zdHJlYW0gcG9wdWxhcml0eS4gV2hpbGUgIkluIHRoZSBFbmQiIHdhcyB0aGUgbW9zdCBzdWNjZXNzZnVsIG9mIHRoZSBmb3VyLCBhbGwgb2YgdGhlIHNpbmdsZXMgaW4gdGhlIGFsYnVtIHJlbWFpbiBzb21lIG9mIHRoZSBiYW5kJ3MgbW9zdCBzdWNjZXNzZnVsIHNvbmdzIHRvIGRhdGUuDQoyMDAwIChOb3YgOSk6IGZvcm1hdGlvbiBvZiBVdHRhcmFraGFuZCBhcyBVdHRhcmFuY2hhbCAyMDAwIChKdW4gOSk6IEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQWN0LCAyMDAwLiBUaGUgYmlsbCB3YXMgcGFzc2VkIGluIHRoZSBidWRnZXQgc2Vzc2lvbiBvZiAyMDAwIGFuZCBzaWduZWQgYnkgUHJlc2lkZW50IEsuIFIuIE5hcmF5YW5hbiBvbiA5IE1heSAyMDAwLiBUaGUgYmlsbCB3YXMgZmluYWxpc2VkIGJ5IGdyb3VwIG9mIG9mZmljaWFscyBoZWFkZWQgYnkgdGhlbiBNaW5pc3RlciBvZiBJbmZvcm1hdGlvbiBUZWNobm9sb2d5LCBQcmFtb2QgTWFoYWphbi4NCjIwMDA6IGZvcm1hdGlvbiBvZg0KMjAwMDogSmFpc2gtZS1Nb2hhbW1lZCAobGl0ZXJhbGx5ICJUaGUgQXJteSBvZiBNdWhhbW1hZCIsIEplTSkgZm91bmRlZCBhdCBCYWhhd2FscHVyLCBQdW5qYWIsIFBha2lzdGFuLg0KMjAwMDogQ2hpbmEncyBCZWlEb3UgbmF2aWdhdGlvbiB0ZXN0IHN5c3RlbSBzdGFydHMuDQoyMDAwOiBGaXNlcnYgaGFkIGFjcXVpcmVkIG1vcmUgdGhhbiA5MCBidXNpbmVzc2VzLiBUaGUgbnVtYmVyIG9mIGVtcGxveWVlcyBncmV3IGZyb20gMjY0IHRvIDE0LDAwMC4gRmlzZXJ2IHdhcyBhbiBpbmR1c3RyeSBsZWFkZXIsIHdpdGggcmV2ZW51ZSB0aGF0IGluY3JlYXNlZCBmcm9tICQyMSBtaWxsaW9uIHRvICQxLjQgYmlsbGlvbiBpbiAxNSB5ZWFycy4NCjIwMDAgKERlYyA4KTpbR2FtaW5nXSBQcm9qZWN0IEkuRy5JLiBpcyBhIHRhY3RpY2FsIGZpcnN0LXBlcnNvbiBzaG9vdGVyIHZpZGVvIGdhbWUuIEl0IHdhcyBkZXZlbG9wZWQgYnkgSW5uZXJsb29wIFN0dWRpb3MgYW5kIHJlbGVhc2VkIGluIERlY2VtYmVyIDIwMDAgYnkgRWlkb3MgSW50ZXJhY3RpdmUuIFRoZSBnYW1lIHJlY2VpdmVkIG1peGVkIHJldmlld3MgZHVlIHRvIHNob3J0Y29taW5ncyBpbmNsdWRpbmcgYSBwb29ybHkgcHJvZ3JhbW1lZCBBLkkuLCBsYWNrIG9mIGEgbWlkLWdhbWUgc2F2ZSBvcHRpb24sIGFuZCB0aGUgbGFjayBvZiBtdWx0aXBsYXllciBmZWF0dXJlcy4gSG93ZXZlciBpdCB3YXMgcHJhaXNlZCBmb3IgaXRzIHNvdW5kIGRlc2lnbiBhbmQgZ3JhcGhpY3MsIHRoYW5rcyBpbiBwYXJ0IHRvIGl0cyB1c2Ugb2YgYSBwcm9wcmlldGFyeSBnYW1lIGVuZ2luZSB0aGF0IHdhcyBwcmV2aW91c2x5IHVzZWQgaW4gSW5uZXJsb29wJ3MgSm9pbnQgU3RyaWtlIEZpZ2h0ZXIuDQoyMDAwIChEZWMgMjEpOltKYWNrXSBSYWp1IENoYWNoYSByZWxlYXNlZC4NCjIwMDA6IFtCdXNpbmVzc11bRmluYW5jZV1bQ29ycG9yYXRlXVtJbmRpYV0gUklMIHBpbG90ZWQgd29ybGQncyBsYXJnZXN0IHBldHJvbGV1bSByZWZpbmVyeSBhdCBKYW1uYWdhciwgR3VqYXJhdCwgcmVmaW5pbmcgMS4yNE1uIGJhcnJlbHMvZGF5Lg0KMjAwMDpbQ3JpbWVdW0luZGlhXSBQb2xpY2UgZW5jb3VudGVycyBpbiBNdW1iYWkuIE1vc3QgY3JpbWluYWxzIGZsZWVpbmcgdG8gQ2FsY3VsdHRhLiBBZnRhYiBCaGF0a2kgZGVzdGFiaWxpc2UgdGhlIGVjb25vbXkgYnkgc3ByZWFkaW5nIGZha2UgY3VycmVuY3kgbm90ZXMgcHJpbnRlZCBieSBJU0kgZnVuY3Rpb25hcmllcywgYW5kIHR3bywgc2VuZCBtZXJjZW5hcmllcyB0byBjb25kdWN0IGFiZHVjdGlvbnMgYW5kIHRlcnJvcmlzdCBhdHRhY2tzLg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBUZWNobmljYWwgVW5pdmVyc2l0eSBvZiBNdW5pY2ggKDUgcXViaXQpOyBMb3MgQWxhbW9zIE5hdGlvbmFsIExhYiAoNyBxdWJpdHMpDQoyMDAwOkluIDIwMDAsIFRhdGEgVGVhIGFjcXVpcmVkIHRoZSBUZXRsZXkgVGVhIENvbXBhbnkgZm9yICQ0MDcgbWlsbGlvbi4gT3RoZXIgbm90YWJsZSBhY3F1aXNpdGlvbnMgaW5jbHVkZSBOYXRTdGVlbCAoMjAwNCksIEJydW5uZXIgTW9uZCAoMjAwNSksIGFuZCBFaWdodCBPJ0Nsb2NrIENvZmZlZSAoMjAwNikuIA0KMjAwMDogQmlybGEgYWNxdWlyZWQgSW5kaWFuIEFsdW1pbnVtIENvbXBhbnkgKElOREFMKS4gDQoyMDAwOiBTYXR5YSBOYXJheWFuYSBHb2Vua2Egd29ya2VkIGFzIGFuIGludGVybmF0aW9uYWwgYnVzaW5lc3NtYW4gYmFzZWQgaW4gTXlhbm1hciBhbmQgSW5kaWEgZm9yIGEgbGFyZ2UgcGFydCBvZiBoaXMgbGlmZS4gSGUgd2FzIGEga2V5bm90ZSBzcGVha2VyIG9uIHRoZSBzdWJqZWN0IG9mIFNwaXJpdHVhbGl0eSBpbiBCdXNpbmVzcyBhdCB0aGUgMzB0aCBXb3JsZCBFY29ub21pYyBGb3J1bSBpbiBEYXZvcywgU3dpdHplcmxhbmQgYmV0d2VlbiAyNiBKYW4gYW5kIDIgRmViIDIwMDAuIFR3byB5ZWFycyBsYXRlciBoZSBjb25kdWN0ZWQgdGhlIGZpcnN0IDEwLWRheSBjb3Vyc2UgaW4gVmlwYXNzYW5hIE1lZGl0YXRpb24gZXNwZWNpYWxseSBmb3IgYnVzaW5lc3MgZXhlY3V0aXZlcyBhbmQgZ292ZXJubWVudCBvZmZpY2lhbHMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAyMjUgeWVhcnMgb2YgSW5kZXBlbmRlbnQgVVNBIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIA0KDQoyMDAxOltVU11bR2VvUG9saXRpY3NdIGludmFzaW9uIG9mIEFmZ2hhbmlzdGFuLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMjAwMTpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgU2hhbmdoYWkgQ29vcGVyYXRpb24gT3JnYW5pc2F0aW9uIChTQ08pIGlzIGEgRXVyYXNpYW4gcG9saXRpY2FsLCBlY29ub21pYywgaW50ZXJuYXRpb25hbCBzZWN1cml0eSBhbmQgZGVmZW5jZSBvcmdhbml6YXRpb24gb2YgdGVuIG1lbWJlciBzdGF0ZXMuIEl0IHdhcyBlc3RhYmxpc2hlZCBpbiAyMDAxIGJ5IHRoZSBQZW9wbGUncyBSZXB1YmxpYyBvZiBDaGluYSwgS2F6YWtoc3RhbiwgS3lyZ3l6c3RhbiwgUnVzc2lhLCBhbmQgVGFqaWtpc3RhbiBhbmQgVXpiZWtpc3Rhbi4gSW4gSnVuZSAyMDE3LCBpdCBleHBhbmRlZCB0byBlaWdodCBzdGF0ZXMsIHdpdGggSW5kaWEgYW5kIFBha2lzdGFuLiBJcmFuIGpvaW5lZCB0aGUgZ3JvdXAgaW4gSnVseSAyMDIzLCBhbmQgQmVsYXJ1cyBpbiBKdWx5IDIwMjQuIFNldmVyYWwgY291bnRyaWVzIGFyZSBlbmdhZ2VkIGFzIG9ic2VydmVycyBvciBkaWFsb2d1ZSBwYXJ0bmVycy4gRm91bmRlcnM6IENoaW5hLCBSdXNzaWEsIEthemFraHN0YW4sIFV6YmVraXN0YW4sIEt5cmd5enN0YW4sIFRhamlraXN0YW47IEhlYWRxdWFydGVyczogQmVpamluZywgQ2hpbmE7IEZvdW5kZWQ6IDE1IEp1bmUgMjAwMQ0KMjAwMTpbQnVzaW5lc3NdIDIwMDHigJMyMDA1OiBIRlQgZXhlY3V0aW9uIHRpbWVzIGRlY3JlYXNlZCBmcm9tIHNldmVyYWwgc2Vjb25kcyB0byBtaWxsaXNlY29uZHMuIChIRlQpDQoyMDAxOltDb21wdXRpbmddW1F1YW50dW1dICBJQk0gaW1wbGVtZW50ZWQgR3JvdmVy4oCZcyBhbGdvcml0aG0gb24gYSA3LXF1Yml0IE5NUiBxdWFudHVtIGNvbXB1dGVyLCBmaW5kaW5nIGEgbWFya2VkIGl0ZW0gaW4gYSBkYXRhYmFzZSBvZiA0IGVudHJpZXMuDQoyMDAxOiBMaWZlIG9mIFBpIGlzIGEgQ2FuYWRpYW4gcGhpbG9zb3BoaWNhbCBub3ZlbCBieSBZYW5uIE1hcnRlbCBwdWJsaXNoZWQuIFRoZSBwcm90YWdvbmlzdCBpcyBQaXNjaW5lIE1vbGl0b3IgIlBpIiBQYXRlbCwgYW4gSW5kaWFuIGJveSBmcm9tIFBvbmRpY2hlcnJ5IHdobyBleHBsb3JlcyBpc3N1ZXMgb2Ygc3Bpcml0dWFsaXR5IGFuZCBtZXRhcGh5c2ljcyBmcm9tIGFuIGVhcmx5IGFnZS4gSGUgc3Vydml2ZXMgMjI3IGRheXMgYWZ0ZXIgYSBzaGlwd3JlY2sgd2hpbGUgc3RyYW5kZWQgb24gYSBsaWZlYm9hdCBpbiB0aGUgUGFjaWZpYyBPY2VhbiB3aXRoIGEgQmVuZ2FsIHRpZ2VyIHdoaWNoIHJhaXNlcyBxdWVzdGlvbnMgYWJvdXQgdGhlIG5hdHVyZSBvZiByZWFsaXR5IGFuZCBob3cgaXQgaXMgcGVyY2VpdmVkIGFuZCB0b2xkLjtTZXZlbiBTdG9yaWVzICgxOTkzKQ0KMjAwMTpbQ3JpbWVdW0luZGlhXSBDaGhvdGEgUmFqYW4ncyBhc3NvY2lhdGVzIHRyYWNrZWQgZG93biBhbmQgc2hvdCBkZWFkIGhvdGVsaWVyIFZpbm9kIGluIE11bWJhaSwgYXMgd2VsbCBhcyBTdW5pbCBTb2FucyDigJMgYW5vdGhlciBEYXdvb2QgYXNzb2NpYXRlLg0KMjAwMSAoSmFuIDEpOltCb29rXSBHcmVnIE1jS2Vvd24ncyBFc3NlbnRpYWxpc206IFRoZSBEaXNjaXBsaW5lZCBQdXJzdWl0IG9mIExlc3MNCjIwMDEgKEphbiAxKTpbQm9va10gQnJpYW4gVHJhY3kncyBFYXQgVGhhdCBGcm9nIQ0KMjAwMTogVGhlIEFyZHVpbm8gcHJvamVjdCBzdGFydGVkIGF0IHRoZSBJbnRlcmFjdGlvbiBEZXNpZ24gSW5zdGl0dXRlIEl2cmVhIChJRElJKSBpbiBJdnJlYSwgSXRhbHkuIEF0IHRoYXQgdGltZSwgdGhlIHN0dWRlbnRzIHVzZWQgYSBCQVNJQyBTdGFtcCBtaWNyb2NvbnRyb2xsZXIgYXQgYSBjb3N0IG9mICQxMDAsIGEgY29uc2lkZXJhYmxlIGV4cGVuc2UgZm9yIG1hbnkgc3R1ZGVudHMuDQoyMDAxIChBcHIgNHRoKTogQ2hhcmxlcyBNLiBWZXN0LCB0aGUgdGhlbiBQcmVzaWRlbnQgb2YgTUlUIGFubm91bmNlZCBPcGVuQ291cnNlV2FyZSAoT0NXKSBwdWJsaWNpemluZyBhbGwgb2YgaXRzIDIsMDAwIGNvdXJzZXMgIGF0IHRoZSBlc3RpbWF0ZWQgY29zdCBvZiAkMTAwIG1pbGxpb24gKG9uIGFuIGF2Zy4sIGEgTUlUIHN0dWRlbnRzIHBheXMgYXJvdW5kICQyNiwwMDAgYXMgb2ZmbGluZSB0dWl0aW9uIGZlZSkNCjIwMDE6IFVTIGludmFkZWQgQWZnaGFuaXN0YW4gaW4gcmVzcG9uc2UgdG8gOS8xMSBhdHRhY2tzLiBPZmZpY2lhbGx5LCBJdCBoYXMgYmVjb21lIHRoZSBsb25nZXN0IHdhciBpbiBBbWVyaWNhbiBoaXN0b3J5Lg0KMjAwMTogaVBvZCBieSBUb255IEZhZGVsbA0KMjAwMSAoSnVuIDE1KTpbSmFja10gR2FkYXI6IEVrIFByZW0gS2F0aGE7IExhZ2FhbjogT25jZSBVcG9uIGEgVGltZSBpbiBJbmRpYQ0KMjAwMSAoU2VwIDExKTogOS8xMSBUZXJyb3Jpc3QgYXR0YWNrcy4gVGhlIFNlcHRlbWJlciAxMSBvciA5LzExLCBhdHRhY2tzIHdlcmUgYSBzZXJpZXMgb2YgZm91ciBjb29yZGluYXRlZCB0ZXJyb3Jpc3QgYXR0YWNrcyBieSB0aGUgSXNsYW1pYyB0ZXJyb3Jpc3QgZ3JvdXAgYWwtUWFlZGEgb24gdGhlIFVuaXRlZCBTdGF0ZXMgb24gdGhlIG1vcm5pbmcgb2YgVHVlc2RheSwgU2VwIDExLiBUaGUgbG9zcyBvZiBsaWZlIHdhcyBlc3RpbWF0ZWQgYXQganVzdCB1bmRlciAzLDAwMC4gVGhlIGV2ZW50IGNoYW5nZWQgQW1lcmljYW4gZm9yZWlnbiBwb2xpY3kuIEl0IHdhcyBhIG1vdGl2YXRpbmcgZmFjdG9yIGJlaGluZCB0aGUgY29udHJvdmVyc2lhbCBpbnZhc2lvbiBvZiBJcmFxIGFuZCBsZWQgdG8gYSDigJh3YXIgb24gdGVycm9y4oCZIHN5bWJvbGlzZWQgYnkgR3VhbnRhbmFtbyBCYXkgYW5kIGEgZGViYXRlIG92ZXIgdGhlIGp1c3RpZmljYXRpb24gb2YgdG9ydHVyZS4NCjIwMDEgKE9jdCA3KTpbR2VvUG9saXRpY3NdIFVuaXRlZCBTdGF0ZXMgaW52YXNpb24gb2YgQWZnaGFuaXN0YW46IEluIGxhdGUgMjAwMSwgdGhlIFVuaXRlZCBTdGF0ZXMgYW5kIGl0cyBjbG9zZSBhbGxpZXMgaW52YWRlZCBBZmdoYW5pc3RhbiBhbmQgdG9wcGxlZCB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50LiBUaGUgaW52YXNpb24ncyBzdGF0ZWQgYWltcyB3ZXJlIHRvIGRpc21hbnRsZSBhbC1RYWVkYSwgd2hpY2ggaGFkIGV4ZWN1dGVkIHRoZSBTZXB0ZW1iZXIgMTEgYXR0YWNrcywgYW5kIHRvIGRlbnkgaXQgYSBzYWZlIGJhc2Ugb2Ygb3BlcmF0aW9ucyBpbiBBZmdoYW5pc3RhbiBieSByZW1vdmluZyB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50IGZyb20gcG93ZXIuIERlYyA3LCAyMDAxIG9ud2FyZCBzdGFydGVkIFdhciBpbiBBZmdoYW5pc3Rhbi4NCjIwMDEgKE9jdCAxNik6W0Jvb2tdIE1jS2luc2V5IFJlc2VhcmNoZXIgSmFtZXMgQy4gQ29sbGlucycgR29vZCBUbyBHcmVhdDogV2h5IFNvbWUgQ29tcGFuaWVzIE1ha2UgdGhlIExlYXAuLi5BbmQgT3RoZXJzIERvbid0OyANCjIwMDEgKE5vdik6W0NyaW1lXVtJbmRpYV0gQWJkdWwgR2FmZmFyIGFsaWFzIENoaWtuYSBHYWZmYXIgY2F1Z2h0IGJ5IHRoZSBkZXRlY3RpdmUgZGVwYXJ0bWVudCBpbiBDYWxjdXR0YSANCjIwMDEgKEphbiAyKTogVGhlIG5vcnRoZXJuIGVsZWN0cmljYWwgZ3JpZCBjb2xsYXBzZWQgaW4gSW5kaWEuIEEgZmF1bHQgaW4gdGhlIHRyYW5zbWlzc2lvbiBzeXN0ZW0gaW4gdGhlIHN0YXRlIG9mIFV0dGFyIFByYWRlc2ggbGVkIHRvIGNhc2NhZGluZyBmYWlsdXJlIHRocm91Z2hvdXQgbm9ydGhlcm4gSW5kaWEgYWZmZWN0aW5nIDIzIGNyb3JlIHJlc2lkZW50cy4NCjIwMDE6IElWUlMgKCdJbnRlcmFjdGl2ZSBWb2ljZSBSZXNwb25zZSBTeXN0ZW0nKSBmb3IgdGVsZXBob25pYyBlbnF1aXJpZXMgYWJvdXQgdHJhaW5zIGludHJvZHVjZWQgaW4gc29tZSBzdGF0aW9ucy4NCjIwMDE6IE1hZGVFYXN5IGluY29ycG9yYXRlZCBhdCA0NC1BLzEsIEthbHUgU2FyYWksIE5lYXIgSGF1eiBLaGFzIE1ldHJvIFN0YXRpb24sIE5ldyBEZWxoaS0xMTAwMTYNCjIwMDE6IEFjYyB0byAyMDAxIGNlbnN1cywgMzAgbGFraHMgd2VyZSBpbW1pZ3JhdGVkIHRvIEluZGlhIGZyb20gQmFuZ2xhZGVzaCBhbG9uZSwgZm9sbG93ZWQgYnkgMTAgbGFraHMgZnJvbSBQYWtpc3RhbiBhbmQgNiBsYWtocyBmcm9tIE5lcGFsLg0KMjAwMSAoRGVjIDEzKTpbQ3JpbWVdW0luZGlhXSBUZXJyb3Jpc3QgYXR0YWNrIG9uIEluZGlhJ3MgUGFybGlhbWVudC4NCjIwMDE6IHRoZSBjdXN0b21lciBiYXNlIG9mIG1vYmlsZSBwaG9uZSBjb21wYW5pZXMgd2FzIDQgbWlsbGlvbi4NCjIwMDE6IEJlbmVmaXQgbGFubmVycywgVGV4YXMgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBIZWFsdGggQmVuZWZpdCBkaXZpc2lvbi4NCjIwMDE6IE5ldyBIb3Jpem9ucyB3YXMgaW5pdGlhbGx5IHNlbGVjdGVkIGZvciBmdW5kaW5nIGluIDIwMDEgYnV0IHdhcyBleGNsdWRlZCBmcm9tIHRoZSBOQVNBIDIwMDMgYnVkZ2V0LiBGdW5kaW5nIGZvciB0aGUgbWlzc2lvbiB3YXMgcmVpbnN0YXRlZCBhZnRlciBOZXcgSG9yaXpvbnMgd2FzIGxpc3RlZCBhcyBhIHRvcCBwcmlvcml0eSBpbiB0aGUgUGxhbmV0YXJ5IFNjaWVuY2UgRGVjYWRhbCBTdXJ2ZXkgb2YgMjAwM+jjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlallkllklklklklklklklklklklklklklklklklklklklklklklklklklklklkjjajlkasjdlajdlkajdlaj
+KAkzIwMDEuDQoxOTkzOiBBc2hvayBIYWxsIEdpcmwncyBSZXNpZGVudGlhbCBTY2hvb2wsIE1hamtoYWxpLg0KMTk5MzogQnkgdGhpcyB5ZWFyIHRoZXJlIHdlcmUgYXJvdW5kIDEwMCB3ZWItc2VydmVycyBhY3Jvc3MgdGhlIHdvcmxkLiAoQSByZXBvcnQgcHVibGlzaGVkIGluIGZpcnN0IGlzc3VlIG9mIFRoZSBXb3JsZCBXaWRlIFdlYiBOZXdzbGV0dGVyLCAxOTkzKQ0KMTk5MzogQUMgMy10aWVyIGNvYWNoZXMgJiBTbGVlcGVyIGNsYXNzIGFyZSBpbnRyb2R1Y2VkIGFwYXJ0IGZyb20gc2Vjb25kIGNsYXNzLg0KMTk5MzogR29JJ3MgRGlzdHJpY3QgUHJpbWFyeSBFZHVjYXRpb24gUHJvZ3JhbW1lIChEUEVQKSB3YXMgbGF1bmNoZWQsIHdpdGggYW4gYWltIG9mIGFjaGlldmluZyB0aGUgb2JqZWN0aXZlIG9mIHVuaXZlcnNhbCBwcmltYXJ5IGVkdWNhdGlvbi4gVGhpcyBwcm9ncmFtbWVkIGxhaWQgdGhlIGZvdW5kYXRpb25zIGZvciDgpLjgpLDgpY3gpLUg4KS24KS/4KSV4KWN4KS34KS+IOCkheCkreCkv+Ckr+CkvuCkqChFZHVjYXRpb24gZm9yIEFsbCBNb3ZlbWVudCkgYWltZWQgYXQgdGhlIHVuaXZlcnNhbGlzYXRpb24gb2YgZWxlbWVudGFyeSBlZHVjYXRpb24gbWFraW5nIGZyZWUgYW5kIGNvbXB1bHNvcnkgZWR1Y2F0aW9uIHRvIGNoaWxkcmVuIGJldHdlZW4gdGhlIGFnZXMgb2YgNiB0byAxNC4NCjE5OTM6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIHNwbGl0IHdpdGggRGF3b29kIGFuZCBmb3JtZWQgYW4gaW5kZXBlbmRlbnQgZ2FuZyB0aGF0IGZyZXF1ZW50bHkgY2xhc2hlZCB3aXRoIERhd29vZCdzIEQtQ29tcGFueS4NCjE5OTMgKEphbiA3KTpbQ3JpbWVdIFJpb3RzIHJlLXN0YXJ0ZWQgaW4gTXVtYmFpIGFuZCBsYXN0ZWQgZm9yIDIwIGRheXMuIFRoZSBJU0ksIHdoaWNoIGNvbnRyb2xsZWQgc2hpcHBpbmcgcm91dGVzIGZyb20gdGhlIEd1bGYgdG8gSW5kaWEncyB3ZXN0IGNvYXN0LCBkZW1hbmRlZCB0aGF0IHRoZSBtYWZpYSB0cmFuc3BvcnQgd2VhcG9ucyBhbmQgZXhwbG9zaXZlcyBpbnRvIEluZGlhIGluIHJldHVybiBmb3IgdGhlIHVzZSBvZiBQYWtpc3RhbidzIHdhdGVycy4gRGF3b29kIG1ldCB0aGVpciBJU0kgaGFuZGxlcnMgaW4gYSA1IHN0YXIgaG90ZWwgb2YgRHViYWkgaW4gSmFuIG9yIEZlYiBvZiAxOTkzLCB0aGVuIGNhbWUgdGhlIFJEWCB0aHJvdWdoIHRoZSBzYW1lIHBvcm91cyBhbmQgdW5jaGVja2VkIHNlYSByb3V0ZSB0aGF0IDI2LzExIGF0dGFja2VycyBzbGlwcGVkIGFjcm9zcyBhbmQgd3JlY2tlZCBtYXloZW0gaW4gTXVtYmFpLiBUaGUg4oCZOTMgYXR0YWNrcyB3ZXJlIGZpbmFsbHkgZXhlY3V0ZWQgaW4gbWFyY2ggdGhhdCBjbGFpbWVkIHNvbWUgMzAwIGlubm9jZW50IGxpdmVzLg0KMTk5MyAoTWFyIDYpOltQb2xpdHldW0luZGlhXSBTaGFyYWQgUGF3YXIgcmUtZWxlY2V0ZCBhcyBDTSBvZiBNSCBmb3IgMiB5ZWFycy4NCjE5OTMgKE1hciAxMik6W0NyaW1lXSBUaGUgMTk5MyBCb21iYXkgYm9tYmluZ3Mgd2VyZSBhIHNlcmllcyBvZiAxMiB0ZXJyb3Jpc3QgYm9tYmluZ3MgdGhhdCB0b29rIHBsYWNlIGluIEJvbWJheS4gVGhlIHNpbmdsZS1kYXkgYXR0YWNrcyByZXN1bHRlZCBpbiAyNTcgZmF0YWxpdGllcyBhbmQgMSw0MDAgaW5qdXJpZXMuIFRoZXJlIHdhcyBhbm90aGVyIHJhaWQgbmVhciBNYW5pc2ggbWFya2V0IHdoZXJlIGhhbmQgZ3JlbmFkZXMgd2VyZSByZWNvdmVyZWQuIEFmdGVyIGFub3RoZXIgdGlwIG9mZiBsZWQgdG8gZGlzY292ZXJ5IG9mIGEgaHVnZSBxdWFudGl0eSBvZiBSRFggZnJvbSBOYWdsYSBCdW5kZXIgb2ZmIEdob2RidW5kZXIgUm9hZCBpbiBUaGFuZS4g4oCcSW4gYWxsLCA1LDAwMCBraWxvZ3JhbXMgb2YgUkRYIHdhcyBicm91Z2h0IGludG8gTXVtYmFpIGFuZCB3ZSByZWNvdmVyZWQgMywzMDAga2lsb2dyYW1zIG9mIGl0IGluIGFsbCB0aGUgcmFpZHMs4oCdIHNheXMgQ2hhdWd1bGUuIFJlZHVjZWQgU2hvY2sgU2Vuc2l0aXZpdHkgKFJTUykgZXhwbG9zaXZlcywgc3VjaCBhcyBSU1MtUkRYLCB3aGljaCBjb3N0cyBhYm91dCBScy4gMSw1MDAtMiwwMDAgcGVyIGtnLiBBbmVlcyBjb250aW51ZWQgb3BlcmF0aW9uIG9mIEQtQ29tcGFueSB3aGljaCBpbmNsdWRlIGNvbnRyYWN0IGtpbGxpbmcsIGV4dG9ydGlvbiwgdGhlIGNpcmN1bGF0aW9uIG9mIGNvdW50ZXJmZWl0IGN1cnJlbmN5LCBhbmQgdGhlIHByb3Zpc2lvbiBvZiBhIHJhbmdlIG9mIGZyZWUtbGFuY2Ugc2VydmljZXMgdG8gdGVycm9yaXN0IGdyb3VwcyBhdCB0aGUgaW5zdGFuY2Ugb2YgUGFraXN0YW4ncyBJbnRlciBTZXJ2aWNlcyBJbnRlbGxpZ2VuY2UgKElTSSkuIEludGVycG9sIFJlZCBDb3JuZXIgbm90aWNlIGZvciBELUNvbXBhbnkuDQoxOTkzIChOb3YgMSk6IFRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGZvdW5kZWQuIEl0IGlzIGFuIGVjb25vbWljIGFuZCBwb2xpdGljYWwgcGFydG5lcnNoaXAgaW52b2x2aW5nIDI4IEV1cm9wZWFuIGNvdW50cmllcy4gSXQgYmVnYW4gYWZ0ZXIgV1cyIHRvIGZvc3RlciBlY29ub21pYyBjby1vcGVyYXRpb24sIHdpdGggdGhlIGlkZWEgdGhhdCBjb3VudHJpZXMgd2hpY2ggdHJhZGUgdG9nZXRoZXIgYXJlIG1vcmUgbGlrZWx5IHRvIGF2b2lkIGdvaW5nIHRvIHdhciB3aXRoIGVhY2ggb3RoZXIuDQoxOTkzIChOb3YgMyk6IFtHZW9Qb2xpdGljc10gVGhlIENvbW1vbiBNYXJrZXQgZm9yIEVhc3Rlcm4gYW5kIFNvdXRoZXJuIEFmcmljYSAoQ09NRVNBKSBpcyBhIHJlZ2lvbmFsIGVjb25vbWljIGNvbW11bml0eSBpbiBBZnJpY2Egd2l0aCB0d2VudHktb25lIG1lbWJlciBzdGF0ZXMgc3RyZXRjaGluZyBmcm9tIFR1bmlzaWEgdG8gRXN3YXRpbmkuIENPTUVTQSB3YXMgZm9ybWVkIGluIERlY2VtYmVyIDE5OTQsIHJlcGxhY2luZyBhIFByZWZlcmVudGlhbCBUcmFkZSBBcmVhIHdoaWNoIGhhZCBleGlzdGVkIHNpbmNlIDE5ODEuIE5pbmUgb2YgdGhlIG1lbWJlciBzdGF0ZXMgZm9ybWVkIGEgZnJlZSB0cmFkZSBhcmVhIGluIDIwMDAgKERqaWJvdXRpLCBFZ3lwdCwgS2VueWEsIE1hZGFnYXNjYXIsIE1hbGF3aSwgTWF1cml0aXVzLCBTdWRhbiwgWmFtYmlhIGFuZCBaaW1iYWJ3ZSksIHdpdGggUndhbmRhIGFuZCBCdXJ1bmRpIGpvaW5pbmcgdGhlIEZUQSBpbiAyMDA0LCB0aGUgQ29tb3JvcyBhbmQgTGlieWEgaW4gMjAwNiwgU2V5Y2hlbGxlcyBpbiAyMDA5IGFuZCBUdW5pc2lhIGFuZCBTb21hbGlhIGluIDIwMTguDQoxOTkzIChEZWMgMjApOiBPSENIUiBmb3JtZWQuIFRoZSBPZmZpY2Ugb2YgdGhlIFVuaXRlZCBOYXRpb25zIEhpZ2ggQ29tbWlzc2lvbmVyIGZvciBIdW1hbiBSaWdodHMgKE9IQ0hSKSwgYSBVbml0ZWQgTmF0aW9ucyBhZ2VuY3kgdGhhdCB3b3JrcyB0byBwcm9tb3RlIGFuZCBwcm90ZWN0IHRoZSBodW1hbiByaWdodHMgdGhhdCBhcmUgZ3VhcmFudGVlZCB1bmRlciBpbnRlcm5hdGlvbmFsIGxhdyBhbmQgc3RpcHVsYXRlZCBpbiB0aGUgVW5pdmVyc2FsIERlY2xhcmF0aW9uIG9mIEh1bWFuIFJpZ2h0cyBvZiAxOTQ4Lg0KMTk5Mzp0aGUgMjR0aCBhbmQgbGFzdCBHTE9OQVNTIHNhdGVsbGl0ZSB3YXMgbGF1bmNoZWQgZm9ybWluZyB0aGUgd2hvbGUgbmF2aWdhdGlvbiBjb25zdGVsbGF0aW9uIHNpbWlsYXIgdG8gdGhhdCBvZiBVUydzIEdQUy4NCjE5OTM6IFNIQS0wIChhIGhhc2ggZnVuY3Rpb24pIHdhcyBwcm9wb3NlZCBieSBOSVNULCBNYXJ5bGFuZCwgVVNBIChGb3VuZGVkOiAxOTAxKS4gSXQgcHJvZHVjZXMgYSAxNjAtYml0IGhhc2ggdmFsdWUsIHRodXMgdGhlIGJydXRlLWZvcmNlIGNvbGxpc2lvbiBvciAgbmVhci1jb2xsaXNpb24gYXR0YWNrIHJlcXVpcmVzIE8oMl44MCkgY29tcHV0YXRpb24uIFdpdGhpbiA1IHllYXJzLCBpdCB3YXMgbWFkZSBjb2xsaXNpb24gYXR0YWNrZWQgYnkgQ2hhYmF1ZCBhbmQgSm91eCB3aXRoIHRoZSBhdHRhY2sgY29tcGxleGl0eSBvZiAyXjYxLg0KMTk5MzogW0NvYWxnYXRlIHNjYW1dIE9uIDIzcmQgQXByaWwgMjAxMywgdGhlIFN0YW5kaW5nIENvbW1pdHRlZSBvbiBDb2FsIGFuZCBTdGVlbCB0YWJsZWQgaW4gUGFybGlhbWVudCB0aGF0IGFsbCAxOTQgY29hbCBibG9ja3MgZGlzdHJpYnV0ZWQgYmV0d2VlbiAxOTkzIGFuZCAyMDA4IHdlcmUgYXVjdGlvbmVkIGluIGFuIHVuYXV0aG9yaXplZCBtYW5uZXIgYW5kIHRoZSBjb3VudHJ5IGxvc3QgUnMuMS44NiBsYWtoIGNyb3JlLi4gRm9ybWVyIFByaW1lIE1pbmlzdGVyIE1hbm1vaGFuIFNpbmdoLCBhbG9uZyB3aXRoIEt1bWFyIE1hbmdhbGFtIEJpcmxhIGFuZCBQLkMuIFBhcmFraCwgd2VyZSBhY2N1c2VkIGFuZCBzdW1tb25lZCBieSBhIHNwZWNpYWwgY291cnQuIFsyTCBDcm9yZV0uIENvbXB0cm9sbGVyIGFuZCBBdWRpdG9yIEdlbmVyYWwgb2YgSW5kaWEgdG9vayAyMCB5ZWFycyB0byBJRCBvbmUgb2YgdGhlIGJpZ2dlc3Qgc2NhbXMgaW4gSW5kaWFuIGhpc3RvcnkuDQoxOTkzOiBBZnRlciBQcmVzaWRlbnQgQmlsbCBDbGludG9uIHRvb2sgb2ZmaWNlIGluIDE5OTMsIGhvd2V2ZXIsIHRoZSBVLlMuIGVjb25vbXkgZW1iYXJrZWQgb24gYSBsb25nIGFuZCBzdHJvbmcgZXhwYW5zaW9uLCBtYWtpbmcgdGhlIDE5OTBzIGEgZ3JlYXQgZGVjYWRlIGZvciBBbWVyaWNhJ3MgbW9uZXksIG92ZXJhbGwuIA0KMTk5MzpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTW90aHJhKDE5OTIpDQoxOTkzOltTcGFjZV0gSGlwcGFyY29zLCBhIHNjaWVudGlmaWMgc2F0ZWxsaXRlIG9mIHRoZSBFdXJvcGVhbiBTcGFjZSBBZ2VuY3kgKEVTQSkgbGFzdGVkIGZvciA0IHllYXJzIGJlZm9yZSBnb2luZyBvdXQtb2Ytc2VydmljZS4NCjE5OTM6W1NwYWNlXVtSZXNlYXJjaF0gSW4gMTk5MywgRG9uIFBhZ2UgYXJndWVkIHRoYXQgaWYgYSBibGFjayBob2xlIHN0YXJ0cyBpbiBhIHB1cmUgcXVhbnR1bSBzdGF0ZSBhbmQgZXZhcG9yYXRlcyBjb21wbGV0ZWx5IGJ5IGEgdW5pdGFyeSBwcm9jZXNzLCB0aGUgdm9uIE5ldW1hbm4gZW50cm9weSBvZiB0aGUgSGF3a2luZyByYWRpYXRpb24gaW5pdGlhbGx5IGluY3JlYXNlcyBhbmQgdGhlbiBkZWNyZWFzZXMgYmFjayB0byB6ZXJvIHdoZW4gdGhlIGJsYWNrIGhvbGUgaGFzIGRpc2FwcGVhcmVkLiBUaGlzIGlzIGNhbGxlZCB0aGUgUGFnZSBjdXJ2ZS4NCjE5OTM6W0Jvb2tzXVtIaXN0b3J5XSBHcmVlbuKAmXMgRGljdGlvbmFyeSBvZiBTbGFuZyBpcyB0aGUgbGFyZ2VzdCBoaXN0b3JpY2FsIGRpY3Rpb25hcnkgb2YgRW5nbGlzaCBzbGFuZy4gV3JpdHRlbiBieSBKb25hdGhvbiBHcmVlbiBvdmVyIDE3IHllYXJzIGZyb20gMTk5MywgaXQgcmVhY2hlZCB0aGUgcHJpbnRlZCBwYWdlIGluIDIwMTAgaW4gYSB0aHJlZS12b2x1bWUgc2V0IGNvbnRhaW5pbmcgbmVhcmx5IDEwMCwwMDAgZW50cmllcyBzdXBwb3J0ZWQgYnkgb3ZlciA0MDAsMDAwIGNpdGF0aW9ucyBmcm9tIGMuIGFkIDEwMDAgdG8gdGhlIHByZXNlbnQgZGF5LiBUaGUgbWFpbiBmb2N1cyBvZiB0aGUgZGljdGlvbmFyeSBpcyB0aGUgY292ZXJhZ2Ugb2Ygb3ZlciA1MDAgeWVhcnMgb2Ygc2xhbmcgZnJvbSBjLiAxNTAwIG9ud2FyZHMuDQoxOTkzOltFbnZdW0Rpc2FzdGVyXSBTb3V0aCBBc2lhbiBtb25zb29uIGZsb29kcywgM2sgZGVhdGhzDQoxOTkzOltHZW9ncmFwaHldIFRoZSBsYXN0IG1ham9yIHNoaWZ0cyBpbiBFYXJ0aCdzIGF4aXMgd2VyZSBpbmZsdWVuY2VkIGJ5IGNsaW1hdGUgY2hhbmdlOiBhIDMxLjUtaW5jaCBzaGlmdCBiZXR3ZWVuIDE5OTMgYW5kIDIwMTAgd2FzIHByaW1hcmlseSBjYXVzZWQgYnkgZ3JvdW5kd2F0ZXIgcHVtcGluZywgYW5kIGEgY2hhbmdlIGluIHBvbGFyIGRyaWZ0IGRpcmVjdGlvbiBhcm91bmQgdGhlIDE5OTBzIHdhcyBsaW5rZWQgdG8gbWVsdGluZyBnbGFjaWVycyBhbmQgaWNlIHNoZWV0cyBkdWUgdG8gZ2xvYmFsIHdhcm1pbmcuIEVhcnRoJ3MgYXhpcyBhbHNvIHNoaWZ0ZWQgYnkgYWJvdXQgNi41IGluY2hlcyBpbiBNYXJjaCAyMDExIGFmdGVyIHRoZSBKYXBhbmVzZSBlYXJ0aHF1YWtlLCBjYXVzaW5nIHRoZSBwbGFuZXQgdG8gc3BpbiBzbGlnaHRseSBmYXN0ZXIuDQoxOTkzOltXaG9dIEluIDE5OTMsIEluZGlhIGNhbWUgaGVhcnRicmVha2luZ2x5IGNsb3NlIHRvIHdpbm5pbmcgaXRzIGZpcnN0IE1pc3MgVW5pdmVyc2UgY3Jvd24gd2l0aCB0aGUgc3R1bm5pbmcgYW5kIGdyYWNlZnVsIE5hbXJhdGEgU2hpcm9ka2FyLCB3aG8gaGFkIGVhcmxpZXIgd29uIHRoZSBGZW1pbmEgTWlzcyBJbmRpYSB0aXRsZS4gUmVwcmVzZW50aW5nIEluZGlhIGF0IHRoZSBNaXNzIFVuaXZlcnNlIHBhZ2VhbnQgaGVsZCBpbiBNZXhpY28gQ2l0eSwgTmFtcmF0YSB3YXMgYSBzdHJvbmcgY29udGVuZGVy4oCUZWxlZ2FudCBpbiBoZXIgZ293biwgcG9pc2VkIGluIGludGVydmlld3MsIGFuZCBhIGZhbiBmYXZvcml0ZS4gU2hlIGVhc2lseSBtYWRlIGl0IHRvIHRoZSBUb3AgNiwgYW5kIGhlciBjaGFuY2VzIG9mIHdpbm5pbmcgbG9va2VkIGluY3JlZGlibHkgaGlnaC4gQnV0IHRoZW4gY2FtZSB0aGUgZmluYWwgcXVlc3Rpb246IOKAnElmIHlvdSBjb3VsZCBiZSBib3JuIGFzIGFueSBoaXN0b3JpY2FsIGZpZ3VyZSwgd2hvIHdvdWxkIGl0IGJlIGFuZCB3aHk/4oCdIFdoaWxlIG90aGVyIGNvbnRlc3RhbnRzIG5hbWVkIGdsb2JhbCBpY29ucyBsaWtlIE1vdGhlciBUZXJlc2EgYW5kIFByaW5jZXNzIERpYW5hLCBOYW1yYXRhIGdhdmUgYW4gaG9uZXN0LCBwZXJzb25hbCBhbnN3ZXLigJRzaGUgc2FpZCBzaGUgd291bGQgYmUgYm9ybiBhcyBoZXJzZWxmIG9yIHNvbWVvbmUgY2xvc2UgdG8gaGVyLCBiZWNhdXNlIHNoZSBiZWxpZXZlZCBpbiBsaXZpbmcgbGlmZSB3aXRoIHRydXRoIGFuZCBpbmRpdmlkdWFsaXR5LiBJdCB3YXMgYSBiZWF1dGlmdWwsIGdyb3VuZGVkIGFuc3dlcuKAlGJ1dCBub3QgdGhlIGtpbmQgb2YgZ3JhbmQsIGlkZWFsaXN0aWMgcmVzcG9uc2UgdGhlIGp1ZGdlcyB3ZXJlIGV4cGVjdGluZy4gVGhhdCBvbmUgbW9tZW50IG9mIHRydXRoLCBtYW55IGJlbGlldmUsIGNvc3QgaGVyIHRoZSBjcm93biwgYW5kIEluZGlhIGhhZCB0byB3YWl0IGFub3RoZXIgeWVhciBiZWZvcmUgU3VzaG1pdGEgU2VuIGJyb3VnaHQgdGhlIE1pc3MgVW5pdmVyc2UgdGl0bGUgaG9tZSBpbiAxOTk0LiBTdGlsbCwgTmFtcmF0YeKAmXMgYW5zd2VyIGJlY2FtZSBpY29uaWPigJRub3QgYmVjYXVzZSBpdCB3b24sIGJ1dCBiZWNhdXNlIGl0IHdhcyByZWFsLCBtYXJraW5nIGEgcmFyZSBpbnN0YW5jZSB3aGVyZSBob25lc3R5IHN0b29kIHRhbGxlciB0aGFuIGRpcGxvbWFjeS4NCjE5OTM6W0F2aWF0aW9uXVtFeHRyZW1lXVtXaG9dIFRoZSBIZXJic3QgbWFuZXV2ZXIgd2FzIGZpcnN0IHN1Y2Nlc3NmdWxseSBwZXJmb3JtZWQgb24gQXByaWwgMjksIDE5OTMsIGJ5IGFuIFgtMzEgYWlyY3JhZnQuIE5hbWVkIGFmdGVyIFdvbGZnYW5nIEhlcmJzdCwgYSBkZXZlbG9wZXIgb2YgcG9zdC1zdGFsbCB0ZWNobm9sb2d5IGZvciBNZXNzZXJzY2htaXR0LULDtmxrb3ctQmxvaG0gKE1CQiksIHRoaXMsIHBvc3Qtc3RhbGwgbWFuZXV2ZXIgZW5hYmxlcyBhIGZpZ2h0ZXIgdG8gbWFrZSBhIHJhcGlkIDE4MMKwIHR1cm4gd2l0aGluIGEgbWluaW1hbCByYWRpdXMuIA0KDQoxOTk04oCTMTk5NTpbVVNdW0dlb1BvbGl0aWNzXSBvY2N1cGF0aW9uIG9mIEhhaXRpLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgRXVyb3BlYW4gRWNvbm9taWMgQXJlYSwgYWJicmV2aWF0ZWQgYXMgRUVBLCBjb25zaXN0cyBvZiB0aGUgTWVtYmVyIFN0YXRlcyBvZiB0aGUgRXVyb3BlYW4gVW5pb24gKEVVKSBhbmQgdGhyZWUgY291bnRyaWVzIG9mIHRoZSBFdXJvcGVhbiBGcmVlIFRyYWRlIEFzc29jaWF0aW9uIChFRlRBKSAoSWNlbGFuZCwgTGllY2h0ZW5zdGVpbiBhbmQgTm9yd2F5OyBleGNsdWRpbmcgU3dpdHplcmxhbmQpLiBUaGUgQWdyZWVtZW50IG9uIHRoZSBFRUEgZW50ZXJlZCBpbnRvIGZvcmNlIG9uIDEgSmFudWFyeSAxOTk0LiANCjE5OTQ6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEV1cm9wZWFuIEVjb25vbWljIEFyZWEgKEVFQSkgd2FzIGVzdGFibGlzaGVkIG9uIDEgSmFudWFyeSAxOTk0LiBUaGUgYWdyZWVtZW50IGxpbmtzIHRoZSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aHJlZSBFRlRBIHN0YXRlc+KAlEljZWxhbmQsIExpZWNodGVuc3RlaW4sIGFuZCBOb3J3YXnigJRpbnRvIGEgc2luZ2xlIGludGVybmFsIG1hcmtldCwgYWxsb3dpbmcgZm9yIHRoZSBmcmVlIG1vdmVtZW50IG9mIGdvb2RzLCBwZXJzb25zLCBzZXJ2aWNlcywgYW5kIGNhcGl0YWwuIA0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBOQUZUQSwgdGhlIE5vcnRoIEFtZXJpY2FuIEZyZWUgVHJhZGUgQWdyZWVtZW50LCB3YXMgYSAxOTk0IGFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzLCBDYW5hZGEsIGFuZCBNZXhpY28gdG8gZWxpbWluYXRlIHRyYWRlIGJhcnJpZXJzIGFuZCBwcm9tb3RlIGZyZWUgdHJhZGUgaW4gTm9ydGggQW1lcmljYS4gSXQgZmFjaWxpdGF0ZWQgdGhlIG1vdmVtZW50IG9mIGdvb2RzIGFuZCBzZXJ2aWNlcyBhbmQgZXN0YWJsaXNoZWQgYSBsYXJnZSB0cmFkZSBibG9jLiBJbiBKdWx5IDIwMjAsIE5BRlRBIHdhcyByZXBsYWNlZCBieSB0aGUgVW5pdGVkIFN0YXRlcy1NZXhpY28tQ2FuYWRhIEFncmVlbWVudCAoVVNNQ0EpLCB3aGljaCBtb2Rlcm5pemVkIGFuZCBlbmhhbmNlZCB0aGUgdHJlYXR5IGZvciBhIGNvbnRlbXBvcmFyeSBlY29ub215Lg0KMTk5NDpbUy5BZnJpY2FdW1NvY2lhbGlzbV0gRmlyc3QgZnJlZSBlbGVjdGlvbnMgaW4gU291dGggQWZyaWNhOyBOZWxzb24gTWFuZGVsYQ0KMTk5NDpbUmVzZWFyY2hdW3NwYWNlXSBDYXJsIFNhZ2FuIGNvbmNlZGVkIHRoYXQgdGhpcyBhcHByb2FjaCB3b3VsZCBub3Qgd29yayBiZWNhdXNlIHRoZSBhdG1vc3BoZXJlIG9mIFZlbnVzIGlzIGZhciBkZW5zZXIgKDkwIGJhcnMpIHRoYW4gd2hhdCB3YXMgdW5kZXJzdG9vZCBpbiAxOTYxIChhIGZldyBiYXJzKSwgbWVhbmluZyB0aGUgY2FyYm9uIHdvdWxkIGp1c3QgYmUgb3hpZGl6ZWQgYmFjayBpbnRvIENPMi4NCjE5OTQ6W0NvbXB1dGluZ11bUXVhbnR1bV0gUGV0ZXIgU2hvciBkaXNjb3ZlcmVkIGFuIGFsZ29yaXRobSAoU2hvcidzIGFsZ29yaXRobSkgdGhhdCBjb3VsZCBmYWN0b3IgbGFyZ2UgbnVtYmVycyBpbiBwb2x5bm9taWFsIHRpbWUgb24gYSBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCB3b3VsZCBicmVhayB0aGUgc2VjdXJpdHkgb2YgbWFueSBjcnlwdG9ncmFwaGljIHNjaGVtZXMuIA0KMTk5NDpbQ29tcHV0aW5nXVtRdWFudHVtXSBQZXRlciBTaG9yIGFuZCBEb24gQ29wcGVyc21pdGggZmlndXJlZCBvdXQgaG93IHRvIHRha2UgYSBRdWFudHVtIEZvdXJpZXIgVHJhbnNmb3JtLg0KMTk5NDpUaGUgcHJvYmxlbSB3aXRoIHRoZSBwYXBlciBwdWJsaXNoZWQgZWFybGllciB0aGlzIG1vbnRoIHdhcyBpdHMgcmVsaWFuY2Ugb24gU2Nobm9ycidzIGFsZ29yaXRobSAobm90IHRvIGJlIGNvbmZ1c2VkIHdpdGggU2hvcuKAmXMgYWxnb3JpdGhtKSwgd2hpY2ggd2FzIGRldmVsb3BlZCBpbiAxOTk0LiBTY2hub3Jy4oCZcyBhbGdvcml0aG0gaXMgYSBjbGFzc2ljYWwgY29tcHV0YXRpb24gYmFzZWQgb24gbGF0dGljZXMsIHdoaWNoIGFyZSBtYXRoZW1hdGljYWwgc3RydWN0dXJlcyB0aGF0IGhhdmUgbWFueSBhcHBsaWNhdGlvbnMgaW4gY29uc3RydWN0aXZlIGNyeXB0b2dyYXBoeSBhbmQgY3J5cHRhbmFseXNpcy4gVGhlIGF1dGhvcnMgd2hvIGRldmlzZWQgU2Nobm9ycuKAmXMgYWxnb3JpdGhtIHNhaWQgaXQgY291bGQgZW5oYW5jZSB0aGUgdXNlIG9mIHRoZSBoZXVyaXN0aWMgcXVhbnR1bSBvcHRpbWl6YXRpb24gbWV0aG9kIGNhbGxlZCBRQU9BLg0KMTk5NCAoSmFuIDEpOiBbR2VvUG9saXRpY3NdIFRoZSBOb3J0aCBBbWVyaWNhbiBGcmVlIFRyYWRlIEFncmVlbWVudCAoTkFGVEEpIHdhcyBhbiBhZ3JlZW1lbnQgc2lnbmVkIGJ5IENhbmFkYSwgTWV4aWNvLCBhbmQgdGhlIFVuaXRlZCBTdGF0ZXMgdGhhdCBjcmVhdGVkIGEgdHJpbGF0ZXJhbCB0cmFkZSBibG9jIGluIE5vcnRoIEFtZXJpY2EuIFRoZSBhZ3JlZW1lbnQgY2FtZSBpbnRvIGZvcmNlIG9uIEphbnVhcnkgMSwgMTk5NCwgYW5kIHN1cGVyc2VkZWQgdGhlIDE5ODggQ2FuYWRh4oCTVW5pdGVkIFN0YXRlcyBGcmVlIFRyYWRlIEFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzIGFuZCBDYW5hZGEuIFRoZSBOQUZUQSB0cmFkZSBibG9jIGZvcm1lZCBvbmUgb2YgdGhlIGxhcmdlc3QgdHJhZGUgYmxvY3MgaW4gdGhlIHdvcmxkIGJ5IGdyb3NzIGRvbWVzdGljIHByb2R1Y3QuDQoxOTk0OltUZWNobm9sb2d5XVtCdXNpbmVzc11bVVNdW0NvbXB1dGluZ10gVGhlIERlbGwgTGF0aXR1ZGUgc2VyaWVzIGlzIGEgbGluZSBvZiBsYXB0b3AgY29tcHV0ZXJzIG1hbnVmYWN0dXJlZCBhbmQgc29sZCBieSBBbWVyaWNhbiBjb21wYW55IERlbGwuIEl0IGlzIGEgYnVzaW5lc3Mtb3JpZW50ZWQgbGluZSwgYWltZWQgYXQgY29ycG9yYXRlIGVudGVycHJpc2VzLCBoZWFsdGhjYXJlLCBnb3Zlcm5tZW50LCBhbmQgZWR1Y2F0aW9uIG1hcmtldHM7IHVubGlrZSB0aGUgSW5zcGlyb24gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBpbmRpdmlkdWFsIGN1c3RvbWVycywgYW5kIHRoZSBWb3N0cm8gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBzbWFsbGVyIGJ1c2luZXNzZXMuIFRoZSBMYXRpdHVkZSBkaXJlY3RseSBjb21wZXRlcyB3aXRoIHRoZSBMZW5vdm8gVGhpbmtQYWQgYW5kIHRoZSBFbGl0ZUJvb2sgc2VyaWVzIGJ5IEhQLiBBZGRpdGlvbmFsbHksIHRoZSAiUnVnZ2VkIChFeHRyZW1lKSIsICJYRlIiIGFuZCAiQVRHIiBtb2RlbHMgY29tcGV0ZSBwcmltYXJpbHkgd2l0aCBQYW5hc29uaWMncyBUb3VnaGJvb2sgbGluZSBvZiAicnVnZ2VkIiBsYXB0b3BzLg0KMTk5NDogU3VzaG1pdGEgU2VuIGJlY2FtZSBNaXNzIFVuaXZlcnNlLg0KMTk5NDogVGhlIEFubmFscyBvZiBJbXByb2JhYmxlIFJlc2VhcmNoIGlzIGEgYmktbW9udGhseSBtYWdhemluZSBkZXZvdGVkIHRvIHNjaWVudGlmaWMgaHVtb3IsIGluIHRoZSBmb3JtIG9mIGEgc2F0aXJpY2FsIHRha2Ugb24gdGhlIHN0YW5kYXJkIGFjYWRlbWljIGpvdXJuYWwuDQoxOTk0OiBMaW5kb24gTGVhZGVyIG9mIExhbmRvciBBc3NvY2lhdGVzLCBvZiBTYW4gRnJhbmNpc2NvIGRlc2lnbmVkIHdvcmRtYXJrcyBmb3IgRmVkRXgncyB2YXJpb3VzIE9wLXVuaXQuIEZlZEV44oCZcyBwdWJsaWMtcmVsYXRpb25zIGZpcm0gd2FudGVkIHRvIGhpZ2hsaWdodCB0aGUgYXJyb3cgc28gaXQgd291bGQgYmUgb2J2aW91cy4gQnV0IGhlIGZvdWdodCB0aGVtIG9uIHRoYXQg4oCUIGhlIHRob3VnaHQgaXQgd291bGQgYmUgb3ZlcmtpbGwuIFRoZXJl4oCZcyBzb21ldGhpbmcgYWJvdXQgbWFraW5nIHBlb3BsZSBkaXNjb3ZlciBzb21ldGhpbmcgb24gdGhlaXIgb3duIHRoYXTigJlzIGEgbG90IG1vcmUgcG93ZXJmdWwgdGhhbiBpdGFsaWNpemluZyBpdCB0byBtYWtlIHlvdXIgcG9pbnQuDQoxOTk0OiBTY2lsYWIgMS4xLCB0aGUgZmlyc3QgcmVsZWFzZWQgdmVyc2lvbiBvZiBTY2lsYWIsIHdhcyBwdXQgb24gYW5vbnltb3VzIGZ0cCBzaXRlLg0KMTk5NDogVGhlIGNvbmNlcHQgb2YgYSBjYWbDqSB3aXRoIGZ1bGwgSW50ZXJuZXQgYWNjZXNzIChhbmQgdGhlIG5hbWUgQ3liZXJjYWbDqSkgd2FzIGludmVudGVkIGluIGVhcmx5IGJ5ICBhIEJyaXRpc2ggdGVjaG5vbG9neSBhcnRpc3QsIEl2YW4gUG9wZS4NCjE5OTQ6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIGx1cmVkIG9uZSBvZiBEYXdvb2QncyBmYXZvcml0ZSAibmFyY28tdGVycm9yaXN0IiBQaGlsbHUgS2hhbiBhbGlhcyBCYWtodGl5YXIgQWhtZWQgS2hhbiB0byBhIGhvdGVsIHJvb20gaW4gQmFuZ2tvaywgd2hlcmUgaGUgd2FzIHRvcnR1cmVkIHRvIGRlYXRoLCBoYXZpbmcgYmVlbiBiZXRyYXllZCBieSBoaXMgY2xvc2VzdCBhaWRlIGFuZCBzaWRla2ljayBNYW5nZXNoICJNYW5neWEiIFBhd2FyLiBELUNvbXBhbnkncyBTaGFyYWQsIHVzZWQgaGlzIGxpbmtzIHdpdGggTXVtYmFpLWJhc2VkIGhvdGVsaWVyIFZpbm9kIGFuZCBBLiBNaXNocmEgdG8gdHJhY2sgZG93biBSYWphbiBpbiBCYW5na29rLiBSYWphbidzIGhpdG1hbiBSb2hpdCBWYXJtYSBhbmQgaGlzIHdpZmUgc2hvdCBieSBELUNvbXBhbnkuDQoxOTk0KEp1bCAxNik6W1NwYWNlXSBGcm9tIEp1bHkgMTYgdG8gMjIsIDE5OTQsIGVub3Jtb3VzIHBpZWNlcyBvZiB0aGUgY29tZXQgU2hvZW1ha2VyLUxldnkgOSAoU0w5KSwgZGlzY292ZXJlZCBqdXN0IGEgeWVhciBwcmlvciwgY3Jhc2hlZCBpbnRvIEp1cGl0ZXIgb3ZlciBzZXZlcmFsIGRheXMsIGNyZWF0aW5nIGh1Z2UsIGRhcmsgc2NhcnMgaW4gdGhlIHBsYW5ldCdzIGF0bW9zcGhlcmUgYW5kIGxvZnRpbmcgc3VwZXJoZWF0ZWQgcGx1bWVzIGludG8gaXRzIHN0cmF0b3NwaGVyZS4NCjE5OTQgKE9jdCk6IElUUE8gYW5kIEdvSSdzIE5JQyBqb2ludGx5IHNldC11cCB0aGUgTmF0aW9uYWwgQ2VudHJlIGZvciBUcmFkZSBJbmZvcm1hdGlvbiAoTkNUSSkgYXQgUHJhZ2F0aSBNYWlkYW4uDQoxOTk0IChOb3YgMSwgMTU6MDEgSVNUKTpbU3BhY2VdW1N1bl0gVGhlIEdsb2JhbCBHZW9zcGFjZSBTY2llbmNlICdXaW5kJyBzYXRlbGxpdGUgaXMgYSBOQVNBIHNjaWVuY2Ugc3BhY2VjcmFmdCBkZXNpZ25lZCB0byBzdHVkeSByYWRpbyB3YXZlcyBhbmQgcGxhc21hIHRoYXQgb2NjdXIgaW4gdGhlIHNvbGFyIHdpbmQgYW5kIGluIHRoZSBFYXJ0aCdzIG1hZ25ldG9zcGhlcmUuIA0KMTk5NCAoRGVjIDMpOiBTb255J3MgUGxheVN0YXRpb24gKGEgdmlkZW8gZ2FtZSBjb25zb2xlKSB3YXMgaW50cm9kdWNlZCB0byB0aGUgd29ybGQgZnJvbSBNaW5hdG8sIFRva3lvIChKYXBhbikuDQoxOTk0OiBXWFlDLSBmaXJzdCBpbnRlcm5ldCByYWRpbyBzdGF0aW9uIGJyb2FkY2FzdC4NCjE5OTQ6IE1lbW9yeSBjYXJkcyB3ZXJlIGludHJvZHVjZWQgaW4gdGhlIGNvbnN1bWVyIGVsZWN0cm9uaWNzIG1hcmtldC4NCjE5OTQgKEF1Zyk6IElUUE8ncyAxc3QgRGVsaGkgQm9vayBGYWlyIGF0ICBIYWxsIDggdG8gMTIgb2YgUHJhZ2F0aSBNYWlkYW4sIE5ldyBEZWxoaS4gVGhlIHRpbWluZ3Mgb2YgZmFpciBhcmUgZnJvbSAxMC4wMCBhbSB0byA4LjAwIHBtIChlbnRyeSB0byBmYWlyIHdpbGwgY2xvc2UgYXQgNy4zMCBwbSkuDQoxOTk0IChTZXApOiBUaGUgQ09OQ0VSVCBzb2Z0d2FyZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgaW1wbGVtZW50ZWQgYXQgYWxsIG9mIHRoZSBmaXZlIFBSUycgc2l0ZXMgU2VjdW5kZXJhYmFkIGluIFNlcHQuIDE5OTQsIE5ldyBEZWxoaSBvbiBTZXB0LiAxOTk2LCBDYWxjdXR0YSBvbiAxNHRoIEp1bmUgMTk5OCwgTXVtYmFpIG9uIDExdGggSmFuIDE5OTkgYW5kIENoZW5uYWkgb24gMTJ0aCBBcHJpbCAxOTk5Lg0KMTk5NDogdGhlIDI0dGggYW5kIHRoZSBsYXN0IEdQUyBzYXRlbGxpdGUgd2FzIGxhdW5jaGVkIGluIFVTLg0KMTk5NDogVGhlIHdvcmQgVGFsaWJhbiBpcyBQYXNodG8sINi32KfZhNio2KfZhiDhua3EgWxpYsSBbiwgbWVhbmluZyAic3R1ZGVudHMiLCB0aGUgcGx1cmFsIG9mIOG5rcSBbGliLiBBZnRlciB0aGUgU292aWV0IFVuaW9uIGludGVydmVuZWQgYW5kIG9jY3VwaWVkIEFmZ2hhbmlzdGFuIGluIDE5NzksIElzbGFtaWMgbXVqYWhpZGVlbiBmaWdodGVycyBlbmdhZ2VkIGluIHdhciB3aXRoIHRob3NlIFNvdmlldCBmb3JjZXMsIHdoaWNoIGxhaWQgdGhlIGZvdW5kYXRpb24gb2YgcG9saXRpY2FsIG1vdmVtZW50IGFuZCBtaWxpdGFyeSBvcmdhbml6YXRpb24gbmFtZWQgVGFsaWJhbi4NCjE5OTQ6IEFiZHVsIEthcmVlbSBUZWxnaSBhY3F1aXJlZCB0aGUgbGljZW5zZSBmb3Igc2VsbGluZyBzdGFtcCBwYXBlciBhbmQgb3BlbmVkIGFuIG9mZmljZSBpbiBNdW1iYWkuIEFmdGVyIHRoYXQsIGhlIHN0YXJ0ZWQgcHJpbnRpbmcgc3RhbXAgcGFwZXIgaW4gTmFzaGlrLiBXaXRoIHNvbWUgYWdlbnRz4oCZIGhlbHAsIGhlIHN0YXJ0cyBzZWxsaW5nIGZha2Ugc3RhbXAgcGFwZXIgaW4gYnVsayB0byBiYW5rcywgaW5zdXJhbmNlIGNvbXBhbmllcywgc3RvY2sgYnJva2VyYWdlIGZpcm1zLCBhbmQgY29ycG9yYXRlcy4gSW4gMjAwMyB0aGUgVGVsZ2kgc2NhbSB3YXMgdW5mb2xkZWQ7IHRoZSBmaWd1cmUgaW4gdGhlIG1pbmQgb2Ygc2VjdXJpdHkgYW5kIGludGVsbGlnZW5jZSBhZ2VuY2llcyB3YXMgdXAgdG8gUnMuMjBrIENyb3JlDQoxOTk0OiBbR2VvUG9saXRpY3NdIEludGVybmF0aW9uYWwgQXNzb2NpYXRpb24gb2YgR2VuZGFybWVyaWVzIGFuZCBQb2xpY2UgRm9yY2VzIHdpdGggTWlsaXRhcnkgU3RhdHVzIChjb21tb25seSBrbm93biBhcyBGSUVQIGZvciBGcmFuY2UtSXRhbGlhLUVzcGHDsWEtUG9ydHVnYWwsIHRoZSBmaXJzdCBmb3VyIG1lbWJlcnMpIGlzIGFuIGFzc29jaWF0aW9uIG9mIG5hdGlvbmFsIGdlbmRhcm1lcmllcyBvciBtaWxpdGFyeSBwb2xpY2UgZm9yY2VzLg0KMTk5NDpbQm9va10gUGFsZSBCbHVlIERvdDogQSBWaXNpb24gb2YgdGhlIEh1bWFuIEZ1dHVyZSBpbiBTcGFjZSBpcyBhIDE5OTQgYm9vayBieSB0aGUgYXN0cm9ub21lciBDYXJsIFNhZ2FuLiBJdCBpcyB0aGUgc2VxdWVsIHRvIFNhZ2FuJ3MgMTk4MCBib29rIENvc21vcyBhbmQgd2FzIGluc3BpcmVkIGJ5IHRoZSBmYW1vdXMgMTk5MCBQYWxlIEJsdWUgRG90IHBob3RvZ3JhcGgsIGZvciB3aGljaCBTYWdhbiBwcm92aWRlcyBhIHBvaWduYW50IGRlc2NyaXB0aW9uLiBJbiB0aGUgYm9vaywgU2FnYW4gbWl4ZXMgcGhpbG9zb3BoeSBhYm91dCB0aGUgaHVtYW4gcGxhY2UgaW4gdGhlIHVuaXZlcnNlIHdpdGggYSBkZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCBrbm93bGVkZ2UgYWJvdXQgdGhlIFNvbGFyIFN5c3RlbS4gSGUgYWxzbyBkZXRhaWxzIGEgaHVtYW4gdmlzaW9uIGZvciB0aGUgZnV0dXJlLg0KMTk5NDpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTWVjaGFnb2R6aWxsYSBJSSgxOTkzKQ0KMTk5NDpbQ2luZW1hXSBUaGUgQXBwbGUoMTk4MCkNCjE5OTQ6W0NpbmVtYV0gVGhlIEF0bGFudGlzIEludGVyY2VwdG9ycygxOTgzKQ0KMTk5NDpbTW50bmdnXSBJbiAxOTk0LCBNYXJrIFdoZXR1IHN1bW1pdHRlZCBNdCBFdmVyZXN0IHdpdGggTWlrZSBSZWluYmVyZ2VyLiBCdXQgYWZ0ZXIgYSBmcmVlemluZyBuaWdodCwgV2hldHUgZmFjZWQgYSBoYXJyb3dpbmcgY2hvaWNlOiBsZWF2ZSBoaXMgZnJpZW5kIG9yIHJlbWFpbiBmb3JldmVyLiBUaGUgRmF0YWwgR2FtZSAoMTk5NykNCjE5OTQ6W1RvdXJpc21dIFRoZSBBZHZlbnR1cmUgVG91ciBPcGVyYXRvcnMgQXNzb2NpYXRpb24gb2YgSW5kaWEgKEFUT0FJKSB3YXMgZm91bmRlZCBpbiAxOTk0LiBJdCB3YXMgZXN0YWJsaXNoZWQgYnkgYSBncm91cCBvZiB0cmF2ZWwgdHJhZGUgYWR2ZW50dXJlcnMgd2hvIGFpbWVkIHRvIGNyZWF0ZSBhIHN0cm9uZyBzdXBwb3J0IG5ldHdvcmsgZm9yIEluZGlhbiBhZHZlbnR1cmUgdG91ciBvcGVyYXRvcnMuIA0KDQoxOTk1IChNYXkgMTkpOiBbUmVzZWFyY2hdW1NwYWNlXSB0d28gc2NpZW50aXN0cyBhdCBDYWwgUG9seSBzaG93ZWQgdGhhdCBiYWN0ZXJpYSBjYW4gc3Vydml2ZSB3aXRob3V0IGFueSBtZXRhYm9saXNtIGZvciBhdCBsZWFzdCAyNSBtaWxsaW9uIHllYXJzOyBwcm9iYWJseSB0aGV5IGFyZSBpbW1vcnRhbC4NCjI0IE5vdmVtYmVyIDE5OTU6IFRoZSBOZXcgWW9yayBUaW1lcyBkZXNjcmliZWQgYmFjdGVyaWEgdGhhdCBjYW4gc3Vydml2ZSByYWRpYXRpb24gbXVjaCBzdHJvbmdlciB0aGFuIGFueSB0aGF0IEVhcnRoIGhhcyBldmVyIGV4cGVyaWVuY2VkLg0KV2UgYXJlIGNhbGxpbmcgdGhlIHVuaW9uIG9mIExvdmVsb2NrJ3MgR2FpYSB3aXRoIEhveWxlIGFuZCBXaWNrcmFtYXNpbmdoZSdzIGV4cGFuZGVkIHRoZW9yeSBvZiBwYW5zcGVybWlhIENvc21pYyBBbmNlc3RyeS4gVGhpcyBhY2NvdW50IG9mIGV2b2x1dGlvbiBhbmQgdGhlIG9yaWdpbiBvZiBsaWZlIG9uIEVhcnRoIGlzIHByb2ZvdW5kbHkgZGlmZmVyZW50IGZyb20gdGhlIHByZXZhaWxpbmcgc2NpZW50aWZpYyBwYXJhZGlnbS4gSXQgY2hhbGxlbmdlcyBub3QgbWVyZWx5IHRoZSBhbnN3ZXJzIGJ1dCB0aGUgcXVlc3Rpb25zIHRoYXQgYXJlIHBvcHVsYXIgdG9kYXkuIENvc21pYyBBbmNlc3RyeSByZXF1aXJlcyB0aGF0IGxpZmUgY2FuIG9ubHkgZGVzY2VuZCBmcm9tIGFuY2VzdG9ycyBhdCBsZWFzdCBhcyBoaWdobHkgZXZvbHZlZCBhcyBpdHNlbGYsIGFuZCB0aGF0IHRoZXJlIGNhbiBiZSBubyBvcmlnaW4gb2YgbGlmZSBmcm9tIG5vbmJpb2xvZ2ljYWwgbWF0dGVyLiBXaXRob3V0IHN1cGVybmF0dXJhbCBpbnRlcnZlbnRpb24sIHRoZXJlZm9yZSwgd2UgY29uY2x1ZGUgdGhhdCBsaWZlIG11c3QgaGF2ZSBhbHdheXMgZXhpc3RlZC4gQWx0aG91Z2ggdGhlc2UgY29uY2x1c2lvbnMgY3V0IGFjcm9zcyB0aGUgYm91bmRhcmllcyBiZXR3ZWVuIHNjaWVuY2UsIHBoaWxvc29waHksIGFuZCByZWxpZ2lvbiwgd2UgYmVsaWV2ZSB0aGV5IGFyZSBncm91bmRlZCBpbiBnb29kIGV2aWRlbmNlLiBBbmQgbmV3IGRhdGEgdGhhdCBzdXBwb3J0IG1hbnkgYXNwZWN0cyBvZiBDb3NtaWMgQW5jZXN0cnkgYXJlIGNvbWluZyBpbiByYXBpZGx5LiBJbiB0aGUgZm9sbG93aW5nIHBhZ2VzIHdlIHdpbGwgZXhwbGFpbiBob3cgdGhlc2UgYW5kIG90aGVyIHJlY2VudCBkZXZlbG9wbWVudHMgc3VwcG9ydCBDb3NtaWMgQW5jZXN0cnk6DQoNCjE5OTU6IEFOU0VUIHNvbGQgdG8gQU9MLCB3aG8gIG5vdyBydW5zIGl0Lg0KMTk5NSAoTWFyKTogRGVwdC4gb2YgSW5kaWFuIE1lZGljaW5lIGFuZCBIb21lb3BhdGh5IGZvdW5kZWQuDQoxOTk1IChNYXIgMjQpOltSZXNlYXJjaF0gUmVtb3RlbHkgT3BlcmF0ZWQgVmVoaWNsZSBLQUlLTyByZWFjaGVkIHRoZSBkZWVwZXN0IGFyZWEgb2YgdGhlIE1hcmlhbmEgVHJlbmNoIGFuZCBtYWRlIHRoZSBkZWVwZXN0IGRpdmluZyByZWNvcmQgb2YgMTAsOTExIG0gKDM1LDc5NyBmdDsgNSw5NjYgZmF0aG9tcykgDQoxOTk1OiBwaG9uZSBjYWxsIGNvc3RpbmcgUnMuIDE2IHBlciBtaW4uDQoxOTk1OltHYW1pbmddIFZpcnR1YSBDb3AgMiBpcyBhIGxpZ2h0IGd1biBzaG9vdGVyIGFyY2FkZSBnYW1lLCByZWxlYXNlZCBpbiAxOTk1IGFuZCBkZXZlbG9wZWQgaW50ZXJuYWxseSBhdCBTZWdhIGJ5IHRoZWlyIEFNMiBzdHVkaW8gKFl1IFN1enVraSkuIEl0IHdhcyBwb3J0ZWQgdG8gdGhlIFNlZ2EgU2F0dXJuIGluIDE5OTYuIEl0IHdhcyByZWxlYXNlZCBvbiBQQyBpbiAxOTk3IGFuZCBTZWdhIERyZWFtY2FzdCBpbiAyMDAwLiBJdCB3YXMgbGF0ZXIgYnVuZGxlZCB3aXRoIFZpcnR1YSBDb3AgaW4gVmlydHVhIENvcDogRWxpdGUgRWRpdGlvbiBmb3IgUGxheVN0YXRpb24gMiBpbiAyMDAyLg0KMTk5NSAoQXByIDEpOltSZXNlYXJjaF0gUGlsbGFycyBvZiBDcmVhdGlvbiBpcyBhIHBob3RvZ3JhcGggdGFrZW4gYnkgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgb2YgZWxlcGhhbnQgdHJ1bmtzIG9mIGludGVyc3RlbGxhciBnYXMgYW5kIGR1c3QgaW4gdGhlIEVhZ2xlIE5lYnVsYSwgaW4gdGhlIFNlcnBlbnMgY29uc3RlbGxhdGlvbiwgc29tZSA2LDUwMOKAkzcsMDAwIGxpZ2h0LXllYXJzICgyLDAwMOKAkzIsMTAwIHBjOyA2MeKAkzY2IEVtKSBmcm9tIEVhcnRoLg0KMTk5NSAoQXByIDEpOiBJQUFJIGFuZCBOQUEgd2VyZSBtZXJnZWQgYnkgYW4gQWN0IG9mIFBhcmxpYW1lbnQgYW5kIHdhcyBuYW1lZCBhcyBBaXJwb3J0cyBBdXRob3JpdHkgb2YgSW5kaWEgKEFBSSkuIFRoaXMgbmV3IG9yZ2FuaXNhdGlvbiB3YXMgdG8gYmUgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nLCB1cGdyYWRpbmcsIG1haW50YWluaW5nIGFuZCBtYW5hZ2luZyBjaXZpbCBhdmlhdGlvbiBpbmZyYXN0cnVjdHVyZSBib3RoIG9uIHRoZSBncm91bmQgYW5kIGFpciBzcGFjZSBpbiB0aGUgY291bnRyeS4NCjE5OTUgKEFwciAyMSk6W0NyaW1lXVtJbmRpYV0gQmFibG9vIHBpY2tlZCB1cCBieSB0aGUgU2luZ2Fwb3JlIGFpcnBvcnQgcG9saWNlIGZvciB0cmF2ZWxsaW5nIG9uIGZha2UgcGFzc3BvcnQuIEhlIHdhcyBzdGF5aW5nIGluIER1YmFpLg0KMTk5NSAoU2VwIDMwKTpbQ3JpbWVdW0luZGlhXSBTaW5nYXBvcmUgZXh0cmFkaXRlcyBJbmRpYSdzICdtb3N0LXdhbnRlZCBpbnRlci1zdGF0ZSBjcmltaW5hbCcgQmFibG9vIFNyaXZhc3RhdmEgKDMzWU8pDQoxOTk1IChOb3YgMzApOiBPcGVyYXRpb24gRGVzZXJ0IFN0b3JtIChGaXJzdCBJcmFxIFdhcilvZmZpY2lhbGx5IGVuZGVkLg0KMTk5NSAoTWF5IDMxKTpbQm9va11bTWlsaXRhcnldIEFkbWlyYWwgV2lsbGlhbSBILiBNY1JhdmVuJ3MgU3BlYyBPcHM6IENhc2UgU3R1ZGllcyBpbiBTcGVjaWFsIE9wZXJhdGlvbnMgV2FyZmFyZTogVGhlb3J5IGFuZCBQcmFjdGljZTsgU2VhIFN0b3JpZXM6IE15IExpZmUgaW4gU3BlY2lhbCBPcGVyYXRpb25zICgyMDE5LCBNYXkgMSk7IFRoZSBIZXJvIENvZGU6IExlc3NvbnMgTGVhcm5lZCBmcm9tIExpdmVzIFdlbGwgTGl2ZWQgKDIwMjEsIEFwciAxMykNCjE5OTU6IERyLiBIYW5kZSBhZnRlciBncmFkdWF0aW5nIGZyb20gSUlUIEtoYXJhZ3B1ciBjb25jZXB0dWFsaXplZCBTRUxDTyBJbmRpYSBkdXJpbmcgaGlzIFBoRCBvbiBzdXN0YWluYWJsZSBlbmVyZ3kgYXQgdGhlIFVuaXZlcnNpdHkgb2YgTWFzc2FjaHVzZXR0cy4gRHVyaW5nIGEgZmllbGQgdmlzaXQgdG8gdGhlIERvbWluaWNhbiBSZXB1YmxpYywgaGUgd2FzIHN1cnByaXNlZCB0byBzZWUgdGhlIHBvb3IgdXNpbmcgc29sYXIgbGlnaHRzLg0KMTk5NTogVGhlIEdvdmVybm1lbnQgb2YgSW5kaWEgYW5kIHRoZSBHb3Zlcm5tZW50IG9mIERlbGhpIGpvaW50bHkgc2V0IHVwIGEgY29tcGFueSBjYWxsZWQgdGhlIERlbGhpIE1ldHJvIFJhaWwgQ29ycG9yYXRpb24gKERNUkMpIG9uIDMgTWF5IDE5OTUsIHdpdGggRHIuIEUuIFNyZWVkaGFyYW4gYXMgdGhlIG1hbmFnaW5nIGRpcmVjdG9yLg0KMTk5NTogSW50J2wgR2FuZGhpIFBlYWNlIFByaXplIGxhdW5jaGVkLg0KMTk5NTogU2FjaGluIFIuIFRlbmR1a2FyIGFuZCBBbmphbGkgVGVuZHVsa2FyIHdlZGRlZCB0b2dldGhlci4NCjE5OTU6IC5tcDMgaW52ZW50ZWQuDQoxOTk1OltHYW1pbmddIFdoaWxlIEZJRkEgOTUgZGlkIG5vdCBhZGQgbXVjaCBvdGhlciB0aGFuIHRoZSBhYmlsaXR5IHRvIHBsYXkgd2l0aCBjbHViIHRlYW1zLCBGSUZBIDk2IHB1c2hlZCB0aGUgYm91bmRhcmllcy4gRm9yIHRoZSBmaXJzdCB0aW1lIHdpdGggcmVhbCBwbGF5ZXIgbmFtZXMgYnkgb2J0YWluaW5nIHRoZSBGSUZQcm8gbGljZW5zZSwgdGhlIFBsYXlTdGF0aW9uLCBQQywgMzJYIGFuZCBTZWdhIFNhdHVybiB2ZXJzaW9ucyB1c2VkIEVBJ3MgIlZpcnR1YWwgU3RhZGl1bSIgZW5naW5lLCB3aXRoIDJEIHNwcml0ZSBwbGF5ZXJzIG1vdmluZyBhcm91bmQgYSByZWFsLXRpbWUgM0Qgc3RhZGl1bS4NCjE5OTUgKEp1bCAxOCk6W0Jvb2tdIEJhcmFjayBPYmFtYSdzIERyZWFtcyBmcm9tIE15IEZhdGhlcjogQSBTdG9yeSBvZiBSYWNlIGFuZCBJbmhlcml0YW5jZTsgRHJlYW1zIGZyb20gTXkgRmF0aGVyOiBBIFN0b3J5IG9mIFJhY2UgYW5kIEluaGVyaXRhbmNlICgyMDA2LCBPY3QgMTcpOyBPZiBUaGVlIEkgU2luZzogQSBMZXR0ZXIgdG8gTXkgRGF1Z2h0ZXJzICgyMDEwLCBOb3YgMTYpOyBBIFByb21pc2VkIExhbmQgKDIwMjAsIE5vdiAxNykNCjE5OTUoSmFuIDEpOltFbnZdIFRoZSBBZ3JlZW1lbnQgb24gQWdyaWN1bHR1cmUgKEFvQSkgaXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgb2YgdGhlIFdvcmxkIFRyYWRlIE9yZ2FuaXphdGlvbi4gSXQgd2FzIG5lZ290aWF0ZWQgZHVyaW5nIHRoZSBVcnVndWF5IFJvdW5kIG9mIHRoZSBHZW5lcmFsIEFncmVlbWVudCBvbiBUYXJpZmZzIGFuZCBUcmFkZSwgYW5kIGVudGVyZWQgaW50byBmb3JjZSB3aXRoIHRoZSBlc3RhYmxpc2htZW50IG9mIHRoZSBXVE8gb24gSmFudWFyeSAxLCAxOTk1LiBCbHVlLCBSZWQsIEFtYmVyIGFuZCBHcmVlbiBCb3ggb2Ygc3Vic2lkaWVzLg0KMTk5NTpbQ2luZW1hXSBOZWxzb24gTWFuZGVsYSwgaW4gaGlzIGZpcnN0IHRlcm0gYXMgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYSwgaW5pdGlhdGVzIGEgdW5pcXVlIHZlbnR1cmUgdG8gdW5pdGUgdGhlIEFwYXJ0aGVpZC10b3JuIGxhbmQ6IGVubGlzdCB0aGUgbmF0aW9uYWwgcnVnYnkgdGVhbSBvbiBhIG1pc3Npb24gdG8gd2luIHRoZSAxOTk1IFJ1Z2J5IFdvcmxkIEN1cC4gLSAgSW52aWN0dXMgKDIwMDkpDQoxOTk1OltDaW5lbWFdIEEgQ2xvY2t3b3JrIE9yYW5nZSgxOTcxKQ0KMTk5NTpbQ2luZW1hXSBEZWFkIEVuZCBEcml2ZS1JbigxOTg2KQ0KMTk5NTpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gU3BhY2Vnb2R6aWxsYSgxOTk0KQ0KMTk5NTpbQ2luZW1hXSBIZWFydGJlZXBzKDE5ODEpDQoxOTk1OltDaW5lbWFdIFRoZSBNdW1teSdzIEN1cnNlKDE5NDQpDQoxOTk1IChEZWMpOltTcGFjZV0gU29sYXIgYW5kIEhlbGlvc3BoZXJpYyBPYnNlcnZhdG9yeSAoU29ITykgd2FzIGxhdW5jaGVkIGluIERlY2VtYmVyIDE5OTUgYXMgYSBqb2ludCBtaXNzaW9uIGJldHdlZW4gdGhlIEV1cm9wZWFuIFNwYWNlIEFnZW5jeSAoRVNBKSBhbmQgTkFTQSwgU29ITyB3YXMgZGVzaWduZWQgdG8gb3JiaXQgdGhlIFN1biB0byBsZWFybiBhYm91dCB0aGUgc3RydWN0dXJlIG9mIHRoZSBzdGFy4oCZcyBpbnRlcmlvciBhbmQgaXRzIG91dGVyIGF0bW9zcGhlcmUsIGFzIHdlbGwgYXMgdG8gaW52ZXN0aWdhdGUgdGhlIGJlaGF2aW9yIG9mIHNvbGFyIHdpbmRzLiBJdCB3YXMgZXhwZWN0ZWQgdG8gY29tcGxldGUgaXRzIG1pc3Npb24gaW4gMTk5OC4gSW5zdGVhZCwgaXQgaXMgc3RpbGwgYWN0aXZlIHRvZGF5LCBhbmQgaXMgbm93IGxpa2VseSB0byBrZWVwIHdvcmtpbmcgdW50aWwgMjAyNSwgd2hlbiBpdCB3aWxsIGhhdmUgYmVlbiBpbiBzcGFjZSBmb3IgMzAgeWVhcnMuDQoxOTk1OltQaHlzaWNzXVtTcGFjZV1bUmVzZWFyY2hdIFByaW9yIHRvIDE5OTUsIHRoZW9yaXN0cyBiZWxpZXZlZCB0aGF0IHRoZXJlIHdlcmUgZml2ZSBjb25zaXN0ZW50IHZlcnNpb25zIG9mIHN1cGVyc3RyaW5nIHRoZW9yeSAodHlwZSBJLCB0eXBlIElJQSwgdHlwZSBJSUIsIGFuZCB0d28gdmVyc2lvbnMgb2YgaGV0ZXJvdGljIHN0cmluZyB0aGVvcnkpLiBUaGlzIHVuZGVyc3RhbmRpbmcgY2hhbmdlZCBpbiAxOTk1IHdoZW4gRWR3YXJkIFdpdHRlbiBzdWdnZXN0ZWQgdGhhdCB0aGUgZml2ZSB0aGVvcmllcyB3ZXJlIGp1c3Qgc3BlY2lhbCBsaW1pdGluZyBjYXNlcyBvZiBhbiBlbGV2ZW4tZGltZW5zaW9uYWwgdGhlb3J5IGNhbGxlZCBNLXRoZW9yeS4gV2l0dGVuJ3MgY29uamVjdHVyZSB3YXMgYmFzZWQgb24gdGhlIHdvcmsgb2YgYSBudW1iZXIgb2Ygb3RoZXIgcGh5c2ljaXN0cywgaW5jbHVkaW5nIEFzaG9rZSBTZW4sIENocmlzIEh1bGwsIFBhdWwgVG93bnNlbmQsIGFuZCBNaWNoYWVsIER1ZmYuIEhpcyBhbm5vdW5jZW1lbnQgbGVkIHRvIGEgZmx1cnJ5IG9mIHJlc2VhcmNoIGFjdGl2aXR5IG5vdyBrbm93biBhcyB0aGUgc2Vjb25kIHN1cGVyc3RyaW5nIHJldm9sdXRpb24uDQoxOTk1OltDcmltZV1bSW5kaWFdIE11cmRlciBvZiBNdW1iYWktYmFzZWQgYnVpbGRlciBQcmFkZWVwIEphaW4gYnkgQWJ1IFNhbGVtDQoxOTk1OiBGb3J0dW5lIEhvdGVscyBpbiBJbmRpYSBpcyBvd25lZCBieSBpdHMgcGFyZW50IGNvbXBhbnksIElUQyBMdGQuLCB3aGljaCBlc3RhYmxpc2hlZCBGb3J0dW5lIEhvdGVscyBpbiAxOTk1IGFzIGEgc3Vic2lkaWFyeSB0byBwcm92aWRlIG1pZC1tYXJrZXQgdG8gdXBzY2FsZSBob3NwaXRhbGl0eSBzZXJ2aWNlcy4gSG93ZXZlciwgYSBzZXBhcmF0ZSBncm91cCwgRm9ydHVuZSBHcm91cCBvZiBIb3RlbHMsIGJhc2VkIGluIHRoZSBVbml0ZWQgQXJhYiBFbWlyYXRlcyAoVUFFKSBhbmQgZm91bmRlZCBieSBQcmF2ZWVuIFNoZXR0eSwgYWxzbyBvcGVyYXRlcyBhIGRpZmZlcmVudCBzZXQgb2YgaG90ZWxzIGluIHRoYXQgcmVnaW9uLg0KMTk5NTpbVUtdIENhbWlsbGEgaXMgUXVlZW4gb2YgdGhlIFVuaXRlZCBLaW5nZG9tIGFuZCAxNCBvdGhlciBDb21tb253ZWFsdGggcmVhbG1zIGFzIHRoZSB3aWZlIG9mIEtpbmcgQ2hhcmxlcyBJSUkuIENhbWlsbGEgd2FzIHJhaXNlZCBpbiBFYXN0IFN1c3NleCBhbmQgU291dGggS2Vuc2luZ3RvbiBpbiBFbmdsYW5kIGFuZCBlZHVjYXRlZCBpbiBFbmdsYW5kLCBTd2l0emVybGFuZCBhbmQgRnJhbmNlLiBJbiAxOTczLCBzaGUgbWFycmllZCBCcml0aXNoIEFybXkgb2ZmaWNlciBBbmRyZXcgUGFya2VyIEJvd2xlczsgdGhleSBkaXZvcmNlZCBpbiAxOTk1Lg0KDQoxOTk2OltHZW9Qb2xpdGljc11bQnVzaW5lc3NdIE1vbmdvbGlhIHdhcyBncmFudGVkIG9ic2VydmVyIHN0YXR1cyB0byBUUkFDRUNBLg0KMTk5NiAoNyBBdWd1c3QpOltSZXNlYXJjaF1bU3BhY2VdIE5BU0EgYW5ub3VuY2VkIGZvc3NpbGl6ZWQgZXZpZGVuY2Ugb2YgYW5jaWVudCBsaWZlIGluIG1ldGVvcml0ZSBBTEggODQwMDEgZnJvbSBNYXJzLg0KMTk5NiAoT2N0IDI3KTpbUmVzZWFyY2hdW1NwYWNlXSBnZW5ldGljaXN0cyBzaG93ZWQgZXZpZGVuY2UgdGhhdCBtYW55IGdlbmVzIGFyZSBtdWNoIG9sZGVyIHRoYW4gdGhlIGZvc3NpbCByZWNvcmQgd291bGQgaW5kaWNhdGUuIFN1YnNlcXVlbnQgc3R1ZGllcyBoYXZlIHN0cmVuZ3RoZW5lZCB0aGlzIGZpbmRpbmcuDQoxOTk2OltCdXNpbmVzc11bR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2hlbiB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4gc2lnbmVkIHRoZSBUcmVhdHkgb24gRGVlcGVuaW5nIE1pbGl0YXJ5IFRydXN0IGluIEJvcmRlciBSZWdpb25zIGluIFNoYW5naGFpLiBPbiAyNCBBcHJpbCAxOTk3IHRoZSBzYW1lIGNvdW50cmllcyBzaWduZWQgdGhlIFRyZWF0eSBvbiBSZWR1Y3Rpb24gb2YgTWlsaXRhcnkgRm9yY2VzIGluIEJvcmRlciBSZWdpb25zIGluIGEgbWVldGluZyBpbiBNb3Njb3csIFJ1c3NpYS4gT24gMjAgTWF5IDE5OTcgUnVzc2lhbiBQcmVzaWRlbnQgQm9yaXMgWWVsdHNpbiBhbmQgQ2hpbmVzZSBQcmVzaWRlbnQgSmlhbmcgWmVtaW4gc2lnbmVkIGEgZGVjbGFyYXRpb24gb24gYSAibXVsdGlwb2xhciB3b3JsZCIuDQoxOTk2OiAxOTk2IE1vdW50IEV2ZXJlc3QgRGlzYXN0ZXIsIGluIHdoaWNoIGVpZ2h0IHBlb3BsZSBkaWVkIHdoaWxlIG9uIGFuIGV4cGVkaXRpb24gdG8gc2NhbGUgdGhlIGluZmFtb3VzIHN1bW1pdC4gT25lIG9mIHRoZSBjbGltYmVycyB3aG8gbG9zdCBoaXMgbGlmZSB3YXMgQW5keSBIYXJyaXMsIHBsYXllZCBpbiBFdmVyZXN0IGJ5IE1hcnRpbiBIZW5kZXJzb24uIEhhcnJpcyB3YXMgb25lIG9mIHRoZSBndWlkZXMgZm9yIHRoZSBBZHZlbnR1cmUgQ29uc3VsdGFudHMsIGFsb25nIHdpdGggUm9iIEhhbGwgYW5kIE1pa2UgR3Jvb20uIEluIHRoZSBmaWxtLCBoZSBhcHBlYXJzIHRvIGRpZSB3aGlsZSB3aXRoIEhhbGwsIGZhbGxpbmcgb2ZmIGEgY2xpZmYgYWZ0ZXIgYSBoYWxsdWNpbmF0aW9uLiBCdXQgUm9iIEhhbGwgbmV2ZXIgcmVwb3J0ZWQgdGhpcywgYW5kIHNpbmNlIGhlIGRpZWQgc2hvcnRseSB0aGVyZWFmdGVyLCB0aGVyZSBpcyBubyB3YXkgdG8gY29uZmlybSB0aGUgY2lyY3Vtc3RhbmNlcyBzdXJyb3VuZGluZyBIYXJyaXMnIGRlYXRoLg0KMTk5NjpbQ29tcHV0aW5nXVtRdWFudHVtXSAgTG92IEdyb3ZlciBkZXZpc2VkIGFuIGFsZ29yaXRobSAoR3JvdmVyJ3MgYWxnb3JpdGhtKSB0aGF0IGNvdWxkIHNlYXJjaCBhbiB1bnNvcnRlZCBkYXRhYmFzZSBpbiBzcXVhcmUgcm9vdCB0aW1lIG9uIGEgcXVhbnR1bSBjb21wdXRlciwgd2hpY2ggd291bGQgb3V0cGVyZm9ybSBhbnkgY2xhc3NpY2FsIGFsZ29yaXRobS4NCjE5OTY6W1VTXSBCYXJhY2sgT2JhbWEgd2FzIGVsZWN0ZWQgdG8gdGhlIElsbGlub2lzIFNlbmF0ZSwgc3VjY2VlZGluZyBEZW1vY3JhdGljIFN0YXRlIFNlbmF0b3IgQWxpY2UgUGFsbWVyIGZyb20gSWxsaW5vaXMncyAxM3RoIERpc3RyaWN0LCB3aGljaCwgYXQgdGhhdCB0aW1lLCBzcGFubmVkIENoaWNhZ28gU291dGggU2lkZSBuZWlnaGJvcmhvb2RzIGZyb20gSHlkZSBQYXJr4oCTS2Vud29vZCBzb3V0aCB0byBTb3V0aCBTaG9yZSBhbmQgd2VzdCB0byBDaGljYWdvIExhd24uDQoxOTk2OltVS10gQ2hhcmxlcyBJSUkgYW5kIERpYW5hIGdldHMgZGl2b3JjZWQuDQoxOTk2IChKYW4gMjUpOltCb29rXSBQZXRlciBMeW5jaCAmIEpvaG4gUm90aGNoaWxkJ3MgTGVhcm4gdG8gRWFybjogQSBCZWdpbm5lcidzIEd1aWRlIHRvIHRoZSBCYXNpY3Mgb2YgSW52ZXN0aW5nIGFuZCBCdXNpbmVzcy4NCjE5OTYgKEphbik6W0NyaW1lXVtJbmRpYV0gQW5lZXMgSWJyYWhpbSBhcnJlc3RlZCBpbiBCYWhyYWluLCBzaGlmdGVkIHRvIER1YmFpIGFsbGVnZWRseSBvbiB0aGUgaW50ZXJ2ZW50aW9uIG9mIHNvbWUgb2YgRHViYWkncyBydWxpbmcgbm90YWJsZXMsIGFuZCB3YXMgdGhlbiBhbGxvd2VkIHRvIHNsaXAgYXdheSB0byBLYXJhY2hpLCBQYWtpc3Rhbi4NCjE5OTY6IE5hdGlvbmFsIEFlcm9zcGFjZSBMYWJvcmF0b3JpZXMsIEluZGlhIGluZGlnZW5vdXNseSBidWlsdCBGTE9TT0xWRVIsIEluZGlhJ3MgZmlyc3Qgc3VwZXJjb21wdXRlci4gSXQgd2FzIHJlcGxpY2F0ZWQgYW5kIGluc3RhbGxlZCBhdCBJQ0FEIE1vc2NvdyBpbiAxOTkxIHVuZGVyIFJ1c3NpYW4gY29sbGFib3JhdGlvbi4NCjE5OTY6IEluZGlhL1Bha2lzdGFuL1NyaSBMYW5rYSAxOTk2Lg0KMTk5NjpbQ29tcHV0aW5nXVt3d3ddIE1hcmlvIDY0IGdhbWUgcmFuIDEwMCBtaWxsaW9uIGNhbGN1bGF0aW9ucyBwZXIgc2Vjb25kLCA1NDAgbWlsbGlvbiAoSGFsZi1MaWZlKSBpbiAxOTk4LCBNaW5lY3JhZnQgKDIwMTEpIHJ1bm5pbmcgMTAwIGJpbGxpb24gY2FsY3VsYXRpb25zLCBDeWJlcnB1bmsgMjA3NyAobW9zdCByZWFsaXN0aWMgdmlkZW8gZ2FtZSAyMDI0KSwgeW91IG5lZWQgYSBncmFwaGljcyBjYXJkIHRoYXQgY2FuIHBlcmZvcm0gYXJvdW5kIDM2IHRyaWxsaW9uIGNhbGMgcGVyIHNlY29uZC4NCjE5OTY6IFByb2YgTWFsY29sbSBIZWF0aC4gUHJvZmVzc29yIG9mIEdyZWVrIExhbmd1YWdlIGFuZCBMaXRlcmF0dXJlIEBsZWVkcy5hYy51aywgdHJhbnNsYXRlZCBBcmlzdG90bGUncyBQb2V0aWNzLg0KMTk5NjogVGhlIDU2SyBtb2RlbSB3YXMgaW52ZW50ZWQgYnkgRHIuIEJyZW50IFRvd25zaGVuZA0KMTk5NiAoRmViIDEzKTogTmVwYWxlc2UgQ2l2aWwgV2FyIHN0YXJ0ZWQuIFRoZSBNYW9pc3QgUmViZWxsaW9uIChsYWJlbGxlZCB0aGUgUGVvcGxlJ3MgV2FyIGJ5IHRoZW4gQ1BOKE1hb2lzdCkpIHdhcyBhbiBhcm1lZCBjb25mbGljdCBhZ2FpbnN0IEdvdmVybm1lbnQgb2YgTmVwYWwgKHRoZW4gSE1HIG9mIE5lcGFsKSBmb3VnaHQgZnJvbSAxOTk2IHRvIDIwMDYuIFRoZSByZWJlbGxpb24gd2FzIGxhdW5jaGVkIGJ5IHRoZSBDb21tdW5pc3QgUGFydHkgb2YgTmVwYWwgKE1hb2lzdCkgb24gMTMgRmVicnVhcnkgMTk5NiB3aXRoIHRoZSBtYWluIGFpbSBvZiBvdmVydGhyb3dpbmcgdGhlIE5lcGFsZXNlIG1vbmFyY2h5IGFuZCBlc3RhYmxpc2hpbmcgYSAnUGVvcGxlJ3MgUmVwdWJsaWMnLiBJdCBlbmRlZCB3aXRoIHRoZSBDb21wcmVoZW5zaXZlIFBlYWNlIEFjY29yZCBzaWduZWQgb24gMjEgTm92ZW1iZXIgMjAwNi4NCjE5OTYgKE1hciAxKTogW0dlb1BvbGl0aWNzXSBUaGUgQXNpYeKAk0V1cm9wZSBNZWV0aW5nIChBU0VNKSBpcyBhbiBBc2lhbuKAk0V1cm9wZWFuIHBvbGl0aWNhbCBkaWFsb2d1ZSBmb3J1bSB0byBlbmhhbmNlIHJlbGF0aW9ucyBhbmQgdmFyaW91cyBmb3JtcyBvZiBjb29wZXJhdGlvbiBiZXR3ZWVuIGl0cyBwYXJ0bmVycy4gSXQgd2FzIG9mZmljaWFsbHkgZXN0YWJsaXNoZWQgYXQgdGhlIDFzdCBBU0VNIFN1bW1pdCAoQVNFTTEpIGluIEJhbmdrb2ssIFRoYWlsYW5kLCBieSB0aGUgdGhlbiAxNSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aGUgRXVyb3BlYW4gQ29tbWlzc2lvbiwgdGhlIHRoZW4gNyBNZW1iZXIgU3RhdGVzIG9mIHRoZSBBc3NvY2lhdGlvbiBvZiBTb3V0aGVhc3QgQXNpYW4gTmF0aW9ucyAoQVNFQU4pLCBhbmQgdGhlIGluZGl2aWR1YWwgY291bnRyaWVzIG9mIENoaW5hLCBKYXBhbiwgYW5kIFNvdXRoIEtvcmVhLiBBIHNlcmllcyBvZiBlbmxhcmdlbWVudHMgc2F3IGFkZGl0aW9uYWwgRVUgTWVtYmVyIFN0YXRlcyBqb2luIGFzIHdlbGwgYXMgSW5kaWEsIE1vbmdvbGlhLCBQYWtpc3RhbiBhbmQgdGhlIEFTRUFOIFNlY3JldGFyaWF0IGluIDIwMDgsIEF1c3RyYWxpYSwgTmV3IFplYWxhbmQgYW5kIFJ1c3NpYSBpbiAyMDEwLCBCYW5nbGFkZXNoLCBOb3J3YXksIGFuZCBTd2l0emVybGFuZCBpbiAyMDEyLCBhcyB3ZWxsIGFzIENyb2F0aWEsIGFuZCBLYXpha2hzdGFuIGluIDIwMTQuDQoxOTk2IChBcHIgMjYpOiBbR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2l0aCB0aGUgc2lnbmluZyBvZiB0aGUgVHJlYXR5IG9uIERlZXBlbmluZyBNaWxpdGFyeSBUcnVzdCBpbiBCb3JkZXIgUmVnaW9ucyBpbiBTaGFuZ2hhaSBieSB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4uIExhdGVyIG9uIEp1biAxNSwgMjAwMSBpdCBnb3QgcmVuYW1lZCBhcyBTaGFuZ2hhaSBDb29wZXJhdGlvbiBPcmdhbmlzYXRpb24gKFNDTykgb3IgU2hhbmdoYWkgUGFjdCANCjE5OTYgKE1heSAxNik6IEF0YWwgQmloYXJpIFZhanBheWVlIGJlY29tZXMgUE0gb2YgSW5kaWEgZm9yIHRoZSB2ZXJ5IGZpcnN0IHRpbWUgZm9yIDE2IGRheXMuDQoxOTk2IChKdW4gMSk6IEF0YWwgQmloYXJpIFZhanBheWVlIHJlc2lnbnMuIEhEIERldmUgR293ZGEgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NiAoQXVnIDE0KTpbcmVzZWFyY2hdW2V4dHJlbWVdIEthcmVuIEVsaXphYmV0aCBXZXR0ZXJoYWhuIChPY3RvYmVyIDE2LCAxOTQ4IOKAkyBKdW5lIDgsIDE5OTcpLCBhbHNvIGtub3duIGFzIEthcmVuIFdldHRlcmhhaG4gSmVubmV0dGUsIHdhcyBhbiBBbWVyaWNhbiBwcm9mZXNzb3Igb2YgY2hlbWlzdHJ5IGF0IERhcnRtb3V0aCBDb2xsZWdlLCBOZXcgSGFtcHNoaXJlLCB3aG8gc3BlY2lhbGl6ZWQgaW4gdG94aWMgbWV0YWwgZXhwb3N1cmUuIFNoZSBkaWVkIG9mIG1lcmN1cnkgcG9pc29uaW5nIGF0IHRoZSBhZ2Ugb2YgNDggZHVlIHRvIGFjY2lkZW50YWwgZXhwb3N1cmUgdG8gdGhlIGV4dHJlbWVseSB0b3hpYyBvcmdhbmljIG1lcmN1cnkgY29tcG91bmQgZGltZXRoeWxtZXJjdXJ5IChIZyhDSDMpMikuIFByb3RlY3RpdmUgZ2xvdmVzIGluIHVzZSBhdCB0aGUgdGltZSBvZiB0aGUgaW5jaWRlbnQgcHJvdmlkZWQgaW5zdWZmaWNpZW50IHByb3RlY3Rpb24sIGFuZCBleHBvc3VyZSB0byBvbmx5IGEgc2luZ2xlIGRyb3Agb3IgdHdvIG9mIHRoZSBkaW1ldGh5bG1lcmN1cnkgYWJzb3JiZWQgdGhyb3VnaCB0aGUgZ2xvdmVzIHByb3ZlZCB0byBiZSBmYXRhbCBhZnRlciBsZXNzIHRoYW4gYSB5ZWFyLiBUZXN0cyBsYXRlciByZXZlYWxlZCB0aGF0IGRpbWV0aHlsbWVyY3VyeSBjYW4sIGluIGZhY3QsIHJhcGlkbHkgcGVybWVhdGUgc2V2ZXJhbCBraW5kcyBvZiBsYXRleCBnbG92ZXMgYW5kIGVudGVyIHRoZSBza2luIHdpdGhpbiBhYm91dCAxNSBzZWNvbmRzLiBIZXIgZXhwb3N1cmUgd2FzIGxhdGVyIGNvbmZpcm1lZCBieSBoYWlyIGFuYWx5c2lzLCB3aGljaCBzaG93ZWQgYSBkcmFtYXRpYyBqdW1wIGluIG1lcmN1cnkgbGV2ZWxzIDE3IGRheXMgYWZ0ZXIgdGhlIGluaXRpYWwgYWNjaWRlbnQsIHBlYWtpbmcgYXQgMzkgZGF5cywgZm9sbG93ZWQgYnkgYSBncmFkdWFsIGRlY2xpbmUuIEFwcHJveGltYXRlbHkgdGhyZWUgbW9udGhzIGFmdGVyIHRoZSBpbml0aWFsIGFjY2lkZW50IFdldHRlcmhhaG4gYmVnYW4gZXhwZXJpZW5jaW5nIGJyaWVmIGVwaXNvZGVzIG9mIGFiZG9taW5hbCBkaXNjb21mb3J0IGFuZCBub3RpY2VkIHNpZ25pZmljYW50IHdlaWdodCBsb3NzLiBUaGUgbW9yZSBkaXN0aW5jdGl2ZSBuZXVyb2xvZ2ljYWwgc3ltcHRvbXMgb2YgbWVyY3VyeSBwb2lzb25pbmcsIGluY2x1ZGluZyBsb3NzIG9mIGJhbGFuY2UgYW5kIHNsdXJyZWQgc3BlZWNoLCBhcHBlYXJlZCBpbiBKYW51YXJ5IDE5OTcsIGZpdmUgbW9udGhzIGFmdGVyIHRoZSBhY2NpZGVudC4gSGVyIGJsb29kIGFuZCB1cmluYXJ5IG1lcmN1cnkgY29udGVudCB3ZXJlIG1lYXN1cmVkIGF0IDQsMDAwIM68Zy9MIGFuZCAyMzQgzrxnL0wsIHJlc3BlY3RpdmVseeKAlGJvdGggbWFueSB0aW1lcyB0aGVpciByZXNwZWN0aXZlIHRveGljIHRocmVzaG9sZHMgb2YgMjAwIM68Zy9MIGFuZCA1MCDOvGcvTCAoYmxvb2QgYW5kIHVyaW5lIHJlZmVyZW5jZSByYW5nZXMgYXJlIDEgdG8gOCDOvGcvTCBhbmQgMSB0byA1IM68Zy9MKS4NCjE5OTYgKERlYyA0IDA2OjU4OjA3IFVUQyk6W1NwYWNlXVtNYXJzXVtFYXJ0aF0gTGF1bmNoIG9mIE1hcnMgUGF0aGZpbmRlciBvbiBEZWx0YSBJSSA3OTI1ICgjRDI0MCkNCnJvY2tldCBmcm9tIENhcGUgQ2FuYXZlcmFsIFNMQy0xNy4gVG8gcHJvdmUgdGhhdCB0aGUgZGV2ZWxvcG1lbnQgb2YgImZhc3RlciwgYmV0dGVyIGFuZCBjaGVhcGVyIiBzcGFjZWNyYWZ0IHdhcyBwb3NzaWJsZSAod2l0aCB0aHJlZSB5ZWFycyBmb3IgZGV2ZWxvcG1lbnQgYW5kIGEgY29zdCB1bmRlciAkMTUwIG1pbGxpb24gZm9yIHRoZSBsYW5kZXIsIGFuZCAkMjUgbWlsbGlvbiBmb3IgdGhlIHJvdmVyKS4gVG8gc2hvdyB0aGF0IGl0IHdhcyBwb3NzaWJsZSB0byBzZW5kIGEgbG9hZCBvZiBzY2llbnRpZmljIGluc3RydW1lbnRzIHRvIGFub3RoZXIgcGxhbmV0IHdpdGggYSBzaW1wbGUgc3lzdGVtIGFuZCBhdCBvbmUtZmlmdGVlbnRoIHRoZSBjb3N0IG9mIGEgVmlraW5nIG1pc3Npb24uIChGb3IgY29tcGFyaXNvbiwgdGhlIFZpa2luZyBtaXNzaW9ucyBjb3N0ICQ5MzUgbWlsbGlvbiBpbiAxOTc0IG9yICQzLjUgYmlsbGlvbiBpbiAxOTk3IGRvbGxhcnMuKS4gVG8gZGVtb25zdHJhdGUgTkFTQSdzIGNvbW1pdG1lbnQgdG8gbG93LWNvc3QgcGxhbmV0YXJ5IGV4cGxvcmF0aW9uIGJ5IGZpbmlzaGluZyB0aGUgbWlzc2lvbiB3aXRoIGEgdG90YWwgZXhwZW5kaXR1cmUgb2YgJDI4MCBtaWxsaW9uLCBpbmNsdWRpbmcgdGhlIGxhdW5jaCB2ZWhpY2xlIGFuZCBtaXNzaW9uIG9wZXJhdGlvbnMuDQoxOTk2OiBhIHJhaWQgb24gdGhlIEFuaW1hbCBIdXNiYW5kcnkgZGVwYXJ0bWVudOKAmXMgb2ZmaWNlcyBpbiBDaGFpYmFzYSwgQmloYXIgdW5mb2xkZWQgdGhlIFJzLjk1MCBjcm9yZSBmb2RkZXIgc2NhbSwgaW4gd2hpY2ggdGhlIEJpaGFyIGNoaWVmIG1pbmlzdGVyIExhbHUgUHJhc2FkIFlhZGF2IGNhdGNoIHVwIGluIGEgbGlmZWxvbmcgdHVzc2xlIHdpdGggdGhlIENCSS4NCjE5OTY6W0Jvb2tdW0FkdmVudHVyZV0gSm9uIEtyYWthdWVyJ3MgSW50byB0aGUgV2lsZC4NCjE5OTY6W0NvbXB1dGluZ10gVGhlIFZpZGVvTEFOIHNvZnR3YXJlIG9yaWdpbmF0ZWQgYXMgYSBGcmVuY2ggYWNhZGVtaWMgcHJvamVjdC4gVkxDIHVzZWQgdG8gc3RhbmQgZm9yICJWaWRlb0xBTiBDbGllbnQiIHdoZW4gVkxDIHdhcyBhIGNsaWVudCBvZiB0aGUgVmlkZW9MQU4gcHJvamVjdCwgb2ZmaWNpYWxseSByZWxlYXNlZCB1bmRlciBHTlUgR1BMIG9uIDIwMDEgKEZlYiAxKS4NCjE5OTY6W01lbWVdIERhbmNpbmcgQmFieSBTY3JlZW5zYXZlcg0KMTk5NjpbU3BhY2VYXSBUaGUgZW50aXJlIHByb2Nlc3MgZm9yIHRoZSBKYW1lcyBXZWJiIFNwYWNlIFRlbGVzY29wZSAoSldTVCkgZnJvbSBpbml0aWFsIGNvbmNlcHQgdG8gbGF1bmNoIHNwYW5uZWQgYXBwcm94aW1hdGVseSAyNSB5ZWFycywgd2l0aCBpbml0aWFsIGRlc2lnbnMgYmVnaW5uaW5nIGluIDE5OTYgYW5kIHRoZSB0ZWxlc2NvcGUgbGF1bmNoaW5nIGluIDIwMjEsIGJ1dCBhIHNpZ25pZmljYW50IHBvcnRpb24gb2YgdGhpcyB3YXMgc3BlbnQgaW4gZGVzaWduLCB0ZXN0aW5nLCBhbmQgb3ZlcmNvbWluZyBtYWpvciByZWRlc2lnbnMgYW5kIGRlbGF5cywgbm90IGp1c3QgYXNzZW1ibHkuIA0KMTk5NiAoRmViIDI4KTpbRGVsaGldIEluZGlyYXB1cmFtLCBHaGF6aWFiYWQgd2FzIGVzdGQgd2hlbiBpdHMgZm91bmRhdGlvbiBzdG9uZSAoS2FsYSBQYXRoYXIpIHdhcyBpbmF1Z3VyYXRlZCBieSBTaCBNb3RpbGFsIFZvcmEsIHRoZW4gR292ZXJub3Igb2YgVVAuICgyMDIxKSBJJ3B1cmFtIEV4dG4gdG8gYmUgYnVpbHQgb24gMTIgYWNyZXMgb25seSwgY29uY2VpdmVkIGluIDIwMDQuDQoxOTk2OltCb29rXVtNaWxpdGFyeV1bQ3VsdHVyZV1bRVVdW1VTQV0gR2VvcmdlIFIuUi4gTWFydGluIGlzIHRoZSBBbWVyaWNhbiBhdXRob3Igb2YgdGhlIGVwaWMgZmFudGFzeSBib29rIHNlcmllcyBBIFNvbmcgb2YgSWNlIGFuZCBGaXJlLCB3aGljaCBiZWdhbiB3aXRoIEEgR2FtZSBvZiBUaHJvbmVzICgxOTk2KSBhbmQgc2VydmVkIGFzIHRoZSBiYXNpcyBmb3IgSEJPJ3MgbWFzc2l2ZWx5IHBvcHVsYXIgR2FtZSBvZiBUaHJvbmVzIFRWIHNlcmllcy4gQSBTb25nIG9mIEljZSBhbmQgRmlyZSBpcyBhIHNlcmllcyBvZiBoaWdoIGZhbnRhc3kgbm92ZWxzIGJ5IHRoZSBBbWVyaWNhbiBhdXRob3IgR2VvcmdlIFIuIFIuIE1hcnRpbi4gTWFydGluIGJlZ2FuIHdyaXRpbmcgdGhlIGZpcnN0IHZvbHVtZSwgQSBHYW1lIG9mIFRocm9uZXMsIGluIDE5OTEsIGFuZCBwdWJsaXNoZWQgaXQgaW4gMTk5Ni4gTWFydGluLCB3aG8gb3JpZ2luYWxseSBlbnZpc2lvbmVkIHRoZSBzZXJpZXMgYXMgYSB0cmlsb2d5LCBoYXMgcmVsZWFzZWQgZml2ZSBvdXQgb2Ygc2V2ZW4gcGxhbm5lZCB2b2x1bWVzLiANCg0KW0dlbmVyYXRpb25dIE1pbGxlbm5pYWwgZ2VuZXJhdGlvbiAoMTk4MeKAkzE5OTYpIGVuZHM7IGxhc3RlZCBmb3IgMTUgeWVhcnMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICA1MCB5ZWFycyBvZiBJbmRlcGVuZGVudCBJbmRpYSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSANCg0KW0dlbmVyYXRpb25dIEdlbiBaICgxOTk34oCTMjAxMikgc3RhcnRzOyBhbmQgZXhpc3RzIGZvciBuZXh0IDE1IHllYXJzLg0KDQoxOTk3OltXaG9dW1Jlc2VhcmNoXVtDb21wdXRpbmddW1RlY2hdW0N1bHR1cmVdIFZMQyBNZWRpYSBQbGF5ZXIgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBzdHVkZW50cyBhdCB0aGUgRnJlbmNoIGVuZ2luZWVyaW5nIHNjaG9vbCDDiWNvbGUgQ2VudHJhbGUgUGFyaXMgaW4gMTk5Ni4gV2hpbGUgaXQgc3RhcnRlZCBhcyBhbiBhY2FkZW1pYyBwcm9qZWN0IChWaWRlb0xBTikgdG8gc3RyZWFtIHZpZGVvIG92ZXIgYSBjYW1wdXMgbmV0d29yaywgaXRzIGRldmVsb3BtZW50IGFuZCBtb2Rlcm5pemF0aW9uIHdlcmUgbGF0ZXIgbGVkIGJ5IEplYW4tQmFwdGlzdGUgS2VtcGYuIA0KMTk5NzpbUmVzZWFyY2hdW1NwYWNlXSAyOSBKdWx5IDE5OTc6IGEgTkFTQSBzY2llbnRpc3QgYW5ub3VuY2VkIGV2aWRlbmNlIG9mIGZvc3NpbGl6ZWQgbWljcm9zY29waWMgbGlmZSBmb3JtcyBpbiBhIG1ldGVvcml0ZSBub3QgZnJvbSBhbnkga25vd24gcGxhbmV0Lg0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgR3JvdXAgb2YgRWlnaHQgKEc4KSB3YXMgYW4gaW50ZXJnb3Zlcm5tZW50YWwgcG9saXRpY2FsIGZvcnVtIGZyb20gMTk5NyB0byAyMDE0LCBmb3JtZWQgYnkgaW5jb3Jwb3JhdGluZyBSdXNzaWEgaW50byB0aGUgRzcuIFRoZSBHOCBiZWNhbWUgdGhlIEc3IGFnYWluIGFmdGVyIFJ1c3NpYSB3YXMgZXhwZWxsZWQgaW4gMjAxNCBhZnRlciB0aGUgUnVzc2lhbiBhbm5leGF0aW9uIG9mIENyaW1lYS4gRm91bmRlZDogMTk5NywgRGVudmVyLCBDb2xvcmFkbywgVW5pdGVkIFN0YXRlcw0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBGb3VuZGVkOiA2IEp1bmUgMTk5NywgVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiAoQklNU1RFQykgaXMgYW4gaW50ZXJuYXRpb25hbCBvcmdhbml6YXRpb24gb2Ygc2V2ZW4gU291dGggQXNpYW4gYW5kIFNvdXRoZWFzdCBBc2lhbiBuYXRpb25zLCBob3VzaW5nIDEuNzMgYmlsbGlvbiBwZW9wbGUgYW5kIGhhdmluZyBhIGNvbWJpbmVkIGdyb3NzIGRvbWVzdGljIHByb2R1Y3Qgb2YgVVMkNS4yIHRyaWxsaW9uLg0KMTk5NzpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gYnVpbHQgdGhlIGZpcnN0IGV4cGVyaW1lbnRhbCBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCBjb3VsZCBtYW5pcHVsYXRlIDcgcXViaXRzIHVzaW5nIG51Y2xlYXIgbWFnbmV0aWMgcmVzb25hbmNlIChOTVIpIHRlY2huaXF1ZXMuDQoxOTk3IChKdWwgNCk6W1NwYWNlXVtNYXJzXSBUaGUgTWFycyBQYXRoZmluZGVyIGVuZHVyZWQgYSAzMC1zZWNvbmQgY29tbXVuaWNhdGlvbnMgYmxhY2tvdXQgYXMgaXQgZW50ZXJlZCBNYXJzJyBhdG1vc3BoZXJlLiBJdCBsYW5kZWQgYXQgQXJlcyBWYWxsaXMsIENocnlzZSBQbGFuaXRpYSwgTWFycyAxOcKwN+KAsjQ44oCzTiAzM8KwMTPigLIxMuKAs1cuIE1hcnMgUGF0aGZpbmRlciAoTUVTVVIgUGF0aGZpbmRlcikgaXMgYW4gQW1lcmljYW4gcm9ib3RpYyBzcGFjZWNyYWZ0IHRoYXQgbGFuZGVkIGEgYmFzZSBzdGF0aW9uIHdpdGggYSByb3ZpbmcgcHJvYmUgb24gTWFycyBpbiAxOTk3LiBJdCBjb25zaXN0ZWQgb2YgYSBsYW5kZXIsIHJlbmFtZWQgdGhlIENhcmwgU2FnYW4gTWVtb3JpYWwgU3RhdGlvbiwgYW5kIGEgbGlnaHR3ZWlnaHQsIDEwLjYga2cgKDIzIGxiKSB3aGVlbGVkIHJvYm90aWMgTWFycyByb3ZlciBuYW1lZCBTb2pvdXJuZXIsIHRoZSBmaXJzdCByb3ZlciB0byBvcGVyYXRlIG91dHNpZGUgdGhlIEVhcnRo4oCTTW9vbiBzeXN0ZW0uDQoxOTk3OltCb29rXSBNaXRjaCBBbGJvbSdzIFR1ZXNkYXlzIHdpdGggTW9ycmllLg0KMTk5NzpbR2FtaW5nXSBHcmFuZCBUaGVmdCBBdXRvIChHVEEpIHJlbGVhc2VkIGJ5IERNQSBEZXNpZ24gKGxhdGVyIFJvY2tzdGFyIE5vcnRoKSBmb3IgUFMxLCBXaW5kb3dzIGFuZCBNUy1ET1M7IEdyYW5kIFRoZWZ0IEF1dG86IFZpY2UgQ2l0eSAoMjAwMik7IEdyYW5kIFRoZWZ0IEF1dG86IFNhbiBBbmRyZWFzICgyMDA0KTsgR3JhbmQgVGhlZnQgQXV0byBJViAoMjAwOCk7IEdyYW5kIFRoZWZ0IEF1dG8gViAoMjAxMyk7IEdyYW5kIFRoZWZ0IEF1dG86IFRoZSBUcmlsb2d5IOKAkyBUaGUgRGVmaW5pdGl2ZSBFZGl0aW9uICgyMDIxKQ0KMTk5NzogVGVra2VuIDMgd2FzIGRlc2lnbmVkIGJ5IEthdHN1aGlybyBIYXJhZGEgKE9zYWthLCBPc2FrYSBQcmVmZWN0dXJlLCBKYXBhbikgb2YgQmFuZGFpIE5hbWNvIEVudGVydGFpbm1lbnQgaGVhZHF1YXJ0ZXJlZCBhdCDFjHRhLCBUb2t5by4NCjE5OTcgKE1hciA2KTogW0dlb1BvbGl0aWNzXSBUaGUgSW5kaWFuIE9jZWFuIFJpbSBBc3NvY2lhdGlvbiwgZm9ybWVybHkga25vd24gYXMgdGhlIEluZGlhbiBPY2VhbiBSaW0gSW5pdGlhdGl2ZSBhbmQgdGhlIEluZGlhbiBPY2VhbiBSaW0gQXNzb2NpYXRpb24gZm9yIFJlZ2lvbmFsIENvb3BlcmF0aW9uLCBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBjb25zaXN0aW5nIG9mIDIzIHN0YXRlcyBib3JkZXJpbmcgdGhlIEluZGlhbiBPY2Vhbi4gVGhlIElPUkEgaXMgYSByZWdpb25hbCBmb3J1bSwgdHJpcGFydGl0ZSBpbiBuYXR1cmUsIGJyaW5naW5nIHRvZ2V0aGVyIHJlcHJlc2VudGF0aXZlcyBvZiBHb3Zlcm5tZW50LCBCdXNpbmVzcyBhbmQgQWNhZGVtaWEsIGZvciBwcm9tb3RpbmcgY28tb3BlcmF0aW9uIGFuZCBjbG9zZXIgaW50ZXJhY3Rpb24gYW1vbmcgdGhlbS4gSXQgaXMgYmFzZWQgb24gdGhlIHByaW5jaXBsZXMgb2YgT3BlbiBSZWdpb25hbGlzbSBmb3Igc3RyZW5ndGhlbmluZyBFY29ub21pYyBDb29wZXJhdGlvbiBwYXJ0aWN1bGFybHkgb24gVHJhZGUgRmFjaWxpdGF0aW9uIGFuZCBJbnZlc3RtZW50LCBQcm9tb3Rpb24gYXMgd2VsbCBhcyBTb2NpYWwgRGV2ZWxvcG1lbnQgb2YgdGhlIHJlZ2lvbi4gVGhlIENvb3JkaW5hdGluZyBTZWNyZXRhcmlhdCBvZiBJT1JBIGlzIGxvY2F0ZWQgYXQgRWJlbmUsIE1hdXJpdGl1cy4NCjE5OTcgKEFwciAyMSk6IEguRC4gRGV2ZSBHb3dkYSByZXNpZ25zLiBJbmRlciBLdW1hciBHdWpyYWwgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NyAoSnVuIDYpOiBbR2VvUG9saXRpY3NdIEJJTVNURUMgZm91bmRlZC4gVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBvZiBzZXZlbiBTb3V0aCBBc2lhbiBhbmQgU291dGhlYXN0IEFzaWFuIG5hdGlvbnMsIGhvdXNpbmcgMS43MyBiaWxsaW9uIHBlb3BsZSBhbmQgaGF2aW5nIGEgY29tYmluZWQgZ3Jvc3MgZG9tZXN0aWMgcHJvZHVjdCBvZiAkMy44IHRyaWxsaW9uLiBUaGUgQklNU1RFQyBtZW1iZXIgc3RhdGVzIOKAkyBCYW5nbGFkZXNoLCBCaHV0YW4sIEluZGlhLCBNeWFubWFyLCBOZXBhbCwgU3JpIExhbmthLCBhbmQgVGhhaWxhbmQg4oCTIGFyZSBhbW9uZyB0aGUgY291bnRyaWVzIGRlcGVuZGVudCBvbiB0aGUgQmF5IG9mIEJlbmdhbC4NCjE5OTcgKEp1biA4KTogRGVzcGl0ZSBhZ2dyZXNzaXZlIGNoZWxhdGlvbiB0aGVyYXB5LCBoZXIgY29uZGl0aW9uIHJhcGlkbHkgZGV0ZXJpb3JhdGVkLiBUaHJlZSB3ZWVrcyBhZnRlciB0aGUgZmlyc3QgbmV1cm9sb2dpY2FsIHN5bXB0b21zIGFwcGVhcmVkLCBXZXR0ZXJoYWhuIGxhcHNlZCBpbnRvIHdoYXQgYXBwZWFyZWQgdG8gYmUgYSB2ZWdldGF0aXZlIHN0YXRlIHB1bmN0dWF0ZWQgYnkgcGVyaW9kcyBvZiBleHRyZW1lIGFnaXRhdGlvbi4gT25lIG9mIGhlciBmb3JtZXIgc3R1ZGVudHMgc2FpZCB0aGF0ICJIZXIgaHVzYmFuZCBzYXcgdGVhcnMgcm9sbGluZyBkb3duIGhlciBmYWNlLiBJIGFza2VkIGlmIHNoZSB3YXMgaW4gcGFpbi4gVGhlIGRvY3RvcnMgc2FpZCBpdCBkaWRuJ3QgYXBwZWFyIHRoYXQgaGVyIGJyYWluIGNvdWxkIGV2ZW4gcmVnaXN0ZXIgcGFpbi4iIFdldHRlcmhhaG4gd2FzIHJlbW92ZWQgZnJvbSBsaWZlIHN1cHBvcnQgYW5kIHByb25vdW5jZWQgZGVhZCBvbiBKdW5lIDgsIDE5OTcsIHRlbiBtb250aHMgYWZ0ZXIgaGVyIGluaXRpYWwgZXhwb3N1cmUuIEluIHJlc3BvbnNlLCB0aGUgT2NjdXBhdGlvbmFsIFNhZmV0eSBhbmQgSGVhbHRoIEFkbWluaXN0cmF0aW9uIHJlY29tbWVuZGVkIHRoYXQgdGhlIHVzZSBvZiBkaW1ldGh5bG1lcmN1cnkgYmUgYXZvaWRlZCB1bmxlc3MgYWJzb2x1dGVseSBuZWNlc3NhcnkgYW5kIG1hbmRhdGVkIHRoZSB1c2Ugb2YgcGxhc3RpYy1sYW1pbmF0ZSBnbG92ZXMgKFNpbHZlclNoaWVsZCkgd2hlbiBoYW5kbGluZyB0aGlzIGNvbXBvdW5kLg0KMTk5NyAoSnVuIDEzKTpbSmFja10gQm9yZGVyDQoxOTk3IChKdW4gMjYpOltCb29rXSAzMllPIEouIEsuIFJvd2xpbmcgcHVibGlzaGVzIGhlciBmaXJzdCBIYXJyeSBQb3R0ZXIgYm9vaywgVGhlIFBoaWxvc29waGVyJ3MgU3RvbmU7IA0KVGhlIENoYW1iZXIgb2YgU2VjcmV0cyAoMiBKdWx5IDE5OTgpLA0KVGhlIFByaXNvbmVyIG9mIEF6a2FiYW4gKDggSnVseSAxOTk5KSwNClRoZSBHb2JsZXQgb2YgRmlyZSAoOCBKdWx5IDIwMDApLA0KVGhlIE9yZGVyIG9mIHRoZSBQaG9lbml4ICgsIDI3IEp1bmUgMjAwMyksDQpUaGUgSGFsZi1CbG9vZCBQcmluY2UgKDE2IEp1bHkgMjAwNSksDQpUaGUgRGVhdGhseSBIYWxsb3dzICgyMSBKdWx5IDIwMDcpDQoxOTk3IChBdWcgMjUpOltTcGFjZV0gQWR2YW5jZWQgQ29tcG9zaXRpb24gRXhwbG9yZXIgaXMgYSBOQVNBIEV4cGxvcmVyIHByb2dyYW0gc2F0ZWxsaXRlIGFuZCBzcGFjZSBleHBsb3JhdGlvbiBtaXNzaW9uIHRvIHN0dWR5IG1hdHRlciBjb21wcmlzaW5nIGVuZXJnZXRpYyBwYXJ0aWNsZXMgZnJvbSB0aGUgc29sYXIgd2luZCwgdGhlIGludGVycGxhbmV0YXJ5IG1lZGl1bSwgYW5kIG90aGVyIHNvdXJjZXMuDQoxOTk3IChTZXAgMTMpOiB0aGUgaW50cm9kdWN0b3J5IGVwaXNvZGUgb2YgU2hha3RpbWFuIHdhcyBhaXJlZCBvbiBEb29yZGFyc2hhbiAoSW5kaWEncyBuYXRpb25hbCB0ZWxldmlzaW9uIG5ldHdvcmspIGZyb20gMjcgU2VwdGVtYmVyIDE5OTcgdG8gMjcgTWFyY2ggMjAwNSwgb24gU3VuZGF5cyBhdCAxMiBub29uIElTVC4gVGhlIHRlbGVjYXN0IHNsb3QsIGhvd2V2ZXIgd2FzIHNoaWZ0ZWQgdG8gOTozMCBhLm0uIGZvciB0aGUgbGFzdCBlcGlzb2Rlcy4gDQoxOTk3IChTZXAgMjcgMTA6MjMgVVRDKTpbU3BhY2VdW01hcnNdIExhc3QgY29udGFjdCB3aXRoIE1hcnMgUGF0aGZpbmRlci4gTWlzc2lvbiBkdXJhdGlvbiAoTGF1bmNoIHRvIGxhc3QgY29udGFjdCk6IDkgbW9udGhzLCAyMyBkYXlzLg0KMTk5NyAoT2N0IDMxKTpbQm9va10gRG9uYWxkIFRydW1wJ3MgVHJ1bXA6IFRoZSBBcnQgb2YgdGhlIENvbWViYWNrOyBUaGUgQW1lcmljYSBXZSBEZXNlcnZlICgyMDAwKTsgVHJ1bXA6IFRoaW5rIExpa2UgYSBCaWxsaW9uYWlyZTogRXZlcnl0aGluZyBZb3UgTmVlZCB0byBLbm93IEFib3V0IFN1Y2Nlc3MsIFJlYWwgRXN0YXRlLCBhbmQgTGlmZSAoMjAwNCk7IFdoeSBXZSBXYW50IFlvdSB0byBCZSBSaWNoICgyMDA2KTsgVHJ1bXA6IFRoZSBCZXN0IFJlYWwgRXN0YXRlIEFkdmljZSBJIEV2ZXIgUmVjZWl2ZWQ6IDEwMCBUb3AgRXhwZXJ0cyBTaGFyZSBUaGVpciBTdHJhdGVnaWVzICgyMDA2LCBOb3YgMSk7IFRoaW5rIEJJRyBhbmQgS2ljayBBc3MgaW4gQnVzaW5lc3MgYW5kIExpZmUgKDIwMDcpOyBUcnVtcCBOZXZlciBHaXZlIFVwOiBIb3cgSSBUdXJuZWQgTXkgQmlnZ2VzdCBDaGFsbGVuZ2VzIGludG8gU3VjY2VzcyAoMjAwOCk7IFRpbWUgdG8gR2V0IFRvdWdoOiBNYWtpbmcgQW1lcmljYSAjMSBBZ2FpbiAoMjAxMSk7IENyaXBwbGVkIEFtZXJpY2E6IEhvdyB0byBNYWtlIEFtZXJpY2EgR3JlYXQgQWdhaW4gKDIwMTUpDQoxOTk3OiBBcnVuZGhhdGkgUm95IGJlY2FtZSB0aGUgZmlyc3QgSW5kaWFuIHRvIHdpbiBNYW4gQm9va2VyIFByaXplIGZvciBoZXIgbm92ZWwgJ1RoZSBHb2Qgb2YgU21hbGwgVGhpbmdzJy4NCjE5OTc6IElJVC1KRUUgd2FzIGNvbmR1Y3RlZCB0d2ljZSBhZnRlciB0aGUgUS1QYXBlciB3YXMgbGVha2VkLg0KMTk5NzogTkFTQSBlc3RpbWF0ZWQgdGhlcmUgd2VyZSBhcHByb3guIDIsNjQ1IGFydGlmaWNpYWwgc2F0ZWxsaXRlIHBheWxvYWRzIG9yYml0dGluZyB0aGUgZWFydGggYW5kIDYsMjE2IHBpZWNlcyBvZiBzcGFjZSBkZWJyaXMgYXMgdHJhY2tlZCBieSB0aGUgR1NGQy4gT3ZlciAxNiwyOTEgcHJldmlvdXNseSBsYXVuY2hlZCBvYmplY3RzIGhhdmUgZGVjYXllZCBpbnRvIHRoZSBFYXJ0aCdzIGF0bW9zcGhlcmUuDQoxOTk3OiBCSEMgRmluYW5jaWFsLCBJbmMuIG9mIFBlbm5zeWx2YW5pYSBtZXJnZWQgaW50byBGSVNWIHRvIGZvcm0gU2VjdXJlZCBUcmFuc2FjdGlvbiBQcm9jZXNzaW5nIFNlcnZpY2VzLg0KMTk5NzpbQm9va10gVGhlIEZvdXIgQWdyZWVtZW50czogQSBQcmFjdGljYWwgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSBpcyBhIHNlbGYtaGVscCBib29rIGJ5IGJlc3RzZWxsaW5nIGF1dGhvciBEb24gTWlndWVsIFJ1aXogd2l0aCBKYW5ldCBNaWxsczsgVGhlIE1hc3Rlcnkgb2YgTG92ZTogQSBQcmFjdGljYWwgR3VpZGUgdG8gdGhlIEFydCBvZiBSZWxhdGlvbnNoaXAgLS1Ub2x0ZWMgV2lzZG9tIEJvb2sgKDE5OTksIE1hciAzMCk7IFRoZSBWb2ljZSBvZiBLbm93bGVkZ2U6IEEgUHJhY3RpY2FsIEd1aWRlIHRvIElubmVyIFBlYWNlICgyMDA0LCBNYXIgMTApOyBUaGUgRmlmdGggQWdyZWVtZW50OiBBIFByYWN0aWNhbCBHdWlkZSB0byBTZWxmLU1hc3RlcnkgKDIwMDkpOyBUaGUgQ2lyY2xlIG9mIEZpcmU6IEluc3BpcmF0aW9uIGFuZCBHdWlkZWQgTWVkaXRhdGlvbnMgZm9yIExpdmluZyBpbiBMb3ZlIGFuZCBIYXBwaW5lc3MgKDIwMTMsIEF1ZyAxKTsgVGhlIE1hc3Rlcnkgb2YgU2VsZjogQSBUb2x0ZWMgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSAoMjAxNiwgTWF5IDYpDQoxOTk3OltCb29rXSBKb24gS3Jha2F1ZXIncyBJbnRvIFRoaW4gQWlyOiBBIFBlcnNvbmFsIEFjY291bnQgb2YgdGhlIE10LiBFdmVyZXN0IERpc2FzdGVyOyBVbmRlciB0aGUgQmFubmVyIG9mIEhlYXZlbiAoMjAwMyBKdWwpDQoxOTk3IChEZWMgMTEpOltFbnZdIFRoZSBLeW90byBQcm90b2NvbCB3YXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgd2hpY2ggZXh0ZW5kZWQgdGhlIDE5OTIgVW5pdGVkIE5hdGlvbnMgRnJhbWV3b3JrIENvbnZlbnRpb24gb24gQ2xpbWF0ZSBDaGFuZ2UgKFVORkNDQykgdGhhdCBjb21taXRzIHN0YXRlIHBhcnRpZXMgdG8gcmVkdWNlIGdyZWVuaG91c2UgZ2FzIGVtaXNzaW9ucywgYmFzZWQgb24gdGhlIHNjaWVudGlmaWMgY29uc2Vuc3VzIHRoYXQgKHBhcnQgb25lKSBnbG9iYWwgd2FybWluZyBpcyBvY2N1cnJpbmcgYW5kIChwYXJ0IHR3bykgdGhhdCBodW1hbi1tYWRlIENPMiBlbWlzc2lvbnMgYXJlIGRyaXZpbmcgaXQuDQoxOTk3OltJbmRpYV1bRWR1Y2F0aW9uXVtDdWx0dXJlXSBFa2xhdnlhIE1vZGVsIFJlc2lkZW50aWFsIFNjaG9vbCBpcyBhIEdvdmVybm1lbnQgb2YgSW5kaWEgc2NoZW1lIGZvciBtb2RlbCByZXNpZGVudGlhbCBzY2hvb2wgZm9yIEluZGlhbiB0cmliYWxzIGFjcm9zcyBJbmRpYS4gSXQgaXMgb25lIG9mIHRoZSBmbGFnc2hpcCBpbnRlcnZlbnRpb25zIG9mIHRoZSBNaW5pc3RyeSBvZiBUcmliYWwgQWZmYWlycywgR292ZXJubWVudCBvZiBJbmRpYSBhbmQgd2FzIGludHJvZHVjZWQgaW4gdGhlIHllYXIgMTk5Ny05OCB0byBlbnN1cmUgdHJpYmFsIHN0dWRlbnRzIGdldCBhY2Nlc3MgdG8gcXVhbGl0eSBlZHVjYXRpb24gaW4gdGhlIHJlbW90ZSB0cmliYWwgYXJlYXMuIEVNUlNzIGFyZSBzZXQgdXAgaW4gU3RhdGVzL1VUcyB3aXRoIGdyYW50cyB1bmRlciBBcnRpY2xlIDI3NSgxKSBvZiB0aGUgQ29uc3RpdHV0aW9uIG9mIEluZGlhLiBBcyBwZXIgdGhlIGJ1ZGdldCAyMDE4LTE5LCBldmVyeSBibG9jayB3aXRoIG1vcmUgdGhhbiA1MCUgU1QgcG9wdWxhdGlvbiBhbmQgYXQgbGVhc3QgMjAsMDAwIHRyaWJhbCBwZXJzb25zLCB3aWxsIGhhdmUgYW4gRWtsYXZ5YSBNb2RlbCBSZXNpZGVudGlhbCBTY2hvb2wgYnkgdGhlIHllYXIgMjAyMi4NCjE5OTc6W1NwYWNlXSBIaXBwYXJjb3MgKDE5ODkgLTE5OTMpLiBJdCB0b29rIDQtOCB5ZWFycyB0byBvcmdhbml6ZSBhbmQgcHVibGlzaCB0aGUgNCB5ZWFycyBzdHVkeSBieSB0aGlzIGV4cGVyaW1lbnQsIHdoaWNoIHBlcm1pdHRlZCB0aGUgZmlyc3QgaGlnaC1wcmVjaXNpb24gbWVhc3VyZW1lbnRzIG9mIHRoZSBpbnRyaW5zaWMgYnJpZ2h0bmVzc2VzIChjb21wYXJlZCB0byB0aGUgbGVzcyBwcmVjaXNlIGFwcGFyZW50IGJyaWdodG5lc3MpLCBwcm9wZXIgbW90aW9ucywgYW5kIHBhcmFsbGF4ZXMgb2Ygc3RhcnMsIGVuYWJsaW5nIGJldHRlciBjYWxjdWxhdGlvbnMgb2YgdGhlaXIgZGlzdGFuY2UgYW5kIHRhbmdlbnRpYWwgdmVsb2NpdHkuIFdoZW4gY29tYmluZWQgd2l0aCByYWRpYWwgdmVsb2NpdHkgbWVhc3VyZW1lbnRzIGZyb20gc3BlY3Ryb3Njb3B5LCBhc3Ryb3BoeXNpY2lzdHMgd2VyZSBhYmxlIHRvIGZpbmFsbHkgbWVhc3VyZSBhbGwgc2l4IHF1YW50aXRpZXMgbmVlZGVkIHRvIGRldGVybWluZSB0aGUgbW90aW9uIG9mIHN0YXJzLiBUaGUgcmVzdWx0aW5nIEhpcHBhcmNvcyBDYXRhbG9ndWUsIGEgaGlnaC1wcmVjaXNpb24gY2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiAxMTgsMjAwIHN0YXJzLCB3YXMgcHVibGlzaGVkIGluIDE5OTcuIFRoZSBsb3dlci1wcmVjaXNpb24gVHljaG8gQ2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiBhIG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBhdCB0aGUgc2FtZSB0aW1lLCB3aGlsZSB0aGUgZW5oYW5jZWQgVHljaG8tMiBDYXRhbG9ndWUgb2YgMi41IG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBpbiAyMDAwLiBIaXBwYXJjb3MnIGZvbGxvdy11cCBtaXNzaW9uLCBHYWlhLCB3YXMgbGF1bmNoZWQgaW4gMjAxMy4NCjE5OTc6W1NwYWNlXVtSZXNlYXJjaF0gU2luY2UgdGhlIDE5OTcgcHJvcG9zYWwgb2YgdGhlIEFkUy9DRlQgKEFudGktZGUgU2l0dGVyL0NvbmZvcm1hbCBGaWVsZCBUaGVvcnkpIGNvcnJlc3BvbmRlbmNlLCB0aGUgcHJlZG9taW5hbnQgYmVsaWVmIGFtb25nIHBoeXNpY2lzdHMgaXMgdGhhdCBpbmZvcm1hdGlvbiBpcyBpbmRlZWQgcHJlc2VydmVkIGluIGJsYWNrIGhvbGUgZXZhcG9yYXRpb24uIA0KMTk5NzpbU3BhY2VdW1Jlc2VhcmNoXSBBIHdpZGVseSBwdWJsaWNpemVkIGJldCBtYWRlIGluIDE5OTcgYmV0d2VlbiBKb2huIFByZXNraWxsIG9uIHRoZSBvbmUgaGFuZCB3aXRoIEhhd2tpbmcgYW5kIEtpcCBUaG9ybmUgb24gdGhlIG90aGVyIHRoYXQgaW5mb3JtYXRpb24gd2FzIG5vdCBsb3N0IGluIGJsYWNrIGhvbGVzLiBUaGUgc2NpZW50aWZpYyBkZWJhdGUgb24gdGhlIHBhcmFkb3ggd2FzIGRlc2NyaWJlZCBpbiBhIHBvcHVsYXIgYm9vayBwdWJsaXNoZWQgaW4gMjAwOCBieSBMZW9uYXJkIFN1c3NraW5kIGNhbGxlZCBUaGUgQmxhY2sgSG9sZSBXYXIuIChUaGUgYm9vayBjYXJlZnVsbHkgbm90ZXMgdGhhdCB0aGUgJ3dhcicgd2FzIHB1cmVseSBhIHNjaWVudGlmaWMgb25lLCBhbmQgdGhhdCBhdCBhIHBlcnNvbmFsIGxldmVsLCB0aGUgcGFydGljaXBhbnRzIHJlbWFpbmVkIGZyaWVuZHMuKSBUaGUgYm9vayBzdGF0ZXMgdGhhdCBIYXdraW5nIHdhcyBldmVudHVhbGx5IHBlcnN1YWRlZCB0aGF0IGJsYWNrLWhvbGUgZXZhcG9yYXRpb24gd2FzIHVuaXRhcnkgYnkgdGhlIGhvbG9ncmFwaGljIHByaW5jaXBsZSwgd2hpY2ggd2FzIGZpcnN0IHByb3Bvc2VkIGJ5ICd0IEhvb2Z0LCBmdXJ0aGVyIGRldmVsb3BlZCBieSBTdXNza2luZCBhbmQgbGF0ZXIgZ2l2ZW4gYSBwcmVjaXNlIHN0cmluZyB0aGVvcnkgaW50ZXJwcmV0YXRpb24gYnkgdGhlIEFkUy9DRlQgY29ycmVzcG9uZGVuY2UuIEluIDIwMDQsIEhhd2tpbmcgYWxzbyBjb25jZWRlZCB0aGUgMTk5NyBiZXQsIHBheWluZyBQcmVza2lsbCB3aXRoIGEgYmFzZWJhbGwgZW5jeWNsb3BlZGlhICJmcm9tIHdoaWNoIGluZm9ybWF0aW9uIGNhbiBiZSByZXRyaWV2ZWQgYXQgd2lsbCIgYWx0aG91Z2ggVGhvcm5lIHJlZnVzZWQgdG8gY29uY2VkZS4NCjE5OTc6W0VhcnRoXVtQaHlzaWNzXVtSZXNlYXJjaF0gdGhlcmUgd2VyZSB0d28gbGFyZ2UgZWFydGhxdWFrZXMgb2ZmIHRoZSBjb2FzdCBvZiBDaGlsZS4gVGhlIG1hZ25pdHVkZSBvZiB0aGUgZmlyc3QsIGluIEp1bHksIHdhcyBlc3RpbWF0ZWQgYXQgTXfigK82LjksIGJ1dCB3YXMgYmFyZWx5IGZlbHQsIGFuZCBvbmx5IGluIHRocmVlIHBsYWNlcy4gSW4gT2N0b2JlciBhIE134oCvNy4xIHF1YWtlIGluIG5lYXJseSB0aGUgc2FtZSBsb2NhdGlvbiwgYnV0IHR3aWNlIGFzIGRlZXAgYW5kIG9uIGEgZGlmZmVyZW50IGtpbmQgb2YgZmF1bHQsIHdhcyBmZWx0IG92ZXIgYSBicm9hZCBhcmVhLCBpbmp1cmVkIG92ZXIgMzAwIHBlb3BsZSwgYW5kIGRlc3Ryb3llZCBvciBzZXJpb3VzbHkgZGFtYWdlZCBvdmVyIDEwLDAwMCBob3VzZXMuIEFzIGNhbiBiZSBzZWVuIGluIHRoZSB0YWJsZSBiZWxvdywgdGhpcyBkaXNwYXJpdHkgb2YgZGFtYWdlIGRvbmUgaXMgbm90IHJlZmxlY3RlZCBpbiBlaXRoZXIgdGhlIG1vbWVudCBtYWduaXR1ZGUgKE134oCvKSBub3IgdGhlIHN1cmZhY2Utd2F2ZSBtYWduaXR1ZGUgKE1z4oCvKS4gT25seSB3aGVuIHRoZSBtYWduaXR1ZGUgaXMgbWVhc3VyZWQgb24gdGhlIGJhc2lzIG9mIHRoZSBib2R5LXdhdmUgKG1i4oCvKSBvciB0aGUgc2Vpc21pYyBlbmVyZ3kgKE1l4oCvKSBpcyB0aGVyZSBhIGRpZmZlcmVuY2UgY29tcGFyYWJsZSB0byB0aGUgZGlmZmVyZW5jZSBpbiBkYW1hZ2UuIChhcyByZXNlYXJjaGVkIGJ5IENob3ksIEJvYXR3cmlnaHQgJiBLaXJieSAyMDAxLCBwLiAxMy4pLiBNdyA2Ljkgd2FzIGFjdHVhbGx5IE1lIDYuMSwgYW4gaW50ZXJwbGF0ZS10aHJ1c3QgdHlwZSBvZiBmYXVsdCwgd2hpbGUgTXcgNy4xIHdhcyBhY3R1YWxseSBhIDcuNSBNZSBpbnRyYXNsYWItbm9ybWFsIHR5cGUgb2YgZmF1bHQuDQoxOTk3OltSZXNlYXJjaF0gRHVyaW5nIHN1cnZleXMgY2FycmllZCBvdXQgYmV0d2VlbiAxOTk3IGFuZCAyMDAxLCBhIHNwb3Qgd2FzIGZvdW5kIGFsb25nIHRoZSBNYXJpYW5hIFRyZW5jaCB0aGF0IGhhZCBhIGRlcHRoIHNpbWlsYXIgdG8gdGhlIENoYWxsZW5nZXIgRGVlcCwgcG9zc2libHkgZXZlbiBkZWVwZXIuIEl0IHdhcyBkaXNjb3ZlcmVkIHdoaWxlIHNjaWVudGlzdHMgZnJvbSB0aGUgSGF3YWlpIEluc3RpdHV0ZSBvZiBHZW9waHlzaWNzIGFuZCBQbGFuZXRvbG9neSB3ZXJlIGNvbXBsZXRpbmcgYSBzdXJ2ZXkgYXJvdW5kIEd1YW07IHRoZXkgdXNlZCBhIHNvbmFyIG1hcHBpbmcgc3lzdGVtIHRvd2VkIGJlaGluZCB0aGUgcmVzZWFyY2ggc2hpcCB0byBjb25kdWN0IHRoZSBzdXJ2ZXkuIFRoaXMgbmV3IHNwb3Qgd2FzIG5hbWVkIHRoZSBITVJHIChIYXdhaWkgTWFwcGluZyBSZXNlYXJjaCBHcm91cCkgRGVlcCwgYWZ0ZXIgdGhlIGdyb3VwIG9mIHNjaWVudGlzdHMgd2hvIGRpc2NvdmVyZWQgaXQuDQoxOTk3OltTcGFjZVhdIEEgcmVzb2x2ZWQgY2lyY3Vtc3RlbGxhciBkaXNrIHdhcyBmaXJzdCBpZGVudGlmaWVkIGluIDE5OTcgd2l0aCB0aGUgT3dlbnMgVmFsbGV5IFJhZGlvIE9ic2VydmF0b3J5LiBUaGUgc2VtaS1tYWpvciBheGlzIHdhcyBpbml0aWFsbHkgZXN0aW1hdGVkIHRvIGJlIDExMCBBVS4gSEQgMTYzMjk2IGFuZCBzdXJyb3VuZGluZ3MgQ3JlZGl0OiBFU08vRGlnaXRpemVkIFNreSBTdXJ2ZXkgMjsgQWNrbm93bGVkZ2VtZW50OiBEYXZpZGUgRGUgTWFydGluIE9ic2VydmF0aW9uIGRhdGEgRXBvY2ggSjIwMDAgICAgICBFcXVpbm94IEoyMDAwIENvbnN0ZWxsYXRpb24JU2FnaXR0YXJpdXMgUmlnaHQgYXNjZW5zaW9uCTE3aCA1Nm0gMjEuMjlzIERlY2xpbmF0aW9uCeKIkjIxwrAgNTfigLIgMjEuODfigLMgQXBwYXJlbnQgbWFnbml0dWRlIChWKQk2Ljg1OyBDaGFyYWN0ZXJpc3RpY3MgRXZvbHV0aW9uYXJ5IHN0YWdlCUhlcmJpZyBBZSBzdGFyIFNwZWN0cmFsIHR5cGUJQTNWYWVrQTFtQTE7IEFzdHJvbWV0cnkgUmFkaWFsIHZlbG9jaXR5IChSdikJLTQuMDAgwrEzLjNbM10ga20vcyBQcm9wZXIgbW90aW9uICjOvCkJUkE6IC03LjU4NiDCsTAuMDQxIG1hcy95cjsgRGVjLjogLTM5LjQ1OCDCsTAuMDI5IG1hcy95cls0XSBQYXJhbGxheCAoz4ApCTkuOTA0M8KxMC4wNDA4IG1hc1s0XSBEaXN0YW5jZQkzMjkgwrEgMSBseSAoMTAxLjAgwrEgMC40IHBjKSBEZXRhaWxzOyBNYXNzCTEuOTXCsTAuMDcgTeKYiSBSYWRpdXMJMS44N8KxMC4wNSBS4piJIEx1bWlub3NpdHkJMjAuNCszLjYg4oiSMy4wIEzimIkgU3VyZmFjZSBncmF2aXR5IChsb2cgZykJNC4xMMKxMC4xMCBjZ3MgVGVtcGVyYXR1cmUJOTAwMMKxMjUwIEsgQWdlCTYuMDMrMC4yOCDiiJIwLjI3IE15ciBPdGhlciBkZXNpZ25hdGlvbnMgQkQtMjEgNDc3OSwgQ1BELTIxIDY1MDgsIEVNKiBNV0MgMjc1LCBISVAgODc4MTksIElSQVMgMTc1MzMtMjE1NiwgMk1BU1MgSjE3NTYyMTI4LTIxNTcyMTgsIFBEUyA0NzMsIFRZQyA2MjYyLTIxMzEtMSwgRGF0YWJhc2UgcmVmZXJlbmNlcyBTSU1CQUQNCjE5OTc6W1NwYWNlWF0gMTAxOTkgQ2hhcmlrbG8gaXMgYSByaW5nZWQgYXN0ZXJvaWQgb3IgY2VudGF1ciBpbiB0aGUgb3V0ZXIgU29sYXIgU3lzdGVtLiBJdCBpcyB0aGUgbGFyZ2VzdCBrbm93biBjZW50YXVyLCB3aXRoIGEgZGlhbWV0ZXIgb2YgYWJvdXQgMjUwIGttLiBJdCBvcmJpdHMgdGhlIFN1biBiZXR3ZWVuIFNhdHVybiBhbmQgVXJhbnVzIHdpdGggYW4gb3JiaXRhbCBwZXJpb2Qgb2YgNjIuNSB5ZWFycy4gV2lraXBlZGlhIE9yYml0YWwgcGVyaW9kOiA2MyB5ZWFycyBSYWRpdXM6IDE1MSBrbSBEaXNjb3ZlcmVkOiAxNSBGZWJydWFyeSAxOTk3IERpbWVuc2lvbnM6ICgyODcuNisyLjg7IOKIkjMuMCkgw5cgKDI3MC40KzIuODsg4oiSNS42KSDDlyAoMTk4LjIrMTAuODsg4oiSNS40KSBrbTogMTEgRGlzY292ZXJlcjogSmFtZXMgVi4gU2NvdHRpIFNwZWN0cmFsIHR5cGU6IEQtdHlwZSBhc3Rlcm9pZCBBcGhlbGlvbjogMTguNDIwIEFVDQoxOTk3OltTcGFjZVhdIFRoZSBHcmVhdCBEYXlsaWdodCBGaXJlYmFsbCAtIFRoZSBhdG1vc3BoZXJpYyBwYXNzIG1vZGlmaWVkIHRoZSBvYmplY3QncyBtYXNzIGFuZCBvcmJpdCBhcm91bmQgdGhlIFN1bi4gQSAxOTk0IHN0dWR5IGZvdW5kIHRoYXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgaW4gYW4gRWFydGgtY3Jvc3Npbmcgb3JiaXQgYW5kIHByZWRpY3RlZCB0aGF0IGl0IHdvdWxkIHBhc3MgY2xvc2UgdG8gRWFydGggYWdhaW4gaW4gQXVndXN0IDE5OTcuIEhvd2V2ZXIsIHRoZSBvYmplY3QgaGFzIG5vdCBiZWVuIG9ic2VydmVkIGFnYWluIGFuZCBzbyBpdHMgcG9zdC1lbmNvdW50ZXIgb3JiaXQgcmVtYWlucyB1bmtub3duLg0KMTk5NzpOYWZpc2EgSm9zZXBoIHdhcyB0aGUgeW91bmdlc3QgTWlzcyBJbmRpYSB3aW5uZXIgYXQgYWdlIDE5LCB3aW5uaW5nIHRoZSB0aXRsZSBpbiAxOTk3LiBTaGUgbGF0ZXIgYmVjYW1lIGEgbW9kZWwgYW5kIHRlbGV2aXNpb24gcGVyc29uYWxpdHkuIFdoaWxlIG90aGVyIHdpbm5lcnMgbGlrZSBNZWVuYWtzaGkgU2VzaGFkcmkgd2VyZSBhbHNvIDE3IHdoZW4gdGhleSB3b24gaW4gMTk4MSwgSm9zZXBoIGlzIG9mdGVuIGNpdGVkIGZvciBoZXIgZWFybHkgd2luIGF0IDE5LCB3aGljaCB3YXMgdGhlbiBhIHlvdW5nZXIgYWdlIHRoYW4gaXMgdHlwaWNhbGx5IHNlZW4gaW4gdGhlIGNvbXBldGl0aW9uLiANCjE5OTc6W3NwYWNlXVt0ZWNoXSBUaGUgZmluYWwgQmxvY2sgSUlBIHdhcyBpbiBOb3YgMTk5Nywgd2hpbGUgQmxvY2sgSUlScyBiZWdhbiByZXBsYWNpbmcgdGhlbSBzaG9ydGx5IGFmdGVyLCBsYXN0aW5nIHVudGlsIDIwMDQuIEJsb2NrIElJUiAoUmVwbGVuaXNobWVudCkgbGF1bmNoZXMgZm9sbG93ZWQgZnJvbSAxOTk3IHRvIDIwMDQsIHdpdGggdGhlIGZpcnN0IGxhdW5jaCBpbiBKYW51YXJ5IDE5OTcuIA0KDQoxOTk4OltTcGFjZVhdIFRoZSBwcmltYXJ5IGNvbnN0cnVjdGlvbiBwaGFzZSBvZiB0aGUgSW50ZXJuYXRpb25hbCBTcGFjZSBTdGF0aW9uIChJU1MpIHRvb2sgYXBwcm94aW1hdGVseSAxMyB5ZWFycywgZnJvbSAxOTk4IHRvIDIwMTEsIHdpdGggdGhlIGZpcnN0IG1vZHVsZSBsYXVuY2hpbmcgaW4gTm92ZW1iZXIgMTk5OCBhbmQgSVNTIEFzc2VtYmx5IENvbXBsZXRlIGRlY2xhcmVkIGluIE1heSAyMDExLiBIb3dldmVyLCBhc3NlbWJseSB3YXMgYSBjb250aW51b3VzLCBtdWx0aS1zdGFnZSBwcm9jZXNzIGludm9sdmluZyBtb3JlIHRoYW4gMzAgbWlzc2lvbnMsIG51bWVyb3VzIHNwYWNld2Fsa3MsIGFuZCByb2JvdGljIGFzc2lzdGFuY2UgdG8gYnVpbGQgdGhlIHN0YXRpb24gcGllY2UgYnkgcGllY2UgaW4gb3JiaXQuIEV2ZW4gYWZ0ZXIgMjAxMSwgdGhlIElTUyBjb250aW51ZWQgdG8gZXZvbHZlIHdpdGggb25nb2luZyBhZGRpdGlvbnMgYW5kIHVwZ3JhZGVzLg0KMTk5ODpbUmVzZWFyY2hdW1NwYWNlXSBTcHJpbmcsIDE5OTg6IGEgbWljcm9mb3NzaWwgdGhhdCB3YXMgZm91bmQgaW4gYSBtZXRlb3JpdGUgYW5kIHBob3RvZ3JhcGhlZCBpbiAxOTY2LCB3YXMgcmVjb2duaXplZCBieSBhIFJ1c3NpYW4gbWljcm9iaW9sb2dpc3QgYXMgYSBtYWduZXRvdGFjdGljIGJhY3Rlcml1bS4gQnkgRmFsbCwgMTk5ODogTkFTQSdzIHB1YmxpYyBwb3NpdGlvbiBvbiBsaWZlLWZyb20tc3BhY2Ugc2hpZnRlZCBkcmFtYXRpY2FsbHkuDQoxOTk4OiBBcyBhIHJlc2VhcmNoIHByb2plY3QgYXQgU3RhbmZvcmQgVW5pdmVyc2l0eSwgU2VyZ2V5IEJyaW4gYW5kIExhcnJ5IFBhZ2UgY3JlYXRlZCBhIHNlYXJjaCBlbmdpbmUgdGhhdCBsaXN0ZWQgcmVzdWx0cyBhY2NvcmRpbmcgdG8gdGhlIHBvcHVsYXJpdHkgb2YgdGhlIHBhZ2VzLCBhZnRlciBjb25jbHVkaW5nIHRoYXQgdGhlIG1vc3QgcG9wdWxhciByZXN1bHQgd291bGQgb2Z0ZW4gYmUgdGhlIG1vc3QgdXNlZnVsLiBBZnRlciByYWlzaW5nICQxIG1pbGxpb24gZnJvbSBmYW1pbHksIGZyaWVuZHMgYW5kIG90aGVyIGludmVzdG9ycywgdGhlIHBhaXIgbGF1bmNoZWQgdGhlIGNvbXBhbnkgaW4gMTk5OC4gR29vZ2xlIGhhcyBzaW5jZSBiZWNvbWUgdGhlIHdvcmxk4oCZcyBtb3N0IHBvcHVsYXIgc2VhcmNoIGVuZ2luZSwgcmVjZWl2aW5nIG1vcmUgdGhhbiAyMDAgbWlsbGlvbiBxdWVyaWVzIGVhY2ggZGF5Lg0KMTk5OCAoTm92IDIwKTogDQoxOTk4IChBcHIgMjcpOiBSUkIgZm91bmRlZCBhcyBSYWlsd2F5IFJlY3J1aXRtZW50IENvbnRyb2wgQm9hcmQgaXMgYSBnb3Zlcm5tZW50IG9yZ2FuaXNhdGlvbiBpbiBJbmRpYS4gSXQgd2FzIHNldCB1cCBpbiAxOTk4IGluIHRoZSBNaW5pc3RyeSBvZiBSYWlsd2F5cyAoUmFpbHdheSBCb2FyZCksIE5ldyBEZWxoaS5JbiAxOTQ1LCB0aGUgU2VydmljZXMgQ29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgYXQgQm9tYmF5LCBDYWxjdXR0YSwgTWFkcmFzIGFuZCBMdWNrbm93LiBJbiAxOTgzLCB0byBjYXRlciB0byB0aGUgbmVlZHMgb2YgYXJlYXMgd2hpY2ggd2VyZSBiZWluZyBuZWdsZWN0ZWQgZHVlIHRvIGxvY2F0aW9ucyBvZiB0aGUgZXhpc3RpbmcgY29tbWlzc2lvbnMsIHNldmVuIG1vcmUgY29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgdml6LCBhdCBBaG1lZGFiYWQsIEFqbWVyLCBCaG9wYWwsIEJodXZuZXNod2FyLCBDaGFuZGlnYXJoLCBKYW1tdSBhbmQgU3JpbmFnYXIgd2l0aCBzaXR0aW5nIGF0IExlaCBhbmQgVHJpdmVuZHJ1bS4gSW4gMTk4NCB0d28gbW9yZSBzZXJ2aWNlIGNvbW1pc3Npb25zIHdlcmUgc2V0IHVwIGF0IE1hbGRhIGFuZCBHb3Jha2hwdXIuDQoxOTk4IChNYXkgMTkpOiBBdGFsIEJpaGFyaSBWYWpwYXllZSBiZWNvbWVzIFBNIG9mIEluZGlhIGZvciB0aGUgc2Vjb25kIHRpbWUsIG5vdyBmb3IgNiB5ZWFycyB0aWxsIE1heSAyMiwgMjAwNC4gDQoxOTk4IChNYXkgMjggMTU6MTVQU1QpOiBDaGFnYWktSSBpcyB0aGUgY29kZSBuYW1lIG9mIGZpdmUgc2ltdWx0YW5lb3VzIHVuZGVyZ3JvdW5kIG51Y2xlYXIgdGVzdHMgY29uZHVjdGVkIGJ5IFBha2lzdGFuLiBUaGUgdGVzdHMgd2VyZSBwZXJmb3JtZWQgYXQgUmFzIEtvaCBIaWxscyBpbiB0aGUgQ2hhZ2FpIERpc3RyaWN0IG9mIEJhbG9jaGlzdGFuIFByb3ZpbmNlLiBDaGFnYWktSSB3YXMgUGFraXN0YW4ncyBmaXJzdCBwdWJsaWMgdGVzdCBvZiBudWNsZWFyIHdlYXBvbnMuIFBha2lzdGFuJ3MgZmlzc2lsZSBtYXRlcmlhbCBwcm9kdWN0aW9uIHRha2VzIHBsYWNlIGF0IE5pbG9yZSwgS2FodXRhLCBhbmQgS2h1c2hhYiBOdWNsZWFyIENvbXBsZXgsIHdoZXJlIHdlYXBvbnMtZ3JhZGUgcGx1dG9uaXVtIGlzIHJlZmluZWQuDQoxOTk4OiBBZnRlciBjb21wbGV0aW5nIGhpcyBYIHN0YW5kYXJkIGV4YW1pbmF0aW9ucywgUmFuYmlyIEthcG9vciwgYWdlZCAxNiwgd29ya2VkIGFzIGFuIGFzc2lzdGFudCBkaXJlY3RvciB0byBoaXMgZmF0aGVyIG9uIHRoZSBmaWxtIEFhIEFiIExhdXQgQ2hhbGVuICgxOTk5KSwgZHVyaW5nIHdoaWNoIGhlIGRldmVsb3BlZCBhIGNsb3NlciBib25kIHdpdGggaGltLg0KMTk4ODogTmV0d29ya2VkIERhdGEgUHJvY2Vzc2luZyBDb3IsIElvd2EgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBJbnN1cmFuY2UgZGl2aXNpb24uDQoxOTk4OltCb29rXSBSb2JlcnQgR3JlZW5lJ3MgVGhlIDQ4IExhd3Mgb2YgUG93ZXI7IFRoZSAzMyBTdHJhdGVnaWVzIG9mIFdhciAoMjAwNik7IE1hc3RlcnkgKDIwMTIsIE5vdiAxMyk7IFRoZSBMYXdzIG9mIEh1bWFuIE5hdHVyZSAoMjAxOCwgT2N0IDE2KQ0KMTk5ODpbU3BhY2VdW1Jlc2VhcmNoXVtFeHRyZW1lXSBUaGVuIGNhbWUgMTk5OCBhbmQgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgKEhTVCkgb2JzZXJ2YXRpb25zIG9mIHZlcnkgZGlzdGFudCBzdXBlcm5vdmFlIHRoYXQgc2hvd2VkIHRoYXQsIGEgbG9uZyB0aW1lIGFnbywgdGhlIHVuaXZlcnNlIHdhcyBhY3R1YWxseSBleHBhbmRpbmcgbW9yZSBzbG93bHkgdGhhbiBpdCBpcyB0b2RheS4gU28gdGhlIGV4cGFuc2lvbiBvZiB0aGUgdW5pdmVyc2UgaGFzIG5vdCBiZWVuIHNsb3dpbmcgZHVlIHRvIGdyYXZpdHksIGFzIGV2ZXJ5b25lIHRob3VnaHQsIGl0IGhhcyBiZWVuIGFjY2VsZXJhdGluZy4NCjE5OTg6W0NyaW1lXVtJbmRpYV0gQW5lZXMgYXJyZXN0ZWQgaW4gVUFFIG9uIGNoYXJnZXMgb2YgaGF2aW5nIG11cmRlcmVkIGEgZm9ybWVyIGFzc29jaWF0ZSBhbmQgdGhlbiByaXZhbCwgSXJmYW4gR29nYSwgaW4gRHViYWksIGJ1dCB3YXMgZnJlZWQgYWZ0ZXIgdHdvIGRheXMgZm9yICdsYWNrIG9mIGV2aWRlbmNlJy4NCjE5OTg6W0NvbXB1dGluZ11bUXVhbnR1bV0gUmVzZWFyY2hlcnMgYXQgSUJNLCBPeGZvcmQsIEJlcmtlbGV5LCBTdGFuZm9yZCwgYW5kIE1JVCBwcm9kdWNlZCBhIDItcXViaXQgY29tcHV0aW5nIHN5c3RlbS4NCjE5OTg6W3d3d10gV2lyZXNoYXJrIGlzIGEgZnJlZSBhbmQgb3Blbi1zb3VyY2UgcGFja2V0IGFuYWx5emVyLiBJdCBpcyB1c2VkIGZvciBuZXR3b3JrIHRyb3VibGVzaG9vdGluZywgYW5hbHlzaXMsIHNvZnR3YXJlIGFuZCBjb21tdW5pY2F0aW9ucyBwcm90b2NvbCBkZXZlbG9wbWVudCwgYW5kIGVkdWNhdGlvbi4gT3JpZ2luYWxseSBuYW1lZCBFdGhlcmVhbCwgdGhlIHByb2plY3Qgd2FzIHJlbmFtZWQgV2lyZXNoYXJrIGluIE1heSAyMDA2IGR1ZSB0byB0cmFkZW1hcmsgaXNzdWVzLg0KMTk5ODpbVVNdW0Vjb25vbXldRGF2aWQgUm9ja2VmZWxsZXIgU3IuIHdhcyBhd2FyZGVkIHRoZSBQcmVzaWRlbnRpYWwgTWVkYWwgb2YgRnJlZWRvbSBieSBQcmVzaWRlbnQgQmlsbCBDbGludG9uIGZvciBoaXMgd29yayBvbiBJbnRlcm5hdGlvbmFsIEV4ZWN1dGl2ZSBTZXJ2aWNlIENvcnBzLg0KMTk5ODpbRGVmXVtBdmlhdGlvbl0gVGhlIExvY2toZWVkIFNSLTcxIEJsYWNrYmlyZCBmbGV3IHNvIGhpZ2ggYW5kIHNvIGZhc3QgdGhhdCB0aGUgY3JldyBuZWVkZWQgcHJlc3N1cml6ZWQgc3BhY2Ugc3VpdHMgd2hlbiBmbHlpbmcgaXQuIEFuZCBpdCBpcyBzYWlkIHRoYXQgYXQgdGhlIG1heGltdW0gYWx0aXR1ZGUgb2YgaXQgaXQgd2FzIHBvc3NpYmxlIHRvIHNlZSB0aGUgY3VydmF0dXJlIG9mIHRoZSBlYXJ0aCwgd2hpY2ggcmVmZXJzIHRvIHRoaXMgcXVvdGUgYnkgQ29sb25lbCBBbGlzb246IOKAnE9uIGEgY2xlYXIgZGF5IHlvdSBjYW4gc2VlIGZvcmV2ZXLigKbigJ0uIFRoZSBzZXJ2aWNlIGNlaWxpbmcgb2YgODUsMDAwIGZlZXQgKDI1LDkwMG0pIG1lYW50IHRoYXQgaXQgd2FzIGFuIGV4Y2VsbGVudCBleHBlcmltZW50YWwgdW5pdCBmb3Igc3BhY2UgdHJhdmVscy4gVGhhdCwgY29tYmluZWQgd2l0aCB0aGUgZ3JlYXQgc3BlZWRzIG9mIGl0IHdhcyB0d28gb2YgdGhlIHJlYXNvbnMgd2h5IE5BU0EgZGVjaWRlZCB0byB0YWtlIG92ZXIgdGhlIGxhc3QgdHdvIEJsYWNrYmlyZHMgYWZ0ZXIgaXRzIHJldGlyZW1lbnQgZnJvbSB0aGUgQWlyIEZvcmNlIGluIDE5OTguIFRoaXMgbWVhbnMgdGhhdCB0aGUgd29ybGTigJlzIGZhc3Rlc3QgYWlyY3JhZnQgd2FzIGluIHNlcnZpY2UgZnJvbSAxOTY2IHVudGlsIE5BU0EgcmV0aXJlZCBpdHMgdHdvIHVuaXRzIGluIDE5OTksIGFuZCBtb3N0IG9mIHRoZSByZW1haW5pbmcgQmxhY2tiaXJkcyBhcmUgdG9kYXkgc3RhdGlvbmVkIGF0IG11c2V1bXMgb3IgbWlsaXRhcnkgYmFzZXMgYWNyb3NzIHRoZSBVUy4NCjE5OTg6SW4gMTk5OCwgR2F1dGFtIEFkYW5pLCBhbG9uZyB3aXRoIGhpcyBhc3NvY2lhdGUgU2hhbnRpbGFsIFBhdGVsLCB3YXMga2lkbmFwcGVkIGZvciByYW5zb20gaW4gQWhtZWRhYmFkLCBJbmRpYS4gVGhleSB3ZXJlIGFiZHVjdGVkIGF0IGd1bnBvaW50IGFmdGVyIGxlYXZpbmcgdGhlIEthcm5hdmF0aSBDbHViIGluIGEgY2FyLiBUaGUga2lkbmFwcGVycywgYWxsZWdlZGx5IGdhbmdzdGVycyBGYXpsdSBSZWhtYW4gYW5kIEJob2dpbGFsIERhcmppLCByZXBvcnRlZGx5IGRlbWFuZGVkIGEgcmFuc29tIG9mICQxLjUtMiBtaWxsaW9uLiBCb3RoIEFkYW5pIGFuZCBQYXRlbCB3ZXJlIHJlbGVhc2VkIGEgZGF5IGxhdGVyLCBidXQgaXQncyB1bmNsZWFyIGlmIHRoZSByYW5zb20gd2FzIHBhaWQuIA0KVGhlIGtpZG5hcHBpbmcgaW5jaWRlbnQgaGFwcGVuZWQgaW4gdGhlIG1pZC0xOTkwcywgYXJvdW5kIHRoZSB0aW1lIEFkYW5pJ3MgYnVzaW5lc3Mgc3VjY2Vzc2VzIHN0YXJ0ZWQgYXR0cmFjdGluZyB1bndhbnRlZCBhdHRlbnRpb24uIFRoZSBraWRuYXBwaW5nIHdhcyBhbGxlZ2VkbHkgY2FycmllZCBvdXQgYnkgRmF6bHUgUmVobWFuIGFuZCBCaG9naWxhbCBEYXJqaSwgYWxzbyBrbm93biBhcyAiTWFtYSIuIFRoZXkgd2VyZSBsYXRlciBhY3F1aXR0ZWQgZHVlIHRvIGxhY2sgb2YgZXZpZGVuY2UuIA0KVGhlIGFiZHVjdGlvbiBpcyBqdXN0IG9uZSBvZiB0aGUgY2hhbGxlbmdlcyBBZGFuaSBoYXMgZmFjZWQuIEhlIHdhcyBhbHNvIGNhdWdodCBpbiB0aGUgMjYvMTEgTXVtYmFpIHRlcnJvciBhdHRhY2tzIGF0IHRoZSBUYWogSG90ZWwuIE1vcmUgcmVjZW50bHksIGhlIGhhcyBmYWNlZCBhY2N1c2F0aW9ucyBvZiBicmliZXJ5IGFuZCBzZWN1cml0aWVzIGZyYXVkLiANCkFkYW5pIGFuZCBvdGhlcnMgd2VyZSBlc2NvcnRlZCBieSBzdGFmZiB0byB0aGUga2l0Y2hlbiBhbmQgdGhlbiB0aGUgYmFzZW1lbnQuIFRoZXkgc3BlbnQgdGhlIGVudGlyZSBuaWdodCBpbiBhIGhhbGwgd2FpdGluZyBmb3IgcmVzY3VlLiBBZGFuaSBsYXRlciB0b2xkIG5ld3MgY2hhbm5lbHMgdGhhdCBoZSBzYXcg4oCcZGVhdGggYXQgYSBkaXN0YW5jZSBvZiBqdXN0IDE1IGZlZXQu4oCdIEhlIHdhcyByZXNjdWVkIHRoZSBuZXh0IG1vcm5pbmcgYnkgc2VjdXJpdHkgZm9yY2VzLg0KMTk5ODpbRW52XVtEaXNhc3Rlcl0gRWFzdGVybiBJbmRpYSwgMTk5OCBCYW5nbGFkZXNoIGZsb29kOyA0ayBkZWF0aHMNCjE5OTg6W1dob11bUmVzZWFyY2hdW0NvbXB1dGluZ11bVGVjaF1bQ3VsdHVyZV0gSW50ZXJuZXQgRG93bmxvYWQgTWFuYWdlciAoSURNKSB3YXMgZGV2ZWxvcGVkIGJ5IFRvbmVjIEluYy4sIGFuIEFtZXJpY2FuIGNvbXBhbnkgdGhhdCBzdGFydGVkIHRoZSBwcm9qZWN0IGluIDE5OTggYW5kIHJlbGVhc2VkIHRoZSBzb2Z0d2FyZSBpbiAyMDAxLiBUb25lYyBJbmMuIGZvY3VzZXMgb24gbmV0d29yayBwcm9ncmFtbWluZyBhbmQgY3JlYXRlZCBJRE0gdG8gc3BlZWQgdXAgZG93bmxvYWRzIGJ5IHVzaW5nIGR5bmFtaWMgZmlsZSBzZWdtZW50YXRpb24sIGFjY2VsZXJhdGluZyBzcGVlZHMgYnkgdXAgdG8gOCB0aW1lcy4gDQoNCjE5OTk6NCBKYW51YXJ5IDE5OTk6IE5BU0Egb2ZmaWNpYWxseSByZWNvZ25pemVkIHRoZSBwb3NzaWJpbGl0eSB0aGF0IGxpZmUgb24gRWFydGggY29tZXMgZnJvbSBzcGFjZS4NCjE5IE1hcmNoIDE5OTk6IE5BU0Egc2NpZW50aXN0cyBhbm5vdW5jZWQgdGhhdCB0d28gbW9yZSBtZXRlb3JpdGVzIGhvbGQgZXZlbiBzdHJvbmdlciBmb3NzaWxpemVkIGV2aWRlbmNlIGZvciBwYXN0IGxpZmUgb24gTWFycy4NCjE5OTk6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEcyMCBvciBHcm91cCBvZiAyMCBpcyBhbiBpbnRlcmdvdmVybm1lbnRhbCBmb3J1bSBjb21wcmlzaW5nIDE5IHNvdmVyZWlnbiBjb3VudHJpZXMsIHRoZSBFdXJvcGVhbiBVbmlvbiwgYW5kIHRoZSBBZnJpY2FuIFVuaW9uLiBGb3VuZGVkOiAyNiBTZXB0ZW1iZXIgMTk5OTsgQ2hhaXJtYW4gKEluY3VtYmVudCk6IEN5cmlsIFJhbWFwaG9zYSwgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYQ0KMTk5OTogVGhlIHRlcm0gV2ktRmkgd2FzIGludmVudGVkIGJ5IEludGVyYnJhbmQgKGFuIGFtZXJpY2FuIGJyYW5kIGNvbnN1bHRhbmN5IGNvbXBhbnkpIGFzIGEgcHVuIHVwb24gdGhlIHdvcmQgaGktZmkuDQpXaS1GaSBBbGxpYW5jZSBmb3JtZWQgYXMgYSB0cmFkZSBhc3NvY2lhdGlvbiB0byBob2xkIHRoZSBXaS1GaSB0cmFkZW1hcmsgdW5kZXIgd2hpY2ggbW9zdCBwcm9kdWN0cyBhcmUgc29sZC4NCjE5OTk6IHRoZSB0ZXJtDQoxOTk5OiBJc2xhbWljIFN0YXRlIG9mIElyYXEgYW5kIHRoZSBMZXZhbnQgKGFsc28ga25vd24gYXMgdGhlIElzbGFtaWMgU3RhdGUgb2YgSXJhcSBhbmQgU3lyaWEsIElzbGFtaWMgU3RhdGUsIG9yIGNvbW1vbmx5LCBJU0lTKSBmb3VuZGVkIGFzIEphbWEnYXQgYWwtVGF3aGlkIHdhbC1KaWhhZCBieSBBYnUgTXVzYWIgYWwtWmFycWF3aSBIUSdkIGF0ICBBbC1SYXFxYWguDQoxOTk5IChBcHIgMTIpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBJIFdhbnQgSXQgVGhhdCBXYXkuDQoxOTk5IChBcHIgMTgpOiBDT05DRVJUIGJlY2FtZSBvcGVyYXRpb25hbC4gSXQgd2FzIGRldmVsb3BlZCB1c2luZyBjbGllbnQtc2VydmVyIG1vZGVsIGZvciBkaXN0cmlidXRlZCBjb21wdXRpbmcgaXMgYSB0b3RhbCBzb2x1dGlvbiB0byB0aGUgbmV0d29ya2luZyBvZiB0aGUgUFJTcy4gQWxsIHRoZSBmaXZlIHNpdGVzIGhhdmUgYmVlbiBpbnRlcm5ldC13b3JrZWQgb3ZlciBhIDY0IGticHMgbGluZSB1c2luZyByb3V0ZXJzLCBvbiBsZWFzZWQgY29tbXVuaWNhdGlvbiBsaW5lIGNvbm5lY3Rpb25zIGZyb20gRGVwYXJ0bWVudCBvZiBUZWxlY29tIChET1QpLg0KMTk5OTogQ3JlZGl0IGNhcmRzIGFjY2VwdGVkIGZvciBib29raW5nIHRpY2tldHMgYW5kIHJlc2VydmF0aW9ucyBpbiBzb21lIHN0YXRpb25zIChpbmNsdWRpbmcgTXVtYmFpIENTVCkuDQoxOTk5IChNYXkgMSk6W0Jvb2tdIFJvYmVydCBLaXlvc2FraSAmIFNoYXJvbiBMZWNodGVyJ3MgUmljaCBEYWQncyBDYXNoZmxvdyBRdWFkcmFudDogUmljaCBEYWQncyBHdWlkZSB0byBGaW5hbmNpYWwgRnJlZWRvbTsgUmljaCBEYWQncyBHdWlkZSB0byBJbnZlc3Rpbmc6IFdoYXQgdGhlIFJpY2ggSW52ZXN0IGluIFRoYXQgdGhlIFBvb3IgYW5kIE1pZGRsZSBDbGFzcyBEbyBOb3QhICgyMDAxLCBKYW4gMSk7IFRoZSBSZWFsIEJvb2sgb2YgUmVhbCBFc3RhdGU6IFJlYWwgRXhwZXJ0cy4gUmVhbCBTdG9yaWVzLiBSZWFsIExpZmUuICgyMDA5LCBNYXkgMTIpOyBSaWNoIEtpZCBTbWFydCBLaWQ6IEdpdmluZyBZb3VyIENoaWxkIGEgRmluYW5jaWFsIEhlYWQgU3RhcnQgKDIwMDEsIEphbiAxKTsgDQoxOTk5IChNYXkgMTgpOltNdXNpY10gTWlsbGVubml1bSBpcyB0aGUgdGhpcmQgc3R1ZGlvIGFsYnVtIChzZWNvbmQgaW4gdGhlIFVuaXRlZCBTdGF0ZXMpIGJ5IEFtZXJpY2FuIGJveSBiYW5kIEJhY2tzdHJlZXQgQm95cywgcmVsZWFzZWQgYnkgSml2ZSBSZWNvcmRzLg0KMTk5OSAoRnJpLCAyNCBEZWMpOiBJbmRpYW4gQWlybGluZXMgRmxpZ2h0IDgxNCBjb21tb25seSBrbm93biBhcyBJQyA4MTQgd2FzIGFuIEluZGlhbiBBaXJsaW5lcyBBaXJidXMgQTMwMCBlbiByb3V0ZSBmcm9tIFRyaWJodXZhbiBJbnRlcm5hdGlvbmFsIEFpcnBvcnQgaW4gS2F0aG1hbmR1LCBOZXBhbCB0byBJbmRpcmEgR2FuZGhpIEludGVybmF0aW9uYWwgQWlycG9ydCBpbiBEZWxoaSwgSW5kaWEgd2FzIGhpamFja2VkLiBIYXJrYXQtdWwtTXVqYWhpZGVlbiB3YXMgYWNjdXNlZCBvZiB0aGUgaGlqYWNraW5nLg0KMTk5OTogSVJDVEMNCjE5OTkgKEF1Zyk6IEJvb2tNeVNob3cNCjE5OTkgKFNlcCAxNCk6IFtHZW9Qb2xpdGljc10gVGhlIENvbmZlcmVuY2Ugb24gSW50ZXJhY3Rpb24gYW5kIENvbmZpZGVuY2UtQnVpbGRpbmcgTWVhc3VyZXMgaW4gQXNpYSAoQ0lDQSkgaXMgYW4gaW50ZXItZ292ZXJubWVudGFsIGZvcnVtIGZvciBlbmhhbmNpbmcgY29vcGVyYXRpb24gdG93YXJkcyBwcm9tb3RpbmcgcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYS4gSXQgaXMgYSBmb3J1bSBiYXNlZCBvbiB0aGUgcmVjb2duaXRpb24gdGhhdCB0aGVyZSBpcyBjbG9zZSBsaW5rIGJldHdlZW4gcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYSBhbmQgaW4gdGhlIHJlc3Qgb2YgdGhlIHdvcmxkLiBUaGUga2V5IGlkZWEgb2YgdGhlIENvbmZlcmVuY2UgaXMgYmFzZWQgb24gdGhlIHByaW9yaXR5IG9mIHRoZSBpbmRpdmlzaWJpbGl0eSBvZiBzZWN1cml0eSwgam9pbnQgaW5pdGlhdGl2ZSBhbmQgbXV0dWFsbHkgYmVuZWZpY2lhbCBpbnRlcmFjdGlvbiBvZiBzbWFsbCBhbmQgbGFyZ2Ugc3RhdGVzLg0KMTk5OTogTm9ibGUgRWR1Y2F0aW9uIFNvY2lldHkncyBOb2JsZSBQdWJsaWMgU2Nob29sIChOUFMpLCBHYWpyYXVsYSBmb3VuZGVkIHdpdGggMjEzMDYyNyBhcyBpdHMgQ0JTRSBBZmZpbGlhdGlvbiBuby4NCjE5OTk6IGZpcnN0IC53bWEgZmlsZSBjcmVhdGVkDQoxOTk5OiBOYXBzdGVyIGZvdW5kZWQuDQoxOTk5IChEZWMgMTQpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBTaG93IE1lIHRoZSBNZWFuaW5nIG9mIEJlaW5nIExvbmVseS4gDQoxOTk5OltNdXNpY10gRHIuIERyZSBmdC4gU25vb3AgRG9nZydzIFN0aWxsIEQuUi5FLg0KMTk5OTpbQ3VsdHVyZV0gVGhlIENpdHRhc2xvdyBvcmdhbml6YXRpb24gd2FzIGNyZWF0ZWQgYnkgUGFvbG8gU2F0dXJuaW5pLCB0aGUgZm9ybWVyIG1heW9yIG9mIEdyZXZlIGluIENoaWFudGksIEl0YWx5LiBTYXR1cm5pbmkgd2FzIGluc3BpcmVkIGJ5IENhcmxvIFBldHJpbmkgYW5kIGhpcyBTbG93IEZvb2QgbW92ZW1lbnQsIHN0YXJ0ZWQgaW4gdGhlIDE5ODBzIHRvIHByb3Rlc3QgdGhlIGZpcnN0IE1jRG9uYWxkJ3MgY2hhaW4gaW4gUm9tZS4gU2luY2UgdGhlbiwgdGhlIENpdHRhc2xvdyBtb3ZlbWVudCBoYXMgZ3Jvd24gYWNyb3NzIGZvdXIgY29udGluZW50cywgd2l0aCAyNjIgcGFydGljaXBhdGluZyB0b3ducyBhcyBvZiAyMDIwLiANCjE5OTk6W01hbmFnZW1lbnRdW0J1c2luZXNzXVtQc3ljaG9sb2d5XVtSZXNlYXJjaF0gRHVubmluZyBhbmQgS3J1Z2VyIEVmZmVjdDogRGF2aWQgRHVubmluZyBhbmQgSnVzdGluIEtydWdlciBwdWJsaXNoZWQgdGhlIGluaXRpYWwgc3R1ZHkgaW4gMTk5OSB1bmRlciB0aGUgdGl0bGUgIlVuc2tpbGxlZCBhbmQgVW5hd2FyZSBvZiBJdDogSG93IERpZmZpY3VsdGllcyBpbiBSZWNvZ25pemluZyBPbmUncyBPd24gSW5jb21wZXRlbmNlIExlYWQgdG8gSW5mbGF0ZWQgU2VsZi1Bc3Nlc3NtZW50cyIuDQoxOTk5OltSZXNlYXJjaF0gUmVzZWFyY2ggYnkgVVMgTmF0aW9uYWwgUmVzZWFyY2ggQ291bmNpbC4gV2F0ZXIgZnJvbSB1bmRlcmdyb3VuZCBzb3VyY2VzIG1heSBjb250YWluIHNpZ25pZmljYW50IGFtb3VudHMgb2YgcmFkb24gZGVwZW5kaW5nIG9uIHRoZSBzdXJyb3VuZGluZyByb2NrIGFuZCBzb2lsIGNvbmRpdGlvbnMsIHdoZXJlYXMgc3VyZmFjZSBzb3VyY2VzIGdlbmVyYWxseSBkbyBub3QuDQoxOTk5OltOU0VdIEluY29ycG9yYXRlZCBpbiAxOTk5LCBJUkNUQyBpcyBhIE1pbmkgUmF0bmEgKENhdGVnb3J5IDEsIENlbnRyYWwgUHVibGljIFNlY3RvciBFbnRlcnByaXNlcyApIGFuZCB0aGUgb25seSBjb21wYW55IGF1dGhvcml6ZWQgYnkgdGhlIEluZGlhbiBnb3Zlcm5tZW50IHRvIHByb3ZpZGUgb25saW5lIHJhaWx3YXkgdGlja2V0cywgY2F0ZXJpbmcgc2VydmljZXMsIGFuZCBwYWNrYWdlZCBkcmlua2luZyB3YXRlciBhdCByYWlsd2F5IHN0YXRpb25zIGFuZCB0cmFpbnMgaW4gSW5kaWEuDQoxOTk5OltNbnRuZ2ddW0Jvb2tdIFN0ZXZlIEhvdXNlIGlzIGEgd29ybGQtcmVub3duZWQgY2xpbWJlciwgbW91bnRhaW4gZ3VpZGUgYW5kIFBhdGFnb25pYSBhbWJhc3NhZG9yLCB3aWRlbHkgcmVnYXJkZWQgZm9yIGhpcyBjbGVhbiwgbGlnaHQtYW5kLWZhc3Qgc3R5bGUuIEhlIGhhcyBwdWJsaXNoZWQgYXJ0aWNsZXMgaW4gYSBudW1iZXIgb2YgcGVyaW9kaWNhbHMgaW5jbHVkaW5nOiBBbHBpbmlzdCwgUm9jayBhbmQgSWNlLCBDbGltYmluZywgVGhlIEFtZXJpY2FuIEFscGluZSBKb3VybmFsLCBHcmlwcGVkLCBDYW5hZGlhbiBBbHBpbmUgSm91cm5hbCwgQ2xpbWIsIFZlcnRpY2FsLCBNb250YWduZXMsIFJpc2ssIEFscCssIENhbXBvIEJhc2UsIERlc25pdmVsLCBhbmQgU3RpbGUgQWxwaW4uIEhpcyBlc3NheXMgaGF2ZSBiZWVuIHB1Ymxpc2hlZCBpbiBzZXZlcmFsIGJvb2tzIGluY2x1ZGluZzsgQ29udGFjdDogTW91bnRhaW4gQ2xpbWJpbmcgYW5kIEVudmlyb25tZW50YWwgVGhpbmtpbmc7IFNvbHRhcmksIGEgY29sbGVjdGlvbiBvZiBlc3NheXMgYWJvdXQgc29sbyBjbGltYmluZyBwdWJsaXNoZWQgaW4gSXRhbGlhbjsgQmVyZywgYSBHZXJtYW4gYm9vayBhYm91dCBjbGltYmluZyBpbiB0aGUgSGltYWxheWE7IGFuZCBhbiB1cGNvbWluZyBib29rIGFib3V0IE5hbmdhIFBhcmJhdCBlZGl0ZWQgYnkgUmVpbmhvbGQgTWVzc25lci4gSGUgaGFzIHdvcmtlZCBhcyBhIFBhdGFnb25pYSBhbHBpbmUgYW1iYXNzYWRvciBzaW5jZSAxOTk5LiBQdWJsaXNoZWQ6IFRyYWluaW5nIGZvciB0aGUgTmV3IEFscGluaXNtOiBBIE1hbnVhbCBmb3IgdGhlIENsaW1iZXIgYXMgQXRobGV0ZSBQYXBlcmJhY2sg4oCTIElsbHVzdHJhdGVkLCAzIEFwcmlsIDIwMTQNCjE5OTk6W01udG5nZ10gQ29ucmFkIEFua2VyIChib3JuIE5vdmVtYmVyIDI3LCAxOTYyKSBpcyBhbiBBbWVyaWNhbiByb2NrIGNsaW1iZXIsIG1vdW50YWluZWVyLCBhbmQgYXV0aG9yLiBIZSB3YXMgdGhlIHRlYW0gbGVhZGVyIG9mIFRoZSBOb3J0aCBGYWNlIGNsaW1iaW5nIHRlYW0gZm9yIDI2IHllYXJzIHVudGlsIDIwMTguWzJdIEluIDE5OTksIGhlIGxvY2F0ZWQgR2VvcmdlIE1hbGxvcnkncyBib2R5IG9uIEV2ZXJlc3QgYXMgYSBtZW1iZXIgb2YgYSBzZWFyY2ggdGVhbSBsb29raW5nIGZvciB0aGUgcmVtYWlucyBvZiB0aGUgQnJpdGlzaCBjbGltYmVyIHdobyB3YXMgbGFzdCBzZWVuIGluIDE5MjQuDQoxOTk5OlRoZSBQaXBpc3RyZWwgVmlydXMgZmxldyBmb3IgdGhlIGZpcnN0IHRpbWUgb24gQXVndXN0IDEwLCAxOTk5LiBQcm9kdWN0aW9uIGJlZ2FuIG9uIEphbnVhcnkgMjAsIDIwMDAuIFRoZSBkZXZlbG9wbWVudCBvZiB0aGUgc2hvcnQgd2luZyB2ZXJzaW9uIHN0YXJ0ZWQgaW4gMjAwNy4gVGhlIFZpcnVzIFNXIHByb2R1Y3Rpb24gc3RhcnRlZCBpbiAyMDA4LiBUaGUgVmlydXMgd29uIHRoZSBOQVNBIDIwMDcgUGVyc29uYWwgQWlyIFZlaGljbGUgKFBBVikgQ2hhbGxlbmdlIGFuZCB0aGUgMjAwOCBHZW5lcmFsIEF2aWF0aW9uIFRlY2hub2xvZ3kgKEdBVCkgQ2hhbGxlbmdlLg0KMTk5OTpbc2lsdmljc10gU3VzdGFpbmFibGUgUHJhY3RpY2VzOiBSZXNlYXJjaCBpbiB0aGUgMjB0aCBjZW50dXJ5IHZhbGlkYXRlZCB0aGF0IHNlY29uZC1ncm93dGggc3RhbmRzIGNvdWxkIGJlIHN1c3RhaW5hYmx5IG1hbmFnZWQgdGhyb3VnaCB0ZWNobmlxdWVzIGxpa2UgdGhlIHNlZWQgdHJlZSBtZXRob2QuIFRvZGF5LCBzaWx2aWN1bHR1cmUgZm9jdXNlcyBvbiBjb21wbGV4IHN0YW5kIHN0cnVjdHVyZXMsIGJhbGFuY2luZyBjb21tZXJjaWFsIGRlbWFuZCB3aXRoIGVudmlyb25tZW50YWwgc3Rld2FyZHNoaXAuIA0KDQoyMXN0IGNlbnR1cnkgQ0Ugc3RhcnRlZCBvbiAxc3QgSmFuIDIwMDEgQUQuDQoNCjIwMDBzOltSZXNlYXJjaF0gVGhlIGNsYWltIHRoYXQgIndlIGFyZSA2MCUgYmFuYW5hIiAob3Igc2hhcmUgNjAlIG9mIG91ciBETkEpIGlzIGEgcG9wdWxhciwgeWV0IG9mdGVuIG1pc2ludGVycHJldGVkLCBzdGF0aXN0aWMgdGhhdCBvcmlnaW5hdGVkIGZyb20gY29tcGFyaXNvbnMgb2YgcHJvdGVpbi1jb2RpbmcgZ2VuZXMsIGxpa2VseSBwb3B1bGFyaXplZCBpbiB0aGUgZWFybHkgMjAwMHMgZm9sbG93aW5nIHByZWxpbWluYXJ5IHN0dWRpZXMgb2YgdGhlIGJhbmFuYSBnZW5vbWUuIEl0IHJlZmVycyB0byBhYm91dCA2MCUgb2YgaHVtYW4gZ2VuZXMgaGF2aW5nIGEgcmVjb2duaXphYmxlIGNvdW50ZXJwYXJ0IGluIGJhbmFuYXMsIG5vdCA2MCUgb2Ygb3VyIHRvdGFsIEROQS4gDQpNYW55IG9mIHRoZSDigJxob3VzZWtlZXBpbmfigJ0gZ2VuZXMgdGhhdCBhcmUgbmVjZXNzYXJ5IGZvciBiYXNpYyBjZWxsdWxhciBmdW5jdGlvbiwgc3VjaCBhcyBmb3IgcmVwbGljYXRpbmcgRE5BLCBjb250cm9sbGluZyB0aGUgY2VsbCBjeWNsZSwgYW5kIGhlbHBpbmcgY2VsbHMgZGl2aWRlIGFyZSBzaGFyZWQgYmV0d2VlbiBtYW55IHBsYW50cyAoaW5jbHVkaW5nIGJhbmFuYXMpIGFuZCBhbmltYWxzLldoaWxlIDYwJSBvZiBnZW5lcyBoYXZlIGNvdW50ZXJwYXJ0cywgdGhlc2UgZXNzZW50aWFsIGdlbmVzIG1ha2UgdXAgb25seSBhIHNtYWxsIGZyYWN0aW9uIG9mIHRoZSB0b3RhbCBnZW5vbWU7IGh1bWFucyBhbmQgYmFuYW5hcyBhcmUgbm90IDYwJSBpZGVudGljYWwgb3ZlcmFsbC4gDQpUaGUgcGhyYXNlIGlzIGVzc2VudGlhbGx5IGEgc2ltcGxpZmllZCwgb2Z0ZW4tZXhhZ2dlcmF0ZWQsIHdheSBvZiBoaWdobGlnaHRpbmcgdGhhdCBhbGwgbGlmZSBzaGFyZXMgY29tbW9uIGFuY2VzdHJhbCBnZW5lcyBmb3IgYmFzaWMgY2VsbHVsYXIgcHJvY2Vzc2VzLiANCjIwMDBzOltNQkFdIFNob3VsZCBDb3N0IE1vZGVsaW5nOiBNb2Rlcm4gIlNob3VsZCBDb3N0IiBtb2RlbHMgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBpZGVhbCBjb3N0IG9mIGEgcHJvZHVjdCwgYWNjb3VudGluZyBmb3IgbGFib3IsIG1hdGVyaWFscywgYW5kIG92ZXJoZWFkLiBFbnZpcm9ubWVudGFsICYgU29jaWFsIEltcGFjdDogTW9kZXJuIENCQSBub3cgcm91dGluZWx5IGluY2x1ZGVzIGVudmlyb25tZW50YWwgYW5kIHNvY2lhbCBpbXBhY3RzIGluIGFkZGl0aW9uIHRvIGZpbmFuY2lhbCBvbmVzLiBTaGlmdCBmcm9tIExvY2FsIHRvIEdsb2JhbDogRWFybHksIGhpZ2hseSBsb2NhbCBhc3Nlc3NtZW50cyBldm9sdmVkIGludG8gbGFyZ2Utc2NhbGUsIG5hdGlvbmFsLCBhbmQgaW50ZXJuYXRpb25hbCBDQkEuIFJlZmluZW1lbnQgb2YgVGVjaG5pcXVlczogTW92aW5nIGZyb20gc2ltcGxlLCBzaW5nbGUtcGVyaW9kIG1vZGVscyB0byBjb21wbGV4LCBtdWx0aS1wZXJpb2Qgc2ltdWxhdGlvbnMuIEluY3JlYXNlZCBEYXRhIFVzZTogVGhlIGF2YWlsYWJpbGl0eSBvZiBsYXJnZSwgZ3JhbnVsYXIgZGF0YSBzZXRzIGhhcyBhbGxvd2VkIGZvciBtb3JlIHByZWNpc2UgYW5kIHJlbGlhYmxlIGFuYWx5c2lzLiANCjIwMDBzOltNbnRuZ2ddW0V4dHJlbWVdIEluIHRoZSBlYXJseSAyMDAwcywgRGlkaWVyIEJlcnRob2Qgd2FzIHRoZSBiZXN0IGNyYWNrIGNsaW1iZXIgaW4gdGhlIHdvcmxkLCB0aGVuIGhlIGRyb3BwZWQgb3V0IG9mIGNsaW1iaW5nIGFuZCBlc3NlbnRpYWxseSBkaXNhcHBlYXJlZCBmcm9tIHRoZSB3b3JsZC4NCjIwMDBzOltSZWFsdHldIEVhcmx5IDIwMDBzOiBSZWFsIGVzdGF0ZSB3YXMgaW4gaXRzIGVhcmx5IHN0YWdlcyBpbiBJbmRpYSwgd2l0aCBncmFkdWFsIGdyb3d0aCBhbmQgZGV2ZWxvcG1lbnQuIA0KMjAwMHM6VGVhbXdvcmsgaXMgbm93IGFuIGludGVncmFsIHBhcnQgb2Ygb3JnYW5pemF0aW9uYWwgc3RyYXRlZ3ksIHdpdGggYSBncmVhdGVyIGVtcGhhc2lzIG9uIGN1c3RvbWl6YXRpb24sIHBlcnNvbmFsaXphdGlvbiwgYW5kIHN0cmF0ZWdpYyBpbnRlZ3JhdGlvbiBvZiB0ZWFtLWJ1aWxkaW5nIHByYWN0aWNlcy4gVGhlIHJpc2Ugb2YgdGVjaG5vbG9neSBoYXMgYWxzbyBpbmZsdWVuY2VkIHRlYW13b3JrLCB3aXRoIHJlbW90ZSB3b3JrIGJlY29taW5nIG1vcmUgcHJldmFsZW50IGFuZCBuZXcgdG9vbHMgZW1lcmdpbmcgdG8gZmFjaWxpdGF0ZSBjb2xsYWJvcmF0aW9uLiANCg0KMjAwMDpbVVNdW0dlb1BvbGl0aWNzXSBvdmVydGhyb3cgb2YgU2xvYm9kYW4gTWlsb8WhZXZpxIcuIChVUydzIGludm9sdmVtZW50IGluIHJlZ2ltZSBjaGFuZ2UpDQoyMDAwOiBbR2VvUG9saXRpY3NdW01pbGl0YXJ5XVtFY29ub21pY3NdIFRoZSBVUyBEb2xsYXIgaG9sZHMgYSA3MiUgc2hhcmUgb2YgYWxsIGdsb2JhbCBjdXJyZW5jeSByZXNlcnZlcyBbWzE2OjQyXShodHRwOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dllKcmkxZU5SeWMmdD0xMDAyKV0uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdIDI2IEFwcmlsIDIwMDA6IHRoZSBHZXJtYW4gdGVhbSBvcGVyYXRpbmcgdGhlIG1hc3Mgc3BlY3Ryb21ldGVyIG9uIE5BU0EncyBTdGFyZHVzdCBtaXNzaW9uIGFubm91bmNlZCB0aGUgZGV0ZWN0aW9uIG9mIHZlcnkgbGFyZ2Ugb3JnYW5pYyBtb2xlY3VsZXMgaW4gaW50ZXJzdGVsbGFyIHNwYWNlLiBOb25iaW9sb2dpY2FsIHNvdXJjZXMgZm9yIG9yZ2FuaWMgbW9sZWN1bGVzIHNvIGxhcmdlIGFyZSBub3Qga25vd24uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdMTkgT2N0b2JlciAyMDAwLCBhIHRlYW0gb2YgYmlvbG9naXN0cyBhbmQgYSBnZW9sb2dpc3QgYW5ub3VuY2VkIHRoZSByZXZpdmFsIG9mIGJhY3RlcmlhIHRoYXQgYXJlIDI1MCBtaWxsaW9uIHllYXJzIG9sZCwgc3RyZW5ndGhlbmluZyB0aGF0IGNhc2UgdGhhdCBiYWN0ZXJpYWwgc3BvcmVzIGNhbiBiZSBpbW1vcnRhbC4NCjEzIERlY2VtYmVyIDIwMDA6IGEgTkFTQSB0ZWFtIGRlbW9uc3RyYXRlZCB0aGF0IHRoZSBtYWduZXRvc29tZXMgaW4gTWFycyBtZXRlb3JpdGUgQUxIIDg0MDAxIGFyZSBiaW9sb2dpY2FsLg0KMjAwMDpbUmVzZWFyY2hdW1NwYWNlXSBNaWxlaWtvd3NreSBDLCBDdWNpbm90dGEgRkEsIFdpbHNvbiBKVywgR2xhZG1hbiBCLCBIb3JuZWNrIEcsIExpbmRlZ3JlbiBMLCBNZWxvc2ggSiwgUmlja21hbiBILCBWYWx0b25lbiBNLCBaaGVuZyBKUS4gTmF0dXJhbCB0cmFuc2ZlciBvZiB2aWFibGUgbWljcm9iZXMgaW4gc3BhY2UuIEljYXJ1cyAyMDAwLCAxNDU6Mzkx4oCTNDI3LiBbRE9JXSBbUHViTWVkXSBbR29vZ2xlIFNjaG9sYXJdDQoyMDAwOltTcGFjZVhdIFMvMjAwMCAoOTApIDEgTW9vbiBEaXNjb3ZlcmVyOiBXaWxsaWFtIEouIE1lcmxpbmUgT3JiaXRzOiA5MCBBbnRpb3BlIEFic29sdXRlIG1hZ25pdHVkZTogOS4wMg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gZGVtb25zdHJhdGVkIFNob3LigJlzIGFsZ29yaXRobSBvbiBhIDUtcXViaXQgTk1SIHF1YW50dW0gY29tcHV0ZXIsIGZhY3RvcmluZyB0aGUgbnVtYmVyIDE1Lg0KMjAwMDogQXQgYWdlIDE0IGFuZCBpbiBjbGFzcyA4dGgsIEFhcm9uIFN3YXJ0eiBiZWNhbWUgYSBtZW1iZXIgb2YgdGhlIHdvcmtpbmcgZ3JvdXAgdGhhdCBhdXRob3JlZCB0aGUgUlNTIDEuMCB3ZWIgc3luZGljYXRpb24gc3BlY2lmaWNhdGlvbi4NCjIwMDA6IE1ha2VteVRyaXANCjIwMDAgKEphbiAxNCk6W0phY2tdIEthaG8gTmFhLi4uIFB5YWFyIEhhaQ0KMjAwMCAoRmViKTogSW5kaWFuIFJhaWx3YXlzIHdlYiBzaXRlIGkuZS4gaHR0cDovL2luZGlhbnJhaWx3YXlzLmdvdi5pbi8gd2FzIGRlcGxveWVkIGJ5IENSSVMuDQoyMDAwIChNYXIpOltCb29rXSBNYWxjb2xtIEdsYWR3ZWxsJ3MgZGVidXQgYm9vaywgVGhlIFRpcHBpbmcgUG9pbnQ6IEhvdyBMaXR0bGUgVGhpbmdzIENhbiBNYWtlIGEgQmlnIERpZmZlcmVuY2UuIA0KQmxpbms6IFRoZSBQb3dlciBvZiBUaGlua2luZyBXaXRob3V0IFRoaW5raW5nICgyMDA1LCBKYW4gMTEpOyANCk91dGxpZXJzOiBUaGUgU3Rvcnkgb2YgU3VjY2VzcyAoMjAwOCwgTm92IDE4KTsgDQpXaGF0IHRoZSBEb2cgU2F3OiBBbmQgT3RoZXIgQWR2ZW50dXJlcyAoMjAwOSwgT2N0IDIwKTsgDQpEYXZpZCBhbmQgR29saWF0aDogVW5kZXJkb2dzLCBNaXNmaXRzLCBhbmQgdGhlIEFydCBvZiBCYXR0bGluZyBHaWFudHMgKDIwMTMsIE9jdCAxKQ0KVGFsa2luZyB0byBTdHJhbmdlcnM6IFdoYXQgV2UgU2hvdWxkIEtub3cgYWJvdXQgdGhlIFBlb3BsZSBXZSBEb24ndCBLbm93ICgyMDE5KQ0KMjAwMCAoQXByIDEpOltCb29rXSBSb2JlcnQgS2l5b3Nha2kgJiBTaGFyb24gTGVjaHRlcidzIFJpY2ggRGFkIFBvb3IgRGFkLg0KMjAwMCAoQXByIDEpOltUZWNobm9sb2d5XVtSZXNlYXJjaF0gIldoeSBUaGUgRnV0dXJlIERvZXNuJ3QgTmVlZCBVcyIgaXMgYW4gYXJ0aWNsZSB3cml0dGVuIGJ5IEJpbGwgSm95IGluIHRoZSBBcHJpbCAyMDAwIGlzc3VlIG9mIFdpcmVkIG1hZ2F6aW5lLiBJbiB0aGUgYXJ0aWNsZSwgaGUgYXJndWVzIHRoYXQgIk91ciBtb3N0IHBvd2VyZnVsIDIxc3QtY2VudHVyeSB0ZWNobm9sb2dpZXPigJRyb2JvdGljcywgZ2VuZXRpYyBlbmdpbmVlcmluZywgYW5kIG5hbm90ZWNo4oCUYXJlIHRocmVhdGVuaW5nIHRvIG1ha2UgaHVtYW5zIGFuIGVuZGFuZ2VyZWQgc3BlY2llcy4iIA0KMjAwMCAoSnVuIDI2KTpbTXVzaWNdICJZZWxsb3ciIGlzIGEgc29uZyBieSB0aGUgQnJpdGlzaCByb2NrIGJhbmQgQ29sZHBsYXkuIFRoZSBiYW5kIHdyb3RlIHRoZSBzb25nIGFuZCBjby1wcm9kdWNlZCBpdCB3aXRoIEJyaXRpc2ggcmVjb3JkIHByb2R1Y2VyIEtlbiBOZWxzb24gZm9yIHRoZWlyIGRlYnV0IGFsYnVtLCBQYXJhY2h1dGVzICgyMDAwKS4gVGhlIHNvbmcgd2FzIHJlY29yZGVkIGluIE1hcmNoIDIwMDAgYW5kIHJlbGVhc2VkIG9uIDI2IEp1bmUgdGhhdCBzYW1lIHllYXIuDQoyMDAwIChTZXApOiBBbWF6b24ncyBKZWZmIEJlem9zIGZvdW5kZWQuDQoyMDAwIChTZXApOltDcmltZV1bSW5kaWFdIENoaG90YSBTaGFrZWVsJ3MgYXR0YWNrIG9uIFJhamFuIGluIGhpcyBCYW5na29rIGhvdGVsIHJvb20uDQoyMDAwIChTZXApOiBSYWlsVGVsIENvcnBvcmF0aW9uIG9mIEluZGlhIEx0ZC4gZm91bmRlZCBhbmQgSFEnZCBhdCAxNDMsIEluc3RpdHV0aW9uYWwgQXJlYSwgU2VjdG9yLTQ0LCBHdXJnYW9uLCBIYXJ5YW5hLCBJbmRpYS4gSXQgaXMgYSBNaW5pcmF0bmEgZW50ZXJwcmlzZSBvZiBHb3Zlcm5tZW50IG9mIEluZGlhIGZvY3VzaW5nIG9uIHByb3ZpZGluZyBicm9hZGJhbmQgYW5kIFZQTiBzZXJ2aWNlcy4NCjIwMDAgKFNlcCAxNyk6IFtHZW9Qb2xpdGljc10gVGhlIGlkZWEgb2YgYW4gQXNpYSBDb29wZXJhdGlvbiBEaWFsb2d1ZSAoQUNEKSB3YXMgcmFpc2VkIGF0IHRoZSBGaXJzdCBJbnRlcm5hdGlvbmFsIENvbmZlcmVuY2Ugb2YgQXNpYW4gUG9saXRpY2FsIFBhcnRpZXMgKGhlbGQgaW4gTWFuaWxhIGJldHdlZW4gMTfigJMyMCBTZXB0ZW1iZXIgMjAwMCkgYnkgU3VyYWtpYXJ0IFNhdGhpcmF0aGFpLCB0aGVuIGRlcHV0eSBsZWFkZXIgb2YgdGhlIG5vdyBkZWZ1bmN0IFRoYWkgUmFrIFRoYWkgUGFydHksIG9uIGJlaGFsZiBvZiBoaXMgcGFydHkgbGVhZGVyLCBUaGFrc2luIFNoaW5hd2F0cmEsIHRoZW4gUHJpbWUgTWluaXN0ZXIgb2YgVGhhaWxhbmQuIEl0IHdhcyBzdWdnZXN0ZWQgdGhhdCBBc2lhIGFzIGEgY29udGluZW50IHNob3VsZCBoYXZlIGl0cyBvd24gZm9ydW0gdG8gZGlzY3VzcyBBc2lhLXdpZGUgY29vcGVyYXRpb24uIEFmdGVyd2FyZHMsIHRoZSBpZGVhIG9mIHRoZSBBQ0Qgd2FzIGZvcm1hbGx5IHB1dCBmb3J3YXJkIGR1cmluZyB0aGUgMzR0aCBBU0VBTiBGb3JlaWduIE1pbmlzdGVycyBNZWV0aW5nIGluIEhhbm9pLCAyM+KAkzI0IEp1bHkgMjAwMSBhbmQgYXQgdGhlIEFTRUFOIEZvcmVpZ24gTWluaXN0ZXJzIFJldHJlYXQgaW4gUGh1a2V0LCAyMOKAkzIxIEZlYnJ1YXJ5IDIwMDIuDQoyMDAwIChPY3QgNCk6W011c2ljXSBGb3JtZWQgaW4gMTk5NiwgTGlua2luIFBhcmsgcm9zZSB0byBpbnRlcm5hdGlvbmFsIGZhbWUgd2l0aCB0aGVpciBkZWJ1dCBzdHVkaW8gYWxidW0sIEh5YnJpZCBUaGVvcnkuIEZvdXIgc2luZ2xlcyB3ZXJlIHJlbGVhc2VkIGZyb20gSHlicmlkIFRoZW9yeTogIk9uZSBTdGVwIENsb3NlciIsICJJbiB0aGUgRW5kIiwgIkNyYXdsaW5nIiBhbmQgIlBhcGVyY3V0IiwgYWxsIG9mIHRoZW0gYmVpbmcgcmVzcG9uc2libGUgZm9yIGxhdW5jaGluZyBMaW5raW4gUGFyayBpbnRvIG1haW5zdHJlYW0gcG9wdWxhcml0eS4gV2hpbGUgIkluIHRoZSBFbmQiIHdhcyB0aGUgbW9zdCBzdWNjZXNzZnVsIG9mIHRoZSBmb3VyLCBhbGwgb2YgdGhlIHNpbmdsZXMgaW4gdGhlIGFsYnVtIHJlbWFpbiBzb21lIG9mIHRoZSBiYW5kJ3MgbW9zdCBzdWNjZXNzZnVsIHNvbmdzIHRvIGRhdGUuDQoyMDAwIChOb3YgOSk6IGZvcm1hdGlvbiBvZiBVdHRhcmFraGFuZCBhcyBVdHRhcmFuY2hhbCAyMDAwIChKdW4gOSk6IEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQWN0LCAyMDAwLiBUaGUgYmlsbCB3YXMgcGFzc2VkIGluIHRoZSBidWRnZXQgc2Vzc2lvbiBvZiAyMDAwIGFuZCBzaWduZWQgYnkgUHJlc2lkZW50IEsuIFIuIE5hcmF5YW5hbiBvbiA5IE1heSAyMDAwLiBUaGUgYmlsbCB3YXMgZmluYWxpc2VkIGJ5IGdyb3VwIG9mIG9mZmljaWFscyBoZWFkZWQgYnkgdGhlbiBNaW5pc3RlciBvZiBJbmZvcm1hdGlvbiBUZWNobm9sb2d5LCBQcmFtb2QgTWFoYWphbi4NCjIwMDA6IGZvcm1hdGlvbiBvZg0KMjAwMDogSmFpc2gtZS1Nb2hhbW1lZCAobGl0ZXJhbGx5ICJUaGUgQXJteSBvZiBNdWhhbW1hZCIsIEplTSkgZm91bmRlZCBhdCBCYWhhd2FscHVyLCBQdW5qYWIsIFBha2lzdGFuLg0KMjAwMDogQ2hpbmEncyBCZWlEb3UgbmF2aWdhdGlvbiB0ZXN0IHN5c3RlbSBzdGFydHMuDQoyMDAwOiBGaXNlcnYgaGFkIGFjcXVpcmVkIG1vcmUgdGhhbiA5MCBidXNpbmVzc2VzLiBUaGUgbnVtYmVyIG9mIGVtcGxveWVlcyBncmV3IGZyb20gMjY0IHRvIDE0LDAwMC4gRmlzZXJ2IHdhcyBhbiBpbmR1c3RyeSBsZWFkZXIsIHdpdGggcmV2ZW51ZSB0aGF0IGluY3JlYXNlZCBmcm9tICQyMSBtaWxsaW9uIHRvICQxLjQgYmlsbGlvbiBpbiAxNSB5ZWFycy4NCjIwMDAgKERlYyA4KTpbR2FtaW5nXSBQcm9qZWN0IEkuRy5JLiBpcyBhIHRhY3RpY2FsIGZpcnN0LXBlcnNvbiBzaG9vdGVyIHZpZGVvIGdhbWUuIEl0IHdhcyBkZXZlbG9wZWQgYnkgSW5uZXJsb29wIFN0dWRpb3MgYW5kIHJlbGVhc2VkIGluIERlY2VtYmVyIDIwMDAgYnkgRWlkb3MgSW50ZXJhY3RpdmUuIFRoZSBnYW1lIHJlY2VpdmVkIG1peGVkIHJldmlld3MgZHVlIHRvIHNob3J0Y29taW5ncyBpbmNsdWRpbmcgYSBwb29ybHkgcHJvZ3JhbW1lZCBBLkkuLCBsYWNrIG9mIGEgbWlkLWdhbWUgc2F2ZSBvcHRpb24sIGFuZCB0aGUgbGFjayBvZiBtdWx0aXBsYXllciBmZWF0dXJlcy4gSG93ZXZlciBpdCB3YXMgcHJhaXNlZCBmb3IgaXRzIHNvdW5kIGRlc2lnbiBhbmQgZ3JhcGhpY3MsIHRoYW5rcyBpbiBwYXJ0IHRvIGl0cyB1c2Ugb2YgYSBwcm9wcmlldGFyeSBnYW1lIGVuZ2luZSB0aGF0IHdhcyBwcmV2aW91c2x5IHVzZWQgaW4gSW5uZXJsb29wJ3MgSm9pbnQgU3RyaWtlIEZpZ2h0ZXIuDQoyMDAwIChEZWMgMjEpOltKYWNrXSBSYWp1IENoYWNoYSByZWxlYXNlZC4NCjIwMDA6IFtCdXNpbmVzc11bRmluYW5jZV1bQ29ycG9yYXRlXVtJbmRpYV0gUklMIHBpbG90ZWQgd29ybGQncyBsYXJnZXN0IHBldHJvbGV1bSByZWZpbmVyeSBhdCBKYW1uYWdhciwgR3VqYXJhdCwgcmVmaW5pbmcgMS4yNE1uIGJhcnJlbHMvZGF5Lg0KMjAwMDpbQ3JpbWVdW0luZGlhXSBQb2xpY2UgZW5jb3VudGVycyBpbiBNdW1iYWkuIE1vc3QgY3JpbWluYWxzIGZsZWVpbmcgdG8gQ2FsY3VsdHRhLiBBZnRhYiBCaGF0a2kgZGVzdGFiaWxpc2UgdGhlIGVjb25vbXkgYnkgc3ByZWFkaW5nIGZha2UgY3VycmVuY3kgbm90ZXMgcHJpbnRlZCBieSBJU0kgZnVuY3Rpb25hcmllcywgYW5kIHR3bywgc2VuZCBtZXJjZW5hcmllcyB0byBjb25kdWN0IGFiZHVjdGlvbnMgYW5kIHRlcnJvcmlzdCBhdHRhY2tzLg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBUZWNobmljYWwgVW5pdmVyc2l0eSBvZiBNdW5pY2ggKDUgcXViaXQpOyBMb3MgQWxhbW9zIE5hdGlvbmFsIExhYiAoNyBxdWJpdHMpDQoyMDAwOkluIDIwMDAsIFRhdGEgVGVhIGFjcXVpcmVkIHRoZSBUZXRsZXkgVGVhIENvbXBhbnkgZm9yICQ0MDcgbWlsbGlvbi4gT3RoZXIgbm90YWJsZSBhY3F1aXNpdGlvbnMgaW5jbHVkZSBOYXRTdGVlbCAoMjAwNCksIEJydW5uZXIgTW9uZCAoMjAwNSksIGFuZCBFaWdodCBPJ0Nsb2NrIENvZmZlZSAoMjAwNikuIA0KMjAwMDogQmlybGEgYWNxdWlyZWQgSW5kaWFuIEFsdW1pbnVtIENvbXBhbnkgKElOREFMKS4gDQoyMDAwOiBTYXR5YSBOYXJheWFuYSBHb2Vua2Egd29ya2VkIGFzIGFuIGludGVybmF0aW9uYWwgYnVzaW5lc3NtYW4gYmFzZWQgaW4gTXlhbm1hciBhbmQgSW5kaWEgZm9yIGEgbGFyZ2UgcGFydCBvZiBoaXMgbGlmZS4gSGUgd2FzIGEga2V5bm90ZSBzcGVha2VyIG9uIHRoZSBzdWJqZWN0IG9mIFNwaXJpdHVhbGl0eSBpbiBCdXNpbmVzcyBhdCB0aGUgMzB0aCBXb3JsZCBFY29ub21pYyBGb3J1bSBpbiBEYXZvcywgU3dpdHplcmxhbmQgYmV0d2VlbiAyNiBKYW4gYW5kIDIgRmViIDIwMDAuIFR3byB5ZWFycyBsYXRlciBoZSBjb25kdWN0ZWQgdGhlIGZpcnN0IDEwLWRheSBjb3Vyc2UgaW4gVmlwYXNzYW5hIE1lZGl0YXRpb24gZXNwZWNpYWxseSBmb3IgYnVzaW5lc3MgZXhlY3V0aXZlcyBhbmQgZ292ZXJubWVudCBvZmZpY2lhbHMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAyMjUgeWVhcnMgb2YgSW5kZXBlbmRlbnQgVVNBIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIA0KDQoyMDAxOltVU11bR2VvUG9saXRpY3NdIGludmFzaW9uIG9mIEFmZ2hhbmlzdGFuLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMjAwMTpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgU2hhbmdoYWkgQ29vcGVyYXRpb24gT3JnYW5pc2F0aW9uIChTQ08pIGlzIGEgRXVyYXNpYW4gcG9saXRpY2FsLCBlY29ub21pYywgaW50ZXJuYXRpb25hbCBzZWN1cml0eSBhbmQgZGVmZW5jZSBvcmdhbml6YXRpb24gb2YgdGVuIG1lbWJlciBzdGF0ZXMuIEl0IHdhcyBlc3RhYmxpc2hlZCBpbiAyMDAxIGJ5IHRoZSBQZW9wbGUncyBSZXB1YmxpYyBvZiBDaGluYSwgS2F6YWtoc3RhbiwgS3lyZ3l6c3RhbiwgUnVzc2lhLCBhbmQgVGFqaWtpc3RhbiBhbmQgVXpiZWtpc3Rhbi4gSW4gSnVuZSAyMDE3LCBpdCBleHBhbmRlZCB0byBlaWdodCBzdGF0ZXMsIHdpdGggSW5kaWEgYW5kIFBha2lzdGFuLiBJcmFuIGpvaW5lZCB0aGUgZ3JvdXAgaW4gSnVseSAyMDIzLCBhbmQgQmVsYXJ1cyBpbiBKdWx5IDIwMjQuIFNldmVyYWwgY291bnRyaWVzIGFyZSBlbmdhZ2VkIGFzIG9ic2VydmVycyBvciBkaWFsb2d1ZSBwYXJ0bmVycy4gRm91bmRlcnM6IENoaW5hLCBSdXNzaWEsIEthemFraHN0YW4sIFV6YmVraXN0YW4sIEt5cmd5enN0YW4sIFRhamlraXN0YW47IEhlYWRxdWFydGVyczogQmVpamluZywgQ2hpbmE7IEZvdW5kZWQ6IDE1IEp1bmUgMjAwMQ0KMjAwMTpbQnVzaW5lc3NdIDIwMDHigJMyMDA1OiBIRlQgZXhlY3V0aW9uIHRpbWVzIGRlY3JlYXNlZCBmcm9tIHNldmVyYWwgc2Vjb25kcyB0byBtaWxsaXNlY29uZHMuIChIRlQpDQoyMDAxOltDb21wdXRpbmddW1F1YW50dW1dICBJQk0gaW1wbGVtZW50ZWQgR3JvdmVy4oCZcyBhbGdvcml0aG0gb24gYSA3LXF1Yml0IE5NUiBxdWFudHVtIGNvbXB1dGVyLCBmaW5kaW5nIGEgbWFya2VkIGl0ZW0gaW4gYSBkYXRhYmFzZSBvZiA0IGVudHJpZXMuDQoyMDAxOiBMaWZlIG9mIFBpIGlzIGEgQ2FuYWRpYW4gcGhpbG9zb3BoaWNhbCBub3ZlbCBieSBZYW5uIE1hcnRlbCBwdWJsaXNoZWQuIFRoZSBwcm90YWdvbmlzdCBpcyBQaXNjaW5lIE1vbGl0b3IgIlBpIiBQYXRlbCwgYW4gSW5kaWFuIGJveSBmcm9tIFBvbmRpY2hlcnJ5IHdobyBleHBsb3JlcyBpc3N1ZXMgb2Ygc3Bpcml0dWFsaXR5IGFuZCBtZXRhcGh5c2ljcyBmcm9tIGFuIGVhcmx5IGFnZS4gSGUgc3Vydml2ZXMgMjI3IGRheXMgYWZ0ZXIgYSBzaGlwd3JlY2sgd2hpbGUgc3RyYW5kZWQgb24gYSBsaWZlYm9hdCBpbiB0aGUgUGFjaWZpYyBPY2VhbiB3aXRoIGEgQmVuZ2FsIHRpZ2VyIHdoaWNoIHJhaXNlcyBxdWVzdGlvbnMgYWJvdXQgdGhlIG5hdHVyZSBvZiByZWFsaXR5IGFuZCBob3cgaXQgaXMgcGVyY2VpdmVkIGFuZCB0b2xkLjtTZXZlbiBTdG9yaWVzICgxOTkzKQ0KMjAwMTpbQ3JpbWVdW0luZGlhXSBDaGhvdGEgUmFqYW4ncyBhc3NvY2lhdGVzIHRyYWNrZWQgZG93biBhbmQgc2hvdCBkZWFkIGhvdGVsaWVyIFZpbm9kIGluIE11bWJhaSwgYXMgd2VsbCBhcyBTdW5pbCBTb2FucyDigJMgYW5vdGhlciBEYXdvb2QgYXNzb2NpYXRlLg0KMjAwMSAoSmFuIDEpOltCb29rXSBHcmVnIE1jS2Vvd24ncyBFc3NlbnRpYWxpc206IFRoZSBEaXNjaXBsaW5lZCBQdXJzdWl0IG9mIExlc3MNCjIwMDEgKEphbiAxKTpbQm9va10gQnJpYW4gVHJhY3kncyBFYXQgVGhhdCBGcm9nIQ0KMjAwMTogVGhlIEFyZHVpbm8gcHJvamVjdCBzdGFydGVkIGF0IHRoZSBJbnRlcmFjdGlvbiBEZXNpZ24gSW5zdGl0dXRlIEl2cmVhIChJRElJKSBpbiBJdnJlYSwgSXRhbHkuIEF0IHRoYXQgdGltZSwgdGhlIHN0dWRlbnRzIHVzZWQgYSBCQVNJQyBTdGFtcCBtaWNyb2NvbnRyb2xsZXIgYXQgYSBjb3N0IG9mICQxMDAsIGEgY29uc2lkZXJhYmxlIGV4cGVuc2UgZm9yIG1hbnkgc3R1ZGVudHMuDQoyMDAxIChBcHIgNHRoKTogQ2hhcmxlcyBNLiBWZXN0LCB0aGUgdGhlbiBQcmVzaWRlbnQgb2YgTUlUIGFubm91bmNlZCBPcGVuQ291cnNlV2FyZSAoT0NXKSBwdWJsaWNpemluZyBhbGwgb2YgaXRzIDIsMDAwIGNvdXJzZXMgIGF0IHRoZSBlc3RpbWF0ZWQgY29zdCBvZiAkMTAwIG1pbGxpb24gKG9uIGFuIGF2Zy4sIGEgTUlUIHN0dWRlbnRzIHBheXMgYXJvdW5kICQyNiwwMDAgYXMgb2ZmbGluZSB0dWl0aW9uIGZlZSkNCjIwMDE6IFVTIGludmFkZWQgQWZnaGFuaXN0YW4gaW4gcmVzcG9uc2UgdG8gOS8xMSBhdHRhY2tzLiBPZmZpY2lhbGx5LCBJdCBoYXMgYmVjb21lIHRoZSBsb25nZXN0IHdhciBpbiBBbWVyaWNhbiBoaXN0b3J5Lg0KMjAwMTogaVBvZCBieSBUb255IEZhZGVsbA0KMjAwMSAoSnVuIDE1KTpbSmFja10gR2FkYXI6IEVrIFByZW0gS2F0aGE7IExhZ2FhbjogT25jZSBVcG9uIGEgVGltZSBpbiBJbmRpYQ0KMjAwMSAoU2VwIDExKTogOS8xMSBUZXJyb3Jpc3QgYXR0YWNrcy4gVGhlIFNlcHRlbWJlciAxMSBvciA5LzExLCBhdHRhY2tzIHdlcmUgYSBzZXJpZXMgb2YgZm91ciBjb29yZGluYXRlZCB0ZXJyb3Jpc3QgYXR0YWNrcyBieSB0aGUgSXNsYW1pYyB0ZXJyb3Jpc3QgZ3JvdXAgYWwtUWFlZGEgb24gdGhlIFVuaXRlZCBTdGF0ZXMgb24gdGhlIG1vcm5pbmcgb2YgVHVlc2RheSwgU2VwIDExLiBUaGUgbG9zcyBvZiBsaWZlIHdhcyBlc3RpbWF0ZWQgYXQganVzdCB1bmRlciAzLDAwMC4gVGhlIGV2ZW50IGNoYW5nZWQgQW1lcmljYW4gZm9yZWlnbiBwb2xpY3kuIEl0IHdhcyBhIG1vdGl2YXRpbmcgZmFjdG9yIGJlaGluZCB0aGUgY29udHJvdmVyc2lhbCBpbnZhc2lvbiBvZiBJcmFxIGFuZCBsZWQgdG8gYSDigJh3YXIgb24gdGVycm9y4oCZIHN5bWJvbGlzZWQgYnkgR3VhbnRhbmFtbyBCYXkgYW5kIGEgZGViYXRlIG92ZXIgdGhlIGp1c3RpZmljYXRpb24gb2YgdG9ydHVyZS4NCjIwMDEgKE9jdCA3KTpbR2VvUG9saXRpY3NdIFVuaXRlZCBTdGF0ZXMgaW52YXNpb24gb2YgQWZnaGFuaXN0YW46IEluIGxhdGUgMjAwMSwgdGhlIFVuaXRlZCBTdGF0ZXMgYW5kIGl0cyBjbG9zZSBhbGxpZXMgaW52YWRlZCBBZmdoYW5pc3RhbiBhbmQgdG9wcGxlZCB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50LiBUaGUgaW52YXNpb24ncyBzdGF0ZWQgYWltcyB3ZXJlIHRvIGRpc21hbnRsZSBhbC1RYWVkYSwgd2hpY2ggaGFkIGV4ZWN1dGVkIHRoZSBTZXB0ZW1iZXIgMTEgYXR0YWNrcywgYW5kIHRvIGRlbnkgaXQgYSBzYWZlIGJhc2Ugb2Ygb3BlcmF0aW9ucyBpbiBBZmdoYW5pc3RhbiBieSByZW1vdmluZyB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50IGZyb20gcG93ZXIuIERlYyA3LCAyMDAxIG9ud2FyZCBzdGFydGVkIFdhciBpbiBBZmdoYW5pc3Rhbi4NCjIwMDEgKE9jdCAxNik6W0Jvb2tdIE1jS2luc2V5IFJlc2VhcmNoZXIgSmFtZXMgQy4gQ29sbGlucycgR29vZCBUbyBHcmVhdDogV2h5IFNvbWUgQ29tcGFuaWVzIE1ha2UgdGhlIExlYXAuLi5BbmQgT3RoZXJzIERvbid0OyANCjIwMDEgKE5vdik6W0NyaW1lXVtJbmRpYV0gQWJkdWwgR2FmZmFyIGFsaWFzIENoaWtuYSBHYWZmYXIgY2F1Z2h0IGJ5IHRoZSBkZXRlY3RpdmUgZGVwYXJ0bWVudCBpbiBDYWxjdXR0YSANCjIwMDEgKEphbiAyKTogVGhlIG5vcnRoZXJuIGVsZWN0cmljYWwgZ3JpZCBjb2xsYXBzZWQgaW4gSW5kaWEuIEEgZmF1bHQgaW4gdGhlIHRyYW5zbWlzc2lvbiBzeXN0ZW0gaW4gdGhlIHN0YXRlIG9mIFV0dGFyIFByYWRlc2ggbGVkIHRvIGNhc2NhZGluZyBmYWlsdXJlIHRocm91Z2hvdXQgbm9ydGhlcm4gSW5kaWEgYWZmZWN0aW5nIDIzIGNyb3JlIHJlc2lkZW50cy4NCjIwMDE6IElWUlMgKCdJbnRlcmFjdGl2ZSBWb2ljZSBSZXNwb25zZSBTeXN0ZW0nKSBmb3IgdGVsZXBob25pYyBlbnF1aXJpZXMgYWJvdXQgdHJhaW5zIGludHJvZHVjZWQgaW4gc29tZSBzdGF0aW9ucy4NCjIwMDE6IE1hZGVFYXN5IGluY29ycG9yYXRlZCBhdCA0NC1BLzEsIEthbHUgU2FyYWksIE5lYXIgSGF1eiBLaGFzIE1ldHJvIFN0YXRpb24sIE5ldyBEZWxoaS0xMTAwMTYNCjIwMDE6IEFjYyB0byAyMDAxIGNlbnN1cywgMzAgbGFraHMgd2VyZSBpbW1pZ3JhdGVkIHRvIEluZGlhIGZyb20gQmFuZ2xhZGVzaCBhbG9uZSwgZm9sbG93ZWQgYnkgMTAgbGFraHMgZnJvbSBQYWtpc3RhbiBhbmQgNiBsYWtocyBmcm9tIE5lcGFsLg0KMjAwMSAoRGVjIDEzKTpbQ3JpbWVdW0luZGlhXSBUZXJyb3Jpc3QgYXR0YWNrIG9uIEluZGlhJ3MgUGFybGlhbWVudC4NCjIwMDE6IHRoZSBjdXN0b21lciBiYXNlIG9mIG1vYmlsZSBwaG9uZSBjb21wYW5pZXMgd2FzIDQgbWlsbGlvbi4NCjIwMDE6IEJlbmVmaXQgbGFubmVycywgVGV4YXMgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBIZWFsdGggQmVuZWZpdCBkaXZpc2lvbi4NCjIwMDE6IE5ldyBIb3Jpem9ucyB3YXMgaW5pdGlhbGx5IHNlbGVjdGVkIGZvciBmdW5kaW5nIGluIDIwMDEgYnV0IHdhcyBleGNsdWRlZCBmcm9tIHRoZSBOQVNBIDIwMDMgYnVkZ2V0LiBGdW5kaW5nIGZvciB0aGUgbWlzc2lvbiB3YXMgcmVpbnN0YXRlZCBhZnRlciBOZXcgSG9yaXpvbnMgd2FzIGxpc3RlZCBhcyBhIHRvcCBwcmlvcml0eSBpbiB0aGUgUGxhbmV0YXJ5IFNjaWVuY2UgRGVjYWRhbCBTdXJ2ZXkgb2YgMjAwM+jjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlallkllklklklklklklklklklklklklklklklklklklklklklklklklklklklkjjajlkasjdlajdlkajdlaj
+KAkzIwMDEuDQoxOTkzOiBBc2hvayBIYWxsIEdpcmwncyBSZXNpZGVudGlhbCBTY2hvb2wsIE1hamtoYWxpLg0KMTk5MzogQnkgdGhpcyB5ZWFyIHRoZXJlIHdlcmUgYXJvdW5kIDEwMCB3ZWItc2VydmVycyBhY3Jvc3MgdGhlIHdvcmxkLiAoQSByZXBvcnQgcHVibGlzaGVkIGluIGZpcnN0IGlzc3VlIG9mIFRoZSBXb3JsZCBXaWRlIFdlYiBOZXdzbGV0dGVyLCAxOTkzKQ0KMTk5MzogQUMgMy10aWVyIGNvYWNoZXMgJiBTbGVlcGVyIGNsYXNzIGFyZSBpbnRyb2R1Y2VkIGFwYXJ0IGZyb20gc2Vjb25kIGNsYXNzLg0KMTk5MzogR29JJ3MgRGlzdHJpY3QgUHJpbWFyeSBFZHVjYXRpb24gUHJvZ3JhbW1lIChEUEVQKSB3YXMgbGF1bmNoZWQsIHdpdGggYW4gYWltIG9mIGFjaGlldmluZyB0aGUgb2JqZWN0aXZlIG9mIHVuaXZlcnNhbCBwcmltYXJ5IGVkdWNhdGlvbi4gVGhpcyBwcm9ncmFtbWVkIGxhaWQgdGhlIGZvdW5kYXRpb25zIGZvciDgpLjgpLDgpY3gpLUg4KS24KS/4KSV4KWN4KS34KS+IOCkheCkreCkv+Ckr+CkvuCkqChFZHVjYXRpb24gZm9yIEFsbCBNb3ZlbWVudCkgYWltZWQgYXQgdGhlIHVuaXZlcnNhbGlzYXRpb24gb2YgZWxlbWVudGFyeSBlZHVjYXRpb24gbWFraW5nIGZyZWUgYW5kIGNvbXB1bHNvcnkgZWR1Y2F0aW9uIHRvIGNoaWxkcmVuIGJldHdlZW4gdGhlIGFnZXMgb2YgNiB0byAxNC4NCjE5OTM6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIHNwbGl0IHdpdGggRGF3b29kIGFuZCBmb3JtZWQgYW4gaW5kZXBlbmRlbnQgZ2FuZyB0aGF0IGZyZXF1ZW50bHkgY2xhc2hlZCB3aXRoIERhd29vZCdzIEQtQ29tcGFueS4NCjE5OTMgKEphbiA3KTpbQ3JpbWVdIFJpb3RzIHJlLXN0YXJ0ZWQgaW4gTXVtYmFpIGFuZCBsYXN0ZWQgZm9yIDIwIGRheXMuIFRoZSBJU0ksIHdoaWNoIGNvbnRyb2xsZWQgc2hpcHBpbmcgcm91dGVzIGZyb20gdGhlIEd1bGYgdG8gSW5kaWEncyB3ZXN0IGNvYXN0LCBkZW1hbmRlZCB0aGF0IHRoZSBtYWZpYSB0cmFuc3BvcnQgd2VhcG9ucyBhbmQgZXhwbG9zaXZlcyBpbnRvIEluZGlhIGluIHJldHVybiBmb3IgdGhlIHVzZSBvZiBQYWtpc3RhbidzIHdhdGVycy4gRGF3b29kIG1ldCB0aGVpciBJU0kgaGFuZGxlcnMgaW4gYSA1IHN0YXIgaG90ZWwgb2YgRHViYWkgaW4gSmFuIG9yIEZlYiBvZiAxOTkzLCB0aGVuIGNhbWUgdGhlIFJEWCB0aHJvdWdoIHRoZSBzYW1lIHBvcm91cyBhbmQgdW5jaGVja2VkIHNlYSByb3V0ZSB0aGF0IDI2LzExIGF0dGFja2VycyBzbGlwcGVkIGFjcm9zcyBhbmQgd3JlY2tlZCBtYXloZW0gaW4gTXVtYmFpLiBUaGUg4oCZOTMgYXR0YWNrcyB3ZXJlIGZpbmFsbHkgZXhlY3V0ZWQgaW4gbWFyY2ggdGhhdCBjbGFpbWVkIHNvbWUgMzAwIGlubm9jZW50IGxpdmVzLg0KMTk5MyAoTWFyIDYpOltQb2xpdHldW0luZGlhXSBTaGFyYWQgUGF3YXIgcmUtZWxlY2V0ZCBhcyBDTSBvZiBNSCBmb3IgMiB5ZWFycy4NCjE5OTMgKE1hciAxMik6W0NyaW1lXSBUaGUgMTk5MyBCb21iYXkgYm9tYmluZ3Mgd2VyZSBhIHNlcmllcyBvZiAxMiB0ZXJyb3Jpc3QgYm9tYmluZ3MgdGhhdCB0b29rIHBsYWNlIGluIEJvbWJheS4gVGhlIHNpbmdsZS1kYXkgYXR0YWNrcyByZXN1bHRlZCBpbiAyNTcgZmF0YWxpdGllcyBhbmQgMSw0MDAgaW5qdXJpZXMuIFRoZXJlIHdhcyBhbm90aGVyIHJhaWQgbmVhciBNYW5pc2ggbWFya2V0IHdoZXJlIGhhbmQgZ3JlbmFkZXMgd2VyZSByZWNvdmVyZWQuIEFmdGVyIGFub3RoZXIgdGlwIG9mZiBsZWQgdG8gZGlzY292ZXJ5IG9mIGEgaHVnZSBxdWFudGl0eSBvZiBSRFggZnJvbSBOYWdsYSBCdW5kZXIgb2ZmIEdob2RidW5kZXIgUm9hZCBpbiBUaGFuZS4g4oCcSW4gYWxsLCA1LDAwMCBraWxvZ3JhbXMgb2YgUkRYIHdhcyBicm91Z2h0IGludG8gTXVtYmFpIGFuZCB3ZSByZWNvdmVyZWQgMywzMDAga2lsb2dyYW1zIG9mIGl0IGluIGFsbCB0aGUgcmFpZHMs4oCdIHNheXMgQ2hhdWd1bGUuIFJlZHVjZWQgU2hvY2sgU2Vuc2l0aXZpdHkgKFJTUykgZXhwbG9zaXZlcywgc3VjaCBhcyBSU1MtUkRYLCB3aGljaCBjb3N0cyBhYm91dCBScy4gMSw1MDAtMiwwMDAgcGVyIGtnLiBBbmVlcyBjb250aW51ZWQgb3BlcmF0aW9uIG9mIEQtQ29tcGFueSB3aGljaCBpbmNsdWRlIGNvbnRyYWN0IGtpbGxpbmcsIGV4dG9ydGlvbiwgdGhlIGNpcmN1bGF0aW9uIG9mIGNvdW50ZXJmZWl0IGN1cnJlbmN5LCBhbmQgdGhlIHByb3Zpc2lvbiBvZiBhIHJhbmdlIG9mIGZyZWUtbGFuY2Ugc2VydmljZXMgdG8gdGVycm9yaXN0IGdyb3VwcyBhdCB0aGUgaW5zdGFuY2Ugb2YgUGFraXN0YW4ncyBJbnRlciBTZXJ2aWNlcyBJbnRlbGxpZ2VuY2UgKElTSSkuIEludGVycG9sIFJlZCBDb3JuZXIgbm90aWNlIGZvciBELUNvbXBhbnkuDQoxOTkzIChOb3YgMSk6IFRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGZvdW5kZWQuIEl0IGlzIGFuIGVjb25vbWljIGFuZCBwb2xpdGljYWwgcGFydG5lcnNoaXAgaW52b2x2aW5nIDI4IEV1cm9wZWFuIGNvdW50cmllcy4gSXQgYmVnYW4gYWZ0ZXIgV1cyIHRvIGZvc3RlciBlY29ub21pYyBjby1vcGVyYXRpb24sIHdpdGggdGhlIGlkZWEgdGhhdCBjb3VudHJpZXMgd2hpY2ggdHJhZGUgdG9nZXRoZXIgYXJlIG1vcmUgbGlrZWx5IHRvIGF2b2lkIGdvaW5nIHRvIHdhciB3aXRoIGVhY2ggb3RoZXIuDQoxOTkzIChOb3YgMyk6IFtHZW9Qb2xpdGljc10gVGhlIENvbW1vbiBNYXJrZXQgZm9yIEVhc3Rlcm4gYW5kIFNvdXRoZXJuIEFmcmljYSAoQ09NRVNBKSBpcyBhIHJlZ2lvbmFsIGVjb25vbWljIGNvbW11bml0eSBpbiBBZnJpY2Egd2l0aCB0d2VudHktb25lIG1lbWJlciBzdGF0ZXMgc3RyZXRjaGluZyBmcm9tIFR1bmlzaWEgdG8gRXN3YXRpbmkuIENPTUVTQSB3YXMgZm9ybWVkIGluIERlY2VtYmVyIDE5OTQsIHJlcGxhY2luZyBhIFByZWZlcmVudGlhbCBUcmFkZSBBcmVhIHdoaWNoIGhhZCBleGlzdGVkIHNpbmNlIDE5ODEuIE5pbmUgb2YgdGhlIG1lbWJlciBzdGF0ZXMgZm9ybWVkIGEgZnJlZSB0cmFkZSBhcmVhIGluIDIwMDAgKERqaWJvdXRpLCBFZ3lwdCwgS2VueWEsIE1hZGFnYXNjYXIsIE1hbGF3aSwgTWF1cml0aXVzLCBTdWRhbiwgWmFtYmlhIGFuZCBaaW1iYWJ3ZSksIHdpdGggUndhbmRhIGFuZCBCdXJ1bmRpIGpvaW5pbmcgdGhlIEZUQSBpbiAyMDA0LCB0aGUgQ29tb3JvcyBhbmQgTGlieWEgaW4gMjAwNiwgU2V5Y2hlbGxlcyBpbiAyMDA5IGFuZCBUdW5pc2lhIGFuZCBTb21hbGlhIGluIDIwMTguDQoxOTkzIChEZWMgMjApOiBPSENIUiBmb3JtZWQuIFRoZSBPZmZpY2Ugb2YgdGhlIFVuaXRlZCBOYXRpb25zIEhpZ2ggQ29tbWlzc2lvbmVyIGZvciBIdW1hbiBSaWdodHMgKE9IQ0hSKSwgYSBVbml0ZWQgTmF0aW9ucyBhZ2VuY3kgdGhhdCB3b3JrcyB0byBwcm9tb3RlIGFuZCBwcm90ZWN0IHRoZSBodW1hbiByaWdodHMgdGhhdCBhcmUgZ3VhcmFudGVlZCB1bmRlciBpbnRlcm5hdGlvbmFsIGxhdyBhbmQgc3RpcHVsYXRlZCBpbiB0aGUgVW5pdmVyc2FsIERlY2xhcmF0aW9uIG9mIEh1bWFuIFJpZ2h0cyBvZiAxOTQ4Lg0KMTk5Mzp0aGUgMjR0aCBhbmQgbGFzdCBHTE9OQVNTIHNhdGVsbGl0ZSB3YXMgbGF1bmNoZWQgZm9ybWluZyB0aGUgd2hvbGUgbmF2aWdhdGlvbiBjb25zdGVsbGF0aW9uIHNpbWlsYXIgdG8gdGhhdCBvZiBVUydzIEdQUy4NCjE5OTM6IFNIQS0wIChhIGhhc2ggZnVuY3Rpb24pIHdhcyBwcm9wb3NlZCBieSBOSVNULCBNYXJ5bGFuZCwgVVNBIChGb3VuZGVkOiAxOTAxKS4gSXQgcHJvZHVjZXMgYSAxNjAtYml0IGhhc2ggdmFsdWUsIHRodXMgdGhlIGJydXRlLWZvcmNlIGNvbGxpc2lvbiBvciAgbmVhci1jb2xsaXNpb24gYXR0YWNrIHJlcXVpcmVzIE8oMl44MCkgY29tcHV0YXRpb24uIFdpdGhpbiA1IHllYXJzLCBpdCB3YXMgbWFkZSBjb2xsaXNpb24gYXR0YWNrZWQgYnkgQ2hhYmF1ZCBhbmQgSm91eCB3aXRoIHRoZSBhdHRhY2sgY29tcGxleGl0eSBvZiAyXjYxLg0KMTk5MzogW0NvYWxnYXRlIHNjYW1dIE9uIDIzcmQgQXByaWwgMjAxMywgdGhlIFN0YW5kaW5nIENvbW1pdHRlZSBvbiBDb2FsIGFuZCBTdGVlbCB0YWJsZWQgaW4gUGFybGlhbWVudCB0aGF0IGFsbCAxOTQgY29hbCBibG9ja3MgZGlzdHJpYnV0ZWQgYmV0d2VlbiAxOTkzIGFuZCAyMDA4IHdlcmUgYXVjdGlvbmVkIGluIGFuIHVuYXV0aG9yaXplZCBtYW5uZXIgYW5kIHRoZSBjb3VudHJ5IGxvc3QgUnMuMS44NiBsYWtoIGNyb3JlLi4gRm9ybWVyIFByaW1lIE1pbmlzdGVyIE1hbm1vaGFuIFNpbmdoLCBhbG9uZyB3aXRoIEt1bWFyIE1hbmdhbGFtIEJpcmxhIGFuZCBQLkMuIFBhcmFraCwgd2VyZSBhY2N1c2VkIGFuZCBzdW1tb25lZCBieSBhIHNwZWNpYWwgY291cnQuIFsyTCBDcm9yZV0uIENvbXB0cm9sbGVyIGFuZCBBdWRpdG9yIEdlbmVyYWwgb2YgSW5kaWEgdG9vayAyMCB5ZWFycyB0byBJRCBvbmUgb2YgdGhlIGJpZ2dlc3Qgc2NhbXMgaW4gSW5kaWFuIGhpc3RvcnkuDQoxOTkzOiBBZnRlciBQcmVzaWRlbnQgQmlsbCBDbGludG9uIHRvb2sgb2ZmaWNlIGluIDE5OTMsIGhvd2V2ZXIsIHRoZSBVLlMuIGVjb25vbXkgZW1iYXJrZWQgb24gYSBsb25nIGFuZCBzdHJvbmcgZXhwYW5zaW9uLCBtYWtpbmcgdGhlIDE5OTBzIGEgZ3JlYXQgZGVjYWRlIGZvciBBbWVyaWNhJ3MgbW9uZXksIG92ZXJhbGwuIA0KMTk5MzpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTW90aHJhKDE5OTIpDQoxOTkzOltTcGFjZV0gSGlwcGFyY29zLCBhIHNjaWVudGlmaWMgc2F0ZWxsaXRlIG9mIHRoZSBFdXJvcGVhbiBTcGFjZSBBZ2VuY3kgKEVTQSkgbGFzdGVkIGZvciA0IHllYXJzIGJlZm9yZSBnb2luZyBvdXQtb2Ytc2VydmljZS4NCjE5OTM6W1NwYWNlXVtSZXNlYXJjaF0gSW4gMTk5MywgRG9uIFBhZ2UgYXJndWVkIHRoYXQgaWYgYSBibGFjayBob2xlIHN0YXJ0cyBpbiBhIHB1cmUgcXVhbnR1bSBzdGF0ZSBhbmQgZXZhcG9yYXRlcyBjb21wbGV0ZWx5IGJ5IGEgdW5pdGFyeSBwcm9jZXNzLCB0aGUgdm9uIE5ldW1hbm4gZW50cm9weSBvZiB0aGUgSGF3a2luZyByYWRpYXRpb24gaW5pdGlhbGx5IGluY3JlYXNlcyBhbmQgdGhlbiBkZWNyZWFzZXMgYmFjayB0byB6ZXJvIHdoZW4gdGhlIGJsYWNrIGhvbGUgaGFzIGRpc2FwcGVhcmVkLiBUaGlzIGlzIGNhbGxlZCB0aGUgUGFnZSBjdXJ2ZS4NCjE5OTM6W0Jvb2tzXVtIaXN0b3J5XSBHcmVlbuKAmXMgRGljdGlvbmFyeSBvZiBTbGFuZyBpcyB0aGUgbGFyZ2VzdCBoaXN0b3JpY2FsIGRpY3Rpb25hcnkgb2YgRW5nbGlzaCBzbGFuZy4gV3JpdHRlbiBieSBKb25hdGhvbiBHcmVlbiBvdmVyIDE3IHllYXJzIGZyb20gMTk5MywgaXQgcmVhY2hlZCB0aGUgcHJpbnRlZCBwYWdlIGluIDIwMTAgaW4gYSB0aHJlZS12b2x1bWUgc2V0IGNvbnRhaW5pbmcgbmVhcmx5IDEwMCwwMDAgZW50cmllcyBzdXBwb3J0ZWQgYnkgb3ZlciA0MDAsMDAwIGNpdGF0aW9ucyBmcm9tIGMuIGFkIDEwMDAgdG8gdGhlIHByZXNlbnQgZGF5LiBUaGUgbWFpbiBmb2N1cyBvZiB0aGUgZGljdGlvbmFyeSBpcyB0aGUgY292ZXJhZ2Ugb2Ygb3ZlciA1MDAgeWVhcnMgb2Ygc2xhbmcgZnJvbSBjLiAxNTAwIG9ud2FyZHMuDQoxOTkzOltFbnZdW0Rpc2FzdGVyXSBTb3V0aCBBc2lhbiBtb25zb29uIGZsb29kcywgM2sgZGVhdGhzDQoxOTkzOltHZW9ncmFwaHldIFRoZSBsYXN0IG1ham9yIHNoaWZ0cyBpbiBFYXJ0aCdzIGF4aXMgd2VyZSBpbmZsdWVuY2VkIGJ5IGNsaW1hdGUgY2hhbmdlOiBhIDMxLjUtaW5jaCBzaGlmdCBiZXR3ZWVuIDE5OTMgYW5kIDIwMTAgd2FzIHByaW1hcmlseSBjYXVzZWQgYnkgZ3JvdW5kd2F0ZXIgcHVtcGluZywgYW5kIGEgY2hhbmdlIGluIHBvbGFyIGRyaWZ0IGRpcmVjdGlvbiBhcm91bmQgdGhlIDE5OTBzIHdhcyBsaW5rZWQgdG8gbWVsdGluZyBnbGFjaWVycyBhbmQgaWNlIHNoZWV0cyBkdWUgdG8gZ2xvYmFsIHdhcm1pbmcuIEVhcnRoJ3MgYXhpcyBhbHNvIHNoaWZ0ZWQgYnkgYWJvdXQgNi41IGluY2hlcyBpbiBNYXJjaCAyMDExIGFmdGVyIHRoZSBKYXBhbmVzZSBlYXJ0aHF1YWtlLCBjYXVzaW5nIHRoZSBwbGFuZXQgdG8gc3BpbiBzbGlnaHRseSBmYXN0ZXIuDQoxOTkzOltXaG9dIEluIDE5OTMsIEluZGlhIGNhbWUgaGVhcnRicmVha2luZ2x5IGNsb3NlIHRvIHdpbm5pbmcgaXRzIGZpcnN0IE1pc3MgVW5pdmVyc2UgY3Jvd24gd2l0aCB0aGUgc3R1bm5pbmcgYW5kIGdyYWNlZnVsIE5hbXJhdGEgU2hpcm9ka2FyLCB3aG8gaGFkIGVhcmxpZXIgd29uIHRoZSBGZW1pbmEgTWlzcyBJbmRpYSB0aXRsZS4gUmVwcmVzZW50aW5nIEluZGlhIGF0IHRoZSBNaXNzIFVuaXZlcnNlIHBhZ2VhbnQgaGVsZCBpbiBNZXhpY28gQ2l0eSwgTmFtcmF0YSB3YXMgYSBzdHJvbmcgY29udGVuZGVy4oCUZWxlZ2FudCBpbiBoZXIgZ293biwgcG9pc2VkIGluIGludGVydmlld3MsIGFuZCBhIGZhbiBmYXZvcml0ZS4gU2hlIGVhc2lseSBtYWRlIGl0IHRvIHRoZSBUb3AgNiwgYW5kIGhlciBjaGFuY2VzIG9mIHdpbm5pbmcgbG9va2VkIGluY3JlZGlibHkgaGlnaC4gQnV0IHRoZW4gY2FtZSB0aGUgZmluYWwgcXVlc3Rpb246IOKAnElmIHlvdSBjb3VsZCBiZSBib3JuIGFzIGFueSBoaXN0b3JpY2FsIGZpZ3VyZSwgd2hvIHdvdWxkIGl0IGJlIGFuZCB3aHk/4oCdIFdoaWxlIG90aGVyIGNvbnRlc3RhbnRzIG5hbWVkIGdsb2JhbCBpY29ucyBsaWtlIE1vdGhlciBUZXJlc2EgYW5kIFByaW5jZXNzIERpYW5hLCBOYW1yYXRhIGdhdmUgYW4gaG9uZXN0LCBwZXJzb25hbCBhbnN3ZXLigJRzaGUgc2FpZCBzaGUgd291bGQgYmUgYm9ybiBhcyBoZXJzZWxmIG9yIHNvbWVvbmUgY2xvc2UgdG8gaGVyLCBiZWNhdXNlIHNoZSBiZWxpZXZlZCBpbiBsaXZpbmcgbGlmZSB3aXRoIHRydXRoIGFuZCBpbmRpdmlkdWFsaXR5LiBJdCB3YXMgYSBiZWF1dGlmdWwsIGdyb3VuZGVkIGFuc3dlcuKAlGJ1dCBub3QgdGhlIGtpbmQgb2YgZ3JhbmQsIGlkZWFsaXN0aWMgcmVzcG9uc2UgdGhlIGp1ZGdlcyB3ZXJlIGV4cGVjdGluZy4gVGhhdCBvbmUgbW9tZW50IG9mIHRydXRoLCBtYW55IGJlbGlldmUsIGNvc3QgaGVyIHRoZSBjcm93biwgYW5kIEluZGlhIGhhZCB0byB3YWl0IGFub3RoZXIgeWVhciBiZWZvcmUgU3VzaG1pdGEgU2VuIGJyb3VnaHQgdGhlIE1pc3MgVW5pdmVyc2UgdGl0bGUgaG9tZSBpbiAxOTk0LiBTdGlsbCwgTmFtcmF0YeKAmXMgYW5zd2VyIGJlY2FtZSBpY29uaWPigJRub3QgYmVjYXVzZSBpdCB3b24sIGJ1dCBiZWNhdXNlIGl0IHdhcyByZWFsLCBtYXJraW5nIGEgcmFyZSBpbnN0YW5jZSB3aGVyZSBob25lc3R5IHN0b29kIHRhbGxlciB0aGFuIGRpcGxvbWFjeS4NCjE5OTM6W0F2aWF0aW9uXVtFeHRyZW1lXVtXaG9dIFRoZSBIZXJic3QgbWFuZXV2ZXIgd2FzIGZpcnN0IHN1Y2Nlc3NmdWxseSBwZXJmb3JtZWQgb24gQXByaWwgMjksIDE5OTMsIGJ5IGFuIFgtMzEgYWlyY3JhZnQuIE5hbWVkIGFmdGVyIFdvbGZnYW5nIEhlcmJzdCwgYSBkZXZlbG9wZXIgb2YgcG9zdC1zdGFsbCB0ZWNobm9sb2d5IGZvciBNZXNzZXJzY2htaXR0LULDtmxrb3ctQmxvaG0gKE1CQiksIHRoaXMsIHBvc3Qtc3RhbGwgbWFuZXV2ZXIgZW5hYmxlcyBhIGZpZ2h0ZXIgdG8gbWFrZSBhIHJhcGlkIDE4MMKwIHR1cm4gd2l0aGluIGEgbWluaW1hbCByYWRpdXMuIA0KDQoxOTk04oCTMTk5NTpbVVNdW0dlb1BvbGl0aWNzXSBvY2N1cGF0aW9uIG9mIEhhaXRpLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgRXVyb3BlYW4gRWNvbm9taWMgQXJlYSwgYWJicmV2aWF0ZWQgYXMgRUVBLCBjb25zaXN0cyBvZiB0aGUgTWVtYmVyIFN0YXRlcyBvZiB0aGUgRXVyb3BlYW4gVW5pb24gKEVVKSBhbmQgdGhyZWUgY291bnRyaWVzIG9mIHRoZSBFdXJvcGVhbiBGcmVlIFRyYWRlIEFzc29jaWF0aW9uIChFRlRBKSAoSWNlbGFuZCwgTGllY2h0ZW5zdGVpbiBhbmQgTm9yd2F5OyBleGNsdWRpbmcgU3dpdHplcmxhbmQpLiBUaGUgQWdyZWVtZW50IG9uIHRoZSBFRUEgZW50ZXJlZCBpbnRvIGZvcmNlIG9uIDEgSmFudWFyeSAxOTk0LiANCjE5OTQ6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEV1cm9wZWFuIEVjb25vbWljIEFyZWEgKEVFQSkgd2FzIGVzdGFibGlzaGVkIG9uIDEgSmFudWFyeSAxOTk0LiBUaGUgYWdyZWVtZW50IGxpbmtzIHRoZSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aHJlZSBFRlRBIHN0YXRlc+KAlEljZWxhbmQsIExpZWNodGVuc3RlaW4sIGFuZCBOb3J3YXnigJRpbnRvIGEgc2luZ2xlIGludGVybmFsIG1hcmtldCwgYWxsb3dpbmcgZm9yIHRoZSBmcmVlIG1vdmVtZW50IG9mIGdvb2RzLCBwZXJzb25zLCBzZXJ2aWNlcywgYW5kIGNhcGl0YWwuIA0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBOQUZUQSwgdGhlIE5vcnRoIEFtZXJpY2FuIEZyZWUgVHJhZGUgQWdyZWVtZW50LCB3YXMgYSAxOTk0IGFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzLCBDYW5hZGEsIGFuZCBNZXhpY28gdG8gZWxpbWluYXRlIHRyYWRlIGJhcnJpZXJzIGFuZCBwcm9tb3RlIGZyZWUgdHJhZGUgaW4gTm9ydGggQW1lcmljYS4gSXQgZmFjaWxpdGF0ZWQgdGhlIG1vdmVtZW50IG9mIGdvb2RzIGFuZCBzZXJ2aWNlcyBhbmQgZXN0YWJsaXNoZWQgYSBsYXJnZSB0cmFkZSBibG9jLiBJbiBKdWx5IDIwMjAsIE5BRlRBIHdhcyByZXBsYWNlZCBieSB0aGUgVW5pdGVkIFN0YXRlcy1NZXhpY28tQ2FuYWRhIEFncmVlbWVudCAoVVNNQ0EpLCB3aGljaCBtb2Rlcm5pemVkIGFuZCBlbmhhbmNlZCB0aGUgdHJlYXR5IGZvciBhIGNvbnRlbXBvcmFyeSBlY29ub215Lg0KMTk5NDpbUy5BZnJpY2FdW1NvY2lhbGlzbV0gRmlyc3QgZnJlZSBlbGVjdGlvbnMgaW4gU291dGggQWZyaWNhOyBOZWxzb24gTWFuZGVsYQ0KMTk5NDpbUmVzZWFyY2hdW3NwYWNlXSBDYXJsIFNhZ2FuIGNvbmNlZGVkIHRoYXQgdGhpcyBhcHByb2FjaCB3b3VsZCBub3Qgd29yayBiZWNhdXNlIHRoZSBhdG1vc3BoZXJlIG9mIFZlbnVzIGlzIGZhciBkZW5zZXIgKDkwIGJhcnMpIHRoYW4gd2hhdCB3YXMgdW5kZXJzdG9vZCBpbiAxOTYxIChhIGZldyBiYXJzKSwgbWVhbmluZyB0aGUgY2FyYm9uIHdvdWxkIGp1c3QgYmUgb3hpZGl6ZWQgYmFjayBpbnRvIENPMi4NCjE5OTQ6W0NvbXB1dGluZ11bUXVhbnR1bV0gUGV0ZXIgU2hvciBkaXNjb3ZlcmVkIGFuIGFsZ29yaXRobSAoU2hvcidzIGFsZ29yaXRobSkgdGhhdCBjb3VsZCBmYWN0b3IgbGFyZ2UgbnVtYmVycyBpbiBwb2x5bm9taWFsIHRpbWUgb24gYSBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCB3b3VsZCBicmVhayB0aGUgc2VjdXJpdHkgb2YgbWFueSBjcnlwdG9ncmFwaGljIHNjaGVtZXMuIA0KMTk5NDpbQ29tcHV0aW5nXVtRdWFudHVtXSBQZXRlciBTaG9yIGFuZCBEb24gQ29wcGVyc21pdGggZmlndXJlZCBvdXQgaG93IHRvIHRha2UgYSBRdWFudHVtIEZvdXJpZXIgVHJhbnNmb3JtLg0KMTk5NDpUaGUgcHJvYmxlbSB3aXRoIHRoZSBwYXBlciBwdWJsaXNoZWQgZWFybGllciB0aGlzIG1vbnRoIHdhcyBpdHMgcmVsaWFuY2Ugb24gU2Nobm9ycidzIGFsZ29yaXRobSAobm90IHRvIGJlIGNvbmZ1c2VkIHdpdGggU2hvcuKAmXMgYWxnb3JpdGhtKSwgd2hpY2ggd2FzIGRldmVsb3BlZCBpbiAxOTk0LiBTY2hub3Jy4oCZcyBhbGdvcml0aG0gaXMgYSBjbGFzc2ljYWwgY29tcHV0YXRpb24gYmFzZWQgb24gbGF0dGljZXMsIHdoaWNoIGFyZSBtYXRoZW1hdGljYWwgc3RydWN0dXJlcyB0aGF0IGhhdmUgbWFueSBhcHBsaWNhdGlvbnMgaW4gY29uc3RydWN0aXZlIGNyeXB0b2dyYXBoeSBhbmQgY3J5cHRhbmFseXNpcy4gVGhlIGF1dGhvcnMgd2hvIGRldmlzZWQgU2Nobm9ycuKAmXMgYWxnb3JpdGhtIHNhaWQgaXQgY291bGQgZW5oYW5jZSB0aGUgdXNlIG9mIHRoZSBoZXVyaXN0aWMgcXVhbnR1bSBvcHRpbWl6YXRpb24gbWV0aG9kIGNhbGxlZCBRQU9BLg0KMTk5NCAoSmFuIDEpOiBbR2VvUG9saXRpY3NdIFRoZSBOb3J0aCBBbWVyaWNhbiBGcmVlIFRyYWRlIEFncmVlbWVudCAoTkFGVEEpIHdhcyBhbiBhZ3JlZW1lbnQgc2lnbmVkIGJ5IENhbmFkYSwgTWV4aWNvLCBhbmQgdGhlIFVuaXRlZCBTdGF0ZXMgdGhhdCBjcmVhdGVkIGEgdHJpbGF0ZXJhbCB0cmFkZSBibG9jIGluIE5vcnRoIEFtZXJpY2EuIFRoZSBhZ3JlZW1lbnQgY2FtZSBpbnRvIGZvcmNlIG9uIEphbnVhcnkgMSwgMTk5NCwgYW5kIHN1cGVyc2VkZWQgdGhlIDE5ODggQ2FuYWRh4oCTVW5pdGVkIFN0YXRlcyBGcmVlIFRyYWRlIEFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzIGFuZCBDYW5hZGEuIFRoZSBOQUZUQSB0cmFkZSBibG9jIGZvcm1lZCBvbmUgb2YgdGhlIGxhcmdlc3QgdHJhZGUgYmxvY3MgaW4gdGhlIHdvcmxkIGJ5IGdyb3NzIGRvbWVzdGljIHByb2R1Y3QuDQoxOTk0OltUZWNobm9sb2d5XVtCdXNpbmVzc11bVVNdW0NvbXB1dGluZ10gVGhlIERlbGwgTGF0aXR1ZGUgc2VyaWVzIGlzIGEgbGluZSBvZiBsYXB0b3AgY29tcHV0ZXJzIG1hbnVmYWN0dXJlZCBhbmQgc29sZCBieSBBbWVyaWNhbiBjb21wYW55IERlbGwuIEl0IGlzIGEgYnVzaW5lc3Mtb3JpZW50ZWQgbGluZSwgYWltZWQgYXQgY29ycG9yYXRlIGVudGVycHJpc2VzLCBoZWFsdGhjYXJlLCBnb3Zlcm5tZW50LCBhbmQgZWR1Y2F0aW9uIG1hcmtldHM7IHVubGlrZSB0aGUgSW5zcGlyb24gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBpbmRpdmlkdWFsIGN1c3RvbWVycywgYW5kIHRoZSBWb3N0cm8gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBzbWFsbGVyIGJ1c2luZXNzZXMuIFRoZSBMYXRpdHVkZSBkaXJlY3RseSBjb21wZXRlcyB3aXRoIHRoZSBMZW5vdm8gVGhpbmtQYWQgYW5kIHRoZSBFbGl0ZUJvb2sgc2VyaWVzIGJ5IEhQLiBBZGRpdGlvbmFsbHksIHRoZSAiUnVnZ2VkIChFeHRyZW1lKSIsICJYRlIiIGFuZCAiQVRHIiBtb2RlbHMgY29tcGV0ZSBwcmltYXJpbHkgd2l0aCBQYW5hc29uaWMncyBUb3VnaGJvb2sgbGluZSBvZiAicnVnZ2VkIiBsYXB0b3BzLg0KMTk5NDogU3VzaG1pdGEgU2VuIGJlY2FtZSBNaXNzIFVuaXZlcnNlLg0KMTk5NDogVGhlIEFubmFscyBvZiBJbXByb2JhYmxlIFJlc2VhcmNoIGlzIGEgYmktbW9udGhseSBtYWdhemluZSBkZXZvdGVkIHRvIHNjaWVudGlmaWMgaHVtb3IsIGluIHRoZSBmb3JtIG9mIGEgc2F0aXJpY2FsIHRha2Ugb24gdGhlIHN0YW5kYXJkIGFjYWRlbWljIGpvdXJuYWwuDQoxOTk0OiBMaW5kb24gTGVhZGVyIG9mIExhbmRvciBBc3NvY2lhdGVzLCBvZiBTYW4gRnJhbmNpc2NvIGRlc2lnbmVkIHdvcmRtYXJrcyBmb3IgRmVkRXgncyB2YXJpb3VzIE9wLXVuaXQuIEZlZEV44oCZcyBwdWJsaWMtcmVsYXRpb25zIGZpcm0gd2FudGVkIHRvIGhpZ2hsaWdodCB0aGUgYXJyb3cgc28gaXQgd291bGQgYmUgb2J2aW91cy4gQnV0IGhlIGZvdWdodCB0aGVtIG9uIHRoYXQg4oCUIGhlIHRob3VnaHQgaXQgd291bGQgYmUgb3ZlcmtpbGwuIFRoZXJl4oCZcyBzb21ldGhpbmcgYWJvdXQgbWFraW5nIHBlb3BsZSBkaXNjb3ZlciBzb21ldGhpbmcgb24gdGhlaXIgb3duIHRoYXTigJlzIGEgbG90IG1vcmUgcG93ZXJmdWwgdGhhbiBpdGFsaWNpemluZyBpdCB0byBtYWtlIHlvdXIgcG9pbnQuDQoxOTk0OiBTY2lsYWIgMS4xLCB0aGUgZmlyc3QgcmVsZWFzZWQgdmVyc2lvbiBvZiBTY2lsYWIsIHdhcyBwdXQgb24gYW5vbnltb3VzIGZ0cCBzaXRlLg0KMTk5NDogVGhlIGNvbmNlcHQgb2YgYSBjYWbDqSB3aXRoIGZ1bGwgSW50ZXJuZXQgYWNjZXNzIChhbmQgdGhlIG5hbWUgQ3liZXJjYWbDqSkgd2FzIGludmVudGVkIGluIGVhcmx5IGJ5ICBhIEJyaXRpc2ggdGVjaG5vbG9neSBhcnRpc3QsIEl2YW4gUG9wZS4NCjE5OTQ6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIGx1cmVkIG9uZSBvZiBEYXdvb2QncyBmYXZvcml0ZSAibmFyY28tdGVycm9yaXN0IiBQaGlsbHUgS2hhbiBhbGlhcyBCYWtodGl5YXIgQWhtZWQgS2hhbiB0byBhIGhvdGVsIHJvb20gaW4gQmFuZ2tvaywgd2hlcmUgaGUgd2FzIHRvcnR1cmVkIHRvIGRlYXRoLCBoYXZpbmcgYmVlbiBiZXRyYXllZCBieSBoaXMgY2xvc2VzdCBhaWRlIGFuZCBzaWRla2ljayBNYW5nZXNoICJNYW5neWEiIFBhd2FyLiBELUNvbXBhbnkncyBTaGFyYWQsIHVzZWQgaGlzIGxpbmtzIHdpdGggTXVtYmFpLWJhc2VkIGhvdGVsaWVyIFZpbm9kIGFuZCBBLiBNaXNocmEgdG8gdHJhY2sgZG93biBSYWphbiBpbiBCYW5na29rLiBSYWphbidzIGhpdG1hbiBSb2hpdCBWYXJtYSBhbmQgaGlzIHdpZmUgc2hvdCBieSBELUNvbXBhbnkuDQoxOTk0KEp1bCAxNik6W1NwYWNlXSBGcm9tIEp1bHkgMTYgdG8gMjIsIDE5OTQsIGVub3Jtb3VzIHBpZWNlcyBvZiB0aGUgY29tZXQgU2hvZW1ha2VyLUxldnkgOSAoU0w5KSwgZGlzY292ZXJlZCBqdXN0IGEgeWVhciBwcmlvciwgY3Jhc2hlZCBpbnRvIEp1cGl0ZXIgb3ZlciBzZXZlcmFsIGRheXMsIGNyZWF0aW5nIGh1Z2UsIGRhcmsgc2NhcnMgaW4gdGhlIHBsYW5ldCdzIGF0bW9zcGhlcmUgYW5kIGxvZnRpbmcgc3VwZXJoZWF0ZWQgcGx1bWVzIGludG8gaXRzIHN0cmF0b3NwaGVyZS4NCjE5OTQgKE9jdCk6IElUUE8gYW5kIEdvSSdzIE5JQyBqb2ludGx5IHNldC11cCB0aGUgTmF0aW9uYWwgQ2VudHJlIGZvciBUcmFkZSBJbmZvcm1hdGlvbiAoTkNUSSkgYXQgUHJhZ2F0aSBNYWlkYW4uDQoxOTk0IChOb3YgMSwgMTU6MDEgSVNUKTpbU3BhY2VdW1N1bl0gVGhlIEdsb2JhbCBHZW9zcGFjZSBTY2llbmNlICdXaW5kJyBzYXRlbGxpdGUgaXMgYSBOQVNBIHNjaWVuY2Ugc3BhY2VjcmFmdCBkZXNpZ25lZCB0byBzdHVkeSByYWRpbyB3YXZlcyBhbmQgcGxhc21hIHRoYXQgb2NjdXIgaW4gdGhlIHNvbGFyIHdpbmQgYW5kIGluIHRoZSBFYXJ0aCdzIG1hZ25ldG9zcGhlcmUuIA0KMTk5NCAoRGVjIDMpOiBTb255J3MgUGxheVN0YXRpb24gKGEgdmlkZW8gZ2FtZSBjb25zb2xlKSB3YXMgaW50cm9kdWNlZCB0byB0aGUgd29ybGQgZnJvbSBNaW5hdG8sIFRva3lvIChKYXBhbikuDQoxOTk0OiBXWFlDLSBmaXJzdCBpbnRlcm5ldCByYWRpbyBzdGF0aW9uIGJyb2FkY2FzdC4NCjE5OTQ6IE1lbW9yeSBjYXJkcyB3ZXJlIGludHJvZHVjZWQgaW4gdGhlIGNvbnN1bWVyIGVsZWN0cm9uaWNzIG1hcmtldC4NCjE5OTQgKEF1Zyk6IElUUE8ncyAxc3QgRGVsaGkgQm9vayBGYWlyIGF0ICBIYWxsIDggdG8gMTIgb2YgUHJhZ2F0aSBNYWlkYW4sIE5ldyBEZWxoaS4gVGhlIHRpbWluZ3Mgb2YgZmFpciBhcmUgZnJvbSAxMC4wMCBhbSB0byA4LjAwIHBtIChlbnRyeSB0byBmYWlyIHdpbGwgY2xvc2UgYXQgNy4zMCBwbSkuDQoxOTk0IChTZXApOiBUaGUgQ09OQ0VSVCBzb2Z0d2FyZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgaW1wbGVtZW50ZWQgYXQgYWxsIG9mIHRoZSBmaXZlIFBSUycgc2l0ZXMgU2VjdW5kZXJhYmFkIGluIFNlcHQuIDE5OTQsIE5ldyBEZWxoaSBvbiBTZXB0LiAxOTk2LCBDYWxjdXR0YSBvbiAxNHRoIEp1bmUgMTk5OCwgTXVtYmFpIG9uIDExdGggSmFuIDE5OTkgYW5kIENoZW5uYWkgb24gMTJ0aCBBcHJpbCAxOTk5Lg0KMTk5NDogdGhlIDI0dGggYW5kIHRoZSBsYXN0IEdQUyBzYXRlbGxpdGUgd2FzIGxhdW5jaGVkIGluIFVTLg0KMTk5NDogVGhlIHdvcmQgVGFsaWJhbiBpcyBQYXNodG8sINi32KfZhNio2KfZhiDhua3EgWxpYsSBbiwgbWVhbmluZyAic3R1ZGVudHMiLCB0aGUgcGx1cmFsIG9mIOG5rcSBbGliLiBBZnRlciB0aGUgU292aWV0IFVuaW9uIGludGVydmVuZWQgYW5kIG9jY3VwaWVkIEFmZ2hhbmlzdGFuIGluIDE5NzksIElzbGFtaWMgbXVqYWhpZGVlbiBmaWdodGVycyBlbmdhZ2VkIGluIHdhciB3aXRoIHRob3NlIFNvdmlldCBmb3JjZXMsIHdoaWNoIGxhaWQgdGhlIGZvdW5kYXRpb24gb2YgcG9saXRpY2FsIG1vdmVtZW50IGFuZCBtaWxpdGFyeSBvcmdhbml6YXRpb24gbmFtZWQgVGFsaWJhbi4NCjE5OTQ6IEFiZHVsIEthcmVlbSBUZWxnaSBhY3F1aXJlZCB0aGUgbGljZW5zZSBmb3Igc2VsbGluZyBzdGFtcCBwYXBlciBhbmQgb3BlbmVkIGFuIG9mZmljZSBpbiBNdW1iYWkuIEFmdGVyIHRoYXQsIGhlIHN0YXJ0ZWQgcHJpbnRpbmcgc3RhbXAgcGFwZXIgaW4gTmFzaGlrLiBXaXRoIHNvbWUgYWdlbnRz4oCZIGhlbHAsIGhlIHN0YXJ0cyBzZWxsaW5nIGZha2Ugc3RhbXAgcGFwZXIgaW4gYnVsayB0byBiYW5rcywgaW5zdXJhbmNlIGNvbXBhbmllcywgc3RvY2sgYnJva2VyYWdlIGZpcm1zLCBhbmQgY29ycG9yYXRlcy4gSW4gMjAwMyB0aGUgVGVsZ2kgc2NhbSB3YXMgdW5mb2xkZWQ7IHRoZSBmaWd1cmUgaW4gdGhlIG1pbmQgb2Ygc2VjdXJpdHkgYW5kIGludGVsbGlnZW5jZSBhZ2VuY2llcyB3YXMgdXAgdG8gUnMuMjBrIENyb3JlDQoxOTk0OiBbR2VvUG9saXRpY3NdIEludGVybmF0aW9uYWwgQXNzb2NpYXRpb24gb2YgR2VuZGFybWVyaWVzIGFuZCBQb2xpY2UgRm9yY2VzIHdpdGggTWlsaXRhcnkgU3RhdHVzIChjb21tb25seSBrbm93biBhcyBGSUVQIGZvciBGcmFuY2UtSXRhbGlhLUVzcGHDsWEtUG9ydHVnYWwsIHRoZSBmaXJzdCBmb3VyIG1lbWJlcnMpIGlzIGFuIGFzc29jaWF0aW9uIG9mIG5hdGlvbmFsIGdlbmRhcm1lcmllcyBvciBtaWxpdGFyeSBwb2xpY2UgZm9yY2VzLg0KMTk5NDpbQm9va10gUGFsZSBCbHVlIERvdDogQSBWaXNpb24gb2YgdGhlIEh1bWFuIEZ1dHVyZSBpbiBTcGFjZSBpcyBhIDE5OTQgYm9vayBieSB0aGUgYXN0cm9ub21lciBDYXJsIFNhZ2FuLiBJdCBpcyB0aGUgc2VxdWVsIHRvIFNhZ2FuJ3MgMTk4MCBib29rIENvc21vcyBhbmQgd2FzIGluc3BpcmVkIGJ5IHRoZSBmYW1vdXMgMTk5MCBQYWxlIEJsdWUgRG90IHBob3RvZ3JhcGgsIGZvciB3aGljaCBTYWdhbiBwcm92aWRlcyBhIHBvaWduYW50IGRlc2NyaXB0aW9uLiBJbiB0aGUgYm9vaywgU2FnYW4gbWl4ZXMgcGhpbG9zb3BoeSBhYm91dCB0aGUgaHVtYW4gcGxhY2UgaW4gdGhlIHVuaXZlcnNlIHdpdGggYSBkZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCBrbm93bGVkZ2UgYWJvdXQgdGhlIFNvbGFyIFN5c3RlbS4gSGUgYWxzbyBkZXRhaWxzIGEgaHVtYW4gdmlzaW9uIGZvciB0aGUgZnV0dXJlLg0KMTk5NDpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTWVjaGFnb2R6aWxsYSBJSSgxOTkzKQ0KMTk5NDpbQ2luZW1hXSBUaGUgQXBwbGUoMTk4MCkNCjE5OTQ6W0NpbmVtYV0gVGhlIEF0bGFudGlzIEludGVyY2VwdG9ycygxOTgzKQ0KMTk5NDpbTW50bmdnXSBJbiAxOTk0LCBNYXJrIFdoZXR1IHN1bW1pdHRlZCBNdCBFdmVyZXN0IHdpdGggTWlrZSBSZWluYmVyZ2VyLiBCdXQgYWZ0ZXIgYSBmcmVlemluZyBuaWdodCwgV2hldHUgZmFjZWQgYSBoYXJyb3dpbmcgY2hvaWNlOiBsZWF2ZSBoaXMgZnJpZW5kIG9yIHJlbWFpbiBmb3JldmVyLiBUaGUgRmF0YWwgR2FtZSAoMTk5NykNCjE5OTQ6W1RvdXJpc21dIFRoZSBBZHZlbnR1cmUgVG91ciBPcGVyYXRvcnMgQXNzb2NpYXRpb24gb2YgSW5kaWEgKEFUT0FJKSB3YXMgZm91bmRlZCBpbiAxOTk0LiBJdCB3YXMgZXN0YWJsaXNoZWQgYnkgYSBncm91cCBvZiB0cmF2ZWwgdHJhZGUgYWR2ZW50dXJlcnMgd2hvIGFpbWVkIHRvIGNyZWF0ZSBhIHN0cm9uZyBzdXBwb3J0IG5ldHdvcmsgZm9yIEluZGlhbiBhZHZlbnR1cmUgdG91ciBvcGVyYXRvcnMuIA0KDQoxOTk1IChNYXkgMTkpOiBbUmVzZWFyY2hdW1NwYWNlXSB0d28gc2NpZW50aXN0cyBhdCBDYWwgUG9seSBzaG93ZWQgdGhhdCBiYWN0ZXJpYSBjYW4gc3Vydml2ZSB3aXRob3V0IGFueSBtZXRhYm9saXNtIGZvciBhdCBsZWFzdCAyNSBtaWxsaW9uIHllYXJzOyBwcm9iYWJseSB0aGV5IGFyZSBpbW1vcnRhbC4NCjI0IE5vdmVtYmVyIDE5OTU6IFRoZSBOZXcgWW9yayBUaW1lcyBkZXNjcmliZWQgYmFjdGVyaWEgdGhhdCBjYW4gc3Vydml2ZSByYWRpYXRpb24gbXVjaCBzdHJvbmdlciB0aGFuIGFueSB0aGF0IEVhcnRoIGhhcyBldmVyIGV4cGVyaWVuY2VkLg0KV2UgYXJlIGNhbGxpbmcgdGhlIHVuaW9uIG9mIExvdmVsb2NrJ3MgR2FpYSB3aXRoIEhveWxlIGFuZCBXaWNrcmFtYXNpbmdoZSdzIGV4cGFuZGVkIHRoZW9yeSBvZiBwYW5zcGVybWlhIENvc21pYyBBbmNlc3RyeS4gVGhpcyBhY2NvdW50IG9mIGV2b2x1dGlvbiBhbmQgdGhlIG9yaWdpbiBvZiBsaWZlIG9uIEVhcnRoIGlzIHByb2ZvdW5kbHkgZGlmZmVyZW50IGZyb20gdGhlIHByZXZhaWxpbmcgc2NpZW50aWZpYyBwYXJhZGlnbS4gSXQgY2hhbGxlbmdlcyBub3QgbWVyZWx5IHRoZSBhbnN3ZXJzIGJ1dCB0aGUgcXVlc3Rpb25zIHRoYXQgYXJlIHBvcHVsYXIgdG9kYXkuIENvc21pYyBBbmNlc3RyeSByZXF1aXJlcyB0aGF0IGxpZmUgY2FuIG9ubHkgZGVzY2VuZCBmcm9tIGFuY2VzdG9ycyBhdCBsZWFzdCBhcyBoaWdobHkgZXZvbHZlZCBhcyBpdHNlbGYsIGFuZCB0aGF0IHRoZXJlIGNhbiBiZSBubyBvcmlnaW4gb2YgbGlmZSBmcm9tIG5vbmJpb2xvZ2ljYWwgbWF0dGVyLiBXaXRob3V0IHN1cGVybmF0dXJhbCBpbnRlcnZlbnRpb24sIHRoZXJlZm9yZSwgd2UgY29uY2x1ZGUgdGhhdCBsaWZlIG11c3QgaGF2ZSBhbHdheXMgZXhpc3RlZC4gQWx0aG91Z2ggdGhlc2UgY29uY2x1c2lvbnMgY3V0IGFjcm9zcyB0aGUgYm91bmRhcmllcyBiZXR3ZWVuIHNjaWVuY2UsIHBoaWxvc29waHksIGFuZCByZWxpZ2lvbiwgd2UgYmVsaWV2ZSB0aGV5IGFyZSBncm91bmRlZCBpbiBnb29kIGV2aWRlbmNlLiBBbmQgbmV3IGRhdGEgdGhhdCBzdXBwb3J0IG1hbnkgYXNwZWN0cyBvZiBDb3NtaWMgQW5jZXN0cnkgYXJlIGNvbWluZyBpbiByYXBpZGx5LiBJbiB0aGUgZm9sbG93aW5nIHBhZ2VzIHdlIHdpbGwgZXhwbGFpbiBob3cgdGhlc2UgYW5kIG90aGVyIHJlY2VudCBkZXZlbG9wbWVudHMgc3VwcG9ydCBDb3NtaWMgQW5jZXN0cnk6DQoNCjE5OTU6IEFOU0VUIHNvbGQgdG8gQU9MLCB3aG8gIG5vdyBydW5zIGl0Lg0KMTk5NSAoTWFyKTogRGVwdC4gb2YgSW5kaWFuIE1lZGljaW5lIGFuZCBIb21lb3BhdGh5IGZvdW5kZWQuDQoxOTk1IChNYXIgMjQpOltSZXNlYXJjaF0gUmVtb3RlbHkgT3BlcmF0ZWQgVmVoaWNsZSBLQUlLTyByZWFjaGVkIHRoZSBkZWVwZXN0IGFyZWEgb2YgdGhlIE1hcmlhbmEgVHJlbmNoIGFuZCBtYWRlIHRoZSBkZWVwZXN0IGRpdmluZyByZWNvcmQgb2YgMTAsOTExIG0gKDM1LDc5NyBmdDsgNSw5NjYgZmF0aG9tcykgDQoxOTk1OiBwaG9uZSBjYWxsIGNvc3RpbmcgUnMuIDE2IHBlciBtaW4uDQoxOTk1OltHYW1pbmddIFZpcnR1YSBDb3AgMiBpcyBhIGxpZ2h0IGd1biBzaG9vdGVyIGFyY2FkZSBnYW1lLCByZWxlYXNlZCBpbiAxOTk1IGFuZCBkZXZlbG9wZWQgaW50ZXJuYWxseSBhdCBTZWdhIGJ5IHRoZWlyIEFNMiBzdHVkaW8gKFl1IFN1enVraSkuIEl0IHdhcyBwb3J0ZWQgdG8gdGhlIFNlZ2EgU2F0dXJuIGluIDE5OTYuIEl0IHdhcyByZWxlYXNlZCBvbiBQQyBpbiAxOTk3IGFuZCBTZWdhIERyZWFtY2FzdCBpbiAyMDAwLiBJdCB3YXMgbGF0ZXIgYnVuZGxlZCB3aXRoIFZpcnR1YSBDb3AgaW4gVmlydHVhIENvcDogRWxpdGUgRWRpdGlvbiBmb3IgUGxheVN0YXRpb24gMiBpbiAyMDAyLg0KMTk5NSAoQXByIDEpOltSZXNlYXJjaF0gUGlsbGFycyBvZiBDcmVhdGlvbiBpcyBhIHBob3RvZ3JhcGggdGFrZW4gYnkgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgb2YgZWxlcGhhbnQgdHJ1bmtzIG9mIGludGVyc3RlbGxhciBnYXMgYW5kIGR1c3QgaW4gdGhlIEVhZ2xlIE5lYnVsYSwgaW4gdGhlIFNlcnBlbnMgY29uc3RlbGxhdGlvbiwgc29tZSA2LDUwMOKAkzcsMDAwIGxpZ2h0LXllYXJzICgyLDAwMOKAkzIsMTAwIHBjOyA2MeKAkzY2IEVtKSBmcm9tIEVhcnRoLg0KMTk5NSAoQXByIDEpOiBJQUFJIGFuZCBOQUEgd2VyZSBtZXJnZWQgYnkgYW4gQWN0IG9mIFBhcmxpYW1lbnQgYW5kIHdhcyBuYW1lZCBhcyBBaXJwb3J0cyBBdXRob3JpdHkgb2YgSW5kaWEgKEFBSSkuIFRoaXMgbmV3IG9yZ2FuaXNhdGlvbiB3YXMgdG8gYmUgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nLCB1cGdyYWRpbmcsIG1haW50YWluaW5nIGFuZCBtYW5hZ2luZyBjaXZpbCBhdmlhdGlvbiBpbmZyYXN0cnVjdHVyZSBib3RoIG9uIHRoZSBncm91bmQgYW5kIGFpciBzcGFjZSBpbiB0aGUgY291bnRyeS4NCjE5OTUgKEFwciAyMSk6W0NyaW1lXVtJbmRpYV0gQmFibG9vIHBpY2tlZCB1cCBieSB0aGUgU2luZ2Fwb3JlIGFpcnBvcnQgcG9saWNlIGZvciB0cmF2ZWxsaW5nIG9uIGZha2UgcGFzc3BvcnQuIEhlIHdhcyBzdGF5aW5nIGluIER1YmFpLg0KMTk5NSAoU2VwIDMwKTpbQ3JpbWVdW0luZGlhXSBTaW5nYXBvcmUgZXh0cmFkaXRlcyBJbmRpYSdzICdtb3N0LXdhbnRlZCBpbnRlci1zdGF0ZSBjcmltaW5hbCcgQmFibG9vIFNyaXZhc3RhdmEgKDMzWU8pDQoxOTk1IChOb3YgMzApOiBPcGVyYXRpb24gRGVzZXJ0IFN0b3JtIChGaXJzdCBJcmFxIFdhcilvZmZpY2lhbGx5IGVuZGVkLg0KMTk5NSAoTWF5IDMxKTpbQm9va11bTWlsaXRhcnldIEFkbWlyYWwgV2lsbGlhbSBILiBNY1JhdmVuJ3MgU3BlYyBPcHM6IENhc2UgU3R1ZGllcyBpbiBTcGVjaWFsIE9wZXJhdGlvbnMgV2FyZmFyZTogVGhlb3J5IGFuZCBQcmFjdGljZTsgU2VhIFN0b3JpZXM6IE15IExpZmUgaW4gU3BlY2lhbCBPcGVyYXRpb25zICgyMDE5LCBNYXkgMSk7IFRoZSBIZXJvIENvZGU6IExlc3NvbnMgTGVhcm5lZCBmcm9tIExpdmVzIFdlbGwgTGl2ZWQgKDIwMjEsIEFwciAxMykNCjE5OTU6IERyLiBIYW5kZSBhZnRlciBncmFkdWF0aW5nIGZyb20gSUlUIEtoYXJhZ3B1ciBjb25jZXB0dWFsaXplZCBTRUxDTyBJbmRpYSBkdXJpbmcgaGlzIFBoRCBvbiBzdXN0YWluYWJsZSBlbmVyZ3kgYXQgdGhlIFVuaXZlcnNpdHkgb2YgTWFzc2FjaHVzZXR0cy4gRHVyaW5nIGEgZmllbGQgdmlzaXQgdG8gdGhlIERvbWluaWNhbiBSZXB1YmxpYywgaGUgd2FzIHN1cnByaXNlZCB0byBzZWUgdGhlIHBvb3IgdXNpbmcgc29sYXIgbGlnaHRzLg0KMTk5NTogVGhlIEdvdmVybm1lbnQgb2YgSW5kaWEgYW5kIHRoZSBHb3Zlcm5tZW50IG9mIERlbGhpIGpvaW50bHkgc2V0IHVwIGEgY29tcGFueSBjYWxsZWQgdGhlIERlbGhpIE1ldHJvIFJhaWwgQ29ycG9yYXRpb24gKERNUkMpIG9uIDMgTWF5IDE5OTUsIHdpdGggRHIuIEUuIFNyZWVkaGFyYW4gYXMgdGhlIG1hbmFnaW5nIGRpcmVjdG9yLg0KMTk5NTogSW50J2wgR2FuZGhpIFBlYWNlIFByaXplIGxhdW5jaGVkLg0KMTk5NTogU2FjaGluIFIuIFRlbmR1a2FyIGFuZCBBbmphbGkgVGVuZHVsa2FyIHdlZGRlZCB0b2dldGhlci4NCjE5OTU6IC5tcDMgaW52ZW50ZWQuDQoxOTk1OltHYW1pbmddIFdoaWxlIEZJRkEgOTUgZGlkIG5vdCBhZGQgbXVjaCBvdGhlciB0aGFuIHRoZSBhYmlsaXR5IHRvIHBsYXkgd2l0aCBjbHViIHRlYW1zLCBGSUZBIDk2IHB1c2hlZCB0aGUgYm91bmRhcmllcy4gRm9yIHRoZSBmaXJzdCB0aW1lIHdpdGggcmVhbCBwbGF5ZXIgbmFtZXMgYnkgb2J0YWluaW5nIHRoZSBGSUZQcm8gbGljZW5zZSwgdGhlIFBsYXlTdGF0aW9uLCBQQywgMzJYIGFuZCBTZWdhIFNhdHVybiB2ZXJzaW9ucyB1c2VkIEVBJ3MgIlZpcnR1YWwgU3RhZGl1bSIgZW5naW5lLCB3aXRoIDJEIHNwcml0ZSBwbGF5ZXJzIG1vdmluZyBhcm91bmQgYSByZWFsLXRpbWUgM0Qgc3RhZGl1bS4NCjE5OTUgKEp1bCAxOCk6W0Jvb2tdIEJhcmFjayBPYmFtYSdzIERyZWFtcyBmcm9tIE15IEZhdGhlcjogQSBTdG9yeSBvZiBSYWNlIGFuZCBJbmhlcml0YW5jZTsgRHJlYW1zIGZyb20gTXkgRmF0aGVyOiBBIFN0b3J5IG9mIFJhY2UgYW5kIEluaGVyaXRhbmNlICgyMDA2LCBPY3QgMTcpOyBPZiBUaGVlIEkgU2luZzogQSBMZXR0ZXIgdG8gTXkgRGF1Z2h0ZXJzICgyMDEwLCBOb3YgMTYpOyBBIFByb21pc2VkIExhbmQgKDIwMjAsIE5vdiAxNykNCjE5OTUoSmFuIDEpOltFbnZdIFRoZSBBZ3JlZW1lbnQgb24gQWdyaWN1bHR1cmUgKEFvQSkgaXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgb2YgdGhlIFdvcmxkIFRyYWRlIE9yZ2FuaXphdGlvbi4gSXQgd2FzIG5lZ290aWF0ZWQgZHVyaW5nIHRoZSBVcnVndWF5IFJvdW5kIG9mIHRoZSBHZW5lcmFsIEFncmVlbWVudCBvbiBUYXJpZmZzIGFuZCBUcmFkZSwgYW5kIGVudGVyZWQgaW50byBmb3JjZSB3aXRoIHRoZSBlc3RhYmxpc2htZW50IG9mIHRoZSBXVE8gb24gSmFudWFyeSAxLCAxOTk1LiBCbHVlLCBSZWQsIEFtYmVyIGFuZCBHcmVlbiBCb3ggb2Ygc3Vic2lkaWVzLg0KMTk5NTpbQ2luZW1hXSBOZWxzb24gTWFuZGVsYSwgaW4gaGlzIGZpcnN0IHRlcm0gYXMgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYSwgaW5pdGlhdGVzIGEgdW5pcXVlIHZlbnR1cmUgdG8gdW5pdGUgdGhlIEFwYXJ0aGVpZC10b3JuIGxhbmQ6IGVubGlzdCB0aGUgbmF0aW9uYWwgcnVnYnkgdGVhbSBvbiBhIG1pc3Npb24gdG8gd2luIHRoZSAxOTk1IFJ1Z2J5IFdvcmxkIEN1cC4gLSAgSW52aWN0dXMgKDIwMDkpDQoxOTk1OltDaW5lbWFdIEEgQ2xvY2t3b3JrIE9yYW5nZSgxOTcxKQ0KMTk5NTpbQ2luZW1hXSBEZWFkIEVuZCBEcml2ZS1JbigxOTg2KQ0KMTk5NTpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gU3BhY2Vnb2R6aWxsYSgxOTk0KQ0KMTk5NTpbQ2luZW1hXSBIZWFydGJlZXBzKDE5ODEpDQoxOTk1OltDaW5lbWFdIFRoZSBNdW1teSdzIEN1cnNlKDE5NDQpDQoxOTk1IChEZWMpOltTcGFjZV0gU29sYXIgYW5kIEhlbGlvc3BoZXJpYyBPYnNlcnZhdG9yeSAoU29ITykgd2FzIGxhdW5jaGVkIGluIERlY2VtYmVyIDE5OTUgYXMgYSBqb2ludCBtaXNzaW9uIGJldHdlZW4gdGhlIEV1cm9wZWFuIFNwYWNlIEFnZW5jeSAoRVNBKSBhbmQgTkFTQSwgU29ITyB3YXMgZGVzaWduZWQgdG8gb3JiaXQgdGhlIFN1biB0byBsZWFybiBhYm91dCB0aGUgc3RydWN0dXJlIG9mIHRoZSBzdGFy4oCZcyBpbnRlcmlvciBhbmQgaXRzIG91dGVyIGF0bW9zcGhlcmUsIGFzIHdlbGwgYXMgdG8gaW52ZXN0aWdhdGUgdGhlIGJlaGF2aW9yIG9mIHNvbGFyIHdpbmRzLiBJdCB3YXMgZXhwZWN0ZWQgdG8gY29tcGxldGUgaXRzIG1pc3Npb24gaW4gMTk5OC4gSW5zdGVhZCwgaXQgaXMgc3RpbGwgYWN0aXZlIHRvZGF5LCBhbmQgaXMgbm93IGxpa2VseSB0byBrZWVwIHdvcmtpbmcgdW50aWwgMjAyNSwgd2hlbiBpdCB3aWxsIGhhdmUgYmVlbiBpbiBzcGFjZSBmb3IgMzAgeWVhcnMuDQoxOTk1OltQaHlzaWNzXVtTcGFjZV1bUmVzZWFyY2hdIFByaW9yIHRvIDE5OTUsIHRoZW9yaXN0cyBiZWxpZXZlZCB0aGF0IHRoZXJlIHdlcmUgZml2ZSBjb25zaXN0ZW50IHZlcnNpb25zIG9mIHN1cGVyc3RyaW5nIHRoZW9yeSAodHlwZSBJLCB0eXBlIElJQSwgdHlwZSBJSUIsIGFuZCB0d28gdmVyc2lvbnMgb2YgaGV0ZXJvdGljIHN0cmluZyB0aGVvcnkpLiBUaGlzIHVuZGVyc3RhbmRpbmcgY2hhbmdlZCBpbiAxOTk1IHdoZW4gRWR3YXJkIFdpdHRlbiBzdWdnZXN0ZWQgdGhhdCB0aGUgZml2ZSB0aGVvcmllcyB3ZXJlIGp1c3Qgc3BlY2lhbCBsaW1pdGluZyBjYXNlcyBvZiBhbiBlbGV2ZW4tZGltZW5zaW9uYWwgdGhlb3J5IGNhbGxlZCBNLXRoZW9yeS4gV2l0dGVuJ3MgY29uamVjdHVyZSB3YXMgYmFzZWQgb24gdGhlIHdvcmsgb2YgYSBudW1iZXIgb2Ygb3RoZXIgcGh5c2ljaXN0cywgaW5jbHVkaW5nIEFzaG9rZSBTZW4sIENocmlzIEh1bGwsIFBhdWwgVG93bnNlbmQsIGFuZCBNaWNoYWVsIER1ZmYuIEhpcyBhbm5vdW5jZW1lbnQgbGVkIHRvIGEgZmx1cnJ5IG9mIHJlc2VhcmNoIGFjdGl2aXR5IG5vdyBrbm93biBhcyB0aGUgc2Vjb25kIHN1cGVyc3RyaW5nIHJldm9sdXRpb24uDQoxOTk1OltDcmltZV1bSW5kaWFdIE11cmRlciBvZiBNdW1iYWktYmFzZWQgYnVpbGRlciBQcmFkZWVwIEphaW4gYnkgQWJ1IFNhbGVtDQoxOTk1OiBGb3J0dW5lIEhvdGVscyBpbiBJbmRpYSBpcyBvd25lZCBieSBpdHMgcGFyZW50IGNvbXBhbnksIElUQyBMdGQuLCB3aGljaCBlc3RhYmxpc2hlZCBGb3J0dW5lIEhvdGVscyBpbiAxOTk1IGFzIGEgc3Vic2lkaWFyeSB0byBwcm92aWRlIG1pZC1tYXJrZXQgdG8gdXBzY2FsZSBob3NwaXRhbGl0eSBzZXJ2aWNlcy4gSG93ZXZlciwgYSBzZXBhcmF0ZSBncm91cCwgRm9ydHVuZSBHcm91cCBvZiBIb3RlbHMsIGJhc2VkIGluIHRoZSBVbml0ZWQgQXJhYiBFbWlyYXRlcyAoVUFFKSBhbmQgZm91bmRlZCBieSBQcmF2ZWVuIFNoZXR0eSwgYWxzbyBvcGVyYXRlcyBhIGRpZmZlcmVudCBzZXQgb2YgaG90ZWxzIGluIHRoYXQgcmVnaW9uLg0KMTk5NTpbVUtdIENhbWlsbGEgaXMgUXVlZW4gb2YgdGhlIFVuaXRlZCBLaW5nZG9tIGFuZCAxNCBvdGhlciBDb21tb253ZWFsdGggcmVhbG1zIGFzIHRoZSB3aWZlIG9mIEtpbmcgQ2hhcmxlcyBJSUkuIENhbWlsbGEgd2FzIHJhaXNlZCBpbiBFYXN0IFN1c3NleCBhbmQgU291dGggS2Vuc2luZ3RvbiBpbiBFbmdsYW5kIGFuZCBlZHVjYXRlZCBpbiBFbmdsYW5kLCBTd2l0emVybGFuZCBhbmQgRnJhbmNlLiBJbiAxOTczLCBzaGUgbWFycmllZCBCcml0aXNoIEFybXkgb2ZmaWNlciBBbmRyZXcgUGFya2VyIEJvd2xlczsgdGhleSBkaXZvcmNlZCBpbiAxOTk1Lg0KDQoxOTk2OltHZW9Qb2xpdGljc11bQnVzaW5lc3NdIE1vbmdvbGlhIHdhcyBncmFudGVkIG9ic2VydmVyIHN0YXR1cyB0byBUUkFDRUNBLg0KMTk5NiAoNyBBdWd1c3QpOltSZXNlYXJjaF1bU3BhY2VdIE5BU0EgYW5ub3VuY2VkIGZvc3NpbGl6ZWQgZXZpZGVuY2Ugb2YgYW5jaWVudCBsaWZlIGluIG1ldGVvcml0ZSBBTEggODQwMDEgZnJvbSBNYXJzLg0KMTk5NiAoT2N0IDI3KTpbUmVzZWFyY2hdW1NwYWNlXSBnZW5ldGljaXN0cyBzaG93ZWQgZXZpZGVuY2UgdGhhdCBtYW55IGdlbmVzIGFyZSBtdWNoIG9sZGVyIHRoYW4gdGhlIGZvc3NpbCByZWNvcmQgd291bGQgaW5kaWNhdGUuIFN1YnNlcXVlbnQgc3R1ZGllcyBoYXZlIHN0cmVuZ3RoZW5lZCB0aGlzIGZpbmRpbmcuDQoxOTk2OltCdXNpbmVzc11bR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2hlbiB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4gc2lnbmVkIHRoZSBUcmVhdHkgb24gRGVlcGVuaW5nIE1pbGl0YXJ5IFRydXN0IGluIEJvcmRlciBSZWdpb25zIGluIFNoYW5naGFpLiBPbiAyNCBBcHJpbCAxOTk3IHRoZSBzYW1lIGNvdW50cmllcyBzaWduZWQgdGhlIFRyZWF0eSBvbiBSZWR1Y3Rpb24gb2YgTWlsaXRhcnkgRm9yY2VzIGluIEJvcmRlciBSZWdpb25zIGluIGEgbWVldGluZyBpbiBNb3Njb3csIFJ1c3NpYS4gT24gMjAgTWF5IDE5OTcgUnVzc2lhbiBQcmVzaWRlbnQgQm9yaXMgWWVsdHNpbiBhbmQgQ2hpbmVzZSBQcmVzaWRlbnQgSmlhbmcgWmVtaW4gc2lnbmVkIGEgZGVjbGFyYXRpb24gb24gYSAibXVsdGlwb2xhciB3b3JsZCIuDQoxOTk2OiAxOTk2IE1vdW50IEV2ZXJlc3QgRGlzYXN0ZXIsIGluIHdoaWNoIGVpZ2h0IHBlb3BsZSBkaWVkIHdoaWxlIG9uIGFuIGV4cGVkaXRpb24gdG8gc2NhbGUgdGhlIGluZmFtb3VzIHN1bW1pdC4gT25lIG9mIHRoZSBjbGltYmVycyB3aG8gbG9zdCBoaXMgbGlmZSB3YXMgQW5keSBIYXJyaXMsIHBsYXllZCBpbiBFdmVyZXN0IGJ5IE1hcnRpbiBIZW5kZXJzb24uIEhhcnJpcyB3YXMgb25lIG9mIHRoZSBndWlkZXMgZm9yIHRoZSBBZHZlbnR1cmUgQ29uc3VsdGFudHMsIGFsb25nIHdpdGggUm9iIEhhbGwgYW5kIE1pa2UgR3Jvb20uIEluIHRoZSBmaWxtLCBoZSBhcHBlYXJzIHRvIGRpZSB3aGlsZSB3aXRoIEhhbGwsIGZhbGxpbmcgb2ZmIGEgY2xpZmYgYWZ0ZXIgYSBoYWxsdWNpbmF0aW9uLiBCdXQgUm9iIEhhbGwgbmV2ZXIgcmVwb3J0ZWQgdGhpcywgYW5kIHNpbmNlIGhlIGRpZWQgc2hvcnRseSB0aGVyZWFmdGVyLCB0aGVyZSBpcyBubyB3YXkgdG8gY29uZmlybSB0aGUgY2lyY3Vtc3RhbmNlcyBzdXJyb3VuZGluZyBIYXJyaXMnIGRlYXRoLg0KMTk5NjpbQ29tcHV0aW5nXVtRdWFudHVtXSAgTG92IEdyb3ZlciBkZXZpc2VkIGFuIGFsZ29yaXRobSAoR3JvdmVyJ3MgYWxnb3JpdGhtKSB0aGF0IGNvdWxkIHNlYXJjaCBhbiB1bnNvcnRlZCBkYXRhYmFzZSBpbiBzcXVhcmUgcm9vdCB0aW1lIG9uIGEgcXVhbnR1bSBjb21wdXRlciwgd2hpY2ggd291bGQgb3V0cGVyZm9ybSBhbnkgY2xhc3NpY2FsIGFsZ29yaXRobS4NCjE5OTY6W1VTXSBCYXJhY2sgT2JhbWEgd2FzIGVsZWN0ZWQgdG8gdGhlIElsbGlub2lzIFNlbmF0ZSwgc3VjY2VlZGluZyBEZW1vY3JhdGljIFN0YXRlIFNlbmF0b3IgQWxpY2UgUGFsbWVyIGZyb20gSWxsaW5vaXMncyAxM3RoIERpc3RyaWN0LCB3aGljaCwgYXQgdGhhdCB0aW1lLCBzcGFubmVkIENoaWNhZ28gU291dGggU2lkZSBuZWlnaGJvcmhvb2RzIGZyb20gSHlkZSBQYXJr4oCTS2Vud29vZCBzb3V0aCB0byBTb3V0aCBTaG9yZSBhbmQgd2VzdCB0byBDaGljYWdvIExhd24uDQoxOTk2OltVS10gQ2hhcmxlcyBJSUkgYW5kIERpYW5hIGdldHMgZGl2b3JjZWQuDQoxOTk2IChKYW4gMjUpOltCb29rXSBQZXRlciBMeW5jaCAmIEpvaG4gUm90aGNoaWxkJ3MgTGVhcm4gdG8gRWFybjogQSBCZWdpbm5lcidzIEd1aWRlIHRvIHRoZSBCYXNpY3Mgb2YgSW52ZXN0aW5nIGFuZCBCdXNpbmVzcy4NCjE5OTYgKEphbik6W0NyaW1lXVtJbmRpYV0gQW5lZXMgSWJyYWhpbSBhcnJlc3RlZCBpbiBCYWhyYWluLCBzaGlmdGVkIHRvIER1YmFpIGFsbGVnZWRseSBvbiB0aGUgaW50ZXJ2ZW50aW9uIG9mIHNvbWUgb2YgRHViYWkncyBydWxpbmcgbm90YWJsZXMsIGFuZCB3YXMgdGhlbiBhbGxvd2VkIHRvIHNsaXAgYXdheSB0byBLYXJhY2hpLCBQYWtpc3Rhbi4NCjE5OTY6IE5hdGlvbmFsIEFlcm9zcGFjZSBMYWJvcmF0b3JpZXMsIEluZGlhIGluZGlnZW5vdXNseSBidWlsdCBGTE9TT0xWRVIsIEluZGlhJ3MgZmlyc3Qgc3VwZXJjb21wdXRlci4gSXQgd2FzIHJlcGxpY2F0ZWQgYW5kIGluc3RhbGxlZCBhdCBJQ0FEIE1vc2NvdyBpbiAxOTkxIHVuZGVyIFJ1c3NpYW4gY29sbGFib3JhdGlvbi4NCjE5OTY6IEluZGlhL1Bha2lzdGFuL1NyaSBMYW5rYSAxOTk2Lg0KMTk5NjpbQ29tcHV0aW5nXVt3d3ddIE1hcmlvIDY0IGdhbWUgcmFuIDEwMCBtaWxsaW9uIGNhbGN1bGF0aW9ucyBwZXIgc2Vjb25kLCA1NDAgbWlsbGlvbiAoSGFsZi1MaWZlKSBpbiAxOTk4LCBNaW5lY3JhZnQgKDIwMTEpIHJ1bm5pbmcgMTAwIGJpbGxpb24gY2FsY3VsYXRpb25zLCBDeWJlcnB1bmsgMjA3NyAobW9zdCByZWFsaXN0aWMgdmlkZW8gZ2FtZSAyMDI0KSwgeW91IG5lZWQgYSBncmFwaGljcyBjYXJkIHRoYXQgY2FuIHBlcmZvcm0gYXJvdW5kIDM2IHRyaWxsaW9uIGNhbGMgcGVyIHNlY29uZC4NCjE5OTY6IFByb2YgTWFsY29sbSBIZWF0aC4gUHJvZmVzc29yIG9mIEdyZWVrIExhbmd1YWdlIGFuZCBMaXRlcmF0dXJlIEBsZWVkcy5hYy51aywgdHJhbnNsYXRlZCBBcmlzdG90bGUncyBQb2V0aWNzLg0KMTk5NjogVGhlIDU2SyBtb2RlbSB3YXMgaW52ZW50ZWQgYnkgRHIuIEJyZW50IFRvd25zaGVuZA0KMTk5NiAoRmViIDEzKTogTmVwYWxlc2UgQ2l2aWwgV2FyIHN0YXJ0ZWQuIFRoZSBNYW9pc3QgUmViZWxsaW9uIChsYWJlbGxlZCB0aGUgUGVvcGxlJ3MgV2FyIGJ5IHRoZW4gQ1BOKE1hb2lzdCkpIHdhcyBhbiBhcm1lZCBjb25mbGljdCBhZ2FpbnN0IEdvdmVybm1lbnQgb2YgTmVwYWwgKHRoZW4gSE1HIG9mIE5lcGFsKSBmb3VnaHQgZnJvbSAxOTk2IHRvIDIwMDYuIFRoZSByZWJlbGxpb24gd2FzIGxhdW5jaGVkIGJ5IHRoZSBDb21tdW5pc3QgUGFydHkgb2YgTmVwYWwgKE1hb2lzdCkgb24gMTMgRmVicnVhcnkgMTk5NiB3aXRoIHRoZSBtYWluIGFpbSBvZiBvdmVydGhyb3dpbmcgdGhlIE5lcGFsZXNlIG1vbmFyY2h5IGFuZCBlc3RhYmxpc2hpbmcgYSAnUGVvcGxlJ3MgUmVwdWJsaWMnLiBJdCBlbmRlZCB3aXRoIHRoZSBDb21wcmVoZW5zaXZlIFBlYWNlIEFjY29yZCBzaWduZWQgb24gMjEgTm92ZW1iZXIgMjAwNi4NCjE5OTYgKE1hciAxKTogW0dlb1BvbGl0aWNzXSBUaGUgQXNpYeKAk0V1cm9wZSBNZWV0aW5nIChBU0VNKSBpcyBhbiBBc2lhbuKAk0V1cm9wZWFuIHBvbGl0aWNhbCBkaWFsb2d1ZSBmb3J1bSB0byBlbmhhbmNlIHJlbGF0aW9ucyBhbmQgdmFyaW91cyBmb3JtcyBvZiBjb29wZXJhdGlvbiBiZXR3ZWVuIGl0cyBwYXJ0bmVycy4gSXQgd2FzIG9mZmljaWFsbHkgZXN0YWJsaXNoZWQgYXQgdGhlIDFzdCBBU0VNIFN1bW1pdCAoQVNFTTEpIGluIEJhbmdrb2ssIFRoYWlsYW5kLCBieSB0aGUgdGhlbiAxNSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aGUgRXVyb3BlYW4gQ29tbWlzc2lvbiwgdGhlIHRoZW4gNyBNZW1iZXIgU3RhdGVzIG9mIHRoZSBBc3NvY2lhdGlvbiBvZiBTb3V0aGVhc3QgQXNpYW4gTmF0aW9ucyAoQVNFQU4pLCBhbmQgdGhlIGluZGl2aWR1YWwgY291bnRyaWVzIG9mIENoaW5hLCBKYXBhbiwgYW5kIFNvdXRoIEtvcmVhLiBBIHNlcmllcyBvZiBlbmxhcmdlbWVudHMgc2F3IGFkZGl0aW9uYWwgRVUgTWVtYmVyIFN0YXRlcyBqb2luIGFzIHdlbGwgYXMgSW5kaWEsIE1vbmdvbGlhLCBQYWtpc3RhbiBhbmQgdGhlIEFTRUFOIFNlY3JldGFyaWF0IGluIDIwMDgsIEF1c3RyYWxpYSwgTmV3IFplYWxhbmQgYW5kIFJ1c3NpYSBpbiAyMDEwLCBCYW5nbGFkZXNoLCBOb3J3YXksIGFuZCBTd2l0emVybGFuZCBpbiAyMDEyLCBhcyB3ZWxsIGFzIENyb2F0aWEsIGFuZCBLYXpha2hzdGFuIGluIDIwMTQuDQoxOTk2IChBcHIgMjYpOiBbR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2l0aCB0aGUgc2lnbmluZyBvZiB0aGUgVHJlYXR5IG9uIERlZXBlbmluZyBNaWxpdGFyeSBUcnVzdCBpbiBCb3JkZXIgUmVnaW9ucyBpbiBTaGFuZ2hhaSBieSB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4uIExhdGVyIG9uIEp1biAxNSwgMjAwMSBpdCBnb3QgcmVuYW1lZCBhcyBTaGFuZ2hhaSBDb29wZXJhdGlvbiBPcmdhbmlzYXRpb24gKFNDTykgb3IgU2hhbmdoYWkgUGFjdCANCjE5OTYgKE1heSAxNik6IEF0YWwgQmloYXJpIFZhanBheWVlIGJlY29tZXMgUE0gb2YgSW5kaWEgZm9yIHRoZSB2ZXJ5IGZpcnN0IHRpbWUgZm9yIDE2IGRheXMuDQoxOTk2IChKdW4gMSk6IEF0YWwgQmloYXJpIFZhanBheWVlIHJlc2lnbnMuIEhEIERldmUgR293ZGEgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NiAoQXVnIDE0KTpbcmVzZWFyY2hdW2V4dHJlbWVdIEthcmVuIEVsaXphYmV0aCBXZXR0ZXJoYWhuIChPY3RvYmVyIDE2LCAxOTQ4IOKAkyBKdW5lIDgsIDE5OTcpLCBhbHNvIGtub3duIGFzIEthcmVuIFdldHRlcmhhaG4gSmVubmV0dGUsIHdhcyBhbiBBbWVyaWNhbiBwcm9mZXNzb3Igb2YgY2hlbWlzdHJ5IGF0IERhcnRtb3V0aCBDb2xsZWdlLCBOZXcgSGFtcHNoaXJlLCB3aG8gc3BlY2lhbGl6ZWQgaW4gdG94aWMgbWV0YWwgZXhwb3N1cmUuIFNoZSBkaWVkIG9mIG1lcmN1cnkgcG9pc29uaW5nIGF0IHRoZSBhZ2Ugb2YgNDggZHVlIHRvIGFjY2lkZW50YWwgZXhwb3N1cmUgdG8gdGhlIGV4dHJlbWVseSB0b3hpYyBvcmdhbmljIG1lcmN1cnkgY29tcG91bmQgZGltZXRoeWxtZXJjdXJ5IChIZyhDSDMpMikuIFByb3RlY3RpdmUgZ2xvdmVzIGluIHVzZSBhdCB0aGUgdGltZSBvZiB0aGUgaW5jaWRlbnQgcHJvdmlkZWQgaW5zdWZmaWNpZW50IHByb3RlY3Rpb24sIGFuZCBleHBvc3VyZSB0byBvbmx5IGEgc2luZ2xlIGRyb3Agb3IgdHdvIG9mIHRoZSBkaW1ldGh5bG1lcmN1cnkgYWJzb3JiZWQgdGhyb3VnaCB0aGUgZ2xvdmVzIHByb3ZlZCB0byBiZSBmYXRhbCBhZnRlciBsZXNzIHRoYW4gYSB5ZWFyLiBUZXN0cyBsYXRlciByZXZlYWxlZCB0aGF0IGRpbWV0aHlsbWVyY3VyeSBjYW4sIGluIGZhY3QsIHJhcGlkbHkgcGVybWVhdGUgc2V2ZXJhbCBraW5kcyBvZiBsYXRleCBnbG92ZXMgYW5kIGVudGVyIHRoZSBza2luIHdpdGhpbiBhYm91dCAxNSBzZWNvbmRzLiBIZXIgZXhwb3N1cmUgd2FzIGxhdGVyIGNvbmZpcm1lZCBieSBoYWlyIGFuYWx5c2lzLCB3aGljaCBzaG93ZWQgYSBkcmFtYXRpYyBqdW1wIGluIG1lcmN1cnkgbGV2ZWxzIDE3IGRheXMgYWZ0ZXIgdGhlIGluaXRpYWwgYWNjaWRlbnQsIHBlYWtpbmcgYXQgMzkgZGF5cywgZm9sbG93ZWQgYnkgYSBncmFkdWFsIGRlY2xpbmUuIEFwcHJveGltYXRlbHkgdGhyZWUgbW9udGhzIGFmdGVyIHRoZSBpbml0aWFsIGFjY2lkZW50IFdldHRlcmhhaG4gYmVnYW4gZXhwZXJpZW5jaW5nIGJyaWVmIGVwaXNvZGVzIG9mIGFiZG9taW5hbCBkaXNjb21mb3J0IGFuZCBub3RpY2VkIHNpZ25pZmljYW50IHdlaWdodCBsb3NzLiBUaGUgbW9yZSBkaXN0aW5jdGl2ZSBuZXVyb2xvZ2ljYWwgc3ltcHRvbXMgb2YgbWVyY3VyeSBwb2lzb25pbmcsIGluY2x1ZGluZyBsb3NzIG9mIGJhbGFuY2UgYW5kIHNsdXJyZWQgc3BlZWNoLCBhcHBlYXJlZCBpbiBKYW51YXJ5IDE5OTcsIGZpdmUgbW9udGhzIGFmdGVyIHRoZSBhY2NpZGVudC4gSGVyIGJsb29kIGFuZCB1cmluYXJ5IG1lcmN1cnkgY29udGVudCB3ZXJlIG1lYXN1cmVkIGF0IDQsMDAwIM68Zy9MIGFuZCAyMzQgzrxnL0wsIHJlc3BlY3RpdmVseeKAlGJvdGggbWFueSB0aW1lcyB0aGVpciByZXNwZWN0aXZlIHRveGljIHRocmVzaG9sZHMgb2YgMjAwIM68Zy9MIGFuZCA1MCDOvGcvTCAoYmxvb2QgYW5kIHVyaW5lIHJlZmVyZW5jZSByYW5nZXMgYXJlIDEgdG8gOCDOvGcvTCBhbmQgMSB0byA1IM68Zy9MKS4NCjE5OTYgKERlYyA0IDA2OjU4OjA3IFVUQyk6W1NwYWNlXVtNYXJzXVtFYXJ0aF0gTGF1bmNoIG9mIE1hcnMgUGF0aGZpbmRlciBvbiBEZWx0YSBJSSA3OTI1ICgjRDI0MCkNCnJvY2tldCBmcm9tIENhcGUgQ2FuYXZlcmFsIFNMQy0xNy4gVG8gcHJvdmUgdGhhdCB0aGUgZGV2ZWxvcG1lbnQgb2YgImZhc3RlciwgYmV0dGVyIGFuZCBjaGVhcGVyIiBzcGFjZWNyYWZ0IHdhcyBwb3NzaWJsZSAod2l0aCB0aHJlZSB5ZWFycyBmb3IgZGV2ZWxvcG1lbnQgYW5kIGEgY29zdCB1bmRlciAkMTUwIG1pbGxpb24gZm9yIHRoZSBsYW5kZXIsIGFuZCAkMjUgbWlsbGlvbiBmb3IgdGhlIHJvdmVyKS4gVG8gc2hvdyB0aGF0IGl0IHdhcyBwb3NzaWJsZSB0byBzZW5kIGEgbG9hZCBvZiBzY2llbnRpZmljIGluc3RydW1lbnRzIHRvIGFub3RoZXIgcGxhbmV0IHdpdGggYSBzaW1wbGUgc3lzdGVtIGFuZCBhdCBvbmUtZmlmdGVlbnRoIHRoZSBjb3N0IG9mIGEgVmlraW5nIG1pc3Npb24uIChGb3IgY29tcGFyaXNvbiwgdGhlIFZpa2luZyBtaXNzaW9ucyBjb3N0ICQ5MzUgbWlsbGlvbiBpbiAxOTc0IG9yICQzLjUgYmlsbGlvbiBpbiAxOTk3IGRvbGxhcnMuKS4gVG8gZGVtb25zdHJhdGUgTkFTQSdzIGNvbW1pdG1lbnQgdG8gbG93LWNvc3QgcGxhbmV0YXJ5IGV4cGxvcmF0aW9uIGJ5IGZpbmlzaGluZyB0aGUgbWlzc2lvbiB3aXRoIGEgdG90YWwgZXhwZW5kaXR1cmUgb2YgJDI4MCBtaWxsaW9uLCBpbmNsdWRpbmcgdGhlIGxhdW5jaCB2ZWhpY2xlIGFuZCBtaXNzaW9uIG9wZXJhdGlvbnMuDQoxOTk2OiBhIHJhaWQgb24gdGhlIEFuaW1hbCBIdXNiYW5kcnkgZGVwYXJ0bWVudOKAmXMgb2ZmaWNlcyBpbiBDaGFpYmFzYSwgQmloYXIgdW5mb2xkZWQgdGhlIFJzLjk1MCBjcm9yZSBmb2RkZXIgc2NhbSwgaW4gd2hpY2ggdGhlIEJpaGFyIGNoaWVmIG1pbmlzdGVyIExhbHUgUHJhc2FkIFlhZGF2IGNhdGNoIHVwIGluIGEgbGlmZWxvbmcgdHVzc2xlIHdpdGggdGhlIENCSS4NCjE5OTY6W0Jvb2tdW0FkdmVudHVyZV0gSm9uIEtyYWthdWVyJ3MgSW50byB0aGUgV2lsZC4NCjE5OTY6W0NvbXB1dGluZ10gVGhlIFZpZGVvTEFOIHNvZnR3YXJlIG9yaWdpbmF0ZWQgYXMgYSBGcmVuY2ggYWNhZGVtaWMgcHJvamVjdC4gVkxDIHVzZWQgdG8gc3RhbmQgZm9yICJWaWRlb0xBTiBDbGllbnQiIHdoZW4gVkxDIHdhcyBhIGNsaWVudCBvZiB0aGUgVmlkZW9MQU4gcHJvamVjdCwgb2ZmaWNpYWxseSByZWxlYXNlZCB1bmRlciBHTlUgR1BMIG9uIDIwMDEgKEZlYiAxKS4NCjE5OTY6W01lbWVdIERhbmNpbmcgQmFieSBTY3JlZW5zYXZlcg0KMTk5NjpbU3BhY2VYXSBUaGUgZW50aXJlIHByb2Nlc3MgZm9yIHRoZSBKYW1lcyBXZWJiIFNwYWNlIFRlbGVzY29wZSAoSldTVCkgZnJvbSBpbml0aWFsIGNvbmNlcHQgdG8gbGF1bmNoIHNwYW5uZWQgYXBwcm94aW1hdGVseSAyNSB5ZWFycywgd2l0aCBpbml0aWFsIGRlc2lnbnMgYmVnaW5uaW5nIGluIDE5OTYgYW5kIHRoZSB0ZWxlc2NvcGUgbGF1bmNoaW5nIGluIDIwMjEsIGJ1dCBhIHNpZ25pZmljYW50IHBvcnRpb24gb2YgdGhpcyB3YXMgc3BlbnQgaW4gZGVzaWduLCB0ZXN0aW5nLCBhbmQgb3ZlcmNvbWluZyBtYWpvciByZWRlc2lnbnMgYW5kIGRlbGF5cywgbm90IGp1c3QgYXNzZW1ibHkuIA0KMTk5NiAoRmViIDI4KTpbRGVsaGldIEluZGlyYXB1cmFtLCBHaGF6aWFiYWQgd2FzIGVzdGQgd2hlbiBpdHMgZm91bmRhdGlvbiBzdG9uZSAoS2FsYSBQYXRoYXIpIHdhcyBpbmF1Z3VyYXRlZCBieSBTaCBNb3RpbGFsIFZvcmEsIHRoZW4gR292ZXJub3Igb2YgVVAuICgyMDIxKSBJJ3B1cmFtIEV4dG4gdG8gYmUgYnVpbHQgb24gMTIgYWNyZXMgb25seSwgY29uY2VpdmVkIGluIDIwMDQuDQoxOTk2OltCb29rXVtNaWxpdGFyeV1bQ3VsdHVyZV1bRVVdW1VTQV0gR2VvcmdlIFIuUi4gTWFydGluIGlzIHRoZSBBbWVyaWNhbiBhdXRob3Igb2YgdGhlIGVwaWMgZmFudGFzeSBib29rIHNlcmllcyBBIFNvbmcgb2YgSWNlIGFuZCBGaXJlLCB3aGljaCBiZWdhbiB3aXRoIEEgR2FtZSBvZiBUaHJvbmVzICgxOTk2KSBhbmQgc2VydmVkIGFzIHRoZSBiYXNpcyBmb3IgSEJPJ3MgbWFzc2l2ZWx5IHBvcHVsYXIgR2FtZSBvZiBUaHJvbmVzIFRWIHNlcmllcy4gQSBTb25nIG9mIEljZSBhbmQgRmlyZSBpcyBhIHNlcmllcyBvZiBoaWdoIGZhbnRhc3kgbm92ZWxzIGJ5IHRoZSBBbWVyaWNhbiBhdXRob3IgR2VvcmdlIFIuIFIuIE1hcnRpbi4gTWFydGluIGJlZ2FuIHdyaXRpbmcgdGhlIGZpcnN0IHZvbHVtZSwgQSBHYW1lIG9mIFRocm9uZXMsIGluIDE5OTEsIGFuZCBwdWJsaXNoZWQgaXQgaW4gMTk5Ni4gTWFydGluLCB3aG8gb3JpZ2luYWxseSBlbnZpc2lvbmVkIHRoZSBzZXJpZXMgYXMgYSB0cmlsb2d5LCBoYXMgcmVsZWFzZWQgZml2ZSBvdXQgb2Ygc2V2ZW4gcGxhbm5lZCB2b2x1bWVzLiANCg0KW0dlbmVyYXRpb25dIE1pbGxlbm5pYWwgZ2VuZXJhdGlvbiAoMTk4MeKAkzE5OTYpIGVuZHM7IGxhc3RlZCBmb3IgMTUgeWVhcnMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICA1MCB5ZWFycyBvZiBJbmRlcGVuZGVudCBJbmRpYSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSANCg0KW0dlbmVyYXRpb25dIEdlbiBaICgxOTk34oCTMjAxMikgc3RhcnRzOyBhbmQgZXhpc3RzIGZvciBuZXh0IDE1IHllYXJzLg0KDQoxOTk3OltXaG9dW1Jlc2VhcmNoXVtDb21wdXRpbmddW1RlY2hdW0N1bHR1cmVdIFZMQyBNZWRpYSBQbGF5ZXIgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBzdHVkZW50cyBhdCB0aGUgRnJlbmNoIGVuZ2luZWVyaW5nIHNjaG9vbCDDiWNvbGUgQ2VudHJhbGUgUGFyaXMgaW4gMTk5Ni4gV2hpbGUgaXQgc3RhcnRlZCBhcyBhbiBhY2FkZW1pYyBwcm9qZWN0IChWaWRlb0xBTikgdG8gc3RyZWFtIHZpZGVvIG92ZXIgYSBjYW1wdXMgbmV0d29yaywgaXRzIGRldmVsb3BtZW50IGFuZCBtb2Rlcm5pemF0aW9uIHdlcmUgbGF0ZXIgbGVkIGJ5IEplYW4tQmFwdGlzdGUgS2VtcGYuIA0KMTk5NzpbUmVzZWFyY2hdW1NwYWNlXSAyOSBKdWx5IDE5OTc6IGEgTkFTQSBzY2llbnRpc3QgYW5ub3VuY2VkIGV2aWRlbmNlIG9mIGZvc3NpbGl6ZWQgbWljcm9zY29waWMgbGlmZSBmb3JtcyBpbiBhIG1ldGVvcml0ZSBub3QgZnJvbSBhbnkga25vd24gcGxhbmV0Lg0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgR3JvdXAgb2YgRWlnaHQgKEc4KSB3YXMgYW4gaW50ZXJnb3Zlcm5tZW50YWwgcG9saXRpY2FsIGZvcnVtIGZyb20gMTk5NyB0byAyMDE0LCBmb3JtZWQgYnkgaW5jb3Jwb3JhdGluZyBSdXNzaWEgaW50byB0aGUgRzcuIFRoZSBHOCBiZWNhbWUgdGhlIEc3IGFnYWluIGFmdGVyIFJ1c3NpYSB3YXMgZXhwZWxsZWQgaW4gMjAxNCBhZnRlciB0aGUgUnVzc2lhbiBhbm5leGF0aW9uIG9mIENyaW1lYS4gRm91bmRlZDogMTk5NywgRGVudmVyLCBDb2xvcmFkbywgVW5pdGVkIFN0YXRlcw0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBGb3VuZGVkOiA2IEp1bmUgMTk5NywgVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiAoQklNU1RFQykgaXMgYW4gaW50ZXJuYXRpb25hbCBvcmdhbml6YXRpb24gb2Ygc2V2ZW4gU291dGggQXNpYW4gYW5kIFNvdXRoZWFzdCBBc2lhbiBuYXRpb25zLCBob3VzaW5nIDEuNzMgYmlsbGlvbiBwZW9wbGUgYW5kIGhhdmluZyBhIGNvbWJpbmVkIGdyb3NzIGRvbWVzdGljIHByb2R1Y3Qgb2YgVVMkNS4yIHRyaWxsaW9uLg0KMTk5NzpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gYnVpbHQgdGhlIGZpcnN0IGV4cGVyaW1lbnRhbCBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCBjb3VsZCBtYW5pcHVsYXRlIDcgcXViaXRzIHVzaW5nIG51Y2xlYXIgbWFnbmV0aWMgcmVzb25hbmNlIChOTVIpIHRlY2huaXF1ZXMuDQoxOTk3IChKdWwgNCk6W1NwYWNlXVtNYXJzXSBUaGUgTWFycyBQYXRoZmluZGVyIGVuZHVyZWQgYSAzMC1zZWNvbmQgY29tbXVuaWNhdGlvbnMgYmxhY2tvdXQgYXMgaXQgZW50ZXJlZCBNYXJzJyBhdG1vc3BoZXJlLiBJdCBsYW5kZWQgYXQgQXJlcyBWYWxsaXMsIENocnlzZSBQbGFuaXRpYSwgTWFycyAxOcKwN+KAsjQ44oCzTiAzM8KwMTPigLIxMuKAs1cuIE1hcnMgUGF0aGZpbmRlciAoTUVTVVIgUGF0aGZpbmRlcikgaXMgYW4gQW1lcmljYW4gcm9ib3RpYyBzcGFjZWNyYWZ0IHRoYXQgbGFuZGVkIGEgYmFzZSBzdGF0aW9uIHdpdGggYSByb3ZpbmcgcHJvYmUgb24gTWFycyBpbiAxOTk3LiBJdCBjb25zaXN0ZWQgb2YgYSBsYW5kZXIsIHJlbmFtZWQgdGhlIENhcmwgU2FnYW4gTWVtb3JpYWwgU3RhdGlvbiwgYW5kIGEgbGlnaHR3ZWlnaHQsIDEwLjYga2cgKDIzIGxiKSB3aGVlbGVkIHJvYm90aWMgTWFycyByb3ZlciBuYW1lZCBTb2pvdXJuZXIsIHRoZSBmaXJzdCByb3ZlciB0byBvcGVyYXRlIG91dHNpZGUgdGhlIEVhcnRo4oCTTW9vbiBzeXN0ZW0uDQoxOTk3OltCb29rXSBNaXRjaCBBbGJvbSdzIFR1ZXNkYXlzIHdpdGggTW9ycmllLg0KMTk5NzpbR2FtaW5nXSBHcmFuZCBUaGVmdCBBdXRvIChHVEEpIHJlbGVhc2VkIGJ5IERNQSBEZXNpZ24gKGxhdGVyIFJvY2tzdGFyIE5vcnRoKSBmb3IgUFMxLCBXaW5kb3dzIGFuZCBNUy1ET1M7IEdyYW5kIFRoZWZ0IEF1dG86IFZpY2UgQ2l0eSAoMjAwMik7IEdyYW5kIFRoZWZ0IEF1dG86IFNhbiBBbmRyZWFzICgyMDA0KTsgR3JhbmQgVGhlZnQgQXV0byBJViAoMjAwOCk7IEdyYW5kIFRoZWZ0IEF1dG8gViAoMjAxMyk7IEdyYW5kIFRoZWZ0IEF1dG86IFRoZSBUcmlsb2d5IOKAkyBUaGUgRGVmaW5pdGl2ZSBFZGl0aW9uICgyMDIxKQ0KMTk5NzogVGVra2VuIDMgd2FzIGRlc2lnbmVkIGJ5IEthdHN1aGlybyBIYXJhZGEgKE9zYWthLCBPc2FrYSBQcmVmZWN0dXJlLCBKYXBhbikgb2YgQmFuZGFpIE5hbWNvIEVudGVydGFpbm1lbnQgaGVhZHF1YXJ0ZXJlZCBhdCDFjHRhLCBUb2t5by4NCjE5OTcgKE1hciA2KTogW0dlb1BvbGl0aWNzXSBUaGUgSW5kaWFuIE9jZWFuIFJpbSBBc3NvY2lhdGlvbiwgZm9ybWVybHkga25vd24gYXMgdGhlIEluZGlhbiBPY2VhbiBSaW0gSW5pdGlhdGl2ZSBhbmQgdGhlIEluZGlhbiBPY2VhbiBSaW0gQXNzb2NpYXRpb24gZm9yIFJlZ2lvbmFsIENvb3BlcmF0aW9uLCBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBjb25zaXN0aW5nIG9mIDIzIHN0YXRlcyBib3JkZXJpbmcgdGhlIEluZGlhbiBPY2Vhbi4gVGhlIElPUkEgaXMgYSByZWdpb25hbCBmb3J1bSwgdHJpcGFydGl0ZSBpbiBuYXR1cmUsIGJyaW5naW5nIHRvZ2V0aGVyIHJlcHJlc2VudGF0aXZlcyBvZiBHb3Zlcm5tZW50LCBCdXNpbmVzcyBhbmQgQWNhZGVtaWEsIGZvciBwcm9tb3RpbmcgY28tb3BlcmF0aW9uIGFuZCBjbG9zZXIgaW50ZXJhY3Rpb24gYW1vbmcgdGhlbS4gSXQgaXMgYmFzZWQgb24gdGhlIHByaW5jaXBsZXMgb2YgT3BlbiBSZWdpb25hbGlzbSBmb3Igc3RyZW5ndGhlbmluZyBFY29ub21pYyBDb29wZXJhdGlvbiBwYXJ0aWN1bGFybHkgb24gVHJhZGUgRmFjaWxpdGF0aW9uIGFuZCBJbnZlc3RtZW50LCBQcm9tb3Rpb24gYXMgd2VsbCBhcyBTb2NpYWwgRGV2ZWxvcG1lbnQgb2YgdGhlIHJlZ2lvbi4gVGhlIENvb3JkaW5hdGluZyBTZWNyZXRhcmlhdCBvZiBJT1JBIGlzIGxvY2F0ZWQgYXQgRWJlbmUsIE1hdXJpdGl1cy4NCjE5OTcgKEFwciAyMSk6IEguRC4gRGV2ZSBHb3dkYSByZXNpZ25zLiBJbmRlciBLdW1hciBHdWpyYWwgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NyAoSnVuIDYpOiBbR2VvUG9saXRpY3NdIEJJTVNURUMgZm91bmRlZC4gVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBvZiBzZXZlbiBTb3V0aCBBc2lhbiBhbmQgU291dGhlYXN0IEFzaWFuIG5hdGlvbnMsIGhvdXNpbmcgMS43MyBiaWxsaW9uIHBlb3BsZSBhbmQgaGF2aW5nIGEgY29tYmluZWQgZ3Jvc3MgZG9tZXN0aWMgcHJvZHVjdCBvZiAkMy44IHRyaWxsaW9uLiBUaGUgQklNU1RFQyBtZW1iZXIgc3RhdGVzIOKAkyBCYW5nbGFkZXNoLCBCaHV0YW4sIEluZGlhLCBNeWFubWFyLCBOZXBhbCwgU3JpIExhbmthLCBhbmQgVGhhaWxhbmQg4oCTIGFyZSBhbW9uZyB0aGUgY291bnRyaWVzIGRlcGVuZGVudCBvbiB0aGUgQmF5IG9mIEJlbmdhbC4NCjE5OTcgKEp1biA4KTogRGVzcGl0ZSBhZ2dyZXNzaXZlIGNoZWxhdGlvbiB0aGVyYXB5LCBoZXIgY29uZGl0aW9uIHJhcGlkbHkgZGV0ZXJpb3JhdGVkLiBUaHJlZSB3ZWVrcyBhZnRlciB0aGUgZmlyc3QgbmV1cm9sb2dpY2FsIHN5bXB0b21zIGFwcGVhcmVkLCBXZXR0ZXJoYWhuIGxhcHNlZCBpbnRvIHdoYXQgYXBwZWFyZWQgdG8gYmUgYSB2ZWdldGF0aXZlIHN0YXRlIHB1bmN0dWF0ZWQgYnkgcGVyaW9kcyBvZiBleHRyZW1lIGFnaXRhdGlvbi4gT25lIG9mIGhlciBmb3JtZXIgc3R1ZGVudHMgc2FpZCB0aGF0ICJIZXIgaHVzYmFuZCBzYXcgdGVhcnMgcm9sbGluZyBkb3duIGhlciBmYWNlLiBJIGFza2VkIGlmIHNoZSB3YXMgaW4gcGFpbi4gVGhlIGRvY3RvcnMgc2FpZCBpdCBkaWRuJ3QgYXBwZWFyIHRoYXQgaGVyIGJyYWluIGNvdWxkIGV2ZW4gcmVnaXN0ZXIgcGFpbi4iIFdldHRlcmhhaG4gd2FzIHJlbW92ZWQgZnJvbSBsaWZlIHN1cHBvcnQgYW5kIHByb25vdW5jZWQgZGVhZCBvbiBKdW5lIDgsIDE5OTcsIHRlbiBtb250aHMgYWZ0ZXIgaGVyIGluaXRpYWwgZXhwb3N1cmUuIEluIHJlc3BvbnNlLCB0aGUgT2NjdXBhdGlvbmFsIFNhZmV0eSBhbmQgSGVhbHRoIEFkbWluaXN0cmF0aW9uIHJlY29tbWVuZGVkIHRoYXQgdGhlIHVzZSBvZiBkaW1ldGh5bG1lcmN1cnkgYmUgYXZvaWRlZCB1bmxlc3MgYWJzb2x1dGVseSBuZWNlc3NhcnkgYW5kIG1hbmRhdGVkIHRoZSB1c2Ugb2YgcGxhc3RpYy1sYW1pbmF0ZSBnbG92ZXMgKFNpbHZlclNoaWVsZCkgd2hlbiBoYW5kbGluZyB0aGlzIGNvbXBvdW5kLg0KMTk5NyAoSnVuIDEzKTpbSmFja10gQm9yZGVyDQoxOTk3IChKdW4gMjYpOltCb29rXSAzMllPIEouIEsuIFJvd2xpbmcgcHVibGlzaGVzIGhlciBmaXJzdCBIYXJyeSBQb3R0ZXIgYm9vaywgVGhlIFBoaWxvc29waGVyJ3MgU3RvbmU7IA0KVGhlIENoYW1iZXIgb2YgU2VjcmV0cyAoMiBKdWx5IDE5OTgpLA0KVGhlIFByaXNvbmVyIG9mIEF6a2FiYW4gKDggSnVseSAxOTk5KSwNClRoZSBHb2JsZXQgb2YgRmlyZSAoOCBKdWx5IDIwMDApLA0KVGhlIE9yZGVyIG9mIHRoZSBQaG9lbml4ICgsIDI3IEp1bmUgMjAwMyksDQpUaGUgSGFsZi1CbG9vZCBQcmluY2UgKDE2IEp1bHkgMjAwNSksDQpUaGUgRGVhdGhseSBIYWxsb3dzICgyMSBKdWx5IDIwMDcpDQoxOTk3IChBdWcgMjUpOltTcGFjZV0gQWR2YW5jZWQgQ29tcG9zaXRpb24gRXhwbG9yZXIgaXMgYSBOQVNBIEV4cGxvcmVyIHByb2dyYW0gc2F0ZWxsaXRlIGFuZCBzcGFjZSBleHBsb3JhdGlvbiBtaXNzaW9uIHRvIHN0dWR5IG1hdHRlciBjb21wcmlzaW5nIGVuZXJnZXRpYyBwYXJ0aWNsZXMgZnJvbSB0aGUgc29sYXIgd2luZCwgdGhlIGludGVycGxhbmV0YXJ5IG1lZGl1bSwgYW5kIG90aGVyIHNvdXJjZXMuDQoxOTk3IChTZXAgMTMpOiB0aGUgaW50cm9kdWN0b3J5IGVwaXNvZGUgb2YgU2hha3RpbWFuIHdhcyBhaXJlZCBvbiBEb29yZGFyc2hhbiAoSW5kaWEncyBuYXRpb25hbCB0ZWxldmlzaW9uIG5ldHdvcmspIGZyb20gMjcgU2VwdGVtYmVyIDE5OTcgdG8gMjcgTWFyY2ggMjAwNSwgb24gU3VuZGF5cyBhdCAxMiBub29uIElTVC4gVGhlIHRlbGVjYXN0IHNsb3QsIGhvd2V2ZXIgd2FzIHNoaWZ0ZWQgdG8gOTozMCBhLm0uIGZvciB0aGUgbGFzdCBlcGlzb2Rlcy4gDQoxOTk3IChTZXAgMjcgMTA6MjMgVVRDKTpbU3BhY2VdW01hcnNdIExhc3QgY29udGFjdCB3aXRoIE1hcnMgUGF0aGZpbmRlci4gTWlzc2lvbiBkdXJhdGlvbiAoTGF1bmNoIHRvIGxhc3QgY29udGFjdCk6IDkgbW9udGhzLCAyMyBkYXlzLg0KMTk5NyAoT2N0IDMxKTpbQm9va10gRG9uYWxkIFRydW1wJ3MgVHJ1bXA6IFRoZSBBcnQgb2YgdGhlIENvbWViYWNrOyBUaGUgQW1lcmljYSBXZSBEZXNlcnZlICgyMDAwKTsgVHJ1bXA6IFRoaW5rIExpa2UgYSBCaWxsaW9uYWlyZTogRXZlcnl0aGluZyBZb3UgTmVlZCB0byBLbm93IEFib3V0IFN1Y2Nlc3MsIFJlYWwgRXN0YXRlLCBhbmQgTGlmZSAoMjAwNCk7IFdoeSBXZSBXYW50IFlvdSB0byBCZSBSaWNoICgyMDA2KTsgVHJ1bXA6IFRoZSBCZXN0IFJlYWwgRXN0YXRlIEFkdmljZSBJIEV2ZXIgUmVjZWl2ZWQ6IDEwMCBUb3AgRXhwZXJ0cyBTaGFyZSBUaGVpciBTdHJhdGVnaWVzICgyMDA2LCBOb3YgMSk7IFRoaW5rIEJJRyBhbmQgS2ljayBBc3MgaW4gQnVzaW5lc3MgYW5kIExpZmUgKDIwMDcpOyBUcnVtcCBOZXZlciBHaXZlIFVwOiBIb3cgSSBUdXJuZWQgTXkgQmlnZ2VzdCBDaGFsbGVuZ2VzIGludG8gU3VjY2VzcyAoMjAwOCk7IFRpbWUgdG8gR2V0IFRvdWdoOiBNYWtpbmcgQW1lcmljYSAjMSBBZ2FpbiAoMjAxMSk7IENyaXBwbGVkIEFtZXJpY2E6IEhvdyB0byBNYWtlIEFtZXJpY2EgR3JlYXQgQWdhaW4gKDIwMTUpDQoxOTk3OiBBcnVuZGhhdGkgUm95IGJlY2FtZSB0aGUgZmlyc3QgSW5kaWFuIHRvIHdpbiBNYW4gQm9va2VyIFByaXplIGZvciBoZXIgbm92ZWwgJ1RoZSBHb2Qgb2YgU21hbGwgVGhpbmdzJy4NCjE5OTc6IElJVC1KRUUgd2FzIGNvbmR1Y3RlZCB0d2ljZSBhZnRlciB0aGUgUS1QYXBlciB3YXMgbGVha2VkLg0KMTk5NzogTkFTQSBlc3RpbWF0ZWQgdGhlcmUgd2VyZSBhcHByb3guIDIsNjQ1IGFydGlmaWNpYWwgc2F0ZWxsaXRlIHBheWxvYWRzIG9yYml0dGluZyB0aGUgZWFydGggYW5kIDYsMjE2IHBpZWNlcyBvZiBzcGFjZSBkZWJyaXMgYXMgdHJhY2tlZCBieSB0aGUgR1NGQy4gT3ZlciAxNiwyOTEgcHJldmlvdXNseSBsYXVuY2hlZCBvYmplY3RzIGhhdmUgZGVjYXllZCBpbnRvIHRoZSBFYXJ0aCdzIGF0bW9zcGhlcmUuDQoxOTk3OiBCSEMgRmluYW5jaWFsLCBJbmMuIG9mIFBlbm5zeWx2YW5pYSBtZXJnZWQgaW50byBGSVNWIHRvIGZvcm0gU2VjdXJlZCBUcmFuc2FjdGlvbiBQcm9jZXNzaW5nIFNlcnZpY2VzLg0KMTk5NzpbQm9va10gVGhlIEZvdXIgQWdyZWVtZW50czogQSBQcmFjdGljYWwgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSBpcyBhIHNlbGYtaGVscCBib29rIGJ5IGJlc3RzZWxsaW5nIGF1dGhvciBEb24gTWlndWVsIFJ1aXogd2l0aCBKYW5ldCBNaWxsczsgVGhlIE1hc3Rlcnkgb2YgTG92ZTogQSBQcmFjdGljYWwgR3VpZGUgdG8gdGhlIEFydCBvZiBSZWxhdGlvbnNoaXAgLS1Ub2x0ZWMgV2lzZG9tIEJvb2sgKDE5OTksIE1hciAzMCk7IFRoZSBWb2ljZSBvZiBLbm93bGVkZ2U6IEEgUHJhY3RpY2FsIEd1aWRlIHRvIElubmVyIFBlYWNlICgyMDA0LCBNYXIgMTApOyBUaGUgRmlmdGggQWdyZWVtZW50OiBBIFByYWN0aWNhbCBHdWlkZSB0byBTZWxmLU1hc3RlcnkgKDIwMDkpOyBUaGUgQ2lyY2xlIG9mIEZpcmU6IEluc3BpcmF0aW9uIGFuZCBHdWlkZWQgTWVkaXRhdGlvbnMgZm9yIExpdmluZyBpbiBMb3ZlIGFuZCBIYXBwaW5lc3MgKDIwMTMsIEF1ZyAxKTsgVGhlIE1hc3Rlcnkgb2YgU2VsZjogQSBUb2x0ZWMgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSAoMjAxNiwgTWF5IDYpDQoxOTk3OltCb29rXSBKb24gS3Jha2F1ZXIncyBJbnRvIFRoaW4gQWlyOiBBIFBlcnNvbmFsIEFjY291bnQgb2YgdGhlIE10LiBFdmVyZXN0IERpc2FzdGVyOyBVbmRlciB0aGUgQmFubmVyIG9mIEhlYXZlbiAoMjAwMyBKdWwpDQoxOTk3IChEZWMgMTEpOltFbnZdIFRoZSBLeW90byBQcm90b2NvbCB3YXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgd2hpY2ggZXh0ZW5kZWQgdGhlIDE5OTIgVW5pdGVkIE5hdGlvbnMgRnJhbWV3b3JrIENvbnZlbnRpb24gb24gQ2xpbWF0ZSBDaGFuZ2UgKFVORkNDQykgdGhhdCBjb21taXRzIHN0YXRlIHBhcnRpZXMgdG8gcmVkdWNlIGdyZWVuaG91c2UgZ2FzIGVtaXNzaW9ucywgYmFzZWQgb24gdGhlIHNjaWVudGlmaWMgY29uc2Vuc3VzIHRoYXQgKHBhcnQgb25lKSBnbG9iYWwgd2FybWluZyBpcyBvY2N1cnJpbmcgYW5kIChwYXJ0IHR3bykgdGhhdCBodW1hbi1tYWRlIENPMiBlbWlzc2lvbnMgYXJlIGRyaXZpbmcgaXQuDQoxOTk3OltJbmRpYV1bRWR1Y2F0aW9uXVtDdWx0dXJlXSBFa2xhdnlhIE1vZGVsIFJlc2lkZW50aWFsIFNjaG9vbCBpcyBhIEdvdmVybm1lbnQgb2YgSW5kaWEgc2NoZW1lIGZvciBtb2RlbCByZXNpZGVudGlhbCBzY2hvb2wgZm9yIEluZGlhbiB0cmliYWxzIGFjcm9zcyBJbmRpYS4gSXQgaXMgb25lIG9mIHRoZSBmbGFnc2hpcCBpbnRlcnZlbnRpb25zIG9mIHRoZSBNaW5pc3RyeSBvZiBUcmliYWwgQWZmYWlycywgR292ZXJubWVudCBvZiBJbmRpYSBhbmQgd2FzIGludHJvZHVjZWQgaW4gdGhlIHllYXIgMTk5Ny05OCB0byBlbnN1cmUgdHJpYmFsIHN0dWRlbnRzIGdldCBhY2Nlc3MgdG8gcXVhbGl0eSBlZHVjYXRpb24gaW4gdGhlIHJlbW90ZSB0cmliYWwgYXJlYXMuIEVNUlNzIGFyZSBzZXQgdXAgaW4gU3RhdGVzL1VUcyB3aXRoIGdyYW50cyB1bmRlciBBcnRpY2xlIDI3NSgxKSBvZiB0aGUgQ29uc3RpdHV0aW9uIG9mIEluZGlhLiBBcyBwZXIgdGhlIGJ1ZGdldCAyMDE4LTE5LCBldmVyeSBibG9jayB3aXRoIG1vcmUgdGhhbiA1MCUgU1QgcG9wdWxhdGlvbiBhbmQgYXQgbGVhc3QgMjAsMDAwIHRyaWJhbCBwZXJzb25zLCB3aWxsIGhhdmUgYW4gRWtsYXZ5YSBNb2RlbCBSZXNpZGVudGlhbCBTY2hvb2wgYnkgdGhlIHllYXIgMjAyMi4NCjE5OTc6W1NwYWNlXSBIaXBwYXJjb3MgKDE5ODkgLTE5OTMpLiBJdCB0b29rIDQtOCB5ZWFycyB0byBvcmdhbml6ZSBhbmQgcHVibGlzaCB0aGUgNCB5ZWFycyBzdHVkeSBieSB0aGlzIGV4cGVyaW1lbnQsIHdoaWNoIHBlcm1pdHRlZCB0aGUgZmlyc3QgaGlnaC1wcmVjaXNpb24gbWVhc3VyZW1lbnRzIG9mIHRoZSBpbnRyaW5zaWMgYnJpZ2h0bmVzc2VzIChjb21wYXJlZCB0byB0aGUgbGVzcyBwcmVjaXNlIGFwcGFyZW50IGJyaWdodG5lc3MpLCBwcm9wZXIgbW90aW9ucywgYW5kIHBhcmFsbGF4ZXMgb2Ygc3RhcnMsIGVuYWJsaW5nIGJldHRlciBjYWxjdWxhdGlvbnMgb2YgdGhlaXIgZGlzdGFuY2UgYW5kIHRhbmdlbnRpYWwgdmVsb2NpdHkuIFdoZW4gY29tYmluZWQgd2l0aCByYWRpYWwgdmVsb2NpdHkgbWVhc3VyZW1lbnRzIGZyb20gc3BlY3Ryb3Njb3B5LCBhc3Ryb3BoeXNpY2lzdHMgd2VyZSBhYmxlIHRvIGZpbmFsbHkgbWVhc3VyZSBhbGwgc2l4IHF1YW50aXRpZXMgbmVlZGVkIHRvIGRldGVybWluZSB0aGUgbW90aW9uIG9mIHN0YXJzLiBUaGUgcmVzdWx0aW5nIEhpcHBhcmNvcyBDYXRhbG9ndWUsIGEgaGlnaC1wcmVjaXNpb24gY2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiAxMTgsMjAwIHN0YXJzLCB3YXMgcHVibGlzaGVkIGluIDE5OTcuIFRoZSBsb3dlci1wcmVjaXNpb24gVHljaG8gQ2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiBhIG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBhdCB0aGUgc2FtZSB0aW1lLCB3aGlsZSB0aGUgZW5oYW5jZWQgVHljaG8tMiBDYXRhbG9ndWUgb2YgMi41IG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBpbiAyMDAwLiBIaXBwYXJjb3MnIGZvbGxvdy11cCBtaXNzaW9uLCBHYWlhLCB3YXMgbGF1bmNoZWQgaW4gMjAxMy4NCjE5OTc6W1NwYWNlXVtSZXNlYXJjaF0gU2luY2UgdGhlIDE5OTcgcHJvcG9zYWwgb2YgdGhlIEFkUy9DRlQgKEFudGktZGUgU2l0dGVyL0NvbmZvcm1hbCBGaWVsZCBUaGVvcnkpIGNvcnJlc3BvbmRlbmNlLCB0aGUgcHJlZG9taW5hbnQgYmVsaWVmIGFtb25nIHBoeXNpY2lzdHMgaXMgdGhhdCBpbmZvcm1hdGlvbiBpcyBpbmRlZWQgcHJlc2VydmVkIGluIGJsYWNrIGhvbGUgZXZhcG9yYXRpb24uIA0KMTk5NzpbU3BhY2VdW1Jlc2VhcmNoXSBBIHdpZGVseSBwdWJsaWNpemVkIGJldCBtYWRlIGluIDE5OTcgYmV0d2VlbiBKb2huIFByZXNraWxsIG9uIHRoZSBvbmUgaGFuZCB3aXRoIEhhd2tpbmcgYW5kIEtpcCBUaG9ybmUgb24gdGhlIG90aGVyIHRoYXQgaW5mb3JtYXRpb24gd2FzIG5vdCBsb3N0IGluIGJsYWNrIGhvbGVzLiBUaGUgc2NpZW50aWZpYyBkZWJhdGUgb24gdGhlIHBhcmFkb3ggd2FzIGRlc2NyaWJlZCBpbiBhIHBvcHVsYXIgYm9vayBwdWJsaXNoZWQgaW4gMjAwOCBieSBMZW9uYXJkIFN1c3NraW5kIGNhbGxlZCBUaGUgQmxhY2sgSG9sZSBXYXIuIChUaGUgYm9vayBjYXJlZnVsbHkgbm90ZXMgdGhhdCB0aGUgJ3dhcicgd2FzIHB1cmVseSBhIHNjaWVudGlmaWMgb25lLCBhbmQgdGhhdCBhdCBhIHBlcnNvbmFsIGxldmVsLCB0aGUgcGFydGljaXBhbnRzIHJlbWFpbmVkIGZyaWVuZHMuKSBUaGUgYm9vayBzdGF0ZXMgdGhhdCBIYXdraW5nIHdhcyBldmVudHVhbGx5IHBlcnN1YWRlZCB0aGF0IGJsYWNrLWhvbGUgZXZhcG9yYXRpb24gd2FzIHVuaXRhcnkgYnkgdGhlIGhvbG9ncmFwaGljIHByaW5jaXBsZSwgd2hpY2ggd2FzIGZpcnN0IHByb3Bvc2VkIGJ5ICd0IEhvb2Z0LCBmdXJ0aGVyIGRldmVsb3BlZCBieSBTdXNza2luZCBhbmQgbGF0ZXIgZ2l2ZW4gYSBwcmVjaXNlIHN0cmluZyB0aGVvcnkgaW50ZXJwcmV0YXRpb24gYnkgdGhlIEFkUy9DRlQgY29ycmVzcG9uZGVuY2UuIEluIDIwMDQsIEhhd2tpbmcgYWxzbyBjb25jZWRlZCB0aGUgMTk5NyBiZXQsIHBheWluZyBQcmVza2lsbCB3aXRoIGEgYmFzZWJhbGwgZW5jeWNsb3BlZGlhICJmcm9tIHdoaWNoIGluZm9ybWF0aW9uIGNhbiBiZSByZXRyaWV2ZWQgYXQgd2lsbCIgYWx0aG91Z2ggVGhvcm5lIHJlZnVzZWQgdG8gY29uY2VkZS4NCjE5OTc6W0VhcnRoXVtQaHlzaWNzXVtSZXNlYXJjaF0gdGhlcmUgd2VyZSB0d28gbGFyZ2UgZWFydGhxdWFrZXMgb2ZmIHRoZSBjb2FzdCBvZiBDaGlsZS4gVGhlIG1hZ25pdHVkZSBvZiB0aGUgZmlyc3QsIGluIEp1bHksIHdhcyBlc3RpbWF0ZWQgYXQgTXfigK82LjksIGJ1dCB3YXMgYmFyZWx5IGZlbHQsIGFuZCBvbmx5IGluIHRocmVlIHBsYWNlcy4gSW4gT2N0b2JlciBhIE134oCvNy4xIHF1YWtlIGluIG5lYXJseSB0aGUgc2FtZSBsb2NhdGlvbiwgYnV0IHR3aWNlIGFzIGRlZXAgYW5kIG9uIGEgZGlmZmVyZW50IGtpbmQgb2YgZmF1bHQsIHdhcyBmZWx0IG92ZXIgYSBicm9hZCBhcmVhLCBpbmp1cmVkIG92ZXIgMzAwIHBlb3BsZSwgYW5kIGRlc3Ryb3llZCBvciBzZXJpb3VzbHkgZGFtYWdlZCBvdmVyIDEwLDAwMCBob3VzZXMuIEFzIGNhbiBiZSBzZWVuIGluIHRoZSB0YWJsZSBiZWxvdywgdGhpcyBkaXNwYXJpdHkgb2YgZGFtYWdlIGRvbmUgaXMgbm90IHJlZmxlY3RlZCBpbiBlaXRoZXIgdGhlIG1vbWVudCBtYWduaXR1ZGUgKE134oCvKSBub3IgdGhlIHN1cmZhY2Utd2F2ZSBtYWduaXR1ZGUgKE1z4oCvKS4gT25seSB3aGVuIHRoZSBtYWduaXR1ZGUgaXMgbWVhc3VyZWQgb24gdGhlIGJhc2lzIG9mIHRoZSBib2R5LXdhdmUgKG1i4oCvKSBvciB0aGUgc2Vpc21pYyBlbmVyZ3kgKE1l4oCvKSBpcyB0aGVyZSBhIGRpZmZlcmVuY2UgY29tcGFyYWJsZSB0byB0aGUgZGlmZmVyZW5jZSBpbiBkYW1hZ2UuIChhcyByZXNlYXJjaGVkIGJ5IENob3ksIEJvYXR3cmlnaHQgJiBLaXJieSAyMDAxLCBwLiAxMy4pLiBNdyA2Ljkgd2FzIGFjdHVhbGx5IE1lIDYuMSwgYW4gaW50ZXJwbGF0ZS10aHJ1c3QgdHlwZSBvZiBmYXVsdCwgd2hpbGUgTXcgNy4xIHdhcyBhY3R1YWxseSBhIDcuNSBNZSBpbnRyYXNsYWItbm9ybWFsIHR5cGUgb2YgZmF1bHQuDQoxOTk3OltSZXNlYXJjaF0gRHVyaW5nIHN1cnZleXMgY2FycmllZCBvdXQgYmV0d2VlbiAxOTk3IGFuZCAyMDAxLCBhIHNwb3Qgd2FzIGZvdW5kIGFsb25nIHRoZSBNYXJpYW5hIFRyZW5jaCB0aGF0IGhhZCBhIGRlcHRoIHNpbWlsYXIgdG8gdGhlIENoYWxsZW5nZXIgRGVlcCwgcG9zc2libHkgZXZlbiBkZWVwZXIuIEl0IHdhcyBkaXNjb3ZlcmVkIHdoaWxlIHNjaWVudGlzdHMgZnJvbSB0aGUgSGF3YWlpIEluc3RpdHV0ZSBvZiBHZW9waHlzaWNzIGFuZCBQbGFuZXRvbG9neSB3ZXJlIGNvbXBsZXRpbmcgYSBzdXJ2ZXkgYXJvdW5kIEd1YW07IHRoZXkgdXNlZCBhIHNvbmFyIG1hcHBpbmcgc3lzdGVtIHRvd2VkIGJlaGluZCB0aGUgcmVzZWFyY2ggc2hpcCB0byBjb25kdWN0IHRoZSBzdXJ2ZXkuIFRoaXMgbmV3IHNwb3Qgd2FzIG5hbWVkIHRoZSBITVJHIChIYXdhaWkgTWFwcGluZyBSZXNlYXJjaCBHcm91cCkgRGVlcCwgYWZ0ZXIgdGhlIGdyb3VwIG9mIHNjaWVudGlzdHMgd2hvIGRpc2NvdmVyZWQgaXQuDQoxOTk3OltTcGFjZVhdIEEgcmVzb2x2ZWQgY2lyY3Vtc3RlbGxhciBkaXNrIHdhcyBmaXJzdCBpZGVudGlmaWVkIGluIDE5OTcgd2l0aCB0aGUgT3dlbnMgVmFsbGV5IFJhZGlvIE9ic2VydmF0b3J5LiBUaGUgc2VtaS1tYWpvciBheGlzIHdhcyBpbml0aWFsbHkgZXN0aW1hdGVkIHRvIGJlIDExMCBBVS4gSEQgMTYzMjk2IGFuZCBzdXJyb3VuZGluZ3MgQ3JlZGl0OiBFU08vRGlnaXRpemVkIFNreSBTdXJ2ZXkgMjsgQWNrbm93bGVkZ2VtZW50OiBEYXZpZGUgRGUgTWFydGluIE9ic2VydmF0aW9uIGRhdGEgRXBvY2ggSjIwMDAgICAgICBFcXVpbm94IEoyMDAwIENvbnN0ZWxsYXRpb24JU2FnaXR0YXJpdXMgUmlnaHQgYXNjZW5zaW9uCTE3aCA1Nm0gMjEuMjlzIERlY2xpbmF0aW9uCeKIkjIxwrAgNTfigLIgMjEuODfigLMgQXBwYXJlbnQgbWFnbml0dWRlIChWKQk2Ljg1OyBDaGFyYWN0ZXJpc3RpY3MgRXZvbHV0aW9uYXJ5IHN0YWdlCUhlcmJpZyBBZSBzdGFyIFNwZWN0cmFsIHR5cGUJQTNWYWVrQTFtQTE7IEFzdHJvbWV0cnkgUmFkaWFsIHZlbG9jaXR5IChSdikJLTQuMDAgwrEzLjNbM10ga20vcyBQcm9wZXIgbW90aW9uICjOvCkJUkE6IC03LjU4NiDCsTAuMDQxIG1hcy95cjsgRGVjLjogLTM5LjQ1OCDCsTAuMDI5IG1hcy95cls0XSBQYXJhbGxheCAoz4ApCTkuOTA0M8KxMC4wNDA4IG1hc1s0XSBEaXN0YW5jZQkzMjkgwrEgMSBseSAoMTAxLjAgwrEgMC40IHBjKSBEZXRhaWxzOyBNYXNzCTEuOTXCsTAuMDcgTeKYiSBSYWRpdXMJMS44N8KxMC4wNSBS4piJIEx1bWlub3NpdHkJMjAuNCszLjYg4oiSMy4wIEzimIkgU3VyZmFjZSBncmF2aXR5IChsb2cgZykJNC4xMMKxMC4xMCBjZ3MgVGVtcGVyYXR1cmUJOTAwMMKxMjUwIEsgQWdlCTYuMDMrMC4yOCDiiJIwLjI3IE15ciBPdGhlciBkZXNpZ25hdGlvbnMgQkQtMjEgNDc3OSwgQ1BELTIxIDY1MDgsIEVNKiBNV0MgMjc1LCBISVAgODc4MTksIElSQVMgMTc1MzMtMjE1NiwgMk1BU1MgSjE3NTYyMTI4LTIxNTcyMTgsIFBEUyA0NzMsIFRZQyA2MjYyLTIxMzEtMSwgRGF0YWJhc2UgcmVmZXJlbmNlcyBTSU1CQUQNCjE5OTc6W1NwYWNlWF0gMTAxOTkgQ2hhcmlrbG8gaXMgYSByaW5nZWQgYXN0ZXJvaWQgb3IgY2VudGF1ciBpbiB0aGUgb3V0ZXIgU29sYXIgU3lzdGVtLiBJdCBpcyB0aGUgbGFyZ2VzdCBrbm93biBjZW50YXVyLCB3aXRoIGEgZGlhbWV0ZXIgb2YgYWJvdXQgMjUwIGttLiBJdCBvcmJpdHMgdGhlIFN1biBiZXR3ZWVuIFNhdHVybiBhbmQgVXJhbnVzIHdpdGggYW4gb3JiaXRhbCBwZXJpb2Qgb2YgNjIuNSB5ZWFycy4gV2lraXBlZGlhIE9yYml0YWwgcGVyaW9kOiA2MyB5ZWFycyBSYWRpdXM6IDE1MSBrbSBEaXNjb3ZlcmVkOiAxNSBGZWJydWFyeSAxOTk3IERpbWVuc2lvbnM6ICgyODcuNisyLjg7IOKIkjMuMCkgw5cgKDI3MC40KzIuODsg4oiSNS42KSDDlyAoMTk4LjIrMTAuODsg4oiSNS40KSBrbTogMTEgRGlzY292ZXJlcjogSmFtZXMgVi4gU2NvdHRpIFNwZWN0cmFsIHR5cGU6IEQtdHlwZSBhc3Rlcm9pZCBBcGhlbGlvbjogMTguNDIwIEFVDQoxOTk3OltTcGFjZVhdIFRoZSBHcmVhdCBEYXlsaWdodCBGaXJlYmFsbCAtIFRoZSBhdG1vc3BoZXJpYyBwYXNzIG1vZGlmaWVkIHRoZSBvYmplY3QncyBtYXNzIGFuZCBvcmJpdCBhcm91bmQgdGhlIFN1bi4gQSAxOTk0IHN0dWR5IGZvdW5kIHRoYXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgaW4gYW4gRWFydGgtY3Jvc3Npbmcgb3JiaXQgYW5kIHByZWRpY3RlZCB0aGF0IGl0IHdvdWxkIHBhc3MgY2xvc2UgdG8gRWFydGggYWdhaW4gaW4gQXVndXN0IDE5OTcuIEhvd2V2ZXIsIHRoZSBvYmplY3QgaGFzIG5vdCBiZWVuIG9ic2VydmVkIGFnYWluIGFuZCBzbyBpdHMgcG9zdC1lbmNvdW50ZXIgb3JiaXQgcmVtYWlucyB1bmtub3duLg0KMTk5NzpOYWZpc2EgSm9zZXBoIHdhcyB0aGUgeW91bmdlc3QgTWlzcyBJbmRpYSB3aW5uZXIgYXQgYWdlIDE5LCB3aW5uaW5nIHRoZSB0aXRsZSBpbiAxOTk3LiBTaGUgbGF0ZXIgYmVjYW1lIGEgbW9kZWwgYW5kIHRlbGV2aXNpb24gcGVyc29uYWxpdHkuIFdoaWxlIG90aGVyIHdpbm5lcnMgbGlrZSBNZWVuYWtzaGkgU2VzaGFkcmkgd2VyZSBhbHNvIDE3IHdoZW4gdGhleSB3b24gaW4gMTk4MSwgSm9zZXBoIGlzIG9mdGVuIGNpdGVkIGZvciBoZXIgZWFybHkgd2luIGF0IDE5LCB3aGljaCB3YXMgdGhlbiBhIHlvdW5nZXIgYWdlIHRoYW4gaXMgdHlwaWNhbGx5IHNlZW4gaW4gdGhlIGNvbXBldGl0aW9uLiANCjE5OTc6W3NwYWNlXVt0ZWNoXSBUaGUgZmluYWwgQmxvY2sgSUlBIHdhcyBpbiBOb3YgMTk5Nywgd2hpbGUgQmxvY2sgSUlScyBiZWdhbiByZXBsYWNpbmcgdGhlbSBzaG9ydGx5IGFmdGVyLCBsYXN0aW5nIHVudGlsIDIwMDQuIEJsb2NrIElJUiAoUmVwbGVuaXNobWVudCkgbGF1bmNoZXMgZm9sbG93ZWQgZnJvbSAxOTk3IHRvIDIwMDQsIHdpdGggdGhlIGZpcnN0IGxhdW5jaCBpbiBKYW51YXJ5IDE5OTcuIA0KDQoxOTk4OltTcGFjZVhdIFRoZSBwcmltYXJ5IGNvbnN0cnVjdGlvbiBwaGFzZSBvZiB0aGUgSW50ZXJuYXRpb25hbCBTcGFjZSBTdGF0aW9uIChJU1MpIHRvb2sgYXBwcm94aW1hdGVseSAxMyB5ZWFycywgZnJvbSAxOTk4IHRvIDIwMTEsIHdpdGggdGhlIGZpcnN0IG1vZHVsZSBsYXVuY2hpbmcgaW4gTm92ZW1iZXIgMTk5OCBhbmQgSVNTIEFzc2VtYmx5IENvbXBsZXRlIGRlY2xhcmVkIGluIE1heSAyMDExLiBIb3dldmVyLCBhc3NlbWJseSB3YXMgYSBjb250aW51b3VzLCBtdWx0aS1zdGFnZSBwcm9jZXNzIGludm9sdmluZyBtb3JlIHRoYW4gMzAgbWlzc2lvbnMsIG51bWVyb3VzIHNwYWNld2Fsa3MsIGFuZCByb2JvdGljIGFzc2lzdGFuY2UgdG8gYnVpbGQgdGhlIHN0YXRpb24gcGllY2UgYnkgcGllY2UgaW4gb3JiaXQuIEV2ZW4gYWZ0ZXIgMjAxMSwgdGhlIElTUyBjb250aW51ZWQgdG8gZXZvbHZlIHdpdGggb25nb2luZyBhZGRpdGlvbnMgYW5kIHVwZ3JhZGVzLg0KMTk5ODpbUmVzZWFyY2hdW1NwYWNlXSBTcHJpbmcsIDE5OTg6IGEgbWljcm9mb3NzaWwgdGhhdCB3YXMgZm91bmQgaW4gYSBtZXRlb3JpdGUgYW5kIHBob3RvZ3JhcGhlZCBpbiAxOTY2LCB3YXMgcmVjb2duaXplZCBieSBhIFJ1c3NpYW4gbWljcm9iaW9sb2dpc3QgYXMgYSBtYWduZXRvdGFjdGljIGJhY3Rlcml1bS4gQnkgRmFsbCwgMTk5ODogTkFTQSdzIHB1YmxpYyBwb3NpdGlvbiBvbiBsaWZlLWZyb20tc3BhY2Ugc2hpZnRlZCBkcmFtYXRpY2FsbHkuDQoxOTk4OiBBcyBhIHJlc2VhcmNoIHByb2plY3QgYXQgU3RhbmZvcmQgVW5pdmVyc2l0eSwgU2VyZ2V5IEJyaW4gYW5kIExhcnJ5IFBhZ2UgY3JlYXRlZCBhIHNlYXJjaCBlbmdpbmUgdGhhdCBsaXN0ZWQgcmVzdWx0cyBhY2NvcmRpbmcgdG8gdGhlIHBvcHVsYXJpdHkgb2YgdGhlIHBhZ2VzLCBhZnRlciBjb25jbHVkaW5nIHRoYXQgdGhlIG1vc3QgcG9wdWxhciByZXN1bHQgd291bGQgb2Z0ZW4gYmUgdGhlIG1vc3QgdXNlZnVsLiBBZnRlciByYWlzaW5nICQxIG1pbGxpb24gZnJvbSBmYW1pbHksIGZyaWVuZHMgYW5kIG90aGVyIGludmVzdG9ycywgdGhlIHBhaXIgbGF1bmNoZWQgdGhlIGNvbXBhbnkgaW4gMTk5OC4gR29vZ2xlIGhhcyBzaW5jZSBiZWNvbWUgdGhlIHdvcmxk4oCZcyBtb3N0IHBvcHVsYXIgc2VhcmNoIGVuZ2luZSwgcmVjZWl2aW5nIG1vcmUgdGhhbiAyMDAgbWlsbGlvbiBxdWVyaWVzIGVhY2ggZGF5Lg0KMTk5OCAoTm92IDIwKTogDQoxOTk4IChBcHIgMjcpOiBSUkIgZm91bmRlZCBhcyBSYWlsd2F5IFJlY3J1aXRtZW50IENvbnRyb2wgQm9hcmQgaXMgYSBnb3Zlcm5tZW50IG9yZ2FuaXNhdGlvbiBpbiBJbmRpYS4gSXQgd2FzIHNldCB1cCBpbiAxOTk4IGluIHRoZSBNaW5pc3RyeSBvZiBSYWlsd2F5cyAoUmFpbHdheSBCb2FyZCksIE5ldyBEZWxoaS5JbiAxOTQ1LCB0aGUgU2VydmljZXMgQ29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgYXQgQm9tYmF5LCBDYWxjdXR0YSwgTWFkcmFzIGFuZCBMdWNrbm93LiBJbiAxOTgzLCB0byBjYXRlciB0byB0aGUgbmVlZHMgb2YgYXJlYXMgd2hpY2ggd2VyZSBiZWluZyBuZWdsZWN0ZWQgZHVlIHRvIGxvY2F0aW9ucyBvZiB0aGUgZXhpc3RpbmcgY29tbWlzc2lvbnMsIHNldmVuIG1vcmUgY29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgdml6LCBhdCBBaG1lZGFiYWQsIEFqbWVyLCBCaG9wYWwsIEJodXZuZXNod2FyLCBDaGFuZGlnYXJoLCBKYW1tdSBhbmQgU3JpbmFnYXIgd2l0aCBzaXR0aW5nIGF0IExlaCBhbmQgVHJpdmVuZHJ1bS4gSW4gMTk4NCB0d28gbW9yZSBzZXJ2aWNlIGNvbW1pc3Npb25zIHdlcmUgc2V0IHVwIGF0IE1hbGRhIGFuZCBHb3Jha2hwdXIuDQoxOTk4IChNYXkgMTkpOiBBdGFsIEJpaGFyaSBWYWpwYXllZSBiZWNvbWVzIFBNIG9mIEluZGlhIGZvciB0aGUgc2Vjb25kIHRpbWUsIG5vdyBmb3IgNiB5ZWFycyB0aWxsIE1heSAyMiwgMjAwNC4gDQoxOTk4IChNYXkgMjggMTU6MTVQU1QpOiBDaGFnYWktSSBpcyB0aGUgY29kZSBuYW1lIG9mIGZpdmUgc2ltdWx0YW5lb3VzIHVuZGVyZ3JvdW5kIG51Y2xlYXIgdGVzdHMgY29uZHVjdGVkIGJ5IFBha2lzdGFuLiBUaGUgdGVzdHMgd2VyZSBwZXJmb3JtZWQgYXQgUmFzIEtvaCBIaWxscyBpbiB0aGUgQ2hhZ2FpIERpc3RyaWN0IG9mIEJhbG9jaGlzdGFuIFByb3ZpbmNlLiBDaGFnYWktSSB3YXMgUGFraXN0YW4ncyBmaXJzdCBwdWJsaWMgdGVzdCBvZiBudWNsZWFyIHdlYXBvbnMuIFBha2lzdGFuJ3MgZmlzc2lsZSBtYXRlcmlhbCBwcm9kdWN0aW9uIHRha2VzIHBsYWNlIGF0IE5pbG9yZSwgS2FodXRhLCBhbmQgS2h1c2hhYiBOdWNsZWFyIENvbXBsZXgsIHdoZXJlIHdlYXBvbnMtZ3JhZGUgcGx1dG9uaXVtIGlzIHJlZmluZWQuDQoxOTk4OiBBZnRlciBjb21wbGV0aW5nIGhpcyBYIHN0YW5kYXJkIGV4YW1pbmF0aW9ucywgUmFuYmlyIEthcG9vciwgYWdlZCAxNiwgd29ya2VkIGFzIGFuIGFzc2lzdGFudCBkaXJlY3RvciB0byBoaXMgZmF0aGVyIG9uIHRoZSBmaWxtIEFhIEFiIExhdXQgQ2hhbGVuICgxOTk5KSwgZHVyaW5nIHdoaWNoIGhlIGRldmVsb3BlZCBhIGNsb3NlciBib25kIHdpdGggaGltLg0KMTk4ODogTmV0d29ya2VkIERhdGEgUHJvY2Vzc2luZyBDb3IsIElvd2EgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBJbnN1cmFuY2UgZGl2aXNpb24uDQoxOTk4OltCb29rXSBSb2JlcnQgR3JlZW5lJ3MgVGhlIDQ4IExhd3Mgb2YgUG93ZXI7IFRoZSAzMyBTdHJhdGVnaWVzIG9mIFdhciAoMjAwNik7IE1hc3RlcnkgKDIwMTIsIE5vdiAxMyk7IFRoZSBMYXdzIG9mIEh1bWFuIE5hdHVyZSAoMjAxOCwgT2N0IDE2KQ0KMTk5ODpbU3BhY2VdW1Jlc2VhcmNoXVtFeHRyZW1lXSBUaGVuIGNhbWUgMTk5OCBhbmQgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgKEhTVCkgb2JzZXJ2YXRpb25zIG9mIHZlcnkgZGlzdGFudCBzdXBlcm5vdmFlIHRoYXQgc2hvd2VkIHRoYXQsIGEgbG9uZyB0aW1lIGFnbywgdGhlIHVuaXZlcnNlIHdhcyBhY3R1YWxseSBleHBhbmRpbmcgbW9yZSBzbG93bHkgdGhhbiBpdCBpcyB0b2RheS4gU28gdGhlIGV4cGFuc2lvbiBvZiB0aGUgdW5pdmVyc2UgaGFzIG5vdCBiZWVuIHNsb3dpbmcgZHVlIHRvIGdyYXZpdHksIGFzIGV2ZXJ5b25lIHRob3VnaHQsIGl0IGhhcyBiZWVuIGFjY2VsZXJhdGluZy4NCjE5OTg6W0NyaW1lXVtJbmRpYV0gQW5lZXMgYXJyZXN0ZWQgaW4gVUFFIG9uIGNoYXJnZXMgb2YgaGF2aW5nIG11cmRlcmVkIGEgZm9ybWVyIGFzc29jaWF0ZSBhbmQgdGhlbiByaXZhbCwgSXJmYW4gR29nYSwgaW4gRHViYWksIGJ1dCB3YXMgZnJlZWQgYWZ0ZXIgdHdvIGRheXMgZm9yICdsYWNrIG9mIGV2aWRlbmNlJy4NCjE5OTg6W0NvbXB1dGluZ11bUXVhbnR1bV0gUmVzZWFyY2hlcnMgYXQgSUJNLCBPeGZvcmQsIEJlcmtlbGV5LCBTdGFuZm9yZCwgYW5kIE1JVCBwcm9kdWNlZCBhIDItcXViaXQgY29tcHV0aW5nIHN5c3RlbS4NCjE5OTg6W3d3d10gV2lyZXNoYXJrIGlzIGEgZnJlZSBhbmQgb3Blbi1zb3VyY2UgcGFja2V0IGFuYWx5emVyLiBJdCBpcyB1c2VkIGZvciBuZXR3b3JrIHRyb3VibGVzaG9vdGluZywgYW5hbHlzaXMsIHNvZnR3YXJlIGFuZCBjb21tdW5pY2F0aW9ucyBwcm90b2NvbCBkZXZlbG9wbWVudCwgYW5kIGVkdWNhdGlvbi4gT3JpZ2luYWxseSBuYW1lZCBFdGhlcmVhbCwgdGhlIHByb2plY3Qgd2FzIHJlbmFtZWQgV2lyZXNoYXJrIGluIE1heSAyMDA2IGR1ZSB0byB0cmFkZW1hcmsgaXNzdWVzLg0KMTk5ODpbVVNdW0Vjb25vbXldRGF2aWQgUm9ja2VmZWxsZXIgU3IuIHdhcyBhd2FyZGVkIHRoZSBQcmVzaWRlbnRpYWwgTWVkYWwgb2YgRnJlZWRvbSBieSBQcmVzaWRlbnQgQmlsbCBDbGludG9uIGZvciBoaXMgd29yayBvbiBJbnRlcm5hdGlvbmFsIEV4ZWN1dGl2ZSBTZXJ2aWNlIENvcnBzLg0KMTk5ODpbRGVmXVtBdmlhdGlvbl0gVGhlIExvY2toZWVkIFNSLTcxIEJsYWNrYmlyZCBmbGV3IHNvIGhpZ2ggYW5kIHNvIGZhc3QgdGhhdCB0aGUgY3JldyBuZWVkZWQgcHJlc3N1cml6ZWQgc3BhY2Ugc3VpdHMgd2hlbiBmbHlpbmcgaXQuIEFuZCBpdCBpcyBzYWlkIHRoYXQgYXQgdGhlIG1heGltdW0gYWx0aXR1ZGUgb2YgaXQgaXQgd2FzIHBvc3NpYmxlIHRvIHNlZSB0aGUgY3VydmF0dXJlIG9mIHRoZSBlYXJ0aCwgd2hpY2ggcmVmZXJzIHRvIHRoaXMgcXVvdGUgYnkgQ29sb25lbCBBbGlzb246IOKAnE9uIGEgY2xlYXIgZGF5IHlvdSBjYW4gc2VlIGZvcmV2ZXLigKbigJ0uIFRoZSBzZXJ2aWNlIGNlaWxpbmcgb2YgODUsMDAwIGZlZXQgKDI1LDkwMG0pIG1lYW50IHRoYXQgaXQgd2FzIGFuIGV4Y2VsbGVudCBleHBlcmltZW50YWwgdW5pdCBmb3Igc3BhY2UgdHJhdmVscy4gVGhhdCwgY29tYmluZWQgd2l0aCB0aGUgZ3JlYXQgc3BlZWRzIG9mIGl0IHdhcyB0d28gb2YgdGhlIHJlYXNvbnMgd2h5IE5BU0EgZGVjaWRlZCB0byB0YWtlIG92ZXIgdGhlIGxhc3QgdHdvIEJsYWNrYmlyZHMgYWZ0ZXIgaXRzIHJldGlyZW1lbnQgZnJvbSB0aGUgQWlyIEZvcmNlIGluIDE5OTguIFRoaXMgbWVhbnMgdGhhdCB0aGUgd29ybGTigJlzIGZhc3Rlc3QgYWlyY3JhZnQgd2FzIGluIHNlcnZpY2UgZnJvbSAxOTY2IHVudGlsIE5BU0EgcmV0aXJlZCBpdHMgdHdvIHVuaXRzIGluIDE5OTksIGFuZCBtb3N0IG9mIHRoZSByZW1haW5pbmcgQmxhY2tiaXJkcyBhcmUgdG9kYXkgc3RhdGlvbmVkIGF0IG11c2V1bXMgb3IgbWlsaXRhcnkgYmFzZXMgYWNyb3NzIHRoZSBVUy4NCjE5OTg6SW4gMTk5OCwgR2F1dGFtIEFkYW5pLCBhbG9uZyB3aXRoIGhpcyBhc3NvY2lhdGUgU2hhbnRpbGFsIFBhdGVsLCB3YXMga2lkbmFwcGVkIGZvciByYW5zb20gaW4gQWhtZWRhYmFkLCBJbmRpYS4gVGhleSB3ZXJlIGFiZHVjdGVkIGF0IGd1bnBvaW50IGFmdGVyIGxlYXZpbmcgdGhlIEthcm5hdmF0aSBDbHViIGluIGEgY2FyLiBUaGUga2lkbmFwcGVycywgYWxsZWdlZGx5IGdhbmdzdGVycyBGYXpsdSBSZWhtYW4gYW5kIEJob2dpbGFsIERhcmppLCByZXBvcnRlZGx5IGRlbWFuZGVkIGEgcmFuc29tIG9mICQxLjUtMiBtaWxsaW9uLiBCb3RoIEFkYW5pIGFuZCBQYXRlbCB3ZXJlIHJlbGVhc2VkIGEgZGF5IGxhdGVyLCBidXQgaXQncyB1bmNsZWFyIGlmIHRoZSByYW5zb20gd2FzIHBhaWQuIA0KVGhlIGtpZG5hcHBpbmcgaW5jaWRlbnQgaGFwcGVuZWQgaW4gdGhlIG1pZC0xOTkwcywgYXJvdW5kIHRoZSB0aW1lIEFkYW5pJ3MgYnVzaW5lc3Mgc3VjY2Vzc2VzIHN0YXJ0ZWQgYXR0cmFjdGluZyB1bndhbnRlZCBhdHRlbnRpb24uIFRoZSBraWRuYXBwaW5nIHdhcyBhbGxlZ2VkbHkgY2FycmllZCBvdXQgYnkgRmF6bHUgUmVobWFuIGFuZCBCaG9naWxhbCBEYXJqaSwgYWxzbyBrbm93biBhcyAiTWFtYSIuIFRoZXkgd2VyZSBsYXRlciBhY3F1aXR0ZWQgZHVlIHRvIGxhY2sgb2YgZXZpZGVuY2UuIA0KVGhlIGFiZHVjdGlvbiBpcyBqdXN0IG9uZSBvZiB0aGUgY2hhbGxlbmdlcyBBZGFuaSBoYXMgZmFjZWQuIEhlIHdhcyBhbHNvIGNhdWdodCBpbiB0aGUgMjYvMTEgTXVtYmFpIHRlcnJvciBhdHRhY2tzIGF0IHRoZSBUYWogSG90ZWwuIE1vcmUgcmVjZW50bHksIGhlIGhhcyBmYWNlZCBhY2N1c2F0aW9ucyBvZiBicmliZXJ5IGFuZCBzZWN1cml0aWVzIGZyYXVkLiANCkFkYW5pIGFuZCBvdGhlcnMgd2VyZSBlc2NvcnRlZCBieSBzdGFmZiB0byB0aGUga2l0Y2hlbiBhbmQgdGhlbiB0aGUgYmFzZW1lbnQuIFRoZXkgc3BlbnQgdGhlIGVudGlyZSBuaWdodCBpbiBhIGhhbGwgd2FpdGluZyBmb3IgcmVzY3VlLiBBZGFuaSBsYXRlciB0b2xkIG5ld3MgY2hhbm5lbHMgdGhhdCBoZSBzYXcg4oCcZGVhdGggYXQgYSBkaXN0YW5jZSBvZiBqdXN0IDE1IGZlZXQu4oCdIEhlIHdhcyByZXNjdWVkIHRoZSBuZXh0IG1vcm5pbmcgYnkgc2VjdXJpdHkgZm9yY2VzLg0KMTk5ODpbRW52XVtEaXNhc3Rlcl0gRWFzdGVybiBJbmRpYSwgMTk5OCBCYW5nbGFkZXNoIGZsb29kOyA0ayBkZWF0aHMNCjE5OTg6W1dob11bUmVzZWFyY2hdW0NvbXB1dGluZ11bVGVjaF1bQ3VsdHVyZV0gSW50ZXJuZXQgRG93bmxvYWQgTWFuYWdlciAoSURNKSB3YXMgZGV2ZWxvcGVkIGJ5IFRvbmVjIEluYy4sIGFuIEFtZXJpY2FuIGNvbXBhbnkgdGhhdCBzdGFydGVkIHRoZSBwcm9qZWN0IGluIDE5OTggYW5kIHJlbGVhc2VkIHRoZSBzb2Z0d2FyZSBpbiAyMDAxLiBUb25lYyBJbmMuIGZvY3VzZXMgb24gbmV0d29yayBwcm9ncmFtbWluZyBhbmQgY3JlYXRlZCBJRE0gdG8gc3BlZWQgdXAgZG93bmxvYWRzIGJ5IHVzaW5nIGR5bmFtaWMgZmlsZSBzZWdtZW50YXRpb24sIGFjY2VsZXJhdGluZyBzcGVlZHMgYnkgdXAgdG8gOCB0aW1lcy4gDQoNCjE5OTk6NCBKYW51YXJ5IDE5OTk6IE5BU0Egb2ZmaWNpYWxseSByZWNvZ25pemVkIHRoZSBwb3NzaWJpbGl0eSB0aGF0IGxpZmUgb24gRWFydGggY29tZXMgZnJvbSBzcGFjZS4NCjE5IE1hcmNoIDE5OTk6IE5BU0Egc2NpZW50aXN0cyBhbm5vdW5jZWQgdGhhdCB0d28gbW9yZSBtZXRlb3JpdGVzIGhvbGQgZXZlbiBzdHJvbmdlciBmb3NzaWxpemVkIGV2aWRlbmNlIGZvciBwYXN0IGxpZmUgb24gTWFycy4NCjE5OTk6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEcyMCBvciBHcm91cCBvZiAyMCBpcyBhbiBpbnRlcmdvdmVybm1lbnRhbCBmb3J1bSBjb21wcmlzaW5nIDE5IHNvdmVyZWlnbiBjb3VudHJpZXMsIHRoZSBFdXJvcGVhbiBVbmlvbiwgYW5kIHRoZSBBZnJpY2FuIFVuaW9uLiBGb3VuZGVkOiAyNiBTZXB0ZW1iZXIgMTk5OTsgQ2hhaXJtYW4gKEluY3VtYmVudCk6IEN5cmlsIFJhbWFwaG9zYSwgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYQ0KMTk5OTogVGhlIHRlcm0gV2ktRmkgd2FzIGludmVudGVkIGJ5IEludGVyYnJhbmQgKGFuIGFtZXJpY2FuIGJyYW5kIGNvbnN1bHRhbmN5IGNvbXBhbnkpIGFzIGEgcHVuIHVwb24gdGhlIHdvcmQgaGktZmkuDQpXaS1GaSBBbGxpYW5jZSBmb3JtZWQgYXMgYSB0cmFkZSBhc3NvY2lhdGlvbiB0byBob2xkIHRoZSBXaS1GaSB0cmFkZW1hcmsgdW5kZXIgd2hpY2ggbW9zdCBwcm9kdWN0cyBhcmUgc29sZC4NCjE5OTk6IHRoZSB0ZXJtDQoxOTk5OiBJc2xhbWljIFN0YXRlIG9mIElyYXEgYW5kIHRoZSBMZXZhbnQgKGFsc28ga25vd24gYXMgdGhlIElzbGFtaWMgU3RhdGUgb2YgSXJhcSBhbmQgU3lyaWEsIElzbGFtaWMgU3RhdGUsIG9yIGNvbW1vbmx5LCBJU0lTKSBmb3VuZGVkIGFzIEphbWEnYXQgYWwtVGF3aGlkIHdhbC1KaWhhZCBieSBBYnUgTXVzYWIgYWwtWmFycWF3aSBIUSdkIGF0ICBBbC1SYXFxYWguDQoxOTk5IChBcHIgMTIpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBJIFdhbnQgSXQgVGhhdCBXYXkuDQoxOTk5IChBcHIgMTgpOiBDT05DRVJUIGJlY2FtZSBvcGVyYXRpb25hbC4gSXQgd2FzIGRldmVsb3BlZCB1c2luZyBjbGllbnQtc2VydmVyIG1vZGVsIGZvciBkaXN0cmlidXRlZCBjb21wdXRpbmcgaXMgYSB0b3RhbCBzb2x1dGlvbiB0byB0aGUgbmV0d29ya2luZyBvZiB0aGUgUFJTcy4gQWxsIHRoZSBmaXZlIHNpdGVzIGhhdmUgYmVlbiBpbnRlcm5ldC13b3JrZWQgb3ZlciBhIDY0IGticHMgbGluZSB1c2luZyByb3V0ZXJzLCBvbiBsZWFzZWQgY29tbXVuaWNhdGlvbiBsaW5lIGNvbm5lY3Rpb25zIGZyb20gRGVwYXJ0bWVudCBvZiBUZWxlY29tIChET1QpLg0KMTk5OTogQ3JlZGl0IGNhcmRzIGFjY2VwdGVkIGZvciBib29raW5nIHRpY2tldHMgYW5kIHJlc2VydmF0aW9ucyBpbiBzb21lIHN0YXRpb25zIChpbmNsdWRpbmcgTXVtYmFpIENTVCkuDQoxOTk5IChNYXkgMSk6W0Jvb2tdIFJvYmVydCBLaXlvc2FraSAmIFNoYXJvbiBMZWNodGVyJ3MgUmljaCBEYWQncyBDYXNoZmxvdyBRdWFkcmFudDogUmljaCBEYWQncyBHdWlkZSB0byBGaW5hbmNpYWwgRnJlZWRvbTsgUmljaCBEYWQncyBHdWlkZSB0byBJbnZlc3Rpbmc6IFdoYXQgdGhlIFJpY2ggSW52ZXN0IGluIFRoYXQgdGhlIFBvb3IgYW5kIE1pZGRsZSBDbGFzcyBEbyBOb3QhICgyMDAxLCBKYW4gMSk7IFRoZSBSZWFsIEJvb2sgb2YgUmVhbCBFc3RhdGU6IFJlYWwgRXhwZXJ0cy4gUmVhbCBTdG9yaWVzLiBSZWFsIExpZmUuICgyMDA5LCBNYXkgMTIpOyBSaWNoIEtpZCBTbWFydCBLaWQ6IEdpdmluZyBZb3VyIENoaWxkIGEgRmluYW5jaWFsIEhlYWQgU3RhcnQgKDIwMDEsIEphbiAxKTsgDQoxOTk5IChNYXkgMTgpOltNdXNpY10gTWlsbGVubml1bSBpcyB0aGUgdGhpcmQgc3R1ZGlvIGFsYnVtIChzZWNvbmQgaW4gdGhlIFVuaXRlZCBTdGF0ZXMpIGJ5IEFtZXJpY2FuIGJveSBiYW5kIEJhY2tzdHJlZXQgQm95cywgcmVsZWFzZWQgYnkgSml2ZSBSZWNvcmRzLg0KMTk5OSAoRnJpLCAyNCBEZWMpOiBJbmRpYW4gQWlybGluZXMgRmxpZ2h0IDgxNCBjb21tb25seSBrbm93biBhcyBJQyA4MTQgd2FzIGFuIEluZGlhbiBBaXJsaW5lcyBBaXJidXMgQTMwMCBlbiByb3V0ZSBmcm9tIFRyaWJodXZhbiBJbnRlcm5hdGlvbmFsIEFpcnBvcnQgaW4gS2F0aG1hbmR1LCBOZXBhbCB0byBJbmRpcmEgR2FuZGhpIEludGVybmF0aW9uYWwgQWlycG9ydCBpbiBEZWxoaSwgSW5kaWEgd2FzIGhpamFja2VkLiBIYXJrYXQtdWwtTXVqYWhpZGVlbiB3YXMgYWNjdXNlZCBvZiB0aGUgaGlqYWNraW5nLg0KMTk5OTogSVJDVEMNCjE5OTkgKEF1Zyk6IEJvb2tNeVNob3cNCjE5OTkgKFNlcCAxNCk6IFtHZW9Qb2xpdGljc10gVGhlIENvbmZlcmVuY2Ugb24gSW50ZXJhY3Rpb24gYW5kIENvbmZpZGVuY2UtQnVpbGRpbmcgTWVhc3VyZXMgaW4gQXNpYSAoQ0lDQSkgaXMgYW4gaW50ZXItZ292ZXJubWVudGFsIGZvcnVtIGZvciBlbmhhbmNpbmcgY29vcGVyYXRpb24gdG93YXJkcyBwcm9tb3RpbmcgcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYS4gSXQgaXMgYSBmb3J1bSBiYXNlZCBvbiB0aGUgcmVjb2duaXRpb24gdGhhdCB0aGVyZSBpcyBjbG9zZSBsaW5rIGJldHdlZW4gcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYSBhbmQgaW4gdGhlIHJlc3Qgb2YgdGhlIHdvcmxkLiBUaGUga2V5IGlkZWEgb2YgdGhlIENvbmZlcmVuY2UgaXMgYmFzZWQgb24gdGhlIHByaW9yaXR5IG9mIHRoZSBpbmRpdmlzaWJpbGl0eSBvZiBzZWN1cml0eSwgam9pbnQgaW5pdGlhdGl2ZSBhbmQgbXV0dWFsbHkgYmVuZWZpY2lhbCBpbnRlcmFjdGlvbiBvZiBzbWFsbCBhbmQgbGFyZ2Ugc3RhdGVzLg0KMTk5OTogTm9ibGUgRWR1Y2F0aW9uIFNvY2lldHkncyBOb2JsZSBQdWJsaWMgU2Nob29sIChOUFMpLCBHYWpyYXVsYSBmb3VuZGVkIHdpdGggMjEzMDYyNyBhcyBpdHMgQ0JTRSBBZmZpbGlhdGlvbiBuby4NCjE5OTk6IGZpcnN0IC53bWEgZmlsZSBjcmVhdGVkDQoxOTk5OiBOYXBzdGVyIGZvdW5kZWQuDQoxOTk5IChEZWMgMTQpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBTaG93IE1lIHRoZSBNZWFuaW5nIG9mIEJlaW5nIExvbmVseS4gDQoxOTk5OltNdXNpY10gRHIuIERyZSBmdC4gU25vb3AgRG9nZydzIFN0aWxsIEQuUi5FLg0KMTk5OTpbQ3VsdHVyZV0gVGhlIENpdHRhc2xvdyBvcmdhbml6YXRpb24gd2FzIGNyZWF0ZWQgYnkgUGFvbG8gU2F0dXJuaW5pLCB0aGUgZm9ybWVyIG1heW9yIG9mIEdyZXZlIGluIENoaWFudGksIEl0YWx5LiBTYXR1cm5pbmkgd2FzIGluc3BpcmVkIGJ5IENhcmxvIFBldHJpbmkgYW5kIGhpcyBTbG93IEZvb2QgbW92ZW1lbnQsIHN0YXJ0ZWQgaW4gdGhlIDE5ODBzIHRvIHByb3Rlc3QgdGhlIGZpcnN0IE1jRG9uYWxkJ3MgY2hhaW4gaW4gUm9tZS4gU2luY2UgdGhlbiwgdGhlIENpdHRhc2xvdyBtb3ZlbWVudCBoYXMgZ3Jvd24gYWNyb3NzIGZvdXIgY29udGluZW50cywgd2l0aCAyNjIgcGFydGljaXBhdGluZyB0b3ducyBhcyBvZiAyMDIwLiANCjE5OTk6W01hbmFnZW1lbnRdW0J1c2luZXNzXVtQc3ljaG9sb2d5XVtSZXNlYXJjaF0gRHVubmluZyBhbmQgS3J1Z2VyIEVmZmVjdDogRGF2aWQgRHVubmluZyBhbmQgSnVzdGluIEtydWdlciBwdWJsaXNoZWQgdGhlIGluaXRpYWwgc3R1ZHkgaW4gMTk5OSB1bmRlciB0aGUgdGl0bGUgIlVuc2tpbGxlZCBhbmQgVW5hd2FyZSBvZiBJdDogSG93IERpZmZpY3VsdGllcyBpbiBSZWNvZ25pemluZyBPbmUncyBPd24gSW5jb21wZXRlbmNlIExlYWQgdG8gSW5mbGF0ZWQgU2VsZi1Bc3Nlc3NtZW50cyIuDQoxOTk5OltSZXNlYXJjaF0gUmVzZWFyY2ggYnkgVVMgTmF0aW9uYWwgUmVzZWFyY2ggQ291bmNpbC4gV2F0ZXIgZnJvbSB1bmRlcmdyb3VuZCBzb3VyY2VzIG1heSBjb250YWluIHNpZ25pZmljYW50IGFtb3VudHMgb2YgcmFkb24gZGVwZW5kaW5nIG9uIHRoZSBzdXJyb3VuZGluZyByb2NrIGFuZCBzb2lsIGNvbmRpdGlvbnMsIHdoZXJlYXMgc3VyZmFjZSBzb3VyY2VzIGdlbmVyYWxseSBkbyBub3QuDQoxOTk5OltOU0VdIEluY29ycG9yYXRlZCBpbiAxOTk5LCBJUkNUQyBpcyBhIE1pbmkgUmF0bmEgKENhdGVnb3J5IDEsIENlbnRyYWwgUHVibGljIFNlY3RvciBFbnRlcnByaXNlcyApIGFuZCB0aGUgb25seSBjb21wYW55IGF1dGhvcml6ZWQgYnkgdGhlIEluZGlhbiBnb3Zlcm5tZW50IHRvIHByb3ZpZGUgb25saW5lIHJhaWx3YXkgdGlja2V0cywgY2F0ZXJpbmcgc2VydmljZXMsIGFuZCBwYWNrYWdlZCBkcmlua2luZyB3YXRlciBhdCByYWlsd2F5IHN0YXRpb25zIGFuZCB0cmFpbnMgaW4gSW5kaWEuDQoxOTk5OltNbnRuZ2ddW0Jvb2tdIFN0ZXZlIEhvdXNlIGlzIGEgd29ybGQtcmVub3duZWQgY2xpbWJlciwgbW91bnRhaW4gZ3VpZGUgYW5kIFBhdGFnb25pYSBhbWJhc3NhZG9yLCB3aWRlbHkgcmVnYXJkZWQgZm9yIGhpcyBjbGVhbiwgbGlnaHQtYW5kLWZhc3Qgc3R5bGUuIEhlIGhhcyBwdWJsaXNoZWQgYXJ0aWNsZXMgaW4gYSBudW1iZXIgb2YgcGVyaW9kaWNhbHMgaW5jbHVkaW5nOiBBbHBpbmlzdCwgUm9jayBhbmQgSWNlLCBDbGltYmluZywgVGhlIEFtZXJpY2FuIEFscGluZSBKb3VybmFsLCBHcmlwcGVkLCBDYW5hZGlhbiBBbHBpbmUgSm91cm5hbCwgQ2xpbWIsIFZlcnRpY2FsLCBNb250YWduZXMsIFJpc2ssIEFscCssIENhbXBvIEJhc2UsIERlc25pdmVsLCBhbmQgU3RpbGUgQWxwaW4uIEhpcyBlc3NheXMgaGF2ZSBiZWVuIHB1Ymxpc2hlZCBpbiBzZXZlcmFsIGJvb2tzIGluY2x1ZGluZzsgQ29udGFjdDogTW91bnRhaW4gQ2xpbWJpbmcgYW5kIEVudmlyb25tZW50YWwgVGhpbmtpbmc7IFNvbHRhcmksIGEgY29sbGVjdGlvbiBvZiBlc3NheXMgYWJvdXQgc29sbyBjbGltYmluZyBwdWJsaXNoZWQgaW4gSXRhbGlhbjsgQmVyZywgYSBHZXJtYW4gYm9vayBhYm91dCBjbGltYmluZyBpbiB0aGUgSGltYWxheWE7IGFuZCBhbiB1cGNvbWluZyBib29rIGFib3V0IE5hbmdhIFBhcmJhdCBlZGl0ZWQgYnkgUmVpbmhvbGQgTWVzc25lci4gSGUgaGFzIHdvcmtlZCBhcyBhIFBhdGFnb25pYSBhbHBpbmUgYW1iYXNzYWRvciBzaW5jZSAxOTk5LiBQdWJsaXNoZWQ6IFRyYWluaW5nIGZvciB0aGUgTmV3IEFscGluaXNtOiBBIE1hbnVhbCBmb3IgdGhlIENsaW1iZXIgYXMgQXRobGV0ZSBQYXBlcmJhY2sg4oCTIElsbHVzdHJhdGVkLCAzIEFwcmlsIDIwMTQNCjE5OTk6W01udG5nZ10gQ29ucmFkIEFua2VyIChib3JuIE5vdmVtYmVyIDI3LCAxOTYyKSBpcyBhbiBBbWVyaWNhbiByb2NrIGNsaW1iZXIsIG1vdW50YWluZWVyLCBhbmQgYXV0aG9yLiBIZSB3YXMgdGhlIHRlYW0gbGVhZGVyIG9mIFRoZSBOb3J0aCBGYWNlIGNsaW1iaW5nIHRlYW0gZm9yIDI2IHllYXJzIHVudGlsIDIwMTguWzJdIEluIDE5OTksIGhlIGxvY2F0ZWQgR2VvcmdlIE1hbGxvcnkncyBib2R5IG9uIEV2ZXJlc3QgYXMgYSBtZW1iZXIgb2YgYSBzZWFyY2ggdGVhbSBsb29raW5nIGZvciB0aGUgcmVtYWlucyBvZiB0aGUgQnJpdGlzaCBjbGltYmVyIHdobyB3YXMgbGFzdCBzZWVuIGluIDE5MjQuDQoxOTk5OlRoZSBQaXBpc3RyZWwgVmlydXMgZmxldyBmb3IgdGhlIGZpcnN0IHRpbWUgb24gQXVndXN0IDEwLCAxOTk5LiBQcm9kdWN0aW9uIGJlZ2FuIG9uIEphbnVhcnkgMjAsIDIwMDAuIFRoZSBkZXZlbG9wbWVudCBvZiB0aGUgc2hvcnQgd2luZyB2ZXJzaW9uIHN0YXJ0ZWQgaW4gMjAwNy4gVGhlIFZpcnVzIFNXIHByb2R1Y3Rpb24gc3RhcnRlZCBpbiAyMDA4LiBUaGUgVmlydXMgd29uIHRoZSBOQVNBIDIwMDcgUGVyc29uYWwgQWlyIFZlaGljbGUgKFBBVikgQ2hhbGxlbmdlIGFuZCB0aGUgMjAwOCBHZW5lcmFsIEF2aWF0aW9uIFRlY2hub2xvZ3kgKEdBVCkgQ2hhbGxlbmdlLg0KMTk5OTpbc2lsdmljc10gU3VzdGFpbmFibGUgUHJhY3RpY2VzOiBSZXNlYXJjaCBpbiB0aGUgMjB0aCBjZW50dXJ5IHZhbGlkYXRlZCB0aGF0IHNlY29uZC1ncm93dGggc3RhbmRzIGNvdWxkIGJlIHN1c3RhaW5hYmx5IG1hbmFnZWQgdGhyb3VnaCB0ZWNobmlxdWVzIGxpa2UgdGhlIHNlZWQgdHJlZSBtZXRob2QuIFRvZGF5LCBzaWx2aWN1bHR1cmUgZm9jdXNlcyBvbiBjb21wbGV4IHN0YW5kIHN0cnVjdHVyZXMsIGJhbGFuY2luZyBjb21tZXJjaWFsIGRlbWFuZCB3aXRoIGVudmlyb25tZW50YWwgc3Rld2FyZHNoaXAuIA0KDQoyMXN0IGNlbnR1cnkgQ0Ugc3RhcnRlZCBvbiAxc3QgSmFuIDIwMDEgQUQuDQoNCjIwMDBzOltSZXNlYXJjaF0gVGhlIGNsYWltIHRoYXQgIndlIGFyZSA2MCUgYmFuYW5hIiAob3Igc2hhcmUgNjAlIG9mIG91ciBETkEpIGlzIGEgcG9wdWxhciwgeWV0IG9mdGVuIG1pc2ludGVycHJldGVkLCBzdGF0aXN0aWMgdGhhdCBvcmlnaW5hdGVkIGZyb20gY29tcGFyaXNvbnMgb2YgcHJvdGVpbi1jb2RpbmcgZ2VuZXMsIGxpa2VseSBwb3B1bGFyaXplZCBpbiB0aGUgZWFybHkgMjAwMHMgZm9sbG93aW5nIHByZWxpbWluYXJ5IHN0dWRpZXMgb2YgdGhlIGJhbmFuYSBnZW5vbWUuIEl0IHJlZmVycyB0byBhYm91dCA2MCUgb2YgaHVtYW4gZ2VuZXMgaGF2aW5nIGEgcmVjb2duaXphYmxlIGNvdW50ZXJwYXJ0IGluIGJhbmFuYXMsIG5vdCA2MCUgb2Ygb3VyIHRvdGFsIEROQS4gDQpNYW55IG9mIHRoZSDigJxob3VzZWtlZXBpbmfigJ0gZ2VuZXMgdGhhdCBhcmUgbmVjZXNzYXJ5IGZvciBiYXNpYyBjZWxsdWxhciBmdW5jdGlvbiwgc3VjaCBhcyBmb3IgcmVwbGljYXRpbmcgRE5BLCBjb250cm9sbGluZyB0aGUgY2VsbCBjeWNsZSwgYW5kIGhlbHBpbmcgY2VsbHMgZGl2aWRlIGFyZSBzaGFyZWQgYmV0d2VlbiBtYW55IHBsYW50cyAoaW5jbHVkaW5nIGJhbmFuYXMpIGFuZCBhbmltYWxzLldoaWxlIDYwJSBvZiBnZW5lcyBoYXZlIGNvdW50ZXJwYXJ0cywgdGhlc2UgZXNzZW50aWFsIGdlbmVzIG1ha2UgdXAgb25seSBhIHNtYWxsIGZyYWN0aW9uIG9mIHRoZSB0b3RhbCBnZW5vbWU7IGh1bWFucyBhbmQgYmFuYW5hcyBhcmUgbm90IDYwJSBpZGVudGljYWwgb3ZlcmFsbC4gDQpUaGUgcGhyYXNlIGlzIGVzc2VudGlhbGx5IGEgc2ltcGxpZmllZCwgb2Z0ZW4tZXhhZ2dlcmF0ZWQsIHdheSBvZiBoaWdobGlnaHRpbmcgdGhhdCBhbGwgbGlmZSBzaGFyZXMgY29tbW9uIGFuY2VzdHJhbCBnZW5lcyBmb3IgYmFzaWMgY2VsbHVsYXIgcHJvY2Vzc2VzLiANCjIwMDBzOltNQkFdIFNob3VsZCBDb3N0IE1vZGVsaW5nOiBNb2Rlcm4gIlNob3VsZCBDb3N0IiBtb2RlbHMgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBpZGVhbCBjb3N0IG9mIGEgcHJvZHVjdCwgYWNjb3VudGluZyBmb3IgbGFib3IsIG1hdGVyaWFscywgYW5kIG92ZXJoZWFkLiBFbnZpcm9ubWVudGFsICYgU29jaWFsIEltcGFjdDogTW9kZXJuIENCQSBub3cgcm91dGluZWx5IGluY2x1ZGVzIGVudmlyb25tZW50YWwgYW5kIHNvY2lhbCBpbXBhY3RzIGluIGFkZGl0aW9uIHRvIGZpbmFuY2lhbCBvbmVzLiBTaGlmdCBmcm9tIExvY2FsIHRvIEdsb2JhbDogRWFybHksIGhpZ2hseSBsb2NhbCBhc3Nlc3NtZW50cyBldm9sdmVkIGludG8gbGFyZ2Utc2NhbGUsIG5hdGlvbmFsLCBhbmQgaW50ZXJuYXRpb25hbCBDQkEuIFJlZmluZW1lbnQgb2YgVGVjaG5pcXVlczogTW92aW5nIGZyb20gc2ltcGxlLCBzaW5nbGUtcGVyaW9kIG1vZGVscyB0byBjb21wbGV4LCBtdWx0aS1wZXJpb2Qgc2ltdWxhdGlvbnMuIEluY3JlYXNlZCBEYXRhIFVzZTogVGhlIGF2YWlsYWJpbGl0eSBvZiBsYXJnZSwgZ3JhbnVsYXIgZGF0YSBzZXRzIGhhcyBhbGxvd2VkIGZvciBtb3JlIHByZWNpc2UgYW5kIHJlbGlhYmxlIGFuYWx5c2lzLiANCjIwMDBzOltNbnRuZ2ddW0V4dHJlbWVdIEluIHRoZSBlYXJseSAyMDAwcywgRGlkaWVyIEJlcnRob2Qgd2FzIHRoZSBiZXN0IGNyYWNrIGNsaW1iZXIgaW4gdGhlIHdvcmxkLCB0aGVuIGhlIGRyb3BwZWQgb3V0IG9mIGNsaW1iaW5nIGFuZCBlc3NlbnRpYWxseSBkaXNhcHBlYXJlZCBmcm9tIHRoZSB3b3JsZC4NCjIwMDBzOltSZWFsdHldIEVhcmx5IDIwMDBzOiBSZWFsIGVzdGF0ZSB3YXMgaW4gaXRzIGVhcmx5IHN0YWdlcyBpbiBJbmRpYSwgd2l0aCBncmFkdWFsIGdyb3d0aCBhbmQgZGV2ZWxvcG1lbnQuIA0KMjAwMHM6VGVhbXdvcmsgaXMgbm93IGFuIGludGVncmFsIHBhcnQgb2Ygb3JnYW5pemF0aW9uYWwgc3RyYXRlZ3ksIHdpdGggYSBncmVhdGVyIGVtcGhhc2lzIG9uIGN1c3RvbWl6YXRpb24sIHBlcnNvbmFsaXphdGlvbiwgYW5kIHN0cmF0ZWdpYyBpbnRlZ3JhdGlvbiBvZiB0ZWFtLWJ1aWxkaW5nIHByYWN0aWNlcy4gVGhlIHJpc2Ugb2YgdGVjaG5vbG9neSBoYXMgYWxzbyBpbmZsdWVuY2VkIHRlYW13b3JrLCB3aXRoIHJlbW90ZSB3b3JrIGJlY29taW5nIG1vcmUgcHJldmFsZW50IGFuZCBuZXcgdG9vbHMgZW1lcmdpbmcgdG8gZmFjaWxpdGF0ZSBjb2xsYWJvcmF0aW9uLiANCg0KMjAwMDpbVVNdW0dlb1BvbGl0aWNzXSBvdmVydGhyb3cgb2YgU2xvYm9kYW4gTWlsb8WhZXZpxIcuIChVUydzIGludm9sdmVtZW50IGluIHJlZ2ltZSBjaGFuZ2UpDQoyMDAwOiBbR2VvUG9saXRpY3NdW01pbGl0YXJ5XVtFY29ub21pY3NdIFRoZSBVUyBEb2xsYXIgaG9sZHMgYSA3MiUgc2hhcmUgb2YgYWxsIGdsb2JhbCBjdXJyZW5jeSByZXNlcnZlcyBbWzE2OjQyXShodHRwOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dllKcmkxZU5SeWMmdD0xMDAyKV0uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdIDI2IEFwcmlsIDIwMDA6IHRoZSBHZXJtYW4gdGVhbSBvcGVyYXRpbmcgdGhlIG1hc3Mgc3BlY3Ryb21ldGVyIG9uIE5BU0EncyBTdGFyZHVzdCBtaXNzaW9uIGFubm91bmNlZCB0aGUgZGV0ZWN0aW9uIG9mIHZlcnkgbGFyZ2Ugb3JnYW5pYyBtb2xlY3VsZXMgaW4gaW50ZXJzdGVsbGFyIHNwYWNlLiBOb25iaW9sb2dpY2FsIHNvdXJjZXMgZm9yIG9yZ2FuaWMgbW9sZWN1bGVzIHNvIGxhcmdlIGFyZSBub3Qga25vd24uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdMTkgT2N0b2JlciAyMDAwLCBhIHRlYW0gb2YgYmlvbG9naXN0cyBhbmQgYSBnZW9sb2dpc3QgYW5ub3VuY2VkIHRoZSByZXZpdmFsIG9mIGJhY3RlcmlhIHRoYXQgYXJlIDI1MCBtaWxsaW9uIHllYXJzIG9sZCwgc3RyZW5ndGhlbmluZyB0aGF0IGNhc2UgdGhhdCBiYWN0ZXJpYWwgc3BvcmVzIGNhbiBiZSBpbW1vcnRhbC4NCjEzIERlY2VtYmVyIDIwMDA6IGEgTkFTQSB0ZWFtIGRlbW9uc3RyYXRlZCB0aGF0IHRoZSBtYWduZXRvc29tZXMgaW4gTWFycyBtZXRlb3JpdGUgQUxIIDg0MDAxIGFyZSBiaW9sb2dpY2FsLg0KMjAwMDpbUmVzZWFyY2hdW1NwYWNlXSBNaWxlaWtvd3NreSBDLCBDdWNpbm90dGEgRkEsIFdpbHNvbiBKVywgR2xhZG1hbiBCLCBIb3JuZWNrIEcsIExpbmRlZ3JlbiBMLCBNZWxvc2ggSiwgUmlja21hbiBILCBWYWx0b25lbiBNLCBaaGVuZyBKUS4gTmF0dXJhbCB0cmFuc2ZlciBvZiB2aWFibGUgbWljcm9iZXMgaW4gc3BhY2UuIEljYXJ1cyAyMDAwLCAxNDU6Mzkx4oCTNDI3LiBbRE9JXSBbUHViTWVkXSBbR29vZ2xlIFNjaG9sYXJdDQoyMDAwOltTcGFjZVhdIFMvMjAwMCAoOTApIDEgTW9vbiBEaXNjb3ZlcmVyOiBXaWxsaWFtIEouIE1lcmxpbmUgT3JiaXRzOiA5MCBBbnRpb3BlIEFic29sdXRlIG1hZ25pdHVkZTogOS4wMg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gZGVtb25zdHJhdGVkIFNob3LigJlzIGFsZ29yaXRobSBvbiBhIDUtcXViaXQgTk1SIHF1YW50dW0gY29tcHV0ZXIsIGZhY3RvcmluZyB0aGUgbnVtYmVyIDE1Lg0KMjAwMDogQXQgYWdlIDE0IGFuZCBpbiBjbGFzcyA4dGgsIEFhcm9uIFN3YXJ0eiBiZWNhbWUgYSBtZW1iZXIgb2YgdGhlIHdvcmtpbmcgZ3JvdXAgdGhhdCBhdXRob3JlZCB0aGUgUlNTIDEuMCB3ZWIgc3luZGljYXRpb24gc3BlY2lmaWNhdGlvbi4NCjIwMDA6IE1ha2VteVRyaXANCjIwMDAgKEphbiAxNCk6W0phY2tdIEthaG8gTmFhLi4uIFB5YWFyIEhhaQ0KMjAwMCAoRmViKTogSW5kaWFuIFJhaWx3YXlzIHdlYiBzaXRlIGkuZS4gaHR0cDovL2luZGlhbnJhaWx3YXlzLmdvdi5pbi8gd2FzIGRlcGxveWVkIGJ5IENSSVMuDQoyMDAwIChNYXIpOltCb29rXSBNYWxjb2xtIEdsYWR3ZWxsJ3MgZGVidXQgYm9vaywgVGhlIFRpcHBpbmcgUG9pbnQ6IEhvdyBMaXR0bGUgVGhpbmdzIENhbiBNYWtlIGEgQmlnIERpZmZlcmVuY2UuIA0KQmxpbms6IFRoZSBQb3dlciBvZiBUaGlua2luZyBXaXRob3V0IFRoaW5raW5nICgyMDA1LCBKYW4gMTEpOyANCk91dGxpZXJzOiBUaGUgU3Rvcnkgb2YgU3VjY2VzcyAoMjAwOCwgTm92IDE4KTsgDQpXaGF0IHRoZSBEb2cgU2F3OiBBbmQgT3RoZXIgQWR2ZW50dXJlcyAoMjAwOSwgT2N0IDIwKTsgDQpEYXZpZCBhbmQgR29saWF0aDogVW5kZXJkb2dzLCBNaXNmaXRzLCBhbmQgdGhlIEFydCBvZiBCYXR0bGluZyBHaWFudHMgKDIwMTMsIE9jdCAxKQ0KVGFsa2luZyB0byBTdHJhbmdlcnM6IFdoYXQgV2UgU2hvdWxkIEtub3cgYWJvdXQgdGhlIFBlb3BsZSBXZSBEb24ndCBLbm93ICgyMDE5KQ0KMjAwMCAoQXByIDEpOltCb29rXSBSb2JlcnQgS2l5b3Nha2kgJiBTaGFyb24gTGVjaHRlcidzIFJpY2ggRGFkIFBvb3IgRGFkLg0KMjAwMCAoQXByIDEpOltUZWNobm9sb2d5XVtSZXNlYXJjaF0gIldoeSBUaGUgRnV0dXJlIERvZXNuJ3QgTmVlZCBVcyIgaXMgYW4gYXJ0aWNsZSB3cml0dGVuIGJ5IEJpbGwgSm95IGluIHRoZSBBcHJpbCAyMDAwIGlzc3VlIG9mIFdpcmVkIG1hZ2F6aW5lLiBJbiB0aGUgYXJ0aWNsZSwgaGUgYXJndWVzIHRoYXQgIk91ciBtb3N0IHBvd2VyZnVsIDIxc3QtY2VudHVyeSB0ZWNobm9sb2dpZXPigJRyb2JvdGljcywgZ2VuZXRpYyBlbmdpbmVlcmluZywgYW5kIG5hbm90ZWNo4oCUYXJlIHRocmVhdGVuaW5nIHRvIG1ha2UgaHVtYW5zIGFuIGVuZGFuZ2VyZWQgc3BlY2llcy4iIA0KMjAwMCAoSnVuIDI2KTpbTXVzaWNdICJZZWxsb3ciIGlzIGEgc29uZyBieSB0aGUgQnJpdGlzaCByb2NrIGJhbmQgQ29sZHBsYXkuIFRoZSBiYW5kIHdyb3RlIHRoZSBzb25nIGFuZCBjby1wcm9kdWNlZCBpdCB3aXRoIEJyaXRpc2ggcmVjb3JkIHByb2R1Y2VyIEtlbiBOZWxzb24gZm9yIHRoZWlyIGRlYnV0IGFsYnVtLCBQYXJhY2h1dGVzICgyMDAwKS4gVGhlIHNvbmcgd2FzIHJlY29yZGVkIGluIE1hcmNoIDIwMDAgYW5kIHJlbGVhc2VkIG9uIDI2IEp1bmUgdGhhdCBzYW1lIHllYXIuDQoyMDAwIChTZXApOiBBbWF6b24ncyBKZWZmIEJlem9zIGZvdW5kZWQuDQoyMDAwIChTZXApOltDcmltZV1bSW5kaWFdIENoaG90YSBTaGFrZWVsJ3MgYXR0YWNrIG9uIFJhamFuIGluIGhpcyBCYW5na29rIGhvdGVsIHJvb20uDQoyMDAwIChTZXApOiBSYWlsVGVsIENvcnBvcmF0aW9uIG9mIEluZGlhIEx0ZC4gZm91bmRlZCBhbmQgSFEnZCBhdCAxNDMsIEluc3RpdHV0aW9uYWwgQXJlYSwgU2VjdG9yLTQ0LCBHdXJnYW9uLCBIYXJ5YW5hLCBJbmRpYS4gSXQgaXMgYSBNaW5pcmF0bmEgZW50ZXJwcmlzZSBvZiBHb3Zlcm5tZW50IG9mIEluZGlhIGZvY3VzaW5nIG9uIHByb3ZpZGluZyBicm9hZGJhbmQgYW5kIFZQTiBzZXJ2aWNlcy4NCjIwMDAgKFNlcCAxNyk6IFtHZW9Qb2xpdGljc10gVGhlIGlkZWEgb2YgYW4gQXNpYSBDb29wZXJhdGlvbiBEaWFsb2d1ZSAoQUNEKSB3YXMgcmFpc2VkIGF0IHRoZSBGaXJzdCBJbnRlcm5hdGlvbmFsIENvbmZlcmVuY2Ugb2YgQXNpYW4gUG9saXRpY2FsIFBhcnRpZXMgKGhlbGQgaW4gTWFuaWxhIGJldHdlZW4gMTfigJMyMCBTZXB0ZW1iZXIgMjAwMCkgYnkgU3VyYWtpYXJ0IFNhdGhpcmF0aGFpLCB0aGVuIGRlcHV0eSBsZWFkZXIgb2YgdGhlIG5vdyBkZWZ1bmN0IFRoYWkgUmFrIFRoYWkgUGFydHksIG9uIGJlaGFsZiBvZiBoaXMgcGFydHkgbGVhZGVyLCBUaGFrc2luIFNoaW5hd2F0cmEsIHRoZW4gUHJpbWUgTWluaXN0ZXIgb2YgVGhhaWxhbmQuIEl0IHdhcyBzdWdnZXN0ZWQgdGhhdCBBc2lhIGFzIGEgY29udGluZW50IHNob3VsZCBoYXZlIGl0cyBvd24gZm9ydW0gdG8gZGlzY3VzcyBBc2lhLXdpZGUgY29vcGVyYXRpb24uIEFmdGVyd2FyZHMsIHRoZSBpZGVhIG9mIHRoZSBBQ0Qgd2FzIGZvcm1hbGx5IHB1dCBmb3J3YXJkIGR1cmluZyB0aGUgMzR0aCBBU0VBTiBGb3JlaWduIE1pbmlzdGVycyBNZWV0aW5nIGluIEhhbm9pLCAyM+KAkzI0IEp1bHkgMjAwMSBhbmQgYXQgdGhlIEFTRUFOIEZvcmVpZ24gTWluaXN0ZXJzIFJldHJlYXQgaW4gUGh1a2V0LCAyMOKAkzIxIEZlYnJ1YXJ5IDIwMDIuDQoyMDAwIChPY3QgNCk6W011c2ljXSBGb3JtZWQgaW4gMTk5NiwgTGlua2luIFBhcmsgcm9zZSB0byBpbnRlcm5hdGlvbmFsIGZhbWUgd2l0aCB0aGVpciBkZWJ1dCBzdHVkaW8gYWxidW0sIEh5YnJpZCBUaGVvcnkuIEZvdXIgc2luZ2xlcyB3ZXJlIHJlbGVhc2VkIGZyb20gSHlicmlkIFRoZW9yeTogIk9uZSBTdGVwIENsb3NlciIsICJJbiB0aGUgRW5kIiwgIkNyYXdsaW5nIiBhbmQgIlBhcGVyY3V0IiwgYWxsIG9mIHRoZW0gYmVpbmcgcmVzcG9uc2libGUgZm9yIGxhdW5jaGluZyBMaW5raW4gUGFyayBpbnRvIG1haW5zdHJlYW0gcG9wdWxhcml0eS4gV2hpbGUgIkluIHRoZSBFbmQiIHdhcyB0aGUgbW9zdCBzdWNjZXNzZnVsIG9mIHRoZSBmb3VyLCBhbGwgb2YgdGhlIHNpbmdsZXMgaW4gdGhlIGFsYnVtIHJlbWFpbiBzb21lIG9mIHRoZSBiYW5kJ3MgbW9zdCBzdWNjZXNzZnVsIHNvbmdzIHRvIGRhdGUuDQoyMDAwIChOb3YgOSk6IGZvcm1hdGlvbiBvZiBVdHRhcmFraGFuZCBhcyBVdHRhcmFuY2hhbCAyMDAwIChKdW4gOSk6IEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQWN0LCAyMDAwLiBUaGUgYmlsbCB3YXMgcGFzc2VkIGluIHRoZSBidWRnZXQgc2Vzc2lvbiBvZiAyMDAwIGFuZCBzaWduZWQgYnkgUHJlc2lkZW50IEsuIFIuIE5hcmF5YW5hbiBvbiA5IE1heSAyMDAwLiBUaGUgYmlsbCB3YXMgZmluYWxpc2VkIGJ5IGdyb3VwIG9mIG9mZmljaWFscyBoZWFkZWQgYnkgdGhlbiBNaW5pc3RlciBvZiBJbmZvcm1hdGlvbiBUZWNobm9sb2d5LCBQcmFtb2QgTWFoYWphbi4NCjIwMDA6IGZvcm1hdGlvbiBvZg0KMjAwMDogSmFpc2gtZS1Nb2hhbW1lZCAobGl0ZXJhbGx5ICJUaGUgQXJteSBvZiBNdWhhbW1hZCIsIEplTSkgZm91bmRlZCBhdCBCYWhhd2FscHVyLCBQdW5qYWIsIFBha2lzdGFuLg0KMjAwMDogQ2hpbmEncyBCZWlEb3UgbmF2aWdhdGlvbiB0ZXN0IHN5c3RlbSBzdGFydHMuDQoyMDAwOiBGaXNlcnYgaGFkIGFjcXVpcmVkIG1vcmUgdGhhbiA5MCBidXNpbmVzc2VzLiBUaGUgbnVtYmVyIG9mIGVtcGxveWVlcyBncmV3IGZyb20gMjY0IHRvIDE0LDAwMC4gRmlzZXJ2IHdhcyBhbiBpbmR1c3RyeSBsZWFkZXIsIHdpdGggcmV2ZW51ZSB0aGF0IGluY3JlYXNlZCBmcm9tICQyMSBtaWxsaW9uIHRvICQxLjQgYmlsbGlvbiBpbiAxNSB5ZWFycy4NCjIwMDAgKERlYyA4KTpbR2FtaW5nXSBQcm9qZWN0IEkuRy5JLiBpcyBhIHRhY3RpY2FsIGZpcnN0LXBlcnNvbiBzaG9vdGVyIHZpZGVvIGdhbWUuIEl0IHdhcyBkZXZlbG9wZWQgYnkgSW5uZXJsb29wIFN0dWRpb3MgYW5kIHJlbGVhc2VkIGluIERlY2VtYmVyIDIwMDAgYnkgRWlkb3MgSW50ZXJhY3RpdmUuIFRoZSBnYW1lIHJlY2VpdmVkIG1peGVkIHJldmlld3MgZHVlIHRvIHNob3J0Y29taW5ncyBpbmNsdWRpbmcgYSBwb29ybHkgcHJvZ3JhbW1lZCBBLkkuLCBsYWNrIG9mIGEgbWlkLWdhbWUgc2F2ZSBvcHRpb24sIGFuZCB0aGUgbGFjayBvZiBtdWx0aXBsYXllciBmZWF0dXJlcy4gSG93ZXZlciBpdCB3YXMgcHJhaXNlZCBmb3IgaXRzIHNvdW5kIGRlc2lnbiBhbmQgZ3JhcGhpY3MsIHRoYW5rcyBpbiBwYXJ0IHRvIGl0cyB1c2Ugb2YgYSBwcm9wcmlldGFyeSBnYW1lIGVuZ2luZSB0aGF0IHdhcyBwcmV2aW91c2x5IHVzZWQgaW4gSW5uZXJsb29wJ3MgSm9pbnQgU3RyaWtlIEZpZ2h0ZXIuDQoyMDAwIChEZWMgMjEpOltKYWNrXSBSYWp1IENoYWNoYSByZWxlYXNlZC4NCjIwMDA6IFtCdXNpbmVzc11bRmluYW5jZV1bQ29ycG9yYXRlXVtJbmRpYV0gUklMIHBpbG90ZWQgd29ybGQncyBsYXJnZXN0IHBldHJvbGV1bSByZWZpbmVyeSBhdCBKYW1uYWdhciwgR3VqYXJhdCwgcmVmaW5pbmcgMS4yNE1uIGJhcnJlbHMvZGF5Lg0KMjAwMDpbQ3JpbWVdW0luZGlhXSBQb2xpY2UgZW5jb3VudGVycyBpbiBNdW1iYWkuIE1vc3QgY3JpbWluYWxzIGZsZWVpbmcgdG8gQ2FsY3VsdHRhLiBBZnRhYiBCaGF0a2kgZGVzdGFiaWxpc2UgdGhlIGVjb25vbXkgYnkgc3ByZWFkaW5nIGZha2UgY3VycmVuY3kgbm90ZXMgcHJpbnRlZCBieSBJU0kgZnVuY3Rpb25hcmllcywgYW5kIHR3bywgc2VuZCBtZXJjZW5hcmllcyB0byBjb25kdWN0IGFiZHVjdGlvbnMgYW5kIHRlcnJvcmlzdCBhdHRhY2tzLg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBUZWNobmljYWwgVW5pdmVyc2l0eSBvZiBNdW5pY2ggKDUgcXViaXQpOyBMb3MgQWxhbW9zIE5hdGlvbmFsIExhYiAoNyBxdWJpdHMpDQoyMDAwOkluIDIwMDAsIFRhdGEgVGVhIGFjcXVpcmVkIHRoZSBUZXRsZXkgVGVhIENvbXBhbnkgZm9yICQ0MDcgbWlsbGlvbi4gT3RoZXIgbm90YWJsZSBhY3F1aXNpdGlvbnMgaW5jbHVkZSBOYXRTdGVlbCAoMjAwNCksIEJydW5uZXIgTW9uZCAoMjAwNSksIGFuZCBFaWdodCBPJ0Nsb2NrIENvZmZlZSAoMjAwNikuIA0KMjAwMDogQmlybGEgYWNxdWlyZWQgSW5kaWFuIEFsdW1pbnVtIENvbXBhbnkgKElOREFMKS4gDQoyMDAwOiBTYXR5YSBOYXJheWFuYSBHb2Vua2Egd29ya2VkIGFzIGFuIGludGVybmF0aW9uYWwgYnVzaW5lc3NtYW4gYmFzZWQgaW4gTXlhbm1hciBhbmQgSW5kaWEgZm9yIGEgbGFyZ2UgcGFydCBvZiBoaXMgbGlmZS4gSGUgd2FzIGEga2V5bm90ZSBzcGVha2VyIG9uIHRoZSBzdWJqZWN0IG9mIFNwaXJpdHVhbGl0eSBpbiBCdXNpbmVzcyBhdCB0aGUgMzB0aCBXb3JsZCBFY29ub21pYyBGb3J1bSBpbiBEYXZvcywgU3dpdHplcmxhbmQgYmV0d2VlbiAyNiBKYW4gYW5kIDIgRmViIDIwMDAuIFR3byB5ZWFycyBsYXRlciBoZSBjb25kdWN0ZWQgdGhlIGZpcnN0IDEwLWRheSBjb3Vyc2UgaW4gVmlwYXNzYW5hIE1lZGl0YXRpb24gZXNwZWNpYWxseSBmb3IgYnVzaW5lc3MgZXhlY3V0aXZlcyBhbmQgZ292ZXJubWVudCBvZmZpY2lhbHMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAyMjUgeWVhcnMgb2YgSW5kZXBlbmRlbnQgVVNBIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIA0KDQoyMDAxOltVU11bR2VvUG9saXRpY3NdIGludmFzaW9uIG9mIEFmZ2hhbmlzdGFuLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMjAwMTpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgU2hhbmdoYWkgQ29vcGVyYXRpb24gT3JnYW5pc2F0aW9uIChTQ08pIGlzIGEgRXVyYXNpYW4gcG9saXRpY2FsLCBlY29ub21pYywgaW50ZXJuYXRpb25hbCBzZWN1cml0eSBhbmQgZGVmZW5jZSBvcmdhbml6YXRpb24gb2YgdGVuIG1lbWJlciBzdGF0ZXMuIEl0IHdhcyBlc3RhYmxpc2hlZCBpbiAyMDAxIGJ5IHRoZSBQZW9wbGUncyBSZXB1YmxpYyBvZiBDaGluYSwgS2F6YWtoc3RhbiwgS3lyZ3l6c3RhbiwgUnVzc2lhLCBhbmQgVGFqaWtpc3RhbiBhbmQgVXpiZWtpc3Rhbi4gSW4gSnVuZSAyMDE3LCBpdCBleHBhbmRlZCB0byBlaWdodCBzdGF0ZXMsIHdpdGggSW5kaWEgYW5kIFBha2lzdGFuLiBJcmFuIGpvaW5lZCB0aGUgZ3JvdXAgaW4gSnVseSAyMDIzLCBhbmQgQmVsYXJ1cyBpbiBKdWx5IDIwMjQuIFNldmVyYWwgY291bnRyaWVzIGFyZSBlbmdhZ2VkIGFzIG9ic2VydmVycyBvciBkaWFsb2d1ZSBwYXJ0bmVycy4gRm91bmRlcnM6IENoaW5hLCBSdXNzaWEsIEthemFraHN0YW4sIFV6YmVraXN0YW4sIEt5cmd5enN0YW4sIFRhamlraXN0YW47IEhlYWRxdWFydGVyczogQmVpamluZywgQ2hpbmE7IEZvdW5kZWQ6IDE1IEp1bmUgMjAwMQ0KMjAwMTpbQnVzaW5lc3NdIDIwMDHigJMyMDA1OiBIRlQgZXhlY3V0aW9uIHRpbWVzIGRlY3JlYXNlZCBmcm9tIHNldmVyYWwgc2Vjb25kcyB0byBtaWxsaXNlY29uZHMuIChIRlQpDQoyMDAxOltDb21wdXRpbmddW1F1YW50dW1dICBJQk0gaW1wbGVtZW50ZWQgR3JvdmVy4oCZcyBhbGdvcml0aG0gb24gYSA3LXF1Yml0IE5NUiBxdWFudHVtIGNvbXB1dGVyLCBmaW5kaW5nIGEgbWFya2VkIGl0ZW0gaW4gYSBkYXRhYmFzZSBvZiA0IGVudHJpZXMuDQoyMDAxOiBMaWZlIG9mIFBpIGlzIGEgQ2FuYWRpYW4gcGhpbG9zb3BoaWNhbCBub3ZlbCBieSBZYW5uIE1hcnRlbCBwdWJsaXNoZWQuIFRoZSBwcm90YWdvbmlzdCBpcyBQaXNjaW5lIE1vbGl0b3IgIlBpIiBQYXRlbCwgYW4gSW5kaWFuIGJveSBmcm9tIFBvbmRpY2hlcnJ5IHdobyBleHBsb3JlcyBpc3N1ZXMgb2Ygc3Bpcml0dWFsaXR5IGFuZCBtZXRhcGh5c2ljcyBmcm9tIGFuIGVhcmx5IGFnZS4gSGUgc3Vydml2ZXMgMjI3IGRheXMgYWZ0ZXIgYSBzaGlwd3JlY2sgd2hpbGUgc3RyYW5kZWQgb24gYSBsaWZlYm9hdCBpbiB0aGUgUGFjaWZpYyBPY2VhbiB3aXRoIGEgQmVuZ2FsIHRpZ2VyIHdoaWNoIHJhaXNlcyBxdWVzdGlvbnMgYWJvdXQgdGhlIG5hdHVyZSBvZiByZWFsaXR5IGFuZCBob3cgaXQgaXMgcGVyY2VpdmVkIGFuZCB0b2xkLjtTZXZlbiBTdG9yaWVzICgxOTkzKQ0KMjAwMTpbQ3JpbWVdW0luZGlhXSBDaGhvdGEgUmFqYW4ncyBhc3NvY2lhdGVzIHRyYWNrZWQgZG93biBhbmQgc2hvdCBkZWFkIGhvdGVsaWVyIFZpbm9kIGluIE11bWJhaSwgYXMgd2VsbCBhcyBTdW5pbCBTb2FucyDigJMgYW5vdGhlciBEYXdvb2QgYXNzb2NpYXRlLg0KMjAwMSAoSmFuIDEpOltCb29rXSBHcmVnIE1jS2Vvd24ncyBFc3NlbnRpYWxpc206IFRoZSBEaXNjaXBsaW5lZCBQdXJzdWl0IG9mIExlc3MNCjIwMDEgKEphbiAxKTpbQm9va10gQnJpYW4gVHJhY3kncyBFYXQgVGhhdCBGcm9nIQ0KMjAwMTogVGhlIEFyZHVpbm8gcHJvamVjdCBzdGFydGVkIGF0IHRoZSBJbnRlcmFjdGlvbiBEZXNpZ24gSW5zdGl0dXRlIEl2cmVhIChJRElJKSBpbiBJdnJlYSwgSXRhbHkuIEF0IHRoYXQgdGltZSwgdGhlIHN0dWRlbnRzIHVzZWQgYSBCQVNJQyBTdGFtcCBtaWNyb2NvbnRyb2xsZXIgYXQgYSBjb3N0IG9mICQxMDAsIGEgY29uc2lkZXJhYmxlIGV4cGVuc2UgZm9yIG1hbnkgc3R1ZGVudHMuDQoyMDAxIChBcHIgNHRoKTogQ2hhcmxlcyBNLiBWZXN0LCB0aGUgdGhlbiBQcmVzaWRlbnQgb2YgTUlUIGFubm91bmNlZCBPcGVuQ291cnNlV2FyZSAoT0NXKSBwdWJsaWNpemluZyBhbGwgb2YgaXRzIDIsMDAwIGNvdXJzZXMgIGF0IHRoZSBlc3RpbWF0ZWQgY29zdCBvZiAkMTAwIG1pbGxpb24gKG9uIGFuIGF2Zy4sIGEgTUlUIHN0dWRlbnRzIHBheXMgYXJvdW5kICQyNiwwMDAgYXMgb2ZmbGluZSB0dWl0aW9uIGZlZSkNCjIwMDE6IFVTIGludmFkZWQgQWZnaGFuaXN0YW4gaW4gcmVzcG9uc2UgdG8gOS8xMSBhdHRhY2tzLiBPZmZpY2lhbGx5LCBJdCBoYXMgYmVjb21lIHRoZSBsb25nZXN0IHdhciBpbiBBbWVyaWNhbiBoaXN0b3J5Lg0KMjAwMTogaVBvZCBieSBUb255IEZhZGVsbA0KMjAwMSAoSnVuIDE1KTpbSmFja10gR2FkYXI6IEVrIFByZW0gS2F0aGE7IExhZ2FhbjogT25jZSBVcG9uIGEgVGltZSBpbiBJbmRpYQ0KMjAwMSAoU2VwIDExKTogOS8xMSBUZXJyb3Jpc3QgYXR0YWNrcy4gVGhlIFNlcHRlbWJlciAxMSBvciA5LzExLCBhdHRhY2tzIHdlcmUgYSBzZXJpZXMgb2YgZm91ciBjb29yZGluYXRlZCB0ZXJyb3Jpc3QgYXR0YWNrcyBieSB0aGUgSXNsYW1pYyB0ZXJyb3Jpc3QgZ3JvdXAgYWwtUWFlZGEgb24gdGhlIFVuaXRlZCBTdGF0ZXMgb24gdGhlIG1vcm5pbmcgb2YgVHVlc2RheSwgU2VwIDExLiBUaGUgbG9zcyBvZiBsaWZlIHdhcyBlc3RpbWF0ZWQgYXQganVzdCB1bmRlciAzLDAwMC4gVGhlIGV2ZW50IGNoYW5nZWQgQW1lcmljYW4gZm9yZWlnbiBwb2xpY3kuIEl0IHdhcyBhIG1vdGl2YXRpbmcgZmFjdG9yIGJlaGluZCB0aGUgY29udHJvdmVyc2lhbCBpbnZhc2lvbiBvZiBJcmFxIGFuZCBsZWQgdG8gYSDigJh3YXIgb24gdGVycm9y4oCZIHN5bWJvbGlzZWQgYnkgR3VhbnRhbmFtbyBCYXkgYW5kIGEgZGViYXRlIG92ZXIgdGhlIGp1c3RpZmljYXRpb24gb2YgdG9ydHVyZS4NCjIwMDEgKE9jdCA3KTpbR2VvUG9saXRpY3NdIFVuaXRlZCBTdGF0ZXMgaW52YXNpb24gb2YgQWZnaGFuaXN0YW46IEluIGxhdGUgMjAwMSwgdGhlIFVuaXRlZCBTdGF0ZXMgYW5kIGl0cyBjbG9zZSBhbGxpZXMgaW52YWRlZCBBZmdoYW5pc3RhbiBhbmQgdG9wcGxlZCB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50LiBUaGUgaW52YXNpb24ncyBzdGF0ZWQgYWltcyB3ZXJlIHRvIGRpc21hbnRsZSBhbC1RYWVkYSwgd2hpY2ggaGFkIGV4ZWN1dGVkIHRoZSBTZXB0ZW1iZXIgMTEgYXR0YWNrcywgYW5kIHRvIGRlbnkgaXQgYSBzYWZlIGJhc2Ugb2Ygb3BlcmF0aW9ucyBpbiBBZmdoYW5pc3RhbiBieSByZW1vdmluZyB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50IGZyb20gcG93ZXIuIERlYyA3LCAyMDAxIG9ud2FyZCBzdGFydGVkIFdhciBpbiBBZmdoYW5pc3Rhbi4NCjIwMDEgKE9jdCAxNik6W0Jvb2tdIE1jS2luc2V5IFJlc2VhcmNoZXIgSmFtZXMgQy4gQ29sbGlucycgR29vZCBUbyBHcmVhdDogV2h5IFNvbWUgQ29tcGFuaWVzIE1ha2UgdGhlIExlYXAuLi5BbmQgT3RoZXJzIERvbid0OyANCjIwMDEgKE5vdik6W0NyaW1lXVtJbmRpYV0gQWJkdWwgR2FmZmFyIGFsaWFzIENoaWtuYSBHYWZmYXIgY2F1Z2h0IGJ5IHRoZSBkZXRlY3RpdmUgZGVwYXJ0bWVudCBpbiBDYWxjdXR0YSANCjIwMDEgKEphbiAyKTogVGhlIG5vcnRoZXJuIGVsZWN0cmljYWwgZ3JpZCBjb2xsYXBzZWQgaW4gSW5kaWEuIEEgZmF1bHQgaW4gdGhlIHRyYW5zbWlzc2lvbiBzeXN0ZW0gaW4gdGhlIHN0YXRlIG9mIFV0dGFyIFByYWRlc2ggbGVkIHRvIGNhc2NhZGluZyBmYWlsdXJlIHRocm91Z2hvdXQgbm9ydGhlcm4gSW5kaWEgYWZmZWN0aW5nIDIzIGNyb3JlIHJlc2lkZW50cy4NCjIwMDE6IElWUlMgKCdJbnRlcmFjdGl2ZSBWb2ljZSBSZXNwb25zZSBTeXN0ZW0nKSBmb3IgdGVsZXBob25pYyBlbnF1aXJpZXMgYWJvdXQgdHJhaW5zIGludHJvZHVjZWQgaW4gc29tZSBzdGF0aW9ucy4NCjIwMDE6IE1hZGVFYXN5IGluY29ycG9yYXRlZCBhdCA0NC1BLzEsIEthbHUgU2FyYWksIE5lYXIgSGF1eiBLaGFzIE1ldHJvIFN0YXRpb24sIE5ldyBEZWxoaS0xMTAwMTYNCjIwMDE6IEFjYyB0byAyMDAxIGNlbnN1cywgMzAgbGFraHMgd2VyZSBpbW1pZ3JhdGVkIHRvIEluZGlhIGZyb20gQmFuZ2xhZGVzaCBhbG9uZSwgZm9sbG93ZWQgYnkgMTAgbGFraHMgZnJvbSBQYWtpc3RhbiBhbmQgNiBsYWtocyBmcm9tIE5lcGFsLg0KMjAwMSAoRGVjIDEzKTpbQ3JpbWVdW0luZGlhXSBUZXJyb3Jpc3QgYXR0YWNrIG9uIEluZGlhJ3MgUGFybGlhbWVudC4NCjIwMDE6IHRoZSBjdXN0b21lciBiYXNlIG9mIG1vYmlsZSBwaG9uZSBjb21wYW5pZXMgd2FzIDQgbWlsbGlvbi4NCjIwMDE6IEJlbmVmaXQgbGFubmVycywgVGV4YXMgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBIZWFsdGggQmVuZWZpdCBkaXZpc2lvbi4NCjIwMDE6IE5ldyBIb3Jpem9ucyB3YXMgaW5pdGlhbGx5IHNlbGVjdGVkIGZvciBmdW5kaW5nIGluIDIwMDEgYnV0IHdhcyBleGNsdWRlZCBmcm9tIHRoZSBOQVNBIDIwMDMgYnVkZ2V0LiBGdW5kaW5nIGZvciB0aGUgbWlzc2lvbiB3YXMgcmVpbnN0YXRlZCBhZnRlciBOZXcgSG9yaXpvbnMgd2FzIGxpc3RlZCBhcyBhIHRvcCBwcmlvcml0eSBpbiB0aGUgUGxhbmV0YXJ5IFNjaWVuY2UgRGVjYWRhbCBTdXJ2ZXkgb2YgMjAwM+jjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlallkllklklklklklklklklklklklklklklklklklklklklklklklklklklklkjjajlkasjdlajdlkajdlaj
+KAkzIwMDEuDQoxOTkzOiBBc2hvayBIYWxsIEdpcmwncyBSZXNpZGVudGlhbCBTY2hvb2wsIE1hamtoYWxpLg0KMTk5MzogQnkgdGhpcyB5ZWFyIHRoZXJlIHdlcmUgYXJvdW5kIDEwMCB3ZWItc2VydmVycyBhY3Jvc3MgdGhlIHdvcmxkLiAoQSByZXBvcnQgcHVibGlzaGVkIGluIGZpcnN0IGlzc3VlIG9mIFRoZSBXb3JsZCBXaWRlIFdlYiBOZXdzbGV0dGVyLCAxOTkzKQ0KMTk5MzogQUMgMy10aWVyIGNvYWNoZXMgJiBTbGVlcGVyIGNsYXNzIGFyZSBpbnRyb2R1Y2VkIGFwYXJ0IGZyb20gc2Vjb25kIGNsYXNzLg0KMTk5MzogR29JJ3MgRGlzdHJpY3QgUHJpbWFyeSBFZHVjYXRpb24gUHJvZ3JhbW1lIChEUEVQKSB3YXMgbGF1bmNoZWQsIHdpdGggYW4gYWltIG9mIGFjaGlldmluZyB0aGUgb2JqZWN0aXZlIG9mIHVuaXZlcnNhbCBwcmltYXJ5IGVkdWNhdGlvbi4gVGhpcyBwcm9ncmFtbWVkIGxhaWQgdGhlIGZvdW5kYXRpb25zIGZvciDgpLjgpLDgpY3gpLUg4KS24KS/4KSV4KWN4KS34KS+IOCkheCkreCkv+Ckr+CkvuCkqChFZHVjYXRpb24gZm9yIEFsbCBNb3ZlbWVudCkgYWltZWQgYXQgdGhlIHVuaXZlcnNhbGlzYXRpb24gb2YgZWxlbWVudGFyeSBlZHVjYXRpb24gbWFraW5nIGZyZWUgYW5kIGNvbXB1bHNvcnkgZWR1Y2F0aW9uIHRvIGNoaWxkcmVuIGJldHdlZW4gdGhlIGFnZXMgb2YgNiB0byAxNC4NCjE5OTM6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIHNwbGl0IHdpdGggRGF3b29kIGFuZCBmb3JtZWQgYW4gaW5kZXBlbmRlbnQgZ2FuZyB0aGF0IGZyZXF1ZW50bHkgY2xhc2hlZCB3aXRoIERhd29vZCdzIEQtQ29tcGFueS4NCjE5OTMgKEphbiA3KTpbQ3JpbWVdIFJpb3RzIHJlLXN0YXJ0ZWQgaW4gTXVtYmFpIGFuZCBsYXN0ZWQgZm9yIDIwIGRheXMuIFRoZSBJU0ksIHdoaWNoIGNvbnRyb2xsZWQgc2hpcHBpbmcgcm91dGVzIGZyb20gdGhlIEd1bGYgdG8gSW5kaWEncyB3ZXN0IGNvYXN0LCBkZW1hbmRlZCB0aGF0IHRoZSBtYWZpYSB0cmFuc3BvcnQgd2VhcG9ucyBhbmQgZXhwbG9zaXZlcyBpbnRvIEluZGlhIGluIHJldHVybiBmb3IgdGhlIHVzZSBvZiBQYWtpc3RhbidzIHdhdGVycy4gRGF3b29kIG1ldCB0aGVpciBJU0kgaGFuZGxlcnMgaW4gYSA1IHN0YXIgaG90ZWwgb2YgRHViYWkgaW4gSmFuIG9yIEZlYiBvZiAxOTkzLCB0aGVuIGNhbWUgdGhlIFJEWCB0aHJvdWdoIHRoZSBzYW1lIHBvcm91cyBhbmQgdW5jaGVja2VkIHNlYSByb3V0ZSB0aGF0IDI2LzExIGF0dGFja2VycyBzbGlwcGVkIGFjcm9zcyBhbmQgd3JlY2tlZCBtYXloZW0gaW4gTXVtYmFpLiBUaGUg4oCZOTMgYXR0YWNrcyB3ZXJlIGZpbmFsbHkgZXhlY3V0ZWQgaW4gbWFyY2ggdGhhdCBjbGFpbWVkIHNvbWUgMzAwIGlubm9jZW50IGxpdmVzLg0KMTk5MyAoTWFyIDYpOltQb2xpdHldW0luZGlhXSBTaGFyYWQgUGF3YXIgcmUtZWxlY2V0ZCBhcyBDTSBvZiBNSCBmb3IgMiB5ZWFycy4NCjE5OTMgKE1hciAxMik6W0NyaW1lXSBUaGUgMTk5MyBCb21iYXkgYm9tYmluZ3Mgd2VyZSBhIHNlcmllcyBvZiAxMiB0ZXJyb3Jpc3QgYm9tYmluZ3MgdGhhdCB0b29rIHBsYWNlIGluIEJvbWJheS4gVGhlIHNpbmdsZS1kYXkgYXR0YWNrcyByZXN1bHRlZCBpbiAyNTcgZmF0YWxpdGllcyBhbmQgMSw0MDAgaW5qdXJpZXMuIFRoZXJlIHdhcyBhbm90aGVyIHJhaWQgbmVhciBNYW5pc2ggbWFya2V0IHdoZXJlIGhhbmQgZ3JlbmFkZXMgd2VyZSByZWNvdmVyZWQuIEFmdGVyIGFub3RoZXIgdGlwIG9mZiBsZWQgdG8gZGlzY292ZXJ5IG9mIGEgaHVnZSBxdWFudGl0eSBvZiBSRFggZnJvbSBOYWdsYSBCdW5kZXIgb2ZmIEdob2RidW5kZXIgUm9hZCBpbiBUaGFuZS4g4oCcSW4gYWxsLCA1LDAwMCBraWxvZ3JhbXMgb2YgUkRYIHdhcyBicm91Z2h0IGludG8gTXVtYmFpIGFuZCB3ZSByZWNvdmVyZWQgMywzMDAga2lsb2dyYW1zIG9mIGl0IGluIGFsbCB0aGUgcmFpZHMs4oCdIHNheXMgQ2hhdWd1bGUuIFJlZHVjZWQgU2hvY2sgU2Vuc2l0aXZpdHkgKFJTUykgZXhwbG9zaXZlcywgc3VjaCBhcyBSU1MtUkRYLCB3aGljaCBjb3N0cyBhYm91dCBScy4gMSw1MDAtMiwwMDAgcGVyIGtnLiBBbmVlcyBjb250aW51ZWQgb3BlcmF0aW9uIG9mIEQtQ29tcGFueSB3aGljaCBpbmNsdWRlIGNvbnRyYWN0IGtpbGxpbmcsIGV4dG9ydGlvbiwgdGhlIGNpcmN1bGF0aW9uIG9mIGNvdW50ZXJmZWl0IGN1cnJlbmN5LCBhbmQgdGhlIHByb3Zpc2lvbiBvZiBhIHJhbmdlIG9mIGZyZWUtbGFuY2Ugc2VydmljZXMgdG8gdGVycm9yaXN0IGdyb3VwcyBhdCB0aGUgaW5zdGFuY2Ugb2YgUGFraXN0YW4ncyBJbnRlciBTZXJ2aWNlcyBJbnRlbGxpZ2VuY2UgKElTSSkuIEludGVycG9sIFJlZCBDb3JuZXIgbm90aWNlIGZvciBELUNvbXBhbnkuDQoxOTkzIChOb3YgMSk6IFRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGZvdW5kZWQuIEl0IGlzIGFuIGVjb25vbWljIGFuZCBwb2xpdGljYWwgcGFydG5lcnNoaXAgaW52b2x2aW5nIDI4IEV1cm9wZWFuIGNvdW50cmllcy4gSXQgYmVnYW4gYWZ0ZXIgV1cyIHRvIGZvc3RlciBlY29ub21pYyBjby1vcGVyYXRpb24sIHdpdGggdGhlIGlkZWEgdGhhdCBjb3VudHJpZXMgd2hpY2ggdHJhZGUgdG9nZXRoZXIgYXJlIG1vcmUgbGlrZWx5IHRvIGF2b2lkIGdvaW5nIHRvIHdhciB3aXRoIGVhY2ggb3RoZXIuDQoxOTkzIChOb3YgMyk6IFtHZW9Qb2xpdGljc10gVGhlIENvbW1vbiBNYXJrZXQgZm9yIEVhc3Rlcm4gYW5kIFNvdXRoZXJuIEFmcmljYSAoQ09NRVNBKSBpcyBhIHJlZ2lvbmFsIGVjb25vbWljIGNvbW11bml0eSBpbiBBZnJpY2Egd2l0aCB0d2VudHktb25lIG1lbWJlciBzdGF0ZXMgc3RyZXRjaGluZyBmcm9tIFR1bmlzaWEgdG8gRXN3YXRpbmkuIENPTUVTQSB3YXMgZm9ybWVkIGluIERlY2VtYmVyIDE5OTQsIHJlcGxhY2luZyBhIFByZWZlcmVudGlhbCBUcmFkZSBBcmVhIHdoaWNoIGhhZCBleGlzdGVkIHNpbmNlIDE5ODEuIE5pbmUgb2YgdGhlIG1lbWJlciBzdGF0ZXMgZm9ybWVkIGEgZnJlZSB0cmFkZSBhcmVhIGluIDIwMDAgKERqaWJvdXRpLCBFZ3lwdCwgS2VueWEsIE1hZGFnYXNjYXIsIE1hbGF3aSwgTWF1cml0aXVzLCBTdWRhbiwgWmFtYmlhIGFuZCBaaW1iYWJ3ZSksIHdpdGggUndhbmRhIGFuZCBCdXJ1bmRpIGpvaW5pbmcgdGhlIEZUQSBpbiAyMDA0LCB0aGUgQ29tb3JvcyBhbmQgTGlieWEgaW4gMjAwNiwgU2V5Y2hlbGxlcyBpbiAyMDA5IGFuZCBUdW5pc2lhIGFuZCBTb21hbGlhIGluIDIwMTguDQoxOTkzIChEZWMgMjApOiBPSENIUiBmb3JtZWQuIFRoZSBPZmZpY2Ugb2YgdGhlIFVuaXRlZCBOYXRpb25zIEhpZ2ggQ29tbWlzc2lvbmVyIGZvciBIdW1hbiBSaWdodHMgKE9IQ0hSKSwgYSBVbml0ZWQgTmF0aW9ucyBhZ2VuY3kgdGhhdCB3b3JrcyB0byBwcm9tb3RlIGFuZCBwcm90ZWN0IHRoZSBodW1hbiByaWdodHMgdGhhdCBhcmUgZ3VhcmFudGVlZCB1bmRlciBpbnRlcm5hdGlvbmFsIGxhdyBhbmQgc3RpcHVsYXRlZCBpbiB0aGUgVW5pdmVyc2FsIERlY2xhcmF0aW9uIG9mIEh1bWFuIFJpZ2h0cyBvZiAxOTQ4Lg0KMTk5Mzp0aGUgMjR0aCBhbmQgbGFzdCBHTE9OQVNTIHNhdGVsbGl0ZSB3YXMgbGF1bmNoZWQgZm9ybWluZyB0aGUgd2hvbGUgbmF2aWdhdGlvbiBjb25zdGVsbGF0aW9uIHNpbWlsYXIgdG8gdGhhdCBvZiBVUydzIEdQUy4NCjE5OTM6IFNIQS0wIChhIGhhc2ggZnVuY3Rpb24pIHdhcyBwcm9wb3NlZCBieSBOSVNULCBNYXJ5bGFuZCwgVVNBIChGb3VuZGVkOiAxOTAxKS4gSXQgcHJvZHVjZXMgYSAxNjAtYml0IGhhc2ggdmFsdWUsIHRodXMgdGhlIGJydXRlLWZvcmNlIGNvbGxpc2lvbiBvciAgbmVhci1jb2xsaXNpb24gYXR0YWNrIHJlcXVpcmVzIE8oMl44MCkgY29tcHV0YXRpb24uIFdpdGhpbiA1IHllYXJzLCBpdCB3YXMgbWFkZSBjb2xsaXNpb24gYXR0YWNrZWQgYnkgQ2hhYmF1ZCBhbmQgSm91eCB3aXRoIHRoZSBhdHRhY2sgY29tcGxleGl0eSBvZiAyXjYxLg0KMTk5MzogW0NvYWxnYXRlIHNjYW1dIE9uIDIzcmQgQXByaWwgMjAxMywgdGhlIFN0YW5kaW5nIENvbW1pdHRlZSBvbiBDb2FsIGFuZCBTdGVlbCB0YWJsZWQgaW4gUGFybGlhbWVudCB0aGF0IGFsbCAxOTQgY29hbCBibG9ja3MgZGlzdHJpYnV0ZWQgYmV0d2VlbiAxOTkzIGFuZCAyMDA4IHdlcmUgYXVjdGlvbmVkIGluIGFuIHVuYXV0aG9yaXplZCBtYW5uZXIgYW5kIHRoZSBjb3VudHJ5IGxvc3QgUnMuMS44NiBsYWtoIGNyb3JlLi4gRm9ybWVyIFByaW1lIE1pbmlzdGVyIE1hbm1vaGFuIFNpbmdoLCBhbG9uZyB3aXRoIEt1bWFyIE1hbmdhbGFtIEJpcmxhIGFuZCBQLkMuIFBhcmFraCwgd2VyZSBhY2N1c2VkIGFuZCBzdW1tb25lZCBieSBhIHNwZWNpYWwgY291cnQuIFsyTCBDcm9yZV0uIENvbXB0cm9sbGVyIGFuZCBBdWRpdG9yIEdlbmVyYWwgb2YgSW5kaWEgdG9vayAyMCB5ZWFycyB0byBJRCBvbmUgb2YgdGhlIGJpZ2dlc3Qgc2NhbXMgaW4gSW5kaWFuIGhpc3RvcnkuDQoxOTkzOiBBZnRlciBQcmVzaWRlbnQgQmlsbCBDbGludG9uIHRvb2sgb2ZmaWNlIGluIDE5OTMsIGhvd2V2ZXIsIHRoZSBVLlMuIGVjb25vbXkgZW1iYXJrZWQgb24gYSBsb25nIGFuZCBzdHJvbmcgZXhwYW5zaW9uLCBtYWtpbmcgdGhlIDE5OTBzIGEgZ3JlYXQgZGVjYWRlIGZvciBBbWVyaWNhJ3MgbW9uZXksIG92ZXJhbGwuIA0KMTk5MzpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTW90aHJhKDE5OTIpDQoxOTkzOltTcGFjZV0gSGlwcGFyY29zLCBhIHNjaWVudGlmaWMgc2F0ZWxsaXRlIG9mIHRoZSBFdXJvcGVhbiBTcGFjZSBBZ2VuY3kgKEVTQSkgbGFzdGVkIGZvciA0IHllYXJzIGJlZm9yZSBnb2luZyBvdXQtb2Ytc2VydmljZS4NCjE5OTM6W1NwYWNlXVtSZXNlYXJjaF0gSW4gMTk5MywgRG9uIFBhZ2UgYXJndWVkIHRoYXQgaWYgYSBibGFjayBob2xlIHN0YXJ0cyBpbiBhIHB1cmUgcXVhbnR1bSBzdGF0ZSBhbmQgZXZhcG9yYXRlcyBjb21wbGV0ZWx5IGJ5IGEgdW5pdGFyeSBwcm9jZXNzLCB0aGUgdm9uIE5ldW1hbm4gZW50cm9weSBvZiB0aGUgSGF3a2luZyByYWRpYXRpb24gaW5pdGlhbGx5IGluY3JlYXNlcyBhbmQgdGhlbiBkZWNyZWFzZXMgYmFjayB0byB6ZXJvIHdoZW4gdGhlIGJsYWNrIGhvbGUgaGFzIGRpc2FwcGVhcmVkLiBUaGlzIGlzIGNhbGxlZCB0aGUgUGFnZSBjdXJ2ZS4NCjE5OTM6W0Jvb2tzXVtIaXN0b3J5XSBHcmVlbuKAmXMgRGljdGlvbmFyeSBvZiBTbGFuZyBpcyB0aGUgbGFyZ2VzdCBoaXN0b3JpY2FsIGRpY3Rpb25hcnkgb2YgRW5nbGlzaCBzbGFuZy4gV3JpdHRlbiBieSBKb25hdGhvbiBHcmVlbiBvdmVyIDE3IHllYXJzIGZyb20gMTk5MywgaXQgcmVhY2hlZCB0aGUgcHJpbnRlZCBwYWdlIGluIDIwMTAgaW4gYSB0aHJlZS12b2x1bWUgc2V0IGNvbnRhaW5pbmcgbmVhcmx5IDEwMCwwMDAgZW50cmllcyBzdXBwb3J0ZWQgYnkgb3ZlciA0MDAsMDAwIGNpdGF0aW9ucyBmcm9tIGMuIGFkIDEwMDAgdG8gdGhlIHByZXNlbnQgZGF5LiBUaGUgbWFpbiBmb2N1cyBvZiB0aGUgZGljdGlvbmFyeSBpcyB0aGUgY292ZXJhZ2Ugb2Ygb3ZlciA1MDAgeWVhcnMgb2Ygc2xhbmcgZnJvbSBjLiAxNTAwIG9ud2FyZHMuDQoxOTkzOltFbnZdW0Rpc2FzdGVyXSBTb3V0aCBBc2lhbiBtb25zb29uIGZsb29kcywgM2sgZGVhdGhzDQoxOTkzOltHZW9ncmFwaHldIFRoZSBsYXN0IG1ham9yIHNoaWZ0cyBpbiBFYXJ0aCdzIGF4aXMgd2VyZSBpbmZsdWVuY2VkIGJ5IGNsaW1hdGUgY2hhbmdlOiBhIDMxLjUtaW5jaCBzaGlmdCBiZXR3ZWVuIDE5OTMgYW5kIDIwMTAgd2FzIHByaW1hcmlseSBjYXVzZWQgYnkgZ3JvdW5kd2F0ZXIgcHVtcGluZywgYW5kIGEgY2hhbmdlIGluIHBvbGFyIGRyaWZ0IGRpcmVjdGlvbiBhcm91bmQgdGhlIDE5OTBzIHdhcyBsaW5rZWQgdG8gbWVsdGluZyBnbGFjaWVycyBhbmQgaWNlIHNoZWV0cyBkdWUgdG8gZ2xvYmFsIHdhcm1pbmcuIEVhcnRoJ3MgYXhpcyBhbHNvIHNoaWZ0ZWQgYnkgYWJvdXQgNi41IGluY2hlcyBpbiBNYXJjaCAyMDExIGFmdGVyIHRoZSBKYXBhbmVzZSBlYXJ0aHF1YWtlLCBjYXVzaW5nIHRoZSBwbGFuZXQgdG8gc3BpbiBzbGlnaHRseSBmYXN0ZXIuDQoxOTkzOltXaG9dIEluIDE5OTMsIEluZGlhIGNhbWUgaGVhcnRicmVha2luZ2x5IGNsb3NlIHRvIHdpbm5pbmcgaXRzIGZpcnN0IE1pc3MgVW5pdmVyc2UgY3Jvd24gd2l0aCB0aGUgc3R1bm5pbmcgYW5kIGdyYWNlZnVsIE5hbXJhdGEgU2hpcm9ka2FyLCB3aG8gaGFkIGVhcmxpZXIgd29uIHRoZSBGZW1pbmEgTWlzcyBJbmRpYSB0aXRsZS4gUmVwcmVzZW50aW5nIEluZGlhIGF0IHRoZSBNaXNzIFVuaXZlcnNlIHBhZ2VhbnQgaGVsZCBpbiBNZXhpY28gQ2l0eSwgTmFtcmF0YSB3YXMgYSBzdHJvbmcgY29udGVuZGVy4oCUZWxlZ2FudCBpbiBoZXIgZ293biwgcG9pc2VkIGluIGludGVydmlld3MsIGFuZCBhIGZhbiBmYXZvcml0ZS4gU2hlIGVhc2lseSBtYWRlIGl0IHRvIHRoZSBUb3AgNiwgYW5kIGhlciBjaGFuY2VzIG9mIHdpbm5pbmcgbG9va2VkIGluY3JlZGlibHkgaGlnaC4gQnV0IHRoZW4gY2FtZSB0aGUgZmluYWwgcXVlc3Rpb246IOKAnElmIHlvdSBjb3VsZCBiZSBib3JuIGFzIGFueSBoaXN0b3JpY2FsIGZpZ3VyZSwgd2hvIHdvdWxkIGl0IGJlIGFuZCB3aHk/4oCdIFdoaWxlIG90aGVyIGNvbnRlc3RhbnRzIG5hbWVkIGdsb2JhbCBpY29ucyBsaWtlIE1vdGhlciBUZXJlc2EgYW5kIFByaW5jZXNzIERpYW5hLCBOYW1yYXRhIGdhdmUgYW4gaG9uZXN0LCBwZXJzb25hbCBhbnN3ZXLigJRzaGUgc2FpZCBzaGUgd291bGQgYmUgYm9ybiBhcyBoZXJzZWxmIG9yIHNvbWVvbmUgY2xvc2UgdG8gaGVyLCBiZWNhdXNlIHNoZSBiZWxpZXZlZCBpbiBsaXZpbmcgbGlmZSB3aXRoIHRydXRoIGFuZCBpbmRpdmlkdWFsaXR5LiBJdCB3YXMgYSBiZWF1dGlmdWwsIGdyb3VuZGVkIGFuc3dlcuKAlGJ1dCBub3QgdGhlIGtpbmQgb2YgZ3JhbmQsIGlkZWFsaXN0aWMgcmVzcG9uc2UgdGhlIGp1ZGdlcyB3ZXJlIGV4cGVjdGluZy4gVGhhdCBvbmUgbW9tZW50IG9mIHRydXRoLCBtYW55IGJlbGlldmUsIGNvc3QgaGVyIHRoZSBjcm93biwgYW5kIEluZGlhIGhhZCB0byB3YWl0IGFub3RoZXIgeWVhciBiZWZvcmUgU3VzaG1pdGEgU2VuIGJyb3VnaHQgdGhlIE1pc3MgVW5pdmVyc2UgdGl0bGUgaG9tZSBpbiAxOTk0LiBTdGlsbCwgTmFtcmF0YeKAmXMgYW5zd2VyIGJlY2FtZSBpY29uaWPigJRub3QgYmVjYXVzZSBpdCB3b24sIGJ1dCBiZWNhdXNlIGl0IHdhcyByZWFsLCBtYXJraW5nIGEgcmFyZSBpbnN0YW5jZSB3aGVyZSBob25lc3R5IHN0b29kIHRhbGxlciB0aGFuIGRpcGxvbWFjeS4NCjE5OTM6W0F2aWF0aW9uXVtFeHRyZW1lXVtXaG9dIFRoZSBIZXJic3QgbWFuZXV2ZXIgd2FzIGZpcnN0IHN1Y2Nlc3NmdWxseSBwZXJmb3JtZWQgb24gQXByaWwgMjksIDE5OTMsIGJ5IGFuIFgtMzEgYWlyY3JhZnQuIE5hbWVkIGFmdGVyIFdvbGZnYW5nIEhlcmJzdCwgYSBkZXZlbG9wZXIgb2YgcG9zdC1zdGFsbCB0ZWNobm9sb2d5IGZvciBNZXNzZXJzY2htaXR0LULDtmxrb3ctQmxvaG0gKE1CQiksIHRoaXMsIHBvc3Qtc3RhbGwgbWFuZXV2ZXIgZW5hYmxlcyBhIGZpZ2h0ZXIgdG8gbWFrZSBhIHJhcGlkIDE4MMKwIHR1cm4gd2l0aGluIGEgbWluaW1hbCByYWRpdXMuIA0KDQoxOTk04oCTMTk5NTpbVVNdW0dlb1BvbGl0aWNzXSBvY2N1cGF0aW9uIG9mIEhhaXRpLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgRXVyb3BlYW4gRWNvbm9taWMgQXJlYSwgYWJicmV2aWF0ZWQgYXMgRUVBLCBjb25zaXN0cyBvZiB0aGUgTWVtYmVyIFN0YXRlcyBvZiB0aGUgRXVyb3BlYW4gVW5pb24gKEVVKSBhbmQgdGhyZWUgY291bnRyaWVzIG9mIHRoZSBFdXJvcGVhbiBGcmVlIFRyYWRlIEFzc29jaWF0aW9uIChFRlRBKSAoSWNlbGFuZCwgTGllY2h0ZW5zdGVpbiBhbmQgTm9yd2F5OyBleGNsdWRpbmcgU3dpdHplcmxhbmQpLiBUaGUgQWdyZWVtZW50IG9uIHRoZSBFRUEgZW50ZXJlZCBpbnRvIGZvcmNlIG9uIDEgSmFudWFyeSAxOTk0LiANCjE5OTQ6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEV1cm9wZWFuIEVjb25vbWljIEFyZWEgKEVFQSkgd2FzIGVzdGFibGlzaGVkIG9uIDEgSmFudWFyeSAxOTk0LiBUaGUgYWdyZWVtZW50IGxpbmtzIHRoZSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aHJlZSBFRlRBIHN0YXRlc+KAlEljZWxhbmQsIExpZWNodGVuc3RlaW4sIGFuZCBOb3J3YXnigJRpbnRvIGEgc2luZ2xlIGludGVybmFsIG1hcmtldCwgYWxsb3dpbmcgZm9yIHRoZSBmcmVlIG1vdmVtZW50IG9mIGdvb2RzLCBwZXJzb25zLCBzZXJ2aWNlcywgYW5kIGNhcGl0YWwuIA0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBOQUZUQSwgdGhlIE5vcnRoIEFtZXJpY2FuIEZyZWUgVHJhZGUgQWdyZWVtZW50LCB3YXMgYSAxOTk0IGFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzLCBDYW5hZGEsIGFuZCBNZXhpY28gdG8gZWxpbWluYXRlIHRyYWRlIGJhcnJpZXJzIGFuZCBwcm9tb3RlIGZyZWUgdHJhZGUgaW4gTm9ydGggQW1lcmljYS4gSXQgZmFjaWxpdGF0ZWQgdGhlIG1vdmVtZW50IG9mIGdvb2RzIGFuZCBzZXJ2aWNlcyBhbmQgZXN0YWJsaXNoZWQgYSBsYXJnZSB0cmFkZSBibG9jLiBJbiBKdWx5IDIwMjAsIE5BRlRBIHdhcyByZXBsYWNlZCBieSB0aGUgVW5pdGVkIFN0YXRlcy1NZXhpY28tQ2FuYWRhIEFncmVlbWVudCAoVVNNQ0EpLCB3aGljaCBtb2Rlcm5pemVkIGFuZCBlbmhhbmNlZCB0aGUgdHJlYXR5IGZvciBhIGNvbnRlbXBvcmFyeSBlY29ub215Lg0KMTk5NDpbUy5BZnJpY2FdW1NvY2lhbGlzbV0gRmlyc3QgZnJlZSBlbGVjdGlvbnMgaW4gU291dGggQWZyaWNhOyBOZWxzb24gTWFuZGVsYQ0KMTk5NDpbUmVzZWFyY2hdW3NwYWNlXSBDYXJsIFNhZ2FuIGNvbmNlZGVkIHRoYXQgdGhpcyBhcHByb2FjaCB3b3VsZCBub3Qgd29yayBiZWNhdXNlIHRoZSBhdG1vc3BoZXJlIG9mIFZlbnVzIGlzIGZhciBkZW5zZXIgKDkwIGJhcnMpIHRoYW4gd2hhdCB3YXMgdW5kZXJzdG9vZCBpbiAxOTYxIChhIGZldyBiYXJzKSwgbWVhbmluZyB0aGUgY2FyYm9uIHdvdWxkIGp1c3QgYmUgb3hpZGl6ZWQgYmFjayBpbnRvIENPMi4NCjE5OTQ6W0NvbXB1dGluZ11bUXVhbnR1bV0gUGV0ZXIgU2hvciBkaXNjb3ZlcmVkIGFuIGFsZ29yaXRobSAoU2hvcidzIGFsZ29yaXRobSkgdGhhdCBjb3VsZCBmYWN0b3IgbGFyZ2UgbnVtYmVycyBpbiBwb2x5bm9taWFsIHRpbWUgb24gYSBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCB3b3VsZCBicmVhayB0aGUgc2VjdXJpdHkgb2YgbWFueSBjcnlwdG9ncmFwaGljIHNjaGVtZXMuIA0KMTk5NDpbQ29tcHV0aW5nXVtRdWFudHVtXSBQZXRlciBTaG9yIGFuZCBEb24gQ29wcGVyc21pdGggZmlndXJlZCBvdXQgaG93IHRvIHRha2UgYSBRdWFudHVtIEZvdXJpZXIgVHJhbnNmb3JtLg0KMTk5NDpUaGUgcHJvYmxlbSB3aXRoIHRoZSBwYXBlciBwdWJsaXNoZWQgZWFybGllciB0aGlzIG1vbnRoIHdhcyBpdHMgcmVsaWFuY2Ugb24gU2Nobm9ycidzIGFsZ29yaXRobSAobm90IHRvIGJlIGNvbmZ1c2VkIHdpdGggU2hvcuKAmXMgYWxnb3JpdGhtKSwgd2hpY2ggd2FzIGRldmVsb3BlZCBpbiAxOTk0LiBTY2hub3Jy4oCZcyBhbGdvcml0aG0gaXMgYSBjbGFzc2ljYWwgY29tcHV0YXRpb24gYmFzZWQgb24gbGF0dGljZXMsIHdoaWNoIGFyZSBtYXRoZW1hdGljYWwgc3RydWN0dXJlcyB0aGF0IGhhdmUgbWFueSBhcHBsaWNhdGlvbnMgaW4gY29uc3RydWN0aXZlIGNyeXB0b2dyYXBoeSBhbmQgY3J5cHRhbmFseXNpcy4gVGhlIGF1dGhvcnMgd2hvIGRldmlzZWQgU2Nobm9ycuKAmXMgYWxnb3JpdGhtIHNhaWQgaXQgY291bGQgZW5oYW5jZSB0aGUgdXNlIG9mIHRoZSBoZXVyaXN0aWMgcXVhbnR1bSBvcHRpbWl6YXRpb24gbWV0aG9kIGNhbGxlZCBRQU9BLg0KMTk5NCAoSmFuIDEpOiBbR2VvUG9saXRpY3NdIFRoZSBOb3J0aCBBbWVyaWNhbiBGcmVlIFRyYWRlIEFncmVlbWVudCAoTkFGVEEpIHdhcyBhbiBhZ3JlZW1lbnQgc2lnbmVkIGJ5IENhbmFkYSwgTWV4aWNvLCBhbmQgdGhlIFVuaXRlZCBTdGF0ZXMgdGhhdCBjcmVhdGVkIGEgdHJpbGF0ZXJhbCB0cmFkZSBibG9jIGluIE5vcnRoIEFtZXJpY2EuIFRoZSBhZ3JlZW1lbnQgY2FtZSBpbnRvIGZvcmNlIG9uIEphbnVhcnkgMSwgMTk5NCwgYW5kIHN1cGVyc2VkZWQgdGhlIDE5ODggQ2FuYWRh4oCTVW5pdGVkIFN0YXRlcyBGcmVlIFRyYWRlIEFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzIGFuZCBDYW5hZGEuIFRoZSBOQUZUQSB0cmFkZSBibG9jIGZvcm1lZCBvbmUgb2YgdGhlIGxhcmdlc3QgdHJhZGUgYmxvY3MgaW4gdGhlIHdvcmxkIGJ5IGdyb3NzIGRvbWVzdGljIHByb2R1Y3QuDQoxOTk0OltUZWNobm9sb2d5XVtCdXNpbmVzc11bVVNdW0NvbXB1dGluZ10gVGhlIERlbGwgTGF0aXR1ZGUgc2VyaWVzIGlzIGEgbGluZSBvZiBsYXB0b3AgY29tcHV0ZXJzIG1hbnVmYWN0dXJlZCBhbmQgc29sZCBieSBBbWVyaWNhbiBjb21wYW55IERlbGwuIEl0IGlzIGEgYnVzaW5lc3Mtb3JpZW50ZWQgbGluZSwgYWltZWQgYXQgY29ycG9yYXRlIGVudGVycHJpc2VzLCBoZWFsdGhjYXJlLCBnb3Zlcm5tZW50LCBhbmQgZWR1Y2F0aW9uIG1hcmtldHM7IHVubGlrZSB0aGUgSW5zcGlyb24gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBpbmRpdmlkdWFsIGN1c3RvbWVycywgYW5kIHRoZSBWb3N0cm8gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBzbWFsbGVyIGJ1c2luZXNzZXMuIFRoZSBMYXRpdHVkZSBkaXJlY3RseSBjb21wZXRlcyB3aXRoIHRoZSBMZW5vdm8gVGhpbmtQYWQgYW5kIHRoZSBFbGl0ZUJvb2sgc2VyaWVzIGJ5IEhQLiBBZGRpdGlvbmFsbHksIHRoZSAiUnVnZ2VkIChFeHRyZW1lKSIsICJYRlIiIGFuZCAiQVRHIiBtb2RlbHMgY29tcGV0ZSBwcmltYXJpbHkgd2l0aCBQYW5hc29uaWMncyBUb3VnaGJvb2sgbGluZSBvZiAicnVnZ2VkIiBsYXB0b3BzLg0KMTk5NDogU3VzaG1pdGEgU2VuIGJlY2FtZSBNaXNzIFVuaXZlcnNlLg0KMTk5NDogVGhlIEFubmFscyBvZiBJbXByb2JhYmxlIFJlc2VhcmNoIGlzIGEgYmktbW9udGhseSBtYWdhemluZSBkZXZvdGVkIHRvIHNjaWVudGlmaWMgaHVtb3IsIGluIHRoZSBmb3JtIG9mIGEgc2F0aXJpY2FsIHRha2Ugb24gdGhlIHN0YW5kYXJkIGFjYWRlbWljIGpvdXJuYWwuDQoxOTk0OiBMaW5kb24gTGVhZGVyIG9mIExhbmRvciBBc3NvY2lhdGVzLCBvZiBTYW4gRnJhbmNpc2NvIGRlc2lnbmVkIHdvcmRtYXJrcyBmb3IgRmVkRXgncyB2YXJpb3VzIE9wLXVuaXQuIEZlZEV44oCZcyBwdWJsaWMtcmVsYXRpb25zIGZpcm0gd2FudGVkIHRvIGhpZ2hsaWdodCB0aGUgYXJyb3cgc28gaXQgd291bGQgYmUgb2J2aW91cy4gQnV0IGhlIGZvdWdodCB0aGVtIG9uIHRoYXQg4oCUIGhlIHRob3VnaHQgaXQgd291bGQgYmUgb3ZlcmtpbGwuIFRoZXJl4oCZcyBzb21ldGhpbmcgYWJvdXQgbWFraW5nIHBlb3BsZSBkaXNjb3ZlciBzb21ldGhpbmcgb24gdGhlaXIgb3duIHRoYXTigJlzIGEgbG90IG1vcmUgcG93ZXJmdWwgdGhhbiBpdGFsaWNpemluZyBpdCB0byBtYWtlIHlvdXIgcG9pbnQuDQoxOTk0OiBTY2lsYWIgMS4xLCB0aGUgZmlyc3QgcmVsZWFzZWQgdmVyc2lvbiBvZiBTY2lsYWIsIHdhcyBwdXQgb24gYW5vbnltb3VzIGZ0cCBzaXRlLg0KMTk5NDogVGhlIGNvbmNlcHQgb2YgYSBjYWbDqSB3aXRoIGZ1bGwgSW50ZXJuZXQgYWNjZXNzIChhbmQgdGhlIG5hbWUgQ3liZXJjYWbDqSkgd2FzIGludmVudGVkIGluIGVhcmx5IGJ5ICBhIEJyaXRpc2ggdGVjaG5vbG9neSBhcnRpc3QsIEl2YW4gUG9wZS4NCjE5OTQ6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIGx1cmVkIG9uZSBvZiBEYXdvb2QncyBmYXZvcml0ZSAibmFyY28tdGVycm9yaXN0IiBQaGlsbHUgS2hhbiBhbGlhcyBCYWtodGl5YXIgQWhtZWQgS2hhbiB0byBhIGhvdGVsIHJvb20gaW4gQmFuZ2tvaywgd2hlcmUgaGUgd2FzIHRvcnR1cmVkIHRvIGRlYXRoLCBoYXZpbmcgYmVlbiBiZXRyYXllZCBieSBoaXMgY2xvc2VzdCBhaWRlIGFuZCBzaWRla2ljayBNYW5nZXNoICJNYW5neWEiIFBhd2FyLiBELUNvbXBhbnkncyBTaGFyYWQsIHVzZWQgaGlzIGxpbmtzIHdpdGggTXVtYmFpLWJhc2VkIGhvdGVsaWVyIFZpbm9kIGFuZCBBLiBNaXNocmEgdG8gdHJhY2sgZG93biBSYWphbiBpbiBCYW5na29rLiBSYWphbidzIGhpdG1hbiBSb2hpdCBWYXJtYSBhbmQgaGlzIHdpZmUgc2hvdCBieSBELUNvbXBhbnkuDQoxOTk0KEp1bCAxNik6W1NwYWNlXSBGcm9tIEp1bHkgMTYgdG8gMjIsIDE5OTQsIGVub3Jtb3VzIHBpZWNlcyBvZiB0aGUgY29tZXQgU2hvZW1ha2VyLUxldnkgOSAoU0w5KSwgZGlzY292ZXJlZCBqdXN0IGEgeWVhciBwcmlvciwgY3Jhc2hlZCBpbnRvIEp1cGl0ZXIgb3ZlciBzZXZlcmFsIGRheXMsIGNyZWF0aW5nIGh1Z2UsIGRhcmsgc2NhcnMgaW4gdGhlIHBsYW5ldCdzIGF0bW9zcGhlcmUgYW5kIGxvZnRpbmcgc3VwZXJoZWF0ZWQgcGx1bWVzIGludG8gaXRzIHN0cmF0b3NwaGVyZS4NCjE5OTQgKE9jdCk6IElUUE8gYW5kIEdvSSdzIE5JQyBqb2ludGx5IHNldC11cCB0aGUgTmF0aW9uYWwgQ2VudHJlIGZvciBUcmFkZSBJbmZvcm1hdGlvbiAoTkNUSSkgYXQgUHJhZ2F0aSBNYWlkYW4uDQoxOTk0IChOb3YgMSwgMTU6MDEgSVNUKTpbU3BhY2VdW1N1bl0gVGhlIEdsb2JhbCBHZW9zcGFjZSBTY2llbmNlICdXaW5kJyBzYXRlbGxpdGUgaXMgYSBOQVNBIHNjaWVuY2Ugc3BhY2VjcmFmdCBkZXNpZ25lZCB0byBzdHVkeSByYWRpbyB3YXZlcyBhbmQgcGxhc21hIHRoYXQgb2NjdXIgaW4gdGhlIHNvbGFyIHdpbmQgYW5kIGluIHRoZSBFYXJ0aCdzIG1hZ25ldG9zcGhlcmUuIA0KMTk5NCAoRGVjIDMpOiBTb255J3MgUGxheVN0YXRpb24gKGEgdmlkZW8gZ2FtZSBjb25zb2xlKSB3YXMgaW50cm9kdWNlZCB0byB0aGUgd29ybGQgZnJvbSBNaW5hdG8sIFRva3lvIChKYXBhbikuDQoxOTk0OiBXWFlDLSBmaXJzdCBpbnRlcm5ldCByYWRpbyBzdGF0aW9uIGJyb2FkY2FzdC4NCjE5OTQ6IE1lbW9yeSBjYXJkcyB3ZXJlIGludHJvZHVjZWQgaW4gdGhlIGNvbnN1bWVyIGVsZWN0cm9uaWNzIG1hcmtldC4NCjE5OTQgKEF1Zyk6IElUUE8ncyAxc3QgRGVsaGkgQm9vayBGYWlyIGF0ICBIYWxsIDggdG8gMTIgb2YgUHJhZ2F0aSBNYWlkYW4sIE5ldyBEZWxoaS4gVGhlIHRpbWluZ3Mgb2YgZmFpciBhcmUgZnJvbSAxMC4wMCBhbSB0byA4LjAwIHBtIChlbnRyeSB0byBmYWlyIHdpbGwgY2xvc2UgYXQgNy4zMCBwbSkuDQoxOTk0IChTZXApOiBUaGUgQ09OQ0VSVCBzb2Z0d2FyZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgaW1wbGVtZW50ZWQgYXQgYWxsIG9mIHRoZSBmaXZlIFBSUycgc2l0ZXMgU2VjdW5kZXJhYmFkIGluIFNlcHQuIDE5OTQsIE5ldyBEZWxoaSBvbiBTZXB0LiAxOTk2LCBDYWxjdXR0YSBvbiAxNHRoIEp1bmUgMTk5OCwgTXVtYmFpIG9uIDExdGggSmFuIDE5OTkgYW5kIENoZW5uYWkgb24gMTJ0aCBBcHJpbCAxOTk5Lg0KMTk5NDogdGhlIDI0dGggYW5kIHRoZSBsYXN0IEdQUyBzYXRlbGxpdGUgd2FzIGxhdW5jaGVkIGluIFVTLg0KMTk5NDogVGhlIHdvcmQgVGFsaWJhbiBpcyBQYXNodG8sINi32KfZhNio2KfZhiDhua3EgWxpYsSBbiwgbWVhbmluZyAic3R1ZGVudHMiLCB0aGUgcGx1cmFsIG9mIOG5rcSBbGliLiBBZnRlciB0aGUgU292aWV0IFVuaW9uIGludGVydmVuZWQgYW5kIG9jY3VwaWVkIEFmZ2hhbmlzdGFuIGluIDE5NzksIElzbGFtaWMgbXVqYWhpZGVlbiBmaWdodGVycyBlbmdhZ2VkIGluIHdhciB3aXRoIHRob3NlIFNvdmlldCBmb3JjZXMsIHdoaWNoIGxhaWQgdGhlIGZvdW5kYXRpb24gb2YgcG9saXRpY2FsIG1vdmVtZW50IGFuZCBtaWxpdGFyeSBvcmdhbml6YXRpb24gbmFtZWQgVGFsaWJhbi4NCjE5OTQ6IEFiZHVsIEthcmVlbSBUZWxnaSBhY3F1aXJlZCB0aGUgbGljZW5zZSBmb3Igc2VsbGluZyBzdGFtcCBwYXBlciBhbmQgb3BlbmVkIGFuIG9mZmljZSBpbiBNdW1iYWkuIEFmdGVyIHRoYXQsIGhlIHN0YXJ0ZWQgcHJpbnRpbmcgc3RhbXAgcGFwZXIgaW4gTmFzaGlrLiBXaXRoIHNvbWUgYWdlbnRz4oCZIGhlbHAsIGhlIHN0YXJ0cyBzZWxsaW5nIGZha2Ugc3RhbXAgcGFwZXIgaW4gYnVsayB0byBiYW5rcywgaW5zdXJhbmNlIGNvbXBhbmllcywgc3RvY2sgYnJva2VyYWdlIGZpcm1zLCBhbmQgY29ycG9yYXRlcy4gSW4gMjAwMyB0aGUgVGVsZ2kgc2NhbSB3YXMgdW5mb2xkZWQ7IHRoZSBmaWd1cmUgaW4gdGhlIG1pbmQgb2Ygc2VjdXJpdHkgYW5kIGludGVsbGlnZW5jZSBhZ2VuY2llcyB3YXMgdXAgdG8gUnMuMjBrIENyb3JlDQoxOTk0OiBbR2VvUG9saXRpY3NdIEludGVybmF0aW9uYWwgQXNzb2NpYXRpb24gb2YgR2VuZGFybWVyaWVzIGFuZCBQb2xpY2UgRm9yY2VzIHdpdGggTWlsaXRhcnkgU3RhdHVzIChjb21tb25seSBrbm93biBhcyBGSUVQIGZvciBGcmFuY2UtSXRhbGlhLUVzcGHDsWEtUG9ydHVnYWwsIHRoZSBmaXJzdCBmb3VyIG1lbWJlcnMpIGlzIGFuIGFzc29jaWF0aW9uIG9mIG5hdGlvbmFsIGdlbmRhcm1lcmllcyBvciBtaWxpdGFyeSBwb2xpY2UgZm9yY2VzLg0KMTk5NDpbQm9va10gUGFsZSBCbHVlIERvdDogQSBWaXNpb24gb2YgdGhlIEh1bWFuIEZ1dHVyZSBpbiBTcGFjZSBpcyBhIDE5OTQgYm9vayBieSB0aGUgYXN0cm9ub21lciBDYXJsIFNhZ2FuLiBJdCBpcyB0aGUgc2VxdWVsIHRvIFNhZ2FuJ3MgMTk4MCBib29rIENvc21vcyBhbmQgd2FzIGluc3BpcmVkIGJ5IHRoZSBmYW1vdXMgMTk5MCBQYWxlIEJsdWUgRG90IHBob3RvZ3JhcGgsIGZvciB3aGljaCBTYWdhbiBwcm92aWRlcyBhIHBvaWduYW50IGRlc2NyaXB0aW9uLiBJbiB0aGUgYm9vaywgU2FnYW4gbWl4ZXMgcGhpbG9zb3BoeSBhYm91dCB0aGUgaHVtYW4gcGxhY2UgaW4gdGhlIHVuaXZlcnNlIHdpdGggYSBkZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCBrbm93bGVkZ2UgYWJvdXQgdGhlIFNvbGFyIFN5c3RlbS4gSGUgYWxzbyBkZXRhaWxzIGEgaHVtYW4gdmlzaW9uIGZvciB0aGUgZnV0dXJlLg0KMTk5NDpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTWVjaGFnb2R6aWxsYSBJSSgxOTkzKQ0KMTk5NDpbQ2luZW1hXSBUaGUgQXBwbGUoMTk4MCkNCjE5OTQ6W0NpbmVtYV0gVGhlIEF0bGFudGlzIEludGVyY2VwdG9ycygxOTgzKQ0KMTk5NDpbTW50bmdnXSBJbiAxOTk0LCBNYXJrIFdoZXR1IHN1bW1pdHRlZCBNdCBFdmVyZXN0IHdpdGggTWlrZSBSZWluYmVyZ2VyLiBCdXQgYWZ0ZXIgYSBmcmVlemluZyBuaWdodCwgV2hldHUgZmFjZWQgYSBoYXJyb3dpbmcgY2hvaWNlOiBsZWF2ZSBoaXMgZnJpZW5kIG9yIHJlbWFpbiBmb3JldmVyLiBUaGUgRmF0YWwgR2FtZSAoMTk5NykNCjE5OTQ6W1RvdXJpc21dIFRoZSBBZHZlbnR1cmUgVG91ciBPcGVyYXRvcnMgQXNzb2NpYXRpb24gb2YgSW5kaWEgKEFUT0FJKSB3YXMgZm91bmRlZCBpbiAxOTk0LiBJdCB3YXMgZXN0YWJsaXNoZWQgYnkgYSBncm91cCBvZiB0cmF2ZWwgdHJhZGUgYWR2ZW50dXJlcnMgd2hvIGFpbWVkIHRvIGNyZWF0ZSBhIHN0cm9uZyBzdXBwb3J0IG5ldHdvcmsgZm9yIEluZGlhbiBhZHZlbnR1cmUgdG91ciBvcGVyYXRvcnMuIA0KDQoxOTk1IChNYXkgMTkpOiBbUmVzZWFyY2hdW1NwYWNlXSB0d28gc2NpZW50aXN0cyBhdCBDYWwgUG9seSBzaG93ZWQgdGhhdCBiYWN0ZXJpYSBjYW4gc3Vydml2ZSB3aXRob3V0IGFueSBtZXRhYm9saXNtIGZvciBhdCBsZWFzdCAyNSBtaWxsaW9uIHllYXJzOyBwcm9iYWJseSB0aGV5IGFyZSBpbW1vcnRhbC4NCjI0IE5vdmVtYmVyIDE5OTU6IFRoZSBOZXcgWW9yayBUaW1lcyBkZXNjcmliZWQgYmFjdGVyaWEgdGhhdCBjYW4gc3Vydml2ZSByYWRpYXRpb24gbXVjaCBzdHJvbmdlciB0aGFuIGFueSB0aGF0IEVhcnRoIGhhcyBldmVyIGV4cGVyaWVuY2VkLg0KV2UgYXJlIGNhbGxpbmcgdGhlIHVuaW9uIG9mIExvdmVsb2NrJ3MgR2FpYSB3aXRoIEhveWxlIGFuZCBXaWNrcmFtYXNpbmdoZSdzIGV4cGFuZGVkIHRoZW9yeSBvZiBwYW5zcGVybWlhIENvc21pYyBBbmNlc3RyeS4gVGhpcyBhY2NvdW50IG9mIGV2b2x1dGlvbiBhbmQgdGhlIG9yaWdpbiBvZiBsaWZlIG9uIEVhcnRoIGlzIHByb2ZvdW5kbHkgZGlmZmVyZW50IGZyb20gdGhlIHByZXZhaWxpbmcgc2NpZW50aWZpYyBwYXJhZGlnbS4gSXQgY2hhbGxlbmdlcyBub3QgbWVyZWx5IHRoZSBhbnN3ZXJzIGJ1dCB0aGUgcXVlc3Rpb25zIHRoYXQgYXJlIHBvcHVsYXIgdG9kYXkuIENvc21pYyBBbmNlc3RyeSByZXF1aXJlcyB0aGF0IGxpZmUgY2FuIG9ubHkgZGVzY2VuZCBmcm9tIGFuY2VzdG9ycyBhdCBsZWFzdCBhcyBoaWdobHkgZXZvbHZlZCBhcyBpdHNlbGYsIGFuZCB0aGF0IHRoZXJlIGNhbiBiZSBubyBvcmlnaW4gb2YgbGlmZSBmcm9tIG5vbmJpb2xvZ2ljYWwgbWF0dGVyLiBXaXRob3V0IHN1cGVybmF0dXJhbCBpbnRlcnZlbnRpb24sIHRoZXJlZm9yZSwgd2UgY29uY2x1ZGUgdGhhdCBsaWZlIG11c3QgaGF2ZSBhbHdheXMgZXhpc3RlZC4gQWx0aG91Z2ggdGhlc2UgY29uY2x1c2lvbnMgY3V0IGFjcm9zcyB0aGUgYm91bmRhcmllcyBiZXR3ZWVuIHNjaWVuY2UsIHBoaWxvc29waHksIGFuZCByZWxpZ2lvbiwgd2UgYmVsaWV2ZSB0aGV5IGFyZSBncm91bmRlZCBpbiBnb29kIGV2aWRlbmNlLiBBbmQgbmV3IGRhdGEgdGhhdCBzdXBwb3J0IG1hbnkgYXNwZWN0cyBvZiBDb3NtaWMgQW5jZXN0cnkgYXJlIGNvbWluZyBpbiByYXBpZGx5LiBJbiB0aGUgZm9sbG93aW5nIHBhZ2VzIHdlIHdpbGwgZXhwbGFpbiBob3cgdGhlc2UgYW5kIG90aGVyIHJlY2VudCBkZXZlbG9wbWVudHMgc3VwcG9ydCBDb3NtaWMgQW5jZXN0cnk6DQoNCjE5OTU6IEFOU0VUIHNvbGQgdG8gQU9MLCB3aG8gIG5vdyBydW5zIGl0Lg0KMTk5NSAoTWFyKTogRGVwdC4gb2YgSW5kaWFuIE1lZGljaW5lIGFuZCBIb21lb3BhdGh5IGZvdW5kZWQuDQoxOTk1IChNYXIgMjQpOltSZXNlYXJjaF0gUmVtb3RlbHkgT3BlcmF0ZWQgVmVoaWNsZSBLQUlLTyByZWFjaGVkIHRoZSBkZWVwZXN0IGFyZWEgb2YgdGhlIE1hcmlhbmEgVHJlbmNoIGFuZCBtYWRlIHRoZSBkZWVwZXN0IGRpdmluZyByZWNvcmQgb2YgMTAsOTExIG0gKDM1LDc5NyBmdDsgNSw5NjYgZmF0aG9tcykgDQoxOTk1OiBwaG9uZSBjYWxsIGNvc3RpbmcgUnMuIDE2IHBlciBtaW4uDQoxOTk1OltHYW1pbmddIFZpcnR1YSBDb3AgMiBpcyBhIGxpZ2h0IGd1biBzaG9vdGVyIGFyY2FkZSBnYW1lLCByZWxlYXNlZCBpbiAxOTk1IGFuZCBkZXZlbG9wZWQgaW50ZXJuYWxseSBhdCBTZWdhIGJ5IHRoZWlyIEFNMiBzdHVkaW8gKFl1IFN1enVraSkuIEl0IHdhcyBwb3J0ZWQgdG8gdGhlIFNlZ2EgU2F0dXJuIGluIDE5OTYuIEl0IHdhcyByZWxlYXNlZCBvbiBQQyBpbiAxOTk3IGFuZCBTZWdhIERyZWFtY2FzdCBpbiAyMDAwLiBJdCB3YXMgbGF0ZXIgYnVuZGxlZCB3aXRoIFZpcnR1YSBDb3AgaW4gVmlydHVhIENvcDogRWxpdGUgRWRpdGlvbiBmb3IgUGxheVN0YXRpb24gMiBpbiAyMDAyLg0KMTk5NSAoQXByIDEpOltSZXNlYXJjaF0gUGlsbGFycyBvZiBDcmVhdGlvbiBpcyBhIHBob3RvZ3JhcGggdGFrZW4gYnkgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgb2YgZWxlcGhhbnQgdHJ1bmtzIG9mIGludGVyc3RlbGxhciBnYXMgYW5kIGR1c3QgaW4gdGhlIEVhZ2xlIE5lYnVsYSwgaW4gdGhlIFNlcnBlbnMgY29uc3RlbGxhdGlvbiwgc29tZSA2LDUwMOKAkzcsMDAwIGxpZ2h0LXllYXJzICgyLDAwMOKAkzIsMTAwIHBjOyA2MeKAkzY2IEVtKSBmcm9tIEVhcnRoLg0KMTk5NSAoQXByIDEpOiBJQUFJIGFuZCBOQUEgd2VyZSBtZXJnZWQgYnkgYW4gQWN0IG9mIFBhcmxpYW1lbnQgYW5kIHdhcyBuYW1lZCBhcyBBaXJwb3J0cyBBdXRob3JpdHkgb2YgSW5kaWEgKEFBSSkuIFRoaXMgbmV3IG9yZ2FuaXNhdGlvbiB3YXMgdG8gYmUgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nLCB1cGdyYWRpbmcsIG1haW50YWluaW5nIGFuZCBtYW5hZ2luZyBjaXZpbCBhdmlhdGlvbiBpbmZyYXN0cnVjdHVyZSBib3RoIG9uIHRoZSBncm91bmQgYW5kIGFpciBzcGFjZSBpbiB0aGUgY291bnRyeS4NCjE5OTUgKEFwciAyMSk6W0NyaW1lXVtJbmRpYV0gQmFibG9vIHBpY2tlZCB1cCBieSB0aGUgU2luZ2Fwb3JlIGFpcnBvcnQgcG9saWNlIGZvciB0cmF2ZWxsaW5nIG9uIGZha2UgcGFzc3BvcnQuIEhlIHdhcyBzdGF5aW5nIGluIER1YmFpLg0KMTk5NSAoU2VwIDMwKTpbQ3JpbWVdW0luZGlhXSBTaW5nYXBvcmUgZXh0cmFkaXRlcyBJbmRpYSdzICdtb3N0LXdhbnRlZCBpbnRlci1zdGF0ZSBjcmltaW5hbCcgQmFibG9vIFNyaXZhc3RhdmEgKDMzWU8pDQoxOTk1IChOb3YgMzApOiBPcGVyYXRpb24gRGVzZXJ0IFN0b3JtIChGaXJzdCBJcmFxIFdhcilvZmZpY2lhbGx5IGVuZGVkLg0KMTk5NSAoTWF5IDMxKTpbQm9va11bTWlsaXRhcnldIEFkbWlyYWwgV2lsbGlhbSBILiBNY1JhdmVuJ3MgU3BlYyBPcHM6IENhc2UgU3R1ZGllcyBpbiBTcGVjaWFsIE9wZXJhdGlvbnMgV2FyZmFyZTogVGhlb3J5IGFuZCBQcmFjdGljZTsgU2VhIFN0b3JpZXM6IE15IExpZmUgaW4gU3BlY2lhbCBPcGVyYXRpb25zICgyMDE5LCBNYXkgMSk7IFRoZSBIZXJvIENvZGU6IExlc3NvbnMgTGVhcm5lZCBmcm9tIExpdmVzIFdlbGwgTGl2ZWQgKDIwMjEsIEFwciAxMykNCjE5OTU6IERyLiBIYW5kZSBhZnRlciBncmFkdWF0aW5nIGZyb20gSUlUIEtoYXJhZ3B1ciBjb25jZXB0dWFsaXplZCBTRUxDTyBJbmRpYSBkdXJpbmcgaGlzIFBoRCBvbiBzdXN0YWluYWJsZSBlbmVyZ3kgYXQgdGhlIFVuaXZlcnNpdHkgb2YgTWFzc2FjaHVzZXR0cy4gRHVyaW5nIGEgZmllbGQgdmlzaXQgdG8gdGhlIERvbWluaWNhbiBSZXB1YmxpYywgaGUgd2FzIHN1cnByaXNlZCB0byBzZWUgdGhlIHBvb3IgdXNpbmcgc29sYXIgbGlnaHRzLg0KMTk5NTogVGhlIEdvdmVybm1lbnQgb2YgSW5kaWEgYW5kIHRoZSBHb3Zlcm5tZW50IG9mIERlbGhpIGpvaW50bHkgc2V0IHVwIGEgY29tcGFueSBjYWxsZWQgdGhlIERlbGhpIE1ldHJvIFJhaWwgQ29ycG9yYXRpb24gKERNUkMpIG9uIDMgTWF5IDE5OTUsIHdpdGggRHIuIEUuIFNyZWVkaGFyYW4gYXMgdGhlIG1hbmFnaW5nIGRpcmVjdG9yLg0KMTk5NTogSW50J2wgR2FuZGhpIFBlYWNlIFByaXplIGxhdW5jaGVkLg0KMTk5NTogU2FjaGluIFIuIFRlbmR1a2FyIGFuZCBBbmphbGkgVGVuZHVsa2FyIHdlZGRlZCB0b2dldGhlci4NCjE5OTU6IC5tcDMgaW52ZW50ZWQuDQoxOTk1OltHYW1pbmddIFdoaWxlIEZJRkEgOTUgZGlkIG5vdCBhZGQgbXVjaCBvdGhlciB0aGFuIHRoZSBhYmlsaXR5IHRvIHBsYXkgd2l0aCBjbHViIHRlYW1zLCBGSUZBIDk2IHB1c2hlZCB0aGUgYm91bmRhcmllcy4gRm9yIHRoZSBmaXJzdCB0aW1lIHdpdGggcmVhbCBwbGF5ZXIgbmFtZXMgYnkgb2J0YWluaW5nIHRoZSBGSUZQcm8gbGljZW5zZSwgdGhlIFBsYXlTdGF0aW9uLCBQQywgMzJYIGFuZCBTZWdhIFNhdHVybiB2ZXJzaW9ucyB1c2VkIEVBJ3MgIlZpcnR1YWwgU3RhZGl1bSIgZW5naW5lLCB3aXRoIDJEIHNwcml0ZSBwbGF5ZXJzIG1vdmluZyBhcm91bmQgYSByZWFsLXRpbWUgM0Qgc3RhZGl1bS4NCjE5OTUgKEp1bCAxOCk6W0Jvb2tdIEJhcmFjayBPYmFtYSdzIERyZWFtcyBmcm9tIE15IEZhdGhlcjogQSBTdG9yeSBvZiBSYWNlIGFuZCBJbmhlcml0YW5jZTsgRHJlYW1zIGZyb20gTXkgRmF0aGVyOiBBIFN0b3J5IG9mIFJhY2UgYW5kIEluaGVyaXRhbmNlICgyMDA2LCBPY3QgMTcpOyBPZiBUaGVlIEkgU2luZzogQSBMZXR0ZXIgdG8gTXkgRGF1Z2h0ZXJzICgyMDEwLCBOb3YgMTYpOyBBIFByb21pc2VkIExhbmQgKDIwMjAsIE5vdiAxNykNCjE5OTUoSmFuIDEpOltFbnZdIFRoZSBBZ3JlZW1lbnQgb24gQWdyaWN1bHR1cmUgKEFvQSkgaXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgb2YgdGhlIFdvcmxkIFRyYWRlIE9yZ2FuaXphdGlvbi4gSXQgd2FzIG5lZ290aWF0ZWQgZHVyaW5nIHRoZSBVcnVndWF5IFJvdW5kIG9mIHRoZSBHZW5lcmFsIEFncmVlbWVudCBvbiBUYXJpZmZzIGFuZCBUcmFkZSwgYW5kIGVudGVyZWQgaW50byBmb3JjZSB3aXRoIHRoZSBlc3RhYmxpc2htZW50IG9mIHRoZSBXVE8gb24gSmFudWFyeSAxLCAxOTk1LiBCbHVlLCBSZWQsIEFtYmVyIGFuZCBHcmVlbiBCb3ggb2Ygc3Vic2lkaWVzLg0KMTk5NTpbQ2luZW1hXSBOZWxzb24gTWFuZGVsYSwgaW4gaGlzIGZpcnN0IHRlcm0gYXMgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYSwgaW5pdGlhdGVzIGEgdW5pcXVlIHZlbnR1cmUgdG8gdW5pdGUgdGhlIEFwYXJ0aGVpZC10b3JuIGxhbmQ6IGVubGlzdCB0aGUgbmF0aW9uYWwgcnVnYnkgdGVhbSBvbiBhIG1pc3Npb24gdG8gd2luIHRoZSAxOTk1IFJ1Z2J5IFdvcmxkIEN1cC4gLSAgSW52aWN0dXMgKDIwMDkpDQoxOTk1OltDaW5lbWFdIEEgQ2xvY2t3b3JrIE9yYW5nZSgxOTcxKQ0KMTk5NTpbQ2luZW1hXSBEZWFkIEVuZCBEcml2ZS1JbigxOTg2KQ0KMTk5NTpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gU3BhY2Vnb2R6aWxsYSgxOTk0KQ0KMTk5NTpbQ2luZW1hXSBIZWFydGJlZXBzKDE5ODEpDQoxOTk1OltDaW5lbWFdIFRoZSBNdW1teSdzIEN1cnNlKDE5NDQpDQoxOTk1IChEZWMpOltTcGFjZV0gU29sYXIgYW5kIEhlbGlvc3BoZXJpYyBPYnNlcnZhdG9yeSAoU29ITykgd2FzIGxhdW5jaGVkIGluIERlY2VtYmVyIDE5OTUgYXMgYSBqb2ludCBtaXNzaW9uIGJldHdlZW4gdGhlIEV1cm9wZWFuIFNwYWNlIEFnZW5jeSAoRVNBKSBhbmQgTkFTQSwgU29ITyB3YXMgZGVzaWduZWQgdG8gb3JiaXQgdGhlIFN1biB0byBsZWFybiBhYm91dCB0aGUgc3RydWN0dXJlIG9mIHRoZSBzdGFy4oCZcyBpbnRlcmlvciBhbmQgaXRzIG91dGVyIGF0bW9zcGhlcmUsIGFzIHdlbGwgYXMgdG8gaW52ZXN0aWdhdGUgdGhlIGJlaGF2aW9yIG9mIHNvbGFyIHdpbmRzLiBJdCB3YXMgZXhwZWN0ZWQgdG8gY29tcGxldGUgaXRzIG1pc3Npb24gaW4gMTk5OC4gSW5zdGVhZCwgaXQgaXMgc3RpbGwgYWN0aXZlIHRvZGF5LCBhbmQgaXMgbm93IGxpa2VseSB0byBrZWVwIHdvcmtpbmcgdW50aWwgMjAyNSwgd2hlbiBpdCB3aWxsIGhhdmUgYmVlbiBpbiBzcGFjZSBmb3IgMzAgeWVhcnMuDQoxOTk1OltQaHlzaWNzXVtTcGFjZV1bUmVzZWFyY2hdIFByaW9yIHRvIDE5OTUsIHRoZW9yaXN0cyBiZWxpZXZlZCB0aGF0IHRoZXJlIHdlcmUgZml2ZSBjb25zaXN0ZW50IHZlcnNpb25zIG9mIHN1cGVyc3RyaW5nIHRoZW9yeSAodHlwZSBJLCB0eXBlIElJQSwgdHlwZSBJSUIsIGFuZCB0d28gdmVyc2lvbnMgb2YgaGV0ZXJvdGljIHN0cmluZyB0aGVvcnkpLiBUaGlzIHVuZGVyc3RhbmRpbmcgY2hhbmdlZCBpbiAxOTk1IHdoZW4gRWR3YXJkIFdpdHRlbiBzdWdnZXN0ZWQgdGhhdCB0aGUgZml2ZSB0aGVvcmllcyB3ZXJlIGp1c3Qgc3BlY2lhbCBsaW1pdGluZyBjYXNlcyBvZiBhbiBlbGV2ZW4tZGltZW5zaW9uYWwgdGhlb3J5IGNhbGxlZCBNLXRoZW9yeS4gV2l0dGVuJ3MgY29uamVjdHVyZSB3YXMgYmFzZWQgb24gdGhlIHdvcmsgb2YgYSBudW1iZXIgb2Ygb3RoZXIgcGh5c2ljaXN0cywgaW5jbHVkaW5nIEFzaG9rZSBTZW4sIENocmlzIEh1bGwsIFBhdWwgVG93bnNlbmQsIGFuZCBNaWNoYWVsIER1ZmYuIEhpcyBhbm5vdW5jZW1lbnQgbGVkIHRvIGEgZmx1cnJ5IG9mIHJlc2VhcmNoIGFjdGl2aXR5IG5vdyBrbm93biBhcyB0aGUgc2Vjb25kIHN1cGVyc3RyaW5nIHJldm9sdXRpb24uDQoxOTk1OltDcmltZV1bSW5kaWFdIE11cmRlciBvZiBNdW1iYWktYmFzZWQgYnVpbGRlciBQcmFkZWVwIEphaW4gYnkgQWJ1IFNhbGVtDQoxOTk1OiBGb3J0dW5lIEhvdGVscyBpbiBJbmRpYSBpcyBvd25lZCBieSBpdHMgcGFyZW50IGNvbXBhbnksIElUQyBMdGQuLCB3aGljaCBlc3RhYmxpc2hlZCBGb3J0dW5lIEhvdGVscyBpbiAxOTk1IGFzIGEgc3Vic2lkaWFyeSB0byBwcm92aWRlIG1pZC1tYXJrZXQgdG8gdXBzY2FsZSBob3NwaXRhbGl0eSBzZXJ2aWNlcy4gSG93ZXZlciwgYSBzZXBhcmF0ZSBncm91cCwgRm9ydHVuZSBHcm91cCBvZiBIb3RlbHMsIGJhc2VkIGluIHRoZSBVbml0ZWQgQXJhYiBFbWlyYXRlcyAoVUFFKSBhbmQgZm91bmRlZCBieSBQcmF2ZWVuIFNoZXR0eSwgYWxzbyBvcGVyYXRlcyBhIGRpZmZlcmVudCBzZXQgb2YgaG90ZWxzIGluIHRoYXQgcmVnaW9uLg0KMTk5NTpbVUtdIENhbWlsbGEgaXMgUXVlZW4gb2YgdGhlIFVuaXRlZCBLaW5nZG9tIGFuZCAxNCBvdGhlciBDb21tb253ZWFsdGggcmVhbG1zIGFzIHRoZSB3aWZlIG9mIEtpbmcgQ2hhcmxlcyBJSUkuIENhbWlsbGEgd2FzIHJhaXNlZCBpbiBFYXN0IFN1c3NleCBhbmQgU291dGggS2Vuc2luZ3RvbiBpbiBFbmdsYW5kIGFuZCBlZHVjYXRlZCBpbiBFbmdsYW5kLCBTd2l0emVybGFuZCBhbmQgRnJhbmNlLiBJbiAxOTczLCBzaGUgbWFycmllZCBCcml0aXNoIEFybXkgb2ZmaWNlciBBbmRyZXcgUGFya2VyIEJvd2xlczsgdGhleSBkaXZvcmNlZCBpbiAxOTk1Lg0KDQoxOTk2OltHZW9Qb2xpdGljc11bQnVzaW5lc3NdIE1vbmdvbGlhIHdhcyBncmFudGVkIG9ic2VydmVyIHN0YXR1cyB0byBUUkFDRUNBLg0KMTk5NiAoNyBBdWd1c3QpOltSZXNlYXJjaF1bU3BhY2VdIE5BU0EgYW5ub3VuY2VkIGZvc3NpbGl6ZWQgZXZpZGVuY2Ugb2YgYW5jaWVudCBsaWZlIGluIG1ldGVvcml0ZSBBTEggODQwMDEgZnJvbSBNYXJzLg0KMTk5NiAoT2N0IDI3KTpbUmVzZWFyY2hdW1NwYWNlXSBnZW5ldGljaXN0cyBzaG93ZWQgZXZpZGVuY2UgdGhhdCBtYW55IGdlbmVzIGFyZSBtdWNoIG9sZGVyIHRoYW4gdGhlIGZvc3NpbCByZWNvcmQgd291bGQgaW5kaWNhdGUuIFN1YnNlcXVlbnQgc3R1ZGllcyBoYXZlIHN0cmVuZ3RoZW5lZCB0aGlzIGZpbmRpbmcuDQoxOTk2OltCdXNpbmVzc11bR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2hlbiB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4gc2lnbmVkIHRoZSBUcmVhdHkgb24gRGVlcGVuaW5nIE1pbGl0YXJ5IFRydXN0IGluIEJvcmRlciBSZWdpb25zIGluIFNoYW5naGFpLiBPbiAyNCBBcHJpbCAxOTk3IHRoZSBzYW1lIGNvdW50cmllcyBzaWduZWQgdGhlIFRyZWF0eSBvbiBSZWR1Y3Rpb24gb2YgTWlsaXRhcnkgRm9yY2VzIGluIEJvcmRlciBSZWdpb25zIGluIGEgbWVldGluZyBpbiBNb3Njb3csIFJ1c3NpYS4gT24gMjAgTWF5IDE5OTcgUnVzc2lhbiBQcmVzaWRlbnQgQm9yaXMgWWVsdHNpbiBhbmQgQ2hpbmVzZSBQcmVzaWRlbnQgSmlhbmcgWmVtaW4gc2lnbmVkIGEgZGVjbGFyYXRpb24gb24gYSAibXVsdGlwb2xhciB3b3JsZCIuDQoxOTk2OiAxOTk2IE1vdW50IEV2ZXJlc3QgRGlzYXN0ZXIsIGluIHdoaWNoIGVpZ2h0IHBlb3BsZSBkaWVkIHdoaWxlIG9uIGFuIGV4cGVkaXRpb24gdG8gc2NhbGUgdGhlIGluZmFtb3VzIHN1bW1pdC4gT25lIG9mIHRoZSBjbGltYmVycyB3aG8gbG9zdCBoaXMgbGlmZSB3YXMgQW5keSBIYXJyaXMsIHBsYXllZCBpbiBFdmVyZXN0IGJ5IE1hcnRpbiBIZW5kZXJzb24uIEhhcnJpcyB3YXMgb25lIG9mIHRoZSBndWlkZXMgZm9yIHRoZSBBZHZlbnR1cmUgQ29uc3VsdGFudHMsIGFsb25nIHdpdGggUm9iIEhhbGwgYW5kIE1pa2UgR3Jvb20uIEluIHRoZSBmaWxtLCBoZSBhcHBlYXJzIHRvIGRpZSB3aGlsZSB3aXRoIEhhbGwsIGZhbGxpbmcgb2ZmIGEgY2xpZmYgYWZ0ZXIgYSBoYWxsdWNpbmF0aW9uLiBCdXQgUm9iIEhhbGwgbmV2ZXIgcmVwb3J0ZWQgdGhpcywgYW5kIHNpbmNlIGhlIGRpZWQgc2hvcnRseSB0aGVyZWFmdGVyLCB0aGVyZSBpcyBubyB3YXkgdG8gY29uZmlybSB0aGUgY2lyY3Vtc3RhbmNlcyBzdXJyb3VuZGluZyBIYXJyaXMnIGRlYXRoLg0KMTk5NjpbQ29tcHV0aW5nXVtRdWFudHVtXSAgTG92IEdyb3ZlciBkZXZpc2VkIGFuIGFsZ29yaXRobSAoR3JvdmVyJ3MgYWxnb3JpdGhtKSB0aGF0IGNvdWxkIHNlYXJjaCBhbiB1bnNvcnRlZCBkYXRhYmFzZSBpbiBzcXVhcmUgcm9vdCB0aW1lIG9uIGEgcXVhbnR1bSBjb21wdXRlciwgd2hpY2ggd291bGQgb3V0cGVyZm9ybSBhbnkgY2xhc3NpY2FsIGFsZ29yaXRobS4NCjE5OTY6W1VTXSBCYXJhY2sgT2JhbWEgd2FzIGVsZWN0ZWQgdG8gdGhlIElsbGlub2lzIFNlbmF0ZSwgc3VjY2VlZGluZyBEZW1vY3JhdGljIFN0YXRlIFNlbmF0b3IgQWxpY2UgUGFsbWVyIGZyb20gSWxsaW5vaXMncyAxM3RoIERpc3RyaWN0LCB3aGljaCwgYXQgdGhhdCB0aW1lLCBzcGFubmVkIENoaWNhZ28gU291dGggU2lkZSBuZWlnaGJvcmhvb2RzIGZyb20gSHlkZSBQYXJr4oCTS2Vud29vZCBzb3V0aCB0byBTb3V0aCBTaG9yZSBhbmQgd2VzdCB0byBDaGljYWdvIExhd24uDQoxOTk2OltVS10gQ2hhcmxlcyBJSUkgYW5kIERpYW5hIGdldHMgZGl2b3JjZWQuDQoxOTk2IChKYW4gMjUpOltCb29rXSBQZXRlciBMeW5jaCAmIEpvaG4gUm90aGNoaWxkJ3MgTGVhcm4gdG8gRWFybjogQSBCZWdpbm5lcidzIEd1aWRlIHRvIHRoZSBCYXNpY3Mgb2YgSW52ZXN0aW5nIGFuZCBCdXNpbmVzcy4NCjE5OTYgKEphbik6W0NyaW1lXVtJbmRpYV0gQW5lZXMgSWJyYWhpbSBhcnJlc3RlZCBpbiBCYWhyYWluLCBzaGlmdGVkIHRvIER1YmFpIGFsbGVnZWRseSBvbiB0aGUgaW50ZXJ2ZW50aW9uIG9mIHNvbWUgb2YgRHViYWkncyBydWxpbmcgbm90YWJsZXMsIGFuZCB3YXMgdGhlbiBhbGxvd2VkIHRvIHNsaXAgYXdheSB0byBLYXJhY2hpLCBQYWtpc3Rhbi4NCjE5OTY6IE5hdGlvbmFsIEFlcm9zcGFjZSBMYWJvcmF0b3JpZXMsIEluZGlhIGluZGlnZW5vdXNseSBidWlsdCBGTE9TT0xWRVIsIEluZGlhJ3MgZmlyc3Qgc3VwZXJjb21wdXRlci4gSXQgd2FzIHJlcGxpY2F0ZWQgYW5kIGluc3RhbGxlZCBhdCBJQ0FEIE1vc2NvdyBpbiAxOTkxIHVuZGVyIFJ1c3NpYW4gY29sbGFib3JhdGlvbi4NCjE5OTY6IEluZGlhL1Bha2lzdGFuL1NyaSBMYW5rYSAxOTk2Lg0KMTk5NjpbQ29tcHV0aW5nXVt3d3ddIE1hcmlvIDY0IGdhbWUgcmFuIDEwMCBtaWxsaW9uIGNhbGN1bGF0aW9ucyBwZXIgc2Vjb25kLCA1NDAgbWlsbGlvbiAoSGFsZi1MaWZlKSBpbiAxOTk4LCBNaW5lY3JhZnQgKDIwMTEpIHJ1bm5pbmcgMTAwIGJpbGxpb24gY2FsY3VsYXRpb25zLCBDeWJlcnB1bmsgMjA3NyAobW9zdCByZWFsaXN0aWMgdmlkZW8gZ2FtZSAyMDI0KSwgeW91IG5lZWQgYSBncmFwaGljcyBjYXJkIHRoYXQgY2FuIHBlcmZvcm0gYXJvdW5kIDM2IHRyaWxsaW9uIGNhbGMgcGVyIHNlY29uZC4NCjE5OTY6IFByb2YgTWFsY29sbSBIZWF0aC4gUHJvZmVzc29yIG9mIEdyZWVrIExhbmd1YWdlIGFuZCBMaXRlcmF0dXJlIEBsZWVkcy5hYy51aywgdHJhbnNsYXRlZCBBcmlzdG90bGUncyBQb2V0aWNzLg0KMTk5NjogVGhlIDU2SyBtb2RlbSB3YXMgaW52ZW50ZWQgYnkgRHIuIEJyZW50IFRvd25zaGVuZA0KMTk5NiAoRmViIDEzKTogTmVwYWxlc2UgQ2l2aWwgV2FyIHN0YXJ0ZWQuIFRoZSBNYW9pc3QgUmViZWxsaW9uIChsYWJlbGxlZCB0aGUgUGVvcGxlJ3MgV2FyIGJ5IHRoZW4gQ1BOKE1hb2lzdCkpIHdhcyBhbiBhcm1lZCBjb25mbGljdCBhZ2FpbnN0IEdvdmVybm1lbnQgb2YgTmVwYWwgKHRoZW4gSE1HIG9mIE5lcGFsKSBmb3VnaHQgZnJvbSAxOTk2IHRvIDIwMDYuIFRoZSByZWJlbGxpb24gd2FzIGxhdW5jaGVkIGJ5IHRoZSBDb21tdW5pc3QgUGFydHkgb2YgTmVwYWwgKE1hb2lzdCkgb24gMTMgRmVicnVhcnkgMTk5NiB3aXRoIHRoZSBtYWluIGFpbSBvZiBvdmVydGhyb3dpbmcgdGhlIE5lcGFsZXNlIG1vbmFyY2h5IGFuZCBlc3RhYmxpc2hpbmcgYSAnUGVvcGxlJ3MgUmVwdWJsaWMnLiBJdCBlbmRlZCB3aXRoIHRoZSBDb21wcmVoZW5zaXZlIFBlYWNlIEFjY29yZCBzaWduZWQgb24gMjEgTm92ZW1iZXIgMjAwNi4NCjE5OTYgKE1hciAxKTogW0dlb1BvbGl0aWNzXSBUaGUgQXNpYeKAk0V1cm9wZSBNZWV0aW5nIChBU0VNKSBpcyBhbiBBc2lhbuKAk0V1cm9wZWFuIHBvbGl0aWNhbCBkaWFsb2d1ZSBmb3J1bSB0byBlbmhhbmNlIHJlbGF0aW9ucyBhbmQgdmFyaW91cyBmb3JtcyBvZiBjb29wZXJhdGlvbiBiZXR3ZWVuIGl0cyBwYXJ0bmVycy4gSXQgd2FzIG9mZmljaWFsbHkgZXN0YWJsaXNoZWQgYXQgdGhlIDFzdCBBU0VNIFN1bW1pdCAoQVNFTTEpIGluIEJhbmdrb2ssIFRoYWlsYW5kLCBieSB0aGUgdGhlbiAxNSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aGUgRXVyb3BlYW4gQ29tbWlzc2lvbiwgdGhlIHRoZW4gNyBNZW1iZXIgU3RhdGVzIG9mIHRoZSBBc3NvY2lhdGlvbiBvZiBTb3V0aGVhc3QgQXNpYW4gTmF0aW9ucyAoQVNFQU4pLCBhbmQgdGhlIGluZGl2aWR1YWwgY291bnRyaWVzIG9mIENoaW5hLCBKYXBhbiwgYW5kIFNvdXRoIEtvcmVhLiBBIHNlcmllcyBvZiBlbmxhcmdlbWVudHMgc2F3IGFkZGl0aW9uYWwgRVUgTWVtYmVyIFN0YXRlcyBqb2luIGFzIHdlbGwgYXMgSW5kaWEsIE1vbmdvbGlhLCBQYWtpc3RhbiBhbmQgdGhlIEFTRUFOIFNlY3JldGFyaWF0IGluIDIwMDgsIEF1c3RyYWxpYSwgTmV3IFplYWxhbmQgYW5kIFJ1c3NpYSBpbiAyMDEwLCBCYW5nbGFkZXNoLCBOb3J3YXksIGFuZCBTd2l0emVybGFuZCBpbiAyMDEyLCBhcyB3ZWxsIGFzIENyb2F0aWEsIGFuZCBLYXpha2hzdGFuIGluIDIwMTQuDQoxOTk2IChBcHIgMjYpOiBbR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2l0aCB0aGUgc2lnbmluZyBvZiB0aGUgVHJlYXR5IG9uIERlZXBlbmluZyBNaWxpdGFyeSBUcnVzdCBpbiBCb3JkZXIgUmVnaW9ucyBpbiBTaGFuZ2hhaSBieSB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4uIExhdGVyIG9uIEp1biAxNSwgMjAwMSBpdCBnb3QgcmVuYW1lZCBhcyBTaGFuZ2hhaSBDb29wZXJhdGlvbiBPcmdhbmlzYXRpb24gKFNDTykgb3IgU2hhbmdoYWkgUGFjdCANCjE5OTYgKE1heSAxNik6IEF0YWwgQmloYXJpIFZhanBheWVlIGJlY29tZXMgUE0gb2YgSW5kaWEgZm9yIHRoZSB2ZXJ5IGZpcnN0IHRpbWUgZm9yIDE2IGRheXMuDQoxOTk2IChKdW4gMSk6IEF0YWwgQmloYXJpIFZhanBheWVlIHJlc2lnbnMuIEhEIERldmUgR293ZGEgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NiAoQXVnIDE0KTpbcmVzZWFyY2hdW2V4dHJlbWVdIEthcmVuIEVsaXphYmV0aCBXZXR0ZXJoYWhuIChPY3RvYmVyIDE2LCAxOTQ4IOKAkyBKdW5lIDgsIDE5OTcpLCBhbHNvIGtub3duIGFzIEthcmVuIFdldHRlcmhhaG4gSmVubmV0dGUsIHdhcyBhbiBBbWVyaWNhbiBwcm9mZXNzb3Igb2YgY2hlbWlzdHJ5IGF0IERhcnRtb3V0aCBDb2xsZWdlLCBOZXcgSGFtcHNoaXJlLCB3aG8gc3BlY2lhbGl6ZWQgaW4gdG94aWMgbWV0YWwgZXhwb3N1cmUuIFNoZSBkaWVkIG9mIG1lcmN1cnkgcG9pc29uaW5nIGF0IHRoZSBhZ2Ugb2YgNDggZHVlIHRvIGFjY2lkZW50YWwgZXhwb3N1cmUgdG8gdGhlIGV4dHJlbWVseSB0b3hpYyBvcmdhbmljIG1lcmN1cnkgY29tcG91bmQgZGltZXRoeWxtZXJjdXJ5IChIZyhDSDMpMikuIFByb3RlY3RpdmUgZ2xvdmVzIGluIHVzZSBhdCB0aGUgdGltZSBvZiB0aGUgaW5jaWRlbnQgcHJvdmlkZWQgaW5zdWZmaWNpZW50IHByb3RlY3Rpb24sIGFuZCBleHBvc3VyZSB0byBvbmx5IGEgc2luZ2xlIGRyb3Agb3IgdHdvIG9mIHRoZSBkaW1ldGh5bG1lcmN1cnkgYWJzb3JiZWQgdGhyb3VnaCB0aGUgZ2xvdmVzIHByb3ZlZCB0byBiZSBmYXRhbCBhZnRlciBsZXNzIHRoYW4gYSB5ZWFyLiBUZXN0cyBsYXRlciByZXZlYWxlZCB0aGF0IGRpbWV0aHlsbWVyY3VyeSBjYW4sIGluIGZhY3QsIHJhcGlkbHkgcGVybWVhdGUgc2V2ZXJhbCBraW5kcyBvZiBsYXRleCBnbG92ZXMgYW5kIGVudGVyIHRoZSBza2luIHdpdGhpbiBhYm91dCAxNSBzZWNvbmRzLiBIZXIgZXhwb3N1cmUgd2FzIGxhdGVyIGNvbmZpcm1lZCBieSBoYWlyIGFuYWx5c2lzLCB3aGljaCBzaG93ZWQgYSBkcmFtYXRpYyBqdW1wIGluIG1lcmN1cnkgbGV2ZWxzIDE3IGRheXMgYWZ0ZXIgdGhlIGluaXRpYWwgYWNjaWRlbnQsIHBlYWtpbmcgYXQgMzkgZGF5cywgZm9sbG93ZWQgYnkgYSBncmFkdWFsIGRlY2xpbmUuIEFwcHJveGltYXRlbHkgdGhyZWUgbW9udGhzIGFmdGVyIHRoZSBpbml0aWFsIGFjY2lkZW50IFdldHRlcmhhaG4gYmVnYW4gZXhwZXJpZW5jaW5nIGJyaWVmIGVwaXNvZGVzIG9mIGFiZG9taW5hbCBkaXNjb21mb3J0IGFuZCBub3RpY2VkIHNpZ25pZmljYW50IHdlaWdodCBsb3NzLiBUaGUgbW9yZSBkaXN0aW5jdGl2ZSBuZXVyb2xvZ2ljYWwgc3ltcHRvbXMgb2YgbWVyY3VyeSBwb2lzb25pbmcsIGluY2x1ZGluZyBsb3NzIG9mIGJhbGFuY2UgYW5kIHNsdXJyZWQgc3BlZWNoLCBhcHBlYXJlZCBpbiBKYW51YXJ5IDE5OTcsIGZpdmUgbW9udGhzIGFmdGVyIHRoZSBhY2NpZGVudC4gSGVyIGJsb29kIGFuZCB1cmluYXJ5IG1lcmN1cnkgY29udGVudCB3ZXJlIG1lYXN1cmVkIGF0IDQsMDAwIM68Zy9MIGFuZCAyMzQgzrxnL0wsIHJlc3BlY3RpdmVseeKAlGJvdGggbWFueSB0aW1lcyB0aGVpciByZXNwZWN0aXZlIHRveGljIHRocmVzaG9sZHMgb2YgMjAwIM68Zy9MIGFuZCA1MCDOvGcvTCAoYmxvb2QgYW5kIHVyaW5lIHJlZmVyZW5jZSByYW5nZXMgYXJlIDEgdG8gOCDOvGcvTCBhbmQgMSB0byA1IM68Zy9MKS4NCjE5OTYgKERlYyA0IDA2OjU4OjA3IFVUQyk6W1NwYWNlXVtNYXJzXVtFYXJ0aF0gTGF1bmNoIG9mIE1hcnMgUGF0aGZpbmRlciBvbiBEZWx0YSBJSSA3OTI1ICgjRDI0MCkNCnJvY2tldCBmcm9tIENhcGUgQ2FuYXZlcmFsIFNMQy0xNy4gVG8gcHJvdmUgdGhhdCB0aGUgZGV2ZWxvcG1lbnQgb2YgImZhc3RlciwgYmV0dGVyIGFuZCBjaGVhcGVyIiBzcGFjZWNyYWZ0IHdhcyBwb3NzaWJsZSAod2l0aCB0aHJlZSB5ZWFycyBmb3IgZGV2ZWxvcG1lbnQgYW5kIGEgY29zdCB1bmRlciAkMTUwIG1pbGxpb24gZm9yIHRoZSBsYW5kZXIsIGFuZCAkMjUgbWlsbGlvbiBmb3IgdGhlIHJvdmVyKS4gVG8gc2hvdyB0aGF0IGl0IHdhcyBwb3NzaWJsZSB0byBzZW5kIGEgbG9hZCBvZiBzY2llbnRpZmljIGluc3RydW1lbnRzIHRvIGFub3RoZXIgcGxhbmV0IHdpdGggYSBzaW1wbGUgc3lzdGVtIGFuZCBhdCBvbmUtZmlmdGVlbnRoIHRoZSBjb3N0IG9mIGEgVmlraW5nIG1pc3Npb24uIChGb3IgY29tcGFyaXNvbiwgdGhlIFZpa2luZyBtaXNzaW9ucyBjb3N0ICQ5MzUgbWlsbGlvbiBpbiAxOTc0IG9yICQzLjUgYmlsbGlvbiBpbiAxOTk3IGRvbGxhcnMuKS4gVG8gZGVtb25zdHJhdGUgTkFTQSdzIGNvbW1pdG1lbnQgdG8gbG93LWNvc3QgcGxhbmV0YXJ5IGV4cGxvcmF0aW9uIGJ5IGZpbmlzaGluZyB0aGUgbWlzc2lvbiB3aXRoIGEgdG90YWwgZXhwZW5kaXR1cmUgb2YgJDI4MCBtaWxsaW9uLCBpbmNsdWRpbmcgdGhlIGxhdW5jaCB2ZWhpY2xlIGFuZCBtaXNzaW9uIG9wZXJhdGlvbnMuDQoxOTk2OiBhIHJhaWQgb24gdGhlIEFuaW1hbCBIdXNiYW5kcnkgZGVwYXJ0bWVudOKAmXMgb2ZmaWNlcyBpbiBDaGFpYmFzYSwgQmloYXIgdW5mb2xkZWQgdGhlIFJzLjk1MCBjcm9yZSBmb2RkZXIgc2NhbSwgaW4gd2hpY2ggdGhlIEJpaGFyIGNoaWVmIG1pbmlzdGVyIExhbHUgUHJhc2FkIFlhZGF2IGNhdGNoIHVwIGluIGEgbGlmZWxvbmcgdHVzc2xlIHdpdGggdGhlIENCSS4NCjE5OTY6W0Jvb2tdW0FkdmVudHVyZV0gSm9uIEtyYWthdWVyJ3MgSW50byB0aGUgV2lsZC4NCjE5OTY6W0NvbXB1dGluZ10gVGhlIFZpZGVvTEFOIHNvZnR3YXJlIG9yaWdpbmF0ZWQgYXMgYSBGcmVuY2ggYWNhZGVtaWMgcHJvamVjdC4gVkxDIHVzZWQgdG8gc3RhbmQgZm9yICJWaWRlb0xBTiBDbGllbnQiIHdoZW4gVkxDIHdhcyBhIGNsaWVudCBvZiB0aGUgVmlkZW9MQU4gcHJvamVjdCwgb2ZmaWNpYWxseSByZWxlYXNlZCB1bmRlciBHTlUgR1BMIG9uIDIwMDEgKEZlYiAxKS4NCjE5OTY6W01lbWVdIERhbmNpbmcgQmFieSBTY3JlZW5zYXZlcg0KMTk5NjpbU3BhY2VYXSBUaGUgZW50aXJlIHByb2Nlc3MgZm9yIHRoZSBKYW1lcyBXZWJiIFNwYWNlIFRlbGVzY29wZSAoSldTVCkgZnJvbSBpbml0aWFsIGNvbmNlcHQgdG8gbGF1bmNoIHNwYW5uZWQgYXBwcm94aW1hdGVseSAyNSB5ZWFycywgd2l0aCBpbml0aWFsIGRlc2lnbnMgYmVnaW5uaW5nIGluIDE5OTYgYW5kIHRoZSB0ZWxlc2NvcGUgbGF1bmNoaW5nIGluIDIwMjEsIGJ1dCBhIHNpZ25pZmljYW50IHBvcnRpb24gb2YgdGhpcyB3YXMgc3BlbnQgaW4gZGVzaWduLCB0ZXN0aW5nLCBhbmQgb3ZlcmNvbWluZyBtYWpvciByZWRlc2lnbnMgYW5kIGRlbGF5cywgbm90IGp1c3QgYXNzZW1ibHkuIA0KMTk5NiAoRmViIDI4KTpbRGVsaGldIEluZGlyYXB1cmFtLCBHaGF6aWFiYWQgd2FzIGVzdGQgd2hlbiBpdHMgZm91bmRhdGlvbiBzdG9uZSAoS2FsYSBQYXRoYXIpIHdhcyBpbmF1Z3VyYXRlZCBieSBTaCBNb3RpbGFsIFZvcmEsIHRoZW4gR292ZXJub3Igb2YgVVAuICgyMDIxKSBJJ3B1cmFtIEV4dG4gdG8gYmUgYnVpbHQgb24gMTIgYWNyZXMgb25seSwgY29uY2VpdmVkIGluIDIwMDQuDQoxOTk2OltCb29rXVtNaWxpdGFyeV1bQ3VsdHVyZV1bRVVdW1VTQV0gR2VvcmdlIFIuUi4gTWFydGluIGlzIHRoZSBBbWVyaWNhbiBhdXRob3Igb2YgdGhlIGVwaWMgZmFudGFzeSBib29rIHNlcmllcyBBIFNvbmcgb2YgSWNlIGFuZCBGaXJlLCB3aGljaCBiZWdhbiB3aXRoIEEgR2FtZSBvZiBUaHJvbmVzICgxOTk2KSBhbmQgc2VydmVkIGFzIHRoZSBiYXNpcyBmb3IgSEJPJ3MgbWFzc2l2ZWx5IHBvcHVsYXIgR2FtZSBvZiBUaHJvbmVzIFRWIHNlcmllcy4gQSBTb25nIG9mIEljZSBhbmQgRmlyZSBpcyBhIHNlcmllcyBvZiBoaWdoIGZhbnRhc3kgbm92ZWxzIGJ5IHRoZSBBbWVyaWNhbiBhdXRob3IgR2VvcmdlIFIuIFIuIE1hcnRpbi4gTWFydGluIGJlZ2FuIHdyaXRpbmcgdGhlIGZpcnN0IHZvbHVtZSwgQSBHYW1lIG9mIFRocm9uZXMsIGluIDE5OTEsIGFuZCBwdWJsaXNoZWQgaXQgaW4gMTk5Ni4gTWFydGluLCB3aG8gb3JpZ2luYWxseSBlbnZpc2lvbmVkIHRoZSBzZXJpZXMgYXMgYSB0cmlsb2d5LCBoYXMgcmVsZWFzZWQgZml2ZSBvdXQgb2Ygc2V2ZW4gcGxhbm5lZCB2b2x1bWVzLiANCg0KW0dlbmVyYXRpb25dIE1pbGxlbm5pYWwgZ2VuZXJhdGlvbiAoMTk4MeKAkzE5OTYpIGVuZHM7IGxhc3RlZCBmb3IgMTUgeWVhcnMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICA1MCB5ZWFycyBvZiBJbmRlcGVuZGVudCBJbmRpYSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSANCg0KW0dlbmVyYXRpb25dIEdlbiBaICgxOTk34oCTMjAxMikgc3RhcnRzOyBhbmQgZXhpc3RzIGZvciBuZXh0IDE1IHllYXJzLg0KDQoxOTk3OltXaG9dW1Jlc2VhcmNoXVtDb21wdXRpbmddW1RlY2hdW0N1bHR1cmVdIFZMQyBNZWRpYSBQbGF5ZXIgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBzdHVkZW50cyBhdCB0aGUgRnJlbmNoIGVuZ2luZWVyaW5nIHNjaG9vbCDDiWNvbGUgQ2VudHJhbGUgUGFyaXMgaW4gMTk5Ni4gV2hpbGUgaXQgc3RhcnRlZCBhcyBhbiBhY2FkZW1pYyBwcm9qZWN0IChWaWRlb0xBTikgdG8gc3RyZWFtIHZpZGVvIG92ZXIgYSBjYW1wdXMgbmV0d29yaywgaXRzIGRldmVsb3BtZW50IGFuZCBtb2Rlcm5pemF0aW9uIHdlcmUgbGF0ZXIgbGVkIGJ5IEplYW4tQmFwdGlzdGUgS2VtcGYuIA0KMTk5NzpbUmVzZWFyY2hdW1NwYWNlXSAyOSBKdWx5IDE5OTc6IGEgTkFTQSBzY2llbnRpc3QgYW5ub3VuY2VkIGV2aWRlbmNlIG9mIGZvc3NpbGl6ZWQgbWljcm9zY29waWMgbGlmZSBmb3JtcyBpbiBhIG1ldGVvcml0ZSBub3QgZnJvbSBhbnkga25vd24gcGxhbmV0Lg0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgR3JvdXAgb2YgRWlnaHQgKEc4KSB3YXMgYW4gaW50ZXJnb3Zlcm5tZW50YWwgcG9saXRpY2FsIGZvcnVtIGZyb20gMTk5NyB0byAyMDE0LCBmb3JtZWQgYnkgaW5jb3Jwb3JhdGluZyBSdXNzaWEgaW50byB0aGUgRzcuIFRoZSBHOCBiZWNhbWUgdGhlIEc3IGFnYWluIGFmdGVyIFJ1c3NpYSB3YXMgZXhwZWxsZWQgaW4gMjAxNCBhZnRlciB0aGUgUnVzc2lhbiBhbm5leGF0aW9uIG9mIENyaW1lYS4gRm91bmRlZDogMTk5NywgRGVudmVyLCBDb2xvcmFkbywgVW5pdGVkIFN0YXRlcw0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBGb3VuZGVkOiA2IEp1bmUgMTk5NywgVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiAoQklNU1RFQykgaXMgYW4gaW50ZXJuYXRpb25hbCBvcmdhbml6YXRpb24gb2Ygc2V2ZW4gU291dGggQXNpYW4gYW5kIFNvdXRoZWFzdCBBc2lhbiBuYXRpb25zLCBob3VzaW5nIDEuNzMgYmlsbGlvbiBwZW9wbGUgYW5kIGhhdmluZyBhIGNvbWJpbmVkIGdyb3NzIGRvbWVzdGljIHByb2R1Y3Qgb2YgVVMkNS4yIHRyaWxsaW9uLg0KMTk5NzpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gYnVpbHQgdGhlIGZpcnN0IGV4cGVyaW1lbnRhbCBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCBjb3VsZCBtYW5pcHVsYXRlIDcgcXViaXRzIHVzaW5nIG51Y2xlYXIgbWFnbmV0aWMgcmVzb25hbmNlIChOTVIpIHRlY2huaXF1ZXMuDQoxOTk3IChKdWwgNCk6W1NwYWNlXVtNYXJzXSBUaGUgTWFycyBQYXRoZmluZGVyIGVuZHVyZWQgYSAzMC1zZWNvbmQgY29tbXVuaWNhdGlvbnMgYmxhY2tvdXQgYXMgaXQgZW50ZXJlZCBNYXJzJyBhdG1vc3BoZXJlLiBJdCBsYW5kZWQgYXQgQXJlcyBWYWxsaXMsIENocnlzZSBQbGFuaXRpYSwgTWFycyAxOcKwN+KAsjQ44oCzTiAzM8KwMTPigLIxMuKAs1cuIE1hcnMgUGF0aGZpbmRlciAoTUVTVVIgUGF0aGZpbmRlcikgaXMgYW4gQW1lcmljYW4gcm9ib3RpYyBzcGFjZWNyYWZ0IHRoYXQgbGFuZGVkIGEgYmFzZSBzdGF0aW9uIHdpdGggYSByb3ZpbmcgcHJvYmUgb24gTWFycyBpbiAxOTk3LiBJdCBjb25zaXN0ZWQgb2YgYSBsYW5kZXIsIHJlbmFtZWQgdGhlIENhcmwgU2FnYW4gTWVtb3JpYWwgU3RhdGlvbiwgYW5kIGEgbGlnaHR3ZWlnaHQsIDEwLjYga2cgKDIzIGxiKSB3aGVlbGVkIHJvYm90aWMgTWFycyByb3ZlciBuYW1lZCBTb2pvdXJuZXIsIHRoZSBmaXJzdCByb3ZlciB0byBvcGVyYXRlIG91dHNpZGUgdGhlIEVhcnRo4oCTTW9vbiBzeXN0ZW0uDQoxOTk3OltCb29rXSBNaXRjaCBBbGJvbSdzIFR1ZXNkYXlzIHdpdGggTW9ycmllLg0KMTk5NzpbR2FtaW5nXSBHcmFuZCBUaGVmdCBBdXRvIChHVEEpIHJlbGVhc2VkIGJ5IERNQSBEZXNpZ24gKGxhdGVyIFJvY2tzdGFyIE5vcnRoKSBmb3IgUFMxLCBXaW5kb3dzIGFuZCBNUy1ET1M7IEdyYW5kIFRoZWZ0IEF1dG86IFZpY2UgQ2l0eSAoMjAwMik7IEdyYW5kIFRoZWZ0IEF1dG86IFNhbiBBbmRyZWFzICgyMDA0KTsgR3JhbmQgVGhlZnQgQXV0byBJViAoMjAwOCk7IEdyYW5kIFRoZWZ0IEF1dG8gViAoMjAxMyk7IEdyYW5kIFRoZWZ0IEF1dG86IFRoZSBUcmlsb2d5IOKAkyBUaGUgRGVmaW5pdGl2ZSBFZGl0aW9uICgyMDIxKQ0KMTk5NzogVGVra2VuIDMgd2FzIGRlc2lnbmVkIGJ5IEthdHN1aGlybyBIYXJhZGEgKE9zYWthLCBPc2FrYSBQcmVmZWN0dXJlLCBKYXBhbikgb2YgQmFuZGFpIE5hbWNvIEVudGVydGFpbm1lbnQgaGVhZHF1YXJ0ZXJlZCBhdCDFjHRhLCBUb2t5by4NCjE5OTcgKE1hciA2KTogW0dlb1BvbGl0aWNzXSBUaGUgSW5kaWFuIE9jZWFuIFJpbSBBc3NvY2lhdGlvbiwgZm9ybWVybHkga25vd24gYXMgdGhlIEluZGlhbiBPY2VhbiBSaW0gSW5pdGlhdGl2ZSBhbmQgdGhlIEluZGlhbiBPY2VhbiBSaW0gQXNzb2NpYXRpb24gZm9yIFJlZ2lvbmFsIENvb3BlcmF0aW9uLCBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBjb25zaXN0aW5nIG9mIDIzIHN0YXRlcyBib3JkZXJpbmcgdGhlIEluZGlhbiBPY2Vhbi4gVGhlIElPUkEgaXMgYSByZWdpb25hbCBmb3J1bSwgdHJpcGFydGl0ZSBpbiBuYXR1cmUsIGJyaW5naW5nIHRvZ2V0aGVyIHJlcHJlc2VudGF0aXZlcyBvZiBHb3Zlcm5tZW50LCBCdXNpbmVzcyBhbmQgQWNhZGVtaWEsIGZvciBwcm9tb3RpbmcgY28tb3BlcmF0aW9uIGFuZCBjbG9zZXIgaW50ZXJhY3Rpb24gYW1vbmcgdGhlbS4gSXQgaXMgYmFzZWQgb24gdGhlIHByaW5jaXBsZXMgb2YgT3BlbiBSZWdpb25hbGlzbSBmb3Igc3RyZW5ndGhlbmluZyBFY29ub21pYyBDb29wZXJhdGlvbiBwYXJ0aWN1bGFybHkgb24gVHJhZGUgRmFjaWxpdGF0aW9uIGFuZCBJbnZlc3RtZW50LCBQcm9tb3Rpb24gYXMgd2VsbCBhcyBTb2NpYWwgRGV2ZWxvcG1lbnQgb2YgdGhlIHJlZ2lvbi4gVGhlIENvb3JkaW5hdGluZyBTZWNyZXRhcmlhdCBvZiBJT1JBIGlzIGxvY2F0ZWQgYXQgRWJlbmUsIE1hdXJpdGl1cy4NCjE5OTcgKEFwciAyMSk6IEguRC4gRGV2ZSBHb3dkYSByZXNpZ25zLiBJbmRlciBLdW1hciBHdWpyYWwgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NyAoSnVuIDYpOiBbR2VvUG9saXRpY3NdIEJJTVNURUMgZm91bmRlZC4gVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBvZiBzZXZlbiBTb3V0aCBBc2lhbiBhbmQgU291dGhlYXN0IEFzaWFuIG5hdGlvbnMsIGhvdXNpbmcgMS43MyBiaWxsaW9uIHBlb3BsZSBhbmQgaGF2aW5nIGEgY29tYmluZWQgZ3Jvc3MgZG9tZXN0aWMgcHJvZHVjdCBvZiAkMy44IHRyaWxsaW9uLiBUaGUgQklNU1RFQyBtZW1iZXIgc3RhdGVzIOKAkyBCYW5nbGFkZXNoLCBCaHV0YW4sIEluZGlhLCBNeWFubWFyLCBOZXBhbCwgU3JpIExhbmthLCBhbmQgVGhhaWxhbmQg4oCTIGFyZSBhbW9uZyB0aGUgY291bnRyaWVzIGRlcGVuZGVudCBvbiB0aGUgQmF5IG9mIEJlbmdhbC4NCjE5OTcgKEp1biA4KTogRGVzcGl0ZSBhZ2dyZXNzaXZlIGNoZWxhdGlvbiB0aGVyYXB5LCBoZXIgY29uZGl0aW9uIHJhcGlkbHkgZGV0ZXJpb3JhdGVkLiBUaHJlZSB3ZWVrcyBhZnRlciB0aGUgZmlyc3QgbmV1cm9sb2dpY2FsIHN5bXB0b21zIGFwcGVhcmVkLCBXZXR0ZXJoYWhuIGxhcHNlZCBpbnRvIHdoYXQgYXBwZWFyZWQgdG8gYmUgYSB2ZWdldGF0aXZlIHN0YXRlIHB1bmN0dWF0ZWQgYnkgcGVyaW9kcyBvZiBleHRyZW1lIGFnaXRhdGlvbi4gT25lIG9mIGhlciBmb3JtZXIgc3R1ZGVudHMgc2FpZCB0aGF0ICJIZXIgaHVzYmFuZCBzYXcgdGVhcnMgcm9sbGluZyBkb3duIGhlciBmYWNlLiBJIGFza2VkIGlmIHNoZSB3YXMgaW4gcGFpbi4gVGhlIGRvY3RvcnMgc2FpZCBpdCBkaWRuJ3QgYXBwZWFyIHRoYXQgaGVyIGJyYWluIGNvdWxkIGV2ZW4gcmVnaXN0ZXIgcGFpbi4iIFdldHRlcmhhaG4gd2FzIHJlbW92ZWQgZnJvbSBsaWZlIHN1cHBvcnQgYW5kIHByb25vdW5jZWQgZGVhZCBvbiBKdW5lIDgsIDE5OTcsIHRlbiBtb250aHMgYWZ0ZXIgaGVyIGluaXRpYWwgZXhwb3N1cmUuIEluIHJlc3BvbnNlLCB0aGUgT2NjdXBhdGlvbmFsIFNhZmV0eSBhbmQgSGVhbHRoIEFkbWluaXN0cmF0aW9uIHJlY29tbWVuZGVkIHRoYXQgdGhlIHVzZSBvZiBkaW1ldGh5bG1lcmN1cnkgYmUgYXZvaWRlZCB1bmxlc3MgYWJzb2x1dGVseSBuZWNlc3NhcnkgYW5kIG1hbmRhdGVkIHRoZSB1c2Ugb2YgcGxhc3RpYy1sYW1pbmF0ZSBnbG92ZXMgKFNpbHZlclNoaWVsZCkgd2hlbiBoYW5kbGluZyB0aGlzIGNvbXBvdW5kLg0KMTk5NyAoSnVuIDEzKTpbSmFja10gQm9yZGVyDQoxOTk3IChKdW4gMjYpOltCb29rXSAzMllPIEouIEsuIFJvd2xpbmcgcHVibGlzaGVzIGhlciBmaXJzdCBIYXJyeSBQb3R0ZXIgYm9vaywgVGhlIFBoaWxvc29waGVyJ3MgU3RvbmU7IA0KVGhlIENoYW1iZXIgb2YgU2VjcmV0cyAoMiBKdWx5IDE5OTgpLA0KVGhlIFByaXNvbmVyIG9mIEF6a2FiYW4gKDggSnVseSAxOTk5KSwNClRoZSBHb2JsZXQgb2YgRmlyZSAoOCBKdWx5IDIwMDApLA0KVGhlIE9yZGVyIG9mIHRoZSBQaG9lbml4ICgsIDI3IEp1bmUgMjAwMyksDQpUaGUgSGFsZi1CbG9vZCBQcmluY2UgKDE2IEp1bHkgMjAwNSksDQpUaGUgRGVhdGhseSBIYWxsb3dzICgyMSBKdWx5IDIwMDcpDQoxOTk3IChBdWcgMjUpOltTcGFjZV0gQWR2YW5jZWQgQ29tcG9zaXRpb24gRXhwbG9yZXIgaXMgYSBOQVNBIEV4cGxvcmVyIHByb2dyYW0gc2F0ZWxsaXRlIGFuZCBzcGFjZSBleHBsb3JhdGlvbiBtaXNzaW9uIHRvIHN0dWR5IG1hdHRlciBjb21wcmlzaW5nIGVuZXJnZXRpYyBwYXJ0aWNsZXMgZnJvbSB0aGUgc29sYXIgd2luZCwgdGhlIGludGVycGxhbmV0YXJ5IG1lZGl1bSwgYW5kIG90aGVyIHNvdXJjZXMuDQoxOTk3IChTZXAgMTMpOiB0aGUgaW50cm9kdWN0b3J5IGVwaXNvZGUgb2YgU2hha3RpbWFuIHdhcyBhaXJlZCBvbiBEb29yZGFyc2hhbiAoSW5kaWEncyBuYXRpb25hbCB0ZWxldmlzaW9uIG5ldHdvcmspIGZyb20gMjcgU2VwdGVtYmVyIDE5OTcgdG8gMjcgTWFyY2ggMjAwNSwgb24gU3VuZGF5cyBhdCAxMiBub29uIElTVC4gVGhlIHRlbGVjYXN0IHNsb3QsIGhvd2V2ZXIgd2FzIHNoaWZ0ZWQgdG8gOTozMCBhLm0uIGZvciB0aGUgbGFzdCBlcGlzb2Rlcy4gDQoxOTk3IChTZXAgMjcgMTA6MjMgVVRDKTpbU3BhY2VdW01hcnNdIExhc3QgY29udGFjdCB3aXRoIE1hcnMgUGF0aGZpbmRlci4gTWlzc2lvbiBkdXJhdGlvbiAoTGF1bmNoIHRvIGxhc3QgY29udGFjdCk6IDkgbW9udGhzLCAyMyBkYXlzLg0KMTk5NyAoT2N0IDMxKTpbQm9va10gRG9uYWxkIFRydW1wJ3MgVHJ1bXA6IFRoZSBBcnQgb2YgdGhlIENvbWViYWNrOyBUaGUgQW1lcmljYSBXZSBEZXNlcnZlICgyMDAwKTsgVHJ1bXA6IFRoaW5rIExpa2UgYSBCaWxsaW9uYWlyZTogRXZlcnl0aGluZyBZb3UgTmVlZCB0byBLbm93IEFib3V0IFN1Y2Nlc3MsIFJlYWwgRXN0YXRlLCBhbmQgTGlmZSAoMjAwNCk7IFdoeSBXZSBXYW50IFlvdSB0byBCZSBSaWNoICgyMDA2KTsgVHJ1bXA6IFRoZSBCZXN0IFJlYWwgRXN0YXRlIEFkdmljZSBJIEV2ZXIgUmVjZWl2ZWQ6IDEwMCBUb3AgRXhwZXJ0cyBTaGFyZSBUaGVpciBTdHJhdGVnaWVzICgyMDA2LCBOb3YgMSk7IFRoaW5rIEJJRyBhbmQgS2ljayBBc3MgaW4gQnVzaW5lc3MgYW5kIExpZmUgKDIwMDcpOyBUcnVtcCBOZXZlciBHaXZlIFVwOiBIb3cgSSBUdXJuZWQgTXkgQmlnZ2VzdCBDaGFsbGVuZ2VzIGludG8gU3VjY2VzcyAoMjAwOCk7IFRpbWUgdG8gR2V0IFRvdWdoOiBNYWtpbmcgQW1lcmljYSAjMSBBZ2FpbiAoMjAxMSk7IENyaXBwbGVkIEFtZXJpY2E6IEhvdyB0byBNYWtlIEFtZXJpY2EgR3JlYXQgQWdhaW4gKDIwMTUpDQoxOTk3OiBBcnVuZGhhdGkgUm95IGJlY2FtZSB0aGUgZmlyc3QgSW5kaWFuIHRvIHdpbiBNYW4gQm9va2VyIFByaXplIGZvciBoZXIgbm92ZWwgJ1RoZSBHb2Qgb2YgU21hbGwgVGhpbmdzJy4NCjE5OTc6IElJVC1KRUUgd2FzIGNvbmR1Y3RlZCB0d2ljZSBhZnRlciB0aGUgUS1QYXBlciB3YXMgbGVha2VkLg0KMTk5NzogTkFTQSBlc3RpbWF0ZWQgdGhlcmUgd2VyZSBhcHByb3guIDIsNjQ1IGFydGlmaWNpYWwgc2F0ZWxsaXRlIHBheWxvYWRzIG9yYml0dGluZyB0aGUgZWFydGggYW5kIDYsMjE2IHBpZWNlcyBvZiBzcGFjZSBkZWJyaXMgYXMgdHJhY2tlZCBieSB0aGUgR1NGQy4gT3ZlciAxNiwyOTEgcHJldmlvdXNseSBsYXVuY2hlZCBvYmplY3RzIGhhdmUgZGVjYXllZCBpbnRvIHRoZSBFYXJ0aCdzIGF0bW9zcGhlcmUuDQoxOTk3OiBCSEMgRmluYW5jaWFsLCBJbmMuIG9mIFBlbm5zeWx2YW5pYSBtZXJnZWQgaW50byBGSVNWIHRvIGZvcm0gU2VjdXJlZCBUcmFuc2FjdGlvbiBQcm9jZXNzaW5nIFNlcnZpY2VzLg0KMTk5NzpbQm9va10gVGhlIEZvdXIgQWdyZWVtZW50czogQSBQcmFjdGljYWwgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSBpcyBhIHNlbGYtaGVscCBib29rIGJ5IGJlc3RzZWxsaW5nIGF1dGhvciBEb24gTWlndWVsIFJ1aXogd2l0aCBKYW5ldCBNaWxsczsgVGhlIE1hc3Rlcnkgb2YgTG92ZTogQSBQcmFjdGljYWwgR3VpZGUgdG8gdGhlIEFydCBvZiBSZWxhdGlvbnNoaXAgLS1Ub2x0ZWMgV2lzZG9tIEJvb2sgKDE5OTksIE1hciAzMCk7IFRoZSBWb2ljZSBvZiBLbm93bGVkZ2U6IEEgUHJhY3RpY2FsIEd1aWRlIHRvIElubmVyIFBlYWNlICgyMDA0LCBNYXIgMTApOyBUaGUgRmlmdGggQWdyZWVtZW50OiBBIFByYWN0aWNhbCBHdWlkZSB0byBTZWxmLU1hc3RlcnkgKDIwMDkpOyBUaGUgQ2lyY2xlIG9mIEZpcmU6IEluc3BpcmF0aW9uIGFuZCBHdWlkZWQgTWVkaXRhdGlvbnMgZm9yIExpdmluZyBpbiBMb3ZlIGFuZCBIYXBwaW5lc3MgKDIwMTMsIEF1ZyAxKTsgVGhlIE1hc3Rlcnkgb2YgU2VsZjogQSBUb2x0ZWMgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSAoMjAxNiwgTWF5IDYpDQoxOTk3OltCb29rXSBKb24gS3Jha2F1ZXIncyBJbnRvIFRoaW4gQWlyOiBBIFBlcnNvbmFsIEFjY291bnQgb2YgdGhlIE10LiBFdmVyZXN0IERpc2FzdGVyOyBVbmRlciB0aGUgQmFubmVyIG9mIEhlYXZlbiAoMjAwMyBKdWwpDQoxOTk3IChEZWMgMTEpOltFbnZdIFRoZSBLeW90byBQcm90b2NvbCB3YXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgd2hpY2ggZXh0ZW5kZWQgdGhlIDE5OTIgVW5pdGVkIE5hdGlvbnMgRnJhbWV3b3JrIENvbnZlbnRpb24gb24gQ2xpbWF0ZSBDaGFuZ2UgKFVORkNDQykgdGhhdCBjb21taXRzIHN0YXRlIHBhcnRpZXMgdG8gcmVkdWNlIGdyZWVuaG91c2UgZ2FzIGVtaXNzaW9ucywgYmFzZWQgb24gdGhlIHNjaWVudGlmaWMgY29uc2Vuc3VzIHRoYXQgKHBhcnQgb25lKSBnbG9iYWwgd2FybWluZyBpcyBvY2N1cnJpbmcgYW5kIChwYXJ0IHR3bykgdGhhdCBodW1hbi1tYWRlIENPMiBlbWlzc2lvbnMgYXJlIGRyaXZpbmcgaXQuDQoxOTk3OltJbmRpYV1bRWR1Y2F0aW9uXVtDdWx0dXJlXSBFa2xhdnlhIE1vZGVsIFJlc2lkZW50aWFsIFNjaG9vbCBpcyBhIEdvdmVybm1lbnQgb2YgSW5kaWEgc2NoZW1lIGZvciBtb2RlbCByZXNpZGVudGlhbCBzY2hvb2wgZm9yIEluZGlhbiB0cmliYWxzIGFjcm9zcyBJbmRpYS4gSXQgaXMgb25lIG9mIHRoZSBmbGFnc2hpcCBpbnRlcnZlbnRpb25zIG9mIHRoZSBNaW5pc3RyeSBvZiBUcmliYWwgQWZmYWlycywgR292ZXJubWVudCBvZiBJbmRpYSBhbmQgd2FzIGludHJvZHVjZWQgaW4gdGhlIHllYXIgMTk5Ny05OCB0byBlbnN1cmUgdHJpYmFsIHN0dWRlbnRzIGdldCBhY2Nlc3MgdG8gcXVhbGl0eSBlZHVjYXRpb24gaW4gdGhlIHJlbW90ZSB0cmliYWwgYXJlYXMuIEVNUlNzIGFyZSBzZXQgdXAgaW4gU3RhdGVzL1VUcyB3aXRoIGdyYW50cyB1bmRlciBBcnRpY2xlIDI3NSgxKSBvZiB0aGUgQ29uc3RpdHV0aW9uIG9mIEluZGlhLiBBcyBwZXIgdGhlIGJ1ZGdldCAyMDE4LTE5LCBldmVyeSBibG9jayB3aXRoIG1vcmUgdGhhbiA1MCUgU1QgcG9wdWxhdGlvbiBhbmQgYXQgbGVhc3QgMjAsMDAwIHRyaWJhbCBwZXJzb25zLCB3aWxsIGhhdmUgYW4gRWtsYXZ5YSBNb2RlbCBSZXNpZGVudGlhbCBTY2hvb2wgYnkgdGhlIHllYXIgMjAyMi4NCjE5OTc6W1NwYWNlXSBIaXBwYXJjb3MgKDE5ODkgLTE5OTMpLiBJdCB0b29rIDQtOCB5ZWFycyB0byBvcmdhbml6ZSBhbmQgcHVibGlzaCB0aGUgNCB5ZWFycyBzdHVkeSBieSB0aGlzIGV4cGVyaW1lbnQsIHdoaWNoIHBlcm1pdHRlZCB0aGUgZmlyc3QgaGlnaC1wcmVjaXNpb24gbWVhc3VyZW1lbnRzIG9mIHRoZSBpbnRyaW5zaWMgYnJpZ2h0bmVzc2VzIChjb21wYXJlZCB0byB0aGUgbGVzcyBwcmVjaXNlIGFwcGFyZW50IGJyaWdodG5lc3MpLCBwcm9wZXIgbW90aW9ucywgYW5kIHBhcmFsbGF4ZXMgb2Ygc3RhcnMsIGVuYWJsaW5nIGJldHRlciBjYWxjdWxhdGlvbnMgb2YgdGhlaXIgZGlzdGFuY2UgYW5kIHRhbmdlbnRpYWwgdmVsb2NpdHkuIFdoZW4gY29tYmluZWQgd2l0aCByYWRpYWwgdmVsb2NpdHkgbWVhc3VyZW1lbnRzIGZyb20gc3BlY3Ryb3Njb3B5LCBhc3Ryb3BoeXNpY2lzdHMgd2VyZSBhYmxlIHRvIGZpbmFsbHkgbWVhc3VyZSBhbGwgc2l4IHF1YW50aXRpZXMgbmVlZGVkIHRvIGRldGVybWluZSB0aGUgbW90aW9uIG9mIHN0YXJzLiBUaGUgcmVzdWx0aW5nIEhpcHBhcmNvcyBDYXRhbG9ndWUsIGEgaGlnaC1wcmVjaXNpb24gY2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiAxMTgsMjAwIHN0YXJzLCB3YXMgcHVibGlzaGVkIGluIDE5OTcuIFRoZSBsb3dlci1wcmVjaXNpb24gVHljaG8gQ2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiBhIG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBhdCB0aGUgc2FtZSB0aW1lLCB3aGlsZSB0aGUgZW5oYW5jZWQgVHljaG8tMiBDYXRhbG9ndWUgb2YgMi41IG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBpbiAyMDAwLiBIaXBwYXJjb3MnIGZvbGxvdy11cCBtaXNzaW9uLCBHYWlhLCB3YXMgbGF1bmNoZWQgaW4gMjAxMy4NCjE5OTc6W1NwYWNlXVtSZXNlYXJjaF0gU2luY2UgdGhlIDE5OTcgcHJvcG9zYWwgb2YgdGhlIEFkUy9DRlQgKEFudGktZGUgU2l0dGVyL0NvbmZvcm1hbCBGaWVsZCBUaGVvcnkpIGNvcnJlc3BvbmRlbmNlLCB0aGUgcHJlZG9taW5hbnQgYmVsaWVmIGFtb25nIHBoeXNpY2lzdHMgaXMgdGhhdCBpbmZvcm1hdGlvbiBpcyBpbmRlZWQgcHJlc2VydmVkIGluIGJsYWNrIGhvbGUgZXZhcG9yYXRpb24uIA0KMTk5NzpbU3BhY2VdW1Jlc2VhcmNoXSBBIHdpZGVseSBwdWJsaWNpemVkIGJldCBtYWRlIGluIDE5OTcgYmV0d2VlbiBKb2huIFByZXNraWxsIG9uIHRoZSBvbmUgaGFuZCB3aXRoIEhhd2tpbmcgYW5kIEtpcCBUaG9ybmUgb24gdGhlIG90aGVyIHRoYXQgaW5mb3JtYXRpb24gd2FzIG5vdCBsb3N0IGluIGJsYWNrIGhvbGVzLiBUaGUgc2NpZW50aWZpYyBkZWJhdGUgb24gdGhlIHBhcmFkb3ggd2FzIGRlc2NyaWJlZCBpbiBhIHBvcHVsYXIgYm9vayBwdWJsaXNoZWQgaW4gMjAwOCBieSBMZW9uYXJkIFN1c3NraW5kIGNhbGxlZCBUaGUgQmxhY2sgSG9sZSBXYXIuIChUaGUgYm9vayBjYXJlZnVsbHkgbm90ZXMgdGhhdCB0aGUgJ3dhcicgd2FzIHB1cmVseSBhIHNjaWVudGlmaWMgb25lLCBhbmQgdGhhdCBhdCBhIHBlcnNvbmFsIGxldmVsLCB0aGUgcGFydGljaXBhbnRzIHJlbWFpbmVkIGZyaWVuZHMuKSBUaGUgYm9vayBzdGF0ZXMgdGhhdCBIYXdraW5nIHdhcyBldmVudHVhbGx5IHBlcnN1YWRlZCB0aGF0IGJsYWNrLWhvbGUgZXZhcG9yYXRpb24gd2FzIHVuaXRhcnkgYnkgdGhlIGhvbG9ncmFwaGljIHByaW5jaXBsZSwgd2hpY2ggd2FzIGZpcnN0IHByb3Bvc2VkIGJ5ICd0IEhvb2Z0LCBmdXJ0aGVyIGRldmVsb3BlZCBieSBTdXNza2luZCBhbmQgbGF0ZXIgZ2l2ZW4gYSBwcmVjaXNlIHN0cmluZyB0aGVvcnkgaW50ZXJwcmV0YXRpb24gYnkgdGhlIEFkUy9DRlQgY29ycmVzcG9uZGVuY2UuIEluIDIwMDQsIEhhd2tpbmcgYWxzbyBjb25jZWRlZCB0aGUgMTk5NyBiZXQsIHBheWluZyBQcmVza2lsbCB3aXRoIGEgYmFzZWJhbGwgZW5jeWNsb3BlZGlhICJmcm9tIHdoaWNoIGluZm9ybWF0aW9uIGNhbiBiZSByZXRyaWV2ZWQgYXQgd2lsbCIgYWx0aG91Z2ggVGhvcm5lIHJlZnVzZWQgdG8gY29uY2VkZS4NCjE5OTc6W0VhcnRoXVtQaHlzaWNzXVtSZXNlYXJjaF0gdGhlcmUgd2VyZSB0d28gbGFyZ2UgZWFydGhxdWFrZXMgb2ZmIHRoZSBjb2FzdCBvZiBDaGlsZS4gVGhlIG1hZ25pdHVkZSBvZiB0aGUgZmlyc3QsIGluIEp1bHksIHdhcyBlc3RpbWF0ZWQgYXQgTXfigK82LjksIGJ1dCB3YXMgYmFyZWx5IGZlbHQsIGFuZCBvbmx5IGluIHRocmVlIHBsYWNlcy4gSW4gT2N0b2JlciBhIE134oCvNy4xIHF1YWtlIGluIG5lYXJseSB0aGUgc2FtZSBsb2NhdGlvbiwgYnV0IHR3aWNlIGFzIGRlZXAgYW5kIG9uIGEgZGlmZmVyZW50IGtpbmQgb2YgZmF1bHQsIHdhcyBmZWx0IG92ZXIgYSBicm9hZCBhcmVhLCBpbmp1cmVkIG92ZXIgMzAwIHBlb3BsZSwgYW5kIGRlc3Ryb3llZCBvciBzZXJpb3VzbHkgZGFtYWdlZCBvdmVyIDEwLDAwMCBob3VzZXMuIEFzIGNhbiBiZSBzZWVuIGluIHRoZSB0YWJsZSBiZWxvdywgdGhpcyBkaXNwYXJpdHkgb2YgZGFtYWdlIGRvbmUgaXMgbm90IHJlZmxlY3RlZCBpbiBlaXRoZXIgdGhlIG1vbWVudCBtYWduaXR1ZGUgKE134oCvKSBub3IgdGhlIHN1cmZhY2Utd2F2ZSBtYWduaXR1ZGUgKE1z4oCvKS4gT25seSB3aGVuIHRoZSBtYWduaXR1ZGUgaXMgbWVhc3VyZWQgb24gdGhlIGJhc2lzIG9mIHRoZSBib2R5LXdhdmUgKG1i4oCvKSBvciB0aGUgc2Vpc21pYyBlbmVyZ3kgKE1l4oCvKSBpcyB0aGVyZSBhIGRpZmZlcmVuY2UgY29tcGFyYWJsZSB0byB0aGUgZGlmZmVyZW5jZSBpbiBkYW1hZ2UuIChhcyByZXNlYXJjaGVkIGJ5IENob3ksIEJvYXR3cmlnaHQgJiBLaXJieSAyMDAxLCBwLiAxMy4pLiBNdyA2Ljkgd2FzIGFjdHVhbGx5IE1lIDYuMSwgYW4gaW50ZXJwbGF0ZS10aHJ1c3QgdHlwZSBvZiBmYXVsdCwgd2hpbGUgTXcgNy4xIHdhcyBhY3R1YWxseSBhIDcuNSBNZSBpbnRyYXNsYWItbm9ybWFsIHR5cGUgb2YgZmF1bHQuDQoxOTk3OltSZXNlYXJjaF0gRHVyaW5nIHN1cnZleXMgY2FycmllZCBvdXQgYmV0d2VlbiAxOTk3IGFuZCAyMDAxLCBhIHNwb3Qgd2FzIGZvdW5kIGFsb25nIHRoZSBNYXJpYW5hIFRyZW5jaCB0aGF0IGhhZCBhIGRlcHRoIHNpbWlsYXIgdG8gdGhlIENoYWxsZW5nZXIgRGVlcCwgcG9zc2libHkgZXZlbiBkZWVwZXIuIEl0IHdhcyBkaXNjb3ZlcmVkIHdoaWxlIHNjaWVudGlzdHMgZnJvbSB0aGUgSGF3YWlpIEluc3RpdHV0ZSBvZiBHZW9waHlzaWNzIGFuZCBQbGFuZXRvbG9neSB3ZXJlIGNvbXBsZXRpbmcgYSBzdXJ2ZXkgYXJvdW5kIEd1YW07IHRoZXkgdXNlZCBhIHNvbmFyIG1hcHBpbmcgc3lzdGVtIHRvd2VkIGJlaGluZCB0aGUgcmVzZWFyY2ggc2hpcCB0byBjb25kdWN0IHRoZSBzdXJ2ZXkuIFRoaXMgbmV3IHNwb3Qgd2FzIG5hbWVkIHRoZSBITVJHIChIYXdhaWkgTWFwcGluZyBSZXNlYXJjaCBHcm91cCkgRGVlcCwgYWZ0ZXIgdGhlIGdyb3VwIG9mIHNjaWVudGlzdHMgd2hvIGRpc2NvdmVyZWQgaXQuDQoxOTk3OltTcGFjZVhdIEEgcmVzb2x2ZWQgY2lyY3Vtc3RlbGxhciBkaXNrIHdhcyBmaXJzdCBpZGVudGlmaWVkIGluIDE5OTcgd2l0aCB0aGUgT3dlbnMgVmFsbGV5IFJhZGlvIE9ic2VydmF0b3J5LiBUaGUgc2VtaS1tYWpvciBheGlzIHdhcyBpbml0aWFsbHkgZXN0aW1hdGVkIHRvIGJlIDExMCBBVS4gSEQgMTYzMjk2IGFuZCBzdXJyb3VuZGluZ3MgQ3JlZGl0OiBFU08vRGlnaXRpemVkIFNreSBTdXJ2ZXkgMjsgQWNrbm93bGVkZ2VtZW50OiBEYXZpZGUgRGUgTWFydGluIE9ic2VydmF0aW9uIGRhdGEgRXBvY2ggSjIwMDAgICAgICBFcXVpbm94IEoyMDAwIENvbnN0ZWxsYXRpb24JU2FnaXR0YXJpdXMgUmlnaHQgYXNjZW5zaW9uCTE3aCA1Nm0gMjEuMjlzIERlY2xpbmF0aW9uCeKIkjIxwrAgNTfigLIgMjEuODfigLMgQXBwYXJlbnQgbWFnbml0dWRlIChWKQk2Ljg1OyBDaGFyYWN0ZXJpc3RpY3MgRXZvbHV0aW9uYXJ5IHN0YWdlCUhlcmJpZyBBZSBzdGFyIFNwZWN0cmFsIHR5cGUJQTNWYWVrQTFtQTE7IEFzdHJvbWV0cnkgUmFkaWFsIHZlbG9jaXR5IChSdikJLTQuMDAgwrEzLjNbM10ga20vcyBQcm9wZXIgbW90aW9uICjOvCkJUkE6IC03LjU4NiDCsTAuMDQxIG1hcy95cjsgRGVjLjogLTM5LjQ1OCDCsTAuMDI5IG1hcy95cls0XSBQYXJhbGxheCAoz4ApCTkuOTA0M8KxMC4wNDA4IG1hc1s0XSBEaXN0YW5jZQkzMjkgwrEgMSBseSAoMTAxLjAgwrEgMC40IHBjKSBEZXRhaWxzOyBNYXNzCTEuOTXCsTAuMDcgTeKYiSBSYWRpdXMJMS44N8KxMC4wNSBS4piJIEx1bWlub3NpdHkJMjAuNCszLjYg4oiSMy4wIEzimIkgU3VyZmFjZSBncmF2aXR5IChsb2cgZykJNC4xMMKxMC4xMCBjZ3MgVGVtcGVyYXR1cmUJOTAwMMKxMjUwIEsgQWdlCTYuMDMrMC4yOCDiiJIwLjI3IE15ciBPdGhlciBkZXNpZ25hdGlvbnMgQkQtMjEgNDc3OSwgQ1BELTIxIDY1MDgsIEVNKiBNV0MgMjc1LCBISVAgODc4MTksIElSQVMgMTc1MzMtMjE1NiwgMk1BU1MgSjE3NTYyMTI4LTIxNTcyMTgsIFBEUyA0NzMsIFRZQyA2MjYyLTIxMzEtMSwgRGF0YWJhc2UgcmVmZXJlbmNlcyBTSU1CQUQNCjE5OTc6W1NwYWNlWF0gMTAxOTkgQ2hhcmlrbG8gaXMgYSByaW5nZWQgYXN0ZXJvaWQgb3IgY2VudGF1ciBpbiB0aGUgb3V0ZXIgU29sYXIgU3lzdGVtLiBJdCBpcyB0aGUgbGFyZ2VzdCBrbm93biBjZW50YXVyLCB3aXRoIGEgZGlhbWV0ZXIgb2YgYWJvdXQgMjUwIGttLiBJdCBvcmJpdHMgdGhlIFN1biBiZXR3ZWVuIFNhdHVybiBhbmQgVXJhbnVzIHdpdGggYW4gb3JiaXRhbCBwZXJpb2Qgb2YgNjIuNSB5ZWFycy4gV2lraXBlZGlhIE9yYml0YWwgcGVyaW9kOiA2MyB5ZWFycyBSYWRpdXM6IDE1MSBrbSBEaXNjb3ZlcmVkOiAxNSBGZWJydWFyeSAxOTk3IERpbWVuc2lvbnM6ICgyODcuNisyLjg7IOKIkjMuMCkgw5cgKDI3MC40KzIuODsg4oiSNS42KSDDlyAoMTk4LjIrMTAuODsg4oiSNS40KSBrbTogMTEgRGlzY292ZXJlcjogSmFtZXMgVi4gU2NvdHRpIFNwZWN0cmFsIHR5cGU6IEQtdHlwZSBhc3Rlcm9pZCBBcGhlbGlvbjogMTguNDIwIEFVDQoxOTk3OltTcGFjZVhdIFRoZSBHcmVhdCBEYXlsaWdodCBGaXJlYmFsbCAtIFRoZSBhdG1vc3BoZXJpYyBwYXNzIG1vZGlmaWVkIHRoZSBvYmplY3QncyBtYXNzIGFuZCBvcmJpdCBhcm91bmQgdGhlIFN1bi4gQSAxOTk0IHN0dWR5IGZvdW5kIHRoYXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgaW4gYW4gRWFydGgtY3Jvc3Npbmcgb3JiaXQgYW5kIHByZWRpY3RlZCB0aGF0IGl0IHdvdWxkIHBhc3MgY2xvc2UgdG8gRWFydGggYWdhaW4gaW4gQXVndXN0IDE5OTcuIEhvd2V2ZXIsIHRoZSBvYmplY3QgaGFzIG5vdCBiZWVuIG9ic2VydmVkIGFnYWluIGFuZCBzbyBpdHMgcG9zdC1lbmNvdW50ZXIgb3JiaXQgcmVtYWlucyB1bmtub3duLg0KMTk5NzpOYWZpc2EgSm9zZXBoIHdhcyB0aGUgeW91bmdlc3QgTWlzcyBJbmRpYSB3aW5uZXIgYXQgYWdlIDE5LCB3aW5uaW5nIHRoZSB0aXRsZSBpbiAxOTk3LiBTaGUgbGF0ZXIgYmVjYW1lIGEgbW9kZWwgYW5kIHRlbGV2aXNpb24gcGVyc29uYWxpdHkuIFdoaWxlIG90aGVyIHdpbm5lcnMgbGlrZSBNZWVuYWtzaGkgU2VzaGFkcmkgd2VyZSBhbHNvIDE3IHdoZW4gdGhleSB3b24gaW4gMTk4MSwgSm9zZXBoIGlzIG9mdGVuIGNpdGVkIGZvciBoZXIgZWFybHkgd2luIGF0IDE5LCB3aGljaCB3YXMgdGhlbiBhIHlvdW5nZXIgYWdlIHRoYW4gaXMgdHlwaWNhbGx5IHNlZW4gaW4gdGhlIGNvbXBldGl0aW9uLiANCjE5OTc6W3NwYWNlXVt0ZWNoXSBUaGUgZmluYWwgQmxvY2sgSUlBIHdhcyBpbiBOb3YgMTk5Nywgd2hpbGUgQmxvY2sgSUlScyBiZWdhbiByZXBsYWNpbmcgdGhlbSBzaG9ydGx5IGFmdGVyLCBsYXN0aW5nIHVudGlsIDIwMDQuIEJsb2NrIElJUiAoUmVwbGVuaXNobWVudCkgbGF1bmNoZXMgZm9sbG93ZWQgZnJvbSAxOTk3IHRvIDIwMDQsIHdpdGggdGhlIGZpcnN0IGxhdW5jaCBpbiBKYW51YXJ5IDE5OTcuIA0KDQoxOTk4OltTcGFjZVhdIFRoZSBwcmltYXJ5IGNvbnN0cnVjdGlvbiBwaGFzZSBvZiB0aGUgSW50ZXJuYXRpb25hbCBTcGFjZSBTdGF0aW9uIChJU1MpIHRvb2sgYXBwcm94aW1hdGVseSAxMyB5ZWFycywgZnJvbSAxOTk4IHRvIDIwMTEsIHdpdGggdGhlIGZpcnN0IG1vZHVsZSBsYXVuY2hpbmcgaW4gTm92ZW1iZXIgMTk5OCBhbmQgSVNTIEFzc2VtYmx5IENvbXBsZXRlIGRlY2xhcmVkIGluIE1heSAyMDExLiBIb3dldmVyLCBhc3NlbWJseSB3YXMgYSBjb250aW51b3VzLCBtdWx0aS1zdGFnZSBwcm9jZXNzIGludm9sdmluZyBtb3JlIHRoYW4gMzAgbWlzc2lvbnMsIG51bWVyb3VzIHNwYWNld2Fsa3MsIGFuZCByb2JvdGljIGFzc2lzdGFuY2UgdG8gYnVpbGQgdGhlIHN0YXRpb24gcGllY2UgYnkgcGllY2UgaW4gb3JiaXQuIEV2ZW4gYWZ0ZXIgMjAxMSwgdGhlIElTUyBjb250aW51ZWQgdG8gZXZvbHZlIHdpdGggb25nb2luZyBhZGRpdGlvbnMgYW5kIHVwZ3JhZGVzLg0KMTk5ODpbUmVzZWFyY2hdW1NwYWNlXSBTcHJpbmcsIDE5OTg6IGEgbWljcm9mb3NzaWwgdGhhdCB3YXMgZm91bmQgaW4gYSBtZXRlb3JpdGUgYW5kIHBob3RvZ3JhcGhlZCBpbiAxOTY2LCB3YXMgcmVjb2duaXplZCBieSBhIFJ1c3NpYW4gbWljcm9iaW9sb2dpc3QgYXMgYSBtYWduZXRvdGFjdGljIGJhY3Rlcml1bS4gQnkgRmFsbCwgMTk5ODogTkFTQSdzIHB1YmxpYyBwb3NpdGlvbiBvbiBsaWZlLWZyb20tc3BhY2Ugc2hpZnRlZCBkcmFtYXRpY2FsbHkuDQoxOTk4OiBBcyBhIHJlc2VhcmNoIHByb2plY3QgYXQgU3RhbmZvcmQgVW5pdmVyc2l0eSwgU2VyZ2V5IEJyaW4gYW5kIExhcnJ5IFBhZ2UgY3JlYXRlZCBhIHNlYXJjaCBlbmdpbmUgdGhhdCBsaXN0ZWQgcmVzdWx0cyBhY2NvcmRpbmcgdG8gdGhlIHBvcHVsYXJpdHkgb2YgdGhlIHBhZ2VzLCBhZnRlciBjb25jbHVkaW5nIHRoYXQgdGhlIG1vc3QgcG9wdWxhciByZXN1bHQgd291bGQgb2Z0ZW4gYmUgdGhlIG1vc3QgdXNlZnVsLiBBZnRlciByYWlzaW5nICQxIG1pbGxpb24gZnJvbSBmYW1pbHksIGZyaWVuZHMgYW5kIG90aGVyIGludmVzdG9ycywgdGhlIHBhaXIgbGF1bmNoZWQgdGhlIGNvbXBhbnkgaW4gMTk5OC4gR29vZ2xlIGhhcyBzaW5jZSBiZWNvbWUgdGhlIHdvcmxk4oCZcyBtb3N0IHBvcHVsYXIgc2VhcmNoIGVuZ2luZSwgcmVjZWl2aW5nIG1vcmUgdGhhbiAyMDAgbWlsbGlvbiBxdWVyaWVzIGVhY2ggZGF5Lg0KMTk5OCAoTm92IDIwKTogDQoxOTk4IChBcHIgMjcpOiBSUkIgZm91bmRlZCBhcyBSYWlsd2F5IFJlY3J1aXRtZW50IENvbnRyb2wgQm9hcmQgaXMgYSBnb3Zlcm5tZW50IG9yZ2FuaXNhdGlvbiBpbiBJbmRpYS4gSXQgd2FzIHNldCB1cCBpbiAxOTk4IGluIHRoZSBNaW5pc3RyeSBvZiBSYWlsd2F5cyAoUmFpbHdheSBCb2FyZCksIE5ldyBEZWxoaS5JbiAxOTQ1LCB0aGUgU2VydmljZXMgQ29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgYXQgQm9tYmF5LCBDYWxjdXR0YSwgTWFkcmFzIGFuZCBMdWNrbm93LiBJbiAxOTgzLCB0byBjYXRlciB0byB0aGUgbmVlZHMgb2YgYXJlYXMgd2hpY2ggd2VyZSBiZWluZyBuZWdsZWN0ZWQgZHVlIHRvIGxvY2F0aW9ucyBvZiB0aGUgZXhpc3RpbmcgY29tbWlzc2lvbnMsIHNldmVuIG1vcmUgY29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgdml6LCBhdCBBaG1lZGFiYWQsIEFqbWVyLCBCaG9wYWwsIEJodXZuZXNod2FyLCBDaGFuZGlnYXJoLCBKYW1tdSBhbmQgU3JpbmFnYXIgd2l0aCBzaXR0aW5nIGF0IExlaCBhbmQgVHJpdmVuZHJ1bS4gSW4gMTk4NCB0d28gbW9yZSBzZXJ2aWNlIGNvbW1pc3Npb25zIHdlcmUgc2V0IHVwIGF0IE1hbGRhIGFuZCBHb3Jha2hwdXIuDQoxOTk4IChNYXkgMTkpOiBBdGFsIEJpaGFyaSBWYWpwYXllZSBiZWNvbWVzIFBNIG9mIEluZGlhIGZvciB0aGUgc2Vjb25kIHRpbWUsIG5vdyBmb3IgNiB5ZWFycyB0aWxsIE1heSAyMiwgMjAwNC4gDQoxOTk4IChNYXkgMjggMTU6MTVQU1QpOiBDaGFnYWktSSBpcyB0aGUgY29kZSBuYW1lIG9mIGZpdmUgc2ltdWx0YW5lb3VzIHVuZGVyZ3JvdW5kIG51Y2xlYXIgdGVzdHMgY29uZHVjdGVkIGJ5IFBha2lzdGFuLiBUaGUgdGVzdHMgd2VyZSBwZXJmb3JtZWQgYXQgUmFzIEtvaCBIaWxscyBpbiB0aGUgQ2hhZ2FpIERpc3RyaWN0IG9mIEJhbG9jaGlzdGFuIFByb3ZpbmNlLiBDaGFnYWktSSB3YXMgUGFraXN0YW4ncyBmaXJzdCBwdWJsaWMgdGVzdCBvZiBudWNsZWFyIHdlYXBvbnMuIFBha2lzdGFuJ3MgZmlzc2lsZSBtYXRlcmlhbCBwcm9kdWN0aW9uIHRha2VzIHBsYWNlIGF0IE5pbG9yZSwgS2FodXRhLCBhbmQgS2h1c2hhYiBOdWNsZWFyIENvbXBsZXgsIHdoZXJlIHdlYXBvbnMtZ3JhZGUgcGx1dG9uaXVtIGlzIHJlZmluZWQuDQoxOTk4OiBBZnRlciBjb21wbGV0aW5nIGhpcyBYIHN0YW5kYXJkIGV4YW1pbmF0aW9ucywgUmFuYmlyIEthcG9vciwgYWdlZCAxNiwgd29ya2VkIGFzIGFuIGFzc2lzdGFudCBkaXJlY3RvciB0byBoaXMgZmF0aGVyIG9uIHRoZSBmaWxtIEFhIEFiIExhdXQgQ2hhbGVuICgxOTk5KSwgZHVyaW5nIHdoaWNoIGhlIGRldmVsb3BlZCBhIGNsb3NlciBib25kIHdpdGggaGltLg0KMTk4ODogTmV0d29ya2VkIERhdGEgUHJvY2Vzc2luZyBDb3IsIElvd2EgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBJbnN1cmFuY2UgZGl2aXNpb24uDQoxOTk4OltCb29rXSBSb2JlcnQgR3JlZW5lJ3MgVGhlIDQ4IExhd3Mgb2YgUG93ZXI7IFRoZSAzMyBTdHJhdGVnaWVzIG9mIFdhciAoMjAwNik7IE1hc3RlcnkgKDIwMTIsIE5vdiAxMyk7IFRoZSBMYXdzIG9mIEh1bWFuIE5hdHVyZSAoMjAxOCwgT2N0IDE2KQ0KMTk5ODpbU3BhY2VdW1Jlc2VhcmNoXVtFeHRyZW1lXSBUaGVuIGNhbWUgMTk5OCBhbmQgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgKEhTVCkgb2JzZXJ2YXRpb25zIG9mIHZlcnkgZGlzdGFudCBzdXBlcm5vdmFlIHRoYXQgc2hvd2VkIHRoYXQsIGEgbG9uZyB0aW1lIGFnbywgdGhlIHVuaXZlcnNlIHdhcyBhY3R1YWxseSBleHBhbmRpbmcgbW9yZSBzbG93bHkgdGhhbiBpdCBpcyB0b2RheS4gU28gdGhlIGV4cGFuc2lvbiBvZiB0aGUgdW5pdmVyc2UgaGFzIG5vdCBiZWVuIHNsb3dpbmcgZHVlIHRvIGdyYXZpdHksIGFzIGV2ZXJ5b25lIHRob3VnaHQsIGl0IGhhcyBiZWVuIGFjY2VsZXJhdGluZy4NCjE5OTg6W0NyaW1lXVtJbmRpYV0gQW5lZXMgYXJyZXN0ZWQgaW4gVUFFIG9uIGNoYXJnZXMgb2YgaGF2aW5nIG11cmRlcmVkIGEgZm9ybWVyIGFzc29jaWF0ZSBhbmQgdGhlbiByaXZhbCwgSXJmYW4gR29nYSwgaW4gRHViYWksIGJ1dCB3YXMgZnJlZWQgYWZ0ZXIgdHdvIGRheXMgZm9yICdsYWNrIG9mIGV2aWRlbmNlJy4NCjE5OTg6W0NvbXB1dGluZ11bUXVhbnR1bV0gUmVzZWFyY2hlcnMgYXQgSUJNLCBPeGZvcmQsIEJlcmtlbGV5LCBTdGFuZm9yZCwgYW5kIE1JVCBwcm9kdWNlZCBhIDItcXViaXQgY29tcHV0aW5nIHN5c3RlbS4NCjE5OTg6W3d3d10gV2lyZXNoYXJrIGlzIGEgZnJlZSBhbmQgb3Blbi1zb3VyY2UgcGFja2V0IGFuYWx5emVyLiBJdCBpcyB1c2VkIGZvciBuZXR3b3JrIHRyb3VibGVzaG9vdGluZywgYW5hbHlzaXMsIHNvZnR3YXJlIGFuZCBjb21tdW5pY2F0aW9ucyBwcm90b2NvbCBkZXZlbG9wbWVudCwgYW5kIGVkdWNhdGlvbi4gT3JpZ2luYWxseSBuYW1lZCBFdGhlcmVhbCwgdGhlIHByb2plY3Qgd2FzIHJlbmFtZWQgV2lyZXNoYXJrIGluIE1heSAyMDA2IGR1ZSB0byB0cmFkZW1hcmsgaXNzdWVzLg0KMTk5ODpbVVNdW0Vjb25vbXldRGF2aWQgUm9ja2VmZWxsZXIgU3IuIHdhcyBhd2FyZGVkIHRoZSBQcmVzaWRlbnRpYWwgTWVkYWwgb2YgRnJlZWRvbSBieSBQcmVzaWRlbnQgQmlsbCBDbGludG9uIGZvciBoaXMgd29yayBvbiBJbnRlcm5hdGlvbmFsIEV4ZWN1dGl2ZSBTZXJ2aWNlIENvcnBzLg0KMTk5ODpbRGVmXVtBdmlhdGlvbl0gVGhlIExvY2toZWVkIFNSLTcxIEJsYWNrYmlyZCBmbGV3IHNvIGhpZ2ggYW5kIHNvIGZhc3QgdGhhdCB0aGUgY3JldyBuZWVkZWQgcHJlc3N1cml6ZWQgc3BhY2Ugc3VpdHMgd2hlbiBmbHlpbmcgaXQuIEFuZCBpdCBpcyBzYWlkIHRoYXQgYXQgdGhlIG1heGltdW0gYWx0aXR1ZGUgb2YgaXQgaXQgd2FzIHBvc3NpYmxlIHRvIHNlZSB0aGUgY3VydmF0dXJlIG9mIHRoZSBlYXJ0aCwgd2hpY2ggcmVmZXJzIHRvIHRoaXMgcXVvdGUgYnkgQ29sb25lbCBBbGlzb246IOKAnE9uIGEgY2xlYXIgZGF5IHlvdSBjYW4gc2VlIGZvcmV2ZXLigKbigJ0uIFRoZSBzZXJ2aWNlIGNlaWxpbmcgb2YgODUsMDAwIGZlZXQgKDI1LDkwMG0pIG1lYW50IHRoYXQgaXQgd2FzIGFuIGV4Y2VsbGVudCBleHBlcmltZW50YWwgdW5pdCBmb3Igc3BhY2UgdHJhdmVscy4gVGhhdCwgY29tYmluZWQgd2l0aCB0aGUgZ3JlYXQgc3BlZWRzIG9mIGl0IHdhcyB0d28gb2YgdGhlIHJlYXNvbnMgd2h5IE5BU0EgZGVjaWRlZCB0byB0YWtlIG92ZXIgdGhlIGxhc3QgdHdvIEJsYWNrYmlyZHMgYWZ0ZXIgaXRzIHJldGlyZW1lbnQgZnJvbSB0aGUgQWlyIEZvcmNlIGluIDE5OTguIFRoaXMgbWVhbnMgdGhhdCB0aGUgd29ybGTigJlzIGZhc3Rlc3QgYWlyY3JhZnQgd2FzIGluIHNlcnZpY2UgZnJvbSAxOTY2IHVudGlsIE5BU0EgcmV0aXJlZCBpdHMgdHdvIHVuaXRzIGluIDE5OTksIGFuZCBtb3N0IG9mIHRoZSByZW1haW5pbmcgQmxhY2tiaXJkcyBhcmUgdG9kYXkgc3RhdGlvbmVkIGF0IG11c2V1bXMgb3IgbWlsaXRhcnkgYmFzZXMgYWNyb3NzIHRoZSBVUy4NCjE5OTg6SW4gMTk5OCwgR2F1dGFtIEFkYW5pLCBhbG9uZyB3aXRoIGhpcyBhc3NvY2lhdGUgU2hhbnRpbGFsIFBhdGVsLCB3YXMga2lkbmFwcGVkIGZvciByYW5zb20gaW4gQWhtZWRhYmFkLCBJbmRpYS4gVGhleSB3ZXJlIGFiZHVjdGVkIGF0IGd1bnBvaW50IGFmdGVyIGxlYXZpbmcgdGhlIEthcm5hdmF0aSBDbHViIGluIGEgY2FyLiBUaGUga2lkbmFwcGVycywgYWxsZWdlZGx5IGdhbmdzdGVycyBGYXpsdSBSZWhtYW4gYW5kIEJob2dpbGFsIERhcmppLCByZXBvcnRlZGx5IGRlbWFuZGVkIGEgcmFuc29tIG9mICQxLjUtMiBtaWxsaW9uLiBCb3RoIEFkYW5pIGFuZCBQYXRlbCB3ZXJlIHJlbGVhc2VkIGEgZGF5IGxhdGVyLCBidXQgaXQncyB1bmNsZWFyIGlmIHRoZSByYW5zb20gd2FzIHBhaWQuIA0KVGhlIGtpZG5hcHBpbmcgaW5jaWRlbnQgaGFwcGVuZWQgaW4gdGhlIG1pZC0xOTkwcywgYXJvdW5kIHRoZSB0aW1lIEFkYW5pJ3MgYnVzaW5lc3Mgc3VjY2Vzc2VzIHN0YXJ0ZWQgYXR0cmFjdGluZyB1bndhbnRlZCBhdHRlbnRpb24uIFRoZSBraWRuYXBwaW5nIHdhcyBhbGxlZ2VkbHkgY2FycmllZCBvdXQgYnkgRmF6bHUgUmVobWFuIGFuZCBCaG9naWxhbCBEYXJqaSwgYWxzbyBrbm93biBhcyAiTWFtYSIuIFRoZXkgd2VyZSBsYXRlciBhY3F1aXR0ZWQgZHVlIHRvIGxhY2sgb2YgZXZpZGVuY2UuIA0KVGhlIGFiZHVjdGlvbiBpcyBqdXN0IG9uZSBvZiB0aGUgY2hhbGxlbmdlcyBBZGFuaSBoYXMgZmFjZWQuIEhlIHdhcyBhbHNvIGNhdWdodCBpbiB0aGUgMjYvMTEgTXVtYmFpIHRlcnJvciBhdHRhY2tzIGF0IHRoZSBUYWogSG90ZWwuIE1vcmUgcmVjZW50bHksIGhlIGhhcyBmYWNlZCBhY2N1c2F0aW9ucyBvZiBicmliZXJ5IGFuZCBzZWN1cml0aWVzIGZyYXVkLiANCkFkYW5pIGFuZCBvdGhlcnMgd2VyZSBlc2NvcnRlZCBieSBzdGFmZiB0byB0aGUga2l0Y2hlbiBhbmQgdGhlbiB0aGUgYmFzZW1lbnQuIFRoZXkgc3BlbnQgdGhlIGVudGlyZSBuaWdodCBpbiBhIGhhbGwgd2FpdGluZyBmb3IgcmVzY3VlLiBBZGFuaSBsYXRlciB0b2xkIG5ld3MgY2hhbm5lbHMgdGhhdCBoZSBzYXcg4oCcZGVhdGggYXQgYSBkaXN0YW5jZSBvZiBqdXN0IDE1IGZlZXQu4oCdIEhlIHdhcyByZXNjdWVkIHRoZSBuZXh0IG1vcm5pbmcgYnkgc2VjdXJpdHkgZm9yY2VzLg0KMTk5ODpbRW52XVtEaXNhc3Rlcl0gRWFzdGVybiBJbmRpYSwgMTk5OCBCYW5nbGFkZXNoIGZsb29kOyA0ayBkZWF0aHMNCjE5OTg6W1dob11bUmVzZWFyY2hdW0NvbXB1dGluZ11bVGVjaF1bQ3VsdHVyZV0gSW50ZXJuZXQgRG93bmxvYWQgTWFuYWdlciAoSURNKSB3YXMgZGV2ZWxvcGVkIGJ5IFRvbmVjIEluYy4sIGFuIEFtZXJpY2FuIGNvbXBhbnkgdGhhdCBzdGFydGVkIHRoZSBwcm9qZWN0IGluIDE5OTggYW5kIHJlbGVhc2VkIHRoZSBzb2Z0d2FyZSBpbiAyMDAxLiBUb25lYyBJbmMuIGZvY3VzZXMgb24gbmV0d29yayBwcm9ncmFtbWluZyBhbmQgY3JlYXRlZCBJRE0gdG8gc3BlZWQgdXAgZG93bmxvYWRzIGJ5IHVzaW5nIGR5bmFtaWMgZmlsZSBzZWdtZW50YXRpb24sIGFjY2VsZXJhdGluZyBzcGVlZHMgYnkgdXAgdG8gOCB0aW1lcy4gDQoNCjE5OTk6NCBKYW51YXJ5IDE5OTk6IE5BU0Egb2ZmaWNpYWxseSByZWNvZ25pemVkIHRoZSBwb3NzaWJpbGl0eSB0aGF0IGxpZmUgb24gRWFydGggY29tZXMgZnJvbSBzcGFjZS4NCjE5IE1hcmNoIDE5OTk6IE5BU0Egc2NpZW50aXN0cyBhbm5vdW5jZWQgdGhhdCB0d28gbW9yZSBtZXRlb3JpdGVzIGhvbGQgZXZlbiBzdHJvbmdlciBmb3NzaWxpemVkIGV2aWRlbmNlIGZvciBwYXN0IGxpZmUgb24gTWFycy4NCjE5OTk6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEcyMCBvciBHcm91cCBvZiAyMCBpcyBhbiBpbnRlcmdvdmVybm1lbnRhbCBmb3J1bSBjb21wcmlzaW5nIDE5IHNvdmVyZWlnbiBjb3VudHJpZXMsIHRoZSBFdXJvcGVhbiBVbmlvbiwgYW5kIHRoZSBBZnJpY2FuIFVuaW9uLiBGb3VuZGVkOiAyNiBTZXB0ZW1iZXIgMTk5OTsgQ2hhaXJtYW4gKEluY3VtYmVudCk6IEN5cmlsIFJhbWFwaG9zYSwgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYQ0KMTk5OTogVGhlIHRlcm0gV2ktRmkgd2FzIGludmVudGVkIGJ5IEludGVyYnJhbmQgKGFuIGFtZXJpY2FuIGJyYW5kIGNvbnN1bHRhbmN5IGNvbXBhbnkpIGFzIGEgcHVuIHVwb24gdGhlIHdvcmQgaGktZmkuDQpXaS1GaSBBbGxpYW5jZSBmb3JtZWQgYXMgYSB0cmFkZSBhc3NvY2lhdGlvbiB0byBob2xkIHRoZSBXaS1GaSB0cmFkZW1hcmsgdW5kZXIgd2hpY2ggbW9zdCBwcm9kdWN0cyBhcmUgc29sZC4NCjE5OTk6IHRoZSB0ZXJtDQoxOTk5OiBJc2xhbWljIFN0YXRlIG9mIElyYXEgYW5kIHRoZSBMZXZhbnQgKGFsc28ga25vd24gYXMgdGhlIElzbGFtaWMgU3RhdGUgb2YgSXJhcSBhbmQgU3lyaWEsIElzbGFtaWMgU3RhdGUsIG9yIGNvbW1vbmx5LCBJU0lTKSBmb3VuZGVkIGFzIEphbWEnYXQgYWwtVGF3aGlkIHdhbC1KaWhhZCBieSBBYnUgTXVzYWIgYWwtWmFycWF3aSBIUSdkIGF0ICBBbC1SYXFxYWguDQoxOTk5IChBcHIgMTIpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBJIFdhbnQgSXQgVGhhdCBXYXkuDQoxOTk5IChBcHIgMTgpOiBDT05DRVJUIGJlY2FtZSBvcGVyYXRpb25hbC4gSXQgd2FzIGRldmVsb3BlZCB1c2luZyBjbGllbnQtc2VydmVyIG1vZGVsIGZvciBkaXN0cmlidXRlZCBjb21wdXRpbmcgaXMgYSB0b3RhbCBzb2x1dGlvbiB0byB0aGUgbmV0d29ya2luZyBvZiB0aGUgUFJTcy4gQWxsIHRoZSBmaXZlIHNpdGVzIGhhdmUgYmVlbiBpbnRlcm5ldC13b3JrZWQgb3ZlciBhIDY0IGticHMgbGluZSB1c2luZyByb3V0ZXJzLCBvbiBsZWFzZWQgY29tbXVuaWNhdGlvbiBsaW5lIGNvbm5lY3Rpb25zIGZyb20gRGVwYXJ0bWVudCBvZiBUZWxlY29tIChET1QpLg0KMTk5OTogQ3JlZGl0IGNhcmRzIGFjY2VwdGVkIGZvciBib29raW5nIHRpY2tldHMgYW5kIHJlc2VydmF0aW9ucyBpbiBzb21lIHN0YXRpb25zIChpbmNsdWRpbmcgTXVtYmFpIENTVCkuDQoxOTk5IChNYXkgMSk6W0Jvb2tdIFJvYmVydCBLaXlvc2FraSAmIFNoYXJvbiBMZWNodGVyJ3MgUmljaCBEYWQncyBDYXNoZmxvdyBRdWFkcmFudDogUmljaCBEYWQncyBHdWlkZSB0byBGaW5hbmNpYWwgRnJlZWRvbTsgUmljaCBEYWQncyBHdWlkZSB0byBJbnZlc3Rpbmc6IFdoYXQgdGhlIFJpY2ggSW52ZXN0IGluIFRoYXQgdGhlIFBvb3IgYW5kIE1pZGRsZSBDbGFzcyBEbyBOb3QhICgyMDAxLCBKYW4gMSk7IFRoZSBSZWFsIEJvb2sgb2YgUmVhbCBFc3RhdGU6IFJlYWwgRXhwZXJ0cy4gUmVhbCBTdG9yaWVzLiBSZWFsIExpZmUuICgyMDA5LCBNYXkgMTIpOyBSaWNoIEtpZCBTbWFydCBLaWQ6IEdpdmluZyBZb3VyIENoaWxkIGEgRmluYW5jaWFsIEhlYWQgU3RhcnQgKDIwMDEsIEphbiAxKTsgDQoxOTk5IChNYXkgMTgpOltNdXNpY10gTWlsbGVubml1bSBpcyB0aGUgdGhpcmQgc3R1ZGlvIGFsYnVtIChzZWNvbmQgaW4gdGhlIFVuaXRlZCBTdGF0ZXMpIGJ5IEFtZXJpY2FuIGJveSBiYW5kIEJhY2tzdHJlZXQgQm95cywgcmVsZWFzZWQgYnkgSml2ZSBSZWNvcmRzLg0KMTk5OSAoRnJpLCAyNCBEZWMpOiBJbmRpYW4gQWlybGluZXMgRmxpZ2h0IDgxNCBjb21tb25seSBrbm93biBhcyBJQyA4MTQgd2FzIGFuIEluZGlhbiBBaXJsaW5lcyBBaXJidXMgQTMwMCBlbiByb3V0ZSBmcm9tIFRyaWJodXZhbiBJbnRlcm5hdGlvbmFsIEFpcnBvcnQgaW4gS2F0aG1hbmR1LCBOZXBhbCB0byBJbmRpcmEgR2FuZGhpIEludGVybmF0aW9uYWwgQWlycG9ydCBpbiBEZWxoaSwgSW5kaWEgd2FzIGhpamFja2VkLiBIYXJrYXQtdWwtTXVqYWhpZGVlbiB3YXMgYWNjdXNlZCBvZiB0aGUgaGlqYWNraW5nLg0KMTk5OTogSVJDVEMNCjE5OTkgKEF1Zyk6IEJvb2tNeVNob3cNCjE5OTkgKFNlcCAxNCk6IFtHZW9Qb2xpdGljc10gVGhlIENvbmZlcmVuY2Ugb24gSW50ZXJhY3Rpb24gYW5kIENvbmZpZGVuY2UtQnVpbGRpbmcgTWVhc3VyZXMgaW4gQXNpYSAoQ0lDQSkgaXMgYW4gaW50ZXItZ292ZXJubWVudGFsIGZvcnVtIGZvciBlbmhhbmNpbmcgY29vcGVyYXRpb24gdG93YXJkcyBwcm9tb3RpbmcgcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYS4gSXQgaXMgYSBmb3J1bSBiYXNlZCBvbiB0aGUgcmVjb2duaXRpb24gdGhhdCB0aGVyZSBpcyBjbG9zZSBsaW5rIGJldHdlZW4gcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYSBhbmQgaW4gdGhlIHJlc3Qgb2YgdGhlIHdvcmxkLiBUaGUga2V5IGlkZWEgb2YgdGhlIENvbmZlcmVuY2UgaXMgYmFzZWQgb24gdGhlIHByaW9yaXR5IG9mIHRoZSBpbmRpdmlzaWJpbGl0eSBvZiBzZWN1cml0eSwgam9pbnQgaW5pdGlhdGl2ZSBhbmQgbXV0dWFsbHkgYmVuZWZpY2lhbCBpbnRlcmFjdGlvbiBvZiBzbWFsbCBhbmQgbGFyZ2Ugc3RhdGVzLg0KMTk5OTogTm9ibGUgRWR1Y2F0aW9uIFNvY2lldHkncyBOb2JsZSBQdWJsaWMgU2Nob29sIChOUFMpLCBHYWpyYXVsYSBmb3VuZGVkIHdpdGggMjEzMDYyNyBhcyBpdHMgQ0JTRSBBZmZpbGlhdGlvbiBuby4NCjE5OTk6IGZpcnN0IC53bWEgZmlsZSBjcmVhdGVkDQoxOTk5OiBOYXBzdGVyIGZvdW5kZWQuDQoxOTk5IChEZWMgMTQpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBTaG93IE1lIHRoZSBNZWFuaW5nIG9mIEJlaW5nIExvbmVseS4gDQoxOTk5OltNdXNpY10gRHIuIERyZSBmdC4gU25vb3AgRG9nZydzIFN0aWxsIEQuUi5FLg0KMTk5OTpbQ3VsdHVyZV0gVGhlIENpdHRhc2xvdyBvcmdhbml6YXRpb24gd2FzIGNyZWF0ZWQgYnkgUGFvbG8gU2F0dXJuaW5pLCB0aGUgZm9ybWVyIG1heW9yIG9mIEdyZXZlIGluIENoaWFudGksIEl0YWx5LiBTYXR1cm5pbmkgd2FzIGluc3BpcmVkIGJ5IENhcmxvIFBldHJpbmkgYW5kIGhpcyBTbG93IEZvb2QgbW92ZW1lbnQsIHN0YXJ0ZWQgaW4gdGhlIDE5ODBzIHRvIHByb3Rlc3QgdGhlIGZpcnN0IE1jRG9uYWxkJ3MgY2hhaW4gaW4gUm9tZS4gU2luY2UgdGhlbiwgdGhlIENpdHRhc2xvdyBtb3ZlbWVudCBoYXMgZ3Jvd24gYWNyb3NzIGZvdXIgY29udGluZW50cywgd2l0aCAyNjIgcGFydGljaXBhdGluZyB0b3ducyBhcyBvZiAyMDIwLiANCjE5OTk6W01hbmFnZW1lbnRdW0J1c2luZXNzXVtQc3ljaG9sb2d5XVtSZXNlYXJjaF0gRHVubmluZyBhbmQgS3J1Z2VyIEVmZmVjdDogRGF2aWQgRHVubmluZyBhbmQgSnVzdGluIEtydWdlciBwdWJsaXNoZWQgdGhlIGluaXRpYWwgc3R1ZHkgaW4gMTk5OSB1bmRlciB0aGUgdGl0bGUgIlVuc2tpbGxlZCBhbmQgVW5hd2FyZSBvZiBJdDogSG93IERpZmZpY3VsdGllcyBpbiBSZWNvZ25pemluZyBPbmUncyBPd24gSW5jb21wZXRlbmNlIExlYWQgdG8gSW5mbGF0ZWQgU2VsZi1Bc3Nlc3NtZW50cyIuDQoxOTk5OltSZXNlYXJjaF0gUmVzZWFyY2ggYnkgVVMgTmF0aW9uYWwgUmVzZWFyY2ggQ291bmNpbC4gV2F0ZXIgZnJvbSB1bmRlcmdyb3VuZCBzb3VyY2VzIG1heSBjb250YWluIHNpZ25pZmljYW50IGFtb3VudHMgb2YgcmFkb24gZGVwZW5kaW5nIG9uIHRoZSBzdXJyb3VuZGluZyByb2NrIGFuZCBzb2lsIGNvbmRpdGlvbnMsIHdoZXJlYXMgc3VyZmFjZSBzb3VyY2VzIGdlbmVyYWxseSBkbyBub3QuDQoxOTk5OltOU0VdIEluY29ycG9yYXRlZCBpbiAxOTk5LCBJUkNUQyBpcyBhIE1pbmkgUmF0bmEgKENhdGVnb3J5IDEsIENlbnRyYWwgUHVibGljIFNlY3RvciBFbnRlcnByaXNlcyApIGFuZCB0aGUgb25seSBjb21wYW55IGF1dGhvcml6ZWQgYnkgdGhlIEluZGlhbiBnb3Zlcm5tZW50IHRvIHByb3ZpZGUgb25saW5lIHJhaWx3YXkgdGlja2V0cywgY2F0ZXJpbmcgc2VydmljZXMsIGFuZCBwYWNrYWdlZCBkcmlua2luZyB3YXRlciBhdCByYWlsd2F5IHN0YXRpb25zIGFuZCB0cmFpbnMgaW4gSW5kaWEuDQoxOTk5OltNbnRuZ2ddW0Jvb2tdIFN0ZXZlIEhvdXNlIGlzIGEgd29ybGQtcmVub3duZWQgY2xpbWJlciwgbW91bnRhaW4gZ3VpZGUgYW5kIFBhdGFnb25pYSBhbWJhc3NhZG9yLCB3aWRlbHkgcmVnYXJkZWQgZm9yIGhpcyBjbGVhbiwgbGlnaHQtYW5kLWZhc3Qgc3R5bGUuIEhlIGhhcyBwdWJsaXNoZWQgYXJ0aWNsZXMgaW4gYSBudW1iZXIgb2YgcGVyaW9kaWNhbHMgaW5jbHVkaW5nOiBBbHBpbmlzdCwgUm9jayBhbmQgSWNlLCBDbGltYmluZywgVGhlIEFtZXJpY2FuIEFscGluZSBKb3VybmFsLCBHcmlwcGVkLCBDYW5hZGlhbiBBbHBpbmUgSm91cm5hbCwgQ2xpbWIsIFZlcnRpY2FsLCBNb250YWduZXMsIFJpc2ssIEFscCssIENhbXBvIEJhc2UsIERlc25pdmVsLCBhbmQgU3RpbGUgQWxwaW4uIEhpcyBlc3NheXMgaGF2ZSBiZWVuIHB1Ymxpc2hlZCBpbiBzZXZlcmFsIGJvb2tzIGluY2x1ZGluZzsgQ29udGFjdDogTW91bnRhaW4gQ2xpbWJpbmcgYW5kIEVudmlyb25tZW50YWwgVGhpbmtpbmc7IFNvbHRhcmksIGEgY29sbGVjdGlvbiBvZiBlc3NheXMgYWJvdXQgc29sbyBjbGltYmluZyBwdWJsaXNoZWQgaW4gSXRhbGlhbjsgQmVyZywgYSBHZXJtYW4gYm9vayBhYm91dCBjbGltYmluZyBpbiB0aGUgSGltYWxheWE7IGFuZCBhbiB1cGNvbWluZyBib29rIGFib3V0IE5hbmdhIFBhcmJhdCBlZGl0ZWQgYnkgUmVpbmhvbGQgTWVzc25lci4gSGUgaGFzIHdvcmtlZCBhcyBhIFBhdGFnb25pYSBhbHBpbmUgYW1iYXNzYWRvciBzaW5jZSAxOTk5LiBQdWJsaXNoZWQ6IFRyYWluaW5nIGZvciB0aGUgTmV3IEFscGluaXNtOiBBIE1hbnVhbCBmb3IgdGhlIENsaW1iZXIgYXMgQXRobGV0ZSBQYXBlcmJhY2sg4oCTIElsbHVzdHJhdGVkLCAzIEFwcmlsIDIwMTQNCjE5OTk6W01udG5nZ10gQ29ucmFkIEFua2VyIChib3JuIE5vdmVtYmVyIDI3LCAxOTYyKSBpcyBhbiBBbWVyaWNhbiByb2NrIGNsaW1iZXIsIG1vdW50YWluZWVyLCBhbmQgYXV0aG9yLiBIZSB3YXMgdGhlIHRlYW0gbGVhZGVyIG9mIFRoZSBOb3J0aCBGYWNlIGNsaW1iaW5nIHRlYW0gZm9yIDI2IHllYXJzIHVudGlsIDIwMTguWzJdIEluIDE5OTksIGhlIGxvY2F0ZWQgR2VvcmdlIE1hbGxvcnkncyBib2R5IG9uIEV2ZXJlc3QgYXMgYSBtZW1iZXIgb2YgYSBzZWFyY2ggdGVhbSBsb29raW5nIGZvciB0aGUgcmVtYWlucyBvZiB0aGUgQnJpdGlzaCBjbGltYmVyIHdobyB3YXMgbGFzdCBzZWVuIGluIDE5MjQuDQoxOTk5OlRoZSBQaXBpc3RyZWwgVmlydXMgZmxldyBmb3IgdGhlIGZpcnN0IHRpbWUgb24gQXVndXN0IDEwLCAxOTk5LiBQcm9kdWN0aW9uIGJlZ2FuIG9uIEphbnVhcnkgMjAsIDIwMDAuIFRoZSBkZXZlbG9wbWVudCBvZiB0aGUgc2hvcnQgd2luZyB2ZXJzaW9uIHN0YXJ0ZWQgaW4gMjAwNy4gVGhlIFZpcnVzIFNXIHByb2R1Y3Rpb24gc3RhcnRlZCBpbiAyMDA4LiBUaGUgVmlydXMgd29uIHRoZSBOQVNBIDIwMDcgUGVyc29uYWwgQWlyIFZlaGljbGUgKFBBVikgQ2hhbGxlbmdlIGFuZCB0aGUgMjAwOCBHZW5lcmFsIEF2aWF0aW9uIFRlY2hub2xvZ3kgKEdBVCkgQ2hhbGxlbmdlLg0KMTk5OTpbc2lsdmljc10gU3VzdGFpbmFibGUgUHJhY3RpY2VzOiBSZXNlYXJjaCBpbiB0aGUgMjB0aCBjZW50dXJ5IHZhbGlkYXRlZCB0aGF0IHNlY29uZC1ncm93dGggc3RhbmRzIGNvdWxkIGJlIHN1c3RhaW5hYmx5IG1hbmFnZWQgdGhyb3VnaCB0ZWNobmlxdWVzIGxpa2UgdGhlIHNlZWQgdHJlZSBtZXRob2QuIFRvZGF5LCBzaWx2aWN1bHR1cmUgZm9jdXNlcyBvbiBjb21wbGV4IHN0YW5kIHN0cnVjdHVyZXMsIGJhbGFuY2luZyBjb21tZXJjaWFsIGRlbWFuZCB3aXRoIGVudmlyb25tZW50YWwgc3Rld2FyZHNoaXAuIA0KDQoyMXN0IGNlbnR1cnkgQ0Ugc3RhcnRlZCBvbiAxc3QgSmFuIDIwMDEgQUQuDQoNCjIwMDBzOltSZXNlYXJjaF0gVGhlIGNsYWltIHRoYXQgIndlIGFyZSA2MCUgYmFuYW5hIiAob3Igc2hhcmUgNjAlIG9mIG91ciBETkEpIGlzIGEgcG9wdWxhciwgeWV0IG9mdGVuIG1pc2ludGVycHJldGVkLCBzdGF0aXN0aWMgdGhhdCBvcmlnaW5hdGVkIGZyb20gY29tcGFyaXNvbnMgb2YgcHJvdGVpbi1jb2RpbmcgZ2VuZXMsIGxpa2VseSBwb3B1bGFyaXplZCBpbiB0aGUgZWFybHkgMjAwMHMgZm9sbG93aW5nIHByZWxpbWluYXJ5IHN0dWRpZXMgb2YgdGhlIGJhbmFuYSBnZW5vbWUuIEl0IHJlZmVycyB0byBhYm91dCA2MCUgb2YgaHVtYW4gZ2VuZXMgaGF2aW5nIGEgcmVjb2duaXphYmxlIGNvdW50ZXJwYXJ0IGluIGJhbmFuYXMsIG5vdCA2MCUgb2Ygb3VyIHRvdGFsIEROQS4gDQpNYW55IG9mIHRoZSDigJxob3VzZWtlZXBpbmfigJ0gZ2VuZXMgdGhhdCBhcmUgbmVjZXNzYXJ5IGZvciBiYXNpYyBjZWxsdWxhciBmdW5jdGlvbiwgc3VjaCBhcyBmb3IgcmVwbGljYXRpbmcgRE5BLCBjb250cm9sbGluZyB0aGUgY2VsbCBjeWNsZSwgYW5kIGhlbHBpbmcgY2VsbHMgZGl2aWRlIGFyZSBzaGFyZWQgYmV0d2VlbiBtYW55IHBsYW50cyAoaW5jbHVkaW5nIGJhbmFuYXMpIGFuZCBhbmltYWxzLldoaWxlIDYwJSBvZiBnZW5lcyBoYXZlIGNvdW50ZXJwYXJ0cywgdGhlc2UgZXNzZW50aWFsIGdlbmVzIG1ha2UgdXAgb25seSBhIHNtYWxsIGZyYWN0aW9uIG9mIHRoZSB0b3RhbCBnZW5vbWU7IGh1bWFucyBhbmQgYmFuYW5hcyBhcmUgbm90IDYwJSBpZGVudGljYWwgb3ZlcmFsbC4gDQpUaGUgcGhyYXNlIGlzIGVzc2VudGlhbGx5IGEgc2ltcGxpZmllZCwgb2Z0ZW4tZXhhZ2dlcmF0ZWQsIHdheSBvZiBoaWdobGlnaHRpbmcgdGhhdCBhbGwgbGlmZSBzaGFyZXMgY29tbW9uIGFuY2VzdHJhbCBnZW5lcyBmb3IgYmFzaWMgY2VsbHVsYXIgcHJvY2Vzc2VzLiANCjIwMDBzOltNQkFdIFNob3VsZCBDb3N0IE1vZGVsaW5nOiBNb2Rlcm4gIlNob3VsZCBDb3N0IiBtb2RlbHMgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBpZGVhbCBjb3N0IG9mIGEgcHJvZHVjdCwgYWNjb3VudGluZyBmb3IgbGFib3IsIG1hdGVyaWFscywgYW5kIG92ZXJoZWFkLiBFbnZpcm9ubWVudGFsICYgU29jaWFsIEltcGFjdDogTW9kZXJuIENCQSBub3cgcm91dGluZWx5IGluY2x1ZGVzIGVudmlyb25tZW50YWwgYW5kIHNvY2lhbCBpbXBhY3RzIGluIGFkZGl0aW9uIHRvIGZpbmFuY2lhbCBvbmVzLiBTaGlmdCBmcm9tIExvY2FsIHRvIEdsb2JhbDogRWFybHksIGhpZ2hseSBsb2NhbCBhc3Nlc3NtZW50cyBldm9sdmVkIGludG8gbGFyZ2Utc2NhbGUsIG5hdGlvbmFsLCBhbmQgaW50ZXJuYXRpb25hbCBDQkEuIFJlZmluZW1lbnQgb2YgVGVjaG5pcXVlczogTW92aW5nIGZyb20gc2ltcGxlLCBzaW5nbGUtcGVyaW9kIG1vZGVscyB0byBjb21wbGV4LCBtdWx0aS1wZXJpb2Qgc2ltdWxhdGlvbnMuIEluY3JlYXNlZCBEYXRhIFVzZTogVGhlIGF2YWlsYWJpbGl0eSBvZiBsYXJnZSwgZ3JhbnVsYXIgZGF0YSBzZXRzIGhhcyBhbGxvd2VkIGZvciBtb3JlIHByZWNpc2UgYW5kIHJlbGlhYmxlIGFuYWx5c2lzLiANCjIwMDBzOltNbnRuZ2ddW0V4dHJlbWVdIEluIHRoZSBlYXJseSAyMDAwcywgRGlkaWVyIEJlcnRob2Qgd2FzIHRoZSBiZXN0IGNyYWNrIGNsaW1iZXIgaW4gdGhlIHdvcmxkLCB0aGVuIGhlIGRyb3BwZWQgb3V0IG9mIGNsaW1iaW5nIGFuZCBlc3NlbnRpYWxseSBkaXNhcHBlYXJlZCBmcm9tIHRoZSB3b3JsZC4NCjIwMDBzOltSZWFsdHldIEVhcmx5IDIwMDBzOiBSZWFsIGVzdGF0ZSB3YXMgaW4gaXRzIGVhcmx5IHN0YWdlcyBpbiBJbmRpYSwgd2l0aCBncmFkdWFsIGdyb3d0aCBhbmQgZGV2ZWxvcG1lbnQuIA0KMjAwMHM6VGVhbXdvcmsgaXMgbm93IGFuIGludGVncmFsIHBhcnQgb2Ygb3JnYW5pemF0aW9uYWwgc3RyYXRlZ3ksIHdpdGggYSBncmVhdGVyIGVtcGhhc2lzIG9uIGN1c3RvbWl6YXRpb24sIHBlcnNvbmFsaXphdGlvbiwgYW5kIHN0cmF0ZWdpYyBpbnRlZ3JhdGlvbiBvZiB0ZWFtLWJ1aWxkaW5nIHByYWN0aWNlcy4gVGhlIHJpc2Ugb2YgdGVjaG5vbG9neSBoYXMgYWxzbyBpbmZsdWVuY2VkIHRlYW13b3JrLCB3aXRoIHJlbW90ZSB3b3JrIGJlY29taW5nIG1vcmUgcHJldmFsZW50IGFuZCBuZXcgdG9vbHMgZW1lcmdpbmcgdG8gZmFjaWxpdGF0ZSBjb2xsYWJvcmF0aW9uLiANCg0KMjAwMDpbVVNdW0dlb1BvbGl0aWNzXSBvdmVydGhyb3cgb2YgU2xvYm9kYW4gTWlsb8WhZXZpxIcuIChVUydzIGludm9sdmVtZW50IGluIHJlZ2ltZSBjaGFuZ2UpDQoyMDAwOiBbR2VvUG9saXRpY3NdW01pbGl0YXJ5XVtFY29ub21pY3NdIFRoZSBVUyBEb2xsYXIgaG9sZHMgYSA3MiUgc2hhcmUgb2YgYWxsIGdsb2JhbCBjdXJyZW5jeSByZXNlcnZlcyBbWzE2OjQyXShodHRwOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dllKcmkxZU5SeWMmdD0xMDAyKV0uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdIDI2IEFwcmlsIDIwMDA6IHRoZSBHZXJtYW4gdGVhbSBvcGVyYXRpbmcgdGhlIG1hc3Mgc3BlY3Ryb21ldGVyIG9uIE5BU0EncyBTdGFyZHVzdCBtaXNzaW9uIGFubm91bmNlZCB0aGUgZGV0ZWN0aW9uIG9mIHZlcnkgbGFyZ2Ugb3JnYW5pYyBtb2xlY3VsZXMgaW4gaW50ZXJzdGVsbGFyIHNwYWNlLiBOb25iaW9sb2dpY2FsIHNvdXJjZXMgZm9yIG9yZ2FuaWMgbW9sZWN1bGVzIHNvIGxhcmdlIGFyZSBub3Qga25vd24uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdMTkgT2N0b2JlciAyMDAwLCBhIHRlYW0gb2YgYmlvbG9naXN0cyBhbmQgYSBnZW9sb2dpc3QgYW5ub3VuY2VkIHRoZSByZXZpdmFsIG9mIGJhY3RlcmlhIHRoYXQgYXJlIDI1MCBtaWxsaW9uIHllYXJzIG9sZCwgc3RyZW5ndGhlbmluZyB0aGF0IGNhc2UgdGhhdCBiYWN0ZXJpYWwgc3BvcmVzIGNhbiBiZSBpbW1vcnRhbC4NCjEzIERlY2VtYmVyIDIwMDA6IGEgTkFTQSB0ZWFtIGRlbW9uc3RyYXRlZCB0aGF0IHRoZSBtYWduZXRvc29tZXMgaW4gTWFycyBtZXRlb3JpdGUgQUxIIDg0MDAxIGFyZSBiaW9sb2dpY2FsLg0KMjAwMDpbUmVzZWFyY2hdW1NwYWNlXSBNaWxlaWtvd3NreSBDLCBDdWNpbm90dGEgRkEsIFdpbHNvbiBKVywgR2xhZG1hbiBCLCBIb3JuZWNrIEcsIExpbmRlZ3JlbiBMLCBNZWxvc2ggSiwgUmlja21hbiBILCBWYWx0b25lbiBNLCBaaGVuZyBKUS4gTmF0dXJhbCB0cmFuc2ZlciBvZiB2aWFibGUgbWljcm9iZXMgaW4gc3BhY2UuIEljYXJ1cyAyMDAwLCAxNDU6Mzkx4oCTNDI3LiBbRE9JXSBbUHViTWVkXSBbR29vZ2xlIFNjaG9sYXJdDQoyMDAwOltTcGFjZVhdIFMvMjAwMCAoOTApIDEgTW9vbiBEaXNjb3ZlcmVyOiBXaWxsaWFtIEouIE1lcmxpbmUgT3JiaXRzOiA5MCBBbnRpb3BlIEFic29sdXRlIG1hZ25pdHVkZTogOS4wMg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gZGVtb25zdHJhdGVkIFNob3LigJlzIGFsZ29yaXRobSBvbiBhIDUtcXViaXQgTk1SIHF1YW50dW0gY29tcHV0ZXIsIGZhY3RvcmluZyB0aGUgbnVtYmVyIDE1Lg0KMjAwMDogQXQgYWdlIDE0IGFuZCBpbiBjbGFzcyA4dGgsIEFhcm9uIFN3YXJ0eiBiZWNhbWUgYSBtZW1iZXIgb2YgdGhlIHdvcmtpbmcgZ3JvdXAgdGhhdCBhdXRob3JlZCB0aGUgUlNTIDEuMCB3ZWIgc3luZGljYXRpb24gc3BlY2lmaWNhdGlvbi4NCjIwMDA6IE1ha2VteVRyaXANCjIwMDAgKEphbiAxNCk6W0phY2tdIEthaG8gTmFhLi4uIFB5YWFyIEhhaQ0KMjAwMCAoRmViKTogSW5kaWFuIFJhaWx3YXlzIHdlYiBzaXRlIGkuZS4gaHR0cDovL2luZGlhbnJhaWx3YXlzLmdvdi5pbi8gd2FzIGRlcGxveWVkIGJ5IENSSVMuDQoyMDAwIChNYXIpOltCb29rXSBNYWxjb2xtIEdsYWR3ZWxsJ3MgZGVidXQgYm9vaywgVGhlIFRpcHBpbmcgUG9pbnQ6IEhvdyBMaXR0bGUgVGhpbmdzIENhbiBNYWtlIGEgQmlnIERpZmZlcmVuY2UuIA0KQmxpbms6IFRoZSBQb3dlciBvZiBUaGlua2luZyBXaXRob3V0IFRoaW5raW5nICgyMDA1LCBKYW4gMTEpOyANCk91dGxpZXJzOiBUaGUgU3Rvcnkgb2YgU3VjY2VzcyAoMjAwOCwgTm92IDE4KTsgDQpXaGF0IHRoZSBEb2cgU2F3OiBBbmQgT3RoZXIgQWR2ZW50dXJlcyAoMjAwOSwgT2N0IDIwKTsgDQpEYXZpZCBhbmQgR29saWF0aDogVW5kZXJkb2dzLCBNaXNmaXRzLCBhbmQgdGhlIEFydCBvZiBCYXR0bGluZyBHaWFudHMgKDIwMTMsIE9jdCAxKQ0KVGFsa2luZyB0byBTdHJhbmdlcnM6IFdoYXQgV2UgU2hvdWxkIEtub3cgYWJvdXQgdGhlIFBlb3BsZSBXZSBEb24ndCBLbm93ICgyMDE5KQ0KMjAwMCAoQXByIDEpOltCb29rXSBSb2JlcnQgS2l5b3Nha2kgJiBTaGFyb24gTGVjaHRlcidzIFJpY2ggRGFkIFBvb3IgRGFkLg0KMjAwMCAoQXByIDEpOltUZWNobm9sb2d5XVtSZXNlYXJjaF0gIldoeSBUaGUgRnV0dXJlIERvZXNuJ3QgTmVlZCBVcyIgaXMgYW4gYXJ0aWNsZSB3cml0dGVuIGJ5IEJpbGwgSm95IGluIHRoZSBBcHJpbCAyMDAwIGlzc3VlIG9mIFdpcmVkIG1hZ2F6aW5lLiBJbiB0aGUgYXJ0aWNsZSwgaGUgYXJndWVzIHRoYXQgIk91ciBtb3N0IHBvd2VyZnVsIDIxc3QtY2VudHVyeSB0ZWNobm9sb2dpZXPigJRyb2JvdGljcywgZ2VuZXRpYyBlbmdpbmVlcmluZywgYW5kIG5hbm90ZWNo4oCUYXJlIHRocmVhdGVuaW5nIHRvIG1ha2UgaHVtYW5zIGFuIGVuZGFuZ2VyZWQgc3BlY2llcy4iIA0KMjAwMCAoSnVuIDI2KTpbTXVzaWNdICJZZWxsb3ciIGlzIGEgc29uZyBieSB0aGUgQnJpdGlzaCByb2NrIGJhbmQgQ29sZHBsYXkuIFRoZSBiYW5kIHdyb3RlIHRoZSBzb25nIGFuZCBjby1wcm9kdWNlZCBpdCB3aXRoIEJyaXRpc2ggcmVjb3JkIHByb2R1Y2VyIEtlbiBOZWxzb24gZm9yIHRoZWlyIGRlYnV0IGFsYnVtLCBQYXJhY2h1dGVzICgyMDAwKS4gVGhlIHNvbmcgd2FzIHJlY29yZGVkIGluIE1hcmNoIDIwMDAgYW5kIHJlbGVhc2VkIG9uIDI2IEp1bmUgdGhhdCBzYW1lIHllYXIuDQoyMDAwIChTZXApOiBBbWF6b24ncyBKZWZmIEJlem9zIGZvdW5kZWQuDQoyMDAwIChTZXApOltDcmltZV1bSW5kaWFdIENoaG90YSBTaGFrZWVsJ3MgYXR0YWNrIG9uIFJhamFuIGluIGhpcyBCYW5na29rIGhvdGVsIHJvb20uDQoyMDAwIChTZXApOiBSYWlsVGVsIENvcnBvcmF0aW9uIG9mIEluZGlhIEx0ZC4gZm91bmRlZCBhbmQgSFEnZCBhdCAxNDMsIEluc3RpdHV0aW9uYWwgQXJlYSwgU2VjdG9yLTQ0LCBHdXJnYW9uLCBIYXJ5YW5hLCBJbmRpYS4gSXQgaXMgYSBNaW5pcmF0bmEgZW50ZXJwcmlzZSBvZiBHb3Zlcm5tZW50IG9mIEluZGlhIGZvY3VzaW5nIG9uIHByb3ZpZGluZyBicm9hZGJhbmQgYW5kIFZQTiBzZXJ2aWNlcy4NCjIwMDAgKFNlcCAxNyk6IFtHZW9Qb2xpdGljc10gVGhlIGlkZWEgb2YgYW4gQXNpYSBDb29wZXJhdGlvbiBEaWFsb2d1ZSAoQUNEKSB3YXMgcmFpc2VkIGF0IHRoZSBGaXJzdCBJbnRlcm5hdGlvbmFsIENvbmZlcmVuY2Ugb2YgQXNpYW4gUG9saXRpY2FsIFBhcnRpZXMgKGhlbGQgaW4gTWFuaWxhIGJldHdlZW4gMTfigJMyMCBTZXB0ZW1iZXIgMjAwMCkgYnkgU3VyYWtpYXJ0IFNhdGhpcmF0aGFpLCB0aGVuIGRlcHV0eSBsZWFkZXIgb2YgdGhlIG5vdyBkZWZ1bmN0IFRoYWkgUmFrIFRoYWkgUGFydHksIG9uIGJlaGFsZiBvZiBoaXMgcGFydHkgbGVhZGVyLCBUaGFrc2luIFNoaW5hd2F0cmEsIHRoZW4gUHJpbWUgTWluaXN0ZXIgb2YgVGhhaWxhbmQuIEl0IHdhcyBzdWdnZXN0ZWQgdGhhdCBBc2lhIGFzIGEgY29udGluZW50IHNob3VsZCBoYXZlIGl0cyBvd24gZm9ydW0gdG8gZGlzY3VzcyBBc2lhLXdpZGUgY29vcGVyYXRpb24uIEFmdGVyd2FyZHMsIHRoZSBpZGVhIG9mIHRoZSBBQ0Qgd2FzIGZvcm1hbGx5IHB1dCBmb3J3YXJkIGR1cmluZyB0aGUgMzR0aCBBU0VBTiBGb3JlaWduIE1pbmlzdGVycyBNZWV0aW5nIGluIEhhbm9pLCAyM+KAkzI0IEp1bHkgMjAwMSBhbmQgYXQgdGhlIEFTRUFOIEZvcmVpZ24gTWluaXN0ZXJzIFJldHJlYXQgaW4gUGh1a2V0LCAyMOKAkzIxIEZlYnJ1YXJ5IDIwMDIuDQoyMDAwIChPY3QgNCk6W011c2ljXSBGb3JtZWQgaW4gMTk5NiwgTGlua2luIFBhcmsgcm9zZSB0byBpbnRlcm5hdGlvbmFsIGZhbWUgd2l0aCB0aGVpciBkZWJ1dCBzdHVkaW8gYWxidW0sIEh5YnJpZCBUaGVvcnkuIEZvdXIgc2luZ2xlcyB3ZXJlIHJlbGVhc2VkIGZyb20gSHlicmlkIFRoZW9yeTogIk9uZSBTdGVwIENsb3NlciIsICJJbiB0aGUgRW5kIiwgIkNyYXdsaW5nIiBhbmQgIlBhcGVyY3V0IiwgYWxsIG9mIHRoZW0gYmVpbmcgcmVzcG9uc2libGUgZm9yIGxhdW5jaGluZyBMaW5raW4gUGFyayBpbnRvIG1haW5zdHJlYW0gcG9wdWxhcml0eS4gV2hpbGUgIkluIHRoZSBFbmQiIHdhcyB0aGUgbW9zdCBzdWNjZXNzZnVsIG9mIHRoZSBmb3VyLCBhbGwgb2YgdGhlIHNpbmdsZXMgaW4gdGhlIGFsYnVtIHJlbWFpbiBzb21lIG9mIHRoZSBiYW5kJ3MgbW9zdCBzdWNjZXNzZnVsIHNvbmdzIHRvIGRhdGUuDQoyMDAwIChOb3YgOSk6IGZvcm1hdGlvbiBvZiBVdHRhcmFraGFuZCBhcyBVdHRhcmFuY2hhbCAyMDAwIChKdW4gOSk6IEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQWN0LCAyMDAwLiBUaGUgYmlsbCB3YXMgcGFzc2VkIGluIHRoZSBidWRnZXQgc2Vzc2lvbiBvZiAyMDAwIGFuZCBzaWduZWQgYnkgUHJlc2lkZW50IEsuIFIuIE5hcmF5YW5hbiBvbiA5IE1heSAyMDAwLiBUaGUgYmlsbCB3YXMgZmluYWxpc2VkIGJ5IGdyb3VwIG9mIG9mZmljaWFscyBoZWFkZWQgYnkgdGhlbiBNaW5pc3RlciBvZiBJbmZvcm1hdGlvbiBUZWNobm9sb2d5LCBQcmFtb2QgTWFoYWphbi4NCjIwMDA6IGZvcm1hdGlvbiBvZg0KMjAwMDogSmFpc2gtZS1Nb2hhbW1lZCAobGl0ZXJhbGx5ICJUaGUgQXJteSBvZiBNdWhhbW1hZCIsIEplTSkgZm91bmRlZCBhdCBCYWhhd2FscHVyLCBQdW5qYWIsIFBha2lzdGFuLg0KMjAwMDogQ2hpbmEncyBCZWlEb3UgbmF2aWdhdGlvbiB0ZXN0IHN5c3RlbSBzdGFydHMuDQoyMDAwOiBGaXNlcnYgaGFkIGFjcXVpcmVkIG1vcmUgdGhhbiA5MCBidXNpbmVzc2VzLiBUaGUgbnVtYmVyIG9mIGVtcGxveWVlcyBncmV3IGZyb20gMjY0IHRvIDE0LDAwMC4gRmlzZXJ2IHdhcyBhbiBpbmR1c3RyeSBsZWFkZXIsIHdpdGggcmV2ZW51ZSB0aGF0IGluY3JlYXNlZCBmcm9tICQyMSBtaWxsaW9uIHRvICQxLjQgYmlsbGlvbiBpbiAxNSB5ZWFycy4NCjIwMDAgKERlYyA4KTpbR2FtaW5nXSBQcm9qZWN0IEkuRy5JLiBpcyBhIHRhY3RpY2FsIGZpcnN0LXBlcnNvbiBzaG9vdGVyIHZpZGVvIGdhbWUuIEl0IHdhcyBkZXZlbG9wZWQgYnkgSW5uZXJsb29wIFN0dWRpb3MgYW5kIHJlbGVhc2VkIGluIERlY2VtYmVyIDIwMDAgYnkgRWlkb3MgSW50ZXJhY3RpdmUuIFRoZSBnYW1lIHJlY2VpdmVkIG1peGVkIHJldmlld3MgZHVlIHRvIHNob3J0Y29taW5ncyBpbmNsdWRpbmcgYSBwb29ybHkgcHJvZ3JhbW1lZCBBLkkuLCBsYWNrIG9mIGEgbWlkLWdhbWUgc2F2ZSBvcHRpb24sIGFuZCB0aGUgbGFjayBvZiBtdWx0aXBsYXllciBmZWF0dXJlcy4gSG93ZXZlciBpdCB3YXMgcHJhaXNlZCBmb3IgaXRzIHNvdW5kIGRlc2lnbiBhbmQgZ3JhcGhpY3MsIHRoYW5rcyBpbiBwYXJ0IHRvIGl0cyB1c2Ugb2YgYSBwcm9wcmlldGFyeSBnYW1lIGVuZ2luZSB0aGF0IHdhcyBwcmV2aW91c2x5IHVzZWQgaW4gSW5uZXJsb29wJ3MgSm9pbnQgU3RyaWtlIEZpZ2h0ZXIuDQoyMDAwIChEZWMgMjEpOltKYWNrXSBSYWp1IENoYWNoYSByZWxlYXNlZC4NCjIwMDA6IFtCdXNpbmVzc11bRmluYW5jZV1bQ29ycG9yYXRlXVtJbmRpYV0gUklMIHBpbG90ZWQgd29ybGQncyBsYXJnZXN0IHBldHJvbGV1bSByZWZpbmVyeSBhdCBKYW1uYWdhciwgR3VqYXJhdCwgcmVmaW5pbmcgMS4yNE1uIGJhcnJlbHMvZGF5Lg0KMjAwMDpbQ3JpbWVdW0luZGlhXSBQb2xpY2UgZW5jb3VudGVycyBpbiBNdW1iYWkuIE1vc3QgY3JpbWluYWxzIGZsZWVpbmcgdG8gQ2FsY3VsdHRhLiBBZnRhYiBCaGF0a2kgZGVzdGFiaWxpc2UgdGhlIGVjb25vbXkgYnkgc3ByZWFkaW5nIGZha2UgY3VycmVuY3kgbm90ZXMgcHJpbnRlZCBieSBJU0kgZnVuY3Rpb25hcmllcywgYW5kIHR3bywgc2VuZCBtZXJjZW5hcmllcyB0byBjb25kdWN0IGFiZHVjdGlvbnMgYW5kIHRlcnJvcmlzdCBhdHRhY2tzLg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBUZWNobmljYWwgVW5pdmVyc2l0eSBvZiBNdW5pY2ggKDUgcXViaXQpOyBMb3MgQWxhbW9zIE5hdGlvbmFsIExhYiAoNyBxdWJpdHMpDQoyMDAwOkluIDIwMDAsIFRhdGEgVGVhIGFjcXVpcmVkIHRoZSBUZXRsZXkgVGVhIENvbXBhbnkgZm9yICQ0MDcgbWlsbGlvbi4gT3RoZXIgbm90YWJsZSBhY3F1aXNpdGlvbnMgaW5jbHVkZSBOYXRTdGVlbCAoMjAwNCksIEJydW5uZXIgTW9uZCAoMjAwNSksIGFuZCBFaWdodCBPJ0Nsb2NrIENvZmZlZSAoMjAwNikuIA0KMjAwMDogQmlybGEgYWNxdWlyZWQgSW5kaWFuIEFsdW1pbnVtIENvbXBhbnkgKElOREFMKS4gDQoyMDAwOiBTYXR5YSBOYXJheWFuYSBHb2Vua2Egd29ya2VkIGFzIGFuIGludGVybmF0aW9uYWwgYnVzaW5lc3NtYW4gYmFzZWQgaW4gTXlhbm1hciBhbmQgSW5kaWEgZm9yIGEgbGFyZ2UgcGFydCBvZiBoaXMgbGlmZS4gSGUgd2FzIGEga2V5bm90ZSBzcGVha2VyIG9uIHRoZSBzdWJqZWN0IG9mIFNwaXJpdHVhbGl0eSBpbiBCdXNpbmVzcyBhdCB0aGUgMzB0aCBXb3JsZCBFY29ub21pYyBGb3J1bSBpbiBEYXZvcywgU3dpdHplcmxhbmQgYmV0d2VlbiAyNiBKYW4gYW5kIDIgRmViIDIwMDAuIFR3byB5ZWFycyBsYXRlciBoZSBjb25kdWN0ZWQgdGhlIGZpcnN0IDEwLWRheSBjb3Vyc2UgaW4gVmlwYXNzYW5hIE1lZGl0YXRpb24gZXNwZWNpYWxseSBmb3IgYnVzaW5lc3MgZXhlY3V0aXZlcyBhbmQgZ292ZXJubWVudCBvZmZpY2lhbHMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAyMjUgeWVhcnMgb2YgSW5kZXBlbmRlbnQgVVNBIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIA0KDQoyMDAxOltVU11bR2VvUG9saXRpY3NdIGludmFzaW9uIG9mIEFmZ2hhbmlzdGFuLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMjAwMTpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgU2hhbmdoYWkgQ29vcGVyYXRpb24gT3JnYW5pc2F0aW9uIChTQ08pIGlzIGEgRXVyYXNpYW4gcG9saXRpY2FsLCBlY29ub21pYywgaW50ZXJuYXRpb25hbCBzZWN1cml0eSBhbmQgZGVmZW5jZSBvcmdhbml6YXRpb24gb2YgdGVuIG1lbWJlciBzdGF0ZXMuIEl0IHdhcyBlc3RhYmxpc2hlZCBpbiAyMDAxIGJ5IHRoZSBQZW9wbGUncyBSZXB1YmxpYyBvZiBDaGluYSwgS2F6YWtoc3RhbiwgS3lyZ3l6c3RhbiwgUnVzc2lhLCBhbmQgVGFqaWtpc3RhbiBhbmQgVXpiZWtpc3Rhbi4gSW4gSnVuZSAyMDE3LCBpdCBleHBhbmRlZCB0byBlaWdodCBzdGF0ZXMsIHdpdGggSW5kaWEgYW5kIFBha2lzdGFuLiBJcmFuIGpvaW5lZCB0aGUgZ3JvdXAgaW4gSnVseSAyMDIzLCBhbmQgQmVsYXJ1cyBpbiBKdWx5IDIwMjQuIFNldmVyYWwgY291bnRyaWVzIGFyZSBlbmdhZ2VkIGFzIG9ic2VydmVycyBvciBkaWFsb2d1ZSBwYXJ0bmVycy4gRm91bmRlcnM6IENoaW5hLCBSdXNzaWEsIEthemFraHN0YW4sIFV6YmVraXN0YW4sIEt5cmd5enN0YW4sIFRhamlraXN0YW47IEhlYWRxdWFydGVyczogQmVpamluZywgQ2hpbmE7IEZvdW5kZWQ6IDE1IEp1bmUgMjAwMQ0KMjAwMTpbQnVzaW5lc3NdIDIwMDHigJMyMDA1OiBIRlQgZXhlY3V0aW9uIHRpbWVzIGRlY3JlYXNlZCBmcm9tIHNldmVyYWwgc2Vjb25kcyB0byBtaWxsaXNlY29uZHMuIChIRlQpDQoyMDAxOltDb21wdXRpbmddW1F1YW50dW1dICBJQk0gaW1wbGVtZW50ZWQgR3JvdmVy4oCZcyBhbGdvcml0aG0gb24gYSA3LXF1Yml0IE5NUiBxdWFudHVtIGNvbXB1dGVyLCBmaW5kaW5nIGEgbWFya2VkIGl0ZW0gaW4gYSBkYXRhYmFzZSBvZiA0IGVudHJpZXMuDQoyMDAxOiBMaWZlIG9mIFBpIGlzIGEgQ2FuYWRpYW4gcGhpbG9zb3BoaWNhbCBub3ZlbCBieSBZYW5uIE1hcnRlbCBwdWJsaXNoZWQuIFRoZSBwcm90YWdvbmlzdCBpcyBQaXNjaW5lIE1vbGl0b3IgIlBpIiBQYXRlbCwgYW4gSW5kaWFuIGJveSBmcm9tIFBvbmRpY2hlcnJ5IHdobyBleHBsb3JlcyBpc3N1ZXMgb2Ygc3Bpcml0dWFsaXR5IGFuZCBtZXRhcGh5c2ljcyBmcm9tIGFuIGVhcmx5IGFnZS4gSGUgc3Vydml2ZXMgMjI3IGRheXMgYWZ0ZXIgYSBzaGlwd3JlY2sgd2hpbGUgc3RyYW5kZWQgb24gYSBsaWZlYm9hdCBpbiB0aGUgUGFjaWZpYyBPY2VhbiB3aXRoIGEgQmVuZ2FsIHRpZ2VyIHdoaWNoIHJhaXNlcyBxdWVzdGlvbnMgYWJvdXQgdGhlIG5hdHVyZSBvZiByZWFsaXR5IGFuZCBob3cgaXQgaXMgcGVyY2VpdmVkIGFuZCB0b2xkLjtTZXZlbiBTdG9yaWVzICgxOTkzKQ0KMjAwMTpbQ3JpbWVdW0luZGlhXSBDaGhvdGEgUmFqYW4ncyBhc3NvY2lhdGVzIHRyYWNrZWQgZG93biBhbmQgc2hvdCBkZWFkIGhvdGVsaWVyIFZpbm9kIGluIE11bWJhaSwgYXMgd2VsbCBhcyBTdW5pbCBTb2FucyDigJMgYW5vdGhlciBEYXdvb2QgYXNzb2NpYXRlLg0KMjAwMSAoSmFuIDEpOltCb29rXSBHcmVnIE1jS2Vvd24ncyBFc3NlbnRpYWxpc206IFRoZSBEaXNjaXBsaW5lZCBQdXJzdWl0IG9mIExlc3MNCjIwMDEgKEphbiAxKTpbQm9va10gQnJpYW4gVHJhY3kncyBFYXQgVGhhdCBGcm9nIQ0KMjAwMTogVGhlIEFyZHVpbm8gcHJvamVjdCBzdGFydGVkIGF0IHRoZSBJbnRlcmFjdGlvbiBEZXNpZ24gSW5zdGl0dXRlIEl2cmVhIChJRElJKSBpbiBJdnJlYSwgSXRhbHkuIEF0IHRoYXQgdGltZSwgdGhlIHN0dWRlbnRzIHVzZWQgYSBCQVNJQyBTdGFtcCBtaWNyb2NvbnRyb2xsZXIgYXQgYSBjb3N0IG9mICQxMDAsIGEgY29uc2lkZXJhYmxlIGV4cGVuc2UgZm9yIG1hbnkgc3R1ZGVudHMuDQoyMDAxIChBcHIgNHRoKTogQ2hhcmxlcyBNLiBWZXN0LCB0aGUgdGhlbiBQcmVzaWRlbnQgb2YgTUlUIGFubm91bmNlZCBPcGVuQ291cnNlV2FyZSAoT0NXKSBwdWJsaWNpemluZyBhbGwgb2YgaXRzIDIsMDAwIGNvdXJzZXMgIGF0IHRoZSBlc3RpbWF0ZWQgY29zdCBvZiAkMTAwIG1pbGxpb24gKG9uIGFuIGF2Zy4sIGEgTUlUIHN0dWRlbnRzIHBheXMgYXJvdW5kICQyNiwwMDAgYXMgb2ZmbGluZSB0dWl0aW9uIGZlZSkNCjIwMDE6IFVTIGludmFkZWQgQWZnaGFuaXN0YW4gaW4gcmVzcG9uc2UgdG8gOS8xMSBhdHRhY2tzLiBPZmZpY2lhbGx5LCBJdCBoYXMgYmVjb21lIHRoZSBsb25nZXN0IHdhciBpbiBBbWVyaWNhbiBoaXN0b3J5Lg0KMjAwMTogaVBvZCBieSBUb255IEZhZGVsbA0KMjAwMSAoSnVuIDE1KTpbSmFja10gR2FkYXI6IEVrIFByZW0gS2F0aGE7IExhZ2FhbjogT25jZSBVcG9uIGEgVGltZSBpbiBJbmRpYQ0KMjAwMSAoU2VwIDExKTogOS8xMSBUZXJyb3Jpc3QgYXR0YWNrcy4gVGhlIFNlcHRlbWJlciAxMSBvciA5LzExLCBhdHRhY2tzIHdlcmUgYSBzZXJpZXMgb2YgZm91ciBjb29yZGluYXRlZCB0ZXJyb3Jpc3QgYXR0YWNrcyBieSB0aGUgSXNsYW1pYyB0ZXJyb3Jpc3QgZ3JvdXAgYWwtUWFlZGEgb24gdGhlIFVuaXRlZCBTdGF0ZXMgb24gdGhlIG1vcm5pbmcgb2YgVHVlc2RheSwgU2VwIDExLiBUaGUgbG9zcyBvZiBsaWZlIHdhcyBlc3RpbWF0ZWQgYXQganVzdCB1bmRlciAzLDAwMC4gVGhlIGV2ZW50IGNoYW5nZWQgQW1lcmljYW4gZm9yZWlnbiBwb2xpY3kuIEl0IHdhcyBhIG1vdGl2YXRpbmcgZmFjdG9yIGJlaGluZCB0aGUgY29udHJvdmVyc2lhbCBpbnZhc2lvbiBvZiBJcmFxIGFuZCBsZWQgdG8gYSDigJh3YXIgb24gdGVycm9y4oCZIHN5bWJvbGlzZWQgYnkgR3VhbnRhbmFtbyBCYXkgYW5kIGEgZGViYXRlIG92ZXIgdGhlIGp1c3RpZmljYXRpb24gb2YgdG9ydHVyZS4NCjIwMDEgKE9jdCA3KTpbR2VvUG9saXRpY3NdIFVuaXRlZCBTdGF0ZXMgaW52YXNpb24gb2YgQWZnaGFuaXN0YW46IEluIGxhdGUgMjAwMSwgdGhlIFVuaXRlZCBTdGF0ZXMgYW5kIGl0cyBjbG9zZSBhbGxpZXMgaW52YWRlZCBBZmdoYW5pc3RhbiBhbmQgdG9wcGxlZCB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50LiBUaGUgaW52YXNpb24ncyBzdGF0ZWQgYWltcyB3ZXJlIHRvIGRpc21hbnRsZSBhbC1RYWVkYSwgd2hpY2ggaGFkIGV4ZWN1dGVkIHRoZSBTZXB0ZW1iZXIgMTEgYXR0YWNrcywgYW5kIHRvIGRlbnkgaXQgYSBzYWZlIGJhc2Ugb2Ygb3BlcmF0aW9ucyBpbiBBZmdoYW5pc3RhbiBieSByZW1vdmluZyB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50IGZyb20gcG93ZXIuIERlYyA3LCAyMDAxIG9ud2FyZCBzdGFydGVkIFdhciBpbiBBZmdoYW5pc3Rhbi4NCjIwMDEgKE9jdCAxNik6W0Jvb2tdIE1jS2luc2V5IFJlc2VhcmNoZXIgSmFtZXMgQy4gQ29sbGlucycgR29vZCBUbyBHcmVhdDogV2h5IFNvbWUgQ29tcGFuaWVzIE1ha2UgdGhlIExlYXAuLi5BbmQgT3RoZXJzIERvbid0OyANCjIwMDEgKE5vdik6W0NyaW1lXVtJbmRpYV0gQWJkdWwgR2FmZmFyIGFsaWFzIENoaWtuYSBHYWZmYXIgY2F1Z2h0IGJ5IHRoZSBkZXRlY3RpdmUgZGVwYXJ0bWVudCBpbiBDYWxjdXR0YSANCjIwMDEgKEphbiAyKTogVGhlIG5vcnRoZXJuIGVsZWN0cmljYWwgZ3JpZCBjb2xsYXBzZWQgaW4gSW5kaWEuIEEgZmF1bHQgaW4gdGhlIHRyYW5zbWlzc2lvbiBzeXN0ZW0gaW4gdGhlIHN0YXRlIG9mIFV0dGFyIFByYWRlc2ggbGVkIHRvIGNhc2NhZGluZyBmYWlsdXJlIHRocm91Z2hvdXQgbm9ydGhlcm4gSW5kaWEgYWZmZWN0aW5nIDIzIGNyb3JlIHJlc2lkZW50cy4NCjIwMDE6IElWUlMgKCdJbnRlcmFjdGl2ZSBWb2ljZSBSZXNwb25zZSBTeXN0ZW0nKSBmb3IgdGVsZXBob25pYyBlbnF1aXJpZXMgYWJvdXQgdHJhaW5zIGludHJvZHVjZWQgaW4gc29tZSBzdGF0aW9ucy4NCjIwMDE6IE1hZGVFYXN5IGluY29ycG9yYXRlZCBhdCA0NC1BLzEsIEthbHUgU2FyYWksIE5lYXIgSGF1eiBLaGFzIE1ldHJvIFN0YXRpb24sIE5ldyBEZWxoaS0xMTAwMTYNCjIwMDE6IEFjYyB0byAyMDAxIGNlbnN1cywgMzAgbGFraHMgd2VyZSBpbW1pZ3JhdGVkIHRvIEluZGlhIGZyb20gQmFuZ2xhZGVzaCBhbG9uZSwgZm9sbG93ZWQgYnkgMTAgbGFraHMgZnJvbSBQYWtpc3RhbiBhbmQgNiBsYWtocyBmcm9tIE5lcGFsLg0KMjAwMSAoRGVjIDEzKTpbQ3JpbWVdW0luZGlhXSBUZXJyb3Jpc3QgYXR0YWNrIG9uIEluZGlhJ3MgUGFybGlhbWVudC4NCjIwMDE6IHRoZSBjdXN0b21lciBiYXNlIG9mIG1vYmlsZSBwaG9uZSBjb21wYW5pZXMgd2FzIDQgbWlsbGlvbi4NCjIwMDE6IEJlbmVmaXQgbGFubmVycywgVGV4YXMgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBIZWFsdGggQmVuZWZpdCBkaXZpc2lvbi4NCjIwMDE6IE5ldyBIb3Jpem9ucyB3YXMgaW5pdGlhbGx5IHNlbGVjdGVkIGZvciBmdW5kaW5nIGluIDIwMDEgYnV0IHdhcyBleGNsdWRlZCBmcm9tIHRoZSBOQVNBIDIwMDMgYnVkZ2V0LiBGdW5kaW5nIGZvciB0aGUgbWlzc2lvbiB3YXMgcmVpbnN0YXRlZCBhZnRlciBOZXcgSG9yaXpvbnMgd2FzIGxpc3RlZCBhcyBhIHRvcCBwcmlvcml0eSBpbiB0aGUgUGxhbmV0YXJ5IFNjaWVuY2UgRGVjYWRhbCBTdXJ2ZXkgb2YgMjAwM+jjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlallkllklklklklklklklklklklklklklklklklklklklklklklklklklklklkjjajlkasjdlajdlkajdlaj
+KAkzIwMDEuDQoxOTkzOiBBc2hvayBIYWxsIEdpcmwncyBSZXNpZGVudGlhbCBTY2hvb2wsIE1hamtoYWxpLg0KMTk5MzogQnkgdGhpcyB5ZWFyIHRoZXJlIHdlcmUgYXJvdW5kIDEwMCB3ZWItc2VydmVycyBhY3Jvc3MgdGhlIHdvcmxkLiAoQSByZXBvcnQgcHVibGlzaGVkIGluIGZpcnN0IGlzc3VlIG9mIFRoZSBXb3JsZCBXaWRlIFdlYiBOZXdzbGV0dGVyLCAxOTkzKQ0KMTk5MzogQUMgMy10aWVyIGNvYWNoZXMgJiBTbGVlcGVyIGNsYXNzIGFyZSBpbnRyb2R1Y2VkIGFwYXJ0IGZyb20gc2Vjb25kIGNsYXNzLg0KMTk5MzogR29JJ3MgRGlzdHJpY3QgUHJpbWFyeSBFZHVjYXRpb24gUHJvZ3JhbW1lIChEUEVQKSB3YXMgbGF1bmNoZWQsIHdpdGggYW4gYWltIG9mIGFjaGlldmluZyB0aGUgb2JqZWN0aXZlIG9mIHVuaXZlcnNhbCBwcmltYXJ5IGVkdWNhdGlvbi4gVGhpcyBwcm9ncmFtbWVkIGxhaWQgdGhlIGZvdW5kYXRpb25zIGZvciDgpLjgpLDgpY3gpLUg4KS24KS/4KSV4KWN4KS34KS+IOCkheCkreCkv+Ckr+CkvuCkqChFZHVjYXRpb24gZm9yIEFsbCBNb3ZlbWVudCkgYWltZWQgYXQgdGhlIHVuaXZlcnNhbGlzYXRpb24gb2YgZWxlbWVudGFyeSBlZHVjYXRpb24gbWFraW5nIGZyZWUgYW5kIGNvbXB1bHNvcnkgZWR1Y2F0aW9uIHRvIGNoaWxkcmVuIGJldHdlZW4gdGhlIGFnZXMgb2YgNiB0byAxNC4NCjE5OTM6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIHNwbGl0IHdpdGggRGF3b29kIGFuZCBmb3JtZWQgYW4gaW5kZXBlbmRlbnQgZ2FuZyB0aGF0IGZyZXF1ZW50bHkgY2xhc2hlZCB3aXRoIERhd29vZCdzIEQtQ29tcGFueS4NCjE5OTMgKEphbiA3KTpbQ3JpbWVdIFJpb3RzIHJlLXN0YXJ0ZWQgaW4gTXVtYmFpIGFuZCBsYXN0ZWQgZm9yIDIwIGRheXMuIFRoZSBJU0ksIHdoaWNoIGNvbnRyb2xsZWQgc2hpcHBpbmcgcm91dGVzIGZyb20gdGhlIEd1bGYgdG8gSW5kaWEncyB3ZXN0IGNvYXN0LCBkZW1hbmRlZCB0aGF0IHRoZSBtYWZpYSB0cmFuc3BvcnQgd2VhcG9ucyBhbmQgZXhwbG9zaXZlcyBpbnRvIEluZGlhIGluIHJldHVybiBmb3IgdGhlIHVzZSBvZiBQYWtpc3RhbidzIHdhdGVycy4gRGF3b29kIG1ldCB0aGVpciBJU0kgaGFuZGxlcnMgaW4gYSA1IHN0YXIgaG90ZWwgb2YgRHViYWkgaW4gSmFuIG9yIEZlYiBvZiAxOTkzLCB0aGVuIGNhbWUgdGhlIFJEWCB0aHJvdWdoIHRoZSBzYW1lIHBvcm91cyBhbmQgdW5jaGVja2VkIHNlYSByb3V0ZSB0aGF0IDI2LzExIGF0dGFja2VycyBzbGlwcGVkIGFjcm9zcyBhbmQgd3JlY2tlZCBtYXloZW0gaW4gTXVtYmFpLiBUaGUg4oCZOTMgYXR0YWNrcyB3ZXJlIGZpbmFsbHkgZXhlY3V0ZWQgaW4gbWFyY2ggdGhhdCBjbGFpbWVkIHNvbWUgMzAwIGlubm9jZW50IGxpdmVzLg0KMTk5MyAoTWFyIDYpOltQb2xpdHldW0luZGlhXSBTaGFyYWQgUGF3YXIgcmUtZWxlY2V0ZCBhcyBDTSBvZiBNSCBmb3IgMiB5ZWFycy4NCjE5OTMgKE1hciAxMik6W0NyaW1lXSBUaGUgMTk5MyBCb21iYXkgYm9tYmluZ3Mgd2VyZSBhIHNlcmllcyBvZiAxMiB0ZXJyb3Jpc3QgYm9tYmluZ3MgdGhhdCB0b29rIHBsYWNlIGluIEJvbWJheS4gVGhlIHNpbmdsZS1kYXkgYXR0YWNrcyByZXN1bHRlZCBpbiAyNTcgZmF0YWxpdGllcyBhbmQgMSw0MDAgaW5qdXJpZXMuIFRoZXJlIHdhcyBhbm90aGVyIHJhaWQgbmVhciBNYW5pc2ggbWFya2V0IHdoZXJlIGhhbmQgZ3JlbmFkZXMgd2VyZSByZWNvdmVyZWQuIEFmdGVyIGFub3RoZXIgdGlwIG9mZiBsZWQgdG8gZGlzY292ZXJ5IG9mIGEgaHVnZSBxdWFudGl0eSBvZiBSRFggZnJvbSBOYWdsYSBCdW5kZXIgb2ZmIEdob2RidW5kZXIgUm9hZCBpbiBUaGFuZS4g4oCcSW4gYWxsLCA1LDAwMCBraWxvZ3JhbXMgb2YgUkRYIHdhcyBicm91Z2h0IGludG8gTXVtYmFpIGFuZCB3ZSByZWNvdmVyZWQgMywzMDAga2lsb2dyYW1zIG9mIGl0IGluIGFsbCB0aGUgcmFpZHMs4oCdIHNheXMgQ2hhdWd1bGUuIFJlZHVjZWQgU2hvY2sgU2Vuc2l0aXZpdHkgKFJTUykgZXhwbG9zaXZlcywgc3VjaCBhcyBSU1MtUkRYLCB3aGljaCBjb3N0cyBhYm91dCBScy4gMSw1MDAtMiwwMDAgcGVyIGtnLiBBbmVlcyBjb250aW51ZWQgb3BlcmF0aW9uIG9mIEQtQ29tcGFueSB3aGljaCBpbmNsdWRlIGNvbnRyYWN0IGtpbGxpbmcsIGV4dG9ydGlvbiwgdGhlIGNpcmN1bGF0aW9uIG9mIGNvdW50ZXJmZWl0IGN1cnJlbmN5LCBhbmQgdGhlIHByb3Zpc2lvbiBvZiBhIHJhbmdlIG9mIGZyZWUtbGFuY2Ugc2VydmljZXMgdG8gdGVycm9yaXN0IGdyb3VwcyBhdCB0aGUgaW5zdGFuY2Ugb2YgUGFraXN0YW4ncyBJbnRlciBTZXJ2aWNlcyBJbnRlbGxpZ2VuY2UgKElTSSkuIEludGVycG9sIFJlZCBDb3JuZXIgbm90aWNlIGZvciBELUNvbXBhbnkuDQoxOTkzIChOb3YgMSk6IFRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGZvdW5kZWQuIEl0IGlzIGFuIGVjb25vbWljIGFuZCBwb2xpdGljYWwgcGFydG5lcnNoaXAgaW52b2x2aW5nIDI4IEV1cm9wZWFuIGNvdW50cmllcy4gSXQgYmVnYW4gYWZ0ZXIgV1cyIHRvIGZvc3RlciBlY29ub21pYyBjby1vcGVyYXRpb24sIHdpdGggdGhlIGlkZWEgdGhhdCBjb3VudHJpZXMgd2hpY2ggdHJhZGUgdG9nZXRoZXIgYXJlIG1vcmUgbGlrZWx5IHRvIGF2b2lkIGdvaW5nIHRvIHdhciB3aXRoIGVhY2ggb3RoZXIuDQoxOTkzIChOb3YgMyk6IFtHZW9Qb2xpdGljc10gVGhlIENvbW1vbiBNYXJrZXQgZm9yIEVhc3Rlcm4gYW5kIFNvdXRoZXJuIEFmcmljYSAoQ09NRVNBKSBpcyBhIHJlZ2lvbmFsIGVjb25vbWljIGNvbW11bml0eSBpbiBBZnJpY2Egd2l0aCB0d2VudHktb25lIG1lbWJlciBzdGF0ZXMgc3RyZXRjaGluZyBmcm9tIFR1bmlzaWEgdG8gRXN3YXRpbmkuIENPTUVTQSB3YXMgZm9ybWVkIGluIERlY2VtYmVyIDE5OTQsIHJlcGxhY2luZyBhIFByZWZlcmVudGlhbCBUcmFkZSBBcmVhIHdoaWNoIGhhZCBleGlzdGVkIHNpbmNlIDE5ODEuIE5pbmUgb2YgdGhlIG1lbWJlciBzdGF0ZXMgZm9ybWVkIGEgZnJlZSB0cmFkZSBhcmVhIGluIDIwMDAgKERqaWJvdXRpLCBFZ3lwdCwgS2VueWEsIE1hZGFnYXNjYXIsIE1hbGF3aSwgTWF1cml0aXVzLCBTdWRhbiwgWmFtYmlhIGFuZCBaaW1iYWJ3ZSksIHdpdGggUndhbmRhIGFuZCBCdXJ1bmRpIGpvaW5pbmcgdGhlIEZUQSBpbiAyMDA0LCB0aGUgQ29tb3JvcyBhbmQgTGlieWEgaW4gMjAwNiwgU2V5Y2hlbGxlcyBpbiAyMDA5IGFuZCBUdW5pc2lhIGFuZCBTb21hbGlhIGluIDIwMTguDQoxOTkzIChEZWMgMjApOiBPSENIUiBmb3JtZWQuIFRoZSBPZmZpY2Ugb2YgdGhlIFVuaXRlZCBOYXRpb25zIEhpZ2ggQ29tbWlzc2lvbmVyIGZvciBIdW1hbiBSaWdodHMgKE9IQ0hSKSwgYSBVbml0ZWQgTmF0aW9ucyBhZ2VuY3kgdGhhdCB3b3JrcyB0byBwcm9tb3RlIGFuZCBwcm90ZWN0IHRoZSBodW1hbiByaWdodHMgdGhhdCBhcmUgZ3VhcmFudGVlZCB1bmRlciBpbnRlcm5hdGlvbmFsIGxhdyBhbmQgc3RpcHVsYXRlZCBpbiB0aGUgVW5pdmVyc2FsIERlY2xhcmF0aW9uIG9mIEh1bWFuIFJpZ2h0cyBvZiAxOTQ4Lg0KMTk5Mzp0aGUgMjR0aCBhbmQgbGFzdCBHTE9OQVNTIHNhdGVsbGl0ZSB3YXMgbGF1bmNoZWQgZm9ybWluZyB0aGUgd2hvbGUgbmF2aWdhdGlvbiBjb25zdGVsbGF0aW9uIHNpbWlsYXIgdG8gdGhhdCBvZiBVUydzIEdQUy4NCjE5OTM6IFNIQS0wIChhIGhhc2ggZnVuY3Rpb24pIHdhcyBwcm9wb3NlZCBieSBOSVNULCBNYXJ5bGFuZCwgVVNBIChGb3VuZGVkOiAxOTAxKS4gSXQgcHJvZHVjZXMgYSAxNjAtYml0IGhhc2ggdmFsdWUsIHRodXMgdGhlIGJydXRlLWZvcmNlIGNvbGxpc2lvbiBvciAgbmVhci1jb2xsaXNpb24gYXR0YWNrIHJlcXVpcmVzIE8oMl44MCkgY29tcHV0YXRpb24uIFdpdGhpbiA1IHllYXJzLCBpdCB3YXMgbWFkZSBjb2xsaXNpb24gYXR0YWNrZWQgYnkgQ2hhYmF1ZCBhbmQgSm91eCB3aXRoIHRoZSBhdHRhY2sgY29tcGxleGl0eSBvZiAyXjYxLg0KMTk5MzogW0NvYWxnYXRlIHNjYW1dIE9uIDIzcmQgQXByaWwgMjAxMywgdGhlIFN0YW5kaW5nIENvbW1pdHRlZSBvbiBDb2FsIGFuZCBTdGVlbCB0YWJsZWQgaW4gUGFybGlhbWVudCB0aGF0IGFsbCAxOTQgY29hbCBibG9ja3MgZGlzdHJpYnV0ZWQgYmV0d2VlbiAxOTkzIGFuZCAyMDA4IHdlcmUgYXVjdGlvbmVkIGluIGFuIHVuYXV0aG9yaXplZCBtYW5uZXIgYW5kIHRoZSBjb3VudHJ5IGxvc3QgUnMuMS44NiBsYWtoIGNyb3JlLi4gRm9ybWVyIFByaW1lIE1pbmlzdGVyIE1hbm1vaGFuIFNpbmdoLCBhbG9uZyB3aXRoIEt1bWFyIE1hbmdhbGFtIEJpcmxhIGFuZCBQLkMuIFBhcmFraCwgd2VyZSBhY2N1c2VkIGFuZCBzdW1tb25lZCBieSBhIHNwZWNpYWwgY291cnQuIFsyTCBDcm9yZV0uIENvbXB0cm9sbGVyIGFuZCBBdWRpdG9yIEdlbmVyYWwgb2YgSW5kaWEgdG9vayAyMCB5ZWFycyB0byBJRCBvbmUgb2YgdGhlIGJpZ2dlc3Qgc2NhbXMgaW4gSW5kaWFuIGhpc3RvcnkuDQoxOTkzOiBBZnRlciBQcmVzaWRlbnQgQmlsbCBDbGludG9uIHRvb2sgb2ZmaWNlIGluIDE5OTMsIGhvd2V2ZXIsIHRoZSBVLlMuIGVjb25vbXkgZW1iYXJrZWQgb24gYSBsb25nIGFuZCBzdHJvbmcgZXhwYW5zaW9uLCBtYWtpbmcgdGhlIDE5OTBzIGEgZ3JlYXQgZGVjYWRlIGZvciBBbWVyaWNhJ3MgbW9uZXksIG92ZXJhbGwuIA0KMTk5MzpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTW90aHJhKDE5OTIpDQoxOTkzOltTcGFjZV0gSGlwcGFyY29zLCBhIHNjaWVudGlmaWMgc2F0ZWxsaXRlIG9mIHRoZSBFdXJvcGVhbiBTcGFjZSBBZ2VuY3kgKEVTQSkgbGFzdGVkIGZvciA0IHllYXJzIGJlZm9yZSBnb2luZyBvdXQtb2Ytc2VydmljZS4NCjE5OTM6W1NwYWNlXVtSZXNlYXJjaF0gSW4gMTk5MywgRG9uIFBhZ2UgYXJndWVkIHRoYXQgaWYgYSBibGFjayBob2xlIHN0YXJ0cyBpbiBhIHB1cmUgcXVhbnR1bSBzdGF0ZSBhbmQgZXZhcG9yYXRlcyBjb21wbGV0ZWx5IGJ5IGEgdW5pdGFyeSBwcm9jZXNzLCB0aGUgdm9uIE5ldW1hbm4gZW50cm9weSBvZiB0aGUgSGF3a2luZyByYWRpYXRpb24gaW5pdGlhbGx5IGluY3JlYXNlcyBhbmQgdGhlbiBkZWNyZWFzZXMgYmFjayB0byB6ZXJvIHdoZW4gdGhlIGJsYWNrIGhvbGUgaGFzIGRpc2FwcGVhcmVkLiBUaGlzIGlzIGNhbGxlZCB0aGUgUGFnZSBjdXJ2ZS4NCjE5OTM6W0Jvb2tzXVtIaXN0b3J5XSBHcmVlbuKAmXMgRGljdGlvbmFyeSBvZiBTbGFuZyBpcyB0aGUgbGFyZ2VzdCBoaXN0b3JpY2FsIGRpY3Rpb25hcnkgb2YgRW5nbGlzaCBzbGFuZy4gV3JpdHRlbiBieSBKb25hdGhvbiBHcmVlbiBvdmVyIDE3IHllYXJzIGZyb20gMTk5MywgaXQgcmVhY2hlZCB0aGUgcHJpbnRlZCBwYWdlIGluIDIwMTAgaW4gYSB0aHJlZS12b2x1bWUgc2V0IGNvbnRhaW5pbmcgbmVhcmx5IDEwMCwwMDAgZW50cmllcyBzdXBwb3J0ZWQgYnkgb3ZlciA0MDAsMDAwIGNpdGF0aW9ucyBmcm9tIGMuIGFkIDEwMDAgdG8gdGhlIHByZXNlbnQgZGF5LiBUaGUgbWFpbiBmb2N1cyBvZiB0aGUgZGljdGlvbmFyeSBpcyB0aGUgY292ZXJhZ2Ugb2Ygb3ZlciA1MDAgeWVhcnMgb2Ygc2xhbmcgZnJvbSBjLiAxNTAwIG9ud2FyZHMuDQoxOTkzOltFbnZdW0Rpc2FzdGVyXSBTb3V0aCBBc2lhbiBtb25zb29uIGZsb29kcywgM2sgZGVhdGhzDQoxOTkzOltHZW9ncmFwaHldIFRoZSBsYXN0IG1ham9yIHNoaWZ0cyBpbiBFYXJ0aCdzIGF4aXMgd2VyZSBpbmZsdWVuY2VkIGJ5IGNsaW1hdGUgY2hhbmdlOiBhIDMxLjUtaW5jaCBzaGlmdCBiZXR3ZWVuIDE5OTMgYW5kIDIwMTAgd2FzIHByaW1hcmlseSBjYXVzZWQgYnkgZ3JvdW5kd2F0ZXIgcHVtcGluZywgYW5kIGEgY2hhbmdlIGluIHBvbGFyIGRyaWZ0IGRpcmVjdGlvbiBhcm91bmQgdGhlIDE5OTBzIHdhcyBsaW5rZWQgdG8gbWVsdGluZyBnbGFjaWVycyBhbmQgaWNlIHNoZWV0cyBkdWUgdG8gZ2xvYmFsIHdhcm1pbmcuIEVhcnRoJ3MgYXhpcyBhbHNvIHNoaWZ0ZWQgYnkgYWJvdXQgNi41IGluY2hlcyBpbiBNYXJjaCAyMDExIGFmdGVyIHRoZSBKYXBhbmVzZSBlYXJ0aHF1YWtlLCBjYXVzaW5nIHRoZSBwbGFuZXQgdG8gc3BpbiBzbGlnaHRseSBmYXN0ZXIuDQoxOTkzOltXaG9dIEluIDE5OTMsIEluZGlhIGNhbWUgaGVhcnRicmVha2luZ2x5IGNsb3NlIHRvIHdpbm5pbmcgaXRzIGZpcnN0IE1pc3MgVW5pdmVyc2UgY3Jvd24gd2l0aCB0aGUgc3R1bm5pbmcgYW5kIGdyYWNlZnVsIE5hbXJhdGEgU2hpcm9ka2FyLCB3aG8gaGFkIGVhcmxpZXIgd29uIHRoZSBGZW1pbmEgTWlzcyBJbmRpYSB0aXRsZS4gUmVwcmVzZW50aW5nIEluZGlhIGF0IHRoZSBNaXNzIFVuaXZlcnNlIHBhZ2VhbnQgaGVsZCBpbiBNZXhpY28gQ2l0eSwgTmFtcmF0YSB3YXMgYSBzdHJvbmcgY29udGVuZGVy4oCUZWxlZ2FudCBpbiBoZXIgZ293biwgcG9pc2VkIGluIGludGVydmlld3MsIGFuZCBhIGZhbiBmYXZvcml0ZS4gU2hlIGVhc2lseSBtYWRlIGl0IHRvIHRoZSBUb3AgNiwgYW5kIGhlciBjaGFuY2VzIG9mIHdpbm5pbmcgbG9va2VkIGluY3JlZGlibHkgaGlnaC4gQnV0IHRoZW4gY2FtZSB0aGUgZmluYWwgcXVlc3Rpb246IOKAnElmIHlvdSBjb3VsZCBiZSBib3JuIGFzIGFueSBoaXN0b3JpY2FsIGZpZ3VyZSwgd2hvIHdvdWxkIGl0IGJlIGFuZCB3aHk/4oCdIFdoaWxlIG90aGVyIGNvbnRlc3RhbnRzIG5hbWVkIGdsb2JhbCBpY29ucyBsaWtlIE1vdGhlciBUZXJlc2EgYW5kIFByaW5jZXNzIERpYW5hLCBOYW1yYXRhIGdhdmUgYW4gaG9uZXN0LCBwZXJzb25hbCBhbnN3ZXLigJRzaGUgc2FpZCBzaGUgd291bGQgYmUgYm9ybiBhcyBoZXJzZWxmIG9yIHNvbWVvbmUgY2xvc2UgdG8gaGVyLCBiZWNhdXNlIHNoZSBiZWxpZXZlZCBpbiBsaXZpbmcgbGlmZSB3aXRoIHRydXRoIGFuZCBpbmRpdmlkdWFsaXR5LiBJdCB3YXMgYSBiZWF1dGlmdWwsIGdyb3VuZGVkIGFuc3dlcuKAlGJ1dCBub3QgdGhlIGtpbmQgb2YgZ3JhbmQsIGlkZWFsaXN0aWMgcmVzcG9uc2UgdGhlIGp1ZGdlcyB3ZXJlIGV4cGVjdGluZy4gVGhhdCBvbmUgbW9tZW50IG9mIHRydXRoLCBtYW55IGJlbGlldmUsIGNvc3QgaGVyIHRoZSBjcm93biwgYW5kIEluZGlhIGhhZCB0byB3YWl0IGFub3RoZXIgeWVhciBiZWZvcmUgU3VzaG1pdGEgU2VuIGJyb3VnaHQgdGhlIE1pc3MgVW5pdmVyc2UgdGl0bGUgaG9tZSBpbiAxOTk0LiBTdGlsbCwgTmFtcmF0YeKAmXMgYW5zd2VyIGJlY2FtZSBpY29uaWPigJRub3QgYmVjYXVzZSBpdCB3b24sIGJ1dCBiZWNhdXNlIGl0IHdhcyByZWFsLCBtYXJraW5nIGEgcmFyZSBpbnN0YW5jZSB3aGVyZSBob25lc3R5IHN0b29kIHRhbGxlciB0aGFuIGRpcGxvbWFjeS4NCjE5OTM6W0F2aWF0aW9uXVtFeHRyZW1lXVtXaG9dIFRoZSBIZXJic3QgbWFuZXV2ZXIgd2FzIGZpcnN0IHN1Y2Nlc3NmdWxseSBwZXJmb3JtZWQgb24gQXByaWwgMjksIDE5OTMsIGJ5IGFuIFgtMzEgYWlyY3JhZnQuIE5hbWVkIGFmdGVyIFdvbGZnYW5nIEhlcmJzdCwgYSBkZXZlbG9wZXIgb2YgcG9zdC1zdGFsbCB0ZWNobm9sb2d5IGZvciBNZXNzZXJzY2htaXR0LULDtmxrb3ctQmxvaG0gKE1CQiksIHRoaXMsIHBvc3Qtc3RhbGwgbWFuZXV2ZXIgZW5hYmxlcyBhIGZpZ2h0ZXIgdG8gbWFrZSBhIHJhcGlkIDE4MMKwIHR1cm4gd2l0aGluIGEgbWluaW1hbCByYWRpdXMuIA0KDQoxOTk04oCTMTk5NTpbVVNdW0dlb1BvbGl0aWNzXSBvY2N1cGF0aW9uIG9mIEhhaXRpLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgRXVyb3BlYW4gRWNvbm9taWMgQXJlYSwgYWJicmV2aWF0ZWQgYXMgRUVBLCBjb25zaXN0cyBvZiB0aGUgTWVtYmVyIFN0YXRlcyBvZiB0aGUgRXVyb3BlYW4gVW5pb24gKEVVKSBhbmQgdGhyZWUgY291bnRyaWVzIG9mIHRoZSBFdXJvcGVhbiBGcmVlIFRyYWRlIEFzc29jaWF0aW9uIChFRlRBKSAoSWNlbGFuZCwgTGllY2h0ZW5zdGVpbiBhbmQgTm9yd2F5OyBleGNsdWRpbmcgU3dpdHplcmxhbmQpLiBUaGUgQWdyZWVtZW50IG9uIHRoZSBFRUEgZW50ZXJlZCBpbnRvIGZvcmNlIG9uIDEgSmFudWFyeSAxOTk0LiANCjE5OTQ6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEV1cm9wZWFuIEVjb25vbWljIEFyZWEgKEVFQSkgd2FzIGVzdGFibGlzaGVkIG9uIDEgSmFudWFyeSAxOTk0LiBUaGUgYWdyZWVtZW50IGxpbmtzIHRoZSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aHJlZSBFRlRBIHN0YXRlc+KAlEljZWxhbmQsIExpZWNodGVuc3RlaW4sIGFuZCBOb3J3YXnigJRpbnRvIGEgc2luZ2xlIGludGVybmFsIG1hcmtldCwgYWxsb3dpbmcgZm9yIHRoZSBmcmVlIG1vdmVtZW50IG9mIGdvb2RzLCBwZXJzb25zLCBzZXJ2aWNlcywgYW5kIGNhcGl0YWwuIA0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBOQUZUQSwgdGhlIE5vcnRoIEFtZXJpY2FuIEZyZWUgVHJhZGUgQWdyZWVtZW50LCB3YXMgYSAxOTk0IGFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzLCBDYW5hZGEsIGFuZCBNZXhpY28gdG8gZWxpbWluYXRlIHRyYWRlIGJhcnJpZXJzIGFuZCBwcm9tb3RlIGZyZWUgdHJhZGUgaW4gTm9ydGggQW1lcmljYS4gSXQgZmFjaWxpdGF0ZWQgdGhlIG1vdmVtZW50IG9mIGdvb2RzIGFuZCBzZXJ2aWNlcyBhbmQgZXN0YWJsaXNoZWQgYSBsYXJnZSB0cmFkZSBibG9jLiBJbiBKdWx5IDIwMjAsIE5BRlRBIHdhcyByZXBsYWNlZCBieSB0aGUgVW5pdGVkIFN0YXRlcy1NZXhpY28tQ2FuYWRhIEFncmVlbWVudCAoVVNNQ0EpLCB3aGljaCBtb2Rlcm5pemVkIGFuZCBlbmhhbmNlZCB0aGUgdHJlYXR5IGZvciBhIGNvbnRlbXBvcmFyeSBlY29ub215Lg0KMTk5NDpbUy5BZnJpY2FdW1NvY2lhbGlzbV0gRmlyc3QgZnJlZSBlbGVjdGlvbnMgaW4gU291dGggQWZyaWNhOyBOZWxzb24gTWFuZGVsYQ0KMTk5NDpbUmVzZWFyY2hdW3NwYWNlXSBDYXJsIFNhZ2FuIGNvbmNlZGVkIHRoYXQgdGhpcyBhcHByb2FjaCB3b3VsZCBub3Qgd29yayBiZWNhdXNlIHRoZSBhdG1vc3BoZXJlIG9mIFZlbnVzIGlzIGZhciBkZW5zZXIgKDkwIGJhcnMpIHRoYW4gd2hhdCB3YXMgdW5kZXJzdG9vZCBpbiAxOTYxIChhIGZldyBiYXJzKSwgbWVhbmluZyB0aGUgY2FyYm9uIHdvdWxkIGp1c3QgYmUgb3hpZGl6ZWQgYmFjayBpbnRvIENPMi4NCjE5OTQ6W0NvbXB1dGluZ11bUXVhbnR1bV0gUGV0ZXIgU2hvciBkaXNjb3ZlcmVkIGFuIGFsZ29yaXRobSAoU2hvcidzIGFsZ29yaXRobSkgdGhhdCBjb3VsZCBmYWN0b3IgbGFyZ2UgbnVtYmVycyBpbiBwb2x5bm9taWFsIHRpbWUgb24gYSBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCB3b3VsZCBicmVhayB0aGUgc2VjdXJpdHkgb2YgbWFueSBjcnlwdG9ncmFwaGljIHNjaGVtZXMuIA0KMTk5NDpbQ29tcHV0aW5nXVtRdWFudHVtXSBQZXRlciBTaG9yIGFuZCBEb24gQ29wcGVyc21pdGggZmlndXJlZCBvdXQgaG93IHRvIHRha2UgYSBRdWFudHVtIEZvdXJpZXIgVHJhbnNmb3JtLg0KMTk5NDpUaGUgcHJvYmxlbSB3aXRoIHRoZSBwYXBlciBwdWJsaXNoZWQgZWFybGllciB0aGlzIG1vbnRoIHdhcyBpdHMgcmVsaWFuY2Ugb24gU2Nobm9ycidzIGFsZ29yaXRobSAobm90IHRvIGJlIGNvbmZ1c2VkIHdpdGggU2hvcuKAmXMgYWxnb3JpdGhtKSwgd2hpY2ggd2FzIGRldmVsb3BlZCBpbiAxOTk0LiBTY2hub3Jy4oCZcyBhbGdvcml0aG0gaXMgYSBjbGFzc2ljYWwgY29tcHV0YXRpb24gYmFzZWQgb24gbGF0dGljZXMsIHdoaWNoIGFyZSBtYXRoZW1hdGljYWwgc3RydWN0dXJlcyB0aGF0IGhhdmUgbWFueSBhcHBsaWNhdGlvbnMgaW4gY29uc3RydWN0aXZlIGNyeXB0b2dyYXBoeSBhbmQgY3J5cHRhbmFseXNpcy4gVGhlIGF1dGhvcnMgd2hvIGRldmlzZWQgU2Nobm9ycuKAmXMgYWxnb3JpdGhtIHNhaWQgaXQgY291bGQgZW5oYW5jZSB0aGUgdXNlIG9mIHRoZSBoZXVyaXN0aWMgcXVhbnR1bSBvcHRpbWl6YXRpb24gbWV0aG9kIGNhbGxlZCBRQU9BLg0KMTk5NCAoSmFuIDEpOiBbR2VvUG9saXRpY3NdIFRoZSBOb3J0aCBBbWVyaWNhbiBGcmVlIFRyYWRlIEFncmVlbWVudCAoTkFGVEEpIHdhcyBhbiBhZ3JlZW1lbnQgc2lnbmVkIGJ5IENhbmFkYSwgTWV4aWNvLCBhbmQgdGhlIFVuaXRlZCBTdGF0ZXMgdGhhdCBjcmVhdGVkIGEgdHJpbGF0ZXJhbCB0cmFkZSBibG9jIGluIE5vcnRoIEFtZXJpY2EuIFRoZSBhZ3JlZW1lbnQgY2FtZSBpbnRvIGZvcmNlIG9uIEphbnVhcnkgMSwgMTk5NCwgYW5kIHN1cGVyc2VkZWQgdGhlIDE5ODggQ2FuYWRh4oCTVW5pdGVkIFN0YXRlcyBGcmVlIFRyYWRlIEFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzIGFuZCBDYW5hZGEuIFRoZSBOQUZUQSB0cmFkZSBibG9jIGZvcm1lZCBvbmUgb2YgdGhlIGxhcmdlc3QgdHJhZGUgYmxvY3MgaW4gdGhlIHdvcmxkIGJ5IGdyb3NzIGRvbWVzdGljIHByb2R1Y3QuDQoxOTk0OltUZWNobm9sb2d5XVtCdXNpbmVzc11bVVNdW0NvbXB1dGluZ10gVGhlIERlbGwgTGF0aXR1ZGUgc2VyaWVzIGlzIGEgbGluZSBvZiBsYXB0b3AgY29tcHV0ZXJzIG1hbnVmYWN0dXJlZCBhbmQgc29sZCBieSBBbWVyaWNhbiBjb21wYW55IERlbGwuIEl0IGlzIGEgYnVzaW5lc3Mtb3JpZW50ZWQgbGluZSwgYWltZWQgYXQgY29ycG9yYXRlIGVudGVycHJpc2VzLCBoZWFsdGhjYXJlLCBnb3Zlcm5tZW50LCBhbmQgZWR1Y2F0aW9uIG1hcmtldHM7IHVubGlrZSB0aGUgSW5zcGlyb24gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBpbmRpdmlkdWFsIGN1c3RvbWVycywgYW5kIHRoZSBWb3N0cm8gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBzbWFsbGVyIGJ1c2luZXNzZXMuIFRoZSBMYXRpdHVkZSBkaXJlY3RseSBjb21wZXRlcyB3aXRoIHRoZSBMZW5vdm8gVGhpbmtQYWQgYW5kIHRoZSBFbGl0ZUJvb2sgc2VyaWVzIGJ5IEhQLiBBZGRpdGlvbmFsbHksIHRoZSAiUnVnZ2VkIChFeHRyZW1lKSIsICJYRlIiIGFuZCAiQVRHIiBtb2RlbHMgY29tcGV0ZSBwcmltYXJpbHkgd2l0aCBQYW5hc29uaWMncyBUb3VnaGJvb2sgbGluZSBvZiAicnVnZ2VkIiBsYXB0b3BzLg0KMTk5NDogU3VzaG1pdGEgU2VuIGJlY2FtZSBNaXNzIFVuaXZlcnNlLg0KMTk5NDogVGhlIEFubmFscyBvZiBJbXByb2JhYmxlIFJlc2VhcmNoIGlzIGEgYmktbW9udGhseSBtYWdhemluZSBkZXZvdGVkIHRvIHNjaWVudGlmaWMgaHVtb3IsIGluIHRoZSBmb3JtIG9mIGEgc2F0aXJpY2FsIHRha2Ugb24gdGhlIHN0YW5kYXJkIGFjYWRlbWljIGpvdXJuYWwuDQoxOTk0OiBMaW5kb24gTGVhZGVyIG9mIExhbmRvciBBc3NvY2lhdGVzLCBvZiBTYW4gRnJhbmNpc2NvIGRlc2lnbmVkIHdvcmRtYXJrcyBmb3IgRmVkRXgncyB2YXJpb3VzIE9wLXVuaXQuIEZlZEV44oCZcyBwdWJsaWMtcmVsYXRpb25zIGZpcm0gd2FudGVkIHRvIGhpZ2hsaWdodCB0aGUgYXJyb3cgc28gaXQgd291bGQgYmUgb2J2aW91cy4gQnV0IGhlIGZvdWdodCB0aGVtIG9uIHRoYXQg4oCUIGhlIHRob3VnaHQgaXQgd291bGQgYmUgb3ZlcmtpbGwuIFRoZXJl4oCZcyBzb21ldGhpbmcgYWJvdXQgbWFraW5nIHBlb3BsZSBkaXNjb3ZlciBzb21ldGhpbmcgb24gdGhlaXIgb3duIHRoYXTigJlzIGEgbG90IG1vcmUgcG93ZXJmdWwgdGhhbiBpdGFsaWNpemluZyBpdCB0byBtYWtlIHlvdXIgcG9pbnQuDQoxOTk0OiBTY2lsYWIgMS4xLCB0aGUgZmlyc3QgcmVsZWFzZWQgdmVyc2lvbiBvZiBTY2lsYWIsIHdhcyBwdXQgb24gYW5vbnltb3VzIGZ0cCBzaXRlLg0KMTk5NDogVGhlIGNvbmNlcHQgb2YgYSBjYWbDqSB3aXRoIGZ1bGwgSW50ZXJuZXQgYWNjZXNzIChhbmQgdGhlIG5hbWUgQ3liZXJjYWbDqSkgd2FzIGludmVudGVkIGluIGVhcmx5IGJ5ICBhIEJyaXRpc2ggdGVjaG5vbG9neSBhcnRpc3QsIEl2YW4gUG9wZS4NCjE5OTQ6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIGx1cmVkIG9uZSBvZiBEYXdvb2QncyBmYXZvcml0ZSAibmFyY28tdGVycm9yaXN0IiBQaGlsbHUgS2hhbiBhbGlhcyBCYWtodGl5YXIgQWhtZWQgS2hhbiB0byBhIGhvdGVsIHJvb20gaW4gQmFuZ2tvaywgd2hlcmUgaGUgd2FzIHRvcnR1cmVkIHRvIGRlYXRoLCBoYXZpbmcgYmVlbiBiZXRyYXllZCBieSBoaXMgY2xvc2VzdCBhaWRlIGFuZCBzaWRla2ljayBNYW5nZXNoICJNYW5neWEiIFBhd2FyLiBELUNvbXBhbnkncyBTaGFyYWQsIHVzZWQgaGlzIGxpbmtzIHdpdGggTXVtYmFpLWJhc2VkIGhvdGVsaWVyIFZpbm9kIGFuZCBBLiBNaXNocmEgdG8gdHJhY2sgZG93biBSYWphbiBpbiBCYW5na29rLiBSYWphbidzIGhpdG1hbiBSb2hpdCBWYXJtYSBhbmQgaGlzIHdpZmUgc2hvdCBieSBELUNvbXBhbnkuDQoxOTk0KEp1bCAxNik6W1NwYWNlXSBGcm9tIEp1bHkgMTYgdG8gMjIsIDE5OTQsIGVub3Jtb3VzIHBpZWNlcyBvZiB0aGUgY29tZXQgU2hvZW1ha2VyLUxldnkgOSAoU0w5KSwgZGlzY292ZXJlZCBqdXN0IGEgeWVhciBwcmlvciwgY3Jhc2hlZCBpbnRvIEp1cGl0ZXIgb3ZlciBzZXZlcmFsIGRheXMsIGNyZWF0aW5nIGh1Z2UsIGRhcmsgc2NhcnMgaW4gdGhlIHBsYW5ldCdzIGF0bW9zcGhlcmUgYW5kIGxvZnRpbmcgc3VwZXJoZWF0ZWQgcGx1bWVzIGludG8gaXRzIHN0cmF0b3NwaGVyZS4NCjE5OTQgKE9jdCk6IElUUE8gYW5kIEdvSSdzIE5JQyBqb2ludGx5IHNldC11cCB0aGUgTmF0aW9uYWwgQ2VudHJlIGZvciBUcmFkZSBJbmZvcm1hdGlvbiAoTkNUSSkgYXQgUHJhZ2F0aSBNYWlkYW4uDQoxOTk0IChOb3YgMSwgMTU6MDEgSVNUKTpbU3BhY2VdW1N1bl0gVGhlIEdsb2JhbCBHZW9zcGFjZSBTY2llbmNlICdXaW5kJyBzYXRlbGxpdGUgaXMgYSBOQVNBIHNjaWVuY2Ugc3BhY2VjcmFmdCBkZXNpZ25lZCB0byBzdHVkeSByYWRpbyB3YXZlcyBhbmQgcGxhc21hIHRoYXQgb2NjdXIgaW4gdGhlIHNvbGFyIHdpbmQgYW5kIGluIHRoZSBFYXJ0aCdzIG1hZ25ldG9zcGhlcmUuIA0KMTk5NCAoRGVjIDMpOiBTb255J3MgUGxheVN0YXRpb24gKGEgdmlkZW8gZ2FtZSBjb25zb2xlKSB3YXMgaW50cm9kdWNlZCB0byB0aGUgd29ybGQgZnJvbSBNaW5hdG8sIFRva3lvIChKYXBhbikuDQoxOTk0OiBXWFlDLSBmaXJzdCBpbnRlcm5ldCByYWRpbyBzdGF0aW9uIGJyb2FkY2FzdC4NCjE5OTQ6IE1lbW9yeSBjYXJkcyB3ZXJlIGludHJvZHVjZWQgaW4gdGhlIGNvbnN1bWVyIGVsZWN0cm9uaWNzIG1hcmtldC4NCjE5OTQgKEF1Zyk6IElUUE8ncyAxc3QgRGVsaGkgQm9vayBGYWlyIGF0ICBIYWxsIDggdG8gMTIgb2YgUHJhZ2F0aSBNYWlkYW4sIE5ldyBEZWxoaS4gVGhlIHRpbWluZ3Mgb2YgZmFpciBhcmUgZnJvbSAxMC4wMCBhbSB0byA4LjAwIHBtIChlbnRyeSB0byBmYWlyIHdpbGwgY2xvc2UgYXQgNy4zMCBwbSkuDQoxOTk0IChTZXApOiBUaGUgQ09OQ0VSVCBzb2Z0d2FyZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgaW1wbGVtZW50ZWQgYXQgYWxsIG9mIHRoZSBmaXZlIFBSUycgc2l0ZXMgU2VjdW5kZXJhYmFkIGluIFNlcHQuIDE5OTQsIE5ldyBEZWxoaSBvbiBTZXB0LiAxOTk2LCBDYWxjdXR0YSBvbiAxNHRoIEp1bmUgMTk5OCwgTXVtYmFpIG9uIDExdGggSmFuIDE5OTkgYW5kIENoZW5uYWkgb24gMTJ0aCBBcHJpbCAxOTk5Lg0KMTk5NDogdGhlIDI0dGggYW5kIHRoZSBsYXN0IEdQUyBzYXRlbGxpdGUgd2FzIGxhdW5jaGVkIGluIFVTLg0KMTk5NDogVGhlIHdvcmQgVGFsaWJhbiBpcyBQYXNodG8sINi32KfZhNio2KfZhiDhua3EgWxpYsSBbiwgbWVhbmluZyAic3R1ZGVudHMiLCB0aGUgcGx1cmFsIG9mIOG5rcSBbGliLiBBZnRlciB0aGUgU292aWV0IFVuaW9uIGludGVydmVuZWQgYW5kIG9jY3VwaWVkIEFmZ2hhbmlzdGFuIGluIDE5NzksIElzbGFtaWMgbXVqYWhpZGVlbiBmaWdodGVycyBlbmdhZ2VkIGluIHdhciB3aXRoIHRob3NlIFNvdmlldCBmb3JjZXMsIHdoaWNoIGxhaWQgdGhlIGZvdW5kYXRpb24gb2YgcG9saXRpY2FsIG1vdmVtZW50IGFuZCBtaWxpdGFyeSBvcmdhbml6YXRpb24gbmFtZWQgVGFsaWJhbi4NCjE5OTQ6IEFiZHVsIEthcmVlbSBUZWxnaSBhY3F1aXJlZCB0aGUgbGljZW5zZSBmb3Igc2VsbGluZyBzdGFtcCBwYXBlciBhbmQgb3BlbmVkIGFuIG9mZmljZSBpbiBNdW1iYWkuIEFmdGVyIHRoYXQsIGhlIHN0YXJ0ZWQgcHJpbnRpbmcgc3RhbXAgcGFwZXIgaW4gTmFzaGlrLiBXaXRoIHNvbWUgYWdlbnRz4oCZIGhlbHAsIGhlIHN0YXJ0cyBzZWxsaW5nIGZha2Ugc3RhbXAgcGFwZXIgaW4gYnVsayB0byBiYW5rcywgaW5zdXJhbmNlIGNvbXBhbmllcywgc3RvY2sgYnJva2VyYWdlIGZpcm1zLCBhbmQgY29ycG9yYXRlcy4gSW4gMjAwMyB0aGUgVGVsZ2kgc2NhbSB3YXMgdW5mb2xkZWQ7IHRoZSBmaWd1cmUgaW4gdGhlIG1pbmQgb2Ygc2VjdXJpdHkgYW5kIGludGVsbGlnZW5jZSBhZ2VuY2llcyB3YXMgdXAgdG8gUnMuMjBrIENyb3JlDQoxOTk0OiBbR2VvUG9saXRpY3NdIEludGVybmF0aW9uYWwgQXNzb2NpYXRpb24gb2YgR2VuZGFybWVyaWVzIGFuZCBQb2xpY2UgRm9yY2VzIHdpdGggTWlsaXRhcnkgU3RhdHVzIChjb21tb25seSBrbm93biBhcyBGSUVQIGZvciBGcmFuY2UtSXRhbGlhLUVzcGHDsWEtUG9ydHVnYWwsIHRoZSBmaXJzdCBmb3VyIG1lbWJlcnMpIGlzIGFuIGFzc29jaWF0aW9uIG9mIG5hdGlvbmFsIGdlbmRhcm1lcmllcyBvciBtaWxpdGFyeSBwb2xpY2UgZm9yY2VzLg0KMTk5NDpbQm9va10gUGFsZSBCbHVlIERvdDogQSBWaXNpb24gb2YgdGhlIEh1bWFuIEZ1dHVyZSBpbiBTcGFjZSBpcyBhIDE5OTQgYm9vayBieSB0aGUgYXN0cm9ub21lciBDYXJsIFNhZ2FuLiBJdCBpcyB0aGUgc2VxdWVsIHRvIFNhZ2FuJ3MgMTk4MCBib29rIENvc21vcyBhbmQgd2FzIGluc3BpcmVkIGJ5IHRoZSBmYW1vdXMgMTk5MCBQYWxlIEJsdWUgRG90IHBob3RvZ3JhcGgsIGZvciB3aGljaCBTYWdhbiBwcm92aWRlcyBhIHBvaWduYW50IGRlc2NyaXB0aW9uLiBJbiB0aGUgYm9vaywgU2FnYW4gbWl4ZXMgcGhpbG9zb3BoeSBhYm91dCB0aGUgaHVtYW4gcGxhY2UgaW4gdGhlIHVuaXZlcnNlIHdpdGggYSBkZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCBrbm93bGVkZ2UgYWJvdXQgdGhlIFNvbGFyIFN5c3RlbS4gSGUgYWxzbyBkZXRhaWxzIGEgaHVtYW4gdmlzaW9uIGZvciB0aGUgZnV0dXJlLg0KMTk5NDpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTWVjaGFnb2R6aWxsYSBJSSgxOTkzKQ0KMTk5NDpbQ2luZW1hXSBUaGUgQXBwbGUoMTk4MCkNCjE5OTQ6W0NpbmVtYV0gVGhlIEF0bGFudGlzIEludGVyY2VwdG9ycygxOTgzKQ0KMTk5NDpbTW50bmdnXSBJbiAxOTk0LCBNYXJrIFdoZXR1IHN1bW1pdHRlZCBNdCBFdmVyZXN0IHdpdGggTWlrZSBSZWluYmVyZ2VyLiBCdXQgYWZ0ZXIgYSBmcmVlemluZyBuaWdodCwgV2hldHUgZmFjZWQgYSBoYXJyb3dpbmcgY2hvaWNlOiBsZWF2ZSBoaXMgZnJpZW5kIG9yIHJlbWFpbiBmb3JldmVyLiBUaGUgRmF0YWwgR2FtZSAoMTk5NykNCjE5OTQ6W1RvdXJpc21dIFRoZSBBZHZlbnR1cmUgVG91ciBPcGVyYXRvcnMgQXNzb2NpYXRpb24gb2YgSW5kaWEgKEFUT0FJKSB3YXMgZm91bmRlZCBpbiAxOTk0LiBJdCB3YXMgZXN0YWJsaXNoZWQgYnkgYSBncm91cCBvZiB0cmF2ZWwgdHJhZGUgYWR2ZW50dXJlcnMgd2hvIGFpbWVkIHRvIGNyZWF0ZSBhIHN0cm9uZyBzdXBwb3J0IG5ldHdvcmsgZm9yIEluZGlhbiBhZHZlbnR1cmUgdG91ciBvcGVyYXRvcnMuIA0KDQoxOTk1IChNYXkgMTkpOiBbUmVzZWFyY2hdW1NwYWNlXSB0d28gc2NpZW50aXN0cyBhdCBDYWwgUG9seSBzaG93ZWQgdGhhdCBiYWN0ZXJpYSBjYW4gc3Vydml2ZSB3aXRob3V0IGFueSBtZXRhYm9saXNtIGZvciBhdCBsZWFzdCAyNSBtaWxsaW9uIHllYXJzOyBwcm9iYWJseSB0aGV5IGFyZSBpbW1vcnRhbC4NCjI0IE5vdmVtYmVyIDE5OTU6IFRoZSBOZXcgWW9yayBUaW1lcyBkZXNjcmliZWQgYmFjdGVyaWEgdGhhdCBjYW4gc3Vydml2ZSByYWRpYXRpb24gbXVjaCBzdHJvbmdlciB0aGFuIGFueSB0aGF0IEVhcnRoIGhhcyBldmVyIGV4cGVyaWVuY2VkLg0KV2UgYXJlIGNhbGxpbmcgdGhlIHVuaW9uIG9mIExvdmVsb2NrJ3MgR2FpYSB3aXRoIEhveWxlIGFuZCBXaWNrcmFtYXNpbmdoZSdzIGV4cGFuZGVkIHRoZW9yeSBvZiBwYW5zcGVybWlhIENvc21pYyBBbmNlc3RyeS4gVGhpcyBhY2NvdW50IG9mIGV2b2x1dGlvbiBhbmQgdGhlIG9yaWdpbiBvZiBsaWZlIG9uIEVhcnRoIGlzIHByb2ZvdW5kbHkgZGlmZmVyZW50IGZyb20gdGhlIHByZXZhaWxpbmcgc2NpZW50aWZpYyBwYXJhZGlnbS4gSXQgY2hhbGxlbmdlcyBub3QgbWVyZWx5IHRoZSBhbnN3ZXJzIGJ1dCB0aGUgcXVlc3Rpb25zIHRoYXQgYXJlIHBvcHVsYXIgdG9kYXkuIENvc21pYyBBbmNlc3RyeSByZXF1aXJlcyB0aGF0IGxpZmUgY2FuIG9ubHkgZGVzY2VuZCBmcm9tIGFuY2VzdG9ycyBhdCBsZWFzdCBhcyBoaWdobHkgZXZvbHZlZCBhcyBpdHNlbGYsIGFuZCB0aGF0IHRoZXJlIGNhbiBiZSBubyBvcmlnaW4gb2YgbGlmZSBmcm9tIG5vbmJpb2xvZ2ljYWwgbWF0dGVyLiBXaXRob3V0IHN1cGVybmF0dXJhbCBpbnRlcnZlbnRpb24sIHRoZXJlZm9yZSwgd2UgY29uY2x1ZGUgdGhhdCBsaWZlIG11c3QgaGF2ZSBhbHdheXMgZXhpc3RlZC4gQWx0aG91Z2ggdGhlc2UgY29uY2x1c2lvbnMgY3V0IGFjcm9zcyB0aGUgYm91bmRhcmllcyBiZXR3ZWVuIHNjaWVuY2UsIHBoaWxvc29waHksIGFuZCByZWxpZ2lvbiwgd2UgYmVsaWV2ZSB0aGV5IGFyZSBncm91bmRlZCBpbiBnb29kIGV2aWRlbmNlLiBBbmQgbmV3IGRhdGEgdGhhdCBzdXBwb3J0IG1hbnkgYXNwZWN0cyBvZiBDb3NtaWMgQW5jZXN0cnkgYXJlIGNvbWluZyBpbiByYXBpZGx5LiBJbiB0aGUgZm9sbG93aW5nIHBhZ2VzIHdlIHdpbGwgZXhwbGFpbiBob3cgdGhlc2UgYW5kIG90aGVyIHJlY2VudCBkZXZlbG9wbWVudHMgc3VwcG9ydCBDb3NtaWMgQW5jZXN0cnk6DQoNCjE5OTU6IEFOU0VUIHNvbGQgdG8gQU9MLCB3aG8gIG5vdyBydW5zIGl0Lg0KMTk5NSAoTWFyKTogRGVwdC4gb2YgSW5kaWFuIE1lZGljaW5lIGFuZCBIb21lb3BhdGh5IGZvdW5kZWQuDQoxOTk1IChNYXIgMjQpOltSZXNlYXJjaF0gUmVtb3RlbHkgT3BlcmF0ZWQgVmVoaWNsZSBLQUlLTyByZWFjaGVkIHRoZSBkZWVwZXN0IGFyZWEgb2YgdGhlIE1hcmlhbmEgVHJlbmNoIGFuZCBtYWRlIHRoZSBkZWVwZXN0IGRpdmluZyByZWNvcmQgb2YgMTAsOTExIG0gKDM1LDc5NyBmdDsgNSw5NjYgZmF0aG9tcykgDQoxOTk1OiBwaG9uZSBjYWxsIGNvc3RpbmcgUnMuIDE2IHBlciBtaW4uDQoxOTk1OltHYW1pbmddIFZpcnR1YSBDb3AgMiBpcyBhIGxpZ2h0IGd1biBzaG9vdGVyIGFyY2FkZSBnYW1lLCByZWxlYXNlZCBpbiAxOTk1IGFuZCBkZXZlbG9wZWQgaW50ZXJuYWxseSBhdCBTZWdhIGJ5IHRoZWlyIEFNMiBzdHVkaW8gKFl1IFN1enVraSkuIEl0IHdhcyBwb3J0ZWQgdG8gdGhlIFNlZ2EgU2F0dXJuIGluIDE5OTYuIEl0IHdhcyByZWxlYXNlZCBvbiBQQyBpbiAxOTk3IGFuZCBTZWdhIERyZWFtY2FzdCBpbiAyMDAwLiBJdCB3YXMgbGF0ZXIgYnVuZGxlZCB3aXRoIFZpcnR1YSBDb3AgaW4gVmlydHVhIENvcDogRWxpdGUgRWRpdGlvbiBmb3IgUGxheVN0YXRpb24gMiBpbiAyMDAyLg0KMTk5NSAoQXByIDEpOltSZXNlYXJjaF0gUGlsbGFycyBvZiBDcmVhdGlvbiBpcyBhIHBob3RvZ3JhcGggdGFrZW4gYnkgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgb2YgZWxlcGhhbnQgdHJ1bmtzIG9mIGludGVyc3RlbGxhciBnYXMgYW5kIGR1c3QgaW4gdGhlIEVhZ2xlIE5lYnVsYSwgaW4gdGhlIFNlcnBlbnMgY29uc3RlbGxhdGlvbiwgc29tZSA2LDUwMOKAkzcsMDAwIGxpZ2h0LXllYXJzICgyLDAwMOKAkzIsMTAwIHBjOyA2MeKAkzY2IEVtKSBmcm9tIEVhcnRoLg0KMTk5NSAoQXByIDEpOiBJQUFJIGFuZCBOQUEgd2VyZSBtZXJnZWQgYnkgYW4gQWN0IG9mIFBhcmxpYW1lbnQgYW5kIHdhcyBuYW1lZCBhcyBBaXJwb3J0cyBBdXRob3JpdHkgb2YgSW5kaWEgKEFBSSkuIFRoaXMgbmV3IG9yZ2FuaXNhdGlvbiB3YXMgdG8gYmUgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nLCB1cGdyYWRpbmcsIG1haW50YWluaW5nIGFuZCBtYW5hZ2luZyBjaXZpbCBhdmlhdGlvbiBpbmZyYXN0cnVjdHVyZSBib3RoIG9uIHRoZSBncm91bmQgYW5kIGFpciBzcGFjZSBpbiB0aGUgY291bnRyeS4NCjE5OTUgKEFwciAyMSk6W0NyaW1lXVtJbmRpYV0gQmFibG9vIHBpY2tlZCB1cCBieSB0aGUgU2luZ2Fwb3JlIGFpcnBvcnQgcG9saWNlIGZvciB0cmF2ZWxsaW5nIG9uIGZha2UgcGFzc3BvcnQuIEhlIHdhcyBzdGF5aW5nIGluIER1YmFpLg0KMTk5NSAoU2VwIDMwKTpbQ3JpbWVdW0luZGlhXSBTaW5nYXBvcmUgZXh0cmFkaXRlcyBJbmRpYSdzICdtb3N0LXdhbnRlZCBpbnRlci1zdGF0ZSBjcmltaW5hbCcgQmFibG9vIFNyaXZhc3RhdmEgKDMzWU8pDQoxOTk1IChOb3YgMzApOiBPcGVyYXRpb24gRGVzZXJ0IFN0b3JtIChGaXJzdCBJcmFxIFdhcilvZmZpY2lhbGx5IGVuZGVkLg0KMTk5NSAoTWF5IDMxKTpbQm9va11bTWlsaXRhcnldIEFkbWlyYWwgV2lsbGlhbSBILiBNY1JhdmVuJ3MgU3BlYyBPcHM6IENhc2UgU3R1ZGllcyBpbiBTcGVjaWFsIE9wZXJhdGlvbnMgV2FyZmFyZTogVGhlb3J5IGFuZCBQcmFjdGljZTsgU2VhIFN0b3JpZXM6IE15IExpZmUgaW4gU3BlY2lhbCBPcGVyYXRpb25zICgyMDE5LCBNYXkgMSk7IFRoZSBIZXJvIENvZGU6IExlc3NvbnMgTGVhcm5lZCBmcm9tIExpdmVzIFdlbGwgTGl2ZWQgKDIwMjEsIEFwciAxMykNCjE5OTU6IERyLiBIYW5kZSBhZnRlciBncmFkdWF0aW5nIGZyb20gSUlUIEtoYXJhZ3B1ciBjb25jZXB0dWFsaXplZCBTRUxDTyBJbmRpYSBkdXJpbmcgaGlzIFBoRCBvbiBzdXN0YWluYWJsZSBlbmVyZ3kgYXQgdGhlIFVuaXZlcnNpdHkgb2YgTWFzc2FjaHVzZXR0cy4gRHVyaW5nIGEgZmllbGQgdmlzaXQgdG8gdGhlIERvbWluaWNhbiBSZXB1YmxpYywgaGUgd2FzIHN1cnByaXNlZCB0byBzZWUgdGhlIHBvb3IgdXNpbmcgc29sYXIgbGlnaHRzLg0KMTk5NTogVGhlIEdvdmVybm1lbnQgb2YgSW5kaWEgYW5kIHRoZSBHb3Zlcm5tZW50IG9mIERlbGhpIGpvaW50bHkgc2V0IHVwIGEgY29tcGFueSBjYWxsZWQgdGhlIERlbGhpIE1ldHJvIFJhaWwgQ29ycG9yYXRpb24gKERNUkMpIG9uIDMgTWF5IDE5OTUsIHdpdGggRHIuIEUuIFNyZWVkaGFyYW4gYXMgdGhlIG1hbmFnaW5nIGRpcmVjdG9yLg0KMTk5NTogSW50J2wgR2FuZGhpIFBlYWNlIFByaXplIGxhdW5jaGVkLg0KMTk5NTogU2FjaGluIFIuIFRlbmR1a2FyIGFuZCBBbmphbGkgVGVuZHVsa2FyIHdlZGRlZCB0b2dldGhlci4NCjE5OTU6IC5tcDMgaW52ZW50ZWQuDQoxOTk1OltHYW1pbmddIFdoaWxlIEZJRkEgOTUgZGlkIG5vdCBhZGQgbXVjaCBvdGhlciB0aGFuIHRoZSBhYmlsaXR5IHRvIHBsYXkgd2l0aCBjbHViIHRlYW1zLCBGSUZBIDk2IHB1c2hlZCB0aGUgYm91bmRhcmllcy4gRm9yIHRoZSBmaXJzdCB0aW1lIHdpdGggcmVhbCBwbGF5ZXIgbmFtZXMgYnkgb2J0YWluaW5nIHRoZSBGSUZQcm8gbGljZW5zZSwgdGhlIFBsYXlTdGF0aW9uLCBQQywgMzJYIGFuZCBTZWdhIFNhdHVybiB2ZXJzaW9ucyB1c2VkIEVBJ3MgIlZpcnR1YWwgU3RhZGl1bSIgZW5naW5lLCB3aXRoIDJEIHNwcml0ZSBwbGF5ZXJzIG1vdmluZyBhcm91bmQgYSByZWFsLXRpbWUgM0Qgc3RhZGl1bS4NCjE5OTUgKEp1bCAxOCk6W0Jvb2tdIEJhcmFjayBPYmFtYSdzIERyZWFtcyBmcm9tIE15IEZhdGhlcjogQSBTdG9yeSBvZiBSYWNlIGFuZCBJbmhlcml0YW5jZTsgRHJlYW1zIGZyb20gTXkgRmF0aGVyOiBBIFN0b3J5IG9mIFJhY2UgYW5kIEluaGVyaXRhbmNlICgyMDA2LCBPY3QgMTcpOyBPZiBUaGVlIEkgU2luZzogQSBMZXR0ZXIgdG8gTXkgRGF1Z2h0ZXJzICgyMDEwLCBOb3YgMTYpOyBBIFByb21pc2VkIExhbmQgKDIwMjAsIE5vdiAxNykNCjE5OTUoSmFuIDEpOltFbnZdIFRoZSBBZ3JlZW1lbnQgb24gQWdyaWN1bHR1cmUgKEFvQSkgaXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgb2YgdGhlIFdvcmxkIFRyYWRlIE9yZ2FuaXphdGlvbi4gSXQgd2FzIG5lZ290aWF0ZWQgZHVyaW5nIHRoZSBVcnVndWF5IFJvdW5kIG9mIHRoZSBHZW5lcmFsIEFncmVlbWVudCBvbiBUYXJpZmZzIGFuZCBUcmFkZSwgYW5kIGVudGVyZWQgaW50byBmb3JjZSB3aXRoIHRoZSBlc3RhYmxpc2htZW50IG9mIHRoZSBXVE8gb24gSmFudWFyeSAxLCAxOTk1LiBCbHVlLCBSZWQsIEFtYmVyIGFuZCBHcmVlbiBCb3ggb2Ygc3Vic2lkaWVzLg0KMTk5NTpbQ2luZW1hXSBOZWxzb24gTWFuZGVsYSwgaW4gaGlzIGZpcnN0IHRlcm0gYXMgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYSwgaW5pdGlhdGVzIGEgdW5pcXVlIHZlbnR1cmUgdG8gdW5pdGUgdGhlIEFwYXJ0aGVpZC10b3JuIGxhbmQ6IGVubGlzdCB0aGUgbmF0aW9uYWwgcnVnYnkgdGVhbSBvbiBhIG1pc3Npb24gdG8gd2luIHRoZSAxOTk1IFJ1Z2J5IFdvcmxkIEN1cC4gLSAgSW52aWN0dXMgKDIwMDkpDQoxOTk1OltDaW5lbWFdIEEgQ2xvY2t3b3JrIE9yYW5nZSgxOTcxKQ0KMTk5NTpbQ2luZW1hXSBEZWFkIEVuZCBEcml2ZS1JbigxOTg2KQ0KMTk5NTpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gU3BhY2Vnb2R6aWxsYSgxOTk0KQ0KMTk5NTpbQ2luZW1hXSBIZWFydGJlZXBzKDE5ODEpDQoxOTk1OltDaW5lbWFdIFRoZSBNdW1teSdzIEN1cnNlKDE5NDQpDQoxOTk1IChEZWMpOltTcGFjZV0gU29sYXIgYW5kIEhlbGlvc3BoZXJpYyBPYnNlcnZhdG9yeSAoU29ITykgd2FzIGxhdW5jaGVkIGluIERlY2VtYmVyIDE5OTUgYXMgYSBqb2ludCBtaXNzaW9uIGJldHdlZW4gdGhlIEV1cm9wZWFuIFNwYWNlIEFnZW5jeSAoRVNBKSBhbmQgTkFTQSwgU29ITyB3YXMgZGVzaWduZWQgdG8gb3JiaXQgdGhlIFN1biB0byBsZWFybiBhYm91dCB0aGUgc3RydWN0dXJlIG9mIHRoZSBzdGFy4oCZcyBpbnRlcmlvciBhbmQgaXRzIG91dGVyIGF0bW9zcGhlcmUsIGFzIHdlbGwgYXMgdG8gaW52ZXN0aWdhdGUgdGhlIGJlaGF2aW9yIG9mIHNvbGFyIHdpbmRzLiBJdCB3YXMgZXhwZWN0ZWQgdG8gY29tcGxldGUgaXRzIG1pc3Npb24gaW4gMTk5OC4gSW5zdGVhZCwgaXQgaXMgc3RpbGwgYWN0aXZlIHRvZGF5LCBhbmQgaXMgbm93IGxpa2VseSB0byBrZWVwIHdvcmtpbmcgdW50aWwgMjAyNSwgd2hlbiBpdCB3aWxsIGhhdmUgYmVlbiBpbiBzcGFjZSBmb3IgMzAgeWVhcnMuDQoxOTk1OltQaHlzaWNzXVtTcGFjZV1bUmVzZWFyY2hdIFByaW9yIHRvIDE5OTUsIHRoZW9yaXN0cyBiZWxpZXZlZCB0aGF0IHRoZXJlIHdlcmUgZml2ZSBjb25zaXN0ZW50IHZlcnNpb25zIG9mIHN1cGVyc3RyaW5nIHRoZW9yeSAodHlwZSBJLCB0eXBlIElJQSwgdHlwZSBJSUIsIGFuZCB0d28gdmVyc2lvbnMgb2YgaGV0ZXJvdGljIHN0cmluZyB0aGVvcnkpLiBUaGlzIHVuZGVyc3RhbmRpbmcgY2hhbmdlZCBpbiAxOTk1IHdoZW4gRWR3YXJkIFdpdHRlbiBzdWdnZXN0ZWQgdGhhdCB0aGUgZml2ZSB0aGVvcmllcyB3ZXJlIGp1c3Qgc3BlY2lhbCBsaW1pdGluZyBjYXNlcyBvZiBhbiBlbGV2ZW4tZGltZW5zaW9uYWwgdGhlb3J5IGNhbGxlZCBNLXRoZW9yeS4gV2l0dGVuJ3MgY29uamVjdHVyZSB3YXMgYmFzZWQgb24gdGhlIHdvcmsgb2YgYSBudW1iZXIgb2Ygb3RoZXIgcGh5c2ljaXN0cywgaW5jbHVkaW5nIEFzaG9rZSBTZW4sIENocmlzIEh1bGwsIFBhdWwgVG93bnNlbmQsIGFuZCBNaWNoYWVsIER1ZmYuIEhpcyBhbm5vdW5jZW1lbnQgbGVkIHRvIGEgZmx1cnJ5IG9mIHJlc2VhcmNoIGFjdGl2aXR5IG5vdyBrbm93biBhcyB0aGUgc2Vjb25kIHN1cGVyc3RyaW5nIHJldm9sdXRpb24uDQoxOTk1OltDcmltZV1bSW5kaWFdIE11cmRlciBvZiBNdW1iYWktYmFzZWQgYnVpbGRlciBQcmFkZWVwIEphaW4gYnkgQWJ1IFNhbGVtDQoxOTk1OiBGb3J0dW5lIEhvdGVscyBpbiBJbmRpYSBpcyBvd25lZCBieSBpdHMgcGFyZW50IGNvbXBhbnksIElUQyBMdGQuLCB3aGljaCBlc3RhYmxpc2hlZCBGb3J0dW5lIEhvdGVscyBpbiAxOTk1IGFzIGEgc3Vic2lkaWFyeSB0byBwcm92aWRlIG1pZC1tYXJrZXQgdG8gdXBzY2FsZSBob3NwaXRhbGl0eSBzZXJ2aWNlcy4gSG93ZXZlciwgYSBzZXBhcmF0ZSBncm91cCwgRm9ydHVuZSBHcm91cCBvZiBIb3RlbHMsIGJhc2VkIGluIHRoZSBVbml0ZWQgQXJhYiBFbWlyYXRlcyAoVUFFKSBhbmQgZm91bmRlZCBieSBQcmF2ZWVuIFNoZXR0eSwgYWxzbyBvcGVyYXRlcyBhIGRpZmZlcmVudCBzZXQgb2YgaG90ZWxzIGluIHRoYXQgcmVnaW9uLg0KMTk5NTpbVUtdIENhbWlsbGEgaXMgUXVlZW4gb2YgdGhlIFVuaXRlZCBLaW5nZG9tIGFuZCAxNCBvdGhlciBDb21tb253ZWFsdGggcmVhbG1zIGFzIHRoZSB3aWZlIG9mIEtpbmcgQ2hhcmxlcyBJSUkuIENhbWlsbGEgd2FzIHJhaXNlZCBpbiBFYXN0IFN1c3NleCBhbmQgU291dGggS2Vuc2luZ3RvbiBpbiBFbmdsYW5kIGFuZCBlZHVjYXRlZCBpbiBFbmdsYW5kLCBTd2l0emVybGFuZCBhbmQgRnJhbmNlLiBJbiAxOTczLCBzaGUgbWFycmllZCBCcml0aXNoIEFybXkgb2ZmaWNlciBBbmRyZXcgUGFya2VyIEJvd2xlczsgdGhleSBkaXZvcmNlZCBpbiAxOTk1Lg0KDQoxOTk2OltHZW9Qb2xpdGljc11bQnVzaW5lc3NdIE1vbmdvbGlhIHdhcyBncmFudGVkIG9ic2VydmVyIHN0YXR1cyB0byBUUkFDRUNBLg0KMTk5NiAoNyBBdWd1c3QpOltSZXNlYXJjaF1bU3BhY2VdIE5BU0EgYW5ub3VuY2VkIGZvc3NpbGl6ZWQgZXZpZGVuY2Ugb2YgYW5jaWVudCBsaWZlIGluIG1ldGVvcml0ZSBBTEggODQwMDEgZnJvbSBNYXJzLg0KMTk5NiAoT2N0IDI3KTpbUmVzZWFyY2hdW1NwYWNlXSBnZW5ldGljaXN0cyBzaG93ZWQgZXZpZGVuY2UgdGhhdCBtYW55IGdlbmVzIGFyZSBtdWNoIG9sZGVyIHRoYW4gdGhlIGZvc3NpbCByZWNvcmQgd291bGQgaW5kaWNhdGUuIFN1YnNlcXVlbnQgc3R1ZGllcyBoYXZlIHN0cmVuZ3RoZW5lZCB0aGlzIGZpbmRpbmcuDQoxOTk2OltCdXNpbmVzc11bR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2hlbiB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4gc2lnbmVkIHRoZSBUcmVhdHkgb24gRGVlcGVuaW5nIE1pbGl0YXJ5IFRydXN0IGluIEJvcmRlciBSZWdpb25zIGluIFNoYW5naGFpLiBPbiAyNCBBcHJpbCAxOTk3IHRoZSBzYW1lIGNvdW50cmllcyBzaWduZWQgdGhlIFRyZWF0eSBvbiBSZWR1Y3Rpb24gb2YgTWlsaXRhcnkgRm9yY2VzIGluIEJvcmRlciBSZWdpb25zIGluIGEgbWVldGluZyBpbiBNb3Njb3csIFJ1c3NpYS4gT24gMjAgTWF5IDE5OTcgUnVzc2lhbiBQcmVzaWRlbnQgQm9yaXMgWWVsdHNpbiBhbmQgQ2hpbmVzZSBQcmVzaWRlbnQgSmlhbmcgWmVtaW4gc2lnbmVkIGEgZGVjbGFyYXRpb24gb24gYSAibXVsdGlwb2xhciB3b3JsZCIuDQoxOTk2OiAxOTk2IE1vdW50IEV2ZXJlc3QgRGlzYXN0ZXIsIGluIHdoaWNoIGVpZ2h0IHBlb3BsZSBkaWVkIHdoaWxlIG9uIGFuIGV4cGVkaXRpb24gdG8gc2NhbGUgdGhlIGluZmFtb3VzIHN1bW1pdC4gT25lIG9mIHRoZSBjbGltYmVycyB3aG8gbG9zdCBoaXMgbGlmZSB3YXMgQW5keSBIYXJyaXMsIHBsYXllZCBpbiBFdmVyZXN0IGJ5IE1hcnRpbiBIZW5kZXJzb24uIEhhcnJpcyB3YXMgb25lIG9mIHRoZSBndWlkZXMgZm9yIHRoZSBBZHZlbnR1cmUgQ29uc3VsdGFudHMsIGFsb25nIHdpdGggUm9iIEhhbGwgYW5kIE1pa2UgR3Jvb20uIEluIHRoZSBmaWxtLCBoZSBhcHBlYXJzIHRvIGRpZSB3aGlsZSB3aXRoIEhhbGwsIGZhbGxpbmcgb2ZmIGEgY2xpZmYgYWZ0ZXIgYSBoYWxsdWNpbmF0aW9uLiBCdXQgUm9iIEhhbGwgbmV2ZXIgcmVwb3J0ZWQgdGhpcywgYW5kIHNpbmNlIGhlIGRpZWQgc2hvcnRseSB0aGVyZWFmdGVyLCB0aGVyZSBpcyBubyB3YXkgdG8gY29uZmlybSB0aGUgY2lyY3Vtc3RhbmNlcyBzdXJyb3VuZGluZyBIYXJyaXMnIGRlYXRoLg0KMTk5NjpbQ29tcHV0aW5nXVtRdWFudHVtXSAgTG92IEdyb3ZlciBkZXZpc2VkIGFuIGFsZ29yaXRobSAoR3JvdmVyJ3MgYWxnb3JpdGhtKSB0aGF0IGNvdWxkIHNlYXJjaCBhbiB1bnNvcnRlZCBkYXRhYmFzZSBpbiBzcXVhcmUgcm9vdCB0aW1lIG9uIGEgcXVhbnR1bSBjb21wdXRlciwgd2hpY2ggd291bGQgb3V0cGVyZm9ybSBhbnkgY2xhc3NpY2FsIGFsZ29yaXRobS4NCjE5OTY6W1VTXSBCYXJhY2sgT2JhbWEgd2FzIGVsZWN0ZWQgdG8gdGhlIElsbGlub2lzIFNlbmF0ZSwgc3VjY2VlZGluZyBEZW1vY3JhdGljIFN0YXRlIFNlbmF0b3IgQWxpY2UgUGFsbWVyIGZyb20gSWxsaW5vaXMncyAxM3RoIERpc3RyaWN0LCB3aGljaCwgYXQgdGhhdCB0aW1lLCBzcGFubmVkIENoaWNhZ28gU291dGggU2lkZSBuZWlnaGJvcmhvb2RzIGZyb20gSHlkZSBQYXJr4oCTS2Vud29vZCBzb3V0aCB0byBTb3V0aCBTaG9yZSBhbmQgd2VzdCB0byBDaGljYWdvIExhd24uDQoxOTk2OltVS10gQ2hhcmxlcyBJSUkgYW5kIERpYW5hIGdldHMgZGl2b3JjZWQuDQoxOTk2IChKYW4gMjUpOltCb29rXSBQZXRlciBMeW5jaCAmIEpvaG4gUm90aGNoaWxkJ3MgTGVhcm4gdG8gRWFybjogQSBCZWdpbm5lcidzIEd1aWRlIHRvIHRoZSBCYXNpY3Mgb2YgSW52ZXN0aW5nIGFuZCBCdXNpbmVzcy4NCjE5OTYgKEphbik6W0NyaW1lXVtJbmRpYV0gQW5lZXMgSWJyYWhpbSBhcnJlc3RlZCBpbiBCYWhyYWluLCBzaGlmdGVkIHRvIER1YmFpIGFsbGVnZWRseSBvbiB0aGUgaW50ZXJ2ZW50aW9uIG9mIHNvbWUgb2YgRHViYWkncyBydWxpbmcgbm90YWJsZXMsIGFuZCB3YXMgdGhlbiBhbGxvd2VkIHRvIHNsaXAgYXdheSB0byBLYXJhY2hpLCBQYWtpc3Rhbi4NCjE5OTY6IE5hdGlvbmFsIEFlcm9zcGFjZSBMYWJvcmF0b3JpZXMsIEluZGlhIGluZGlnZW5vdXNseSBidWlsdCBGTE9TT0xWRVIsIEluZGlhJ3MgZmlyc3Qgc3VwZXJjb21wdXRlci4gSXQgd2FzIHJlcGxpY2F0ZWQgYW5kIGluc3RhbGxlZCBhdCBJQ0FEIE1vc2NvdyBpbiAxOTkxIHVuZGVyIFJ1c3NpYW4gY29sbGFib3JhdGlvbi4NCjE5OTY6IEluZGlhL1Bha2lzdGFuL1NyaSBMYW5rYSAxOTk2Lg0KMTk5NjpbQ29tcHV0aW5nXVt3d3ddIE1hcmlvIDY0IGdhbWUgcmFuIDEwMCBtaWxsaW9uIGNhbGN1bGF0aW9ucyBwZXIgc2Vjb25kLCA1NDAgbWlsbGlvbiAoSGFsZi1MaWZlKSBpbiAxOTk4LCBNaW5lY3JhZnQgKDIwMTEpIHJ1bm5pbmcgMTAwIGJpbGxpb24gY2FsY3VsYXRpb25zLCBDeWJlcnB1bmsgMjA3NyAobW9zdCByZWFsaXN0aWMgdmlkZW8gZ2FtZSAyMDI0KSwgeW91IG5lZWQgYSBncmFwaGljcyBjYXJkIHRoYXQgY2FuIHBlcmZvcm0gYXJvdW5kIDM2IHRyaWxsaW9uIGNhbGMgcGVyIHNlY29uZC4NCjE5OTY6IFByb2YgTWFsY29sbSBIZWF0aC4gUHJvZmVzc29yIG9mIEdyZWVrIExhbmd1YWdlIGFuZCBMaXRlcmF0dXJlIEBsZWVkcy5hYy51aywgdHJhbnNsYXRlZCBBcmlzdG90bGUncyBQb2V0aWNzLg0KMTk5NjogVGhlIDU2SyBtb2RlbSB3YXMgaW52ZW50ZWQgYnkgRHIuIEJyZW50IFRvd25zaGVuZA0KMTk5NiAoRmViIDEzKTogTmVwYWxlc2UgQ2l2aWwgV2FyIHN0YXJ0ZWQuIFRoZSBNYW9pc3QgUmViZWxsaW9uIChsYWJlbGxlZCB0aGUgUGVvcGxlJ3MgV2FyIGJ5IHRoZW4gQ1BOKE1hb2lzdCkpIHdhcyBhbiBhcm1lZCBjb25mbGljdCBhZ2FpbnN0IEdvdmVybm1lbnQgb2YgTmVwYWwgKHRoZW4gSE1HIG9mIE5lcGFsKSBmb3VnaHQgZnJvbSAxOTk2IHRvIDIwMDYuIFRoZSByZWJlbGxpb24gd2FzIGxhdW5jaGVkIGJ5IHRoZSBDb21tdW5pc3QgUGFydHkgb2YgTmVwYWwgKE1hb2lzdCkgb24gMTMgRmVicnVhcnkgMTk5NiB3aXRoIHRoZSBtYWluIGFpbSBvZiBvdmVydGhyb3dpbmcgdGhlIE5lcGFsZXNlIG1vbmFyY2h5IGFuZCBlc3RhYmxpc2hpbmcgYSAnUGVvcGxlJ3MgUmVwdWJsaWMnLiBJdCBlbmRlZCB3aXRoIHRoZSBDb21wcmVoZW5zaXZlIFBlYWNlIEFjY29yZCBzaWduZWQgb24gMjEgTm92ZW1iZXIgMjAwNi4NCjE5OTYgKE1hciAxKTogW0dlb1BvbGl0aWNzXSBUaGUgQXNpYeKAk0V1cm9wZSBNZWV0aW5nIChBU0VNKSBpcyBhbiBBc2lhbuKAk0V1cm9wZWFuIHBvbGl0aWNhbCBkaWFsb2d1ZSBmb3J1bSB0byBlbmhhbmNlIHJlbGF0aW9ucyBhbmQgdmFyaW91cyBmb3JtcyBvZiBjb29wZXJhdGlvbiBiZXR3ZWVuIGl0cyBwYXJ0bmVycy4gSXQgd2FzIG9mZmljaWFsbHkgZXN0YWJsaXNoZWQgYXQgdGhlIDFzdCBBU0VNIFN1bW1pdCAoQVNFTTEpIGluIEJhbmdrb2ssIFRoYWlsYW5kLCBieSB0aGUgdGhlbiAxNSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aGUgRXVyb3BlYW4gQ29tbWlzc2lvbiwgdGhlIHRoZW4gNyBNZW1iZXIgU3RhdGVzIG9mIHRoZSBBc3NvY2lhdGlvbiBvZiBTb3V0aGVhc3QgQXNpYW4gTmF0aW9ucyAoQVNFQU4pLCBhbmQgdGhlIGluZGl2aWR1YWwgY291bnRyaWVzIG9mIENoaW5hLCBKYXBhbiwgYW5kIFNvdXRoIEtvcmVhLiBBIHNlcmllcyBvZiBlbmxhcmdlbWVudHMgc2F3IGFkZGl0aW9uYWwgRVUgTWVtYmVyIFN0YXRlcyBqb2luIGFzIHdlbGwgYXMgSW5kaWEsIE1vbmdvbGlhLCBQYWtpc3RhbiBhbmQgdGhlIEFTRUFOIFNlY3JldGFyaWF0IGluIDIwMDgsIEF1c3RyYWxpYSwgTmV3IFplYWxhbmQgYW5kIFJ1c3NpYSBpbiAyMDEwLCBCYW5nbGFkZXNoLCBOb3J3YXksIGFuZCBTd2l0emVybGFuZCBpbiAyMDEyLCBhcyB3ZWxsIGFzIENyb2F0aWEsIGFuZCBLYXpha2hzdGFuIGluIDIwMTQuDQoxOTk2IChBcHIgMjYpOiBbR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2l0aCB0aGUgc2lnbmluZyBvZiB0aGUgVHJlYXR5IG9uIERlZXBlbmluZyBNaWxpdGFyeSBUcnVzdCBpbiBCb3JkZXIgUmVnaW9ucyBpbiBTaGFuZ2hhaSBieSB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4uIExhdGVyIG9uIEp1biAxNSwgMjAwMSBpdCBnb3QgcmVuYW1lZCBhcyBTaGFuZ2hhaSBDb29wZXJhdGlvbiBPcmdhbmlzYXRpb24gKFNDTykgb3IgU2hhbmdoYWkgUGFjdCANCjE5OTYgKE1heSAxNik6IEF0YWwgQmloYXJpIFZhanBheWVlIGJlY29tZXMgUE0gb2YgSW5kaWEgZm9yIHRoZSB2ZXJ5IGZpcnN0IHRpbWUgZm9yIDE2IGRheXMuDQoxOTk2IChKdW4gMSk6IEF0YWwgQmloYXJpIFZhanBheWVlIHJlc2lnbnMuIEhEIERldmUgR293ZGEgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NiAoQXVnIDE0KTpbcmVzZWFyY2hdW2V4dHJlbWVdIEthcmVuIEVsaXphYmV0aCBXZXR0ZXJoYWhuIChPY3RvYmVyIDE2LCAxOTQ4IOKAkyBKdW5lIDgsIDE5OTcpLCBhbHNvIGtub3duIGFzIEthcmVuIFdldHRlcmhhaG4gSmVubmV0dGUsIHdhcyBhbiBBbWVyaWNhbiBwcm9mZXNzb3Igb2YgY2hlbWlzdHJ5IGF0IERhcnRtb3V0aCBDb2xsZWdlLCBOZXcgSGFtcHNoaXJlLCB3aG8gc3BlY2lhbGl6ZWQgaW4gdG94aWMgbWV0YWwgZXhwb3N1cmUuIFNoZSBkaWVkIG9mIG1lcmN1cnkgcG9pc29uaW5nIGF0IHRoZSBhZ2Ugb2YgNDggZHVlIHRvIGFjY2lkZW50YWwgZXhwb3N1cmUgdG8gdGhlIGV4dHJlbWVseSB0b3hpYyBvcmdhbmljIG1lcmN1cnkgY29tcG91bmQgZGltZXRoeWxtZXJjdXJ5IChIZyhDSDMpMikuIFByb3RlY3RpdmUgZ2xvdmVzIGluIHVzZSBhdCB0aGUgdGltZSBvZiB0aGUgaW5jaWRlbnQgcHJvdmlkZWQgaW5zdWZmaWNpZW50IHByb3RlY3Rpb24sIGFuZCBleHBvc3VyZSB0byBvbmx5IGEgc2luZ2xlIGRyb3Agb3IgdHdvIG9mIHRoZSBkaW1ldGh5bG1lcmN1cnkgYWJzb3JiZWQgdGhyb3VnaCB0aGUgZ2xvdmVzIHByb3ZlZCB0byBiZSBmYXRhbCBhZnRlciBsZXNzIHRoYW4gYSB5ZWFyLiBUZXN0cyBsYXRlciByZXZlYWxlZCB0aGF0IGRpbWV0aHlsbWVyY3VyeSBjYW4sIGluIGZhY3QsIHJhcGlkbHkgcGVybWVhdGUgc2V2ZXJhbCBraW5kcyBvZiBsYXRleCBnbG92ZXMgYW5kIGVudGVyIHRoZSBza2luIHdpdGhpbiBhYm91dCAxNSBzZWNvbmRzLiBIZXIgZXhwb3N1cmUgd2FzIGxhdGVyIGNvbmZpcm1lZCBieSBoYWlyIGFuYWx5c2lzLCB3aGljaCBzaG93ZWQgYSBkcmFtYXRpYyBqdW1wIGluIG1lcmN1cnkgbGV2ZWxzIDE3IGRheXMgYWZ0ZXIgdGhlIGluaXRpYWwgYWNjaWRlbnQsIHBlYWtpbmcgYXQgMzkgZGF5cywgZm9sbG93ZWQgYnkgYSBncmFkdWFsIGRlY2xpbmUuIEFwcHJveGltYXRlbHkgdGhyZWUgbW9udGhzIGFmdGVyIHRoZSBpbml0aWFsIGFjY2lkZW50IFdldHRlcmhhaG4gYmVnYW4gZXhwZXJpZW5jaW5nIGJyaWVmIGVwaXNvZGVzIG9mIGFiZG9taW5hbCBkaXNjb21mb3J0IGFuZCBub3RpY2VkIHNpZ25pZmljYW50IHdlaWdodCBsb3NzLiBUaGUgbW9yZSBkaXN0aW5jdGl2ZSBuZXVyb2xvZ2ljYWwgc3ltcHRvbXMgb2YgbWVyY3VyeSBwb2lzb25pbmcsIGluY2x1ZGluZyBsb3NzIG9mIGJhbGFuY2UgYW5kIHNsdXJyZWQgc3BlZWNoLCBhcHBlYXJlZCBpbiBKYW51YXJ5IDE5OTcsIGZpdmUgbW9udGhzIGFmdGVyIHRoZSBhY2NpZGVudC4gSGVyIGJsb29kIGFuZCB1cmluYXJ5IG1lcmN1cnkgY29udGVudCB3ZXJlIG1lYXN1cmVkIGF0IDQsMDAwIM68Zy9MIGFuZCAyMzQgzrxnL0wsIHJlc3BlY3RpdmVseeKAlGJvdGggbWFueSB0aW1lcyB0aGVpciByZXNwZWN0aXZlIHRveGljIHRocmVzaG9sZHMgb2YgMjAwIM68Zy9MIGFuZCA1MCDOvGcvTCAoYmxvb2QgYW5kIHVyaW5lIHJlZmVyZW5jZSByYW5nZXMgYXJlIDEgdG8gOCDOvGcvTCBhbmQgMSB0byA1IM68Zy9MKS4NCjE5OTYgKERlYyA0IDA2OjU4OjA3IFVUQyk6W1NwYWNlXVtNYXJzXVtFYXJ0aF0gTGF1bmNoIG9mIE1hcnMgUGF0aGZpbmRlciBvbiBEZWx0YSBJSSA3OTI1ICgjRDI0MCkNCnJvY2tldCBmcm9tIENhcGUgQ2FuYXZlcmFsIFNMQy0xNy4gVG8gcHJvdmUgdGhhdCB0aGUgZGV2ZWxvcG1lbnQgb2YgImZhc3RlciwgYmV0dGVyIGFuZCBjaGVhcGVyIiBzcGFjZWNyYWZ0IHdhcyBwb3NzaWJsZSAod2l0aCB0aHJlZSB5ZWFycyBmb3IgZGV2ZWxvcG1lbnQgYW5kIGEgY29zdCB1bmRlciAkMTUwIG1pbGxpb24gZm9yIHRoZSBsYW5kZXIsIGFuZCAkMjUgbWlsbGlvbiBmb3IgdGhlIHJvdmVyKS4gVG8gc2hvdyB0aGF0IGl0IHdhcyBwb3NzaWJsZSB0byBzZW5kIGEgbG9hZCBvZiBzY2llbnRpZmljIGluc3RydW1lbnRzIHRvIGFub3RoZXIgcGxhbmV0IHdpdGggYSBzaW1wbGUgc3lzdGVtIGFuZCBhdCBvbmUtZmlmdGVlbnRoIHRoZSBjb3N0IG9mIGEgVmlraW5nIG1pc3Npb24uIChGb3IgY29tcGFyaXNvbiwgdGhlIFZpa2luZyBtaXNzaW9ucyBjb3N0ICQ5MzUgbWlsbGlvbiBpbiAxOTc0IG9yICQzLjUgYmlsbGlvbiBpbiAxOTk3IGRvbGxhcnMuKS4gVG8gZGVtb25zdHJhdGUgTkFTQSdzIGNvbW1pdG1lbnQgdG8gbG93LWNvc3QgcGxhbmV0YXJ5IGV4cGxvcmF0aW9uIGJ5IGZpbmlzaGluZyB0aGUgbWlzc2lvbiB3aXRoIGEgdG90YWwgZXhwZW5kaXR1cmUgb2YgJDI4MCBtaWxsaW9uLCBpbmNsdWRpbmcgdGhlIGxhdW5jaCB2ZWhpY2xlIGFuZCBtaXNzaW9uIG9wZXJhdGlvbnMuDQoxOTk2OiBhIHJhaWQgb24gdGhlIEFuaW1hbCBIdXNiYW5kcnkgZGVwYXJ0bWVudOKAmXMgb2ZmaWNlcyBpbiBDaGFpYmFzYSwgQmloYXIgdW5mb2xkZWQgdGhlIFJzLjk1MCBjcm9yZSBmb2RkZXIgc2NhbSwgaW4gd2hpY2ggdGhlIEJpaGFyIGNoaWVmIG1pbmlzdGVyIExhbHUgUHJhc2FkIFlhZGF2IGNhdGNoIHVwIGluIGEgbGlmZWxvbmcgdHVzc2xlIHdpdGggdGhlIENCSS4NCjE5OTY6W0Jvb2tdW0FkdmVudHVyZV0gSm9uIEtyYWthdWVyJ3MgSW50byB0aGUgV2lsZC4NCjE5OTY6W0NvbXB1dGluZ10gVGhlIFZpZGVvTEFOIHNvZnR3YXJlIG9yaWdpbmF0ZWQgYXMgYSBGcmVuY2ggYWNhZGVtaWMgcHJvamVjdC4gVkxDIHVzZWQgdG8gc3RhbmQgZm9yICJWaWRlb0xBTiBDbGllbnQiIHdoZW4gVkxDIHdhcyBhIGNsaWVudCBvZiB0aGUgVmlkZW9MQU4gcHJvamVjdCwgb2ZmaWNpYWxseSByZWxlYXNlZCB1bmRlciBHTlUgR1BMIG9uIDIwMDEgKEZlYiAxKS4NCjE5OTY6W01lbWVdIERhbmNpbmcgQmFieSBTY3JlZW5zYXZlcg0KMTk5NjpbU3BhY2VYXSBUaGUgZW50aXJlIHByb2Nlc3MgZm9yIHRoZSBKYW1lcyBXZWJiIFNwYWNlIFRlbGVzY29wZSAoSldTVCkgZnJvbSBpbml0aWFsIGNvbmNlcHQgdG8gbGF1bmNoIHNwYW5uZWQgYXBwcm94aW1hdGVseSAyNSB5ZWFycywgd2l0aCBpbml0aWFsIGRlc2lnbnMgYmVnaW5uaW5nIGluIDE5OTYgYW5kIHRoZSB0ZWxlc2NvcGUgbGF1bmNoaW5nIGluIDIwMjEsIGJ1dCBhIHNpZ25pZmljYW50IHBvcnRpb24gb2YgdGhpcyB3YXMgc3BlbnQgaW4gZGVzaWduLCB0ZXN0aW5nLCBhbmQgb3ZlcmNvbWluZyBtYWpvciByZWRlc2lnbnMgYW5kIGRlbGF5cywgbm90IGp1c3QgYXNzZW1ibHkuIA0KMTk5NiAoRmViIDI4KTpbRGVsaGldIEluZGlyYXB1cmFtLCBHaGF6aWFiYWQgd2FzIGVzdGQgd2hlbiBpdHMgZm91bmRhdGlvbiBzdG9uZSAoS2FsYSBQYXRoYXIpIHdhcyBpbmF1Z3VyYXRlZCBieSBTaCBNb3RpbGFsIFZvcmEsIHRoZW4gR292ZXJub3Igb2YgVVAuICgyMDIxKSBJJ3B1cmFtIEV4dG4gdG8gYmUgYnVpbHQgb24gMTIgYWNyZXMgb25seSwgY29uY2VpdmVkIGluIDIwMDQuDQoxOTk2OltCb29rXVtNaWxpdGFyeV1bQ3VsdHVyZV1bRVVdW1VTQV0gR2VvcmdlIFIuUi4gTWFydGluIGlzIHRoZSBBbWVyaWNhbiBhdXRob3Igb2YgdGhlIGVwaWMgZmFudGFzeSBib29rIHNlcmllcyBBIFNvbmcgb2YgSWNlIGFuZCBGaXJlLCB3aGljaCBiZWdhbiB3aXRoIEEgR2FtZSBvZiBUaHJvbmVzICgxOTk2KSBhbmQgc2VydmVkIGFzIHRoZSBiYXNpcyBmb3IgSEJPJ3MgbWFzc2l2ZWx5IHBvcHVsYXIgR2FtZSBvZiBUaHJvbmVzIFRWIHNlcmllcy4gQSBTb25nIG9mIEljZSBhbmQgRmlyZSBpcyBhIHNlcmllcyBvZiBoaWdoIGZhbnRhc3kgbm92ZWxzIGJ5IHRoZSBBbWVyaWNhbiBhdXRob3IgR2VvcmdlIFIuIFIuIE1hcnRpbi4gTWFydGluIGJlZ2FuIHdyaXRpbmcgdGhlIGZpcnN0IHZvbHVtZSwgQSBHYW1lIG9mIFRocm9uZXMsIGluIDE5OTEsIGFuZCBwdWJsaXNoZWQgaXQgaW4gMTk5Ni4gTWFydGluLCB3aG8gb3JpZ2luYWxseSBlbnZpc2lvbmVkIHRoZSBzZXJpZXMgYXMgYSB0cmlsb2d5LCBoYXMgcmVsZWFzZWQgZml2ZSBvdXQgb2Ygc2V2ZW4gcGxhbm5lZCB2b2x1bWVzLiANCg0KW0dlbmVyYXRpb25dIE1pbGxlbm5pYWwgZ2VuZXJhdGlvbiAoMTk4MeKAkzE5OTYpIGVuZHM7IGxhc3RlZCBmb3IgMTUgeWVhcnMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICA1MCB5ZWFycyBvZiBJbmRlcGVuZGVudCBJbmRpYSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSANCg0KW0dlbmVyYXRpb25dIEdlbiBaICgxOTk34oCTMjAxMikgc3RhcnRzOyBhbmQgZXhpc3RzIGZvciBuZXh0IDE1IHllYXJzLg0KDQoxOTk3OltXaG9dW1Jlc2VhcmNoXVtDb21wdXRpbmddW1RlY2hdW0N1bHR1cmVdIFZMQyBNZWRpYSBQbGF5ZXIgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBzdHVkZW50cyBhdCB0aGUgRnJlbmNoIGVuZ2luZWVyaW5nIHNjaG9vbCDDiWNvbGUgQ2VudHJhbGUgUGFyaXMgaW4gMTk5Ni4gV2hpbGUgaXQgc3RhcnRlZCBhcyBhbiBhY2FkZW1pYyBwcm9qZWN0IChWaWRlb0xBTikgdG8gc3RyZWFtIHZpZGVvIG92ZXIgYSBjYW1wdXMgbmV0d29yaywgaXRzIGRldmVsb3BtZW50IGFuZCBtb2Rlcm5pemF0aW9uIHdlcmUgbGF0ZXIgbGVkIGJ5IEplYW4tQmFwdGlzdGUgS2VtcGYuIA0KMTk5NzpbUmVzZWFyY2hdW1NwYWNlXSAyOSBKdWx5IDE5OTc6IGEgTkFTQSBzY2llbnRpc3QgYW5ub3VuY2VkIGV2aWRlbmNlIG9mIGZvc3NpbGl6ZWQgbWljcm9zY29waWMgbGlmZSBmb3JtcyBpbiBhIG1ldGVvcml0ZSBub3QgZnJvbSBhbnkga25vd24gcGxhbmV0Lg0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgR3JvdXAgb2YgRWlnaHQgKEc4KSB3YXMgYW4gaW50ZXJnb3Zlcm5tZW50YWwgcG9saXRpY2FsIGZvcnVtIGZyb20gMTk5NyB0byAyMDE0LCBmb3JtZWQgYnkgaW5jb3Jwb3JhdGluZyBSdXNzaWEgaW50byB0aGUgRzcuIFRoZSBHOCBiZWNhbWUgdGhlIEc3IGFnYWluIGFmdGVyIFJ1c3NpYSB3YXMgZXhwZWxsZWQgaW4gMjAxNCBhZnRlciB0aGUgUnVzc2lhbiBhbm5leGF0aW9uIG9mIENyaW1lYS4gRm91bmRlZDogMTk5NywgRGVudmVyLCBDb2xvcmFkbywgVW5pdGVkIFN0YXRlcw0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBGb3VuZGVkOiA2IEp1bmUgMTk5NywgVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiAoQklNU1RFQykgaXMgYW4gaW50ZXJuYXRpb25hbCBvcmdhbml6YXRpb24gb2Ygc2V2ZW4gU291dGggQXNpYW4gYW5kIFNvdXRoZWFzdCBBc2lhbiBuYXRpb25zLCBob3VzaW5nIDEuNzMgYmlsbGlvbiBwZW9wbGUgYW5kIGhhdmluZyBhIGNvbWJpbmVkIGdyb3NzIGRvbWVzdGljIHByb2R1Y3Qgb2YgVVMkNS4yIHRyaWxsaW9uLg0KMTk5NzpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gYnVpbHQgdGhlIGZpcnN0IGV4cGVyaW1lbnRhbCBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCBjb3VsZCBtYW5pcHVsYXRlIDcgcXViaXRzIHVzaW5nIG51Y2xlYXIgbWFnbmV0aWMgcmVzb25hbmNlIChOTVIpIHRlY2huaXF1ZXMuDQoxOTk3IChKdWwgNCk6W1NwYWNlXVtNYXJzXSBUaGUgTWFycyBQYXRoZmluZGVyIGVuZHVyZWQgYSAzMC1zZWNvbmQgY29tbXVuaWNhdGlvbnMgYmxhY2tvdXQgYXMgaXQgZW50ZXJlZCBNYXJzJyBhdG1vc3BoZXJlLiBJdCBsYW5kZWQgYXQgQXJlcyBWYWxsaXMsIENocnlzZSBQbGFuaXRpYSwgTWFycyAxOcKwN+KAsjQ44oCzTiAzM8KwMTPigLIxMuKAs1cuIE1hcnMgUGF0aGZpbmRlciAoTUVTVVIgUGF0aGZpbmRlcikgaXMgYW4gQW1lcmljYW4gcm9ib3RpYyBzcGFjZWNyYWZ0IHRoYXQgbGFuZGVkIGEgYmFzZSBzdGF0aW9uIHdpdGggYSByb3ZpbmcgcHJvYmUgb24gTWFycyBpbiAxOTk3LiBJdCBjb25zaXN0ZWQgb2YgYSBsYW5kZXIsIHJlbmFtZWQgdGhlIENhcmwgU2FnYW4gTWVtb3JpYWwgU3RhdGlvbiwgYW5kIGEgbGlnaHR3ZWlnaHQsIDEwLjYga2cgKDIzIGxiKSB3aGVlbGVkIHJvYm90aWMgTWFycyByb3ZlciBuYW1lZCBTb2pvdXJuZXIsIHRoZSBmaXJzdCByb3ZlciB0byBvcGVyYXRlIG91dHNpZGUgdGhlIEVhcnRo4oCTTW9vbiBzeXN0ZW0uDQoxOTk3OltCb29rXSBNaXRjaCBBbGJvbSdzIFR1ZXNkYXlzIHdpdGggTW9ycmllLg0KMTk5NzpbR2FtaW5nXSBHcmFuZCBUaGVmdCBBdXRvIChHVEEpIHJlbGVhc2VkIGJ5IERNQSBEZXNpZ24gKGxhdGVyIFJvY2tzdGFyIE5vcnRoKSBmb3IgUFMxLCBXaW5kb3dzIGFuZCBNUy1ET1M7IEdyYW5kIFRoZWZ0IEF1dG86IFZpY2UgQ2l0eSAoMjAwMik7IEdyYW5kIFRoZWZ0IEF1dG86IFNhbiBBbmRyZWFzICgyMDA0KTsgR3JhbmQgVGhlZnQgQXV0byBJViAoMjAwOCk7IEdyYW5kIFRoZWZ0IEF1dG8gViAoMjAxMyk7IEdyYW5kIFRoZWZ0IEF1dG86IFRoZSBUcmlsb2d5IOKAkyBUaGUgRGVmaW5pdGl2ZSBFZGl0aW9uICgyMDIxKQ0KMTk5NzogVGVra2VuIDMgd2FzIGRlc2lnbmVkIGJ5IEthdHN1aGlybyBIYXJhZGEgKE9zYWthLCBPc2FrYSBQcmVmZWN0dXJlLCBKYXBhbikgb2YgQmFuZGFpIE5hbWNvIEVudGVydGFpbm1lbnQgaGVhZHF1YXJ0ZXJlZCBhdCDFjHRhLCBUb2t5by4NCjE5OTcgKE1hciA2KTogW0dlb1BvbGl0aWNzXSBUaGUgSW5kaWFuIE9jZWFuIFJpbSBBc3NvY2lhdGlvbiwgZm9ybWVybHkga25vd24gYXMgdGhlIEluZGlhbiBPY2VhbiBSaW0gSW5pdGlhdGl2ZSBhbmQgdGhlIEluZGlhbiBPY2VhbiBSaW0gQXNzb2NpYXRpb24gZm9yIFJlZ2lvbmFsIENvb3BlcmF0aW9uLCBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBjb25zaXN0aW5nIG9mIDIzIHN0YXRlcyBib3JkZXJpbmcgdGhlIEluZGlhbiBPY2Vhbi4gVGhlIElPUkEgaXMgYSByZWdpb25hbCBmb3J1bSwgdHJpcGFydGl0ZSBpbiBuYXR1cmUsIGJyaW5naW5nIHRvZ2V0aGVyIHJlcHJlc2VudGF0aXZlcyBvZiBHb3Zlcm5tZW50LCBCdXNpbmVzcyBhbmQgQWNhZGVtaWEsIGZvciBwcm9tb3RpbmcgY28tb3BlcmF0aW9uIGFuZCBjbG9zZXIgaW50ZXJhY3Rpb24gYW1vbmcgdGhlbS4gSXQgaXMgYmFzZWQgb24gdGhlIHByaW5jaXBsZXMgb2YgT3BlbiBSZWdpb25hbGlzbSBmb3Igc3RyZW5ndGhlbmluZyBFY29ub21pYyBDb29wZXJhdGlvbiBwYXJ0aWN1bGFybHkgb24gVHJhZGUgRmFjaWxpdGF0aW9uIGFuZCBJbnZlc3RtZW50LCBQcm9tb3Rpb24gYXMgd2VsbCBhcyBTb2NpYWwgRGV2ZWxvcG1lbnQgb2YgdGhlIHJlZ2lvbi4gVGhlIENvb3JkaW5hdGluZyBTZWNyZXRhcmlhdCBvZiBJT1JBIGlzIGxvY2F0ZWQgYXQgRWJlbmUsIE1hdXJpdGl1cy4NCjE5OTcgKEFwciAyMSk6IEguRC4gRGV2ZSBHb3dkYSByZXNpZ25zLiBJbmRlciBLdW1hciBHdWpyYWwgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NyAoSnVuIDYpOiBbR2VvUG9saXRpY3NdIEJJTVNURUMgZm91bmRlZC4gVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBvZiBzZXZlbiBTb3V0aCBBc2lhbiBhbmQgU291dGhlYXN0IEFzaWFuIG5hdGlvbnMsIGhvdXNpbmcgMS43MyBiaWxsaW9uIHBlb3BsZSBhbmQgaGF2aW5nIGEgY29tYmluZWQgZ3Jvc3MgZG9tZXN0aWMgcHJvZHVjdCBvZiAkMy44IHRyaWxsaW9uLiBUaGUgQklNU1RFQyBtZW1iZXIgc3RhdGVzIOKAkyBCYW5nbGFkZXNoLCBCaHV0YW4sIEluZGlhLCBNeWFubWFyLCBOZXBhbCwgU3JpIExhbmthLCBhbmQgVGhhaWxhbmQg4oCTIGFyZSBhbW9uZyB0aGUgY291bnRyaWVzIGRlcGVuZGVudCBvbiB0aGUgQmF5IG9mIEJlbmdhbC4NCjE5OTcgKEp1biA4KTogRGVzcGl0ZSBhZ2dyZXNzaXZlIGNoZWxhdGlvbiB0aGVyYXB5LCBoZXIgY29uZGl0aW9uIHJhcGlkbHkgZGV0ZXJpb3JhdGVkLiBUaHJlZSB3ZWVrcyBhZnRlciB0aGUgZmlyc3QgbmV1cm9sb2dpY2FsIHN5bXB0b21zIGFwcGVhcmVkLCBXZXR0ZXJoYWhuIGxhcHNlZCBpbnRvIHdoYXQgYXBwZWFyZWQgdG8gYmUgYSB2ZWdldGF0aXZlIHN0YXRlIHB1bmN0dWF0ZWQgYnkgcGVyaW9kcyBvZiBleHRyZW1lIGFnaXRhdGlvbi4gT25lIG9mIGhlciBmb3JtZXIgc3R1ZGVudHMgc2FpZCB0aGF0ICJIZXIgaHVzYmFuZCBzYXcgdGVhcnMgcm9sbGluZyBkb3duIGhlciBmYWNlLiBJIGFza2VkIGlmIHNoZSB3YXMgaW4gcGFpbi4gVGhlIGRvY3RvcnMgc2FpZCBpdCBkaWRuJ3QgYXBwZWFyIHRoYXQgaGVyIGJyYWluIGNvdWxkIGV2ZW4gcmVnaXN0ZXIgcGFpbi4iIFdldHRlcmhhaG4gd2FzIHJlbW92ZWQgZnJvbSBsaWZlIHN1cHBvcnQgYW5kIHByb25vdW5jZWQgZGVhZCBvbiBKdW5lIDgsIDE5OTcsIHRlbiBtb250aHMgYWZ0ZXIgaGVyIGluaXRpYWwgZXhwb3N1cmUuIEluIHJlc3BvbnNlLCB0aGUgT2NjdXBhdGlvbmFsIFNhZmV0eSBhbmQgSGVhbHRoIEFkbWluaXN0cmF0aW9uIHJlY29tbWVuZGVkIHRoYXQgdGhlIHVzZSBvZiBkaW1ldGh5bG1lcmN1cnkgYmUgYXZvaWRlZCB1bmxlc3MgYWJzb2x1dGVseSBuZWNlc3NhcnkgYW5kIG1hbmRhdGVkIHRoZSB1c2Ugb2YgcGxhc3RpYy1sYW1pbmF0ZSBnbG92ZXMgKFNpbHZlclNoaWVsZCkgd2hlbiBoYW5kbGluZyB0aGlzIGNvbXBvdW5kLg0KMTk5NyAoSnVuIDEzKTpbSmFja10gQm9yZGVyDQoxOTk3IChKdW4gMjYpOltCb29rXSAzMllPIEouIEsuIFJvd2xpbmcgcHVibGlzaGVzIGhlciBmaXJzdCBIYXJyeSBQb3R0ZXIgYm9vaywgVGhlIFBoaWxvc29waGVyJ3MgU3RvbmU7IA0KVGhlIENoYW1iZXIgb2YgU2VjcmV0cyAoMiBKdWx5IDE5OTgpLA0KVGhlIFByaXNvbmVyIG9mIEF6a2FiYW4gKDggSnVseSAxOTk5KSwNClRoZSBHb2JsZXQgb2YgRmlyZSAoOCBKdWx5IDIwMDApLA0KVGhlIE9yZGVyIG9mIHRoZSBQaG9lbml4ICgsIDI3IEp1bmUgMjAwMyksDQpUaGUgSGFsZi1CbG9vZCBQcmluY2UgKDE2IEp1bHkgMjAwNSksDQpUaGUgRGVhdGhseSBIYWxsb3dzICgyMSBKdWx5IDIwMDcpDQoxOTk3IChBdWcgMjUpOltTcGFjZV0gQWR2YW5jZWQgQ29tcG9zaXRpb24gRXhwbG9yZXIgaXMgYSBOQVNBIEV4cGxvcmVyIHByb2dyYW0gc2F0ZWxsaXRlIGFuZCBzcGFjZSBleHBsb3JhdGlvbiBtaXNzaW9uIHRvIHN0dWR5IG1hdHRlciBjb21wcmlzaW5nIGVuZXJnZXRpYyBwYXJ0aWNsZXMgZnJvbSB0aGUgc29sYXIgd2luZCwgdGhlIGludGVycGxhbmV0YXJ5IG1lZGl1bSwgYW5kIG90aGVyIHNvdXJjZXMuDQoxOTk3IChTZXAgMTMpOiB0aGUgaW50cm9kdWN0b3J5IGVwaXNvZGUgb2YgU2hha3RpbWFuIHdhcyBhaXJlZCBvbiBEb29yZGFyc2hhbiAoSW5kaWEncyBuYXRpb25hbCB0ZWxldmlzaW9uIG5ldHdvcmspIGZyb20gMjcgU2VwdGVtYmVyIDE5OTcgdG8gMjcgTWFyY2ggMjAwNSwgb24gU3VuZGF5cyBhdCAxMiBub29uIElTVC4gVGhlIHRlbGVjYXN0IHNsb3QsIGhvd2V2ZXIgd2FzIHNoaWZ0ZWQgdG8gOTozMCBhLm0uIGZvciB0aGUgbGFzdCBlcGlzb2Rlcy4gDQoxOTk3IChTZXAgMjcgMTA6MjMgVVRDKTpbU3BhY2VdW01hcnNdIExhc3QgY29udGFjdCB3aXRoIE1hcnMgUGF0aGZpbmRlci4gTWlzc2lvbiBkdXJhdGlvbiAoTGF1bmNoIHRvIGxhc3QgY29udGFjdCk6IDkgbW9udGhzLCAyMyBkYXlzLg0KMTk5NyAoT2N0IDMxKTpbQm9va10gRG9uYWxkIFRydW1wJ3MgVHJ1bXA6IFRoZSBBcnQgb2YgdGhlIENvbWViYWNrOyBUaGUgQW1lcmljYSBXZSBEZXNlcnZlICgyMDAwKTsgVHJ1bXA6IFRoaW5rIExpa2UgYSBCaWxsaW9uYWlyZTogRXZlcnl0aGluZyBZb3UgTmVlZCB0byBLbm93IEFib3V0IFN1Y2Nlc3MsIFJlYWwgRXN0YXRlLCBhbmQgTGlmZSAoMjAwNCk7IFdoeSBXZSBXYW50IFlvdSB0byBCZSBSaWNoICgyMDA2KTsgVHJ1bXA6IFRoZSBCZXN0IFJlYWwgRXN0YXRlIEFkdmljZSBJIEV2ZXIgUmVjZWl2ZWQ6IDEwMCBUb3AgRXhwZXJ0cyBTaGFyZSBUaGVpciBTdHJhdGVnaWVzICgyMDA2LCBOb3YgMSk7IFRoaW5rIEJJRyBhbmQgS2ljayBBc3MgaW4gQnVzaW5lc3MgYW5kIExpZmUgKDIwMDcpOyBUcnVtcCBOZXZlciBHaXZlIFVwOiBIb3cgSSBUdXJuZWQgTXkgQmlnZ2VzdCBDaGFsbGVuZ2VzIGludG8gU3VjY2VzcyAoMjAwOCk7IFRpbWUgdG8gR2V0IFRvdWdoOiBNYWtpbmcgQW1lcmljYSAjMSBBZ2FpbiAoMjAxMSk7IENyaXBwbGVkIEFtZXJpY2E6IEhvdyB0byBNYWtlIEFtZXJpY2EgR3JlYXQgQWdhaW4gKDIwMTUpDQoxOTk3OiBBcnVuZGhhdGkgUm95IGJlY2FtZSB0aGUgZmlyc3QgSW5kaWFuIHRvIHdpbiBNYW4gQm9va2VyIFByaXplIGZvciBoZXIgbm92ZWwgJ1RoZSBHb2Qgb2YgU21hbGwgVGhpbmdzJy4NCjE5OTc6IElJVC1KRUUgd2FzIGNvbmR1Y3RlZCB0d2ljZSBhZnRlciB0aGUgUS1QYXBlciB3YXMgbGVha2VkLg0KMTk5NzogTkFTQSBlc3RpbWF0ZWQgdGhlcmUgd2VyZSBhcHByb3guIDIsNjQ1IGFydGlmaWNpYWwgc2F0ZWxsaXRlIHBheWxvYWRzIG9yYml0dGluZyB0aGUgZWFydGggYW5kIDYsMjE2IHBpZWNlcyBvZiBzcGFjZSBkZWJyaXMgYXMgdHJhY2tlZCBieSB0aGUgR1NGQy4gT3ZlciAxNiwyOTEgcHJldmlvdXNseSBsYXVuY2hlZCBvYmplY3RzIGhhdmUgZGVjYXllZCBpbnRvIHRoZSBFYXJ0aCdzIGF0bW9zcGhlcmUuDQoxOTk3OiBCSEMgRmluYW5jaWFsLCBJbmMuIG9mIFBlbm5zeWx2YW5pYSBtZXJnZWQgaW50byBGSVNWIHRvIGZvcm0gU2VjdXJlZCBUcmFuc2FjdGlvbiBQcm9jZXNzaW5nIFNlcnZpY2VzLg0KMTk5NzpbQm9va10gVGhlIEZvdXIgQWdyZWVtZW50czogQSBQcmFjdGljYWwgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSBpcyBhIHNlbGYtaGVscCBib29rIGJ5IGJlc3RzZWxsaW5nIGF1dGhvciBEb24gTWlndWVsIFJ1aXogd2l0aCBKYW5ldCBNaWxsczsgVGhlIE1hc3Rlcnkgb2YgTG92ZTogQSBQcmFjdGljYWwgR3VpZGUgdG8gdGhlIEFydCBvZiBSZWxhdGlvbnNoaXAgLS1Ub2x0ZWMgV2lzZG9tIEJvb2sgKDE5OTksIE1hciAzMCk7IFRoZSBWb2ljZSBvZiBLbm93bGVkZ2U6IEEgUHJhY3RpY2FsIEd1aWRlIHRvIElubmVyIFBlYWNlICgyMDA0LCBNYXIgMTApOyBUaGUgRmlmdGggQWdyZWVtZW50OiBBIFByYWN0aWNhbCBHdWlkZSB0byBTZWxmLU1hc3RlcnkgKDIwMDkpOyBUaGUgQ2lyY2xlIG9mIEZpcmU6IEluc3BpcmF0aW9uIGFuZCBHdWlkZWQgTWVkaXRhdGlvbnMgZm9yIExpdmluZyBpbiBMb3ZlIGFuZCBIYXBwaW5lc3MgKDIwMTMsIEF1ZyAxKTsgVGhlIE1hc3Rlcnkgb2YgU2VsZjogQSBUb2x0ZWMgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSAoMjAxNiwgTWF5IDYpDQoxOTk3OltCb29rXSBKb24gS3Jha2F1ZXIncyBJbnRvIFRoaW4gQWlyOiBBIFBlcnNvbmFsIEFjY291bnQgb2YgdGhlIE10LiBFdmVyZXN0IERpc2FzdGVyOyBVbmRlciB0aGUgQmFubmVyIG9mIEhlYXZlbiAoMjAwMyBKdWwpDQoxOTk3IChEZWMgMTEpOltFbnZdIFRoZSBLeW90byBQcm90b2NvbCB3YXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgd2hpY2ggZXh0ZW5kZWQgdGhlIDE5OTIgVW5pdGVkIE5hdGlvbnMgRnJhbWV3b3JrIENvbnZlbnRpb24gb24gQ2xpbWF0ZSBDaGFuZ2UgKFVORkNDQykgdGhhdCBjb21taXRzIHN0YXRlIHBhcnRpZXMgdG8gcmVkdWNlIGdyZWVuaG91c2UgZ2FzIGVtaXNzaW9ucywgYmFzZWQgb24gdGhlIHNjaWVudGlmaWMgY29uc2Vuc3VzIHRoYXQgKHBhcnQgb25lKSBnbG9iYWwgd2FybWluZyBpcyBvY2N1cnJpbmcgYW5kIChwYXJ0IHR3bykgdGhhdCBodW1hbi1tYWRlIENPMiBlbWlzc2lvbnMgYXJlIGRyaXZpbmcgaXQuDQoxOTk3OltJbmRpYV1bRWR1Y2F0aW9uXVtDdWx0dXJlXSBFa2xhdnlhIE1vZGVsIFJlc2lkZW50aWFsIFNjaG9vbCBpcyBhIEdvdmVybm1lbnQgb2YgSW5kaWEgc2NoZW1lIGZvciBtb2RlbCByZXNpZGVudGlhbCBzY2hvb2wgZm9yIEluZGlhbiB0cmliYWxzIGFjcm9zcyBJbmRpYS4gSXQgaXMgb25lIG9mIHRoZSBmbGFnc2hpcCBpbnRlcnZlbnRpb25zIG9mIHRoZSBNaW5pc3RyeSBvZiBUcmliYWwgQWZmYWlycywgR292ZXJubWVudCBvZiBJbmRpYSBhbmQgd2FzIGludHJvZHVjZWQgaW4gdGhlIHllYXIgMTk5Ny05OCB0byBlbnN1cmUgdHJpYmFsIHN0dWRlbnRzIGdldCBhY2Nlc3MgdG8gcXVhbGl0eSBlZHVjYXRpb24gaW4gdGhlIHJlbW90ZSB0cmliYWwgYXJlYXMuIEVNUlNzIGFyZSBzZXQgdXAgaW4gU3RhdGVzL1VUcyB3aXRoIGdyYW50cyB1bmRlciBBcnRpY2xlIDI3NSgxKSBvZiB0aGUgQ29uc3RpdHV0aW9uIG9mIEluZGlhLiBBcyBwZXIgdGhlIGJ1ZGdldCAyMDE4LTE5LCBldmVyeSBibG9jayB3aXRoIG1vcmUgdGhhbiA1MCUgU1QgcG9wdWxhdGlvbiBhbmQgYXQgbGVhc3QgMjAsMDAwIHRyaWJhbCBwZXJzb25zLCB3aWxsIGhhdmUgYW4gRWtsYXZ5YSBNb2RlbCBSZXNpZGVudGlhbCBTY2hvb2wgYnkgdGhlIHllYXIgMjAyMi4NCjE5OTc6W1NwYWNlXSBIaXBwYXJjb3MgKDE5ODkgLTE5OTMpLiBJdCB0b29rIDQtOCB5ZWFycyB0byBvcmdhbml6ZSBhbmQgcHVibGlzaCB0aGUgNCB5ZWFycyBzdHVkeSBieSB0aGlzIGV4cGVyaW1lbnQsIHdoaWNoIHBlcm1pdHRlZCB0aGUgZmlyc3QgaGlnaC1wcmVjaXNpb24gbWVhc3VyZW1lbnRzIG9mIHRoZSBpbnRyaW5zaWMgYnJpZ2h0bmVzc2VzIChjb21wYXJlZCB0byB0aGUgbGVzcyBwcmVjaXNlIGFwcGFyZW50IGJyaWdodG5lc3MpLCBwcm9wZXIgbW90aW9ucywgYW5kIHBhcmFsbGF4ZXMgb2Ygc3RhcnMsIGVuYWJsaW5nIGJldHRlciBjYWxjdWxhdGlvbnMgb2YgdGhlaXIgZGlzdGFuY2UgYW5kIHRhbmdlbnRpYWwgdmVsb2NpdHkuIFdoZW4gY29tYmluZWQgd2l0aCByYWRpYWwgdmVsb2NpdHkgbWVhc3VyZW1lbnRzIGZyb20gc3BlY3Ryb3Njb3B5LCBhc3Ryb3BoeXNpY2lzdHMgd2VyZSBhYmxlIHRvIGZpbmFsbHkgbWVhc3VyZSBhbGwgc2l4IHF1YW50aXRpZXMgbmVlZGVkIHRvIGRldGVybWluZSB0aGUgbW90aW9uIG9mIHN0YXJzLiBUaGUgcmVzdWx0aW5nIEhpcHBhcmNvcyBDYXRhbG9ndWUsIGEgaGlnaC1wcmVjaXNpb24gY2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiAxMTgsMjAwIHN0YXJzLCB3YXMgcHVibGlzaGVkIGluIDE5OTcuIFRoZSBsb3dlci1wcmVjaXNpb24gVHljaG8gQ2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiBhIG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBhdCB0aGUgc2FtZSB0aW1lLCB3aGlsZSB0aGUgZW5oYW5jZWQgVHljaG8tMiBDYXRhbG9ndWUgb2YgMi41IG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBpbiAyMDAwLiBIaXBwYXJjb3MnIGZvbGxvdy11cCBtaXNzaW9uLCBHYWlhLCB3YXMgbGF1bmNoZWQgaW4gMjAxMy4NCjE5OTc6W1NwYWNlXVtSZXNlYXJjaF0gU2luY2UgdGhlIDE5OTcgcHJvcG9zYWwgb2YgdGhlIEFkUy9DRlQgKEFudGktZGUgU2l0dGVyL0NvbmZvcm1hbCBGaWVsZCBUaGVvcnkpIGNvcnJlc3BvbmRlbmNlLCB0aGUgcHJlZG9taW5hbnQgYmVsaWVmIGFtb25nIHBoeXNpY2lzdHMgaXMgdGhhdCBpbmZvcm1hdGlvbiBpcyBpbmRlZWQgcHJlc2VydmVkIGluIGJsYWNrIGhvbGUgZXZhcG9yYXRpb24uIA0KMTk5NzpbU3BhY2VdW1Jlc2VhcmNoXSBBIHdpZGVseSBwdWJsaWNpemVkIGJldCBtYWRlIGluIDE5OTcgYmV0d2VlbiBKb2huIFByZXNraWxsIG9uIHRoZSBvbmUgaGFuZCB3aXRoIEhhd2tpbmcgYW5kIEtpcCBUaG9ybmUgb24gdGhlIG90aGVyIHRoYXQgaW5mb3JtYXRpb24gd2FzIG5vdCBsb3N0IGluIGJsYWNrIGhvbGVzLiBUaGUgc2NpZW50aWZpYyBkZWJhdGUgb24gdGhlIHBhcmFkb3ggd2FzIGRlc2NyaWJlZCBpbiBhIHBvcHVsYXIgYm9vayBwdWJsaXNoZWQgaW4gMjAwOCBieSBMZW9uYXJkIFN1c3NraW5kIGNhbGxlZCBUaGUgQmxhY2sgSG9sZSBXYXIuIChUaGUgYm9vayBjYXJlZnVsbHkgbm90ZXMgdGhhdCB0aGUgJ3dhcicgd2FzIHB1cmVseSBhIHNjaWVudGlmaWMgb25lLCBhbmQgdGhhdCBhdCBhIHBlcnNvbmFsIGxldmVsLCB0aGUgcGFydGljaXBhbnRzIHJlbWFpbmVkIGZyaWVuZHMuKSBUaGUgYm9vayBzdGF0ZXMgdGhhdCBIYXdraW5nIHdhcyBldmVudHVhbGx5IHBlcnN1YWRlZCB0aGF0IGJsYWNrLWhvbGUgZXZhcG9yYXRpb24gd2FzIHVuaXRhcnkgYnkgdGhlIGhvbG9ncmFwaGljIHByaW5jaXBsZSwgd2hpY2ggd2FzIGZpcnN0IHByb3Bvc2VkIGJ5ICd0IEhvb2Z0LCBmdXJ0aGVyIGRldmVsb3BlZCBieSBTdXNza2luZCBhbmQgbGF0ZXIgZ2l2ZW4gYSBwcmVjaXNlIHN0cmluZyB0aGVvcnkgaW50ZXJwcmV0YXRpb24gYnkgdGhlIEFkUy9DRlQgY29ycmVzcG9uZGVuY2UuIEluIDIwMDQsIEhhd2tpbmcgYWxzbyBjb25jZWRlZCB0aGUgMTk5NyBiZXQsIHBheWluZyBQcmVza2lsbCB3aXRoIGEgYmFzZWJhbGwgZW5jeWNsb3BlZGlhICJmcm9tIHdoaWNoIGluZm9ybWF0aW9uIGNhbiBiZSByZXRyaWV2ZWQgYXQgd2lsbCIgYWx0aG91Z2ggVGhvcm5lIHJlZnVzZWQgdG8gY29uY2VkZS4NCjE5OTc6W0VhcnRoXVtQaHlzaWNzXVtSZXNlYXJjaF0gdGhlcmUgd2VyZSB0d28gbGFyZ2UgZWFydGhxdWFrZXMgb2ZmIHRoZSBjb2FzdCBvZiBDaGlsZS4gVGhlIG1hZ25pdHVkZSBvZiB0aGUgZmlyc3QsIGluIEp1bHksIHdhcyBlc3RpbWF0ZWQgYXQgTXfigK82LjksIGJ1dCB3YXMgYmFyZWx5IGZlbHQsIGFuZCBvbmx5IGluIHRocmVlIHBsYWNlcy4gSW4gT2N0b2JlciBhIE134oCvNy4xIHF1YWtlIGluIG5lYXJseSB0aGUgc2FtZSBsb2NhdGlvbiwgYnV0IHR3aWNlIGFzIGRlZXAgYW5kIG9uIGEgZGlmZmVyZW50IGtpbmQgb2YgZmF1bHQsIHdhcyBmZWx0IG92ZXIgYSBicm9hZCBhcmVhLCBpbmp1cmVkIG92ZXIgMzAwIHBlb3BsZSwgYW5kIGRlc3Ryb3llZCBvciBzZXJpb3VzbHkgZGFtYWdlZCBvdmVyIDEwLDAwMCBob3VzZXMuIEFzIGNhbiBiZSBzZWVuIGluIHRoZSB0YWJsZSBiZWxvdywgdGhpcyBkaXNwYXJpdHkgb2YgZGFtYWdlIGRvbmUgaXMgbm90IHJlZmxlY3RlZCBpbiBlaXRoZXIgdGhlIG1vbWVudCBtYWduaXR1ZGUgKE134oCvKSBub3IgdGhlIHN1cmZhY2Utd2F2ZSBtYWduaXR1ZGUgKE1z4oCvKS4gT25seSB3aGVuIHRoZSBtYWduaXR1ZGUgaXMgbWVhc3VyZWQgb24gdGhlIGJhc2lzIG9mIHRoZSBib2R5LXdhdmUgKG1i4oCvKSBvciB0aGUgc2Vpc21pYyBlbmVyZ3kgKE1l4oCvKSBpcyB0aGVyZSBhIGRpZmZlcmVuY2UgY29tcGFyYWJsZSB0byB0aGUgZGlmZmVyZW5jZSBpbiBkYW1hZ2UuIChhcyByZXNlYXJjaGVkIGJ5IENob3ksIEJvYXR3cmlnaHQgJiBLaXJieSAyMDAxLCBwLiAxMy4pLiBNdyA2Ljkgd2FzIGFjdHVhbGx5IE1lIDYuMSwgYW4gaW50ZXJwbGF0ZS10aHJ1c3QgdHlwZSBvZiBmYXVsdCwgd2hpbGUgTXcgNy4xIHdhcyBhY3R1YWxseSBhIDcuNSBNZSBpbnRyYXNsYWItbm9ybWFsIHR5cGUgb2YgZmF1bHQuDQoxOTk3OltSZXNlYXJjaF0gRHVyaW5nIHN1cnZleXMgY2FycmllZCBvdXQgYmV0d2VlbiAxOTk3IGFuZCAyMDAxLCBhIHNwb3Qgd2FzIGZvdW5kIGFsb25nIHRoZSBNYXJpYW5hIFRyZW5jaCB0aGF0IGhhZCBhIGRlcHRoIHNpbWlsYXIgdG8gdGhlIENoYWxsZW5nZXIgRGVlcCwgcG9zc2libHkgZXZlbiBkZWVwZXIuIEl0IHdhcyBkaXNjb3ZlcmVkIHdoaWxlIHNjaWVudGlzdHMgZnJvbSB0aGUgSGF3YWlpIEluc3RpdHV0ZSBvZiBHZW9waHlzaWNzIGFuZCBQbGFuZXRvbG9neSB3ZXJlIGNvbXBsZXRpbmcgYSBzdXJ2ZXkgYXJvdW5kIEd1YW07IHRoZXkgdXNlZCBhIHNvbmFyIG1hcHBpbmcgc3lzdGVtIHRvd2VkIGJlaGluZCB0aGUgcmVzZWFyY2ggc2hpcCB0byBjb25kdWN0IHRoZSBzdXJ2ZXkuIFRoaXMgbmV3IHNwb3Qgd2FzIG5hbWVkIHRoZSBITVJHIChIYXdhaWkgTWFwcGluZyBSZXNlYXJjaCBHcm91cCkgRGVlcCwgYWZ0ZXIgdGhlIGdyb3VwIG9mIHNjaWVudGlzdHMgd2hvIGRpc2NvdmVyZWQgaXQuDQoxOTk3OltTcGFjZVhdIEEgcmVzb2x2ZWQgY2lyY3Vtc3RlbGxhciBkaXNrIHdhcyBmaXJzdCBpZGVudGlmaWVkIGluIDE5OTcgd2l0aCB0aGUgT3dlbnMgVmFsbGV5IFJhZGlvIE9ic2VydmF0b3J5LiBUaGUgc2VtaS1tYWpvciBheGlzIHdhcyBpbml0aWFsbHkgZXN0aW1hdGVkIHRvIGJlIDExMCBBVS4gSEQgMTYzMjk2IGFuZCBzdXJyb3VuZGluZ3MgQ3JlZGl0OiBFU08vRGlnaXRpemVkIFNreSBTdXJ2ZXkgMjsgQWNrbm93bGVkZ2VtZW50OiBEYXZpZGUgRGUgTWFydGluIE9ic2VydmF0aW9uIGRhdGEgRXBvY2ggSjIwMDAgICAgICBFcXVpbm94IEoyMDAwIENvbnN0ZWxsYXRpb24JU2FnaXR0YXJpdXMgUmlnaHQgYXNjZW5zaW9uCTE3aCA1Nm0gMjEuMjlzIERlY2xpbmF0aW9uCeKIkjIxwrAgNTfigLIgMjEuODfigLMgQXBwYXJlbnQgbWFnbml0dWRlIChWKQk2Ljg1OyBDaGFyYWN0ZXJpc3RpY3MgRXZvbHV0aW9uYXJ5IHN0YWdlCUhlcmJpZyBBZSBzdGFyIFNwZWN0cmFsIHR5cGUJQTNWYWVrQTFtQTE7IEFzdHJvbWV0cnkgUmFkaWFsIHZlbG9jaXR5IChSdikJLTQuMDAgwrEzLjNbM10ga20vcyBQcm9wZXIgbW90aW9uICjOvCkJUkE6IC03LjU4NiDCsTAuMDQxIG1hcy95cjsgRGVjLjogLTM5LjQ1OCDCsTAuMDI5IG1hcy95cls0XSBQYXJhbGxheCAoz4ApCTkuOTA0M8KxMC4wNDA4IG1hc1s0XSBEaXN0YW5jZQkzMjkgwrEgMSBseSAoMTAxLjAgwrEgMC40IHBjKSBEZXRhaWxzOyBNYXNzCTEuOTXCsTAuMDcgTeKYiSBSYWRpdXMJMS44N8KxMC4wNSBS4piJIEx1bWlub3NpdHkJMjAuNCszLjYg4oiSMy4wIEzimIkgU3VyZmFjZSBncmF2aXR5IChsb2cgZykJNC4xMMKxMC4xMCBjZ3MgVGVtcGVyYXR1cmUJOTAwMMKxMjUwIEsgQWdlCTYuMDMrMC4yOCDiiJIwLjI3IE15ciBPdGhlciBkZXNpZ25hdGlvbnMgQkQtMjEgNDc3OSwgQ1BELTIxIDY1MDgsIEVNKiBNV0MgMjc1LCBISVAgODc4MTksIElSQVMgMTc1MzMtMjE1NiwgMk1BU1MgSjE3NTYyMTI4LTIxNTcyMTgsIFBEUyA0NzMsIFRZQyA2MjYyLTIxMzEtMSwgRGF0YWJhc2UgcmVmZXJlbmNlcyBTSU1CQUQNCjE5OTc6W1NwYWNlWF0gMTAxOTkgQ2hhcmlrbG8gaXMgYSByaW5nZWQgYXN0ZXJvaWQgb3IgY2VudGF1ciBpbiB0aGUgb3V0ZXIgU29sYXIgU3lzdGVtLiBJdCBpcyB0aGUgbGFyZ2VzdCBrbm93biBjZW50YXVyLCB3aXRoIGEgZGlhbWV0ZXIgb2YgYWJvdXQgMjUwIGttLiBJdCBvcmJpdHMgdGhlIFN1biBiZXR3ZWVuIFNhdHVybiBhbmQgVXJhbnVzIHdpdGggYW4gb3JiaXRhbCBwZXJpb2Qgb2YgNjIuNSB5ZWFycy4gV2lraXBlZGlhIE9yYml0YWwgcGVyaW9kOiA2MyB5ZWFycyBSYWRpdXM6IDE1MSBrbSBEaXNjb3ZlcmVkOiAxNSBGZWJydWFyeSAxOTk3IERpbWVuc2lvbnM6ICgyODcuNisyLjg7IOKIkjMuMCkgw5cgKDI3MC40KzIuODsg4oiSNS42KSDDlyAoMTk4LjIrMTAuODsg4oiSNS40KSBrbTogMTEgRGlzY292ZXJlcjogSmFtZXMgVi4gU2NvdHRpIFNwZWN0cmFsIHR5cGU6IEQtdHlwZSBhc3Rlcm9pZCBBcGhlbGlvbjogMTguNDIwIEFVDQoxOTk3OltTcGFjZVhdIFRoZSBHcmVhdCBEYXlsaWdodCBGaXJlYmFsbCAtIFRoZSBhdG1vc3BoZXJpYyBwYXNzIG1vZGlmaWVkIHRoZSBvYmplY3QncyBtYXNzIGFuZCBvcmJpdCBhcm91bmQgdGhlIFN1bi4gQSAxOTk0IHN0dWR5IGZvdW5kIHRoYXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgaW4gYW4gRWFydGgtY3Jvc3Npbmcgb3JiaXQgYW5kIHByZWRpY3RlZCB0aGF0IGl0IHdvdWxkIHBhc3MgY2xvc2UgdG8gRWFydGggYWdhaW4gaW4gQXVndXN0IDE5OTcuIEhvd2V2ZXIsIHRoZSBvYmplY3QgaGFzIG5vdCBiZWVuIG9ic2VydmVkIGFnYWluIGFuZCBzbyBpdHMgcG9zdC1lbmNvdW50ZXIgb3JiaXQgcmVtYWlucyB1bmtub3duLg0KMTk5NzpOYWZpc2EgSm9zZXBoIHdhcyB0aGUgeW91bmdlc3QgTWlzcyBJbmRpYSB3aW5uZXIgYXQgYWdlIDE5LCB3aW5uaW5nIHRoZSB0aXRsZSBpbiAxOTk3LiBTaGUgbGF0ZXIgYmVjYW1lIGEgbW9kZWwgYW5kIHRlbGV2aXNpb24gcGVyc29uYWxpdHkuIFdoaWxlIG90aGVyIHdpbm5lcnMgbGlrZSBNZWVuYWtzaGkgU2VzaGFkcmkgd2VyZSBhbHNvIDE3IHdoZW4gdGhleSB3b24gaW4gMTk4MSwgSm9zZXBoIGlzIG9mdGVuIGNpdGVkIGZvciBoZXIgZWFybHkgd2luIGF0IDE5LCB3aGljaCB3YXMgdGhlbiBhIHlvdW5nZXIgYWdlIHRoYW4gaXMgdHlwaWNhbGx5IHNlZW4gaW4gdGhlIGNvbXBldGl0aW9uLiANCjE5OTc6W3NwYWNlXVt0ZWNoXSBUaGUgZmluYWwgQmxvY2sgSUlBIHdhcyBpbiBOb3YgMTk5Nywgd2hpbGUgQmxvY2sgSUlScyBiZWdhbiByZXBsYWNpbmcgdGhlbSBzaG9ydGx5IGFmdGVyLCBsYXN0aW5nIHVudGlsIDIwMDQuIEJsb2NrIElJUiAoUmVwbGVuaXNobWVudCkgbGF1bmNoZXMgZm9sbG93ZWQgZnJvbSAxOTk3IHRvIDIwMDQsIHdpdGggdGhlIGZpcnN0IGxhdW5jaCBpbiBKYW51YXJ5IDE5OTcuIA0KDQoxOTk4OltTcGFjZVhdIFRoZSBwcmltYXJ5IGNvbnN0cnVjdGlvbiBwaGFzZSBvZiB0aGUgSW50ZXJuYXRpb25hbCBTcGFjZSBTdGF0aW9uIChJU1MpIHRvb2sgYXBwcm94aW1hdGVseSAxMyB5ZWFycywgZnJvbSAxOTk4IHRvIDIwMTEsIHdpdGggdGhlIGZpcnN0IG1vZHVsZSBsYXVuY2hpbmcgaW4gTm92ZW1iZXIgMTk5OCBhbmQgSVNTIEFzc2VtYmx5IENvbXBsZXRlIGRlY2xhcmVkIGluIE1heSAyMDExLiBIb3dldmVyLCBhc3NlbWJseSB3YXMgYSBjb250aW51b3VzLCBtdWx0aS1zdGFnZSBwcm9jZXNzIGludm9sdmluZyBtb3JlIHRoYW4gMzAgbWlzc2lvbnMsIG51bWVyb3VzIHNwYWNld2Fsa3MsIGFuZCByb2JvdGljIGFzc2lzdGFuY2UgdG8gYnVpbGQgdGhlIHN0YXRpb24gcGllY2UgYnkgcGllY2UgaW4gb3JiaXQuIEV2ZW4gYWZ0ZXIgMjAxMSwgdGhlIElTUyBjb250aW51ZWQgdG8gZXZvbHZlIHdpdGggb25nb2luZyBhZGRpdGlvbnMgYW5kIHVwZ3JhZGVzLg0KMTk5ODpbUmVzZWFyY2hdW1NwYWNlXSBTcHJpbmcsIDE5OTg6IGEgbWljcm9mb3NzaWwgdGhhdCB3YXMgZm91bmQgaW4gYSBtZXRlb3JpdGUgYW5kIHBob3RvZ3JhcGhlZCBpbiAxOTY2LCB3YXMgcmVjb2duaXplZCBieSBhIFJ1c3NpYW4gbWljcm9iaW9sb2dpc3QgYXMgYSBtYWduZXRvdGFjdGljIGJhY3Rlcml1bS4gQnkgRmFsbCwgMTk5ODogTkFTQSdzIHB1YmxpYyBwb3NpdGlvbiBvbiBsaWZlLWZyb20tc3BhY2Ugc2hpZnRlZCBkcmFtYXRpY2FsbHkuDQoxOTk4OiBBcyBhIHJlc2VhcmNoIHByb2plY3QgYXQgU3RhbmZvcmQgVW5pdmVyc2l0eSwgU2VyZ2V5IEJyaW4gYW5kIExhcnJ5IFBhZ2UgY3JlYXRlZCBhIHNlYXJjaCBlbmdpbmUgdGhhdCBsaXN0ZWQgcmVzdWx0cyBhY2NvcmRpbmcgdG8gdGhlIHBvcHVsYXJpdHkgb2YgdGhlIHBhZ2VzLCBhZnRlciBjb25jbHVkaW5nIHRoYXQgdGhlIG1vc3QgcG9wdWxhciByZXN1bHQgd291bGQgb2Z0ZW4gYmUgdGhlIG1vc3QgdXNlZnVsLiBBZnRlciByYWlzaW5nICQxIG1pbGxpb24gZnJvbSBmYW1pbHksIGZyaWVuZHMgYW5kIG90aGVyIGludmVzdG9ycywgdGhlIHBhaXIgbGF1bmNoZWQgdGhlIGNvbXBhbnkgaW4gMTk5OC4gR29vZ2xlIGhhcyBzaW5jZSBiZWNvbWUgdGhlIHdvcmxk4oCZcyBtb3N0IHBvcHVsYXIgc2VhcmNoIGVuZ2luZSwgcmVjZWl2aW5nIG1vcmUgdGhhbiAyMDAgbWlsbGlvbiBxdWVyaWVzIGVhY2ggZGF5Lg0KMTk5OCAoTm92IDIwKTogDQoxOTk4IChBcHIgMjcpOiBSUkIgZm91bmRlZCBhcyBSYWlsd2F5IFJlY3J1aXRtZW50IENvbnRyb2wgQm9hcmQgaXMgYSBnb3Zlcm5tZW50IG9yZ2FuaXNhdGlvbiBpbiBJbmRpYS4gSXQgd2FzIHNldCB1cCBpbiAxOTk4IGluIHRoZSBNaW5pc3RyeSBvZiBSYWlsd2F5cyAoUmFpbHdheSBCb2FyZCksIE5ldyBEZWxoaS5JbiAxOTQ1LCB0aGUgU2VydmljZXMgQ29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgYXQgQm9tYmF5LCBDYWxjdXR0YSwgTWFkcmFzIGFuZCBMdWNrbm93LiBJbiAxOTgzLCB0byBjYXRlciB0byB0aGUgbmVlZHMgb2YgYXJlYXMgd2hpY2ggd2VyZSBiZWluZyBuZWdsZWN0ZWQgZHVlIHRvIGxvY2F0aW9ucyBvZiB0aGUgZXhpc3RpbmcgY29tbWlzc2lvbnMsIHNldmVuIG1vcmUgY29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgdml6LCBhdCBBaG1lZGFiYWQsIEFqbWVyLCBCaG9wYWwsIEJodXZuZXNod2FyLCBDaGFuZGlnYXJoLCBKYW1tdSBhbmQgU3JpbmFnYXIgd2l0aCBzaXR0aW5nIGF0IExlaCBhbmQgVHJpdmVuZHJ1bS4gSW4gMTk4NCB0d28gbW9yZSBzZXJ2aWNlIGNvbW1pc3Npb25zIHdlcmUgc2V0IHVwIGF0IE1hbGRhIGFuZCBHb3Jha2hwdXIuDQoxOTk4IChNYXkgMTkpOiBBdGFsIEJpaGFyaSBWYWpwYXllZSBiZWNvbWVzIFBNIG9mIEluZGlhIGZvciB0aGUgc2Vjb25kIHRpbWUsIG5vdyBmb3IgNiB5ZWFycyB0aWxsIE1heSAyMiwgMjAwNC4gDQoxOTk4IChNYXkgMjggMTU6MTVQU1QpOiBDaGFnYWktSSBpcyB0aGUgY29kZSBuYW1lIG9mIGZpdmUgc2ltdWx0YW5lb3VzIHVuZGVyZ3JvdW5kIG51Y2xlYXIgdGVzdHMgY29uZHVjdGVkIGJ5IFBha2lzdGFuLiBUaGUgdGVzdHMgd2VyZSBwZXJmb3JtZWQgYXQgUmFzIEtvaCBIaWxscyBpbiB0aGUgQ2hhZ2FpIERpc3RyaWN0IG9mIEJhbG9jaGlzdGFuIFByb3ZpbmNlLiBDaGFnYWktSSB3YXMgUGFraXN0YW4ncyBmaXJzdCBwdWJsaWMgdGVzdCBvZiBudWNsZWFyIHdlYXBvbnMuIFBha2lzdGFuJ3MgZmlzc2lsZSBtYXRlcmlhbCBwcm9kdWN0aW9uIHRha2VzIHBsYWNlIGF0IE5pbG9yZSwgS2FodXRhLCBhbmQgS2h1c2hhYiBOdWNsZWFyIENvbXBsZXgsIHdoZXJlIHdlYXBvbnMtZ3JhZGUgcGx1dG9uaXVtIGlzIHJlZmluZWQuDQoxOTk4OiBBZnRlciBjb21wbGV0aW5nIGhpcyBYIHN0YW5kYXJkIGV4YW1pbmF0aW9ucywgUmFuYmlyIEthcG9vciwgYWdlZCAxNiwgd29ya2VkIGFzIGFuIGFzc2lzdGFudCBkaXJlY3RvciB0byBoaXMgZmF0aGVyIG9uIHRoZSBmaWxtIEFhIEFiIExhdXQgQ2hhbGVuICgxOTk5KSwgZHVyaW5nIHdoaWNoIGhlIGRldmVsb3BlZCBhIGNsb3NlciBib25kIHdpdGggaGltLg0KMTk4ODogTmV0d29ya2VkIERhdGEgUHJvY2Vzc2luZyBDb3IsIElvd2EgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBJbnN1cmFuY2UgZGl2aXNpb24uDQoxOTk4OltCb29rXSBSb2JlcnQgR3JlZW5lJ3MgVGhlIDQ4IExhd3Mgb2YgUG93ZXI7IFRoZSAzMyBTdHJhdGVnaWVzIG9mIFdhciAoMjAwNik7IE1hc3RlcnkgKDIwMTIsIE5vdiAxMyk7IFRoZSBMYXdzIG9mIEh1bWFuIE5hdHVyZSAoMjAxOCwgT2N0IDE2KQ0KMTk5ODpbU3BhY2VdW1Jlc2VhcmNoXVtFeHRyZW1lXSBUaGVuIGNhbWUgMTk5OCBhbmQgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgKEhTVCkgb2JzZXJ2YXRpb25zIG9mIHZlcnkgZGlzdGFudCBzdXBlcm5vdmFlIHRoYXQgc2hvd2VkIHRoYXQsIGEgbG9uZyB0aW1lIGFnbywgdGhlIHVuaXZlcnNlIHdhcyBhY3R1YWxseSBleHBhbmRpbmcgbW9yZSBzbG93bHkgdGhhbiBpdCBpcyB0b2RheS4gU28gdGhlIGV4cGFuc2lvbiBvZiB0aGUgdW5pdmVyc2UgaGFzIG5vdCBiZWVuIHNsb3dpbmcgZHVlIHRvIGdyYXZpdHksIGFzIGV2ZXJ5b25lIHRob3VnaHQsIGl0IGhhcyBiZWVuIGFjY2VsZXJhdGluZy4NCjE5OTg6W0NyaW1lXVtJbmRpYV0gQW5lZXMgYXJyZXN0ZWQgaW4gVUFFIG9uIGNoYXJnZXMgb2YgaGF2aW5nIG11cmRlcmVkIGEgZm9ybWVyIGFzc29jaWF0ZSBhbmQgdGhlbiByaXZhbCwgSXJmYW4gR29nYSwgaW4gRHViYWksIGJ1dCB3YXMgZnJlZWQgYWZ0ZXIgdHdvIGRheXMgZm9yICdsYWNrIG9mIGV2aWRlbmNlJy4NCjE5OTg6W0NvbXB1dGluZ11bUXVhbnR1bV0gUmVzZWFyY2hlcnMgYXQgSUJNLCBPeGZvcmQsIEJlcmtlbGV5LCBTdGFuZm9yZCwgYW5kIE1JVCBwcm9kdWNlZCBhIDItcXViaXQgY29tcHV0aW5nIHN5c3RlbS4NCjE5OTg6W3d3d10gV2lyZXNoYXJrIGlzIGEgZnJlZSBhbmQgb3Blbi1zb3VyY2UgcGFja2V0IGFuYWx5emVyLiBJdCBpcyB1c2VkIGZvciBuZXR3b3JrIHRyb3VibGVzaG9vdGluZywgYW5hbHlzaXMsIHNvZnR3YXJlIGFuZCBjb21tdW5pY2F0aW9ucyBwcm90b2NvbCBkZXZlbG9wbWVudCwgYW5kIGVkdWNhdGlvbi4gT3JpZ2luYWxseSBuYW1lZCBFdGhlcmVhbCwgdGhlIHByb2plY3Qgd2FzIHJlbmFtZWQgV2lyZXNoYXJrIGluIE1heSAyMDA2IGR1ZSB0byB0cmFkZW1hcmsgaXNzdWVzLg0KMTk5ODpbVVNdW0Vjb25vbXldRGF2aWQgUm9ja2VmZWxsZXIgU3IuIHdhcyBhd2FyZGVkIHRoZSBQcmVzaWRlbnRpYWwgTWVkYWwgb2YgRnJlZWRvbSBieSBQcmVzaWRlbnQgQmlsbCBDbGludG9uIGZvciBoaXMgd29yayBvbiBJbnRlcm5hdGlvbmFsIEV4ZWN1dGl2ZSBTZXJ2aWNlIENvcnBzLg0KMTk5ODpbRGVmXVtBdmlhdGlvbl0gVGhlIExvY2toZWVkIFNSLTcxIEJsYWNrYmlyZCBmbGV3IHNvIGhpZ2ggYW5kIHNvIGZhc3QgdGhhdCB0aGUgY3JldyBuZWVkZWQgcHJlc3N1cml6ZWQgc3BhY2Ugc3VpdHMgd2hlbiBmbHlpbmcgaXQuIEFuZCBpdCBpcyBzYWlkIHRoYXQgYXQgdGhlIG1heGltdW0gYWx0aXR1ZGUgb2YgaXQgaXQgd2FzIHBvc3NpYmxlIHRvIHNlZSB0aGUgY3VydmF0dXJlIG9mIHRoZSBlYXJ0aCwgd2hpY2ggcmVmZXJzIHRvIHRoaXMgcXVvdGUgYnkgQ29sb25lbCBBbGlzb246IOKAnE9uIGEgY2xlYXIgZGF5IHlvdSBjYW4gc2VlIGZvcmV2ZXLigKbigJ0uIFRoZSBzZXJ2aWNlIGNlaWxpbmcgb2YgODUsMDAwIGZlZXQgKDI1LDkwMG0pIG1lYW50IHRoYXQgaXQgd2FzIGFuIGV4Y2VsbGVudCBleHBlcmltZW50YWwgdW5pdCBmb3Igc3BhY2UgdHJhdmVscy4gVGhhdCwgY29tYmluZWQgd2l0aCB0aGUgZ3JlYXQgc3BlZWRzIG9mIGl0IHdhcyB0d28gb2YgdGhlIHJlYXNvbnMgd2h5IE5BU0EgZGVjaWRlZCB0byB0YWtlIG92ZXIgdGhlIGxhc3QgdHdvIEJsYWNrYmlyZHMgYWZ0ZXIgaXRzIHJldGlyZW1lbnQgZnJvbSB0aGUgQWlyIEZvcmNlIGluIDE5OTguIFRoaXMgbWVhbnMgdGhhdCB0aGUgd29ybGTigJlzIGZhc3Rlc3QgYWlyY3JhZnQgd2FzIGluIHNlcnZpY2UgZnJvbSAxOTY2IHVudGlsIE5BU0EgcmV0aXJlZCBpdHMgdHdvIHVuaXRzIGluIDE5OTksIGFuZCBtb3N0IG9mIHRoZSByZW1haW5pbmcgQmxhY2tiaXJkcyBhcmUgdG9kYXkgc3RhdGlvbmVkIGF0IG11c2V1bXMgb3IgbWlsaXRhcnkgYmFzZXMgYWNyb3NzIHRoZSBVUy4NCjE5OTg6SW4gMTk5OCwgR2F1dGFtIEFkYW5pLCBhbG9uZyB3aXRoIGhpcyBhc3NvY2lhdGUgU2hhbnRpbGFsIFBhdGVsLCB3YXMga2lkbmFwcGVkIGZvciByYW5zb20gaW4gQWhtZWRhYmFkLCBJbmRpYS4gVGhleSB3ZXJlIGFiZHVjdGVkIGF0IGd1bnBvaW50IGFmdGVyIGxlYXZpbmcgdGhlIEthcm5hdmF0aSBDbHViIGluIGEgY2FyLiBUaGUga2lkbmFwcGVycywgYWxsZWdlZGx5IGdhbmdzdGVycyBGYXpsdSBSZWhtYW4gYW5kIEJob2dpbGFsIERhcmppLCByZXBvcnRlZGx5IGRlbWFuZGVkIGEgcmFuc29tIG9mICQxLjUtMiBtaWxsaW9uLiBCb3RoIEFkYW5pIGFuZCBQYXRlbCB3ZXJlIHJlbGVhc2VkIGEgZGF5IGxhdGVyLCBidXQgaXQncyB1bmNsZWFyIGlmIHRoZSByYW5zb20gd2FzIHBhaWQuIA0KVGhlIGtpZG5hcHBpbmcgaW5jaWRlbnQgaGFwcGVuZWQgaW4gdGhlIG1pZC0xOTkwcywgYXJvdW5kIHRoZSB0aW1lIEFkYW5pJ3MgYnVzaW5lc3Mgc3VjY2Vzc2VzIHN0YXJ0ZWQgYXR0cmFjdGluZyB1bndhbnRlZCBhdHRlbnRpb24uIFRoZSBraWRuYXBwaW5nIHdhcyBhbGxlZ2VkbHkgY2FycmllZCBvdXQgYnkgRmF6bHUgUmVobWFuIGFuZCBCaG9naWxhbCBEYXJqaSwgYWxzbyBrbm93biBhcyAiTWFtYSIuIFRoZXkgd2VyZSBsYXRlciBhY3F1aXR0ZWQgZHVlIHRvIGxhY2sgb2YgZXZpZGVuY2UuIA0KVGhlIGFiZHVjdGlvbiBpcyBqdXN0IG9uZSBvZiB0aGUgY2hhbGxlbmdlcyBBZGFuaSBoYXMgZmFjZWQuIEhlIHdhcyBhbHNvIGNhdWdodCBpbiB0aGUgMjYvMTEgTXVtYmFpIHRlcnJvciBhdHRhY2tzIGF0IHRoZSBUYWogSG90ZWwuIE1vcmUgcmVjZW50bHksIGhlIGhhcyBmYWNlZCBhY2N1c2F0aW9ucyBvZiBicmliZXJ5IGFuZCBzZWN1cml0aWVzIGZyYXVkLiANCkFkYW5pIGFuZCBvdGhlcnMgd2VyZSBlc2NvcnRlZCBieSBzdGFmZiB0byB0aGUga2l0Y2hlbiBhbmQgdGhlbiB0aGUgYmFzZW1lbnQuIFRoZXkgc3BlbnQgdGhlIGVudGlyZSBuaWdodCBpbiBhIGhhbGwgd2FpdGluZyBmb3IgcmVzY3VlLiBBZGFuaSBsYXRlciB0b2xkIG5ld3MgY2hhbm5lbHMgdGhhdCBoZSBzYXcg4oCcZGVhdGggYXQgYSBkaXN0YW5jZSBvZiBqdXN0IDE1IGZlZXQu4oCdIEhlIHdhcyByZXNjdWVkIHRoZSBuZXh0IG1vcm5pbmcgYnkgc2VjdXJpdHkgZm9yY2VzLg0KMTk5ODpbRW52XVtEaXNhc3Rlcl0gRWFzdGVybiBJbmRpYSwgMTk5OCBCYW5nbGFkZXNoIGZsb29kOyA0ayBkZWF0aHMNCjE5OTg6W1dob11bUmVzZWFyY2hdW0NvbXB1dGluZ11bVGVjaF1bQ3VsdHVyZV0gSW50ZXJuZXQgRG93bmxvYWQgTWFuYWdlciAoSURNKSB3YXMgZGV2ZWxvcGVkIGJ5IFRvbmVjIEluYy4sIGFuIEFtZXJpY2FuIGNvbXBhbnkgdGhhdCBzdGFydGVkIHRoZSBwcm9qZWN0IGluIDE5OTggYW5kIHJlbGVhc2VkIHRoZSBzb2Z0d2FyZSBpbiAyMDAxLiBUb25lYyBJbmMuIGZvY3VzZXMgb24gbmV0d29yayBwcm9ncmFtbWluZyBhbmQgY3JlYXRlZCBJRE0gdG8gc3BlZWQgdXAgZG93bmxvYWRzIGJ5IHVzaW5nIGR5bmFtaWMgZmlsZSBzZWdtZW50YXRpb24sIGFjY2VsZXJhdGluZyBzcGVlZHMgYnkgdXAgdG8gOCB0aW1lcy4gDQoNCjE5OTk6NCBKYW51YXJ5IDE5OTk6IE5BU0Egb2ZmaWNpYWxseSByZWNvZ25pemVkIHRoZSBwb3NzaWJpbGl0eSB0aGF0IGxpZmUgb24gRWFydGggY29tZXMgZnJvbSBzcGFjZS4NCjE5IE1hcmNoIDE5OTk6IE5BU0Egc2NpZW50aXN0cyBhbm5vdW5jZWQgdGhhdCB0d28gbW9yZSBtZXRlb3JpdGVzIGhvbGQgZXZlbiBzdHJvbmdlciBmb3NzaWxpemVkIGV2aWRlbmNlIGZvciBwYXN0IGxpZmUgb24gTWFycy4NCjE5OTk6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEcyMCBvciBHcm91cCBvZiAyMCBpcyBhbiBpbnRlcmdvdmVybm1lbnRhbCBmb3J1bSBjb21wcmlzaW5nIDE5IHNvdmVyZWlnbiBjb3VudHJpZXMsIHRoZSBFdXJvcGVhbiBVbmlvbiwgYW5kIHRoZSBBZnJpY2FuIFVuaW9uLiBGb3VuZGVkOiAyNiBTZXB0ZW1iZXIgMTk5OTsgQ2hhaXJtYW4gKEluY3VtYmVudCk6IEN5cmlsIFJhbWFwaG9zYSwgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYQ0KMTk5OTogVGhlIHRlcm0gV2ktRmkgd2FzIGludmVudGVkIGJ5IEludGVyYnJhbmQgKGFuIGFtZXJpY2FuIGJyYW5kIGNvbnN1bHRhbmN5IGNvbXBhbnkpIGFzIGEgcHVuIHVwb24gdGhlIHdvcmQgaGktZmkuDQpXaS1GaSBBbGxpYW5jZSBmb3JtZWQgYXMgYSB0cmFkZSBhc3NvY2lhdGlvbiB0byBob2xkIHRoZSBXaS1GaSB0cmFkZW1hcmsgdW5kZXIgd2hpY2ggbW9zdCBwcm9kdWN0cyBhcmUgc29sZC4NCjE5OTk6IHRoZSB0ZXJtDQoxOTk5OiBJc2xhbWljIFN0YXRlIG9mIElyYXEgYW5kIHRoZSBMZXZhbnQgKGFsc28ga25vd24gYXMgdGhlIElzbGFtaWMgU3RhdGUgb2YgSXJhcSBhbmQgU3lyaWEsIElzbGFtaWMgU3RhdGUsIG9yIGNvbW1vbmx5LCBJU0lTKSBmb3VuZGVkIGFzIEphbWEnYXQgYWwtVGF3aGlkIHdhbC1KaWhhZCBieSBBYnUgTXVzYWIgYWwtWmFycWF3aSBIUSdkIGF0ICBBbC1SYXFxYWguDQoxOTk5IChBcHIgMTIpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBJIFdhbnQgSXQgVGhhdCBXYXkuDQoxOTk5IChBcHIgMTgpOiBDT05DRVJUIGJlY2FtZSBvcGVyYXRpb25hbC4gSXQgd2FzIGRldmVsb3BlZCB1c2luZyBjbGllbnQtc2VydmVyIG1vZGVsIGZvciBkaXN0cmlidXRlZCBjb21wdXRpbmcgaXMgYSB0b3RhbCBzb2x1dGlvbiB0byB0aGUgbmV0d29ya2luZyBvZiB0aGUgUFJTcy4gQWxsIHRoZSBmaXZlIHNpdGVzIGhhdmUgYmVlbiBpbnRlcm5ldC13b3JrZWQgb3ZlciBhIDY0IGticHMgbGluZSB1c2luZyByb3V0ZXJzLCBvbiBsZWFzZWQgY29tbXVuaWNhdGlvbiBsaW5lIGNvbm5lY3Rpb25zIGZyb20gRGVwYXJ0bWVudCBvZiBUZWxlY29tIChET1QpLg0KMTk5OTogQ3JlZGl0IGNhcmRzIGFjY2VwdGVkIGZvciBib29raW5nIHRpY2tldHMgYW5kIHJlc2VydmF0aW9ucyBpbiBzb21lIHN0YXRpb25zIChpbmNsdWRpbmcgTXVtYmFpIENTVCkuDQoxOTk5IChNYXkgMSk6W0Jvb2tdIFJvYmVydCBLaXlvc2FraSAmIFNoYXJvbiBMZWNodGVyJ3MgUmljaCBEYWQncyBDYXNoZmxvdyBRdWFkcmFudDogUmljaCBEYWQncyBHdWlkZSB0byBGaW5hbmNpYWwgRnJlZWRvbTsgUmljaCBEYWQncyBHdWlkZSB0byBJbnZlc3Rpbmc6IFdoYXQgdGhlIFJpY2ggSW52ZXN0IGluIFRoYXQgdGhlIFBvb3IgYW5kIE1pZGRsZSBDbGFzcyBEbyBOb3QhICgyMDAxLCBKYW4gMSk7IFRoZSBSZWFsIEJvb2sgb2YgUmVhbCBFc3RhdGU6IFJlYWwgRXhwZXJ0cy4gUmVhbCBTdG9yaWVzLiBSZWFsIExpZmUuICgyMDA5LCBNYXkgMTIpOyBSaWNoIEtpZCBTbWFydCBLaWQ6IEdpdmluZyBZb3VyIENoaWxkIGEgRmluYW5jaWFsIEhlYWQgU3RhcnQgKDIwMDEsIEphbiAxKTsgDQoxOTk5IChNYXkgMTgpOltNdXNpY10gTWlsbGVubml1bSBpcyB0aGUgdGhpcmQgc3R1ZGlvIGFsYnVtIChzZWNvbmQgaW4gdGhlIFVuaXRlZCBTdGF0ZXMpIGJ5IEFtZXJpY2FuIGJveSBiYW5kIEJhY2tzdHJlZXQgQm95cywgcmVsZWFzZWQgYnkgSml2ZSBSZWNvcmRzLg0KMTk5OSAoRnJpLCAyNCBEZWMpOiBJbmRpYW4gQWlybGluZXMgRmxpZ2h0IDgxNCBjb21tb25seSBrbm93biBhcyBJQyA4MTQgd2FzIGFuIEluZGlhbiBBaXJsaW5lcyBBaXJidXMgQTMwMCBlbiByb3V0ZSBmcm9tIFRyaWJodXZhbiBJbnRlcm5hdGlvbmFsIEFpcnBvcnQgaW4gS2F0aG1hbmR1LCBOZXBhbCB0byBJbmRpcmEgR2FuZGhpIEludGVybmF0aW9uYWwgQWlycG9ydCBpbiBEZWxoaSwgSW5kaWEgd2FzIGhpamFja2VkLiBIYXJrYXQtdWwtTXVqYWhpZGVlbiB3YXMgYWNjdXNlZCBvZiB0aGUgaGlqYWNraW5nLg0KMTk5OTogSVJDVEMNCjE5OTkgKEF1Zyk6IEJvb2tNeVNob3cNCjE5OTkgKFNlcCAxNCk6IFtHZW9Qb2xpdGljc10gVGhlIENvbmZlcmVuY2Ugb24gSW50ZXJhY3Rpb24gYW5kIENvbmZpZGVuY2UtQnVpbGRpbmcgTWVhc3VyZXMgaW4gQXNpYSAoQ0lDQSkgaXMgYW4gaW50ZXItZ292ZXJubWVudGFsIGZvcnVtIGZvciBlbmhhbmNpbmcgY29vcGVyYXRpb24gdG93YXJkcyBwcm9tb3RpbmcgcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYS4gSXQgaXMgYSBmb3J1bSBiYXNlZCBvbiB0aGUgcmVjb2duaXRpb24gdGhhdCB0aGVyZSBpcyBjbG9zZSBsaW5rIGJldHdlZW4gcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYSBhbmQgaW4gdGhlIHJlc3Qgb2YgdGhlIHdvcmxkLiBUaGUga2V5IGlkZWEgb2YgdGhlIENvbmZlcmVuY2UgaXMgYmFzZWQgb24gdGhlIHByaW9yaXR5IG9mIHRoZSBpbmRpdmlzaWJpbGl0eSBvZiBzZWN1cml0eSwgam9pbnQgaW5pdGlhdGl2ZSBhbmQgbXV0dWFsbHkgYmVuZWZpY2lhbCBpbnRlcmFjdGlvbiBvZiBzbWFsbCBhbmQgbGFyZ2Ugc3RhdGVzLg0KMTk5OTogTm9ibGUgRWR1Y2F0aW9uIFNvY2lldHkncyBOb2JsZSBQdWJsaWMgU2Nob29sIChOUFMpLCBHYWpyYXVsYSBmb3VuZGVkIHdpdGggMjEzMDYyNyBhcyBpdHMgQ0JTRSBBZmZpbGlhdGlvbiBuby4NCjE5OTk6IGZpcnN0IC53bWEgZmlsZSBjcmVhdGVkDQoxOTk5OiBOYXBzdGVyIGZvdW5kZWQuDQoxOTk5IChEZWMgMTQpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBTaG93IE1lIHRoZSBNZWFuaW5nIG9mIEJlaW5nIExvbmVseS4gDQoxOTk5OltNdXNpY10gRHIuIERyZSBmdC4gU25vb3AgRG9nZydzIFN0aWxsIEQuUi5FLg0KMTk5OTpbQ3VsdHVyZV0gVGhlIENpdHRhc2xvdyBvcmdhbml6YXRpb24gd2FzIGNyZWF0ZWQgYnkgUGFvbG8gU2F0dXJuaW5pLCB0aGUgZm9ybWVyIG1heW9yIG9mIEdyZXZlIGluIENoaWFudGksIEl0YWx5LiBTYXR1cm5pbmkgd2FzIGluc3BpcmVkIGJ5IENhcmxvIFBldHJpbmkgYW5kIGhpcyBTbG93IEZvb2QgbW92ZW1lbnQsIHN0YXJ0ZWQgaW4gdGhlIDE5ODBzIHRvIHByb3Rlc3QgdGhlIGZpcnN0IE1jRG9uYWxkJ3MgY2hhaW4gaW4gUm9tZS4gU2luY2UgdGhlbiwgdGhlIENpdHRhc2xvdyBtb3ZlbWVudCBoYXMgZ3Jvd24gYWNyb3NzIGZvdXIgY29udGluZW50cywgd2l0aCAyNjIgcGFydGljaXBhdGluZyB0b3ducyBhcyBvZiAyMDIwLiANCjE5OTk6W01hbmFnZW1lbnRdW0J1c2luZXNzXVtQc3ljaG9sb2d5XVtSZXNlYXJjaF0gRHVubmluZyBhbmQgS3J1Z2VyIEVmZmVjdDogRGF2aWQgRHVubmluZyBhbmQgSnVzdGluIEtydWdlciBwdWJsaXNoZWQgdGhlIGluaXRpYWwgc3R1ZHkgaW4gMTk5OSB1bmRlciB0aGUgdGl0bGUgIlVuc2tpbGxlZCBhbmQgVW5hd2FyZSBvZiBJdDogSG93IERpZmZpY3VsdGllcyBpbiBSZWNvZ25pemluZyBPbmUncyBPd24gSW5jb21wZXRlbmNlIExlYWQgdG8gSW5mbGF0ZWQgU2VsZi1Bc3Nlc3NtZW50cyIuDQoxOTk5OltSZXNlYXJjaF0gUmVzZWFyY2ggYnkgVVMgTmF0aW9uYWwgUmVzZWFyY2ggQ291bmNpbC4gV2F0ZXIgZnJvbSB1bmRlcmdyb3VuZCBzb3VyY2VzIG1heSBjb250YWluIHNpZ25pZmljYW50IGFtb3VudHMgb2YgcmFkb24gZGVwZW5kaW5nIG9uIHRoZSBzdXJyb3VuZGluZyByb2NrIGFuZCBzb2lsIGNvbmRpdGlvbnMsIHdoZXJlYXMgc3VyZmFjZSBzb3VyY2VzIGdlbmVyYWxseSBkbyBub3QuDQoxOTk5OltOU0VdIEluY29ycG9yYXRlZCBpbiAxOTk5LCBJUkNUQyBpcyBhIE1pbmkgUmF0bmEgKENhdGVnb3J5IDEsIENlbnRyYWwgUHVibGljIFNlY3RvciBFbnRlcnByaXNlcyApIGFuZCB0aGUgb25seSBjb21wYW55IGF1dGhvcml6ZWQgYnkgdGhlIEluZGlhbiBnb3Zlcm5tZW50IHRvIHByb3ZpZGUgb25saW5lIHJhaWx3YXkgdGlja2V0cywgY2F0ZXJpbmcgc2VydmljZXMsIGFuZCBwYWNrYWdlZCBkcmlua2luZyB3YXRlciBhdCByYWlsd2F5IHN0YXRpb25zIGFuZCB0cmFpbnMgaW4gSW5kaWEuDQoxOTk5OltNbnRuZ2ddW0Jvb2tdIFN0ZXZlIEhvdXNlIGlzIGEgd29ybGQtcmVub3duZWQgY2xpbWJlciwgbW91bnRhaW4gZ3VpZGUgYW5kIFBhdGFnb25pYSBhbWJhc3NhZG9yLCB3aWRlbHkgcmVnYXJkZWQgZm9yIGhpcyBjbGVhbiwgbGlnaHQtYW5kLWZhc3Qgc3R5bGUuIEhlIGhhcyBwdWJsaXNoZWQgYXJ0aWNsZXMgaW4gYSBudW1iZXIgb2YgcGVyaW9kaWNhbHMgaW5jbHVkaW5nOiBBbHBpbmlzdCwgUm9jayBhbmQgSWNlLCBDbGltYmluZywgVGhlIEFtZXJpY2FuIEFscGluZSBKb3VybmFsLCBHcmlwcGVkLCBDYW5hZGlhbiBBbHBpbmUgSm91cm5hbCwgQ2xpbWIsIFZlcnRpY2FsLCBNb250YWduZXMsIFJpc2ssIEFscCssIENhbXBvIEJhc2UsIERlc25pdmVsLCBhbmQgU3RpbGUgQWxwaW4uIEhpcyBlc3NheXMgaGF2ZSBiZWVuIHB1Ymxpc2hlZCBpbiBzZXZlcmFsIGJvb2tzIGluY2x1ZGluZzsgQ29udGFjdDogTW91bnRhaW4gQ2xpbWJpbmcgYW5kIEVudmlyb25tZW50YWwgVGhpbmtpbmc7IFNvbHRhcmksIGEgY29sbGVjdGlvbiBvZiBlc3NheXMgYWJvdXQgc29sbyBjbGltYmluZyBwdWJsaXNoZWQgaW4gSXRhbGlhbjsgQmVyZywgYSBHZXJtYW4gYm9vayBhYm91dCBjbGltYmluZyBpbiB0aGUgSGltYWxheWE7IGFuZCBhbiB1cGNvbWluZyBib29rIGFib3V0IE5hbmdhIFBhcmJhdCBlZGl0ZWQgYnkgUmVpbmhvbGQgTWVzc25lci4gSGUgaGFzIHdvcmtlZCBhcyBhIFBhdGFnb25pYSBhbHBpbmUgYW1iYXNzYWRvciBzaW5jZSAxOTk5LiBQdWJsaXNoZWQ6IFRyYWluaW5nIGZvciB0aGUgTmV3IEFscGluaXNtOiBBIE1hbnVhbCBmb3IgdGhlIENsaW1iZXIgYXMgQXRobGV0ZSBQYXBlcmJhY2sg4oCTIElsbHVzdHJhdGVkLCAzIEFwcmlsIDIwMTQNCjE5OTk6W01udG5nZ10gQ29ucmFkIEFua2VyIChib3JuIE5vdmVtYmVyIDI3LCAxOTYyKSBpcyBhbiBBbWVyaWNhbiByb2NrIGNsaW1iZXIsIG1vdW50YWluZWVyLCBhbmQgYXV0aG9yLiBIZSB3YXMgdGhlIHRlYW0gbGVhZGVyIG9mIFRoZSBOb3J0aCBGYWNlIGNsaW1iaW5nIHRlYW0gZm9yIDI2IHllYXJzIHVudGlsIDIwMTguWzJdIEluIDE5OTksIGhlIGxvY2F0ZWQgR2VvcmdlIE1hbGxvcnkncyBib2R5IG9uIEV2ZXJlc3QgYXMgYSBtZW1iZXIgb2YgYSBzZWFyY2ggdGVhbSBsb29raW5nIGZvciB0aGUgcmVtYWlucyBvZiB0aGUgQnJpdGlzaCBjbGltYmVyIHdobyB3YXMgbGFzdCBzZWVuIGluIDE5MjQuDQoxOTk5OlRoZSBQaXBpc3RyZWwgVmlydXMgZmxldyBmb3IgdGhlIGZpcnN0IHRpbWUgb24gQXVndXN0IDEwLCAxOTk5LiBQcm9kdWN0aW9uIGJlZ2FuIG9uIEphbnVhcnkgMjAsIDIwMDAuIFRoZSBkZXZlbG9wbWVudCBvZiB0aGUgc2hvcnQgd2luZyB2ZXJzaW9uIHN0YXJ0ZWQgaW4gMjAwNy4gVGhlIFZpcnVzIFNXIHByb2R1Y3Rpb24gc3RhcnRlZCBpbiAyMDA4LiBUaGUgVmlydXMgd29uIHRoZSBOQVNBIDIwMDcgUGVyc29uYWwgQWlyIFZlaGljbGUgKFBBVikgQ2hhbGxlbmdlIGFuZCB0aGUgMjAwOCBHZW5lcmFsIEF2aWF0aW9uIFRlY2hub2xvZ3kgKEdBVCkgQ2hhbGxlbmdlLg0KMTk5OTpbc2lsdmljc10gU3VzdGFpbmFibGUgUHJhY3RpY2VzOiBSZXNlYXJjaCBpbiB0aGUgMjB0aCBjZW50dXJ5IHZhbGlkYXRlZCB0aGF0IHNlY29uZC1ncm93dGggc3RhbmRzIGNvdWxkIGJlIHN1c3RhaW5hYmx5IG1hbmFnZWQgdGhyb3VnaCB0ZWNobmlxdWVzIGxpa2UgdGhlIHNlZWQgdHJlZSBtZXRob2QuIFRvZGF5LCBzaWx2aWN1bHR1cmUgZm9jdXNlcyBvbiBjb21wbGV4IHN0YW5kIHN0cnVjdHVyZXMsIGJhbGFuY2luZyBjb21tZXJjaWFsIGRlbWFuZCB3aXRoIGVudmlyb25tZW50YWwgc3Rld2FyZHNoaXAuIA0KDQoyMXN0IGNlbnR1cnkgQ0Ugc3RhcnRlZCBvbiAxc3QgSmFuIDIwMDEgQUQuDQoNCjIwMDBzOltSZXNlYXJjaF0gVGhlIGNsYWltIHRoYXQgIndlIGFyZSA2MCUgYmFuYW5hIiAob3Igc2hhcmUgNjAlIG9mIG91ciBETkEpIGlzIGEgcG9wdWxhciwgeWV0IG9mdGVuIG1pc2ludGVycHJldGVkLCBzdGF0aXN0aWMgdGhhdCBvcmlnaW5hdGVkIGZyb20gY29tcGFyaXNvbnMgb2YgcHJvdGVpbi1jb2RpbmcgZ2VuZXMsIGxpa2VseSBwb3B1bGFyaXplZCBpbiB0aGUgZWFybHkgMjAwMHMgZm9sbG93aW5nIHByZWxpbWluYXJ5IHN0dWRpZXMgb2YgdGhlIGJhbmFuYSBnZW5vbWUuIEl0IHJlZmVycyB0byBhYm91dCA2MCUgb2YgaHVtYW4gZ2VuZXMgaGF2aW5nIGEgcmVjb2duaXphYmxlIGNvdW50ZXJwYXJ0IGluIGJhbmFuYXMsIG5vdCA2MCUgb2Ygb3VyIHRvdGFsIEROQS4gDQpNYW55IG9mIHRoZSDigJxob3VzZWtlZXBpbmfigJ0gZ2VuZXMgdGhhdCBhcmUgbmVjZXNzYXJ5IGZvciBiYXNpYyBjZWxsdWxhciBmdW5jdGlvbiwgc3VjaCBhcyBmb3IgcmVwbGljYXRpbmcgRE5BLCBjb250cm9sbGluZyB0aGUgY2VsbCBjeWNsZSwgYW5kIGhlbHBpbmcgY2VsbHMgZGl2aWRlIGFyZSBzaGFyZWQgYmV0d2VlbiBtYW55IHBsYW50cyAoaW5jbHVkaW5nIGJhbmFuYXMpIGFuZCBhbmltYWxzLldoaWxlIDYwJSBvZiBnZW5lcyBoYXZlIGNvdW50ZXJwYXJ0cywgdGhlc2UgZXNzZW50aWFsIGdlbmVzIG1ha2UgdXAgb25seSBhIHNtYWxsIGZyYWN0aW9uIG9mIHRoZSB0b3RhbCBnZW5vbWU7IGh1bWFucyBhbmQgYmFuYW5hcyBhcmUgbm90IDYwJSBpZGVudGljYWwgb3ZlcmFsbC4gDQpUaGUgcGhyYXNlIGlzIGVzc2VudGlhbGx5IGEgc2ltcGxpZmllZCwgb2Z0ZW4tZXhhZ2dlcmF0ZWQsIHdheSBvZiBoaWdobGlnaHRpbmcgdGhhdCBhbGwgbGlmZSBzaGFyZXMgY29tbW9uIGFuY2VzdHJhbCBnZW5lcyBmb3IgYmFzaWMgY2VsbHVsYXIgcHJvY2Vzc2VzLiANCjIwMDBzOltNQkFdIFNob3VsZCBDb3N0IE1vZGVsaW5nOiBNb2Rlcm4gIlNob3VsZCBDb3N0IiBtb2RlbHMgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBpZGVhbCBjb3N0IG9mIGEgcHJvZHVjdCwgYWNjb3VudGluZyBmb3IgbGFib3IsIG1hdGVyaWFscywgYW5kIG92ZXJoZWFkLiBFbnZpcm9ubWVudGFsICYgU29jaWFsIEltcGFjdDogTW9kZXJuIENCQSBub3cgcm91dGluZWx5IGluY2x1ZGVzIGVudmlyb25tZW50YWwgYW5kIHNvY2lhbCBpbXBhY3RzIGluIGFkZGl0aW9uIHRvIGZpbmFuY2lhbCBvbmVzLiBTaGlmdCBmcm9tIExvY2FsIHRvIEdsb2JhbDogRWFybHksIGhpZ2hseSBsb2NhbCBhc3Nlc3NtZW50cyBldm9sdmVkIGludG8gbGFyZ2Utc2NhbGUsIG5hdGlvbmFsLCBhbmQgaW50ZXJuYXRpb25hbCBDQkEuIFJlZmluZW1lbnQgb2YgVGVjaG5pcXVlczogTW92aW5nIGZyb20gc2ltcGxlLCBzaW5nbGUtcGVyaW9kIG1vZGVscyB0byBjb21wbGV4LCBtdWx0aS1wZXJpb2Qgc2ltdWxhdGlvbnMuIEluY3JlYXNlZCBEYXRhIFVzZTogVGhlIGF2YWlsYWJpbGl0eSBvZiBsYXJnZSwgZ3JhbnVsYXIgZGF0YSBzZXRzIGhhcyBhbGxvd2VkIGZvciBtb3JlIHByZWNpc2UgYW5kIHJlbGlhYmxlIGFuYWx5c2lzLiANCjIwMDBzOltNbnRuZ2ddW0V4dHJlbWVdIEluIHRoZSBlYXJseSAyMDAwcywgRGlkaWVyIEJlcnRob2Qgd2FzIHRoZSBiZXN0IGNyYWNrIGNsaW1iZXIgaW4gdGhlIHdvcmxkLCB0aGVuIGhlIGRyb3BwZWQgb3V0IG9mIGNsaW1iaW5nIGFuZCBlc3NlbnRpYWxseSBkaXNhcHBlYXJlZCBmcm9tIHRoZSB3b3JsZC4NCjIwMDBzOltSZWFsdHldIEVhcmx5IDIwMDBzOiBSZWFsIGVzdGF0ZSB3YXMgaW4gaXRzIGVhcmx5IHN0YWdlcyBpbiBJbmRpYSwgd2l0aCBncmFkdWFsIGdyb3d0aCBhbmQgZGV2ZWxvcG1lbnQuIA0KMjAwMHM6VGVhbXdvcmsgaXMgbm93IGFuIGludGVncmFsIHBhcnQgb2Ygb3JnYW5pemF0aW9uYWwgc3RyYXRlZ3ksIHdpdGggYSBncmVhdGVyIGVtcGhhc2lzIG9uIGN1c3RvbWl6YXRpb24sIHBlcnNvbmFsaXphdGlvbiwgYW5kIHN0cmF0ZWdpYyBpbnRlZ3JhdGlvbiBvZiB0ZWFtLWJ1aWxkaW5nIHByYWN0aWNlcy4gVGhlIHJpc2Ugb2YgdGVjaG5vbG9neSBoYXMgYWxzbyBpbmZsdWVuY2VkIHRlYW13b3JrLCB3aXRoIHJlbW90ZSB3b3JrIGJlY29taW5nIG1vcmUgcHJldmFsZW50IGFuZCBuZXcgdG9vbHMgZW1lcmdpbmcgdG8gZmFjaWxpdGF0ZSBjb2xsYWJvcmF0aW9uLiANCg0KMjAwMDpbVVNdW0dlb1BvbGl0aWNzXSBvdmVydGhyb3cgb2YgU2xvYm9kYW4gTWlsb8WhZXZpxIcuIChVUydzIGludm9sdmVtZW50IGluIHJlZ2ltZSBjaGFuZ2UpDQoyMDAwOiBbR2VvUG9saXRpY3NdW01pbGl0YXJ5XVtFY29ub21pY3NdIFRoZSBVUyBEb2xsYXIgaG9sZHMgYSA3MiUgc2hhcmUgb2YgYWxsIGdsb2JhbCBjdXJyZW5jeSByZXNlcnZlcyBbWzE2OjQyXShodHRwOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dllKcmkxZU5SeWMmdD0xMDAyKV0uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdIDI2IEFwcmlsIDIwMDA6IHRoZSBHZXJtYW4gdGVhbSBvcGVyYXRpbmcgdGhlIG1hc3Mgc3BlY3Ryb21ldGVyIG9uIE5BU0EncyBTdGFyZHVzdCBtaXNzaW9uIGFubm91bmNlZCB0aGUgZGV0ZWN0aW9uIG9mIHZlcnkgbGFyZ2Ugb3JnYW5pYyBtb2xlY3VsZXMgaW4gaW50ZXJzdGVsbGFyIHNwYWNlLiBOb25iaW9sb2dpY2FsIHNvdXJjZXMgZm9yIG9yZ2FuaWMgbW9sZWN1bGVzIHNvIGxhcmdlIGFyZSBub3Qga25vd24uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdMTkgT2N0b2JlciAyMDAwLCBhIHRlYW0gb2YgYmlvbG9naXN0cyBhbmQgYSBnZW9sb2dpc3QgYW5ub3VuY2VkIHRoZSByZXZpdmFsIG9mIGJhY3RlcmlhIHRoYXQgYXJlIDI1MCBtaWxsaW9uIHllYXJzIG9sZCwgc3RyZW5ndGhlbmluZyB0aGF0IGNhc2UgdGhhdCBiYWN0ZXJpYWwgc3BvcmVzIGNhbiBiZSBpbW1vcnRhbC4NCjEzIERlY2VtYmVyIDIwMDA6IGEgTkFTQSB0ZWFtIGRlbW9uc3RyYXRlZCB0aGF0IHRoZSBtYWduZXRvc29tZXMgaW4gTWFycyBtZXRlb3JpdGUgQUxIIDg0MDAxIGFyZSBiaW9sb2dpY2FsLg0KMjAwMDpbUmVzZWFyY2hdW1NwYWNlXSBNaWxlaWtvd3NreSBDLCBDdWNpbm90dGEgRkEsIFdpbHNvbiBKVywgR2xhZG1hbiBCLCBIb3JuZWNrIEcsIExpbmRlZ3JlbiBMLCBNZWxvc2ggSiwgUmlja21hbiBILCBWYWx0b25lbiBNLCBaaGVuZyBKUS4gTmF0dXJhbCB0cmFuc2ZlciBvZiB2aWFibGUgbWljcm9iZXMgaW4gc3BhY2UuIEljYXJ1cyAyMDAwLCAxNDU6Mzkx4oCTNDI3LiBbRE9JXSBbUHViTWVkXSBbR29vZ2xlIFNjaG9sYXJdDQoyMDAwOltTcGFjZVhdIFMvMjAwMCAoOTApIDEgTW9vbiBEaXNjb3ZlcmVyOiBXaWxsaWFtIEouIE1lcmxpbmUgT3JiaXRzOiA5MCBBbnRpb3BlIEFic29sdXRlIG1hZ25pdHVkZTogOS4wMg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gZGVtb25zdHJhdGVkIFNob3LigJlzIGFsZ29yaXRobSBvbiBhIDUtcXViaXQgTk1SIHF1YW50dW0gY29tcHV0ZXIsIGZhY3RvcmluZyB0aGUgbnVtYmVyIDE1Lg0KMjAwMDogQXQgYWdlIDE0IGFuZCBpbiBjbGFzcyA4dGgsIEFhcm9uIFN3YXJ0eiBiZWNhbWUgYSBtZW1iZXIgb2YgdGhlIHdvcmtpbmcgZ3JvdXAgdGhhdCBhdXRob3JlZCB0aGUgUlNTIDEuMCB3ZWIgc3luZGljYXRpb24gc3BlY2lmaWNhdGlvbi4NCjIwMDA6IE1ha2VteVRyaXANCjIwMDAgKEphbiAxNCk6W0phY2tdIEthaG8gTmFhLi4uIFB5YWFyIEhhaQ0KMjAwMCAoRmViKTogSW5kaWFuIFJhaWx3YXlzIHdlYiBzaXRlIGkuZS4gaHR0cDovL2luZGlhbnJhaWx3YXlzLmdvdi5pbi8gd2FzIGRlcGxveWVkIGJ5IENSSVMuDQoyMDAwIChNYXIpOltCb29rXSBNYWxjb2xtIEdsYWR3ZWxsJ3MgZGVidXQgYm9vaywgVGhlIFRpcHBpbmcgUG9pbnQ6IEhvdyBMaXR0bGUgVGhpbmdzIENhbiBNYWtlIGEgQmlnIERpZmZlcmVuY2UuIA0KQmxpbms6IFRoZSBQb3dlciBvZiBUaGlua2luZyBXaXRob3V0IFRoaW5raW5nICgyMDA1LCBKYW4gMTEpOyANCk91dGxpZXJzOiBUaGUgU3Rvcnkgb2YgU3VjY2VzcyAoMjAwOCwgTm92IDE4KTsgDQpXaGF0IHRoZSBEb2cgU2F3OiBBbmQgT3RoZXIgQWR2ZW50dXJlcyAoMjAwOSwgT2N0IDIwKTsgDQpEYXZpZCBhbmQgR29saWF0aDogVW5kZXJkb2dzLCBNaXNmaXRzLCBhbmQgdGhlIEFydCBvZiBCYXR0bGluZyBHaWFudHMgKDIwMTMsIE9jdCAxKQ0KVGFsa2luZyB0byBTdHJhbmdlcnM6IFdoYXQgV2UgU2hvdWxkIEtub3cgYWJvdXQgdGhlIFBlb3BsZSBXZSBEb24ndCBLbm93ICgyMDE5KQ0KMjAwMCAoQXByIDEpOltCb29rXSBSb2JlcnQgS2l5b3Nha2kgJiBTaGFyb24gTGVjaHRlcidzIFJpY2ggRGFkIFBvb3IgRGFkLg0KMjAwMCAoQXByIDEpOltUZWNobm9sb2d5XVtSZXNlYXJjaF0gIldoeSBUaGUgRnV0dXJlIERvZXNuJ3QgTmVlZCBVcyIgaXMgYW4gYXJ0aWNsZSB3cml0dGVuIGJ5IEJpbGwgSm95IGluIHRoZSBBcHJpbCAyMDAwIGlzc3VlIG9mIFdpcmVkIG1hZ2F6aW5lLiBJbiB0aGUgYXJ0aWNsZSwgaGUgYXJndWVzIHRoYXQgIk91ciBtb3N0IHBvd2VyZnVsIDIxc3QtY2VudHVyeSB0ZWNobm9sb2dpZXPigJRyb2JvdGljcywgZ2VuZXRpYyBlbmdpbmVlcmluZywgYW5kIG5hbm90ZWNo4oCUYXJlIHRocmVhdGVuaW5nIHRvIG1ha2UgaHVtYW5zIGFuIGVuZGFuZ2VyZWQgc3BlY2llcy4iIA0KMjAwMCAoSnVuIDI2KTpbTXVzaWNdICJZZWxsb3ciIGlzIGEgc29uZyBieSB0aGUgQnJpdGlzaCByb2NrIGJhbmQgQ29sZHBsYXkuIFRoZSBiYW5kIHdyb3RlIHRoZSBzb25nIGFuZCBjby1wcm9kdWNlZCBpdCB3aXRoIEJyaXRpc2ggcmVjb3JkIHByb2R1Y2VyIEtlbiBOZWxzb24gZm9yIHRoZWlyIGRlYnV0IGFsYnVtLCBQYXJhY2h1dGVzICgyMDAwKS4gVGhlIHNvbmcgd2FzIHJlY29yZGVkIGluIE1hcmNoIDIwMDAgYW5kIHJlbGVhc2VkIG9uIDI2IEp1bmUgdGhhdCBzYW1lIHllYXIuDQoyMDAwIChTZXApOiBBbWF6b24ncyBKZWZmIEJlem9zIGZvdW5kZWQuDQoyMDAwIChTZXApOltDcmltZV1bSW5kaWFdIENoaG90YSBTaGFrZWVsJ3MgYXR0YWNrIG9uIFJhamFuIGluIGhpcyBCYW5na29rIGhvdGVsIHJvb20uDQoyMDAwIChTZXApOiBSYWlsVGVsIENvcnBvcmF0aW9uIG9mIEluZGlhIEx0ZC4gZm91bmRlZCBhbmQgSFEnZCBhdCAxNDMsIEluc3RpdHV0aW9uYWwgQXJlYSwgU2VjdG9yLTQ0LCBHdXJnYW9uLCBIYXJ5YW5hLCBJbmRpYS4gSXQgaXMgYSBNaW5pcmF0bmEgZW50ZXJwcmlzZSBvZiBHb3Zlcm5tZW50IG9mIEluZGlhIGZvY3VzaW5nIG9uIHByb3ZpZGluZyBicm9hZGJhbmQgYW5kIFZQTiBzZXJ2aWNlcy4NCjIwMDAgKFNlcCAxNyk6IFtHZW9Qb2xpdGljc10gVGhlIGlkZWEgb2YgYW4gQXNpYSBDb29wZXJhdGlvbiBEaWFsb2d1ZSAoQUNEKSB3YXMgcmFpc2VkIGF0IHRoZSBGaXJzdCBJbnRlcm5hdGlvbmFsIENvbmZlcmVuY2Ugb2YgQXNpYW4gUG9saXRpY2FsIFBhcnRpZXMgKGhlbGQgaW4gTWFuaWxhIGJldHdlZW4gMTfigJMyMCBTZXB0ZW1iZXIgMjAwMCkgYnkgU3VyYWtpYXJ0IFNhdGhpcmF0aGFpLCB0aGVuIGRlcHV0eSBsZWFkZXIgb2YgdGhlIG5vdyBkZWZ1bmN0IFRoYWkgUmFrIFRoYWkgUGFydHksIG9uIGJlaGFsZiBvZiBoaXMgcGFydHkgbGVhZGVyLCBUaGFrc2luIFNoaW5hd2F0cmEsIHRoZW4gUHJpbWUgTWluaXN0ZXIgb2YgVGhhaWxhbmQuIEl0IHdhcyBzdWdnZXN0ZWQgdGhhdCBBc2lhIGFzIGEgY29udGluZW50IHNob3VsZCBoYXZlIGl0cyBvd24gZm9ydW0gdG8gZGlzY3VzcyBBc2lhLXdpZGUgY29vcGVyYXRpb24uIEFmdGVyd2FyZHMsIHRoZSBpZGVhIG9mIHRoZSBBQ0Qgd2FzIGZvcm1hbGx5IHB1dCBmb3J3YXJkIGR1cmluZyB0aGUgMzR0aCBBU0VBTiBGb3JlaWduIE1pbmlzdGVycyBNZWV0aW5nIGluIEhhbm9pLCAyM+KAkzI0IEp1bHkgMjAwMSBhbmQgYXQgdGhlIEFTRUFOIEZvcmVpZ24gTWluaXN0ZXJzIFJldHJlYXQgaW4gUGh1a2V0LCAyMOKAkzIxIEZlYnJ1YXJ5IDIwMDIuDQoyMDAwIChPY3QgNCk6W011c2ljXSBGb3JtZWQgaW4gMTk5NiwgTGlua2luIFBhcmsgcm9zZSB0byBpbnRlcm5hdGlvbmFsIGZhbWUgd2l0aCB0aGVpciBkZWJ1dCBzdHVkaW8gYWxidW0sIEh5YnJpZCBUaGVvcnkuIEZvdXIgc2luZ2xlcyB3ZXJlIHJlbGVhc2VkIGZyb20gSHlicmlkIFRoZW9yeTogIk9uZSBTdGVwIENsb3NlciIsICJJbiB0aGUgRW5kIiwgIkNyYXdsaW5nIiBhbmQgIlBhcGVyY3V0IiwgYWxsIG9mIHRoZW0gYmVpbmcgcmVzcG9uc2libGUgZm9yIGxhdW5jaGluZyBMaW5raW4gUGFyayBpbnRvIG1haW5zdHJlYW0gcG9wdWxhcml0eS4gV2hpbGUgIkluIHRoZSBFbmQiIHdhcyB0aGUgbW9zdCBzdWNjZXNzZnVsIG9mIHRoZSBmb3VyLCBhbGwgb2YgdGhlIHNpbmdsZXMgaW4gdGhlIGFsYnVtIHJlbWFpbiBzb21lIG9mIHRoZSBiYW5kJ3MgbW9zdCBzdWNjZXNzZnVsIHNvbmdzIHRvIGRhdGUuDQoyMDAwIChOb3YgOSk6IGZvcm1hdGlvbiBvZiBVdHRhcmFraGFuZCBhcyBVdHRhcmFuY2hhbCAyMDAwIChKdW4gOSk6IEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQWN0LCAyMDAwLiBUaGUgYmlsbCB3YXMgcGFzc2VkIGluIHRoZSBidWRnZXQgc2Vzc2lvbiBvZiAyMDAwIGFuZCBzaWduZWQgYnkgUHJlc2lkZW50IEsuIFIuIE5hcmF5YW5hbiBvbiA5IE1heSAyMDAwLiBUaGUgYmlsbCB3YXMgZmluYWxpc2VkIGJ5IGdyb3VwIG9mIG9mZmljaWFscyBoZWFkZWQgYnkgdGhlbiBNaW5pc3RlciBvZiBJbmZvcm1hdGlvbiBUZWNobm9sb2d5LCBQcmFtb2QgTWFoYWphbi4NCjIwMDA6IGZvcm1hdGlvbiBvZg0KMjAwMDogSmFpc2gtZS1Nb2hhbW1lZCAobGl0ZXJhbGx5ICJUaGUgQXJteSBvZiBNdWhhbW1hZCIsIEplTSkgZm91bmRlZCBhdCBCYWhhd2FscHVyLCBQdW5qYWIsIFBha2lzdGFuLg0KMjAwMDogQ2hpbmEncyBCZWlEb3UgbmF2aWdhdGlvbiB0ZXN0IHN5c3RlbSBzdGFydHMuDQoyMDAwOiBGaXNlcnYgaGFkIGFjcXVpcmVkIG1vcmUgdGhhbiA5MCBidXNpbmVzc2VzLiBUaGUgbnVtYmVyIG9mIGVtcGxveWVlcyBncmV3IGZyb20gMjY0IHRvIDE0LDAwMC4gRmlzZXJ2IHdhcyBhbiBpbmR1c3RyeSBsZWFkZXIsIHdpdGggcmV2ZW51ZSB0aGF0IGluY3JlYXNlZCBmcm9tICQyMSBtaWxsaW9uIHRvICQxLjQgYmlsbGlvbiBpbiAxNSB5ZWFycy4NCjIwMDAgKERlYyA4KTpbR2FtaW5nXSBQcm9qZWN0IEkuRy5JLiBpcyBhIHRhY3RpY2FsIGZpcnN0LXBlcnNvbiBzaG9vdGVyIHZpZGVvIGdhbWUuIEl0IHdhcyBkZXZlbG9wZWQgYnkgSW5uZXJsb29wIFN0dWRpb3MgYW5kIHJlbGVhc2VkIGluIERlY2VtYmVyIDIwMDAgYnkgRWlkb3MgSW50ZXJhY3RpdmUuIFRoZSBnYW1lIHJlY2VpdmVkIG1peGVkIHJldmlld3MgZHVlIHRvIHNob3J0Y29taW5ncyBpbmNsdWRpbmcgYSBwb29ybHkgcHJvZ3JhbW1lZCBBLkkuLCBsYWNrIG9mIGEgbWlkLWdhbWUgc2F2ZSBvcHRpb24sIGFuZCB0aGUgbGFjayBvZiBtdWx0aXBsYXllciBmZWF0dXJlcy4gSG93ZXZlciBpdCB3YXMgcHJhaXNlZCBmb3IgaXRzIHNvdW5kIGRlc2lnbiBhbmQgZ3JhcGhpY3MsIHRoYW5rcyBpbiBwYXJ0IHRvIGl0cyB1c2Ugb2YgYSBwcm9wcmlldGFyeSBnYW1lIGVuZ2luZSB0aGF0IHdhcyBwcmV2aW91c2x5IHVzZWQgaW4gSW5uZXJsb29wJ3MgSm9pbnQgU3RyaWtlIEZpZ2h0ZXIuDQoyMDAwIChEZWMgMjEpOltKYWNrXSBSYWp1IENoYWNoYSByZWxlYXNlZC4NCjIwMDA6IFtCdXNpbmVzc11bRmluYW5jZV1bQ29ycG9yYXRlXVtJbmRpYV0gUklMIHBpbG90ZWQgd29ybGQncyBsYXJnZXN0IHBldHJvbGV1bSByZWZpbmVyeSBhdCBKYW1uYWdhciwgR3VqYXJhdCwgcmVmaW5pbmcgMS4yNE1uIGJhcnJlbHMvZGF5Lg0KMjAwMDpbQ3JpbWVdW0luZGlhXSBQb2xpY2UgZW5jb3VudGVycyBpbiBNdW1iYWkuIE1vc3QgY3JpbWluYWxzIGZsZWVpbmcgdG8gQ2FsY3VsdHRhLiBBZnRhYiBCaGF0a2kgZGVzdGFiaWxpc2UgdGhlIGVjb25vbXkgYnkgc3ByZWFkaW5nIGZha2UgY3VycmVuY3kgbm90ZXMgcHJpbnRlZCBieSBJU0kgZnVuY3Rpb25hcmllcywgYW5kIHR3bywgc2VuZCBtZXJjZW5hcmllcyB0byBjb25kdWN0IGFiZHVjdGlvbnMgYW5kIHRlcnJvcmlzdCBhdHRhY2tzLg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBUZWNobmljYWwgVW5pdmVyc2l0eSBvZiBNdW5pY2ggKDUgcXViaXQpOyBMb3MgQWxhbW9zIE5hdGlvbmFsIExhYiAoNyBxdWJpdHMpDQoyMDAwOkluIDIwMDAsIFRhdGEgVGVhIGFjcXVpcmVkIHRoZSBUZXRsZXkgVGVhIENvbXBhbnkgZm9yICQ0MDcgbWlsbGlvbi4gT3RoZXIgbm90YWJsZSBhY3F1aXNpdGlvbnMgaW5jbHVkZSBOYXRTdGVlbCAoMjAwNCksIEJydW5uZXIgTW9uZCAoMjAwNSksIGFuZCBFaWdodCBPJ0Nsb2NrIENvZmZlZSAoMjAwNikuIA0KMjAwMDogQmlybGEgYWNxdWlyZWQgSW5kaWFuIEFsdW1pbnVtIENvbXBhbnkgKElOREFMKS4gDQoyMDAwOiBTYXR5YSBOYXJheWFuYSBHb2Vua2Egd29ya2VkIGFzIGFuIGludGVybmF0aW9uYWwgYnVzaW5lc3NtYW4gYmFzZWQgaW4gTXlhbm1hciBhbmQgSW5kaWEgZm9yIGEgbGFyZ2UgcGFydCBvZiBoaXMgbGlmZS4gSGUgd2FzIGEga2V5bm90ZSBzcGVha2VyIG9uIHRoZSBzdWJqZWN0IG9mIFNwaXJpdHVhbGl0eSBpbiBCdXNpbmVzcyBhdCB0aGUgMzB0aCBXb3JsZCBFY29ub21pYyBGb3J1bSBpbiBEYXZvcywgU3dpdHplcmxhbmQgYmV0d2VlbiAyNiBKYW4gYW5kIDIgRmViIDIwMDAuIFR3byB5ZWFycyBsYXRlciBoZSBjb25kdWN0ZWQgdGhlIGZpcnN0IDEwLWRheSBjb3Vyc2UgaW4gVmlwYXNzYW5hIE1lZGl0YXRpb24gZXNwZWNpYWxseSBmb3IgYnVzaW5lc3MgZXhlY3V0aXZlcyBhbmQgZ292ZXJubWVudCBvZmZpY2lhbHMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAyMjUgeWVhcnMgb2YgSW5kZXBlbmRlbnQgVVNBIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIA0KDQoyMDAxOltVU11bR2VvUG9saXRpY3NdIGludmFzaW9uIG9mIEFmZ2hhbmlzdGFuLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMjAwMTpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgU2hhbmdoYWkgQ29vcGVyYXRpb24gT3JnYW5pc2F0aW9uIChTQ08pIGlzIGEgRXVyYXNpYW4gcG9saXRpY2FsLCBlY29ub21pYywgaW50ZXJuYXRpb25hbCBzZWN1cml0eSBhbmQgZGVmZW5jZSBvcmdhbml6YXRpb24gb2YgdGVuIG1lbWJlciBzdGF0ZXMuIEl0IHdhcyBlc3RhYmxpc2hlZCBpbiAyMDAxIGJ5IHRoZSBQZW9wbGUncyBSZXB1YmxpYyBvZiBDaGluYSwgS2F6YWtoc3RhbiwgS3lyZ3l6c3RhbiwgUnVzc2lhLCBhbmQgVGFqaWtpc3RhbiBhbmQgVXpiZWtpc3Rhbi4gSW4gSnVuZSAyMDE3LCBpdCBleHBhbmRlZCB0byBlaWdodCBzdGF0ZXMsIHdpdGggSW5kaWEgYW5kIFBha2lzdGFuLiBJcmFuIGpvaW5lZCB0aGUgZ3JvdXAgaW4gSnVseSAyMDIzLCBhbmQgQmVsYXJ1cyBpbiBKdWx5IDIwMjQuIFNldmVyYWwgY291bnRyaWVzIGFyZSBlbmdhZ2VkIGFzIG9ic2VydmVycyBvciBkaWFsb2d1ZSBwYXJ0bmVycy4gRm91bmRlcnM6IENoaW5hLCBSdXNzaWEsIEthemFraHN0YW4sIFV6YmVraXN0YW4sIEt5cmd5enN0YW4sIFRhamlraXN0YW47IEhlYWRxdWFydGVyczogQmVpamluZywgQ2hpbmE7IEZvdW5kZWQ6IDE1IEp1bmUgMjAwMQ0KMjAwMTpbQnVzaW5lc3NdIDIwMDHigJMyMDA1OiBIRlQgZXhlY3V0aW9uIHRpbWVzIGRlY3JlYXNlZCBmcm9tIHNldmVyYWwgc2Vjb25kcyB0byBtaWxsaXNlY29uZHMuIChIRlQpDQoyMDAxOltDb21wdXRpbmddW1F1YW50dW1dICBJQk0gaW1wbGVtZW50ZWQgR3JvdmVy4oCZcyBhbGdvcml0aG0gb24gYSA3LXF1Yml0IE5NUiBxdWFudHVtIGNvbXB1dGVyLCBmaW5kaW5nIGEgbWFya2VkIGl0ZW0gaW4gYSBkYXRhYmFzZSBvZiA0IGVudHJpZXMuDQoyMDAxOiBMaWZlIG9mIFBpIGlzIGEgQ2FuYWRpYW4gcGhpbG9zb3BoaWNhbCBub3ZlbCBieSBZYW5uIE1hcnRlbCBwdWJsaXNoZWQuIFRoZSBwcm90YWdvbmlzdCBpcyBQaXNjaW5lIE1vbGl0b3IgIlBpIiBQYXRlbCwgYW4gSW5kaWFuIGJveSBmcm9tIFBvbmRpY2hlcnJ5IHdobyBleHBsb3JlcyBpc3N1ZXMgb2Ygc3Bpcml0dWFsaXR5IGFuZCBtZXRhcGh5c2ljcyBmcm9tIGFuIGVhcmx5IGFnZS4gSGUgc3Vydml2ZXMgMjI3IGRheXMgYWZ0ZXIgYSBzaGlwd3JlY2sgd2hpbGUgc3RyYW5kZWQgb24gYSBsaWZlYm9hdCBpbiB0aGUgUGFjaWZpYyBPY2VhbiB3aXRoIGEgQmVuZ2FsIHRpZ2VyIHdoaWNoIHJhaXNlcyBxdWVzdGlvbnMgYWJvdXQgdGhlIG5hdHVyZSBvZiByZWFsaXR5IGFuZCBob3cgaXQgaXMgcGVyY2VpdmVkIGFuZCB0b2xkLjtTZXZlbiBTdG9yaWVzICgxOTkzKQ0KMjAwMTpbQ3JpbWVdW0luZGlhXSBDaGhvdGEgUmFqYW4ncyBhc3NvY2lhdGVzIHRyYWNrZWQgZG93biBhbmQgc2hvdCBkZWFkIGhvdGVsaWVyIFZpbm9kIGluIE11bWJhaSwgYXMgd2VsbCBhcyBTdW5pbCBTb2FucyDigJMgYW5vdGhlciBEYXdvb2QgYXNzb2NpYXRlLg0KMjAwMSAoSmFuIDEpOltCb29rXSBHcmVnIE1jS2Vvd24ncyBFc3NlbnRpYWxpc206IFRoZSBEaXNjaXBsaW5lZCBQdXJzdWl0IG9mIExlc3MNCjIwMDEgKEphbiAxKTpbQm9va10gQnJpYW4gVHJhY3kncyBFYXQgVGhhdCBGcm9nIQ0KMjAwMTogVGhlIEFyZHVpbm8gcHJvamVjdCBzdGFydGVkIGF0IHRoZSBJbnRlcmFjdGlvbiBEZXNpZ24gSW5zdGl0dXRlIEl2cmVhIChJRElJKSBpbiBJdnJlYSwgSXRhbHkuIEF0IHRoYXQgdGltZSwgdGhlIHN0dWRlbnRzIHVzZWQgYSBCQVNJQyBTdGFtcCBtaWNyb2NvbnRyb2xsZXIgYXQgYSBjb3N0IG9mICQxMDAsIGEgY29uc2lkZXJhYmxlIGV4cGVuc2UgZm9yIG1hbnkgc3R1ZGVudHMuDQoyMDAxIChBcHIgNHRoKTogQ2hhcmxlcyBNLiBWZXN0LCB0aGUgdGhlbiBQcmVzaWRlbnQgb2YgTUlUIGFubm91bmNlZCBPcGVuQ291cnNlV2FyZSAoT0NXKSBwdWJsaWNpemluZyBhbGwgb2YgaXRzIDIsMDAwIGNvdXJzZXMgIGF0IHRoZSBlc3RpbWF0ZWQgY29zdCBvZiAkMTAwIG1pbGxpb24gKG9uIGFuIGF2Zy4sIGEgTUlUIHN0dWRlbnRzIHBheXMgYXJvdW5kICQyNiwwMDAgYXMgb2ZmbGluZSB0dWl0aW9uIGZlZSkNCjIwMDE6IFVTIGludmFkZWQgQWZnaGFuaXN0YW4gaW4gcmVzcG9uc2UgdG8gOS8xMSBhdHRhY2tzLiBPZmZpY2lhbGx5LCBJdCBoYXMgYmVjb21lIHRoZSBsb25nZXN0IHdhciBpbiBBbWVyaWNhbiBoaXN0b3J5Lg0KMjAwMTogaVBvZCBieSBUb255IEZhZGVsbA0KMjAwMSAoSnVuIDE1KTpbSmFja10gR2FkYXI6IEVrIFByZW0gS2F0aGE7IExhZ2FhbjogT25jZSBVcG9uIGEgVGltZSBpbiBJbmRpYQ0KMjAwMSAoU2VwIDExKTogOS8xMSBUZXJyb3Jpc3QgYXR0YWNrcy4gVGhlIFNlcHRlbWJlciAxMSBvciA5LzExLCBhdHRhY2tzIHdlcmUgYSBzZXJpZXMgb2YgZm91ciBjb29yZGluYXRlZCB0ZXJyb3Jpc3QgYXR0YWNrcyBieSB0aGUgSXNsYW1pYyB0ZXJyb3Jpc3QgZ3JvdXAgYWwtUWFlZGEgb24gdGhlIFVuaXRlZCBTdGF0ZXMgb24gdGhlIG1vcm5pbmcgb2YgVHVlc2RheSwgU2VwIDExLiBUaGUgbG9zcyBvZiBsaWZlIHdhcyBlc3RpbWF0ZWQgYXQganVzdCB1bmRlciAzLDAwMC4gVGhlIGV2ZW50IGNoYW5nZWQgQW1lcmljYW4gZm9yZWlnbiBwb2xpY3kuIEl0IHdhcyBhIG1vdGl2YXRpbmcgZmFjdG9yIGJlaGluZCB0aGUgY29udHJvdmVyc2lhbCBpbnZhc2lvbiBvZiBJcmFxIGFuZCBsZWQgdG8gYSDigJh3YXIgb24gdGVycm9y4oCZIHN5bWJvbGlzZWQgYnkgR3VhbnRhbmFtbyBCYXkgYW5kIGEgZGViYXRlIG92ZXIgdGhlIGp1c3RpZmljYXRpb24gb2YgdG9ydHVyZS4NCjIwMDEgKE9jdCA3KTpbR2VvUG9saXRpY3NdIFVuaXRlZCBTdGF0ZXMgaW52YXNpb24gb2YgQWZnaGFuaXN0YW46IEluIGxhdGUgMjAwMSwgdGhlIFVuaXRlZCBTdGF0ZXMgYW5kIGl0cyBjbG9zZSBhbGxpZXMgaW52YWRlZCBBZmdoYW5pc3RhbiBhbmQgdG9wcGxlZCB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50LiBUaGUgaW52YXNpb24ncyBzdGF0ZWQgYWltcyB3ZXJlIHRvIGRpc21hbnRsZSBhbC1RYWVkYSwgd2hpY2ggaGFkIGV4ZWN1dGVkIHRoZSBTZXB0ZW1iZXIgMTEgYXR0YWNrcywgYW5kIHRvIGRlbnkgaXQgYSBzYWZlIGJhc2Ugb2Ygb3BlcmF0aW9ucyBpbiBBZmdoYW5pc3RhbiBieSByZW1vdmluZyB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50IGZyb20gcG93ZXIuIERlYyA3LCAyMDAxIG9ud2FyZCBzdGFydGVkIFdhciBpbiBBZmdoYW5pc3Rhbi4NCjIwMDEgKE9jdCAxNik6W0Jvb2tdIE1jS2luc2V5IFJlc2VhcmNoZXIgSmFtZXMgQy4gQ29sbGlucycgR29vZCBUbyBHcmVhdDogV2h5IFNvbWUgQ29tcGFuaWVzIE1ha2UgdGhlIExlYXAuLi5BbmQgT3RoZXJzIERvbid0OyANCjIwMDEgKE5vdik6W0NyaW1lXVtJbmRpYV0gQWJkdWwgR2FmZmFyIGFsaWFzIENoaWtuYSBHYWZmYXIgY2F1Z2h0IGJ5IHRoZSBkZXRlY3RpdmUgZGVwYXJ0bWVudCBpbiBDYWxjdXR0YSANCjIwMDEgKEphbiAyKTogVGhlIG5vcnRoZXJuIGVsZWN0cmljYWwgZ3JpZCBjb2xsYXBzZWQgaW4gSW5kaWEuIEEgZmF1bHQgaW4gdGhlIHRyYW5zbWlzc2lvbiBzeXN0ZW0gaW4gdGhlIHN0YXRlIG9mIFV0dGFyIFByYWRlc2ggbGVkIHRvIGNhc2NhZGluZyBmYWlsdXJlIHRocm91Z2hvdXQgbm9ydGhlcm4gSW5kaWEgYWZmZWN0aW5nIDIzIGNyb3JlIHJlc2lkZW50cy4NCjIwMDE6IElWUlMgKCdJbnRlcmFjdGl2ZSBWb2ljZSBSZXNwb25zZSBTeXN0ZW0nKSBmb3IgdGVsZXBob25pYyBlbnF1aXJpZXMgYWJvdXQgdHJhaW5zIGludHJvZHVjZWQgaW4gc29tZSBzdGF0aW9ucy4NCjIwMDE6IE1hZGVFYXN5IGluY29ycG9yYXRlZCBhdCA0NC1BLzEsIEthbHUgU2FyYWksIE5lYXIgSGF1eiBLaGFzIE1ldHJvIFN0YXRpb24sIE5ldyBEZWxoaS0xMTAwMTYNCjIwMDE6IEFjYyB0byAyMDAxIGNlbnN1cywgMzAgbGFraHMgd2VyZSBpbW1pZ3JhdGVkIHRvIEluZGlhIGZyb20gQmFuZ2xhZGVzaCBhbG9uZSwgZm9sbG93ZWQgYnkgMTAgbGFraHMgZnJvbSBQYWtpc3RhbiBhbmQgNiBsYWtocyBmcm9tIE5lcGFsLg0KMjAwMSAoRGVjIDEzKTpbQ3JpbWVdW0luZGlhXSBUZXJyb3Jpc3QgYXR0YWNrIG9uIEluZGlhJ3MgUGFybGlhbWVudC4NCjIwMDE6IHRoZSBjdXN0b21lciBiYXNlIG9mIG1vYmlsZSBwaG9uZSBjb21wYW5pZXMgd2FzIDQgbWlsbGlvbi4NCjIwMDE6IEJlbmVmaXQgbGFubmVycywgVGV4YXMgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBIZWFsdGggQmVuZWZpdCBkaXZpc2lvbi4NCjIwMDE6IE5ldyBIb3Jpem9ucyB3YXMgaW5pdGlhbGx5IHNlbGVjdGVkIGZvciBmdW5kaW5nIGluIDIwMDEgYnV0IHdhcyBleGNsdWRlZCBmcm9tIHRoZSBOQVNBIDIwMDMgYnVkZ2V0LiBGdW5kaW5nIGZvciB0aGUgbWlzc2lvbiB3YXMgcmVpbnN0YXRlZCBhZnRlciBOZXcgSG9yaXpvbnMgd2FzIGxpc3RlZCBhcyBhIHRvcCBwcmlvcml0eSBpbiB0aGUgUGxhbmV0YXJ5IFNjaWVuY2UgRGVjYWRhbCBTdXJ2ZXkgb2YgMjAwM+jjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlallkllklklklklklklklklklklklklklklklklklklklklklklklklklklklkjjajlkasjdlajdlkajdlaj
+KAkzIwMDEuDQoxOTkzOiBBc2hvayBIYWxsIEdpcmwncyBSZXNpZGVudGlhbCBTY2hvb2wsIE1hamtoYWxpLg0KMTk5MzogQnkgdGhpcyB5ZWFyIHRoZXJlIHdlcmUgYXJvdW5kIDEwMCB3ZWItc2VydmVycyBhY3Jvc3MgdGhlIHdvcmxkLiAoQSByZXBvcnQgcHVibGlzaGVkIGluIGZpcnN0IGlzc3VlIG9mIFRoZSBXb3JsZCBXaWRlIFdlYiBOZXdzbGV0dGVyLCAxOTkzKQ0KMTk5MzogQUMgMy10aWVyIGNvYWNoZXMgJiBTbGVlcGVyIGNsYXNzIGFyZSBpbnRyb2R1Y2VkIGFwYXJ0IGZyb20gc2Vjb25kIGNsYXNzLg0KMTk5MzogR29JJ3MgRGlzdHJpY3QgUHJpbWFyeSBFZHVjYXRpb24gUHJvZ3JhbW1lIChEUEVQKSB3YXMgbGF1bmNoZWQsIHdpdGggYW4gYWltIG9mIGFjaGlldmluZyB0aGUgb2JqZWN0aXZlIG9mIHVuaXZlcnNhbCBwcmltYXJ5IGVkdWNhdGlvbi4gVGhpcyBwcm9ncmFtbWVkIGxhaWQgdGhlIGZvdW5kYXRpb25zIGZvciDgpLjgpLDgpY3gpLUg4KS24KS/4KSV4KWN4KS34KS+IOCkheCkreCkv+Ckr+CkvuCkqChFZHVjYXRpb24gZm9yIEFsbCBNb3ZlbWVudCkgYWltZWQgYXQgdGhlIHVuaXZlcnNhbGlzYXRpb24gb2YgZWxlbWVudGFyeSBlZHVjYXRpb24gbWFraW5nIGZyZWUgYW5kIGNvbXB1bHNvcnkgZWR1Y2F0aW9uIHRvIGNoaWxkcmVuIGJldHdlZW4gdGhlIGFnZXMgb2YgNiB0byAxNC4NCjE5OTM6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIHNwbGl0IHdpdGggRGF3b29kIGFuZCBmb3JtZWQgYW4gaW5kZXBlbmRlbnQgZ2FuZyB0aGF0IGZyZXF1ZW50bHkgY2xhc2hlZCB3aXRoIERhd29vZCdzIEQtQ29tcGFueS4NCjE5OTMgKEphbiA3KTpbQ3JpbWVdIFJpb3RzIHJlLXN0YXJ0ZWQgaW4gTXVtYmFpIGFuZCBsYXN0ZWQgZm9yIDIwIGRheXMuIFRoZSBJU0ksIHdoaWNoIGNvbnRyb2xsZWQgc2hpcHBpbmcgcm91dGVzIGZyb20gdGhlIEd1bGYgdG8gSW5kaWEncyB3ZXN0IGNvYXN0LCBkZW1hbmRlZCB0aGF0IHRoZSBtYWZpYSB0cmFuc3BvcnQgd2VhcG9ucyBhbmQgZXhwbG9zaXZlcyBpbnRvIEluZGlhIGluIHJldHVybiBmb3IgdGhlIHVzZSBvZiBQYWtpc3RhbidzIHdhdGVycy4gRGF3b29kIG1ldCB0aGVpciBJU0kgaGFuZGxlcnMgaW4gYSA1IHN0YXIgaG90ZWwgb2YgRHViYWkgaW4gSmFuIG9yIEZlYiBvZiAxOTkzLCB0aGVuIGNhbWUgdGhlIFJEWCB0aHJvdWdoIHRoZSBzYW1lIHBvcm91cyBhbmQgdW5jaGVja2VkIHNlYSByb3V0ZSB0aGF0IDI2LzExIGF0dGFja2VycyBzbGlwcGVkIGFjcm9zcyBhbmQgd3JlY2tlZCBtYXloZW0gaW4gTXVtYmFpLiBUaGUg4oCZOTMgYXR0YWNrcyB3ZXJlIGZpbmFsbHkgZXhlY3V0ZWQgaW4gbWFyY2ggdGhhdCBjbGFpbWVkIHNvbWUgMzAwIGlubm9jZW50IGxpdmVzLg0KMTk5MyAoTWFyIDYpOltQb2xpdHldW0luZGlhXSBTaGFyYWQgUGF3YXIgcmUtZWxlY2V0ZCBhcyBDTSBvZiBNSCBmb3IgMiB5ZWFycy4NCjE5OTMgKE1hciAxMik6W0NyaW1lXSBUaGUgMTk5MyBCb21iYXkgYm9tYmluZ3Mgd2VyZSBhIHNlcmllcyBvZiAxMiB0ZXJyb3Jpc3QgYm9tYmluZ3MgdGhhdCB0b29rIHBsYWNlIGluIEJvbWJheS4gVGhlIHNpbmdsZS1kYXkgYXR0YWNrcyByZXN1bHRlZCBpbiAyNTcgZmF0YWxpdGllcyBhbmQgMSw0MDAgaW5qdXJpZXMuIFRoZXJlIHdhcyBhbm90aGVyIHJhaWQgbmVhciBNYW5pc2ggbWFya2V0IHdoZXJlIGhhbmQgZ3JlbmFkZXMgd2VyZSByZWNvdmVyZWQuIEFmdGVyIGFub3RoZXIgdGlwIG9mZiBsZWQgdG8gZGlzY292ZXJ5IG9mIGEgaHVnZSBxdWFudGl0eSBvZiBSRFggZnJvbSBOYWdsYSBCdW5kZXIgb2ZmIEdob2RidW5kZXIgUm9hZCBpbiBUaGFuZS4g4oCcSW4gYWxsLCA1LDAwMCBraWxvZ3JhbXMgb2YgUkRYIHdhcyBicm91Z2h0IGludG8gTXVtYmFpIGFuZCB3ZSByZWNvdmVyZWQgMywzMDAga2lsb2dyYW1zIG9mIGl0IGluIGFsbCB0aGUgcmFpZHMs4oCdIHNheXMgQ2hhdWd1bGUuIFJlZHVjZWQgU2hvY2sgU2Vuc2l0aXZpdHkgKFJTUykgZXhwbG9zaXZlcywgc3VjaCBhcyBSU1MtUkRYLCB3aGljaCBjb3N0cyBhYm91dCBScy4gMSw1MDAtMiwwMDAgcGVyIGtnLiBBbmVlcyBjb250aW51ZWQgb3BlcmF0aW9uIG9mIEQtQ29tcGFueSB3aGljaCBpbmNsdWRlIGNvbnRyYWN0IGtpbGxpbmcsIGV4dG9ydGlvbiwgdGhlIGNpcmN1bGF0aW9uIG9mIGNvdW50ZXJmZWl0IGN1cnJlbmN5LCBhbmQgdGhlIHByb3Zpc2lvbiBvZiBhIHJhbmdlIG9mIGZyZWUtbGFuY2Ugc2VydmljZXMgdG8gdGVycm9yaXN0IGdyb3VwcyBhdCB0aGUgaW5zdGFuY2Ugb2YgUGFraXN0YW4ncyBJbnRlciBTZXJ2aWNlcyBJbnRlbGxpZ2VuY2UgKElTSSkuIEludGVycG9sIFJlZCBDb3JuZXIgbm90aWNlIGZvciBELUNvbXBhbnkuDQoxOTkzIChOb3YgMSk6IFRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGZvdW5kZWQuIEl0IGlzIGFuIGVjb25vbWljIGFuZCBwb2xpdGljYWwgcGFydG5lcnNoaXAgaW52b2x2aW5nIDI4IEV1cm9wZWFuIGNvdW50cmllcy4gSXQgYmVnYW4gYWZ0ZXIgV1cyIHRvIGZvc3RlciBlY29ub21pYyBjby1vcGVyYXRpb24sIHdpdGggdGhlIGlkZWEgdGhhdCBjb3VudHJpZXMgd2hpY2ggdHJhZGUgdG9nZXRoZXIgYXJlIG1vcmUgbGlrZWx5IHRvIGF2b2lkIGdvaW5nIHRvIHdhciB3aXRoIGVhY2ggb3RoZXIuDQoxOTkzIChOb3YgMyk6IFtHZW9Qb2xpdGljc10gVGhlIENvbW1vbiBNYXJrZXQgZm9yIEVhc3Rlcm4gYW5kIFNvdXRoZXJuIEFmcmljYSAoQ09NRVNBKSBpcyBhIHJlZ2lvbmFsIGVjb25vbWljIGNvbW11bml0eSBpbiBBZnJpY2Egd2l0aCB0d2VudHktb25lIG1lbWJlciBzdGF0ZXMgc3RyZXRjaGluZyBmcm9tIFR1bmlzaWEgdG8gRXN3YXRpbmkuIENPTUVTQSB3YXMgZm9ybWVkIGluIERlY2VtYmVyIDE5OTQsIHJlcGxhY2luZyBhIFByZWZlcmVudGlhbCBUcmFkZSBBcmVhIHdoaWNoIGhhZCBleGlzdGVkIHNpbmNlIDE5ODEuIE5pbmUgb2YgdGhlIG1lbWJlciBzdGF0ZXMgZm9ybWVkIGEgZnJlZSB0cmFkZSBhcmVhIGluIDIwMDAgKERqaWJvdXRpLCBFZ3lwdCwgS2VueWEsIE1hZGFnYXNjYXIsIE1hbGF3aSwgTWF1cml0aXVzLCBTdWRhbiwgWmFtYmlhIGFuZCBaaW1iYWJ3ZSksIHdpdGggUndhbmRhIGFuZCBCdXJ1bmRpIGpvaW5pbmcgdGhlIEZUQSBpbiAyMDA0LCB0aGUgQ29tb3JvcyBhbmQgTGlieWEgaW4gMjAwNiwgU2V5Y2hlbGxlcyBpbiAyMDA5IGFuZCBUdW5pc2lhIGFuZCBTb21hbGlhIGluIDIwMTguDQoxOTkzIChEZWMgMjApOiBPSENIUiBmb3JtZWQuIFRoZSBPZmZpY2Ugb2YgdGhlIFVuaXRlZCBOYXRpb25zIEhpZ2ggQ29tbWlzc2lvbmVyIGZvciBIdW1hbiBSaWdodHMgKE9IQ0hSKSwgYSBVbml0ZWQgTmF0aW9ucyBhZ2VuY3kgdGhhdCB3b3JrcyB0byBwcm9tb3RlIGFuZCBwcm90ZWN0IHRoZSBodW1hbiByaWdodHMgdGhhdCBhcmUgZ3VhcmFudGVlZCB1bmRlciBpbnRlcm5hdGlvbmFsIGxhdyBhbmQgc3RpcHVsYXRlZCBpbiB0aGUgVW5pdmVyc2FsIERlY2xhcmF0aW9uIG9mIEh1bWFuIFJpZ2h0cyBvZiAxOTQ4Lg0KMTk5Mzp0aGUgMjR0aCBhbmQgbGFzdCBHTE9OQVNTIHNhdGVsbGl0ZSB3YXMgbGF1bmNoZWQgZm9ybWluZyB0aGUgd2hvbGUgbmF2aWdhdGlvbiBjb25zdGVsbGF0aW9uIHNpbWlsYXIgdG8gdGhhdCBvZiBVUydzIEdQUy4NCjE5OTM6IFNIQS0wIChhIGhhc2ggZnVuY3Rpb24pIHdhcyBwcm9wb3NlZCBieSBOSVNULCBNYXJ5bGFuZCwgVVNBIChGb3VuZGVkOiAxOTAxKS4gSXQgcHJvZHVjZXMgYSAxNjAtYml0IGhhc2ggdmFsdWUsIHRodXMgdGhlIGJydXRlLWZvcmNlIGNvbGxpc2lvbiBvciAgbmVhci1jb2xsaXNpb24gYXR0YWNrIHJlcXVpcmVzIE8oMl44MCkgY29tcHV0YXRpb24uIFdpdGhpbiA1IHllYXJzLCBpdCB3YXMgbWFkZSBjb2xsaXNpb24gYXR0YWNrZWQgYnkgQ2hhYmF1ZCBhbmQgSm91eCB3aXRoIHRoZSBhdHRhY2sgY29tcGxleGl0eSBvZiAyXjYxLg0KMTk5MzogW0NvYWxnYXRlIHNjYW1dIE9uIDIzcmQgQXByaWwgMjAxMywgdGhlIFN0YW5kaW5nIENvbW1pdHRlZSBvbiBDb2FsIGFuZCBTdGVlbCB0YWJsZWQgaW4gUGFybGlhbWVudCB0aGF0IGFsbCAxOTQgY29hbCBibG9ja3MgZGlzdHJpYnV0ZWQgYmV0d2VlbiAxOTkzIGFuZCAyMDA4IHdlcmUgYXVjdGlvbmVkIGluIGFuIHVuYXV0aG9yaXplZCBtYW5uZXIgYW5kIHRoZSBjb3VudHJ5IGxvc3QgUnMuMS44NiBsYWtoIGNyb3JlLi4gRm9ybWVyIFByaW1lIE1pbmlzdGVyIE1hbm1vaGFuIFNpbmdoLCBhbG9uZyB3aXRoIEt1bWFyIE1hbmdhbGFtIEJpcmxhIGFuZCBQLkMuIFBhcmFraCwgd2VyZSBhY2N1c2VkIGFuZCBzdW1tb25lZCBieSBhIHNwZWNpYWwgY291cnQuIFsyTCBDcm9yZV0uIENvbXB0cm9sbGVyIGFuZCBBdWRpdG9yIEdlbmVyYWwgb2YgSW5kaWEgdG9vayAyMCB5ZWFycyB0byBJRCBvbmUgb2YgdGhlIGJpZ2dlc3Qgc2NhbXMgaW4gSW5kaWFuIGhpc3RvcnkuDQoxOTkzOiBBZnRlciBQcmVzaWRlbnQgQmlsbCBDbGludG9uIHRvb2sgb2ZmaWNlIGluIDE5OTMsIGhvd2V2ZXIsIHRoZSBVLlMuIGVjb25vbXkgZW1iYXJrZWQgb24gYSBsb25nIGFuZCBzdHJvbmcgZXhwYW5zaW9uLCBtYWtpbmcgdGhlIDE5OTBzIGEgZ3JlYXQgZGVjYWRlIGZvciBBbWVyaWNhJ3MgbW9uZXksIG92ZXJhbGwuIA0KMTk5MzpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTW90aHJhKDE5OTIpDQoxOTkzOltTcGFjZV0gSGlwcGFyY29zLCBhIHNjaWVudGlmaWMgc2F0ZWxsaXRlIG9mIHRoZSBFdXJvcGVhbiBTcGFjZSBBZ2VuY3kgKEVTQSkgbGFzdGVkIGZvciA0IHllYXJzIGJlZm9yZSBnb2luZyBvdXQtb2Ytc2VydmljZS4NCjE5OTM6W1NwYWNlXVtSZXNlYXJjaF0gSW4gMTk5MywgRG9uIFBhZ2UgYXJndWVkIHRoYXQgaWYgYSBibGFjayBob2xlIHN0YXJ0cyBpbiBhIHB1cmUgcXVhbnR1bSBzdGF0ZSBhbmQgZXZhcG9yYXRlcyBjb21wbGV0ZWx5IGJ5IGEgdW5pdGFyeSBwcm9jZXNzLCB0aGUgdm9uIE5ldW1hbm4gZW50cm9weSBvZiB0aGUgSGF3a2luZyByYWRpYXRpb24gaW5pdGlhbGx5IGluY3JlYXNlcyBhbmQgdGhlbiBkZWNyZWFzZXMgYmFjayB0byB6ZXJvIHdoZW4gdGhlIGJsYWNrIGhvbGUgaGFzIGRpc2FwcGVhcmVkLiBUaGlzIGlzIGNhbGxlZCB0aGUgUGFnZSBjdXJ2ZS4NCjE5OTM6W0Jvb2tzXVtIaXN0b3J5XSBHcmVlbuKAmXMgRGljdGlvbmFyeSBvZiBTbGFuZyBpcyB0aGUgbGFyZ2VzdCBoaXN0b3JpY2FsIGRpY3Rpb25hcnkgb2YgRW5nbGlzaCBzbGFuZy4gV3JpdHRlbiBieSBKb25hdGhvbiBHcmVlbiBvdmVyIDE3IHllYXJzIGZyb20gMTk5MywgaXQgcmVhY2hlZCB0aGUgcHJpbnRlZCBwYWdlIGluIDIwMTAgaW4gYSB0aHJlZS12b2x1bWUgc2V0IGNvbnRhaW5pbmcgbmVhcmx5IDEwMCwwMDAgZW50cmllcyBzdXBwb3J0ZWQgYnkgb3ZlciA0MDAsMDAwIGNpdGF0aW9ucyBmcm9tIGMuIGFkIDEwMDAgdG8gdGhlIHByZXNlbnQgZGF5LiBUaGUgbWFpbiBmb2N1cyBvZiB0aGUgZGljdGlvbmFyeSBpcyB0aGUgY292ZXJhZ2Ugb2Ygb3ZlciA1MDAgeWVhcnMgb2Ygc2xhbmcgZnJvbSBjLiAxNTAwIG9ud2FyZHMuDQoxOTkzOltFbnZdW0Rpc2FzdGVyXSBTb3V0aCBBc2lhbiBtb25zb29uIGZsb29kcywgM2sgZGVhdGhzDQoxOTkzOltHZW9ncmFwaHldIFRoZSBsYXN0IG1ham9yIHNoaWZ0cyBpbiBFYXJ0aCdzIGF4aXMgd2VyZSBpbmZsdWVuY2VkIGJ5IGNsaW1hdGUgY2hhbmdlOiBhIDMxLjUtaW5jaCBzaGlmdCBiZXR3ZWVuIDE5OTMgYW5kIDIwMTAgd2FzIHByaW1hcmlseSBjYXVzZWQgYnkgZ3JvdW5kd2F0ZXIgcHVtcGluZywgYW5kIGEgY2hhbmdlIGluIHBvbGFyIGRyaWZ0IGRpcmVjdGlvbiBhcm91bmQgdGhlIDE5OTBzIHdhcyBsaW5rZWQgdG8gbWVsdGluZyBnbGFjaWVycyBhbmQgaWNlIHNoZWV0cyBkdWUgdG8gZ2xvYmFsIHdhcm1pbmcuIEVhcnRoJ3MgYXhpcyBhbHNvIHNoaWZ0ZWQgYnkgYWJvdXQgNi41IGluY2hlcyBpbiBNYXJjaCAyMDExIGFmdGVyIHRoZSBKYXBhbmVzZSBlYXJ0aHF1YWtlLCBjYXVzaW5nIHRoZSBwbGFuZXQgdG8gc3BpbiBzbGlnaHRseSBmYXN0ZXIuDQoxOTkzOltXaG9dIEluIDE5OTMsIEluZGlhIGNhbWUgaGVhcnRicmVha2luZ2x5IGNsb3NlIHRvIHdpbm5pbmcgaXRzIGZpcnN0IE1pc3MgVW5pdmVyc2UgY3Jvd24gd2l0aCB0aGUgc3R1bm5pbmcgYW5kIGdyYWNlZnVsIE5hbXJhdGEgU2hpcm9ka2FyLCB3aG8gaGFkIGVhcmxpZXIgd29uIHRoZSBGZW1pbmEgTWlzcyBJbmRpYSB0aXRsZS4gUmVwcmVzZW50aW5nIEluZGlhIGF0IHRoZSBNaXNzIFVuaXZlcnNlIHBhZ2VhbnQgaGVsZCBpbiBNZXhpY28gQ2l0eSwgTmFtcmF0YSB3YXMgYSBzdHJvbmcgY29udGVuZGVy4oCUZWxlZ2FudCBpbiBoZXIgZ293biwgcG9pc2VkIGluIGludGVydmlld3MsIGFuZCBhIGZhbiBmYXZvcml0ZS4gU2hlIGVhc2lseSBtYWRlIGl0IHRvIHRoZSBUb3AgNiwgYW5kIGhlciBjaGFuY2VzIG9mIHdpbm5pbmcgbG9va2VkIGluY3JlZGlibHkgaGlnaC4gQnV0IHRoZW4gY2FtZSB0aGUgZmluYWwgcXVlc3Rpb246IOKAnElmIHlvdSBjb3VsZCBiZSBib3JuIGFzIGFueSBoaXN0b3JpY2FsIGZpZ3VyZSwgd2hvIHdvdWxkIGl0IGJlIGFuZCB3aHk/4oCdIFdoaWxlIG90aGVyIGNvbnRlc3RhbnRzIG5hbWVkIGdsb2JhbCBpY29ucyBsaWtlIE1vdGhlciBUZXJlc2EgYW5kIFByaW5jZXNzIERpYW5hLCBOYW1yYXRhIGdhdmUgYW4gaG9uZXN0LCBwZXJzb25hbCBhbnN3ZXLigJRzaGUgc2FpZCBzaGUgd291bGQgYmUgYm9ybiBhcyBoZXJzZWxmIG9yIHNvbWVvbmUgY2xvc2UgdG8gaGVyLCBiZWNhdXNlIHNoZSBiZWxpZXZlZCBpbiBsaXZpbmcgbGlmZSB3aXRoIHRydXRoIGFuZCBpbmRpdmlkdWFsaXR5LiBJdCB3YXMgYSBiZWF1dGlmdWwsIGdyb3VuZGVkIGFuc3dlcuKAlGJ1dCBub3QgdGhlIGtpbmQgb2YgZ3JhbmQsIGlkZWFsaXN0aWMgcmVzcG9uc2UgdGhlIGp1ZGdlcyB3ZXJlIGV4cGVjdGluZy4gVGhhdCBvbmUgbW9tZW50IG9mIHRydXRoLCBtYW55IGJlbGlldmUsIGNvc3QgaGVyIHRoZSBjcm93biwgYW5kIEluZGlhIGhhZCB0byB3YWl0IGFub3RoZXIgeWVhciBiZWZvcmUgU3VzaG1pdGEgU2VuIGJyb3VnaHQgdGhlIE1pc3MgVW5pdmVyc2UgdGl0bGUgaG9tZSBpbiAxOTk0LiBTdGlsbCwgTmFtcmF0YeKAmXMgYW5zd2VyIGJlY2FtZSBpY29uaWPigJRub3QgYmVjYXVzZSBpdCB3b24sIGJ1dCBiZWNhdXNlIGl0IHdhcyByZWFsLCBtYXJraW5nIGEgcmFyZSBpbnN0YW5jZSB3aGVyZSBob25lc3R5IHN0b29kIHRhbGxlciB0aGFuIGRpcGxvbWFjeS4NCjE5OTM6W0F2aWF0aW9uXVtFeHRyZW1lXVtXaG9dIFRoZSBIZXJic3QgbWFuZXV2ZXIgd2FzIGZpcnN0IHN1Y2Nlc3NmdWxseSBwZXJmb3JtZWQgb24gQXByaWwgMjksIDE5OTMsIGJ5IGFuIFgtMzEgYWlyY3JhZnQuIE5hbWVkIGFmdGVyIFdvbGZnYW5nIEhlcmJzdCwgYSBkZXZlbG9wZXIgb2YgcG9zdC1zdGFsbCB0ZWNobm9sb2d5IGZvciBNZXNzZXJzY2htaXR0LULDtmxrb3ctQmxvaG0gKE1CQiksIHRoaXMsIHBvc3Qtc3RhbGwgbWFuZXV2ZXIgZW5hYmxlcyBhIGZpZ2h0ZXIgdG8gbWFrZSBhIHJhcGlkIDE4MMKwIHR1cm4gd2l0aGluIGEgbWluaW1hbCByYWRpdXMuIA0KDQoxOTk04oCTMTk5NTpbVVNdW0dlb1BvbGl0aWNzXSBvY2N1cGF0aW9uIG9mIEhhaXRpLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgRXVyb3BlYW4gRWNvbm9taWMgQXJlYSwgYWJicmV2aWF0ZWQgYXMgRUVBLCBjb25zaXN0cyBvZiB0aGUgTWVtYmVyIFN0YXRlcyBvZiB0aGUgRXVyb3BlYW4gVW5pb24gKEVVKSBhbmQgdGhyZWUgY291bnRyaWVzIG9mIHRoZSBFdXJvcGVhbiBGcmVlIFRyYWRlIEFzc29jaWF0aW9uIChFRlRBKSAoSWNlbGFuZCwgTGllY2h0ZW5zdGVpbiBhbmQgTm9yd2F5OyBleGNsdWRpbmcgU3dpdHplcmxhbmQpLiBUaGUgQWdyZWVtZW50IG9uIHRoZSBFRUEgZW50ZXJlZCBpbnRvIGZvcmNlIG9uIDEgSmFudWFyeSAxOTk0LiANCjE5OTQ6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEV1cm9wZWFuIEVjb25vbWljIEFyZWEgKEVFQSkgd2FzIGVzdGFibGlzaGVkIG9uIDEgSmFudWFyeSAxOTk0LiBUaGUgYWdyZWVtZW50IGxpbmtzIHRoZSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aHJlZSBFRlRBIHN0YXRlc+KAlEljZWxhbmQsIExpZWNodGVuc3RlaW4sIGFuZCBOb3J3YXnigJRpbnRvIGEgc2luZ2xlIGludGVybmFsIG1hcmtldCwgYWxsb3dpbmcgZm9yIHRoZSBmcmVlIG1vdmVtZW50IG9mIGdvb2RzLCBwZXJzb25zLCBzZXJ2aWNlcywgYW5kIGNhcGl0YWwuIA0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBOQUZUQSwgdGhlIE5vcnRoIEFtZXJpY2FuIEZyZWUgVHJhZGUgQWdyZWVtZW50LCB3YXMgYSAxOTk0IGFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzLCBDYW5hZGEsIGFuZCBNZXhpY28gdG8gZWxpbWluYXRlIHRyYWRlIGJhcnJpZXJzIGFuZCBwcm9tb3RlIGZyZWUgdHJhZGUgaW4gTm9ydGggQW1lcmljYS4gSXQgZmFjaWxpdGF0ZWQgdGhlIG1vdmVtZW50IG9mIGdvb2RzIGFuZCBzZXJ2aWNlcyBhbmQgZXN0YWJsaXNoZWQgYSBsYXJnZSB0cmFkZSBibG9jLiBJbiBKdWx5IDIwMjAsIE5BRlRBIHdhcyByZXBsYWNlZCBieSB0aGUgVW5pdGVkIFN0YXRlcy1NZXhpY28tQ2FuYWRhIEFncmVlbWVudCAoVVNNQ0EpLCB3aGljaCBtb2Rlcm5pemVkIGFuZCBlbmhhbmNlZCB0aGUgdHJlYXR5IGZvciBhIGNvbnRlbXBvcmFyeSBlY29ub215Lg0KMTk5NDpbUy5BZnJpY2FdW1NvY2lhbGlzbV0gRmlyc3QgZnJlZSBlbGVjdGlvbnMgaW4gU291dGggQWZyaWNhOyBOZWxzb24gTWFuZGVsYQ0KMTk5NDpbUmVzZWFyY2hdW3NwYWNlXSBDYXJsIFNhZ2FuIGNvbmNlZGVkIHRoYXQgdGhpcyBhcHByb2FjaCB3b3VsZCBub3Qgd29yayBiZWNhdXNlIHRoZSBhdG1vc3BoZXJlIG9mIFZlbnVzIGlzIGZhciBkZW5zZXIgKDkwIGJhcnMpIHRoYW4gd2hhdCB3YXMgdW5kZXJzdG9vZCBpbiAxOTYxIChhIGZldyBiYXJzKSwgbWVhbmluZyB0aGUgY2FyYm9uIHdvdWxkIGp1c3QgYmUgb3hpZGl6ZWQgYmFjayBpbnRvIENPMi4NCjE5OTQ6W0NvbXB1dGluZ11bUXVhbnR1bV0gUGV0ZXIgU2hvciBkaXNjb3ZlcmVkIGFuIGFsZ29yaXRobSAoU2hvcidzIGFsZ29yaXRobSkgdGhhdCBjb3VsZCBmYWN0b3IgbGFyZ2UgbnVtYmVycyBpbiBwb2x5bm9taWFsIHRpbWUgb24gYSBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCB3b3VsZCBicmVhayB0aGUgc2VjdXJpdHkgb2YgbWFueSBjcnlwdG9ncmFwaGljIHNjaGVtZXMuIA0KMTk5NDpbQ29tcHV0aW5nXVtRdWFudHVtXSBQZXRlciBTaG9yIGFuZCBEb24gQ29wcGVyc21pdGggZmlndXJlZCBvdXQgaG93IHRvIHRha2UgYSBRdWFudHVtIEZvdXJpZXIgVHJhbnNmb3JtLg0KMTk5NDpUaGUgcHJvYmxlbSB3aXRoIHRoZSBwYXBlciBwdWJsaXNoZWQgZWFybGllciB0aGlzIG1vbnRoIHdhcyBpdHMgcmVsaWFuY2Ugb24gU2Nobm9ycidzIGFsZ29yaXRobSAobm90IHRvIGJlIGNvbmZ1c2VkIHdpdGggU2hvcuKAmXMgYWxnb3JpdGhtKSwgd2hpY2ggd2FzIGRldmVsb3BlZCBpbiAxOTk0LiBTY2hub3Jy4oCZcyBhbGdvcml0aG0gaXMgYSBjbGFzc2ljYWwgY29tcHV0YXRpb24gYmFzZWQgb24gbGF0dGljZXMsIHdoaWNoIGFyZSBtYXRoZW1hdGljYWwgc3RydWN0dXJlcyB0aGF0IGhhdmUgbWFueSBhcHBsaWNhdGlvbnMgaW4gY29uc3RydWN0aXZlIGNyeXB0b2dyYXBoeSBhbmQgY3J5cHRhbmFseXNpcy4gVGhlIGF1dGhvcnMgd2hvIGRldmlzZWQgU2Nobm9ycuKAmXMgYWxnb3JpdGhtIHNhaWQgaXQgY291bGQgZW5oYW5jZSB0aGUgdXNlIG9mIHRoZSBoZXVyaXN0aWMgcXVhbnR1bSBvcHRpbWl6YXRpb24gbWV0aG9kIGNhbGxlZCBRQU9BLg0KMTk5NCAoSmFuIDEpOiBbR2VvUG9saXRpY3NdIFRoZSBOb3J0aCBBbWVyaWNhbiBGcmVlIFRyYWRlIEFncmVlbWVudCAoTkFGVEEpIHdhcyBhbiBhZ3JlZW1lbnQgc2lnbmVkIGJ5IENhbmFkYSwgTWV4aWNvLCBhbmQgdGhlIFVuaXRlZCBTdGF0ZXMgdGhhdCBjcmVhdGVkIGEgdHJpbGF0ZXJhbCB0cmFkZSBibG9jIGluIE5vcnRoIEFtZXJpY2EuIFRoZSBhZ3JlZW1lbnQgY2FtZSBpbnRvIGZvcmNlIG9uIEphbnVhcnkgMSwgMTk5NCwgYW5kIHN1cGVyc2VkZWQgdGhlIDE5ODggQ2FuYWRh4oCTVW5pdGVkIFN0YXRlcyBGcmVlIFRyYWRlIEFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzIGFuZCBDYW5hZGEuIFRoZSBOQUZUQSB0cmFkZSBibG9jIGZvcm1lZCBvbmUgb2YgdGhlIGxhcmdlc3QgdHJhZGUgYmxvY3MgaW4gdGhlIHdvcmxkIGJ5IGdyb3NzIGRvbWVzdGljIHByb2R1Y3QuDQoxOTk0OltUZWNobm9sb2d5XVtCdXNpbmVzc11bVVNdW0NvbXB1dGluZ10gVGhlIERlbGwgTGF0aXR1ZGUgc2VyaWVzIGlzIGEgbGluZSBvZiBsYXB0b3AgY29tcHV0ZXJzIG1hbnVmYWN0dXJlZCBhbmQgc29sZCBieSBBbWVyaWNhbiBjb21wYW55IERlbGwuIEl0IGlzIGEgYnVzaW5lc3Mtb3JpZW50ZWQgbGluZSwgYWltZWQgYXQgY29ycG9yYXRlIGVudGVycHJpc2VzLCBoZWFsdGhjYXJlLCBnb3Zlcm5tZW50LCBhbmQgZWR1Y2F0aW9uIG1hcmtldHM7IHVubGlrZSB0aGUgSW5zcGlyb24gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBpbmRpdmlkdWFsIGN1c3RvbWVycywgYW5kIHRoZSBWb3N0cm8gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBzbWFsbGVyIGJ1c2luZXNzZXMuIFRoZSBMYXRpdHVkZSBkaXJlY3RseSBjb21wZXRlcyB3aXRoIHRoZSBMZW5vdm8gVGhpbmtQYWQgYW5kIHRoZSBFbGl0ZUJvb2sgc2VyaWVzIGJ5IEhQLiBBZGRpdGlvbmFsbHksIHRoZSAiUnVnZ2VkIChFeHRyZW1lKSIsICJYRlIiIGFuZCAiQVRHIiBtb2RlbHMgY29tcGV0ZSBwcmltYXJpbHkgd2l0aCBQYW5hc29uaWMncyBUb3VnaGJvb2sgbGluZSBvZiAicnVnZ2VkIiBsYXB0b3BzLg0KMTk5NDogU3VzaG1pdGEgU2VuIGJlY2FtZSBNaXNzIFVuaXZlcnNlLg0KMTk5NDogVGhlIEFubmFscyBvZiBJbXByb2JhYmxlIFJlc2VhcmNoIGlzIGEgYmktbW9udGhseSBtYWdhemluZSBkZXZvdGVkIHRvIHNjaWVudGlmaWMgaHVtb3IsIGluIHRoZSBmb3JtIG9mIGEgc2F0aXJpY2FsIHRha2Ugb24gdGhlIHN0YW5kYXJkIGFjYWRlbWljIGpvdXJuYWwuDQoxOTk0OiBMaW5kb24gTGVhZGVyIG9mIExhbmRvciBBc3NvY2lhdGVzLCBvZiBTYW4gRnJhbmNpc2NvIGRlc2lnbmVkIHdvcmRtYXJrcyBmb3IgRmVkRXgncyB2YXJpb3VzIE9wLXVuaXQuIEZlZEV44oCZcyBwdWJsaWMtcmVsYXRpb25zIGZpcm0gd2FudGVkIHRvIGhpZ2hsaWdodCB0aGUgYXJyb3cgc28gaXQgd291bGQgYmUgb2J2aW91cy4gQnV0IGhlIGZvdWdodCB0aGVtIG9uIHRoYXQg4oCUIGhlIHRob3VnaHQgaXQgd291bGQgYmUgb3ZlcmtpbGwuIFRoZXJl4oCZcyBzb21ldGhpbmcgYWJvdXQgbWFraW5nIHBlb3BsZSBkaXNjb3ZlciBzb21ldGhpbmcgb24gdGhlaXIgb3duIHRoYXTigJlzIGEgbG90IG1vcmUgcG93ZXJmdWwgdGhhbiBpdGFsaWNpemluZyBpdCB0byBtYWtlIHlvdXIgcG9pbnQuDQoxOTk0OiBTY2lsYWIgMS4xLCB0aGUgZmlyc3QgcmVsZWFzZWQgdmVyc2lvbiBvZiBTY2lsYWIsIHdhcyBwdXQgb24gYW5vbnltb3VzIGZ0cCBzaXRlLg0KMTk5NDogVGhlIGNvbmNlcHQgb2YgYSBjYWbDqSB3aXRoIGZ1bGwgSW50ZXJuZXQgYWNjZXNzIChhbmQgdGhlIG5hbWUgQ3liZXJjYWbDqSkgd2FzIGludmVudGVkIGluIGVhcmx5IGJ5ICBhIEJyaXRpc2ggdGVjaG5vbG9neSBhcnRpc3QsIEl2YW4gUG9wZS4NCjE5OTQ6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIGx1cmVkIG9uZSBvZiBEYXdvb2QncyBmYXZvcml0ZSAibmFyY28tdGVycm9yaXN0IiBQaGlsbHUgS2hhbiBhbGlhcyBCYWtodGl5YXIgQWhtZWQgS2hhbiB0byBhIGhvdGVsIHJvb20gaW4gQmFuZ2tvaywgd2hlcmUgaGUgd2FzIHRvcnR1cmVkIHRvIGRlYXRoLCBoYXZpbmcgYmVlbiBiZXRyYXllZCBieSBoaXMgY2xvc2VzdCBhaWRlIGFuZCBzaWRla2ljayBNYW5nZXNoICJNYW5neWEiIFBhd2FyLiBELUNvbXBhbnkncyBTaGFyYWQsIHVzZWQgaGlzIGxpbmtzIHdpdGggTXVtYmFpLWJhc2VkIGhvdGVsaWVyIFZpbm9kIGFuZCBBLiBNaXNocmEgdG8gdHJhY2sgZG93biBSYWphbiBpbiBCYW5na29rLiBSYWphbidzIGhpdG1hbiBSb2hpdCBWYXJtYSBhbmQgaGlzIHdpZmUgc2hvdCBieSBELUNvbXBhbnkuDQoxOTk0KEp1bCAxNik6W1NwYWNlXSBGcm9tIEp1bHkgMTYgdG8gMjIsIDE5OTQsIGVub3Jtb3VzIHBpZWNlcyBvZiB0aGUgY29tZXQgU2hvZW1ha2VyLUxldnkgOSAoU0w5KSwgZGlzY292ZXJlZCBqdXN0IGEgeWVhciBwcmlvciwgY3Jhc2hlZCBpbnRvIEp1cGl0ZXIgb3ZlciBzZXZlcmFsIGRheXMsIGNyZWF0aW5nIGh1Z2UsIGRhcmsgc2NhcnMgaW4gdGhlIHBsYW5ldCdzIGF0bW9zcGhlcmUgYW5kIGxvZnRpbmcgc3VwZXJoZWF0ZWQgcGx1bWVzIGludG8gaXRzIHN0cmF0b3NwaGVyZS4NCjE5OTQgKE9jdCk6IElUUE8gYW5kIEdvSSdzIE5JQyBqb2ludGx5IHNldC11cCB0aGUgTmF0aW9uYWwgQ2VudHJlIGZvciBUcmFkZSBJbmZvcm1hdGlvbiAoTkNUSSkgYXQgUHJhZ2F0aSBNYWlkYW4uDQoxOTk0IChOb3YgMSwgMTU6MDEgSVNUKTpbU3BhY2VdW1N1bl0gVGhlIEdsb2JhbCBHZW9zcGFjZSBTY2llbmNlICdXaW5kJyBzYXRlbGxpdGUgaXMgYSBOQVNBIHNjaWVuY2Ugc3BhY2VjcmFmdCBkZXNpZ25lZCB0byBzdHVkeSByYWRpbyB3YXZlcyBhbmQgcGxhc21hIHRoYXQgb2NjdXIgaW4gdGhlIHNvbGFyIHdpbmQgYW5kIGluIHRoZSBFYXJ0aCdzIG1hZ25ldG9zcGhlcmUuIA0KMTk5NCAoRGVjIDMpOiBTb255J3MgUGxheVN0YXRpb24gKGEgdmlkZW8gZ2FtZSBjb25zb2xlKSB3YXMgaW50cm9kdWNlZCB0byB0aGUgd29ybGQgZnJvbSBNaW5hdG8sIFRva3lvIChKYXBhbikuDQoxOTk0OiBXWFlDLSBmaXJzdCBpbnRlcm5ldCByYWRpbyBzdGF0aW9uIGJyb2FkY2FzdC4NCjE5OTQ6IE1lbW9yeSBjYXJkcyB3ZXJlIGludHJvZHVjZWQgaW4gdGhlIGNvbnN1bWVyIGVsZWN0cm9uaWNzIG1hcmtldC4NCjE5OTQgKEF1Zyk6IElUUE8ncyAxc3QgRGVsaGkgQm9vayBGYWlyIGF0ICBIYWxsIDggdG8gMTIgb2YgUHJhZ2F0aSBNYWlkYW4sIE5ldyBEZWxoaS4gVGhlIHRpbWluZ3Mgb2YgZmFpciBhcmUgZnJvbSAxMC4wMCBhbSB0byA4LjAwIHBtIChlbnRyeSB0byBmYWlyIHdpbGwgY2xvc2UgYXQgNy4zMCBwbSkuDQoxOTk0IChTZXApOiBUaGUgQ09OQ0VSVCBzb2Z0d2FyZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgaW1wbGVtZW50ZWQgYXQgYWxsIG9mIHRoZSBmaXZlIFBSUycgc2l0ZXMgU2VjdW5kZXJhYmFkIGluIFNlcHQuIDE5OTQsIE5ldyBEZWxoaSBvbiBTZXB0LiAxOTk2LCBDYWxjdXR0YSBvbiAxNHRoIEp1bmUgMTk5OCwgTXVtYmFpIG9uIDExdGggSmFuIDE5OTkgYW5kIENoZW5uYWkgb24gMTJ0aCBBcHJpbCAxOTk5Lg0KMTk5NDogdGhlIDI0dGggYW5kIHRoZSBsYXN0IEdQUyBzYXRlbGxpdGUgd2FzIGxhdW5jaGVkIGluIFVTLg0KMTk5NDogVGhlIHdvcmQgVGFsaWJhbiBpcyBQYXNodG8sINi32KfZhNio2KfZhiDhua3EgWxpYsSBbiwgbWVhbmluZyAic3R1ZGVudHMiLCB0aGUgcGx1cmFsIG9mIOG5rcSBbGliLiBBZnRlciB0aGUgU292aWV0IFVuaW9uIGludGVydmVuZWQgYW5kIG9jY3VwaWVkIEFmZ2hhbmlzdGFuIGluIDE5NzksIElzbGFtaWMgbXVqYWhpZGVlbiBmaWdodGVycyBlbmdhZ2VkIGluIHdhciB3aXRoIHRob3NlIFNvdmlldCBmb3JjZXMsIHdoaWNoIGxhaWQgdGhlIGZvdW5kYXRpb24gb2YgcG9saXRpY2FsIG1vdmVtZW50IGFuZCBtaWxpdGFyeSBvcmdhbml6YXRpb24gbmFtZWQgVGFsaWJhbi4NCjE5OTQ6IEFiZHVsIEthcmVlbSBUZWxnaSBhY3F1aXJlZCB0aGUgbGljZW5zZSBmb3Igc2VsbGluZyBzdGFtcCBwYXBlciBhbmQgb3BlbmVkIGFuIG9mZmljZSBpbiBNdW1iYWkuIEFmdGVyIHRoYXQsIGhlIHN0YXJ0ZWQgcHJpbnRpbmcgc3RhbXAgcGFwZXIgaW4gTmFzaGlrLiBXaXRoIHNvbWUgYWdlbnRz4oCZIGhlbHAsIGhlIHN0YXJ0cyBzZWxsaW5nIGZha2Ugc3RhbXAgcGFwZXIgaW4gYnVsayB0byBiYW5rcywgaW5zdXJhbmNlIGNvbXBhbmllcywgc3RvY2sgYnJva2VyYWdlIGZpcm1zLCBhbmQgY29ycG9yYXRlcy4gSW4gMjAwMyB0aGUgVGVsZ2kgc2NhbSB3YXMgdW5mb2xkZWQ7IHRoZSBmaWd1cmUgaW4gdGhlIG1pbmQgb2Ygc2VjdXJpdHkgYW5kIGludGVsbGlnZW5jZSBhZ2VuY2llcyB3YXMgdXAgdG8gUnMuMjBrIENyb3JlDQoxOTk0OiBbR2VvUG9saXRpY3NdIEludGVybmF0aW9uYWwgQXNzb2NpYXRpb24gb2YgR2VuZGFybWVyaWVzIGFuZCBQb2xpY2UgRm9yY2VzIHdpdGggTWlsaXRhcnkgU3RhdHVzIChjb21tb25seSBrbm93biBhcyBGSUVQIGZvciBGcmFuY2UtSXRhbGlhLUVzcGHDsWEtUG9ydHVnYWwsIHRoZSBmaXJzdCBmb3VyIG1lbWJlcnMpIGlzIGFuIGFzc29jaWF0aW9uIG9mIG5hdGlvbmFsIGdlbmRhcm1lcmllcyBvciBtaWxpdGFyeSBwb2xpY2UgZm9yY2VzLg0KMTk5NDpbQm9va10gUGFsZSBCbHVlIERvdDogQSBWaXNpb24gb2YgdGhlIEh1bWFuIEZ1dHVyZSBpbiBTcGFjZSBpcyBhIDE5OTQgYm9vayBieSB0aGUgYXN0cm9ub21lciBDYXJsIFNhZ2FuLiBJdCBpcyB0aGUgc2VxdWVsIHRvIFNhZ2FuJ3MgMTk4MCBib29rIENvc21vcyBhbmQgd2FzIGluc3BpcmVkIGJ5IHRoZSBmYW1vdXMgMTk5MCBQYWxlIEJsdWUgRG90IHBob3RvZ3JhcGgsIGZvciB3aGljaCBTYWdhbiBwcm92aWRlcyBhIHBvaWduYW50IGRlc2NyaXB0aW9uLiBJbiB0aGUgYm9vaywgU2FnYW4gbWl4ZXMgcGhpbG9zb3BoeSBhYm91dCB0aGUgaHVtYW4gcGxhY2UgaW4gdGhlIHVuaXZlcnNlIHdpdGggYSBkZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCBrbm93bGVkZ2UgYWJvdXQgdGhlIFNvbGFyIFN5c3RlbS4gSGUgYWxzbyBkZXRhaWxzIGEgaHVtYW4gdmlzaW9uIGZvciB0aGUgZnV0dXJlLg0KMTk5NDpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTWVjaGFnb2R6aWxsYSBJSSgxOTkzKQ0KMTk5NDpbQ2luZW1hXSBUaGUgQXBwbGUoMTk4MCkNCjE5OTQ6W0NpbmVtYV0gVGhlIEF0bGFudGlzIEludGVyY2VwdG9ycygxOTgzKQ0KMTk5NDpbTW50bmdnXSBJbiAxOTk0LCBNYXJrIFdoZXR1IHN1bW1pdHRlZCBNdCBFdmVyZXN0IHdpdGggTWlrZSBSZWluYmVyZ2VyLiBCdXQgYWZ0ZXIgYSBmcmVlemluZyBuaWdodCwgV2hldHUgZmFjZWQgYSBoYXJyb3dpbmcgY2hvaWNlOiBsZWF2ZSBoaXMgZnJpZW5kIG9yIHJlbWFpbiBmb3JldmVyLiBUaGUgRmF0YWwgR2FtZSAoMTk5NykNCjE5OTQ6W1RvdXJpc21dIFRoZSBBZHZlbnR1cmUgVG91ciBPcGVyYXRvcnMgQXNzb2NpYXRpb24gb2YgSW5kaWEgKEFUT0FJKSB3YXMgZm91bmRlZCBpbiAxOTk0LiBJdCB3YXMgZXN0YWJsaXNoZWQgYnkgYSBncm91cCBvZiB0cmF2ZWwgdHJhZGUgYWR2ZW50dXJlcnMgd2hvIGFpbWVkIHRvIGNyZWF0ZSBhIHN0cm9uZyBzdXBwb3J0IG5ldHdvcmsgZm9yIEluZGlhbiBhZHZlbnR1cmUgdG91ciBvcGVyYXRvcnMuIA0KDQoxOTk1IChNYXkgMTkpOiBbUmVzZWFyY2hdW1NwYWNlXSB0d28gc2NpZW50aXN0cyBhdCBDYWwgUG9seSBzaG93ZWQgdGhhdCBiYWN0ZXJpYSBjYW4gc3Vydml2ZSB3aXRob3V0IGFueSBtZXRhYm9saXNtIGZvciBhdCBsZWFzdCAyNSBtaWxsaW9uIHllYXJzOyBwcm9iYWJseSB0aGV5IGFyZSBpbW1vcnRhbC4NCjI0IE5vdmVtYmVyIDE5OTU6IFRoZSBOZXcgWW9yayBUaW1lcyBkZXNjcmliZWQgYmFjdGVyaWEgdGhhdCBjYW4gc3Vydml2ZSByYWRpYXRpb24gbXVjaCBzdHJvbmdlciB0aGFuIGFueSB0aGF0IEVhcnRoIGhhcyBldmVyIGV4cGVyaWVuY2VkLg0KV2UgYXJlIGNhbGxpbmcgdGhlIHVuaW9uIG9mIExvdmVsb2NrJ3MgR2FpYSB3aXRoIEhveWxlIGFuZCBXaWNrcmFtYXNpbmdoZSdzIGV4cGFuZGVkIHRoZW9yeSBvZiBwYW5zcGVybWlhIENvc21pYyBBbmNlc3RyeS4gVGhpcyBhY2NvdW50IG9mIGV2b2x1dGlvbiBhbmQgdGhlIG9yaWdpbiBvZiBsaWZlIG9uIEVhcnRoIGlzIHByb2ZvdW5kbHkgZGlmZmVyZW50IGZyb20gdGhlIHByZXZhaWxpbmcgc2NpZW50aWZpYyBwYXJhZGlnbS4gSXQgY2hhbGxlbmdlcyBub3QgbWVyZWx5IHRoZSBhbnN3ZXJzIGJ1dCB0aGUgcXVlc3Rpb25zIHRoYXQgYXJlIHBvcHVsYXIgdG9kYXkuIENvc21pYyBBbmNlc3RyeSByZXF1aXJlcyB0aGF0IGxpZmUgY2FuIG9ubHkgZGVzY2VuZCBmcm9tIGFuY2VzdG9ycyBhdCBsZWFzdCBhcyBoaWdobHkgZXZvbHZlZCBhcyBpdHNlbGYsIGFuZCB0aGF0IHRoZXJlIGNhbiBiZSBubyBvcmlnaW4gb2YgbGlmZSBmcm9tIG5vbmJpb2xvZ2ljYWwgbWF0dGVyLiBXaXRob3V0IHN1cGVybmF0dXJhbCBpbnRlcnZlbnRpb24sIHRoZXJlZm9yZSwgd2UgY29uY2x1ZGUgdGhhdCBsaWZlIG11c3QgaGF2ZSBhbHdheXMgZXhpc3RlZC4gQWx0aG91Z2ggdGhlc2UgY29uY2x1c2lvbnMgY3V0IGFjcm9zcyB0aGUgYm91bmRhcmllcyBiZXR3ZWVuIHNjaWVuY2UsIHBoaWxvc29waHksIGFuZCByZWxpZ2lvbiwgd2UgYmVsaWV2ZSB0aGV5IGFyZSBncm91bmRlZCBpbiBnb29kIGV2aWRlbmNlLiBBbmQgbmV3IGRhdGEgdGhhdCBzdXBwb3J0IG1hbnkgYXNwZWN0cyBvZiBDb3NtaWMgQW5jZXN0cnkgYXJlIGNvbWluZyBpbiByYXBpZGx5LiBJbiB0aGUgZm9sbG93aW5nIHBhZ2VzIHdlIHdpbGwgZXhwbGFpbiBob3cgdGhlc2UgYW5kIG90aGVyIHJlY2VudCBkZXZlbG9wbWVudHMgc3VwcG9ydCBDb3NtaWMgQW5jZXN0cnk6DQoNCjE5OTU6IEFOU0VUIHNvbGQgdG8gQU9MLCB3aG8gIG5vdyBydW5zIGl0Lg0KMTk5NSAoTWFyKTogRGVwdC4gb2YgSW5kaWFuIE1lZGljaW5lIGFuZCBIb21lb3BhdGh5IGZvdW5kZWQuDQoxOTk1IChNYXIgMjQpOltSZXNlYXJjaF0gUmVtb3RlbHkgT3BlcmF0ZWQgVmVoaWNsZSBLQUlLTyByZWFjaGVkIHRoZSBkZWVwZXN0IGFyZWEgb2YgdGhlIE1hcmlhbmEgVHJlbmNoIGFuZCBtYWRlIHRoZSBkZWVwZXN0IGRpdmluZyByZWNvcmQgb2YgMTAsOTExIG0gKDM1LDc5NyBmdDsgNSw5NjYgZmF0aG9tcykgDQoxOTk1OiBwaG9uZSBjYWxsIGNvc3RpbmcgUnMuIDE2IHBlciBtaW4uDQoxOTk1OltHYW1pbmddIFZpcnR1YSBDb3AgMiBpcyBhIGxpZ2h0IGd1biBzaG9vdGVyIGFyY2FkZSBnYW1lLCByZWxlYXNlZCBpbiAxOTk1IGFuZCBkZXZlbG9wZWQgaW50ZXJuYWxseSBhdCBTZWdhIGJ5IHRoZWlyIEFNMiBzdHVkaW8gKFl1IFN1enVraSkuIEl0IHdhcyBwb3J0ZWQgdG8gdGhlIFNlZ2EgU2F0dXJuIGluIDE5OTYuIEl0IHdhcyByZWxlYXNlZCBvbiBQQyBpbiAxOTk3IGFuZCBTZWdhIERyZWFtY2FzdCBpbiAyMDAwLiBJdCB3YXMgbGF0ZXIgYnVuZGxlZCB3aXRoIFZpcnR1YSBDb3AgaW4gVmlydHVhIENvcDogRWxpdGUgRWRpdGlvbiBmb3IgUGxheVN0YXRpb24gMiBpbiAyMDAyLg0KMTk5NSAoQXByIDEpOltSZXNlYXJjaF0gUGlsbGFycyBvZiBDcmVhdGlvbiBpcyBhIHBob3RvZ3JhcGggdGFrZW4gYnkgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgb2YgZWxlcGhhbnQgdHJ1bmtzIG9mIGludGVyc3RlbGxhciBnYXMgYW5kIGR1c3QgaW4gdGhlIEVhZ2xlIE5lYnVsYSwgaW4gdGhlIFNlcnBlbnMgY29uc3RlbGxhdGlvbiwgc29tZSA2LDUwMOKAkzcsMDAwIGxpZ2h0LXllYXJzICgyLDAwMOKAkzIsMTAwIHBjOyA2MeKAkzY2IEVtKSBmcm9tIEVhcnRoLg0KMTk5NSAoQXByIDEpOiBJQUFJIGFuZCBOQUEgd2VyZSBtZXJnZWQgYnkgYW4gQWN0IG9mIFBhcmxpYW1lbnQgYW5kIHdhcyBuYW1lZCBhcyBBaXJwb3J0cyBBdXRob3JpdHkgb2YgSW5kaWEgKEFBSSkuIFRoaXMgbmV3IG9yZ2FuaXNhdGlvbiB3YXMgdG8gYmUgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nLCB1cGdyYWRpbmcsIG1haW50YWluaW5nIGFuZCBtYW5hZ2luZyBjaXZpbCBhdmlhdGlvbiBpbmZyYXN0cnVjdHVyZSBib3RoIG9uIHRoZSBncm91bmQgYW5kIGFpciBzcGFjZSBpbiB0aGUgY291bnRyeS4NCjE5OTUgKEFwciAyMSk6W0NyaW1lXVtJbmRpYV0gQmFibG9vIHBpY2tlZCB1cCBieSB0aGUgU2luZ2Fwb3JlIGFpcnBvcnQgcG9saWNlIGZvciB0cmF2ZWxsaW5nIG9uIGZha2UgcGFzc3BvcnQuIEhlIHdhcyBzdGF5aW5nIGluIER1YmFpLg0KMTk5NSAoU2VwIDMwKTpbQ3JpbWVdW0luZGlhXSBTaW5nYXBvcmUgZXh0cmFkaXRlcyBJbmRpYSdzICdtb3N0LXdhbnRlZCBpbnRlci1zdGF0ZSBjcmltaW5hbCcgQmFibG9vIFNyaXZhc3RhdmEgKDMzWU8pDQoxOTk1IChOb3YgMzApOiBPcGVyYXRpb24gRGVzZXJ0IFN0b3JtIChGaXJzdCBJcmFxIFdhcilvZmZpY2lhbGx5IGVuZGVkLg0KMTk5NSAoTWF5IDMxKTpbQm9va11bTWlsaXRhcnldIEFkbWlyYWwgV2lsbGlhbSBILiBNY1JhdmVuJ3MgU3BlYyBPcHM6IENhc2UgU3R1ZGllcyBpbiBTcGVjaWFsIE9wZXJhdGlvbnMgV2FyZmFyZTogVGhlb3J5IGFuZCBQcmFjdGljZTsgU2VhIFN0b3JpZXM6IE15IExpZmUgaW4gU3BlY2lhbCBPcGVyYXRpb25zICgyMDE5LCBNYXkgMSk7IFRoZSBIZXJvIENvZGU6IExlc3NvbnMgTGVhcm5lZCBmcm9tIExpdmVzIFdlbGwgTGl2ZWQgKDIwMjEsIEFwciAxMykNCjE5OTU6IERyLiBIYW5kZSBhZnRlciBncmFkdWF0aW5nIGZyb20gSUlUIEtoYXJhZ3B1ciBjb25jZXB0dWFsaXplZCBTRUxDTyBJbmRpYSBkdXJpbmcgaGlzIFBoRCBvbiBzdXN0YWluYWJsZSBlbmVyZ3kgYXQgdGhlIFVuaXZlcnNpdHkgb2YgTWFzc2FjaHVzZXR0cy4gRHVyaW5nIGEgZmllbGQgdmlzaXQgdG8gdGhlIERvbWluaWNhbiBSZXB1YmxpYywgaGUgd2FzIHN1cnByaXNlZCB0byBzZWUgdGhlIHBvb3IgdXNpbmcgc29sYXIgbGlnaHRzLg0KMTk5NTogVGhlIEdvdmVybm1lbnQgb2YgSW5kaWEgYW5kIHRoZSBHb3Zlcm5tZW50IG9mIERlbGhpIGpvaW50bHkgc2V0IHVwIGEgY29tcGFueSBjYWxsZWQgdGhlIERlbGhpIE1ldHJvIFJhaWwgQ29ycG9yYXRpb24gKERNUkMpIG9uIDMgTWF5IDE5OTUsIHdpdGggRHIuIEUuIFNyZWVkaGFyYW4gYXMgdGhlIG1hbmFnaW5nIGRpcmVjdG9yLg0KMTk5NTogSW50J2wgR2FuZGhpIFBlYWNlIFByaXplIGxhdW5jaGVkLg0KMTk5NTogU2FjaGluIFIuIFRlbmR1a2FyIGFuZCBBbmphbGkgVGVuZHVsa2FyIHdlZGRlZCB0b2dldGhlci4NCjE5OTU6IC5tcDMgaW52ZW50ZWQuDQoxOTk1OltHYW1pbmddIFdoaWxlIEZJRkEgOTUgZGlkIG5vdCBhZGQgbXVjaCBvdGhlciB0aGFuIHRoZSBhYmlsaXR5IHRvIHBsYXkgd2l0aCBjbHViIHRlYW1zLCBGSUZBIDk2IHB1c2hlZCB0aGUgYm91bmRhcmllcy4gRm9yIHRoZSBmaXJzdCB0aW1lIHdpdGggcmVhbCBwbGF5ZXIgbmFtZXMgYnkgb2J0YWluaW5nIHRoZSBGSUZQcm8gbGljZW5zZSwgdGhlIFBsYXlTdGF0aW9uLCBQQywgMzJYIGFuZCBTZWdhIFNhdHVybiB2ZXJzaW9ucyB1c2VkIEVBJ3MgIlZpcnR1YWwgU3RhZGl1bSIgZW5naW5lLCB3aXRoIDJEIHNwcml0ZSBwbGF5ZXJzIG1vdmluZyBhcm91bmQgYSByZWFsLXRpbWUgM0Qgc3RhZGl1bS4NCjE5OTUgKEp1bCAxOCk6W0Jvb2tdIEJhcmFjayBPYmFtYSdzIERyZWFtcyBmcm9tIE15IEZhdGhlcjogQSBTdG9yeSBvZiBSYWNlIGFuZCBJbmhlcml0YW5jZTsgRHJlYW1zIGZyb20gTXkgRmF0aGVyOiBBIFN0b3J5IG9mIFJhY2UgYW5kIEluaGVyaXRhbmNlICgyMDA2LCBPY3QgMTcpOyBPZiBUaGVlIEkgU2luZzogQSBMZXR0ZXIgdG8gTXkgRGF1Z2h0ZXJzICgyMDEwLCBOb3YgMTYpOyBBIFByb21pc2VkIExhbmQgKDIwMjAsIE5vdiAxNykNCjE5OTUoSmFuIDEpOltFbnZdIFRoZSBBZ3JlZW1lbnQgb24gQWdyaWN1bHR1cmUgKEFvQSkgaXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgb2YgdGhlIFdvcmxkIFRyYWRlIE9yZ2FuaXphdGlvbi4gSXQgd2FzIG5lZ290aWF0ZWQgZHVyaW5nIHRoZSBVcnVndWF5IFJvdW5kIG9mIHRoZSBHZW5lcmFsIEFncmVlbWVudCBvbiBUYXJpZmZzIGFuZCBUcmFkZSwgYW5kIGVudGVyZWQgaW50byBmb3JjZSB3aXRoIHRoZSBlc3RhYmxpc2htZW50IG9mIHRoZSBXVE8gb24gSmFudWFyeSAxLCAxOTk1LiBCbHVlLCBSZWQsIEFtYmVyIGFuZCBHcmVlbiBCb3ggb2Ygc3Vic2lkaWVzLg0KMTk5NTpbQ2luZW1hXSBOZWxzb24gTWFuZGVsYSwgaW4gaGlzIGZpcnN0IHRlcm0gYXMgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYSwgaW5pdGlhdGVzIGEgdW5pcXVlIHZlbnR1cmUgdG8gdW5pdGUgdGhlIEFwYXJ0aGVpZC10b3JuIGxhbmQ6IGVubGlzdCB0aGUgbmF0aW9uYWwgcnVnYnkgdGVhbSBvbiBhIG1pc3Npb24gdG8gd2luIHRoZSAxOTk1IFJ1Z2J5IFdvcmxkIEN1cC4gLSAgSW52aWN0dXMgKDIwMDkpDQoxOTk1OltDaW5lbWFdIEEgQ2xvY2t3b3JrIE9yYW5nZSgxOTcxKQ0KMTk5NTpbQ2luZW1hXSBEZWFkIEVuZCBEcml2ZS1JbigxOTg2KQ0KMTk5NTpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gU3BhY2Vnb2R6aWxsYSgxOTk0KQ0KMTk5NTpbQ2luZW1hXSBIZWFydGJlZXBzKDE5ODEpDQoxOTk1OltDaW5lbWFdIFRoZSBNdW1teSdzIEN1cnNlKDE5NDQpDQoxOTk1IChEZWMpOltTcGFjZV0gU29sYXIgYW5kIEhlbGlvc3BoZXJpYyBPYnNlcnZhdG9yeSAoU29ITykgd2FzIGxhdW5jaGVkIGluIERlY2VtYmVyIDE5OTUgYXMgYSBqb2ludCBtaXNzaW9uIGJldHdlZW4gdGhlIEV1cm9wZWFuIFNwYWNlIEFnZW5jeSAoRVNBKSBhbmQgTkFTQSwgU29ITyB3YXMgZGVzaWduZWQgdG8gb3JiaXQgdGhlIFN1biB0byBsZWFybiBhYm91dCB0aGUgc3RydWN0dXJlIG9mIHRoZSBzdGFy4oCZcyBpbnRlcmlvciBhbmQgaXRzIG91dGVyIGF0bW9zcGhlcmUsIGFzIHdlbGwgYXMgdG8gaW52ZXN0aWdhdGUgdGhlIGJlaGF2aW9yIG9mIHNvbGFyIHdpbmRzLiBJdCB3YXMgZXhwZWN0ZWQgdG8gY29tcGxldGUgaXRzIG1pc3Npb24gaW4gMTk5OC4gSW5zdGVhZCwgaXQgaXMgc3RpbGwgYWN0aXZlIHRvZGF5LCBhbmQgaXMgbm93IGxpa2VseSB0byBrZWVwIHdvcmtpbmcgdW50aWwgMjAyNSwgd2hlbiBpdCB3aWxsIGhhdmUgYmVlbiBpbiBzcGFjZSBmb3IgMzAgeWVhcnMuDQoxOTk1OltQaHlzaWNzXVtTcGFjZV1bUmVzZWFyY2hdIFByaW9yIHRvIDE5OTUsIHRoZW9yaXN0cyBiZWxpZXZlZCB0aGF0IHRoZXJlIHdlcmUgZml2ZSBjb25zaXN0ZW50IHZlcnNpb25zIG9mIHN1cGVyc3RyaW5nIHRoZW9yeSAodHlwZSBJLCB0eXBlIElJQSwgdHlwZSBJSUIsIGFuZCB0d28gdmVyc2lvbnMgb2YgaGV0ZXJvdGljIHN0cmluZyB0aGVvcnkpLiBUaGlzIHVuZGVyc3RhbmRpbmcgY2hhbmdlZCBpbiAxOTk1IHdoZW4gRWR3YXJkIFdpdHRlbiBzdWdnZXN0ZWQgdGhhdCB0aGUgZml2ZSB0aGVvcmllcyB3ZXJlIGp1c3Qgc3BlY2lhbCBsaW1pdGluZyBjYXNlcyBvZiBhbiBlbGV2ZW4tZGltZW5zaW9uYWwgdGhlb3J5IGNhbGxlZCBNLXRoZW9yeS4gV2l0dGVuJ3MgY29uamVjdHVyZSB3YXMgYmFzZWQgb24gdGhlIHdvcmsgb2YgYSBudW1iZXIgb2Ygb3RoZXIgcGh5c2ljaXN0cywgaW5jbHVkaW5nIEFzaG9rZSBTZW4sIENocmlzIEh1bGwsIFBhdWwgVG93bnNlbmQsIGFuZCBNaWNoYWVsIER1ZmYuIEhpcyBhbm5vdW5jZW1lbnQgbGVkIHRvIGEgZmx1cnJ5IG9mIHJlc2VhcmNoIGFjdGl2aXR5IG5vdyBrbm93biBhcyB0aGUgc2Vjb25kIHN1cGVyc3RyaW5nIHJldm9sdXRpb24uDQoxOTk1OltDcmltZV1bSW5kaWFdIE11cmRlciBvZiBNdW1iYWktYmFzZWQgYnVpbGRlciBQcmFkZWVwIEphaW4gYnkgQWJ1IFNhbGVtDQoxOTk1OiBGb3J0dW5lIEhvdGVscyBpbiBJbmRpYSBpcyBvd25lZCBieSBpdHMgcGFyZW50IGNvbXBhbnksIElUQyBMdGQuLCB3aGljaCBlc3RhYmxpc2hlZCBGb3J0dW5lIEhvdGVscyBpbiAxOTk1IGFzIGEgc3Vic2lkaWFyeSB0byBwcm92aWRlIG1pZC1tYXJrZXQgdG8gdXBzY2FsZSBob3NwaXRhbGl0eSBzZXJ2aWNlcy4gSG93ZXZlciwgYSBzZXBhcmF0ZSBncm91cCwgRm9ydHVuZSBHcm91cCBvZiBIb3RlbHMsIGJhc2VkIGluIHRoZSBVbml0ZWQgQXJhYiBFbWlyYXRlcyAoVUFFKSBhbmQgZm91bmRlZCBieSBQcmF2ZWVuIFNoZXR0eSwgYWxzbyBvcGVyYXRlcyBhIGRpZmZlcmVudCBzZXQgb2YgaG90ZWxzIGluIHRoYXQgcmVnaW9uLg0KMTk5NTpbVUtdIENhbWlsbGEgaXMgUXVlZW4gb2YgdGhlIFVuaXRlZCBLaW5nZG9tIGFuZCAxNCBvdGhlciBDb21tb253ZWFsdGggcmVhbG1zIGFzIHRoZSB3aWZlIG9mIEtpbmcgQ2hhcmxlcyBJSUkuIENhbWlsbGEgd2FzIHJhaXNlZCBpbiBFYXN0IFN1c3NleCBhbmQgU291dGggS2Vuc2luZ3RvbiBpbiBFbmdsYW5kIGFuZCBlZHVjYXRlZCBpbiBFbmdsYW5kLCBTd2l0emVybGFuZCBhbmQgRnJhbmNlLiBJbiAxOTczLCBzaGUgbWFycmllZCBCcml0aXNoIEFybXkgb2ZmaWNlciBBbmRyZXcgUGFya2VyIEJvd2xlczsgdGhleSBkaXZvcmNlZCBpbiAxOTk1Lg0KDQoxOTk2OltHZW9Qb2xpdGljc11bQnVzaW5lc3NdIE1vbmdvbGlhIHdhcyBncmFudGVkIG9ic2VydmVyIHN0YXR1cyB0byBUUkFDRUNBLg0KMTk5NiAoNyBBdWd1c3QpOltSZXNlYXJjaF1bU3BhY2VdIE5BU0EgYW5ub3VuY2VkIGZvc3NpbGl6ZWQgZXZpZGVuY2Ugb2YgYW5jaWVudCBsaWZlIGluIG1ldGVvcml0ZSBBTEggODQwMDEgZnJvbSBNYXJzLg0KMTk5NiAoT2N0IDI3KTpbUmVzZWFyY2hdW1NwYWNlXSBnZW5ldGljaXN0cyBzaG93ZWQgZXZpZGVuY2UgdGhhdCBtYW55IGdlbmVzIGFyZSBtdWNoIG9sZGVyIHRoYW4gdGhlIGZvc3NpbCByZWNvcmQgd291bGQgaW5kaWNhdGUuIFN1YnNlcXVlbnQgc3R1ZGllcyBoYXZlIHN0cmVuZ3RoZW5lZCB0aGlzIGZpbmRpbmcuDQoxOTk2OltCdXNpbmVzc11bR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2hlbiB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4gc2lnbmVkIHRoZSBUcmVhdHkgb24gRGVlcGVuaW5nIE1pbGl0YXJ5IFRydXN0IGluIEJvcmRlciBSZWdpb25zIGluIFNoYW5naGFpLiBPbiAyNCBBcHJpbCAxOTk3IHRoZSBzYW1lIGNvdW50cmllcyBzaWduZWQgdGhlIFRyZWF0eSBvbiBSZWR1Y3Rpb24gb2YgTWlsaXRhcnkgRm9yY2VzIGluIEJvcmRlciBSZWdpb25zIGluIGEgbWVldGluZyBpbiBNb3Njb3csIFJ1c3NpYS4gT24gMjAgTWF5IDE5OTcgUnVzc2lhbiBQcmVzaWRlbnQgQm9yaXMgWWVsdHNpbiBhbmQgQ2hpbmVzZSBQcmVzaWRlbnQgSmlhbmcgWmVtaW4gc2lnbmVkIGEgZGVjbGFyYXRpb24gb24gYSAibXVsdGlwb2xhciB3b3JsZCIuDQoxOTk2OiAxOTk2IE1vdW50IEV2ZXJlc3QgRGlzYXN0ZXIsIGluIHdoaWNoIGVpZ2h0IHBlb3BsZSBkaWVkIHdoaWxlIG9uIGFuIGV4cGVkaXRpb24gdG8gc2NhbGUgdGhlIGluZmFtb3VzIHN1bW1pdC4gT25lIG9mIHRoZSBjbGltYmVycyB3aG8gbG9zdCBoaXMgbGlmZSB3YXMgQW5keSBIYXJyaXMsIHBsYXllZCBpbiBFdmVyZXN0IGJ5IE1hcnRpbiBIZW5kZXJzb24uIEhhcnJpcyB3YXMgb25lIG9mIHRoZSBndWlkZXMgZm9yIHRoZSBBZHZlbnR1cmUgQ29uc3VsdGFudHMsIGFsb25nIHdpdGggUm9iIEhhbGwgYW5kIE1pa2UgR3Jvb20uIEluIHRoZSBmaWxtLCBoZSBhcHBlYXJzIHRvIGRpZSB3aGlsZSB3aXRoIEhhbGwsIGZhbGxpbmcgb2ZmIGEgY2xpZmYgYWZ0ZXIgYSBoYWxsdWNpbmF0aW9uLiBCdXQgUm9iIEhhbGwgbmV2ZXIgcmVwb3J0ZWQgdGhpcywgYW5kIHNpbmNlIGhlIGRpZWQgc2hvcnRseSB0aGVyZWFmdGVyLCB0aGVyZSBpcyBubyB3YXkgdG8gY29uZmlybSB0aGUgY2lyY3Vtc3RhbmNlcyBzdXJyb3VuZGluZyBIYXJyaXMnIGRlYXRoLg0KMTk5NjpbQ29tcHV0aW5nXVtRdWFudHVtXSAgTG92IEdyb3ZlciBkZXZpc2VkIGFuIGFsZ29yaXRobSAoR3JvdmVyJ3MgYWxnb3JpdGhtKSB0aGF0IGNvdWxkIHNlYXJjaCBhbiB1bnNvcnRlZCBkYXRhYmFzZSBpbiBzcXVhcmUgcm9vdCB0aW1lIG9uIGEgcXVhbnR1bSBjb21wdXRlciwgd2hpY2ggd291bGQgb3V0cGVyZm9ybSBhbnkgY2xhc3NpY2FsIGFsZ29yaXRobS4NCjE5OTY6W1VTXSBCYXJhY2sgT2JhbWEgd2FzIGVsZWN0ZWQgdG8gdGhlIElsbGlub2lzIFNlbmF0ZSwgc3VjY2VlZGluZyBEZW1vY3JhdGljIFN0YXRlIFNlbmF0b3IgQWxpY2UgUGFsbWVyIGZyb20gSWxsaW5vaXMncyAxM3RoIERpc3RyaWN0LCB3aGljaCwgYXQgdGhhdCB0aW1lLCBzcGFubmVkIENoaWNhZ28gU291dGggU2lkZSBuZWlnaGJvcmhvb2RzIGZyb20gSHlkZSBQYXJr4oCTS2Vud29vZCBzb3V0aCB0byBTb3V0aCBTaG9yZSBhbmQgd2VzdCB0byBDaGljYWdvIExhd24uDQoxOTk2OltVS10gQ2hhcmxlcyBJSUkgYW5kIERpYW5hIGdldHMgZGl2b3JjZWQuDQoxOTk2IChKYW4gMjUpOltCb29rXSBQZXRlciBMeW5jaCAmIEpvaG4gUm90aGNoaWxkJ3MgTGVhcm4gdG8gRWFybjogQSBCZWdpbm5lcidzIEd1aWRlIHRvIHRoZSBCYXNpY3Mgb2YgSW52ZXN0aW5nIGFuZCBCdXNpbmVzcy4NCjE5OTYgKEphbik6W0NyaW1lXVtJbmRpYV0gQW5lZXMgSWJyYWhpbSBhcnJlc3RlZCBpbiBCYWhyYWluLCBzaGlmdGVkIHRvIER1YmFpIGFsbGVnZWRseSBvbiB0aGUgaW50ZXJ2ZW50aW9uIG9mIHNvbWUgb2YgRHViYWkncyBydWxpbmcgbm90YWJsZXMsIGFuZCB3YXMgdGhlbiBhbGxvd2VkIHRvIHNsaXAgYXdheSB0byBLYXJhY2hpLCBQYWtpc3Rhbi4NCjE5OTY6IE5hdGlvbmFsIEFlcm9zcGFjZSBMYWJvcmF0b3JpZXMsIEluZGlhIGluZGlnZW5vdXNseSBidWlsdCBGTE9TT0xWRVIsIEluZGlhJ3MgZmlyc3Qgc3VwZXJjb21wdXRlci4gSXQgd2FzIHJlcGxpY2F0ZWQgYW5kIGluc3RhbGxlZCBhdCBJQ0FEIE1vc2NvdyBpbiAxOTkxIHVuZGVyIFJ1c3NpYW4gY29sbGFib3JhdGlvbi4NCjE5OTY6IEluZGlhL1Bha2lzdGFuL1NyaSBMYW5rYSAxOTk2Lg0KMTk5NjpbQ29tcHV0aW5nXVt3d3ddIE1hcmlvIDY0IGdhbWUgcmFuIDEwMCBtaWxsaW9uIGNhbGN1bGF0aW9ucyBwZXIgc2Vjb25kLCA1NDAgbWlsbGlvbiAoSGFsZi1MaWZlKSBpbiAxOTk4LCBNaW5lY3JhZnQgKDIwMTEpIHJ1bm5pbmcgMTAwIGJpbGxpb24gY2FsY3VsYXRpb25zLCBDeWJlcnB1bmsgMjA3NyAobW9zdCByZWFsaXN0aWMgdmlkZW8gZ2FtZSAyMDI0KSwgeW91IG5lZWQgYSBncmFwaGljcyBjYXJkIHRoYXQgY2FuIHBlcmZvcm0gYXJvdW5kIDM2IHRyaWxsaW9uIGNhbGMgcGVyIHNlY29uZC4NCjE5OTY6IFByb2YgTWFsY29sbSBIZWF0aC4gUHJvZmVzc29yIG9mIEdyZWVrIExhbmd1YWdlIGFuZCBMaXRlcmF0dXJlIEBsZWVkcy5hYy51aywgdHJhbnNsYXRlZCBBcmlzdG90bGUncyBQb2V0aWNzLg0KMTk5NjogVGhlIDU2SyBtb2RlbSB3YXMgaW52ZW50ZWQgYnkgRHIuIEJyZW50IFRvd25zaGVuZA0KMTk5NiAoRmViIDEzKTogTmVwYWxlc2UgQ2l2aWwgV2FyIHN0YXJ0ZWQuIFRoZSBNYW9pc3QgUmViZWxsaW9uIChsYWJlbGxlZCB0aGUgUGVvcGxlJ3MgV2FyIGJ5IHRoZW4gQ1BOKE1hb2lzdCkpIHdhcyBhbiBhcm1lZCBjb25mbGljdCBhZ2FpbnN0IEdvdmVybm1lbnQgb2YgTmVwYWwgKHRoZW4gSE1HIG9mIE5lcGFsKSBmb3VnaHQgZnJvbSAxOTk2IHRvIDIwMDYuIFRoZSByZWJlbGxpb24gd2FzIGxhdW5jaGVkIGJ5IHRoZSBDb21tdW5pc3QgUGFydHkgb2YgTmVwYWwgKE1hb2lzdCkgb24gMTMgRmVicnVhcnkgMTk5NiB3aXRoIHRoZSBtYWluIGFpbSBvZiBvdmVydGhyb3dpbmcgdGhlIE5lcGFsZXNlIG1vbmFyY2h5IGFuZCBlc3RhYmxpc2hpbmcgYSAnUGVvcGxlJ3MgUmVwdWJsaWMnLiBJdCBlbmRlZCB3aXRoIHRoZSBDb21wcmVoZW5zaXZlIFBlYWNlIEFjY29yZCBzaWduZWQgb24gMjEgTm92ZW1iZXIgMjAwNi4NCjE5OTYgKE1hciAxKTogW0dlb1BvbGl0aWNzXSBUaGUgQXNpYeKAk0V1cm9wZSBNZWV0aW5nIChBU0VNKSBpcyBhbiBBc2lhbuKAk0V1cm9wZWFuIHBvbGl0aWNhbCBkaWFsb2d1ZSBmb3J1bSB0byBlbmhhbmNlIHJlbGF0aW9ucyBhbmQgdmFyaW91cyBmb3JtcyBvZiBjb29wZXJhdGlvbiBiZXR3ZWVuIGl0cyBwYXJ0bmVycy4gSXQgd2FzIG9mZmljaWFsbHkgZXN0YWJsaXNoZWQgYXQgdGhlIDFzdCBBU0VNIFN1bW1pdCAoQVNFTTEpIGluIEJhbmdrb2ssIFRoYWlsYW5kLCBieSB0aGUgdGhlbiAxNSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aGUgRXVyb3BlYW4gQ29tbWlzc2lvbiwgdGhlIHRoZW4gNyBNZW1iZXIgU3RhdGVzIG9mIHRoZSBBc3NvY2lhdGlvbiBvZiBTb3V0aGVhc3QgQXNpYW4gTmF0aW9ucyAoQVNFQU4pLCBhbmQgdGhlIGluZGl2aWR1YWwgY291bnRyaWVzIG9mIENoaW5hLCBKYXBhbiwgYW5kIFNvdXRoIEtvcmVhLiBBIHNlcmllcyBvZiBlbmxhcmdlbWVudHMgc2F3IGFkZGl0aW9uYWwgRVUgTWVtYmVyIFN0YXRlcyBqb2luIGFzIHdlbGwgYXMgSW5kaWEsIE1vbmdvbGlhLCBQYWtpc3RhbiBhbmQgdGhlIEFTRUFOIFNlY3JldGFyaWF0IGluIDIwMDgsIEF1c3RyYWxpYSwgTmV3IFplYWxhbmQgYW5kIFJ1c3NpYSBpbiAyMDEwLCBCYW5nbGFkZXNoLCBOb3J3YXksIGFuZCBTd2l0emVybGFuZCBpbiAyMDEyLCBhcyB3ZWxsIGFzIENyb2F0aWEsIGFuZCBLYXpha2hzdGFuIGluIDIwMTQuDQoxOTk2IChBcHIgMjYpOiBbR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2l0aCB0aGUgc2lnbmluZyBvZiB0aGUgVHJlYXR5IG9uIERlZXBlbmluZyBNaWxpdGFyeSBUcnVzdCBpbiBCb3JkZXIgUmVnaW9ucyBpbiBTaGFuZ2hhaSBieSB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4uIExhdGVyIG9uIEp1biAxNSwgMjAwMSBpdCBnb3QgcmVuYW1lZCBhcyBTaGFuZ2hhaSBDb29wZXJhdGlvbiBPcmdhbmlzYXRpb24gKFNDTykgb3IgU2hhbmdoYWkgUGFjdCANCjE5OTYgKE1heSAxNik6IEF0YWwgQmloYXJpIFZhanBheWVlIGJlY29tZXMgUE0gb2YgSW5kaWEgZm9yIHRoZSB2ZXJ5IGZpcnN0IHRpbWUgZm9yIDE2IGRheXMuDQoxOTk2IChKdW4gMSk6IEF0YWwgQmloYXJpIFZhanBheWVlIHJlc2lnbnMuIEhEIERldmUgR293ZGEgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NiAoQXVnIDE0KTpbcmVzZWFyY2hdW2V4dHJlbWVdIEthcmVuIEVsaXphYmV0aCBXZXR0ZXJoYWhuIChPY3RvYmVyIDE2LCAxOTQ4IOKAkyBKdW5lIDgsIDE5OTcpLCBhbHNvIGtub3duIGFzIEthcmVuIFdldHRlcmhhaG4gSmVubmV0dGUsIHdhcyBhbiBBbWVyaWNhbiBwcm9mZXNzb3Igb2YgY2hlbWlzdHJ5IGF0IERhcnRtb3V0aCBDb2xsZWdlLCBOZXcgSGFtcHNoaXJlLCB3aG8gc3BlY2lhbGl6ZWQgaW4gdG94aWMgbWV0YWwgZXhwb3N1cmUuIFNoZSBkaWVkIG9mIG1lcmN1cnkgcG9pc29uaW5nIGF0IHRoZSBhZ2Ugb2YgNDggZHVlIHRvIGFjY2lkZW50YWwgZXhwb3N1cmUgdG8gdGhlIGV4dHJlbWVseSB0b3hpYyBvcmdhbmljIG1lcmN1cnkgY29tcG91bmQgZGltZXRoeWxtZXJjdXJ5IChIZyhDSDMpMikuIFByb3RlY3RpdmUgZ2xvdmVzIGluIHVzZSBhdCB0aGUgdGltZSBvZiB0aGUgaW5jaWRlbnQgcHJvdmlkZWQgaW5zdWZmaWNpZW50IHByb3RlY3Rpb24sIGFuZCBleHBvc3VyZSB0byBvbmx5IGEgc2luZ2xlIGRyb3Agb3IgdHdvIG9mIHRoZSBkaW1ldGh5bG1lcmN1cnkgYWJzb3JiZWQgdGhyb3VnaCB0aGUgZ2xvdmVzIHByb3ZlZCB0byBiZSBmYXRhbCBhZnRlciBsZXNzIHRoYW4gYSB5ZWFyLiBUZXN0cyBsYXRlciByZXZlYWxlZCB0aGF0IGRpbWV0aHlsbWVyY3VyeSBjYW4sIGluIGZhY3QsIHJhcGlkbHkgcGVybWVhdGUgc2V2ZXJhbCBraW5kcyBvZiBsYXRleCBnbG92ZXMgYW5kIGVudGVyIHRoZSBza2luIHdpdGhpbiBhYm91dCAxNSBzZWNvbmRzLiBIZXIgZXhwb3N1cmUgd2FzIGxhdGVyIGNvbmZpcm1lZCBieSBoYWlyIGFuYWx5c2lzLCB3aGljaCBzaG93ZWQgYSBkcmFtYXRpYyBqdW1wIGluIG1lcmN1cnkgbGV2ZWxzIDE3IGRheXMgYWZ0ZXIgdGhlIGluaXRpYWwgYWNjaWRlbnQsIHBlYWtpbmcgYXQgMzkgZGF5cywgZm9sbG93ZWQgYnkgYSBncmFkdWFsIGRlY2xpbmUuIEFwcHJveGltYXRlbHkgdGhyZWUgbW9udGhzIGFmdGVyIHRoZSBpbml0aWFsIGFjY2lkZW50IFdldHRlcmhhaG4gYmVnYW4gZXhwZXJpZW5jaW5nIGJyaWVmIGVwaXNvZGVzIG9mIGFiZG9taW5hbCBkaXNjb21mb3J0IGFuZCBub3RpY2VkIHNpZ25pZmljYW50IHdlaWdodCBsb3NzLiBUaGUgbW9yZSBkaXN0aW5jdGl2ZSBuZXVyb2xvZ2ljYWwgc3ltcHRvbXMgb2YgbWVyY3VyeSBwb2lzb25pbmcsIGluY2x1ZGluZyBsb3NzIG9mIGJhbGFuY2UgYW5kIHNsdXJyZWQgc3BlZWNoLCBhcHBlYXJlZCBpbiBKYW51YXJ5IDE5OTcsIGZpdmUgbW9udGhzIGFmdGVyIHRoZSBhY2NpZGVudC4gSGVyIGJsb29kIGFuZCB1cmluYXJ5IG1lcmN1cnkgY29udGVudCB3ZXJlIG1lYXN1cmVkIGF0IDQsMDAwIM68Zy9MIGFuZCAyMzQgzrxnL0wsIHJlc3BlY3RpdmVseeKAlGJvdGggbWFueSB0aW1lcyB0aGVpciByZXNwZWN0aXZlIHRveGljIHRocmVzaG9sZHMgb2YgMjAwIM68Zy9MIGFuZCA1MCDOvGcvTCAoYmxvb2QgYW5kIHVyaW5lIHJlZmVyZW5jZSByYW5nZXMgYXJlIDEgdG8gOCDOvGcvTCBhbmQgMSB0byA1IM68Zy9MKS4NCjE5OTYgKERlYyA0IDA2OjU4OjA3IFVUQyk6W1NwYWNlXVtNYXJzXVtFYXJ0aF0gTGF1bmNoIG9mIE1hcnMgUGF0aGZpbmRlciBvbiBEZWx0YSBJSSA3OTI1ICgjRDI0MCkNCnJvY2tldCBmcm9tIENhcGUgQ2FuYXZlcmFsIFNMQy0xNy4gVG8gcHJvdmUgdGhhdCB0aGUgZGV2ZWxvcG1lbnQgb2YgImZhc3RlciwgYmV0dGVyIGFuZCBjaGVhcGVyIiBzcGFjZWNyYWZ0IHdhcyBwb3NzaWJsZSAod2l0aCB0aHJlZSB5ZWFycyBmb3IgZGV2ZWxvcG1lbnQgYW5kIGEgY29zdCB1bmRlciAkMTUwIG1pbGxpb24gZm9yIHRoZSBsYW5kZXIsIGFuZCAkMjUgbWlsbGlvbiBmb3IgdGhlIHJvdmVyKS4gVG8gc2hvdyB0aGF0IGl0IHdhcyBwb3NzaWJsZSB0byBzZW5kIGEgbG9hZCBvZiBzY2llbnRpZmljIGluc3RydW1lbnRzIHRvIGFub3RoZXIgcGxhbmV0IHdpdGggYSBzaW1wbGUgc3lzdGVtIGFuZCBhdCBvbmUtZmlmdGVlbnRoIHRoZSBjb3N0IG9mIGEgVmlraW5nIG1pc3Npb24uIChGb3IgY29tcGFyaXNvbiwgdGhlIFZpa2luZyBtaXNzaW9ucyBjb3N0ICQ5MzUgbWlsbGlvbiBpbiAxOTc0IG9yICQzLjUgYmlsbGlvbiBpbiAxOTk3IGRvbGxhcnMuKS4gVG8gZGVtb25zdHJhdGUgTkFTQSdzIGNvbW1pdG1lbnQgdG8gbG93LWNvc3QgcGxhbmV0YXJ5IGV4cGxvcmF0aW9uIGJ5IGZpbmlzaGluZyB0aGUgbWlzc2lvbiB3aXRoIGEgdG90YWwgZXhwZW5kaXR1cmUgb2YgJDI4MCBtaWxsaW9uLCBpbmNsdWRpbmcgdGhlIGxhdW5jaCB2ZWhpY2xlIGFuZCBtaXNzaW9uIG9wZXJhdGlvbnMuDQoxOTk2OiBhIHJhaWQgb24gdGhlIEFuaW1hbCBIdXNiYW5kcnkgZGVwYXJ0bWVudOKAmXMgb2ZmaWNlcyBpbiBDaGFpYmFzYSwgQmloYXIgdW5mb2xkZWQgdGhlIFJzLjk1MCBjcm9yZSBmb2RkZXIgc2NhbSwgaW4gd2hpY2ggdGhlIEJpaGFyIGNoaWVmIG1pbmlzdGVyIExhbHUgUHJhc2FkIFlhZGF2IGNhdGNoIHVwIGluIGEgbGlmZWxvbmcgdHVzc2xlIHdpdGggdGhlIENCSS4NCjE5OTY6W0Jvb2tdW0FkdmVudHVyZV0gSm9uIEtyYWthdWVyJ3MgSW50byB0aGUgV2lsZC4NCjE5OTY6W0NvbXB1dGluZ10gVGhlIFZpZGVvTEFOIHNvZnR3YXJlIG9yaWdpbmF0ZWQgYXMgYSBGcmVuY2ggYWNhZGVtaWMgcHJvamVjdC4gVkxDIHVzZWQgdG8gc3RhbmQgZm9yICJWaWRlb0xBTiBDbGllbnQiIHdoZW4gVkxDIHdhcyBhIGNsaWVudCBvZiB0aGUgVmlkZW9MQU4gcHJvamVjdCwgb2ZmaWNpYWxseSByZWxlYXNlZCB1bmRlciBHTlUgR1BMIG9uIDIwMDEgKEZlYiAxKS4NCjE5OTY6W01lbWVdIERhbmNpbmcgQmFieSBTY3JlZW5zYXZlcg0KMTk5NjpbU3BhY2VYXSBUaGUgZW50aXJlIHByb2Nlc3MgZm9yIHRoZSBKYW1lcyBXZWJiIFNwYWNlIFRlbGVzY29wZSAoSldTVCkgZnJvbSBpbml0aWFsIGNvbmNlcHQgdG8gbGF1bmNoIHNwYW5uZWQgYXBwcm94aW1hdGVseSAyNSB5ZWFycywgd2l0aCBpbml0aWFsIGRlc2lnbnMgYmVnaW5uaW5nIGluIDE5OTYgYW5kIHRoZSB0ZWxlc2NvcGUgbGF1bmNoaW5nIGluIDIwMjEsIGJ1dCBhIHNpZ25pZmljYW50IHBvcnRpb24gb2YgdGhpcyB3YXMgc3BlbnQgaW4gZGVzaWduLCB0ZXN0aW5nLCBhbmQgb3ZlcmNvbWluZyBtYWpvciByZWRlc2lnbnMgYW5kIGRlbGF5cywgbm90IGp1c3QgYXNzZW1ibHkuIA0KMTk5NiAoRmViIDI4KTpbRGVsaGldIEluZGlyYXB1cmFtLCBHaGF6aWFiYWQgd2FzIGVzdGQgd2hlbiBpdHMgZm91bmRhdGlvbiBzdG9uZSAoS2FsYSBQYXRoYXIpIHdhcyBpbmF1Z3VyYXRlZCBieSBTaCBNb3RpbGFsIFZvcmEsIHRoZW4gR292ZXJub3Igb2YgVVAuICgyMDIxKSBJJ3B1cmFtIEV4dG4gdG8gYmUgYnVpbHQgb24gMTIgYWNyZXMgb25seSwgY29uY2VpdmVkIGluIDIwMDQuDQoxOTk2OltCb29rXVtNaWxpdGFyeV1bQ3VsdHVyZV1bRVVdW1VTQV0gR2VvcmdlIFIuUi4gTWFydGluIGlzIHRoZSBBbWVyaWNhbiBhdXRob3Igb2YgdGhlIGVwaWMgZmFudGFzeSBib29rIHNlcmllcyBBIFNvbmcgb2YgSWNlIGFuZCBGaXJlLCB3aGljaCBiZWdhbiB3aXRoIEEgR2FtZSBvZiBUaHJvbmVzICgxOTk2KSBhbmQgc2VydmVkIGFzIHRoZSBiYXNpcyBmb3IgSEJPJ3MgbWFzc2l2ZWx5IHBvcHVsYXIgR2FtZSBvZiBUaHJvbmVzIFRWIHNlcmllcy4gQSBTb25nIG9mIEljZSBhbmQgRmlyZSBpcyBhIHNlcmllcyBvZiBoaWdoIGZhbnRhc3kgbm92ZWxzIGJ5IHRoZSBBbWVyaWNhbiBhdXRob3IgR2VvcmdlIFIuIFIuIE1hcnRpbi4gTWFydGluIGJlZ2FuIHdyaXRpbmcgdGhlIGZpcnN0IHZvbHVtZSwgQSBHYW1lIG9mIFRocm9uZXMsIGluIDE5OTEsIGFuZCBwdWJsaXNoZWQgaXQgaW4gMTk5Ni4gTWFydGluLCB3aG8gb3JpZ2luYWxseSBlbnZpc2lvbmVkIHRoZSBzZXJpZXMgYXMgYSB0cmlsb2d5LCBoYXMgcmVsZWFzZWQgZml2ZSBvdXQgb2Ygc2V2ZW4gcGxhbm5lZCB2b2x1bWVzLiANCg0KW0dlbmVyYXRpb25dIE1pbGxlbm5pYWwgZ2VuZXJhdGlvbiAoMTk4MeKAkzE5OTYpIGVuZHM7IGxhc3RlZCBmb3IgMTUgeWVhcnMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICA1MCB5ZWFycyBvZiBJbmRlcGVuZGVudCBJbmRpYSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSANCg0KW0dlbmVyYXRpb25dIEdlbiBaICgxOTk34oCTMjAxMikgc3RhcnRzOyBhbmQgZXhpc3RzIGZvciBuZXh0IDE1IHllYXJzLg0KDQoxOTk3OltXaG9dW1Jlc2VhcmNoXVtDb21wdXRpbmddW1RlY2hdW0N1bHR1cmVdIFZMQyBNZWRpYSBQbGF5ZXIgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBzdHVkZW50cyBhdCB0aGUgRnJlbmNoIGVuZ2luZWVyaW5nIHNjaG9vbCDDiWNvbGUgQ2VudHJhbGUgUGFyaXMgaW4gMTk5Ni4gV2hpbGUgaXQgc3RhcnRlZCBhcyBhbiBhY2FkZW1pYyBwcm9qZWN0IChWaWRlb0xBTikgdG8gc3RyZWFtIHZpZGVvIG92ZXIgYSBjYW1wdXMgbmV0d29yaywgaXRzIGRldmVsb3BtZW50IGFuZCBtb2Rlcm5pemF0aW9uIHdlcmUgbGF0ZXIgbGVkIGJ5IEplYW4tQmFwdGlzdGUgS2VtcGYuIA0KMTk5NzpbUmVzZWFyY2hdW1NwYWNlXSAyOSBKdWx5IDE5OTc6IGEgTkFTQSBzY2llbnRpc3QgYW5ub3VuY2VkIGV2aWRlbmNlIG9mIGZvc3NpbGl6ZWQgbWljcm9zY29waWMgbGlmZSBmb3JtcyBpbiBhIG1ldGVvcml0ZSBub3QgZnJvbSBhbnkga25vd24gcGxhbmV0Lg0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgR3JvdXAgb2YgRWlnaHQgKEc4KSB3YXMgYW4gaW50ZXJnb3Zlcm5tZW50YWwgcG9saXRpY2FsIGZvcnVtIGZyb20gMTk5NyB0byAyMDE0LCBmb3JtZWQgYnkgaW5jb3Jwb3JhdGluZyBSdXNzaWEgaW50byB0aGUgRzcuIFRoZSBHOCBiZWNhbWUgdGhlIEc3IGFnYWluIGFmdGVyIFJ1c3NpYSB3YXMgZXhwZWxsZWQgaW4gMjAxNCBhZnRlciB0aGUgUnVzc2lhbiBhbm5leGF0aW9uIG9mIENyaW1lYS4gRm91bmRlZDogMTk5NywgRGVudmVyLCBDb2xvcmFkbywgVW5pdGVkIFN0YXRlcw0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBGb3VuZGVkOiA2IEp1bmUgMTk5NywgVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiAoQklNU1RFQykgaXMgYW4gaW50ZXJuYXRpb25hbCBvcmdhbml6YXRpb24gb2Ygc2V2ZW4gU291dGggQXNpYW4gYW5kIFNvdXRoZWFzdCBBc2lhbiBuYXRpb25zLCBob3VzaW5nIDEuNzMgYmlsbGlvbiBwZW9wbGUgYW5kIGhhdmluZyBhIGNvbWJpbmVkIGdyb3NzIGRvbWVzdGljIHByb2R1Y3Qgb2YgVVMkNS4yIHRyaWxsaW9uLg0KMTk5NzpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gYnVpbHQgdGhlIGZpcnN0IGV4cGVyaW1lbnRhbCBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCBjb3VsZCBtYW5pcHVsYXRlIDcgcXViaXRzIHVzaW5nIG51Y2xlYXIgbWFnbmV0aWMgcmVzb25hbmNlIChOTVIpIHRlY2huaXF1ZXMuDQoxOTk3IChKdWwgNCk6W1NwYWNlXVtNYXJzXSBUaGUgTWFycyBQYXRoZmluZGVyIGVuZHVyZWQgYSAzMC1zZWNvbmQgY29tbXVuaWNhdGlvbnMgYmxhY2tvdXQgYXMgaXQgZW50ZXJlZCBNYXJzJyBhdG1vc3BoZXJlLiBJdCBsYW5kZWQgYXQgQXJlcyBWYWxsaXMsIENocnlzZSBQbGFuaXRpYSwgTWFycyAxOcKwN+KAsjQ44oCzTiAzM8KwMTPigLIxMuKAs1cuIE1hcnMgUGF0aGZpbmRlciAoTUVTVVIgUGF0aGZpbmRlcikgaXMgYW4gQW1lcmljYW4gcm9ib3RpYyBzcGFjZWNyYWZ0IHRoYXQgbGFuZGVkIGEgYmFzZSBzdGF0aW9uIHdpdGggYSByb3ZpbmcgcHJvYmUgb24gTWFycyBpbiAxOTk3LiBJdCBjb25zaXN0ZWQgb2YgYSBsYW5kZXIsIHJlbmFtZWQgdGhlIENhcmwgU2FnYW4gTWVtb3JpYWwgU3RhdGlvbiwgYW5kIGEgbGlnaHR3ZWlnaHQsIDEwLjYga2cgKDIzIGxiKSB3aGVlbGVkIHJvYm90aWMgTWFycyByb3ZlciBuYW1lZCBTb2pvdXJuZXIsIHRoZSBmaXJzdCByb3ZlciB0byBvcGVyYXRlIG91dHNpZGUgdGhlIEVhcnRo4oCTTW9vbiBzeXN0ZW0uDQoxOTk3OltCb29rXSBNaXRjaCBBbGJvbSdzIFR1ZXNkYXlzIHdpdGggTW9ycmllLg0KMTk5NzpbR2FtaW5nXSBHcmFuZCBUaGVmdCBBdXRvIChHVEEpIHJlbGVhc2VkIGJ5IERNQSBEZXNpZ24gKGxhdGVyIFJvY2tzdGFyIE5vcnRoKSBmb3IgUFMxLCBXaW5kb3dzIGFuZCBNUy1ET1M7IEdyYW5kIFRoZWZ0IEF1dG86IFZpY2UgQ2l0eSAoMjAwMik7IEdyYW5kIFRoZWZ0IEF1dG86IFNhbiBBbmRyZWFzICgyMDA0KTsgR3JhbmQgVGhlZnQgQXV0byBJViAoMjAwOCk7IEdyYW5kIFRoZWZ0IEF1dG8gViAoMjAxMyk7IEdyYW5kIFRoZWZ0IEF1dG86IFRoZSBUcmlsb2d5IOKAkyBUaGUgRGVmaW5pdGl2ZSBFZGl0aW9uICgyMDIxKQ0KMTk5NzogVGVra2VuIDMgd2FzIGRlc2lnbmVkIGJ5IEthdHN1aGlybyBIYXJhZGEgKE9zYWthLCBPc2FrYSBQcmVmZWN0dXJlLCBKYXBhbikgb2YgQmFuZGFpIE5hbWNvIEVudGVydGFpbm1lbnQgaGVhZHF1YXJ0ZXJlZCBhdCDFjHRhLCBUb2t5by4NCjE5OTcgKE1hciA2KTogW0dlb1BvbGl0aWNzXSBUaGUgSW5kaWFuIE9jZWFuIFJpbSBBc3NvY2lhdGlvbiwgZm9ybWVybHkga25vd24gYXMgdGhlIEluZGlhbiBPY2VhbiBSaW0gSW5pdGlhdGl2ZSBhbmQgdGhlIEluZGlhbiBPY2VhbiBSaW0gQXNzb2NpYXRpb24gZm9yIFJlZ2lvbmFsIENvb3BlcmF0aW9uLCBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBjb25zaXN0aW5nIG9mIDIzIHN0YXRlcyBib3JkZXJpbmcgdGhlIEluZGlhbiBPY2Vhbi4gVGhlIElPUkEgaXMgYSByZWdpb25hbCBmb3J1bSwgdHJpcGFydGl0ZSBpbiBuYXR1cmUsIGJyaW5naW5nIHRvZ2V0aGVyIHJlcHJlc2VudGF0aXZlcyBvZiBHb3Zlcm5tZW50LCBCdXNpbmVzcyBhbmQgQWNhZGVtaWEsIGZvciBwcm9tb3RpbmcgY28tb3BlcmF0aW9uIGFuZCBjbG9zZXIgaW50ZXJhY3Rpb24gYW1vbmcgdGhlbS4gSXQgaXMgYmFzZWQgb24gdGhlIHByaW5jaXBsZXMgb2YgT3BlbiBSZWdpb25hbGlzbSBmb3Igc3RyZW5ndGhlbmluZyBFY29ub21pYyBDb29wZXJhdGlvbiBwYXJ0aWN1bGFybHkgb24gVHJhZGUgRmFjaWxpdGF0aW9uIGFuZCBJbnZlc3RtZW50LCBQcm9tb3Rpb24gYXMgd2VsbCBhcyBTb2NpYWwgRGV2ZWxvcG1lbnQgb2YgdGhlIHJlZ2lvbi4gVGhlIENvb3JkaW5hdGluZyBTZWNyZXRhcmlhdCBvZiBJT1JBIGlzIGxvY2F0ZWQgYXQgRWJlbmUsIE1hdXJpdGl1cy4NCjE5OTcgKEFwciAyMSk6IEguRC4gRGV2ZSBHb3dkYSByZXNpZ25zLiBJbmRlciBLdW1hciBHdWpyYWwgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NyAoSnVuIDYpOiBbR2VvUG9saXRpY3NdIEJJTVNURUMgZm91bmRlZC4gVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBvZiBzZXZlbiBTb3V0aCBBc2lhbiBhbmQgU291dGhlYXN0IEFzaWFuIG5hdGlvbnMsIGhvdXNpbmcgMS43MyBiaWxsaW9uIHBlb3BsZSBhbmQgaGF2aW5nIGEgY29tYmluZWQgZ3Jvc3MgZG9tZXN0aWMgcHJvZHVjdCBvZiAkMy44IHRyaWxsaW9uLiBUaGUgQklNU1RFQyBtZW1iZXIgc3RhdGVzIOKAkyBCYW5nbGFkZXNoLCBCaHV0YW4sIEluZGlhLCBNeWFubWFyLCBOZXBhbCwgU3JpIExhbmthLCBhbmQgVGhhaWxhbmQg4oCTIGFyZSBhbW9uZyB0aGUgY291bnRyaWVzIGRlcGVuZGVudCBvbiB0aGUgQmF5IG9mIEJlbmdhbC4NCjE5OTcgKEp1biA4KTogRGVzcGl0ZSBhZ2dyZXNzaXZlIGNoZWxhdGlvbiB0aGVyYXB5LCBoZXIgY29uZGl0aW9uIHJhcGlkbHkgZGV0ZXJpb3JhdGVkLiBUaHJlZSB3ZWVrcyBhZnRlciB0aGUgZmlyc3QgbmV1cm9sb2dpY2FsIHN5bXB0b21zIGFwcGVhcmVkLCBXZXR0ZXJoYWhuIGxhcHNlZCBpbnRvIHdoYXQgYXBwZWFyZWQgdG8gYmUgYSB2ZWdldGF0aXZlIHN0YXRlIHB1bmN0dWF0ZWQgYnkgcGVyaW9kcyBvZiBleHRyZW1lIGFnaXRhdGlvbi4gT25lIG9mIGhlciBmb3JtZXIgc3R1ZGVudHMgc2FpZCB0aGF0ICJIZXIgaHVzYmFuZCBzYXcgdGVhcnMgcm9sbGluZyBkb3duIGhlciBmYWNlLiBJIGFza2VkIGlmIHNoZSB3YXMgaW4gcGFpbi4gVGhlIGRvY3RvcnMgc2FpZCBpdCBkaWRuJ3QgYXBwZWFyIHRoYXQgaGVyIGJyYWluIGNvdWxkIGV2ZW4gcmVnaXN0ZXIgcGFpbi4iIFdldHRlcmhhaG4gd2FzIHJlbW92ZWQgZnJvbSBsaWZlIHN1cHBvcnQgYW5kIHByb25vdW5jZWQgZGVhZCBvbiBKdW5lIDgsIDE5OTcsIHRlbiBtb250aHMgYWZ0ZXIgaGVyIGluaXRpYWwgZXhwb3N1cmUuIEluIHJlc3BvbnNlLCB0aGUgT2NjdXBhdGlvbmFsIFNhZmV0eSBhbmQgSGVhbHRoIEFkbWluaXN0cmF0aW9uIHJlY29tbWVuZGVkIHRoYXQgdGhlIHVzZSBvZiBkaW1ldGh5bG1lcmN1cnkgYmUgYXZvaWRlZCB1bmxlc3MgYWJzb2x1dGVseSBuZWNlc3NhcnkgYW5kIG1hbmRhdGVkIHRoZSB1c2Ugb2YgcGxhc3RpYy1sYW1pbmF0ZSBnbG92ZXMgKFNpbHZlclNoaWVsZCkgd2hlbiBoYW5kbGluZyB0aGlzIGNvbXBvdW5kLg0KMTk5NyAoSnVuIDEzKTpbSmFja10gQm9yZGVyDQoxOTk3IChKdW4gMjYpOltCb29rXSAzMllPIEouIEsuIFJvd2xpbmcgcHVibGlzaGVzIGhlciBmaXJzdCBIYXJyeSBQb3R0ZXIgYm9vaywgVGhlIFBoaWxvc29waGVyJ3MgU3RvbmU7IA0KVGhlIENoYW1iZXIgb2YgU2VjcmV0cyAoMiBKdWx5IDE5OTgpLA0KVGhlIFByaXNvbmVyIG9mIEF6a2FiYW4gKDggSnVseSAxOTk5KSwNClRoZSBHb2JsZXQgb2YgRmlyZSAoOCBKdWx5IDIwMDApLA0KVGhlIE9yZGVyIG9mIHRoZSBQaG9lbml4ICgsIDI3IEp1bmUgMjAwMyksDQpUaGUgSGFsZi1CbG9vZCBQcmluY2UgKDE2IEp1bHkgMjAwNSksDQpUaGUgRGVhdGhseSBIYWxsb3dzICgyMSBKdWx5IDIwMDcpDQoxOTk3IChBdWcgMjUpOltTcGFjZV0gQWR2YW5jZWQgQ29tcG9zaXRpb24gRXhwbG9yZXIgaXMgYSBOQVNBIEV4cGxvcmVyIHByb2dyYW0gc2F0ZWxsaXRlIGFuZCBzcGFjZSBleHBsb3JhdGlvbiBtaXNzaW9uIHRvIHN0dWR5IG1hdHRlciBjb21wcmlzaW5nIGVuZXJnZXRpYyBwYXJ0aWNsZXMgZnJvbSB0aGUgc29sYXIgd2luZCwgdGhlIGludGVycGxhbmV0YXJ5IG1lZGl1bSwgYW5kIG90aGVyIHNvdXJjZXMuDQoxOTk3IChTZXAgMTMpOiB0aGUgaW50cm9kdWN0b3J5IGVwaXNvZGUgb2YgU2hha3RpbWFuIHdhcyBhaXJlZCBvbiBEb29yZGFyc2hhbiAoSW5kaWEncyBuYXRpb25hbCB0ZWxldmlzaW9uIG5ldHdvcmspIGZyb20gMjcgU2VwdGVtYmVyIDE5OTcgdG8gMjcgTWFyY2ggMjAwNSwgb24gU3VuZGF5cyBhdCAxMiBub29uIElTVC4gVGhlIHRlbGVjYXN0IHNsb3QsIGhvd2V2ZXIgd2FzIHNoaWZ0ZWQgdG8gOTozMCBhLm0uIGZvciB0aGUgbGFzdCBlcGlzb2Rlcy4gDQoxOTk3IChTZXAgMjcgMTA6MjMgVVRDKTpbU3BhY2VdW01hcnNdIExhc3QgY29udGFjdCB3aXRoIE1hcnMgUGF0aGZpbmRlci4gTWlzc2lvbiBkdXJhdGlvbiAoTGF1bmNoIHRvIGxhc3QgY29udGFjdCk6IDkgbW9udGhzLCAyMyBkYXlzLg0KMTk5NyAoT2N0IDMxKTpbQm9va10gRG9uYWxkIFRydW1wJ3MgVHJ1bXA6IFRoZSBBcnQgb2YgdGhlIENvbWViYWNrOyBUaGUgQW1lcmljYSBXZSBEZXNlcnZlICgyMDAwKTsgVHJ1bXA6IFRoaW5rIExpa2UgYSBCaWxsaW9uYWlyZTogRXZlcnl0aGluZyBZb3UgTmVlZCB0byBLbm93IEFib3V0IFN1Y2Nlc3MsIFJlYWwgRXN0YXRlLCBhbmQgTGlmZSAoMjAwNCk7IFdoeSBXZSBXYW50IFlvdSB0byBCZSBSaWNoICgyMDA2KTsgVHJ1bXA6IFRoZSBCZXN0IFJlYWwgRXN0YXRlIEFkdmljZSBJIEV2ZXIgUmVjZWl2ZWQ6IDEwMCBUb3AgRXhwZXJ0cyBTaGFyZSBUaGVpciBTdHJhdGVnaWVzICgyMDA2LCBOb3YgMSk7IFRoaW5rIEJJRyBhbmQgS2ljayBBc3MgaW4gQnVzaW5lc3MgYW5kIExpZmUgKDIwMDcpOyBUcnVtcCBOZXZlciBHaXZlIFVwOiBIb3cgSSBUdXJuZWQgTXkgQmlnZ2VzdCBDaGFsbGVuZ2VzIGludG8gU3VjY2VzcyAoMjAwOCk7IFRpbWUgdG8gR2V0IFRvdWdoOiBNYWtpbmcgQW1lcmljYSAjMSBBZ2FpbiAoMjAxMSk7IENyaXBwbGVkIEFtZXJpY2E6IEhvdyB0byBNYWtlIEFtZXJpY2EgR3JlYXQgQWdhaW4gKDIwMTUpDQoxOTk3OiBBcnVuZGhhdGkgUm95IGJlY2FtZSB0aGUgZmlyc3QgSW5kaWFuIHRvIHdpbiBNYW4gQm9va2VyIFByaXplIGZvciBoZXIgbm92ZWwgJ1RoZSBHb2Qgb2YgU21hbGwgVGhpbmdzJy4NCjE5OTc6IElJVC1KRUUgd2FzIGNvbmR1Y3RlZCB0d2ljZSBhZnRlciB0aGUgUS1QYXBlciB3YXMgbGVha2VkLg0KMTk5NzogTkFTQSBlc3RpbWF0ZWQgdGhlcmUgd2VyZSBhcHByb3guIDIsNjQ1IGFydGlmaWNpYWwgc2F0ZWxsaXRlIHBheWxvYWRzIG9yYml0dGluZyB0aGUgZWFydGggYW5kIDYsMjE2IHBpZWNlcyBvZiBzcGFjZSBkZWJyaXMgYXMgdHJhY2tlZCBieSB0aGUgR1NGQy4gT3ZlciAxNiwyOTEgcHJldmlvdXNseSBsYXVuY2hlZCBvYmplY3RzIGhhdmUgZGVjYXllZCBpbnRvIHRoZSBFYXJ0aCdzIGF0bW9zcGhlcmUuDQoxOTk3OiBCSEMgRmluYW5jaWFsLCBJbmMuIG9mIFBlbm5zeWx2YW5pYSBtZXJnZWQgaW50byBGSVNWIHRvIGZvcm0gU2VjdXJlZCBUcmFuc2FjdGlvbiBQcm9jZXNzaW5nIFNlcnZpY2VzLg0KMTk5NzpbQm9va10gVGhlIEZvdXIgQWdyZWVtZW50czogQSBQcmFjdGljYWwgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSBpcyBhIHNlbGYtaGVscCBib29rIGJ5IGJlc3RzZWxsaW5nIGF1dGhvciBEb24gTWlndWVsIFJ1aXogd2l0aCBKYW5ldCBNaWxsczsgVGhlIE1hc3Rlcnkgb2YgTG92ZTogQSBQcmFjdGljYWwgR3VpZGUgdG8gdGhlIEFydCBvZiBSZWxhdGlvbnNoaXAgLS1Ub2x0ZWMgV2lzZG9tIEJvb2sgKDE5OTksIE1hciAzMCk7IFRoZSBWb2ljZSBvZiBLbm93bGVkZ2U6IEEgUHJhY3RpY2FsIEd1aWRlIHRvIElubmVyIFBlYWNlICgyMDA0LCBNYXIgMTApOyBUaGUgRmlmdGggQWdyZWVtZW50OiBBIFByYWN0aWNhbCBHdWlkZSB0byBTZWxmLU1hc3RlcnkgKDIwMDkpOyBUaGUgQ2lyY2xlIG9mIEZpcmU6IEluc3BpcmF0aW9uIGFuZCBHdWlkZWQgTWVkaXRhdGlvbnMgZm9yIExpdmluZyBpbiBMb3ZlIGFuZCBIYXBwaW5lc3MgKDIwMTMsIEF1ZyAxKTsgVGhlIE1hc3Rlcnkgb2YgU2VsZjogQSBUb2x0ZWMgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSAoMjAxNiwgTWF5IDYpDQoxOTk3OltCb29rXSBKb24gS3Jha2F1ZXIncyBJbnRvIFRoaW4gQWlyOiBBIFBlcnNvbmFsIEFjY291bnQgb2YgdGhlIE10LiBFdmVyZXN0IERpc2FzdGVyOyBVbmRlciB0aGUgQmFubmVyIG9mIEhlYXZlbiAoMjAwMyBKdWwpDQoxOTk3IChEZWMgMTEpOltFbnZdIFRoZSBLeW90byBQcm90b2NvbCB3YXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgd2hpY2ggZXh0ZW5kZWQgdGhlIDE5OTIgVW5pdGVkIE5hdGlvbnMgRnJhbWV3b3JrIENvbnZlbnRpb24gb24gQ2xpbWF0ZSBDaGFuZ2UgKFVORkNDQykgdGhhdCBjb21taXRzIHN0YXRlIHBhcnRpZXMgdG8gcmVkdWNlIGdyZWVuaG91c2UgZ2FzIGVtaXNzaW9ucywgYmFzZWQgb24gdGhlIHNjaWVudGlmaWMgY29uc2Vuc3VzIHRoYXQgKHBhcnQgb25lKSBnbG9iYWwgd2FybWluZyBpcyBvY2N1cnJpbmcgYW5kIChwYXJ0IHR3bykgdGhhdCBodW1hbi1tYWRlIENPMiBlbWlzc2lvbnMgYXJlIGRyaXZpbmcgaXQuDQoxOTk3OltJbmRpYV1bRWR1Y2F0aW9uXVtDdWx0dXJlXSBFa2xhdnlhIE1vZGVsIFJlc2lkZW50aWFsIFNjaG9vbCBpcyBhIEdvdmVybm1lbnQgb2YgSW5kaWEgc2NoZW1lIGZvciBtb2RlbCByZXNpZGVudGlhbCBzY2hvb2wgZm9yIEluZGlhbiB0cmliYWxzIGFjcm9zcyBJbmRpYS4gSXQgaXMgb25lIG9mIHRoZSBmbGFnc2hpcCBpbnRlcnZlbnRpb25zIG9mIHRoZSBNaW5pc3RyeSBvZiBUcmliYWwgQWZmYWlycywgR292ZXJubWVudCBvZiBJbmRpYSBhbmQgd2FzIGludHJvZHVjZWQgaW4gdGhlIHllYXIgMTk5Ny05OCB0byBlbnN1cmUgdHJpYmFsIHN0dWRlbnRzIGdldCBhY2Nlc3MgdG8gcXVhbGl0eSBlZHVjYXRpb24gaW4gdGhlIHJlbW90ZSB0cmliYWwgYXJlYXMuIEVNUlNzIGFyZSBzZXQgdXAgaW4gU3RhdGVzL1VUcyB3aXRoIGdyYW50cyB1bmRlciBBcnRpY2xlIDI3NSgxKSBvZiB0aGUgQ29uc3RpdHV0aW9uIG9mIEluZGlhLiBBcyBwZXIgdGhlIGJ1ZGdldCAyMDE4LTE5LCBldmVyeSBibG9jayB3aXRoIG1vcmUgdGhhbiA1MCUgU1QgcG9wdWxhdGlvbiBhbmQgYXQgbGVhc3QgMjAsMDAwIHRyaWJhbCBwZXJzb25zLCB3aWxsIGhhdmUgYW4gRWtsYXZ5YSBNb2RlbCBSZXNpZGVudGlhbCBTY2hvb2wgYnkgdGhlIHllYXIgMjAyMi4NCjE5OTc6W1NwYWNlXSBIaXBwYXJjb3MgKDE5ODkgLTE5OTMpLiBJdCB0b29rIDQtOCB5ZWFycyB0byBvcmdhbml6ZSBhbmQgcHVibGlzaCB0aGUgNCB5ZWFycyBzdHVkeSBieSB0aGlzIGV4cGVyaW1lbnQsIHdoaWNoIHBlcm1pdHRlZCB0aGUgZmlyc3QgaGlnaC1wcmVjaXNpb24gbWVhc3VyZW1lbnRzIG9mIHRoZSBpbnRyaW5zaWMgYnJpZ2h0bmVzc2VzIChjb21wYXJlZCB0byB0aGUgbGVzcyBwcmVjaXNlIGFwcGFyZW50IGJyaWdodG5lc3MpLCBwcm9wZXIgbW90aW9ucywgYW5kIHBhcmFsbGF4ZXMgb2Ygc3RhcnMsIGVuYWJsaW5nIGJldHRlciBjYWxjdWxhdGlvbnMgb2YgdGhlaXIgZGlzdGFuY2UgYW5kIHRhbmdlbnRpYWwgdmVsb2NpdHkuIFdoZW4gY29tYmluZWQgd2l0aCByYWRpYWwgdmVsb2NpdHkgbWVhc3VyZW1lbnRzIGZyb20gc3BlY3Ryb3Njb3B5LCBhc3Ryb3BoeXNpY2lzdHMgd2VyZSBhYmxlIHRvIGZpbmFsbHkgbWVhc3VyZSBhbGwgc2l4IHF1YW50aXRpZXMgbmVlZGVkIHRvIGRldGVybWluZSB0aGUgbW90aW9uIG9mIHN0YXJzLiBUaGUgcmVzdWx0aW5nIEhpcHBhcmNvcyBDYXRhbG9ndWUsIGEgaGlnaC1wcmVjaXNpb24gY2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiAxMTgsMjAwIHN0YXJzLCB3YXMgcHVibGlzaGVkIGluIDE5OTcuIFRoZSBsb3dlci1wcmVjaXNpb24gVHljaG8gQ2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiBhIG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBhdCB0aGUgc2FtZSB0aW1lLCB3aGlsZSB0aGUgZW5oYW5jZWQgVHljaG8tMiBDYXRhbG9ndWUgb2YgMi41IG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBpbiAyMDAwLiBIaXBwYXJjb3MnIGZvbGxvdy11cCBtaXNzaW9uLCBHYWlhLCB3YXMgbGF1bmNoZWQgaW4gMjAxMy4NCjE5OTc6W1NwYWNlXVtSZXNlYXJjaF0gU2luY2UgdGhlIDE5OTcgcHJvcG9zYWwgb2YgdGhlIEFkUy9DRlQgKEFudGktZGUgU2l0dGVyL0NvbmZvcm1hbCBGaWVsZCBUaGVvcnkpIGNvcnJlc3BvbmRlbmNlLCB0aGUgcHJlZG9taW5hbnQgYmVsaWVmIGFtb25nIHBoeXNpY2lzdHMgaXMgdGhhdCBpbmZvcm1hdGlvbiBpcyBpbmRlZWQgcHJlc2VydmVkIGluIGJsYWNrIGhvbGUgZXZhcG9yYXRpb24uIA0KMTk5NzpbU3BhY2VdW1Jlc2VhcmNoXSBBIHdpZGVseSBwdWJsaWNpemVkIGJldCBtYWRlIGluIDE5OTcgYmV0d2VlbiBKb2huIFByZXNraWxsIG9uIHRoZSBvbmUgaGFuZCB3aXRoIEhhd2tpbmcgYW5kIEtpcCBUaG9ybmUgb24gdGhlIG90aGVyIHRoYXQgaW5mb3JtYXRpb24gd2FzIG5vdCBsb3N0IGluIGJsYWNrIGhvbGVzLiBUaGUgc2NpZW50aWZpYyBkZWJhdGUgb24gdGhlIHBhcmFkb3ggd2FzIGRlc2NyaWJlZCBpbiBhIHBvcHVsYXIgYm9vayBwdWJsaXNoZWQgaW4gMjAwOCBieSBMZW9uYXJkIFN1c3NraW5kIGNhbGxlZCBUaGUgQmxhY2sgSG9sZSBXYXIuIChUaGUgYm9vayBjYXJlZnVsbHkgbm90ZXMgdGhhdCB0aGUgJ3dhcicgd2FzIHB1cmVseSBhIHNjaWVudGlmaWMgb25lLCBhbmQgdGhhdCBhdCBhIHBlcnNvbmFsIGxldmVsLCB0aGUgcGFydGljaXBhbnRzIHJlbWFpbmVkIGZyaWVuZHMuKSBUaGUgYm9vayBzdGF0ZXMgdGhhdCBIYXdraW5nIHdhcyBldmVudHVhbGx5IHBlcnN1YWRlZCB0aGF0IGJsYWNrLWhvbGUgZXZhcG9yYXRpb24gd2FzIHVuaXRhcnkgYnkgdGhlIGhvbG9ncmFwaGljIHByaW5jaXBsZSwgd2hpY2ggd2FzIGZpcnN0IHByb3Bvc2VkIGJ5ICd0IEhvb2Z0LCBmdXJ0aGVyIGRldmVsb3BlZCBieSBTdXNza2luZCBhbmQgbGF0ZXIgZ2l2ZW4gYSBwcmVjaXNlIHN0cmluZyB0aGVvcnkgaW50ZXJwcmV0YXRpb24gYnkgdGhlIEFkUy9DRlQgY29ycmVzcG9uZGVuY2UuIEluIDIwMDQsIEhhd2tpbmcgYWxzbyBjb25jZWRlZCB0aGUgMTk5NyBiZXQsIHBheWluZyBQcmVza2lsbCB3aXRoIGEgYmFzZWJhbGwgZW5jeWNsb3BlZGlhICJmcm9tIHdoaWNoIGluZm9ybWF0aW9uIGNhbiBiZSByZXRyaWV2ZWQgYXQgd2lsbCIgYWx0aG91Z2ggVGhvcm5lIHJlZnVzZWQgdG8gY29uY2VkZS4NCjE5OTc6W0VhcnRoXVtQaHlzaWNzXVtSZXNlYXJjaF0gdGhlcmUgd2VyZSB0d28gbGFyZ2UgZWFydGhxdWFrZXMgb2ZmIHRoZSBjb2FzdCBvZiBDaGlsZS4gVGhlIG1hZ25pdHVkZSBvZiB0aGUgZmlyc3QsIGluIEp1bHksIHdhcyBlc3RpbWF0ZWQgYXQgTXfigK82LjksIGJ1dCB3YXMgYmFyZWx5IGZlbHQsIGFuZCBvbmx5IGluIHRocmVlIHBsYWNlcy4gSW4gT2N0b2JlciBhIE134oCvNy4xIHF1YWtlIGluIG5lYXJseSB0aGUgc2FtZSBsb2NhdGlvbiwgYnV0IHR3aWNlIGFzIGRlZXAgYW5kIG9uIGEgZGlmZmVyZW50IGtpbmQgb2YgZmF1bHQsIHdhcyBmZWx0IG92ZXIgYSBicm9hZCBhcmVhLCBpbmp1cmVkIG92ZXIgMzAwIHBlb3BsZSwgYW5kIGRlc3Ryb3llZCBvciBzZXJpb3VzbHkgZGFtYWdlZCBvdmVyIDEwLDAwMCBob3VzZXMuIEFzIGNhbiBiZSBzZWVuIGluIHRoZSB0YWJsZSBiZWxvdywgdGhpcyBkaXNwYXJpdHkgb2YgZGFtYWdlIGRvbmUgaXMgbm90IHJlZmxlY3RlZCBpbiBlaXRoZXIgdGhlIG1vbWVudCBtYWduaXR1ZGUgKE134oCvKSBub3IgdGhlIHN1cmZhY2Utd2F2ZSBtYWduaXR1ZGUgKE1z4oCvKS4gT25seSB3aGVuIHRoZSBtYWduaXR1ZGUgaXMgbWVhc3VyZWQgb24gdGhlIGJhc2lzIG9mIHRoZSBib2R5LXdhdmUgKG1i4oCvKSBvciB0aGUgc2Vpc21pYyBlbmVyZ3kgKE1l4oCvKSBpcyB0aGVyZSBhIGRpZmZlcmVuY2UgY29tcGFyYWJsZSB0byB0aGUgZGlmZmVyZW5jZSBpbiBkYW1hZ2UuIChhcyByZXNlYXJjaGVkIGJ5IENob3ksIEJvYXR3cmlnaHQgJiBLaXJieSAyMDAxLCBwLiAxMy4pLiBNdyA2Ljkgd2FzIGFjdHVhbGx5IE1lIDYuMSwgYW4gaW50ZXJwbGF0ZS10aHJ1c3QgdHlwZSBvZiBmYXVsdCwgd2hpbGUgTXcgNy4xIHdhcyBhY3R1YWxseSBhIDcuNSBNZSBpbnRyYXNsYWItbm9ybWFsIHR5cGUgb2YgZmF1bHQuDQoxOTk3OltSZXNlYXJjaF0gRHVyaW5nIHN1cnZleXMgY2FycmllZCBvdXQgYmV0d2VlbiAxOTk3IGFuZCAyMDAxLCBhIHNwb3Qgd2FzIGZvdW5kIGFsb25nIHRoZSBNYXJpYW5hIFRyZW5jaCB0aGF0IGhhZCBhIGRlcHRoIHNpbWlsYXIgdG8gdGhlIENoYWxsZW5nZXIgRGVlcCwgcG9zc2libHkgZXZlbiBkZWVwZXIuIEl0IHdhcyBkaXNjb3ZlcmVkIHdoaWxlIHNjaWVudGlzdHMgZnJvbSB0aGUgSGF3YWlpIEluc3RpdHV0ZSBvZiBHZW9waHlzaWNzIGFuZCBQbGFuZXRvbG9neSB3ZXJlIGNvbXBsZXRpbmcgYSBzdXJ2ZXkgYXJvdW5kIEd1YW07IHRoZXkgdXNlZCBhIHNvbmFyIG1hcHBpbmcgc3lzdGVtIHRvd2VkIGJlaGluZCB0aGUgcmVzZWFyY2ggc2hpcCB0byBjb25kdWN0IHRoZSBzdXJ2ZXkuIFRoaXMgbmV3IHNwb3Qgd2FzIG5hbWVkIHRoZSBITVJHIChIYXdhaWkgTWFwcGluZyBSZXNlYXJjaCBHcm91cCkgRGVlcCwgYWZ0ZXIgdGhlIGdyb3VwIG9mIHNjaWVudGlzdHMgd2hvIGRpc2NvdmVyZWQgaXQuDQoxOTk3OltTcGFjZVhdIEEgcmVzb2x2ZWQgY2lyY3Vtc3RlbGxhciBkaXNrIHdhcyBmaXJzdCBpZGVudGlmaWVkIGluIDE5OTcgd2l0aCB0aGUgT3dlbnMgVmFsbGV5IFJhZGlvIE9ic2VydmF0b3J5LiBUaGUgc2VtaS1tYWpvciBheGlzIHdhcyBpbml0aWFsbHkgZXN0aW1hdGVkIHRvIGJlIDExMCBBVS4gSEQgMTYzMjk2IGFuZCBzdXJyb3VuZGluZ3MgQ3JlZGl0OiBFU08vRGlnaXRpemVkIFNreSBTdXJ2ZXkgMjsgQWNrbm93bGVkZ2VtZW50OiBEYXZpZGUgRGUgTWFydGluIE9ic2VydmF0aW9uIGRhdGEgRXBvY2ggSjIwMDAgICAgICBFcXVpbm94IEoyMDAwIENvbnN0ZWxsYXRpb24JU2FnaXR0YXJpdXMgUmlnaHQgYXNjZW5zaW9uCTE3aCA1Nm0gMjEuMjlzIERlY2xpbmF0aW9uCeKIkjIxwrAgNTfigLIgMjEuODfigLMgQXBwYXJlbnQgbWFnbml0dWRlIChWKQk2Ljg1OyBDaGFyYWN0ZXJpc3RpY3MgRXZvbHV0aW9uYXJ5IHN0YWdlCUhlcmJpZyBBZSBzdGFyIFNwZWN0cmFsIHR5cGUJQTNWYWVrQTFtQTE7IEFzdHJvbWV0cnkgUmFkaWFsIHZlbG9jaXR5IChSdikJLTQuMDAgwrEzLjNbM10ga20vcyBQcm9wZXIgbW90aW9uICjOvCkJUkE6IC03LjU4NiDCsTAuMDQxIG1hcy95cjsgRGVjLjogLTM5LjQ1OCDCsTAuMDI5IG1hcy95cls0XSBQYXJhbGxheCAoz4ApCTkuOTA0M8KxMC4wNDA4IG1hc1s0XSBEaXN0YW5jZQkzMjkgwrEgMSBseSAoMTAxLjAgwrEgMC40IHBjKSBEZXRhaWxzOyBNYXNzCTEuOTXCsTAuMDcgTeKYiSBSYWRpdXMJMS44N8KxMC4wNSBS4piJIEx1bWlub3NpdHkJMjAuNCszLjYg4oiSMy4wIEzimIkgU3VyZmFjZSBncmF2aXR5IChsb2cgZykJNC4xMMKxMC4xMCBjZ3MgVGVtcGVyYXR1cmUJOTAwMMKxMjUwIEsgQWdlCTYuMDMrMC4yOCDiiJIwLjI3IE15ciBPdGhlciBkZXNpZ25hdGlvbnMgQkQtMjEgNDc3OSwgQ1BELTIxIDY1MDgsIEVNKiBNV0MgMjc1LCBISVAgODc4MTksIElSQVMgMTc1MzMtMjE1NiwgMk1BU1MgSjE3NTYyMTI4LTIxNTcyMTgsIFBEUyA0NzMsIFRZQyA2MjYyLTIxMzEtMSwgRGF0YWJhc2UgcmVmZXJlbmNlcyBTSU1CQUQNCjE5OTc6W1NwYWNlWF0gMTAxOTkgQ2hhcmlrbG8gaXMgYSByaW5nZWQgYXN0ZXJvaWQgb3IgY2VudGF1ciBpbiB0aGUgb3V0ZXIgU29sYXIgU3lzdGVtLiBJdCBpcyB0aGUgbGFyZ2VzdCBrbm93biBjZW50YXVyLCB3aXRoIGEgZGlhbWV0ZXIgb2YgYWJvdXQgMjUwIGttLiBJdCBvcmJpdHMgdGhlIFN1biBiZXR3ZWVuIFNhdHVybiBhbmQgVXJhbnVzIHdpdGggYW4gb3JiaXRhbCBwZXJpb2Qgb2YgNjIuNSB5ZWFycy4gV2lraXBlZGlhIE9yYml0YWwgcGVyaW9kOiA2MyB5ZWFycyBSYWRpdXM6IDE1MSBrbSBEaXNjb3ZlcmVkOiAxNSBGZWJydWFyeSAxOTk3IERpbWVuc2lvbnM6ICgyODcuNisyLjg7IOKIkjMuMCkgw5cgKDI3MC40KzIuODsg4oiSNS42KSDDlyAoMTk4LjIrMTAuODsg4oiSNS40KSBrbTogMTEgRGlzY292ZXJlcjogSmFtZXMgVi4gU2NvdHRpIFNwZWN0cmFsIHR5cGU6IEQtdHlwZSBhc3Rlcm9pZCBBcGhlbGlvbjogMTguNDIwIEFVDQoxOTk3OltTcGFjZVhdIFRoZSBHcmVhdCBEYXlsaWdodCBGaXJlYmFsbCAtIFRoZSBhdG1vc3BoZXJpYyBwYXNzIG1vZGlmaWVkIHRoZSBvYmplY3QncyBtYXNzIGFuZCBvcmJpdCBhcm91bmQgdGhlIFN1bi4gQSAxOTk0IHN0dWR5IGZvdW5kIHRoYXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgaW4gYW4gRWFydGgtY3Jvc3Npbmcgb3JiaXQgYW5kIHByZWRpY3RlZCB0aGF0IGl0IHdvdWxkIHBhc3MgY2xvc2UgdG8gRWFydGggYWdhaW4gaW4gQXVndXN0IDE5OTcuIEhvd2V2ZXIsIHRoZSBvYmplY3QgaGFzIG5vdCBiZWVuIG9ic2VydmVkIGFnYWluIGFuZCBzbyBpdHMgcG9zdC1lbmNvdW50ZXIgb3JiaXQgcmVtYWlucyB1bmtub3duLg0KMTk5NzpOYWZpc2EgSm9zZXBoIHdhcyB0aGUgeW91bmdlc3QgTWlzcyBJbmRpYSB3aW5uZXIgYXQgYWdlIDE5LCB3aW5uaW5nIHRoZSB0aXRsZSBpbiAxOTk3LiBTaGUgbGF0ZXIgYmVjYW1lIGEgbW9kZWwgYW5kIHRlbGV2aXNpb24gcGVyc29uYWxpdHkuIFdoaWxlIG90aGVyIHdpbm5lcnMgbGlrZSBNZWVuYWtzaGkgU2VzaGFkcmkgd2VyZSBhbHNvIDE3IHdoZW4gdGhleSB3b24gaW4gMTk4MSwgSm9zZXBoIGlzIG9mdGVuIGNpdGVkIGZvciBoZXIgZWFybHkgd2luIGF0IDE5LCB3aGljaCB3YXMgdGhlbiBhIHlvdW5nZXIgYWdlIHRoYW4gaXMgdHlwaWNhbGx5IHNlZW4gaW4gdGhlIGNvbXBldGl0aW9uLiANCjE5OTc6W3NwYWNlXVt0ZWNoXSBUaGUgZmluYWwgQmxvY2sgSUlBIHdhcyBpbiBOb3YgMTk5Nywgd2hpbGUgQmxvY2sgSUlScyBiZWdhbiByZXBsYWNpbmcgdGhlbSBzaG9ydGx5IGFmdGVyLCBsYXN0aW5nIHVudGlsIDIwMDQuIEJsb2NrIElJUiAoUmVwbGVuaXNobWVudCkgbGF1bmNoZXMgZm9sbG93ZWQgZnJvbSAxOTk3IHRvIDIwMDQsIHdpdGggdGhlIGZpcnN0IGxhdW5jaCBpbiBKYW51YXJ5IDE5OTcuIA0KDQoxOTk4OltTcGFjZVhdIFRoZSBwcmltYXJ5IGNvbnN0cnVjdGlvbiBwaGFzZSBvZiB0aGUgSW50ZXJuYXRpb25hbCBTcGFjZSBTdGF0aW9uIChJU1MpIHRvb2sgYXBwcm94aW1hdGVseSAxMyB5ZWFycywgZnJvbSAxOTk4IHRvIDIwMTEsIHdpdGggdGhlIGZpcnN0IG1vZHVsZSBsYXVuY2hpbmcgaW4gTm92ZW1iZXIgMTk5OCBhbmQgSVNTIEFzc2VtYmx5IENvbXBsZXRlIGRlY2xhcmVkIGluIE1heSAyMDExLiBIb3dldmVyLCBhc3NlbWJseSB3YXMgYSBjb250aW51b3VzLCBtdWx0aS1zdGFnZSBwcm9jZXNzIGludm9sdmluZyBtb3JlIHRoYW4gMzAgbWlzc2lvbnMsIG51bWVyb3VzIHNwYWNld2Fsa3MsIGFuZCByb2JvdGljIGFzc2lzdGFuY2UgdG8gYnVpbGQgdGhlIHN0YXRpb24gcGllY2UgYnkgcGllY2UgaW4gb3JiaXQuIEV2ZW4gYWZ0ZXIgMjAxMSwgdGhlIElTUyBjb250aW51ZWQgdG8gZXZvbHZlIHdpdGggb25nb2luZyBhZGRpdGlvbnMgYW5kIHVwZ3JhZGVzLg0KMTk5ODpbUmVzZWFyY2hdW1NwYWNlXSBTcHJpbmcsIDE5OTg6IGEgbWljcm9mb3NzaWwgdGhhdCB3YXMgZm91bmQgaW4gYSBtZXRlb3JpdGUgYW5kIHBob3RvZ3JhcGhlZCBpbiAxOTY2LCB3YXMgcmVjb2duaXplZCBieSBhIFJ1c3NpYW4gbWljcm9iaW9sb2dpc3QgYXMgYSBtYWduZXRvdGFjdGljIGJhY3Rlcml1bS4gQnkgRmFsbCwgMTk5ODogTkFTQSdzIHB1YmxpYyBwb3NpdGlvbiBvbiBsaWZlLWZyb20tc3BhY2Ugc2hpZnRlZCBkcmFtYXRpY2FsbHkuDQoxOTk4OiBBcyBhIHJlc2VhcmNoIHByb2plY3QgYXQgU3RhbmZvcmQgVW5pdmVyc2l0eSwgU2VyZ2V5IEJyaW4gYW5kIExhcnJ5IFBhZ2UgY3JlYXRlZCBhIHNlYXJjaCBlbmdpbmUgdGhhdCBsaXN0ZWQgcmVzdWx0cyBhY2NvcmRpbmcgdG8gdGhlIHBvcHVsYXJpdHkgb2YgdGhlIHBhZ2VzLCBhZnRlciBjb25jbHVkaW5nIHRoYXQgdGhlIG1vc3QgcG9wdWxhciByZXN1bHQgd291bGQgb2Z0ZW4gYmUgdGhlIG1vc3QgdXNlZnVsLiBBZnRlciByYWlzaW5nICQxIG1pbGxpb24gZnJvbSBmYW1pbHksIGZyaWVuZHMgYW5kIG90aGVyIGludmVzdG9ycywgdGhlIHBhaXIgbGF1bmNoZWQgdGhlIGNvbXBhbnkgaW4gMTk5OC4gR29vZ2xlIGhhcyBzaW5jZSBiZWNvbWUgdGhlIHdvcmxk4oCZcyBtb3N0IHBvcHVsYXIgc2VhcmNoIGVuZ2luZSwgcmVjZWl2aW5nIG1vcmUgdGhhbiAyMDAgbWlsbGlvbiBxdWVyaWVzIGVhY2ggZGF5Lg0KMTk5OCAoTm92IDIwKTogDQoxOTk4IChBcHIgMjcpOiBSUkIgZm91bmRlZCBhcyBSYWlsd2F5IFJlY3J1aXRtZW50IENvbnRyb2wgQm9hcmQgaXMgYSBnb3Zlcm5tZW50IG9yZ2FuaXNhdGlvbiBpbiBJbmRpYS4gSXQgd2FzIHNldCB1cCBpbiAxOTk4IGluIHRoZSBNaW5pc3RyeSBvZiBSYWlsd2F5cyAoUmFpbHdheSBCb2FyZCksIE5ldyBEZWxoaS5JbiAxOTQ1LCB0aGUgU2VydmljZXMgQ29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgYXQgQm9tYmF5LCBDYWxjdXR0YSwgTWFkcmFzIGFuZCBMdWNrbm93LiBJbiAxOTgzLCB0byBjYXRlciB0byB0aGUgbmVlZHMgb2YgYXJlYXMgd2hpY2ggd2VyZSBiZWluZyBuZWdsZWN0ZWQgZHVlIHRvIGxvY2F0aW9ucyBvZiB0aGUgZXhpc3RpbmcgY29tbWlzc2lvbnMsIHNldmVuIG1vcmUgY29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgdml6LCBhdCBBaG1lZGFiYWQsIEFqbWVyLCBCaG9wYWwsIEJodXZuZXNod2FyLCBDaGFuZGlnYXJoLCBKYW1tdSBhbmQgU3JpbmFnYXIgd2l0aCBzaXR0aW5nIGF0IExlaCBhbmQgVHJpdmVuZHJ1bS4gSW4gMTk4NCB0d28gbW9yZSBzZXJ2aWNlIGNvbW1pc3Npb25zIHdlcmUgc2V0IHVwIGF0IE1hbGRhIGFuZCBHb3Jha2hwdXIuDQoxOTk4IChNYXkgMTkpOiBBdGFsIEJpaGFyaSBWYWpwYXllZSBiZWNvbWVzIFBNIG9mIEluZGlhIGZvciB0aGUgc2Vjb25kIHRpbWUsIG5vdyBmb3IgNiB5ZWFycyB0aWxsIE1heSAyMiwgMjAwNC4gDQoxOTk4IChNYXkgMjggMTU6MTVQU1QpOiBDaGFnYWktSSBpcyB0aGUgY29kZSBuYW1lIG9mIGZpdmUgc2ltdWx0YW5lb3VzIHVuZGVyZ3JvdW5kIG51Y2xlYXIgdGVzdHMgY29uZHVjdGVkIGJ5IFBha2lzdGFuLiBUaGUgdGVzdHMgd2VyZSBwZXJmb3JtZWQgYXQgUmFzIEtvaCBIaWxscyBpbiB0aGUgQ2hhZ2FpIERpc3RyaWN0IG9mIEJhbG9jaGlzdGFuIFByb3ZpbmNlLiBDaGFnYWktSSB3YXMgUGFraXN0YW4ncyBmaXJzdCBwdWJsaWMgdGVzdCBvZiBudWNsZWFyIHdlYXBvbnMuIFBha2lzdGFuJ3MgZmlzc2lsZSBtYXRlcmlhbCBwcm9kdWN0aW9uIHRha2VzIHBsYWNlIGF0IE5pbG9yZSwgS2FodXRhLCBhbmQgS2h1c2hhYiBOdWNsZWFyIENvbXBsZXgsIHdoZXJlIHdlYXBvbnMtZ3JhZGUgcGx1dG9uaXVtIGlzIHJlZmluZWQuDQoxOTk4OiBBZnRlciBjb21wbGV0aW5nIGhpcyBYIHN0YW5kYXJkIGV4YW1pbmF0aW9ucywgUmFuYmlyIEthcG9vciwgYWdlZCAxNiwgd29ya2VkIGFzIGFuIGFzc2lzdGFudCBkaXJlY3RvciB0byBoaXMgZmF0aGVyIG9uIHRoZSBmaWxtIEFhIEFiIExhdXQgQ2hhbGVuICgxOTk5KSwgZHVyaW5nIHdoaWNoIGhlIGRldmVsb3BlZCBhIGNsb3NlciBib25kIHdpdGggaGltLg0KMTk4ODogTmV0d29ya2VkIERhdGEgUHJvY2Vzc2luZyBDb3IsIElvd2EgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBJbnN1cmFuY2UgZGl2aXNpb24uDQoxOTk4OltCb29rXSBSb2JlcnQgR3JlZW5lJ3MgVGhlIDQ4IExhd3Mgb2YgUG93ZXI7IFRoZSAzMyBTdHJhdGVnaWVzIG9mIFdhciAoMjAwNik7IE1hc3RlcnkgKDIwMTIsIE5vdiAxMyk7IFRoZSBMYXdzIG9mIEh1bWFuIE5hdHVyZSAoMjAxOCwgT2N0IDE2KQ0KMTk5ODpbU3BhY2VdW1Jlc2VhcmNoXVtFeHRyZW1lXSBUaGVuIGNhbWUgMTk5OCBhbmQgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgKEhTVCkgb2JzZXJ2YXRpb25zIG9mIHZlcnkgZGlzdGFudCBzdXBlcm5vdmFlIHRoYXQgc2hvd2VkIHRoYXQsIGEgbG9uZyB0aW1lIGFnbywgdGhlIHVuaXZlcnNlIHdhcyBhY3R1YWxseSBleHBhbmRpbmcgbW9yZSBzbG93bHkgdGhhbiBpdCBpcyB0b2RheS4gU28gdGhlIGV4cGFuc2lvbiBvZiB0aGUgdW5pdmVyc2UgaGFzIG5vdCBiZWVuIHNsb3dpbmcgZHVlIHRvIGdyYXZpdHksIGFzIGV2ZXJ5b25lIHRob3VnaHQsIGl0IGhhcyBiZWVuIGFjY2VsZXJhdGluZy4NCjE5OTg6W0NyaW1lXVtJbmRpYV0gQW5lZXMgYXJyZXN0ZWQgaW4gVUFFIG9uIGNoYXJnZXMgb2YgaGF2aW5nIG11cmRlcmVkIGEgZm9ybWVyIGFzc29jaWF0ZSBhbmQgdGhlbiByaXZhbCwgSXJmYW4gR29nYSwgaW4gRHViYWksIGJ1dCB3YXMgZnJlZWQgYWZ0ZXIgdHdvIGRheXMgZm9yICdsYWNrIG9mIGV2aWRlbmNlJy4NCjE5OTg6W0NvbXB1dGluZ11bUXVhbnR1bV0gUmVzZWFyY2hlcnMgYXQgSUJNLCBPeGZvcmQsIEJlcmtlbGV5LCBTdGFuZm9yZCwgYW5kIE1JVCBwcm9kdWNlZCBhIDItcXViaXQgY29tcHV0aW5nIHN5c3RlbS4NCjE5OTg6W3d3d10gV2lyZXNoYXJrIGlzIGEgZnJlZSBhbmQgb3Blbi1zb3VyY2UgcGFja2V0IGFuYWx5emVyLiBJdCBpcyB1c2VkIGZvciBuZXR3b3JrIHRyb3VibGVzaG9vdGluZywgYW5hbHlzaXMsIHNvZnR3YXJlIGFuZCBjb21tdW5pY2F0aW9ucyBwcm90b2NvbCBkZXZlbG9wbWVudCwgYW5kIGVkdWNhdGlvbi4gT3JpZ2luYWxseSBuYW1lZCBFdGhlcmVhbCwgdGhlIHByb2plY3Qgd2FzIHJlbmFtZWQgV2lyZXNoYXJrIGluIE1heSAyMDA2IGR1ZSB0byB0cmFkZW1hcmsgaXNzdWVzLg0KMTk5ODpbVVNdW0Vjb25vbXldRGF2aWQgUm9ja2VmZWxsZXIgU3IuIHdhcyBhd2FyZGVkIHRoZSBQcmVzaWRlbnRpYWwgTWVkYWwgb2YgRnJlZWRvbSBieSBQcmVzaWRlbnQgQmlsbCBDbGludG9uIGZvciBoaXMgd29yayBvbiBJbnRlcm5hdGlvbmFsIEV4ZWN1dGl2ZSBTZXJ2aWNlIENvcnBzLg0KMTk5ODpbRGVmXVtBdmlhdGlvbl0gVGhlIExvY2toZWVkIFNSLTcxIEJsYWNrYmlyZCBmbGV3IHNvIGhpZ2ggYW5kIHNvIGZhc3QgdGhhdCB0aGUgY3JldyBuZWVkZWQgcHJlc3N1cml6ZWQgc3BhY2Ugc3VpdHMgd2hlbiBmbHlpbmcgaXQuIEFuZCBpdCBpcyBzYWlkIHRoYXQgYXQgdGhlIG1heGltdW0gYWx0aXR1ZGUgb2YgaXQgaXQgd2FzIHBvc3NpYmxlIHRvIHNlZSB0aGUgY3VydmF0dXJlIG9mIHRoZSBlYXJ0aCwgd2hpY2ggcmVmZXJzIHRvIHRoaXMgcXVvdGUgYnkgQ29sb25lbCBBbGlzb246IOKAnE9uIGEgY2xlYXIgZGF5IHlvdSBjYW4gc2VlIGZvcmV2ZXLigKbigJ0uIFRoZSBzZXJ2aWNlIGNlaWxpbmcgb2YgODUsMDAwIGZlZXQgKDI1LDkwMG0pIG1lYW50IHRoYXQgaXQgd2FzIGFuIGV4Y2VsbGVudCBleHBlcmltZW50YWwgdW5pdCBmb3Igc3BhY2UgdHJhdmVscy4gVGhhdCwgY29tYmluZWQgd2l0aCB0aGUgZ3JlYXQgc3BlZWRzIG9mIGl0IHdhcyB0d28gb2YgdGhlIHJlYXNvbnMgd2h5IE5BU0EgZGVjaWRlZCB0byB0YWtlIG92ZXIgdGhlIGxhc3QgdHdvIEJsYWNrYmlyZHMgYWZ0ZXIgaXRzIHJldGlyZW1lbnQgZnJvbSB0aGUgQWlyIEZvcmNlIGluIDE5OTguIFRoaXMgbWVhbnMgdGhhdCB0aGUgd29ybGTigJlzIGZhc3Rlc3QgYWlyY3JhZnQgd2FzIGluIHNlcnZpY2UgZnJvbSAxOTY2IHVudGlsIE5BU0EgcmV0aXJlZCBpdHMgdHdvIHVuaXRzIGluIDE5OTksIGFuZCBtb3N0IG9mIHRoZSByZW1haW5pbmcgQmxhY2tiaXJkcyBhcmUgdG9kYXkgc3RhdGlvbmVkIGF0IG11c2V1bXMgb3IgbWlsaXRhcnkgYmFzZXMgYWNyb3NzIHRoZSBVUy4NCjE5OTg6SW4gMTk5OCwgR2F1dGFtIEFkYW5pLCBhbG9uZyB3aXRoIGhpcyBhc3NvY2lhdGUgU2hhbnRpbGFsIFBhdGVsLCB3YXMga2lkbmFwcGVkIGZvciByYW5zb20gaW4gQWhtZWRhYmFkLCBJbmRpYS4gVGhleSB3ZXJlIGFiZHVjdGVkIGF0IGd1bnBvaW50IGFmdGVyIGxlYXZpbmcgdGhlIEthcm5hdmF0aSBDbHViIGluIGEgY2FyLiBUaGUga2lkbmFwcGVycywgYWxsZWdlZGx5IGdhbmdzdGVycyBGYXpsdSBSZWhtYW4gYW5kIEJob2dpbGFsIERhcmppLCByZXBvcnRlZGx5IGRlbWFuZGVkIGEgcmFuc29tIG9mICQxLjUtMiBtaWxsaW9uLiBCb3RoIEFkYW5pIGFuZCBQYXRlbCB3ZXJlIHJlbGVhc2VkIGEgZGF5IGxhdGVyLCBidXQgaXQncyB1bmNsZWFyIGlmIHRoZSByYW5zb20gd2FzIHBhaWQuIA0KVGhlIGtpZG5hcHBpbmcgaW5jaWRlbnQgaGFwcGVuZWQgaW4gdGhlIG1pZC0xOTkwcywgYXJvdW5kIHRoZSB0aW1lIEFkYW5pJ3MgYnVzaW5lc3Mgc3VjY2Vzc2VzIHN0YXJ0ZWQgYXR0cmFjdGluZyB1bndhbnRlZCBhdHRlbnRpb24uIFRoZSBraWRuYXBwaW5nIHdhcyBhbGxlZ2VkbHkgY2FycmllZCBvdXQgYnkgRmF6bHUgUmVobWFuIGFuZCBCaG9naWxhbCBEYXJqaSwgYWxzbyBrbm93biBhcyAiTWFtYSIuIFRoZXkgd2VyZSBsYXRlciBhY3F1aXR0ZWQgZHVlIHRvIGxhY2sgb2YgZXZpZGVuY2UuIA0KVGhlIGFiZHVjdGlvbiBpcyBqdXN0IG9uZSBvZiB0aGUgY2hhbGxlbmdlcyBBZGFuaSBoYXMgZmFjZWQuIEhlIHdhcyBhbHNvIGNhdWdodCBpbiB0aGUgMjYvMTEgTXVtYmFpIHRlcnJvciBhdHRhY2tzIGF0IHRoZSBUYWogSG90ZWwuIE1vcmUgcmVjZW50bHksIGhlIGhhcyBmYWNlZCBhY2N1c2F0aW9ucyBvZiBicmliZXJ5IGFuZCBzZWN1cml0aWVzIGZyYXVkLiANCkFkYW5pIGFuZCBvdGhlcnMgd2VyZSBlc2NvcnRlZCBieSBzdGFmZiB0byB0aGUga2l0Y2hlbiBhbmQgdGhlbiB0aGUgYmFzZW1lbnQuIFRoZXkgc3BlbnQgdGhlIGVudGlyZSBuaWdodCBpbiBhIGhhbGwgd2FpdGluZyBmb3IgcmVzY3VlLiBBZGFuaSBsYXRlciB0b2xkIG5ld3MgY2hhbm5lbHMgdGhhdCBoZSBzYXcg4oCcZGVhdGggYXQgYSBkaXN0YW5jZSBvZiBqdXN0IDE1IGZlZXQu4oCdIEhlIHdhcyByZXNjdWVkIHRoZSBuZXh0IG1vcm5pbmcgYnkgc2VjdXJpdHkgZm9yY2VzLg0KMTk5ODpbRW52XVtEaXNhc3Rlcl0gRWFzdGVybiBJbmRpYSwgMTk5OCBCYW5nbGFkZXNoIGZsb29kOyA0ayBkZWF0aHMNCjE5OTg6W1dob11bUmVzZWFyY2hdW0NvbXB1dGluZ11bVGVjaF1bQ3VsdHVyZV0gSW50ZXJuZXQgRG93bmxvYWQgTWFuYWdlciAoSURNKSB3YXMgZGV2ZWxvcGVkIGJ5IFRvbmVjIEluYy4sIGFuIEFtZXJpY2FuIGNvbXBhbnkgdGhhdCBzdGFydGVkIHRoZSBwcm9qZWN0IGluIDE5OTggYW5kIHJlbGVhc2VkIHRoZSBzb2Z0d2FyZSBpbiAyMDAxLiBUb25lYyBJbmMuIGZvY3VzZXMgb24gbmV0d29yayBwcm9ncmFtbWluZyBhbmQgY3JlYXRlZCBJRE0gdG8gc3BlZWQgdXAgZG93bmxvYWRzIGJ5IHVzaW5nIGR5bmFtaWMgZmlsZSBzZWdtZW50YXRpb24sIGFjY2VsZXJhdGluZyBzcGVlZHMgYnkgdXAgdG8gOCB0aW1lcy4gDQoNCjE5OTk6NCBKYW51YXJ5IDE5OTk6IE5BU0Egb2ZmaWNpYWxseSByZWNvZ25pemVkIHRoZSBwb3NzaWJpbGl0eSB0aGF0IGxpZmUgb24gRWFydGggY29tZXMgZnJvbSBzcGFjZS4NCjE5IE1hcmNoIDE5OTk6IE5BU0Egc2NpZW50aXN0cyBhbm5vdW5jZWQgdGhhdCB0d28gbW9yZSBtZXRlb3JpdGVzIGhvbGQgZXZlbiBzdHJvbmdlciBmb3NzaWxpemVkIGV2aWRlbmNlIGZvciBwYXN0IGxpZmUgb24gTWFycy4NCjE5OTk6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEcyMCBvciBHcm91cCBvZiAyMCBpcyBhbiBpbnRlcmdvdmVybm1lbnRhbCBmb3J1bSBjb21wcmlzaW5nIDE5IHNvdmVyZWlnbiBjb3VudHJpZXMsIHRoZSBFdXJvcGVhbiBVbmlvbiwgYW5kIHRoZSBBZnJpY2FuIFVuaW9uLiBGb3VuZGVkOiAyNiBTZXB0ZW1iZXIgMTk5OTsgQ2hhaXJtYW4gKEluY3VtYmVudCk6IEN5cmlsIFJhbWFwaG9zYSwgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYQ0KMTk5OTogVGhlIHRlcm0gV2ktRmkgd2FzIGludmVudGVkIGJ5IEludGVyYnJhbmQgKGFuIGFtZXJpY2FuIGJyYW5kIGNvbnN1bHRhbmN5IGNvbXBhbnkpIGFzIGEgcHVuIHVwb24gdGhlIHdvcmQgaGktZmkuDQpXaS1GaSBBbGxpYW5jZSBmb3JtZWQgYXMgYSB0cmFkZSBhc3NvY2lhdGlvbiB0byBob2xkIHRoZSBXaS1GaSB0cmFkZW1hcmsgdW5kZXIgd2hpY2ggbW9zdCBwcm9kdWN0cyBhcmUgc29sZC4NCjE5OTk6IHRoZSB0ZXJtDQoxOTk5OiBJc2xhbWljIFN0YXRlIG9mIElyYXEgYW5kIHRoZSBMZXZhbnQgKGFsc28ga25vd24gYXMgdGhlIElzbGFtaWMgU3RhdGUgb2YgSXJhcSBhbmQgU3lyaWEsIElzbGFtaWMgU3RhdGUsIG9yIGNvbW1vbmx5LCBJU0lTKSBmb3VuZGVkIGFzIEphbWEnYXQgYWwtVGF3aGlkIHdhbC1KaWhhZCBieSBBYnUgTXVzYWIgYWwtWmFycWF3aSBIUSdkIGF0ICBBbC1SYXFxYWguDQoxOTk5IChBcHIgMTIpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBJIFdhbnQgSXQgVGhhdCBXYXkuDQoxOTk5IChBcHIgMTgpOiBDT05DRVJUIGJlY2FtZSBvcGVyYXRpb25hbC4gSXQgd2FzIGRldmVsb3BlZCB1c2luZyBjbGllbnQtc2VydmVyIG1vZGVsIGZvciBkaXN0cmlidXRlZCBjb21wdXRpbmcgaXMgYSB0b3RhbCBzb2x1dGlvbiB0byB0aGUgbmV0d29ya2luZyBvZiB0aGUgUFJTcy4gQWxsIHRoZSBmaXZlIHNpdGVzIGhhdmUgYmVlbiBpbnRlcm5ldC13b3JrZWQgb3ZlciBhIDY0IGticHMgbGluZSB1c2luZyByb3V0ZXJzLCBvbiBsZWFzZWQgY29tbXVuaWNhdGlvbiBsaW5lIGNvbm5lY3Rpb25zIGZyb20gRGVwYXJ0bWVudCBvZiBUZWxlY29tIChET1QpLg0KMTk5OTogQ3JlZGl0IGNhcmRzIGFjY2VwdGVkIGZvciBib29raW5nIHRpY2tldHMgYW5kIHJlc2VydmF0aW9ucyBpbiBzb21lIHN0YXRpb25zIChpbmNsdWRpbmcgTXVtYmFpIENTVCkuDQoxOTk5IChNYXkgMSk6W0Jvb2tdIFJvYmVydCBLaXlvc2FraSAmIFNoYXJvbiBMZWNodGVyJ3MgUmljaCBEYWQncyBDYXNoZmxvdyBRdWFkcmFudDogUmljaCBEYWQncyBHdWlkZSB0byBGaW5hbmNpYWwgRnJlZWRvbTsgUmljaCBEYWQncyBHdWlkZSB0byBJbnZlc3Rpbmc6IFdoYXQgdGhlIFJpY2ggSW52ZXN0IGluIFRoYXQgdGhlIFBvb3IgYW5kIE1pZGRsZSBDbGFzcyBEbyBOb3QhICgyMDAxLCBKYW4gMSk7IFRoZSBSZWFsIEJvb2sgb2YgUmVhbCBFc3RhdGU6IFJlYWwgRXhwZXJ0cy4gUmVhbCBTdG9yaWVzLiBSZWFsIExpZmUuICgyMDA5LCBNYXkgMTIpOyBSaWNoIEtpZCBTbWFydCBLaWQ6IEdpdmluZyBZb3VyIENoaWxkIGEgRmluYW5jaWFsIEhlYWQgU3RhcnQgKDIwMDEsIEphbiAxKTsgDQoxOTk5IChNYXkgMTgpOltNdXNpY10gTWlsbGVubml1bSBpcyB0aGUgdGhpcmQgc3R1ZGlvIGFsYnVtIChzZWNvbmQgaW4gdGhlIFVuaXRlZCBTdGF0ZXMpIGJ5IEFtZXJpY2FuIGJveSBiYW5kIEJhY2tzdHJlZXQgQm95cywgcmVsZWFzZWQgYnkgSml2ZSBSZWNvcmRzLg0KMTk5OSAoRnJpLCAyNCBEZWMpOiBJbmRpYW4gQWlybGluZXMgRmxpZ2h0IDgxNCBjb21tb25seSBrbm93biBhcyBJQyA4MTQgd2FzIGFuIEluZGlhbiBBaXJsaW5lcyBBaXJidXMgQTMwMCBlbiByb3V0ZSBmcm9tIFRyaWJodXZhbiBJbnRlcm5hdGlvbmFsIEFpcnBvcnQgaW4gS2F0aG1hbmR1LCBOZXBhbCB0byBJbmRpcmEgR2FuZGhpIEludGVybmF0aW9uYWwgQWlycG9ydCBpbiBEZWxoaSwgSW5kaWEgd2FzIGhpamFja2VkLiBIYXJrYXQtdWwtTXVqYWhpZGVlbiB3YXMgYWNjdXNlZCBvZiB0aGUgaGlqYWNraW5nLg0KMTk5OTogSVJDVEMNCjE5OTkgKEF1Zyk6IEJvb2tNeVNob3cNCjE5OTkgKFNlcCAxNCk6IFtHZW9Qb2xpdGljc10gVGhlIENvbmZlcmVuY2Ugb24gSW50ZXJhY3Rpb24gYW5kIENvbmZpZGVuY2UtQnVpbGRpbmcgTWVhc3VyZXMgaW4gQXNpYSAoQ0lDQSkgaXMgYW4gaW50ZXItZ292ZXJubWVudGFsIGZvcnVtIGZvciBlbmhhbmNpbmcgY29vcGVyYXRpb24gdG93YXJkcyBwcm9tb3RpbmcgcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYS4gSXQgaXMgYSBmb3J1bSBiYXNlZCBvbiB0aGUgcmVjb2duaXRpb24gdGhhdCB0aGVyZSBpcyBjbG9zZSBsaW5rIGJldHdlZW4gcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYSBhbmQgaW4gdGhlIHJlc3Qgb2YgdGhlIHdvcmxkLiBUaGUga2V5IGlkZWEgb2YgdGhlIENvbmZlcmVuY2UgaXMgYmFzZWQgb24gdGhlIHByaW9yaXR5IG9mIHRoZSBpbmRpdmlzaWJpbGl0eSBvZiBzZWN1cml0eSwgam9pbnQgaW5pdGlhdGl2ZSBhbmQgbXV0dWFsbHkgYmVuZWZpY2lhbCBpbnRlcmFjdGlvbiBvZiBzbWFsbCBhbmQgbGFyZ2Ugc3RhdGVzLg0KMTk5OTogTm9ibGUgRWR1Y2F0aW9uIFNvY2lldHkncyBOb2JsZSBQdWJsaWMgU2Nob29sIChOUFMpLCBHYWpyYXVsYSBmb3VuZGVkIHdpdGggMjEzMDYyNyBhcyBpdHMgQ0JTRSBBZmZpbGlhdGlvbiBuby4NCjE5OTk6IGZpcnN0IC53bWEgZmlsZSBjcmVhdGVkDQoxOTk5OiBOYXBzdGVyIGZvdW5kZWQuDQoxOTk5IChEZWMgMTQpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBTaG93IE1lIHRoZSBNZWFuaW5nIG9mIEJlaW5nIExvbmVseS4gDQoxOTk5OltNdXNpY10gRHIuIERyZSBmdC4gU25vb3AgRG9nZydzIFN0aWxsIEQuUi5FLg0KMTk5OTpbQ3VsdHVyZV0gVGhlIENpdHRhc2xvdyBvcmdhbml6YXRpb24gd2FzIGNyZWF0ZWQgYnkgUGFvbG8gU2F0dXJuaW5pLCB0aGUgZm9ybWVyIG1heW9yIG9mIEdyZXZlIGluIENoaWFudGksIEl0YWx5LiBTYXR1cm5pbmkgd2FzIGluc3BpcmVkIGJ5IENhcmxvIFBldHJpbmkgYW5kIGhpcyBTbG93IEZvb2QgbW92ZW1lbnQsIHN0YXJ0ZWQgaW4gdGhlIDE5ODBzIHRvIHByb3Rlc3QgdGhlIGZpcnN0IE1jRG9uYWxkJ3MgY2hhaW4gaW4gUm9tZS4gU2luY2UgdGhlbiwgdGhlIENpdHRhc2xvdyBtb3ZlbWVudCBoYXMgZ3Jvd24gYWNyb3NzIGZvdXIgY29udGluZW50cywgd2l0aCAyNjIgcGFydGljaXBhdGluZyB0b3ducyBhcyBvZiAyMDIwLiANCjE5OTk6W01hbmFnZW1lbnRdW0J1c2luZXNzXVtQc3ljaG9sb2d5XVtSZXNlYXJjaF0gRHVubmluZyBhbmQgS3J1Z2VyIEVmZmVjdDogRGF2aWQgRHVubmluZyBhbmQgSnVzdGluIEtydWdlciBwdWJsaXNoZWQgdGhlIGluaXRpYWwgc3R1ZHkgaW4gMTk5OSB1bmRlciB0aGUgdGl0bGUgIlVuc2tpbGxlZCBhbmQgVW5hd2FyZSBvZiBJdDogSG93IERpZmZpY3VsdGllcyBpbiBSZWNvZ25pemluZyBPbmUncyBPd24gSW5jb21wZXRlbmNlIExlYWQgdG8gSW5mbGF0ZWQgU2VsZi1Bc3Nlc3NtZW50cyIuDQoxOTk5OltSZXNlYXJjaF0gUmVzZWFyY2ggYnkgVVMgTmF0aW9uYWwgUmVzZWFyY2ggQ291bmNpbC4gV2F0ZXIgZnJvbSB1bmRlcmdyb3VuZCBzb3VyY2VzIG1heSBjb250YWluIHNpZ25pZmljYW50IGFtb3VudHMgb2YgcmFkb24gZGVwZW5kaW5nIG9uIHRoZSBzdXJyb3VuZGluZyByb2NrIGFuZCBzb2lsIGNvbmRpdGlvbnMsIHdoZXJlYXMgc3VyZmFjZSBzb3VyY2VzIGdlbmVyYWxseSBkbyBub3QuDQoxOTk5OltOU0VdIEluY29ycG9yYXRlZCBpbiAxOTk5LCBJUkNUQyBpcyBhIE1pbmkgUmF0bmEgKENhdGVnb3J5IDEsIENlbnRyYWwgUHVibGljIFNlY3RvciBFbnRlcnByaXNlcyApIGFuZCB0aGUgb25seSBjb21wYW55IGF1dGhvcml6ZWQgYnkgdGhlIEluZGlhbiBnb3Zlcm5tZW50IHRvIHByb3ZpZGUgb25saW5lIHJhaWx3YXkgdGlja2V0cywgY2F0ZXJpbmcgc2VydmljZXMsIGFuZCBwYWNrYWdlZCBkcmlua2luZyB3YXRlciBhdCByYWlsd2F5IHN0YXRpb25zIGFuZCB0cmFpbnMgaW4gSW5kaWEuDQoxOTk5OltNbnRuZ2ddW0Jvb2tdIFN0ZXZlIEhvdXNlIGlzIGEgd29ybGQtcmVub3duZWQgY2xpbWJlciwgbW91bnRhaW4gZ3VpZGUgYW5kIFBhdGFnb25pYSBhbWJhc3NhZG9yLCB3aWRlbHkgcmVnYXJkZWQgZm9yIGhpcyBjbGVhbiwgbGlnaHQtYW5kLWZhc3Qgc3R5bGUuIEhlIGhhcyBwdWJsaXNoZWQgYXJ0aWNsZXMgaW4gYSBudW1iZXIgb2YgcGVyaW9kaWNhbHMgaW5jbHVkaW5nOiBBbHBpbmlzdCwgUm9jayBhbmQgSWNlLCBDbGltYmluZywgVGhlIEFtZXJpY2FuIEFscGluZSBKb3VybmFsLCBHcmlwcGVkLCBDYW5hZGlhbiBBbHBpbmUgSm91cm5hbCwgQ2xpbWIsIFZlcnRpY2FsLCBNb250YWduZXMsIFJpc2ssIEFscCssIENhbXBvIEJhc2UsIERlc25pdmVsLCBhbmQgU3RpbGUgQWxwaW4uIEhpcyBlc3NheXMgaGF2ZSBiZWVuIHB1Ymxpc2hlZCBpbiBzZXZlcmFsIGJvb2tzIGluY2x1ZGluZzsgQ29udGFjdDogTW91bnRhaW4gQ2xpbWJpbmcgYW5kIEVudmlyb25tZW50YWwgVGhpbmtpbmc7IFNvbHRhcmksIGEgY29sbGVjdGlvbiBvZiBlc3NheXMgYWJvdXQgc29sbyBjbGltYmluZyBwdWJsaXNoZWQgaW4gSXRhbGlhbjsgQmVyZywgYSBHZXJtYW4gYm9vayBhYm91dCBjbGltYmluZyBpbiB0aGUgSGltYWxheWE7IGFuZCBhbiB1cGNvbWluZyBib29rIGFib3V0IE5hbmdhIFBhcmJhdCBlZGl0ZWQgYnkgUmVpbmhvbGQgTWVzc25lci4gSGUgaGFzIHdvcmtlZCBhcyBhIFBhdGFnb25pYSBhbHBpbmUgYW1iYXNzYWRvciBzaW5jZSAxOTk5LiBQdWJsaXNoZWQ6IFRyYWluaW5nIGZvciB0aGUgTmV3IEFscGluaXNtOiBBIE1hbnVhbCBmb3IgdGhlIENsaW1iZXIgYXMgQXRobGV0ZSBQYXBlcmJhY2sg4oCTIElsbHVzdHJhdGVkLCAzIEFwcmlsIDIwMTQNCjE5OTk6W01udG5nZ10gQ29ucmFkIEFua2VyIChib3JuIE5vdmVtYmVyIDI3LCAxOTYyKSBpcyBhbiBBbWVyaWNhbiByb2NrIGNsaW1iZXIsIG1vdW50YWluZWVyLCBhbmQgYXV0aG9yLiBIZSB3YXMgdGhlIHRlYW0gbGVhZGVyIG9mIFRoZSBOb3J0aCBGYWNlIGNsaW1iaW5nIHRlYW0gZm9yIDI2IHllYXJzIHVudGlsIDIwMTguWzJdIEluIDE5OTksIGhlIGxvY2F0ZWQgR2VvcmdlIE1hbGxvcnkncyBib2R5IG9uIEV2ZXJlc3QgYXMgYSBtZW1iZXIgb2YgYSBzZWFyY2ggdGVhbSBsb29raW5nIGZvciB0aGUgcmVtYWlucyBvZiB0aGUgQnJpdGlzaCBjbGltYmVyIHdobyB3YXMgbGFzdCBzZWVuIGluIDE5MjQuDQoxOTk5OlRoZSBQaXBpc3RyZWwgVmlydXMgZmxldyBmb3IgdGhlIGZpcnN0IHRpbWUgb24gQXVndXN0IDEwLCAxOTk5LiBQcm9kdWN0aW9uIGJlZ2FuIG9uIEphbnVhcnkgMjAsIDIwMDAuIFRoZSBkZXZlbG9wbWVudCBvZiB0aGUgc2hvcnQgd2luZyB2ZXJzaW9uIHN0YXJ0ZWQgaW4gMjAwNy4gVGhlIFZpcnVzIFNXIHByb2R1Y3Rpb24gc3RhcnRlZCBpbiAyMDA4LiBUaGUgVmlydXMgd29uIHRoZSBOQVNBIDIwMDcgUGVyc29uYWwgQWlyIFZlaGljbGUgKFBBVikgQ2hhbGxlbmdlIGFuZCB0aGUgMjAwOCBHZW5lcmFsIEF2aWF0aW9uIFRlY2hub2xvZ3kgKEdBVCkgQ2hhbGxlbmdlLg0KMTk5OTpbc2lsdmljc10gU3VzdGFpbmFibGUgUHJhY3RpY2VzOiBSZXNlYXJjaCBpbiB0aGUgMjB0aCBjZW50dXJ5IHZhbGlkYXRlZCB0aGF0IHNlY29uZC1ncm93dGggc3RhbmRzIGNvdWxkIGJlIHN1c3RhaW5hYmx5IG1hbmFnZWQgdGhyb3VnaCB0ZWNobmlxdWVzIGxpa2UgdGhlIHNlZWQgdHJlZSBtZXRob2QuIFRvZGF5LCBzaWx2aWN1bHR1cmUgZm9jdXNlcyBvbiBjb21wbGV4IHN0YW5kIHN0cnVjdHVyZXMsIGJhbGFuY2luZyBjb21tZXJjaWFsIGRlbWFuZCB3aXRoIGVudmlyb25tZW50YWwgc3Rld2FyZHNoaXAuIA0KDQoyMXN0IGNlbnR1cnkgQ0Ugc3RhcnRlZCBvbiAxc3QgSmFuIDIwMDEgQUQuDQoNCjIwMDBzOltSZXNlYXJjaF0gVGhlIGNsYWltIHRoYXQgIndlIGFyZSA2MCUgYmFuYW5hIiAob3Igc2hhcmUgNjAlIG9mIG91ciBETkEpIGlzIGEgcG9wdWxhciwgeWV0IG9mdGVuIG1pc2ludGVycHJldGVkLCBzdGF0aXN0aWMgdGhhdCBvcmlnaW5hdGVkIGZyb20gY29tcGFyaXNvbnMgb2YgcHJvdGVpbi1jb2RpbmcgZ2VuZXMsIGxpa2VseSBwb3B1bGFyaXplZCBpbiB0aGUgZWFybHkgMjAwMHMgZm9sbG93aW5nIHByZWxpbWluYXJ5IHN0dWRpZXMgb2YgdGhlIGJhbmFuYSBnZW5vbWUuIEl0IHJlZmVycyB0byBhYm91dCA2MCUgb2YgaHVtYW4gZ2VuZXMgaGF2aW5nIGEgcmVjb2duaXphYmxlIGNvdW50ZXJwYXJ0IGluIGJhbmFuYXMsIG5vdCA2MCUgb2Ygb3VyIHRvdGFsIEROQS4gDQpNYW55IG9mIHRoZSDigJxob3VzZWtlZXBpbmfigJ0gZ2VuZXMgdGhhdCBhcmUgbmVjZXNzYXJ5IGZvciBiYXNpYyBjZWxsdWxhciBmdW5jdGlvbiwgc3VjaCBhcyBmb3IgcmVwbGljYXRpbmcgRE5BLCBjb250cm9sbGluZyB0aGUgY2VsbCBjeWNsZSwgYW5kIGhlbHBpbmcgY2VsbHMgZGl2aWRlIGFyZSBzaGFyZWQgYmV0d2VlbiBtYW55IHBsYW50cyAoaW5jbHVkaW5nIGJhbmFuYXMpIGFuZCBhbmltYWxzLldoaWxlIDYwJSBvZiBnZW5lcyBoYXZlIGNvdW50ZXJwYXJ0cywgdGhlc2UgZXNzZW50aWFsIGdlbmVzIG1ha2UgdXAgb25seSBhIHNtYWxsIGZyYWN0aW9uIG9mIHRoZSB0b3RhbCBnZW5vbWU7IGh1bWFucyBhbmQgYmFuYW5hcyBhcmUgbm90IDYwJSBpZGVudGljYWwgb3ZlcmFsbC4gDQpUaGUgcGhyYXNlIGlzIGVzc2VudGlhbGx5IGEgc2ltcGxpZmllZCwgb2Z0ZW4tZXhhZ2dlcmF0ZWQsIHdheSBvZiBoaWdobGlnaHRpbmcgdGhhdCBhbGwgbGlmZSBzaGFyZXMgY29tbW9uIGFuY2VzdHJhbCBnZW5lcyBmb3IgYmFzaWMgY2VsbHVsYXIgcHJvY2Vzc2VzLiANCjIwMDBzOltNQkFdIFNob3VsZCBDb3N0IE1vZGVsaW5nOiBNb2Rlcm4gIlNob3VsZCBDb3N0IiBtb2RlbHMgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBpZGVhbCBjb3N0IG9mIGEgcHJvZHVjdCwgYWNjb3VudGluZyBmb3IgbGFib3IsIG1hdGVyaWFscywgYW5kIG92ZXJoZWFkLiBFbnZpcm9ubWVudGFsICYgU29jaWFsIEltcGFjdDogTW9kZXJuIENCQSBub3cgcm91dGluZWx5IGluY2x1ZGVzIGVudmlyb25tZW50YWwgYW5kIHNvY2lhbCBpbXBhY3RzIGluIGFkZGl0aW9uIHRvIGZpbmFuY2lhbCBvbmVzLiBTaGlmdCBmcm9tIExvY2FsIHRvIEdsb2JhbDogRWFybHksIGhpZ2hseSBsb2NhbCBhc3Nlc3NtZW50cyBldm9sdmVkIGludG8gbGFyZ2Utc2NhbGUsIG5hdGlvbmFsLCBhbmQgaW50ZXJuYXRpb25hbCBDQkEuIFJlZmluZW1lbnQgb2YgVGVjaG5pcXVlczogTW92aW5nIGZyb20gc2ltcGxlLCBzaW5nbGUtcGVyaW9kIG1vZGVscyB0byBjb21wbGV4LCBtdWx0aS1wZXJpb2Qgc2ltdWxhdGlvbnMuIEluY3JlYXNlZCBEYXRhIFVzZTogVGhlIGF2YWlsYWJpbGl0eSBvZiBsYXJnZSwgZ3JhbnVsYXIgZGF0YSBzZXRzIGhhcyBhbGxvd2VkIGZvciBtb3JlIHByZWNpc2UgYW5kIHJlbGlhYmxlIGFuYWx5c2lzLiANCjIwMDBzOltNbnRuZ2ddW0V4dHJlbWVdIEluIHRoZSBlYXJseSAyMDAwcywgRGlkaWVyIEJlcnRob2Qgd2FzIHRoZSBiZXN0IGNyYWNrIGNsaW1iZXIgaW4gdGhlIHdvcmxkLCB0aGVuIGhlIGRyb3BwZWQgb3V0IG9mIGNsaW1iaW5nIGFuZCBlc3NlbnRpYWxseSBkaXNhcHBlYXJlZCBmcm9tIHRoZSB3b3JsZC4NCjIwMDBzOltSZWFsdHldIEVhcmx5IDIwMDBzOiBSZWFsIGVzdGF0ZSB3YXMgaW4gaXRzIGVhcmx5IHN0YWdlcyBpbiBJbmRpYSwgd2l0aCBncmFkdWFsIGdyb3d0aCBhbmQgZGV2ZWxvcG1lbnQuIA0KMjAwMHM6VGVhbXdvcmsgaXMgbm93IGFuIGludGVncmFsIHBhcnQgb2Ygb3JnYW5pemF0aW9uYWwgc3RyYXRlZ3ksIHdpdGggYSBncmVhdGVyIGVtcGhhc2lzIG9uIGN1c3RvbWl6YXRpb24sIHBlcnNvbmFsaXphdGlvbiwgYW5kIHN0cmF0ZWdpYyBpbnRlZ3JhdGlvbiBvZiB0ZWFtLWJ1aWxkaW5nIHByYWN0aWNlcy4gVGhlIHJpc2Ugb2YgdGVjaG5vbG9neSBoYXMgYWxzbyBpbmZsdWVuY2VkIHRlYW13b3JrLCB3aXRoIHJlbW90ZSB3b3JrIGJlY29taW5nIG1vcmUgcHJldmFsZW50IGFuZCBuZXcgdG9vbHMgZW1lcmdpbmcgdG8gZmFjaWxpdGF0ZSBjb2xsYWJvcmF0aW9uLiANCg0KMjAwMDpbVVNdW0dlb1BvbGl0aWNzXSBvdmVydGhyb3cgb2YgU2xvYm9kYW4gTWlsb8WhZXZpxIcuIChVUydzIGludm9sdmVtZW50IGluIHJlZ2ltZSBjaGFuZ2UpDQoyMDAwOiBbR2VvUG9saXRpY3NdW01pbGl0YXJ5XVtFY29ub21pY3NdIFRoZSBVUyBEb2xsYXIgaG9sZHMgYSA3MiUgc2hhcmUgb2YgYWxsIGdsb2JhbCBjdXJyZW5jeSByZXNlcnZlcyBbWzE2OjQyXShodHRwOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dllKcmkxZU5SeWMmdD0xMDAyKV0uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdIDI2IEFwcmlsIDIwMDA6IHRoZSBHZXJtYW4gdGVhbSBvcGVyYXRpbmcgdGhlIG1hc3Mgc3BlY3Ryb21ldGVyIG9uIE5BU0EncyBTdGFyZHVzdCBtaXNzaW9uIGFubm91bmNlZCB0aGUgZGV0ZWN0aW9uIG9mIHZlcnkgbGFyZ2Ugb3JnYW5pYyBtb2xlY3VsZXMgaW4gaW50ZXJzdGVsbGFyIHNwYWNlLiBOb25iaW9sb2dpY2FsIHNvdXJjZXMgZm9yIG9yZ2FuaWMgbW9sZWN1bGVzIHNvIGxhcmdlIGFyZSBub3Qga25vd24uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdMTkgT2N0b2JlciAyMDAwLCBhIHRlYW0gb2YgYmlvbG9naXN0cyBhbmQgYSBnZW9sb2dpc3QgYW5ub3VuY2VkIHRoZSByZXZpdmFsIG9mIGJhY3RlcmlhIHRoYXQgYXJlIDI1MCBtaWxsaW9uIHllYXJzIG9sZCwgc3RyZW5ndGhlbmluZyB0aGF0IGNhc2UgdGhhdCBiYWN0ZXJpYWwgc3BvcmVzIGNhbiBiZSBpbW1vcnRhbC4NCjEzIERlY2VtYmVyIDIwMDA6IGEgTkFTQSB0ZWFtIGRlbW9uc3RyYXRlZCB0aGF0IHRoZSBtYWduZXRvc29tZXMgaW4gTWFycyBtZXRlb3JpdGUgQUxIIDg0MDAxIGFyZSBiaW9sb2dpY2FsLg0KMjAwMDpbUmVzZWFyY2hdW1NwYWNlXSBNaWxlaWtvd3NreSBDLCBDdWNpbm90dGEgRkEsIFdpbHNvbiBKVywgR2xhZG1hbiBCLCBIb3JuZWNrIEcsIExpbmRlZ3JlbiBMLCBNZWxvc2ggSiwgUmlja21hbiBILCBWYWx0b25lbiBNLCBaaGVuZyBKUS4gTmF0dXJhbCB0cmFuc2ZlciBvZiB2aWFibGUgbWljcm9iZXMgaW4gc3BhY2UuIEljYXJ1cyAyMDAwLCAxNDU6Mzkx4oCTNDI3LiBbRE9JXSBbUHViTWVkXSBbR29vZ2xlIFNjaG9sYXJdDQoyMDAwOltTcGFjZVhdIFMvMjAwMCAoOTApIDEgTW9vbiBEaXNjb3ZlcmVyOiBXaWxsaWFtIEouIE1lcmxpbmUgT3JiaXRzOiA5MCBBbnRpb3BlIEFic29sdXRlIG1hZ25pdHVkZTogOS4wMg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gZGVtb25zdHJhdGVkIFNob3LigJlzIGFsZ29yaXRobSBvbiBhIDUtcXViaXQgTk1SIHF1YW50dW0gY29tcHV0ZXIsIGZhY3RvcmluZyB0aGUgbnVtYmVyIDE1Lg0KMjAwMDogQXQgYWdlIDE0IGFuZCBpbiBjbGFzcyA4dGgsIEFhcm9uIFN3YXJ0eiBiZWNhbWUgYSBtZW1iZXIgb2YgdGhlIHdvcmtpbmcgZ3JvdXAgdGhhdCBhdXRob3JlZCB0aGUgUlNTIDEuMCB3ZWIgc3luZGljYXRpb24gc3BlY2lmaWNhdGlvbi4NCjIwMDA6IE1ha2VteVRyaXANCjIwMDAgKEphbiAxNCk6W0phY2tdIEthaG8gTmFhLi4uIFB5YWFyIEhhaQ0KMjAwMCAoRmViKTogSW5kaWFuIFJhaWx3YXlzIHdlYiBzaXRlIGkuZS4gaHR0cDovL2luZGlhbnJhaWx3YXlzLmdvdi5pbi8gd2FzIGRlcGxveWVkIGJ5IENSSVMuDQoyMDAwIChNYXIpOltCb29rXSBNYWxjb2xtIEdsYWR3ZWxsJ3MgZGVidXQgYm9vaywgVGhlIFRpcHBpbmcgUG9pbnQ6IEhvdyBMaXR0bGUgVGhpbmdzIENhbiBNYWtlIGEgQmlnIERpZmZlcmVuY2UuIA0KQmxpbms6IFRoZSBQb3dlciBvZiBUaGlua2luZyBXaXRob3V0IFRoaW5raW5nICgyMDA1LCBKYW4gMTEpOyANCk91dGxpZXJzOiBUaGUgU3Rvcnkgb2YgU3VjY2VzcyAoMjAwOCwgTm92IDE4KTsgDQpXaGF0IHRoZSBEb2cgU2F3OiBBbmQgT3RoZXIgQWR2ZW50dXJlcyAoMjAwOSwgT2N0IDIwKTsgDQpEYXZpZCBhbmQgR29saWF0aDogVW5kZXJkb2dzLCBNaXNmaXRzLCBhbmQgdGhlIEFydCBvZiBCYXR0bGluZyBHaWFudHMgKDIwMTMsIE9jdCAxKQ0KVGFsa2luZyB0byBTdHJhbmdlcnM6IFdoYXQgV2UgU2hvdWxkIEtub3cgYWJvdXQgdGhlIFBlb3BsZSBXZSBEb24ndCBLbm93ICgyMDE5KQ0KMjAwMCAoQXByIDEpOltCb29rXSBSb2JlcnQgS2l5b3Nha2kgJiBTaGFyb24gTGVjaHRlcidzIFJpY2ggRGFkIFBvb3IgRGFkLg0KMjAwMCAoQXByIDEpOltUZWNobm9sb2d5XVtSZXNlYXJjaF0gIldoeSBUaGUgRnV0dXJlIERvZXNuJ3QgTmVlZCBVcyIgaXMgYW4gYXJ0aWNsZSB3cml0dGVuIGJ5IEJpbGwgSm95IGluIHRoZSBBcHJpbCAyMDAwIGlzc3VlIG9mIFdpcmVkIG1hZ2F6aW5lLiBJbiB0aGUgYXJ0aWNsZSwgaGUgYXJndWVzIHRoYXQgIk91ciBtb3N0IHBvd2VyZnVsIDIxc3QtY2VudHVyeSB0ZWNobm9sb2dpZXPigJRyb2JvdGljcywgZ2VuZXRpYyBlbmdpbmVlcmluZywgYW5kIG5hbm90ZWNo4oCUYXJlIHRocmVhdGVuaW5nIHRvIG1ha2UgaHVtYW5zIGFuIGVuZGFuZ2VyZWQgc3BlY2llcy4iIA0KMjAwMCAoSnVuIDI2KTpbTXVzaWNdICJZZWxsb3ciIGlzIGEgc29uZyBieSB0aGUgQnJpdGlzaCByb2NrIGJhbmQgQ29sZHBsYXkuIFRoZSBiYW5kIHdyb3RlIHRoZSBzb25nIGFuZCBjby1wcm9kdWNlZCBpdCB3aXRoIEJyaXRpc2ggcmVjb3JkIHByb2R1Y2VyIEtlbiBOZWxzb24gZm9yIHRoZWlyIGRlYnV0IGFsYnVtLCBQYXJhY2h1dGVzICgyMDAwKS4gVGhlIHNvbmcgd2FzIHJlY29yZGVkIGluIE1hcmNoIDIwMDAgYW5kIHJlbGVhc2VkIG9uIDI2IEp1bmUgdGhhdCBzYW1lIHllYXIuDQoyMDAwIChTZXApOiBBbWF6b24ncyBKZWZmIEJlem9zIGZvdW5kZWQuDQoyMDAwIChTZXApOltDcmltZV1bSW5kaWFdIENoaG90YSBTaGFrZWVsJ3MgYXR0YWNrIG9uIFJhamFuIGluIGhpcyBCYW5na29rIGhvdGVsIHJvb20uDQoyMDAwIChTZXApOiBSYWlsVGVsIENvcnBvcmF0aW9uIG9mIEluZGlhIEx0ZC4gZm91bmRlZCBhbmQgSFEnZCBhdCAxNDMsIEluc3RpdHV0aW9uYWwgQXJlYSwgU2VjdG9yLTQ0LCBHdXJnYW9uLCBIYXJ5YW5hLCBJbmRpYS4gSXQgaXMgYSBNaW5pcmF0bmEgZW50ZXJwcmlzZSBvZiBHb3Zlcm5tZW50IG9mIEluZGlhIGZvY3VzaW5nIG9uIHByb3ZpZGluZyBicm9hZGJhbmQgYW5kIFZQTiBzZXJ2aWNlcy4NCjIwMDAgKFNlcCAxNyk6IFtHZW9Qb2xpdGljc10gVGhlIGlkZWEgb2YgYW4gQXNpYSBDb29wZXJhdGlvbiBEaWFsb2d1ZSAoQUNEKSB3YXMgcmFpc2VkIGF0IHRoZSBGaXJzdCBJbnRlcm5hdGlvbmFsIENvbmZlcmVuY2Ugb2YgQXNpYW4gUG9saXRpY2FsIFBhcnRpZXMgKGhlbGQgaW4gTWFuaWxhIGJldHdlZW4gMTfigJMyMCBTZXB0ZW1iZXIgMjAwMCkgYnkgU3VyYWtpYXJ0IFNhdGhpcmF0aGFpLCB0aGVuIGRlcHV0eSBsZWFkZXIgb2YgdGhlIG5vdyBkZWZ1bmN0IFRoYWkgUmFrIFRoYWkgUGFydHksIG9uIGJlaGFsZiBvZiBoaXMgcGFydHkgbGVhZGVyLCBUaGFrc2luIFNoaW5hd2F0cmEsIHRoZW4gUHJpbWUgTWluaXN0ZXIgb2YgVGhhaWxhbmQuIEl0IHdhcyBzdWdnZXN0ZWQgdGhhdCBBc2lhIGFzIGEgY29udGluZW50IHNob3VsZCBoYXZlIGl0cyBvd24gZm9ydW0gdG8gZGlzY3VzcyBBc2lhLXdpZGUgY29vcGVyYXRpb24uIEFmdGVyd2FyZHMsIHRoZSBpZGVhIG9mIHRoZSBBQ0Qgd2FzIGZvcm1hbGx5IHB1dCBmb3J3YXJkIGR1cmluZyB0aGUgMzR0aCBBU0VBTiBGb3JlaWduIE1pbmlzdGVycyBNZWV0aW5nIGluIEhhbm9pLCAyM+KAkzI0IEp1bHkgMjAwMSBhbmQgYXQgdGhlIEFTRUFOIEZvcmVpZ24gTWluaXN0ZXJzIFJldHJlYXQgaW4gUGh1a2V0LCAyMOKAkzIxIEZlYnJ1YXJ5IDIwMDIuDQoyMDAwIChPY3QgNCk6W011c2ljXSBGb3JtZWQgaW4gMTk5NiwgTGlua2luIFBhcmsgcm9zZSB0byBpbnRlcm5hdGlvbmFsIGZhbWUgd2l0aCB0aGVpciBkZWJ1dCBzdHVkaW8gYWxidW0sIEh5YnJpZCBUaGVvcnkuIEZvdXIgc2luZ2xlcyB3ZXJlIHJlbGVhc2VkIGZyb20gSHlicmlkIFRoZW9yeTogIk9uZSBTdGVwIENsb3NlciIsICJJbiB0aGUgRW5kIiwgIkNyYXdsaW5nIiBhbmQgIlBhcGVyY3V0IiwgYWxsIG9mIHRoZW0gYmVpbmcgcmVzcG9uc2libGUgZm9yIGxhdW5jaGluZyBMaW5raW4gUGFyayBpbnRvIG1haW5zdHJlYW0gcG9wdWxhcml0eS4gV2hpbGUgIkluIHRoZSBFbmQiIHdhcyB0aGUgbW9zdCBzdWNjZXNzZnVsIG9mIHRoZSBmb3VyLCBhbGwgb2YgdGhlIHNpbmdsZXMgaW4gdGhlIGFsYnVtIHJlbWFpbiBzb21lIG9mIHRoZSBiYW5kJ3MgbW9zdCBzdWNjZXNzZnVsIHNvbmdzIHRvIGRhdGUuDQoyMDAwIChOb3YgOSk6IGZvcm1hdGlvbiBvZiBVdHRhcmFraGFuZCBhcyBVdHRhcmFuY2hhbCAyMDAwIChKdW4gOSk6IEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQWN0LCAyMDAwLiBUaGUgYmlsbCB3YXMgcGFzc2VkIGluIHRoZSBidWRnZXQgc2Vzc2lvbiBvZiAyMDAwIGFuZCBzaWduZWQgYnkgUHJlc2lkZW50IEsuIFIuIE5hcmF5YW5hbiBvbiA5IE1heSAyMDAwLiBUaGUgYmlsbCB3YXMgZmluYWxpc2VkIGJ5IGdyb3VwIG9mIG9mZmljaWFscyBoZWFkZWQgYnkgdGhlbiBNaW5pc3RlciBvZiBJbmZvcm1hdGlvbiBUZWNobm9sb2d5LCBQcmFtb2QgTWFoYWphbi4NCjIwMDA6IGZvcm1hdGlvbiBvZg0KMjAwMDogSmFpc2gtZS1Nb2hhbW1lZCAobGl0ZXJhbGx5ICJUaGUgQXJteSBvZiBNdWhhbW1hZCIsIEplTSkgZm91bmRlZCBhdCBCYWhhd2FscHVyLCBQdW5qYWIsIFBha2lzdGFuLg0KMjAwMDogQ2hpbmEncyBCZWlEb3UgbmF2aWdhdGlvbiB0ZXN0IHN5c3RlbSBzdGFydHMuDQoyMDAwOiBGaXNlcnYgaGFkIGFjcXVpcmVkIG1vcmUgdGhhbiA5MCBidXNpbmVzc2VzLiBUaGUgbnVtYmVyIG9mIGVtcGxveWVlcyBncmV3IGZyb20gMjY0IHRvIDE0LDAwMC4gRmlzZXJ2IHdhcyBhbiBpbmR1c3RyeSBsZWFkZXIsIHdpdGggcmV2ZW51ZSB0aGF0IGluY3JlYXNlZCBmcm9tICQyMSBtaWxsaW9uIHRvICQxLjQgYmlsbGlvbiBpbiAxNSB5ZWFycy4NCjIwMDAgKERlYyA4KTpbR2FtaW5nXSBQcm9qZWN0IEkuRy5JLiBpcyBhIHRhY3RpY2FsIGZpcnN0LXBlcnNvbiBzaG9vdGVyIHZpZGVvIGdhbWUuIEl0IHdhcyBkZXZlbG9wZWQgYnkgSW5uZXJsb29wIFN0dWRpb3MgYW5kIHJlbGVhc2VkIGluIERlY2VtYmVyIDIwMDAgYnkgRWlkb3MgSW50ZXJhY3RpdmUuIFRoZSBnYW1lIHJlY2VpdmVkIG1peGVkIHJldmlld3MgZHVlIHRvIHNob3J0Y29taW5ncyBpbmNsdWRpbmcgYSBwb29ybHkgcHJvZ3JhbW1lZCBBLkkuLCBsYWNrIG9mIGEgbWlkLWdhbWUgc2F2ZSBvcHRpb24sIGFuZCB0aGUgbGFjayBvZiBtdWx0aXBsYXllciBmZWF0dXJlcy4gSG93ZXZlciBpdCB3YXMgcHJhaXNlZCBmb3IgaXRzIHNvdW5kIGRlc2lnbiBhbmQgZ3JhcGhpY3MsIHRoYW5rcyBpbiBwYXJ0IHRvIGl0cyB1c2Ugb2YgYSBwcm9wcmlldGFyeSBnYW1lIGVuZ2luZSB0aGF0IHdhcyBwcmV2aW91c2x5IHVzZWQgaW4gSW5uZXJsb29wJ3MgSm9pbnQgU3RyaWtlIEZpZ2h0ZXIuDQoyMDAwIChEZWMgMjEpOltKYWNrXSBSYWp1IENoYWNoYSByZWxlYXNlZC4NCjIwMDA6IFtCdXNpbmVzc11bRmluYW5jZV1bQ29ycG9yYXRlXVtJbmRpYV0gUklMIHBpbG90ZWQgd29ybGQncyBsYXJnZXN0IHBldHJvbGV1bSByZWZpbmVyeSBhdCBKYW1uYWdhciwgR3VqYXJhdCwgcmVmaW5pbmcgMS4yNE1uIGJhcnJlbHMvZGF5Lg0KMjAwMDpbQ3JpbWVdW0luZGlhXSBQb2xpY2UgZW5jb3VudGVycyBpbiBNdW1iYWkuIE1vc3QgY3JpbWluYWxzIGZsZWVpbmcgdG8gQ2FsY3VsdHRhLiBBZnRhYiBCaGF0a2kgZGVzdGFiaWxpc2UgdGhlIGVjb25vbXkgYnkgc3ByZWFkaW5nIGZha2UgY3VycmVuY3kgbm90ZXMgcHJpbnRlZCBieSBJU0kgZnVuY3Rpb25hcmllcywgYW5kIHR3bywgc2VuZCBtZXJjZW5hcmllcyB0byBjb25kdWN0IGFiZHVjdGlvbnMgYW5kIHRlcnJvcmlzdCBhdHRhY2tzLg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBUZWNobmljYWwgVW5pdmVyc2l0eSBvZiBNdW5pY2ggKDUgcXViaXQpOyBMb3MgQWxhbW9zIE5hdGlvbmFsIExhYiAoNyBxdWJpdHMpDQoyMDAwOkluIDIwMDAsIFRhdGEgVGVhIGFjcXVpcmVkIHRoZSBUZXRsZXkgVGVhIENvbXBhbnkgZm9yICQ0MDcgbWlsbGlvbi4gT3RoZXIgbm90YWJsZSBhY3F1aXNpdGlvbnMgaW5jbHVkZSBOYXRTdGVlbCAoMjAwNCksIEJydW5uZXIgTW9uZCAoMjAwNSksIGFuZCBFaWdodCBPJ0Nsb2NrIENvZmZlZSAoMjAwNikuIA0KMjAwMDogQmlybGEgYWNxdWlyZWQgSW5kaWFuIEFsdW1pbnVtIENvbXBhbnkgKElOREFMKS4gDQoyMDAwOiBTYXR5YSBOYXJheWFuYSBHb2Vua2Egd29ya2VkIGFzIGFuIGludGVybmF0aW9uYWwgYnVzaW5lc3NtYW4gYmFzZWQgaW4gTXlhbm1hciBhbmQgSW5kaWEgZm9yIGEgbGFyZ2UgcGFydCBvZiBoaXMgbGlmZS4gSGUgd2FzIGEga2V5bm90ZSBzcGVha2VyIG9uIHRoZSBzdWJqZWN0IG9mIFNwaXJpdHVhbGl0eSBpbiBCdXNpbmVzcyBhdCB0aGUgMzB0aCBXb3JsZCBFY29ub21pYyBGb3J1bSBpbiBEYXZvcywgU3dpdHplcmxhbmQgYmV0d2VlbiAyNiBKYW4gYW5kIDIgRmViIDIwMDAuIFR3byB5ZWFycyBsYXRlciBoZSBjb25kdWN0ZWQgdGhlIGZpcnN0IDEwLWRheSBjb3Vyc2UgaW4gVmlwYXNzYW5hIE1lZGl0YXRpb24gZXNwZWNpYWxseSBmb3IgYnVzaW5lc3MgZXhlY3V0aXZlcyBhbmQgZ292ZXJubWVudCBvZmZpY2lhbHMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAyMjUgeWVhcnMgb2YgSW5kZXBlbmRlbnQgVVNBIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIA0KDQoyMDAxOltVU11bR2VvUG9saXRpY3NdIGludmFzaW9uIG9mIEFmZ2hhbmlzdGFuLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMjAwMTpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgU2hhbmdoYWkgQ29vcGVyYXRpb24gT3JnYW5pc2F0aW9uIChTQ08pIGlzIGEgRXVyYXNpYW4gcG9saXRpY2FsLCBlY29ub21pYywgaW50ZXJuYXRpb25hbCBzZWN1cml0eSBhbmQgZGVmZW5jZSBvcmdhbml6YXRpb24gb2YgdGVuIG1lbWJlciBzdGF0ZXMuIEl0IHdhcyBlc3RhYmxpc2hlZCBpbiAyMDAxIGJ5IHRoZSBQZW9wbGUncyBSZXB1YmxpYyBvZiBDaGluYSwgS2F6YWtoc3RhbiwgS3lyZ3l6c3RhbiwgUnVzc2lhLCBhbmQgVGFqaWtpc3RhbiBhbmQgVXpiZWtpc3Rhbi4gSW4gSnVuZSAyMDE3LCBpdCBleHBhbmRlZCB0byBlaWdodCBzdGF0ZXMsIHdpdGggSW5kaWEgYW5kIFBha2lzdGFuLiBJcmFuIGpvaW5lZCB0aGUgZ3JvdXAgaW4gSnVseSAyMDIzLCBhbmQgQmVsYXJ1cyBpbiBKdWx5IDIwMjQuIFNldmVyYWwgY291bnRyaWVzIGFyZSBlbmdhZ2VkIGFzIG9ic2VydmVycyBvciBkaWFsb2d1ZSBwYXJ0bmVycy4gRm91bmRlcnM6IENoaW5hLCBSdXNzaWEsIEthemFraHN0YW4sIFV6YmVraXN0YW4sIEt5cmd5enN0YW4sIFRhamlraXN0YW47IEhlYWRxdWFydGVyczogQmVpamluZywgQ2hpbmE7IEZvdW5kZWQ6IDE1IEp1bmUgMjAwMQ0KMjAwMTpbQnVzaW5lc3NdIDIwMDHigJMyMDA1OiBIRlQgZXhlY3V0aW9uIHRpbWVzIGRlY3JlYXNlZCBmcm9tIHNldmVyYWwgc2Vjb25kcyB0byBtaWxsaXNlY29uZHMuIChIRlQpDQoyMDAxOltDb21wdXRpbmddW1F1YW50dW1dICBJQk0gaW1wbGVtZW50ZWQgR3JvdmVy4oCZcyBhbGdvcml0aG0gb24gYSA3LXF1Yml0IE5NUiBxdWFudHVtIGNvbXB1dGVyLCBmaW5kaW5nIGEgbWFya2VkIGl0ZW0gaW4gYSBkYXRhYmFzZSBvZiA0IGVudHJpZXMuDQoyMDAxOiBMaWZlIG9mIFBpIGlzIGEgQ2FuYWRpYW4gcGhpbG9zb3BoaWNhbCBub3ZlbCBieSBZYW5uIE1hcnRlbCBwdWJsaXNoZWQuIFRoZSBwcm90YWdvbmlzdCBpcyBQaXNjaW5lIE1vbGl0b3IgIlBpIiBQYXRlbCwgYW4gSW5kaWFuIGJveSBmcm9tIFBvbmRpY2hlcnJ5IHdobyBleHBsb3JlcyBpc3N1ZXMgb2Ygc3Bpcml0dWFsaXR5IGFuZCBtZXRhcGh5c2ljcyBmcm9tIGFuIGVhcmx5IGFnZS4gSGUgc3Vydml2ZXMgMjI3IGRheXMgYWZ0ZXIgYSBzaGlwd3JlY2sgd2hpbGUgc3RyYW5kZWQgb24gYSBsaWZlYm9hdCBpbiB0aGUgUGFjaWZpYyBPY2VhbiB3aXRoIGEgQmVuZ2FsIHRpZ2VyIHdoaWNoIHJhaXNlcyBxdWVzdGlvbnMgYWJvdXQgdGhlIG5hdHVyZSBvZiByZWFsaXR5IGFuZCBob3cgaXQgaXMgcGVyY2VpdmVkIGFuZCB0b2xkLjtTZXZlbiBTdG9yaWVzICgxOTkzKQ0KMjAwMTpbQ3JpbWVdW0luZGlhXSBDaGhvdGEgUmFqYW4ncyBhc3NvY2lhdGVzIHRyYWNrZWQgZG93biBhbmQgc2hvdCBkZWFkIGhvdGVsaWVyIFZpbm9kIGluIE11bWJhaSwgYXMgd2VsbCBhcyBTdW5pbCBTb2FucyDigJMgYW5vdGhlciBEYXdvb2QgYXNzb2NpYXRlLg0KMjAwMSAoSmFuIDEpOltCb29rXSBHcmVnIE1jS2Vvd24ncyBFc3NlbnRpYWxpc206IFRoZSBEaXNjaXBsaW5lZCBQdXJzdWl0IG9mIExlc3MNCjIwMDEgKEphbiAxKTpbQm9va10gQnJpYW4gVHJhY3kncyBFYXQgVGhhdCBGcm9nIQ0KMjAwMTogVGhlIEFyZHVpbm8gcHJvamVjdCBzdGFydGVkIGF0IHRoZSBJbnRlcmFjdGlvbiBEZXNpZ24gSW5zdGl0dXRlIEl2cmVhIChJRElJKSBpbiBJdnJlYSwgSXRhbHkuIEF0IHRoYXQgdGltZSwgdGhlIHN0dWRlbnRzIHVzZWQgYSBCQVNJQyBTdGFtcCBtaWNyb2NvbnRyb2xsZXIgYXQgYSBjb3N0IG9mICQxMDAsIGEgY29uc2lkZXJhYmxlIGV4cGVuc2UgZm9yIG1hbnkgc3R1ZGVudHMuDQoyMDAxIChBcHIgNHRoKTogQ2hhcmxlcyBNLiBWZXN0LCB0aGUgdGhlbiBQcmVzaWRlbnQgb2YgTUlUIGFubm91bmNlZCBPcGVuQ291cnNlV2FyZSAoT0NXKSBwdWJsaWNpemluZyBhbGwgb2YgaXRzIDIsMDAwIGNvdXJzZXMgIGF0IHRoZSBlc3RpbWF0ZWQgY29zdCBvZiAkMTAwIG1pbGxpb24gKG9uIGFuIGF2Zy4sIGEgTUlUIHN0dWRlbnRzIHBheXMgYXJvdW5kICQyNiwwMDAgYXMgb2ZmbGluZSB0dWl0aW9uIGZlZSkNCjIwMDE6IFVTIGludmFkZWQgQWZnaGFuaXN0YW4gaW4gcmVzcG9uc2UgdG8gOS8xMSBhdHRhY2tzLiBPZmZpY2lhbGx5LCBJdCBoYXMgYmVjb21lIHRoZSBsb25nZXN0IHdhciBpbiBBbWVyaWNhbiBoaXN0b3J5Lg0KMjAwMTogaVBvZCBieSBUb255IEZhZGVsbA0KMjAwMSAoSnVuIDE1KTpbSmFja10gR2FkYXI6IEVrIFByZW0gS2F0aGE7IExhZ2FhbjogT25jZSBVcG9uIGEgVGltZSBpbiBJbmRpYQ0KMjAwMSAoU2VwIDExKTogOS8xMSBUZXJyb3Jpc3QgYXR0YWNrcy4gVGhlIFNlcHRlbWJlciAxMSBvciA5LzExLCBhdHRhY2tzIHdlcmUgYSBzZXJpZXMgb2YgZm91ciBjb29yZGluYXRlZCB0ZXJyb3Jpc3QgYXR0YWNrcyBieSB0aGUgSXNsYW1pYyB0ZXJyb3Jpc3QgZ3JvdXAgYWwtUWFlZGEgb24gdGhlIFVuaXRlZCBTdGF0ZXMgb24gdGhlIG1vcm5pbmcgb2YgVHVlc2RheSwgU2VwIDExLiBUaGUgbG9zcyBvZiBsaWZlIHdhcyBlc3RpbWF0ZWQgYXQganVzdCB1bmRlciAzLDAwMC4gVGhlIGV2ZW50IGNoYW5nZWQgQW1lcmljYW4gZm9yZWlnbiBwb2xpY3kuIEl0IHdhcyBhIG1vdGl2YXRpbmcgZmFjdG9yIGJlaGluZCB0aGUgY29udHJvdmVyc2lhbCBpbnZhc2lvbiBvZiBJcmFxIGFuZCBsZWQgdG8gYSDigJh3YXIgb24gdGVycm9y4oCZIHN5bWJvbGlzZWQgYnkgR3VhbnRhbmFtbyBCYXkgYW5kIGEgZGViYXRlIG92ZXIgdGhlIGp1c3RpZmljYXRpb24gb2YgdG9ydHVyZS4NCjIwMDEgKE9jdCA3KTpbR2VvUG9saXRpY3NdIFVuaXRlZCBTdGF0ZXMgaW52YXNpb24gb2YgQWZnaGFuaXN0YW46IEluIGxhdGUgMjAwMSwgdGhlIFVuaXRlZCBTdGF0ZXMgYW5kIGl0cyBjbG9zZSBhbGxpZXMgaW52YWRlZCBBZmdoYW5pc3RhbiBhbmQgdG9wcGxlZCB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50LiBUaGUgaW52YXNpb24ncyBzdGF0ZWQgYWltcyB3ZXJlIHRvIGRpc21hbnRsZSBhbC1RYWVkYSwgd2hpY2ggaGFkIGV4ZWN1dGVkIHRoZSBTZXB0ZW1iZXIgMTEgYXR0YWNrcywgYW5kIHRvIGRlbnkgaXQgYSBzYWZlIGJhc2Ugb2Ygb3BlcmF0aW9ucyBpbiBBZmdoYW5pc3RhbiBieSByZW1vdmluZyB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50IGZyb20gcG93ZXIuIERlYyA3LCAyMDAxIG9ud2FyZCBzdGFydGVkIFdhciBpbiBBZmdoYW5pc3Rhbi4NCjIwMDEgKE9jdCAxNik6W0Jvb2tdIE1jS2luc2V5IFJlc2VhcmNoZXIgSmFtZXMgQy4gQ29sbGlucycgR29vZCBUbyBHcmVhdDogV2h5IFNvbWUgQ29tcGFuaWVzIE1ha2UgdGhlIExlYXAuLi5BbmQgT3RoZXJzIERvbid0OyANCjIwMDEgKE5vdik6W0NyaW1lXVtJbmRpYV0gQWJkdWwgR2FmZmFyIGFsaWFzIENoaWtuYSBHYWZmYXIgY2F1Z2h0IGJ5IHRoZSBkZXRlY3RpdmUgZGVwYXJ0bWVudCBpbiBDYWxjdXR0YSANCjIwMDEgKEphbiAyKTogVGhlIG5vcnRoZXJuIGVsZWN0cmljYWwgZ3JpZCBjb2xsYXBzZWQgaW4gSW5kaWEuIEEgZmF1bHQgaW4gdGhlIHRyYW5zbWlzc2lvbiBzeXN0ZW0gaW4gdGhlIHN0YXRlIG9mIFV0dGFyIFByYWRlc2ggbGVkIHRvIGNhc2NhZGluZyBmYWlsdXJlIHRocm91Z2hvdXQgbm9ydGhlcm4gSW5kaWEgYWZmZWN0aW5nIDIzIGNyb3JlIHJlc2lkZW50cy4NCjIwMDE6IElWUlMgKCdJbnRlcmFjdGl2ZSBWb2ljZSBSZXNwb25zZSBTeXN0ZW0nKSBmb3IgdGVsZXBob25pYyBlbnF1aXJpZXMgYWJvdXQgdHJhaW5zIGludHJvZHVjZWQgaW4gc29tZSBzdGF0aW9ucy4NCjIwMDE6IE1hZGVFYXN5IGluY29ycG9yYXRlZCBhdCA0NC1BLzEsIEthbHUgU2FyYWksIE5lYXIgSGF1eiBLaGFzIE1ldHJvIFN0YXRpb24sIE5ldyBEZWxoaS0xMTAwMTYNCjIwMDE6IEFjYyB0byAyMDAxIGNlbnN1cywgMzAgbGFraHMgd2VyZSBpbW1pZ3JhdGVkIHRvIEluZGlhIGZyb20gQmFuZ2xhZGVzaCBhbG9uZSwgZm9sbG93ZWQgYnkgMTAgbGFraHMgZnJvbSBQYWtpc3RhbiBhbmQgNiBsYWtocyBmcm9tIE5lcGFsLg0KMjAwMSAoRGVjIDEzKTpbQ3JpbWVdW0luZGlhXSBUZXJyb3Jpc3QgYXR0YWNrIG9uIEluZGlhJ3MgUGFybGlhbWVudC4NCjIwMDE6IHRoZSBjdXN0b21lciBiYXNlIG9mIG1vYmlsZSBwaG9uZSBjb21wYW5pZXMgd2FzIDQgbWlsbGlvbi4NCjIwMDE6IEJlbmVmaXQgbGFubmVycywgVGV4YXMgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBIZWFsdGggQmVuZWZpdCBkaXZpc2lvbi4NCjIwMDE6IE5ldyBIb3Jpem9ucyB3YXMgaW5pdGlhbGx5IHNlbGVjdGVkIGZvciBmdW5kaW5nIGluIDIwMDEgYnV0IHdhcyBleGNsdWRlZCBmcm9tIHRoZSBOQVNBIDIwMDMgYnVkZ2V0LiBGdW5kaW5nIGZvciB0aGUgbWlzc2lvbiB3YXMgcmVpbnN0YXRlZCBhZnRlciBOZXcgSG9yaXpvbnMgd2FzIGxpc3RlZCBhcyBhIHRvcCBwcmlvcml0eSBpbiB0aGUgUGxhbmV0YXJ5IFNjaWVuY2UgRGVjYWRhbCBTdXJ2ZXkgb2YgMjAwM+jjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlallkllklklklklklklklklklklklklklklklklklklklklklklklklklklklkjjajlkasjdlajdlkajdlaj
+KAkzIwMDEuDQoxOTkzOiBBc2hvayBIYWxsIEdpcmwncyBSZXNpZGVudGlhbCBTY2hvb2wsIE1hamtoYWxpLg0KMTk5MzogQnkgdGhpcyB5ZWFyIHRoZXJlIHdlcmUgYXJvdW5kIDEwMCB3ZWItc2VydmVycyBhY3Jvc3MgdGhlIHdvcmxkLiAoQSByZXBvcnQgcHVibGlzaGVkIGluIGZpcnN0IGlzc3VlIG9mIFRoZSBXb3JsZCBXaWRlIFdlYiBOZXdzbGV0dGVyLCAxOTkzKQ0KMTk5MzogQUMgMy10aWVyIGNvYWNoZXMgJiBTbGVlcGVyIGNsYXNzIGFyZSBpbnRyb2R1Y2VkIGFwYXJ0IGZyb20gc2Vjb25kIGNsYXNzLg0KMTk5MzogR29JJ3MgRGlzdHJpY3QgUHJpbWFyeSBFZHVjYXRpb24gUHJvZ3JhbW1lIChEUEVQKSB3YXMgbGF1bmNoZWQsIHdpdGggYW4gYWltIG9mIGFjaGlldmluZyB0aGUgb2JqZWN0aXZlIG9mIHVuaXZlcnNhbCBwcmltYXJ5IGVkdWNhdGlvbi4gVGhpcyBwcm9ncmFtbWVkIGxhaWQgdGhlIGZvdW5kYXRpb25zIGZvciDgpLjgpLDgpY3gpLUg4KS24KS/4KSV4KWN4KS34KS+IOCkheCkreCkv+Ckr+CkvuCkqChFZHVjYXRpb24gZm9yIEFsbCBNb3ZlbWVudCkgYWltZWQgYXQgdGhlIHVuaXZlcnNhbGlzYXRpb24gb2YgZWxlbWVudGFyeSBlZHVjYXRpb24gbWFraW5nIGZyZWUgYW5kIGNvbXB1bHNvcnkgZWR1Y2F0aW9uIHRvIGNoaWxkcmVuIGJldHdlZW4gdGhlIGFnZXMgb2YgNiB0byAxNC4NCjE5OTM6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIHNwbGl0IHdpdGggRGF3b29kIGFuZCBmb3JtZWQgYW4gaW5kZXBlbmRlbnQgZ2FuZyB0aGF0IGZyZXF1ZW50bHkgY2xhc2hlZCB3aXRoIERhd29vZCdzIEQtQ29tcGFueS4NCjE5OTMgKEphbiA3KTpbQ3JpbWVdIFJpb3RzIHJlLXN0YXJ0ZWQgaW4gTXVtYmFpIGFuZCBsYXN0ZWQgZm9yIDIwIGRheXMuIFRoZSBJU0ksIHdoaWNoIGNvbnRyb2xsZWQgc2hpcHBpbmcgcm91dGVzIGZyb20gdGhlIEd1bGYgdG8gSW5kaWEncyB3ZXN0IGNvYXN0LCBkZW1hbmRlZCB0aGF0IHRoZSBtYWZpYSB0cmFuc3BvcnQgd2VhcG9ucyBhbmQgZXhwbG9zaXZlcyBpbnRvIEluZGlhIGluIHJldHVybiBmb3IgdGhlIHVzZSBvZiBQYWtpc3RhbidzIHdhdGVycy4gRGF3b29kIG1ldCB0aGVpciBJU0kgaGFuZGxlcnMgaW4gYSA1IHN0YXIgaG90ZWwgb2YgRHViYWkgaW4gSmFuIG9yIEZlYiBvZiAxOTkzLCB0aGVuIGNhbWUgdGhlIFJEWCB0aHJvdWdoIHRoZSBzYW1lIHBvcm91cyBhbmQgdW5jaGVja2VkIHNlYSByb3V0ZSB0aGF0IDI2LzExIGF0dGFja2VycyBzbGlwcGVkIGFjcm9zcyBhbmQgd3JlY2tlZCBtYXloZW0gaW4gTXVtYmFpLiBUaGUg4oCZOTMgYXR0YWNrcyB3ZXJlIGZpbmFsbHkgZXhlY3V0ZWQgaW4gbWFyY2ggdGhhdCBjbGFpbWVkIHNvbWUgMzAwIGlubm9jZW50IGxpdmVzLg0KMTk5MyAoTWFyIDYpOltQb2xpdHldW0luZGlhXSBTaGFyYWQgUGF3YXIgcmUtZWxlY2V0ZCBhcyBDTSBvZiBNSCBmb3IgMiB5ZWFycy4NCjE5OTMgKE1hciAxMik6W0NyaW1lXSBUaGUgMTk5MyBCb21iYXkgYm9tYmluZ3Mgd2VyZSBhIHNlcmllcyBvZiAxMiB0ZXJyb3Jpc3QgYm9tYmluZ3MgdGhhdCB0b29rIHBsYWNlIGluIEJvbWJheS4gVGhlIHNpbmdsZS1kYXkgYXR0YWNrcyByZXN1bHRlZCBpbiAyNTcgZmF0YWxpdGllcyBhbmQgMSw0MDAgaW5qdXJpZXMuIFRoZXJlIHdhcyBhbm90aGVyIHJhaWQgbmVhciBNYW5pc2ggbWFya2V0IHdoZXJlIGhhbmQgZ3JlbmFkZXMgd2VyZSByZWNvdmVyZWQuIEFmdGVyIGFub3RoZXIgdGlwIG9mZiBsZWQgdG8gZGlzY292ZXJ5IG9mIGEgaHVnZSBxdWFudGl0eSBvZiBSRFggZnJvbSBOYWdsYSBCdW5kZXIgb2ZmIEdob2RidW5kZXIgUm9hZCBpbiBUaGFuZS4g4oCcSW4gYWxsLCA1LDAwMCBraWxvZ3JhbXMgb2YgUkRYIHdhcyBicm91Z2h0IGludG8gTXVtYmFpIGFuZCB3ZSByZWNvdmVyZWQgMywzMDAga2lsb2dyYW1zIG9mIGl0IGluIGFsbCB0aGUgcmFpZHMs4oCdIHNheXMgQ2hhdWd1bGUuIFJlZHVjZWQgU2hvY2sgU2Vuc2l0aXZpdHkgKFJTUykgZXhwbG9zaXZlcywgc3VjaCBhcyBSU1MtUkRYLCB3aGljaCBjb3N0cyBhYm91dCBScy4gMSw1MDAtMiwwMDAgcGVyIGtnLiBBbmVlcyBjb250aW51ZWQgb3BlcmF0aW9uIG9mIEQtQ29tcGFueSB3aGljaCBpbmNsdWRlIGNvbnRyYWN0IGtpbGxpbmcsIGV4dG9ydGlvbiwgdGhlIGNpcmN1bGF0aW9uIG9mIGNvdW50ZXJmZWl0IGN1cnJlbmN5LCBhbmQgdGhlIHByb3Zpc2lvbiBvZiBhIHJhbmdlIG9mIGZyZWUtbGFuY2Ugc2VydmljZXMgdG8gdGVycm9yaXN0IGdyb3VwcyBhdCB0aGUgaW5zdGFuY2Ugb2YgUGFraXN0YW4ncyBJbnRlciBTZXJ2aWNlcyBJbnRlbGxpZ2VuY2UgKElTSSkuIEludGVycG9sIFJlZCBDb3JuZXIgbm90aWNlIGZvciBELUNvbXBhbnkuDQoxOTkzIChOb3YgMSk6IFRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGZvdW5kZWQuIEl0IGlzIGFuIGVjb25vbWljIGFuZCBwb2xpdGljYWwgcGFydG5lcnNoaXAgaW52b2x2aW5nIDI4IEV1cm9wZWFuIGNvdW50cmllcy4gSXQgYmVnYW4gYWZ0ZXIgV1cyIHRvIGZvc3RlciBlY29ub21pYyBjby1vcGVyYXRpb24sIHdpdGggdGhlIGlkZWEgdGhhdCBjb3VudHJpZXMgd2hpY2ggdHJhZGUgdG9nZXRoZXIgYXJlIG1vcmUgbGlrZWx5IHRvIGF2b2lkIGdvaW5nIHRvIHdhciB3aXRoIGVhY2ggb3RoZXIuDQoxOTkzIChOb3YgMyk6IFtHZW9Qb2xpdGljc10gVGhlIENvbW1vbiBNYXJrZXQgZm9yIEVhc3Rlcm4gYW5kIFNvdXRoZXJuIEFmcmljYSAoQ09NRVNBKSBpcyBhIHJlZ2lvbmFsIGVjb25vbWljIGNvbW11bml0eSBpbiBBZnJpY2Egd2l0aCB0d2VudHktb25lIG1lbWJlciBzdGF0ZXMgc3RyZXRjaGluZyBmcm9tIFR1bmlzaWEgdG8gRXN3YXRpbmkuIENPTUVTQSB3YXMgZm9ybWVkIGluIERlY2VtYmVyIDE5OTQsIHJlcGxhY2luZyBhIFByZWZlcmVudGlhbCBUcmFkZSBBcmVhIHdoaWNoIGhhZCBleGlzdGVkIHNpbmNlIDE5ODEuIE5pbmUgb2YgdGhlIG1lbWJlciBzdGF0ZXMgZm9ybWVkIGEgZnJlZSB0cmFkZSBhcmVhIGluIDIwMDAgKERqaWJvdXRpLCBFZ3lwdCwgS2VueWEsIE1hZGFnYXNjYXIsIE1hbGF3aSwgTWF1cml0aXVzLCBTdWRhbiwgWmFtYmlhIGFuZCBaaW1iYWJ3ZSksIHdpdGggUndhbmRhIGFuZCBCdXJ1bmRpIGpvaW5pbmcgdGhlIEZUQSBpbiAyMDA0LCB0aGUgQ29tb3JvcyBhbmQgTGlieWEgaW4gMjAwNiwgU2V5Y2hlbGxlcyBpbiAyMDA5IGFuZCBUdW5pc2lhIGFuZCBTb21hbGlhIGluIDIwMTguDQoxOTkzIChEZWMgMjApOiBPSENIUiBmb3JtZWQuIFRoZSBPZmZpY2Ugb2YgdGhlIFVuaXRlZCBOYXRpb25zIEhpZ2ggQ29tbWlzc2lvbmVyIGZvciBIdW1hbiBSaWdodHMgKE9IQ0hSKSwgYSBVbml0ZWQgTmF0aW9ucyBhZ2VuY3kgdGhhdCB3b3JrcyB0byBwcm9tb3RlIGFuZCBwcm90ZWN0IHRoZSBodW1hbiByaWdodHMgdGhhdCBhcmUgZ3VhcmFudGVlZCB1bmRlciBpbnRlcm5hdGlvbmFsIGxhdyBhbmQgc3RpcHVsYXRlZCBpbiB0aGUgVW5pdmVyc2FsIERlY2xhcmF0aW9uIG9mIEh1bWFuIFJpZ2h0cyBvZiAxOTQ4Lg0KMTk5Mzp0aGUgMjR0aCBhbmQgbGFzdCBHTE9OQVNTIHNhdGVsbGl0ZSB3YXMgbGF1bmNoZWQgZm9ybWluZyB0aGUgd2hvbGUgbmF2aWdhdGlvbiBjb25zdGVsbGF0aW9uIHNpbWlsYXIgdG8gdGhhdCBvZiBVUydzIEdQUy4NCjE5OTM6IFNIQS0wIChhIGhhc2ggZnVuY3Rpb24pIHdhcyBwcm9wb3NlZCBieSBOSVNULCBNYXJ5bGFuZCwgVVNBIChGb3VuZGVkOiAxOTAxKS4gSXQgcHJvZHVjZXMgYSAxNjAtYml0IGhhc2ggdmFsdWUsIHRodXMgdGhlIGJydXRlLWZvcmNlIGNvbGxpc2lvbiBvciAgbmVhci1jb2xsaXNpb24gYXR0YWNrIHJlcXVpcmVzIE8oMl44MCkgY29tcHV0YXRpb24uIFdpdGhpbiA1IHllYXJzLCBpdCB3YXMgbWFkZSBjb2xsaXNpb24gYXR0YWNrZWQgYnkgQ2hhYmF1ZCBhbmQgSm91eCB3aXRoIHRoZSBhdHRhY2sgY29tcGxleGl0eSBvZiAyXjYxLg0KMTk5MzogW0NvYWxnYXRlIHNjYW1dIE9uIDIzcmQgQXByaWwgMjAxMywgdGhlIFN0YW5kaW5nIENvbW1pdHRlZSBvbiBDb2FsIGFuZCBTdGVlbCB0YWJsZWQgaW4gUGFybGlhbWVudCB0aGF0IGFsbCAxOTQgY29hbCBibG9ja3MgZGlzdHJpYnV0ZWQgYmV0d2VlbiAxOTkzIGFuZCAyMDA4IHdlcmUgYXVjdGlvbmVkIGluIGFuIHVuYXV0aG9yaXplZCBtYW5uZXIgYW5kIHRoZSBjb3VudHJ5IGxvc3QgUnMuMS44NiBsYWtoIGNyb3JlLi4gRm9ybWVyIFByaW1lIE1pbmlzdGVyIE1hbm1vaGFuIFNpbmdoLCBhbG9uZyB3aXRoIEt1bWFyIE1hbmdhbGFtIEJpcmxhIGFuZCBQLkMuIFBhcmFraCwgd2VyZSBhY2N1c2VkIGFuZCBzdW1tb25lZCBieSBhIHNwZWNpYWwgY291cnQuIFsyTCBDcm9yZV0uIENvbXB0cm9sbGVyIGFuZCBBdWRpdG9yIEdlbmVyYWwgb2YgSW5kaWEgdG9vayAyMCB5ZWFycyB0byBJRCBvbmUgb2YgdGhlIGJpZ2dlc3Qgc2NhbXMgaW4gSW5kaWFuIGhpc3RvcnkuDQoxOTkzOiBBZnRlciBQcmVzaWRlbnQgQmlsbCBDbGludG9uIHRvb2sgb2ZmaWNlIGluIDE5OTMsIGhvd2V2ZXIsIHRoZSBVLlMuIGVjb25vbXkgZW1iYXJrZWQgb24gYSBsb25nIGFuZCBzdHJvbmcgZXhwYW5zaW9uLCBtYWtpbmcgdGhlIDE5OTBzIGEgZ3JlYXQgZGVjYWRlIGZvciBBbWVyaWNhJ3MgbW9uZXksIG92ZXJhbGwuIA0KMTk5MzpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTW90aHJhKDE5OTIpDQoxOTkzOltTcGFjZV0gSGlwcGFyY29zLCBhIHNjaWVudGlmaWMgc2F0ZWxsaXRlIG9mIHRoZSBFdXJvcGVhbiBTcGFjZSBBZ2VuY3kgKEVTQSkgbGFzdGVkIGZvciA0IHllYXJzIGJlZm9yZSBnb2luZyBvdXQtb2Ytc2VydmljZS4NCjE5OTM6W1NwYWNlXVtSZXNlYXJjaF0gSW4gMTk5MywgRG9uIFBhZ2UgYXJndWVkIHRoYXQgaWYgYSBibGFjayBob2xlIHN0YXJ0cyBpbiBhIHB1cmUgcXVhbnR1bSBzdGF0ZSBhbmQgZXZhcG9yYXRlcyBjb21wbGV0ZWx5IGJ5IGEgdW5pdGFyeSBwcm9jZXNzLCB0aGUgdm9uIE5ldW1hbm4gZW50cm9weSBvZiB0aGUgSGF3a2luZyByYWRpYXRpb24gaW5pdGlhbGx5IGluY3JlYXNlcyBhbmQgdGhlbiBkZWNyZWFzZXMgYmFjayB0byB6ZXJvIHdoZW4gdGhlIGJsYWNrIGhvbGUgaGFzIGRpc2FwcGVhcmVkLiBUaGlzIGlzIGNhbGxlZCB0aGUgUGFnZSBjdXJ2ZS4NCjE5OTM6W0Jvb2tzXVtIaXN0b3J5XSBHcmVlbuKAmXMgRGljdGlvbmFyeSBvZiBTbGFuZyBpcyB0aGUgbGFyZ2VzdCBoaXN0b3JpY2FsIGRpY3Rpb25hcnkgb2YgRW5nbGlzaCBzbGFuZy4gV3JpdHRlbiBieSBKb25hdGhvbiBHcmVlbiBvdmVyIDE3IHllYXJzIGZyb20gMTk5MywgaXQgcmVhY2hlZCB0aGUgcHJpbnRlZCBwYWdlIGluIDIwMTAgaW4gYSB0aHJlZS12b2x1bWUgc2V0IGNvbnRhaW5pbmcgbmVhcmx5IDEwMCwwMDAgZW50cmllcyBzdXBwb3J0ZWQgYnkgb3ZlciA0MDAsMDAwIGNpdGF0aW9ucyBmcm9tIGMuIGFkIDEwMDAgdG8gdGhlIHByZXNlbnQgZGF5LiBUaGUgbWFpbiBmb2N1cyBvZiB0aGUgZGljdGlvbmFyeSBpcyB0aGUgY292ZXJhZ2Ugb2Ygb3ZlciA1MDAgeWVhcnMgb2Ygc2xhbmcgZnJvbSBjLiAxNTAwIG9ud2FyZHMuDQoxOTkzOltFbnZdW0Rpc2FzdGVyXSBTb3V0aCBBc2lhbiBtb25zb29uIGZsb29kcywgM2sgZGVhdGhzDQoxOTkzOltHZW9ncmFwaHldIFRoZSBsYXN0IG1ham9yIHNoaWZ0cyBpbiBFYXJ0aCdzIGF4aXMgd2VyZSBpbmZsdWVuY2VkIGJ5IGNsaW1hdGUgY2hhbmdlOiBhIDMxLjUtaW5jaCBzaGlmdCBiZXR3ZWVuIDE5OTMgYW5kIDIwMTAgd2FzIHByaW1hcmlseSBjYXVzZWQgYnkgZ3JvdW5kd2F0ZXIgcHVtcGluZywgYW5kIGEgY2hhbmdlIGluIHBvbGFyIGRyaWZ0IGRpcmVjdGlvbiBhcm91bmQgdGhlIDE5OTBzIHdhcyBsaW5rZWQgdG8gbWVsdGluZyBnbGFjaWVycyBhbmQgaWNlIHNoZWV0cyBkdWUgdG8gZ2xvYmFsIHdhcm1pbmcuIEVhcnRoJ3MgYXhpcyBhbHNvIHNoaWZ0ZWQgYnkgYWJvdXQgNi41IGluY2hlcyBpbiBNYXJjaCAyMDExIGFmdGVyIHRoZSBKYXBhbmVzZSBlYXJ0aHF1YWtlLCBjYXVzaW5nIHRoZSBwbGFuZXQgdG8gc3BpbiBzbGlnaHRseSBmYXN0ZXIuDQoxOTkzOltXaG9dIEluIDE5OTMsIEluZGlhIGNhbWUgaGVhcnRicmVha2luZ2x5IGNsb3NlIHRvIHdpbm5pbmcgaXRzIGZpcnN0IE1pc3MgVW5pdmVyc2UgY3Jvd24gd2l0aCB0aGUgc3R1bm5pbmcgYW5kIGdyYWNlZnVsIE5hbXJhdGEgU2hpcm9ka2FyLCB3aG8gaGFkIGVhcmxpZXIgd29uIHRoZSBGZW1pbmEgTWlzcyBJbmRpYSB0aXRsZS4gUmVwcmVzZW50aW5nIEluZGlhIGF0IHRoZSBNaXNzIFVuaXZlcnNlIHBhZ2VhbnQgaGVsZCBpbiBNZXhpY28gQ2l0eSwgTmFtcmF0YSB3YXMgYSBzdHJvbmcgY29udGVuZGVy4oCUZWxlZ2FudCBpbiBoZXIgZ293biwgcG9pc2VkIGluIGludGVydmlld3MsIGFuZCBhIGZhbiBmYXZvcml0ZS4gU2hlIGVhc2lseSBtYWRlIGl0IHRvIHRoZSBUb3AgNiwgYW5kIGhlciBjaGFuY2VzIG9mIHdpbm5pbmcgbG9va2VkIGluY3JlZGlibHkgaGlnaC4gQnV0IHRoZW4gY2FtZSB0aGUgZmluYWwgcXVlc3Rpb246IOKAnElmIHlvdSBjb3VsZCBiZSBib3JuIGFzIGFueSBoaXN0b3JpY2FsIGZpZ3VyZSwgd2hvIHdvdWxkIGl0IGJlIGFuZCB3aHk/4oCdIFdoaWxlIG90aGVyIGNvbnRlc3RhbnRzIG5hbWVkIGdsb2JhbCBpY29ucyBsaWtlIE1vdGhlciBUZXJlc2EgYW5kIFByaW5jZXNzIERpYW5hLCBOYW1yYXRhIGdhdmUgYW4gaG9uZXN0LCBwZXJzb25hbCBhbnN3ZXLigJRzaGUgc2FpZCBzaGUgd291bGQgYmUgYm9ybiBhcyBoZXJzZWxmIG9yIHNvbWVvbmUgY2xvc2UgdG8gaGVyLCBiZWNhdXNlIHNoZSBiZWxpZXZlZCBpbiBsaXZpbmcgbGlmZSB3aXRoIHRydXRoIGFuZCBpbmRpdmlkdWFsaXR5LiBJdCB3YXMgYSBiZWF1dGlmdWwsIGdyb3VuZGVkIGFuc3dlcuKAlGJ1dCBub3QgdGhlIGtpbmQgb2YgZ3JhbmQsIGlkZWFsaXN0aWMgcmVzcG9uc2UgdGhlIGp1ZGdlcyB3ZXJlIGV4cGVjdGluZy4gVGhhdCBvbmUgbW9tZW50IG9mIHRydXRoLCBtYW55IGJlbGlldmUsIGNvc3QgaGVyIHRoZSBjcm93biwgYW5kIEluZGlhIGhhZCB0byB3YWl0IGFub3RoZXIgeWVhciBiZWZvcmUgU3VzaG1pdGEgU2VuIGJyb3VnaHQgdGhlIE1pc3MgVW5pdmVyc2UgdGl0bGUgaG9tZSBpbiAxOTk0LiBTdGlsbCwgTmFtcmF0YeKAmXMgYW5zd2VyIGJlY2FtZSBpY29uaWPigJRub3QgYmVjYXVzZSBpdCB3b24sIGJ1dCBiZWNhdXNlIGl0IHdhcyByZWFsLCBtYXJraW5nIGEgcmFyZSBpbnN0YW5jZSB3aGVyZSBob25lc3R5IHN0b29kIHRhbGxlciB0aGFuIGRpcGxvbWFjeS4NCjE5OTM6W0F2aWF0aW9uXVtFeHRyZW1lXVtXaG9dIFRoZSBIZXJic3QgbWFuZXV2ZXIgd2FzIGZpcnN0IHN1Y2Nlc3NmdWxseSBwZXJmb3JtZWQgb24gQXByaWwgMjksIDE5OTMsIGJ5IGFuIFgtMzEgYWlyY3JhZnQuIE5hbWVkIGFmdGVyIFdvbGZnYW5nIEhlcmJzdCwgYSBkZXZlbG9wZXIgb2YgcG9zdC1zdGFsbCB0ZWNobm9sb2d5IGZvciBNZXNzZXJzY2htaXR0LULDtmxrb3ctQmxvaG0gKE1CQiksIHRoaXMsIHBvc3Qtc3RhbGwgbWFuZXV2ZXIgZW5hYmxlcyBhIGZpZ2h0ZXIgdG8gbWFrZSBhIHJhcGlkIDE4MMKwIHR1cm4gd2l0aGluIGEgbWluaW1hbCByYWRpdXMuIA0KDQoxOTk04oCTMTk5NTpbVVNdW0dlb1BvbGl0aWNzXSBvY2N1cGF0aW9uIG9mIEhhaXRpLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgRXVyb3BlYW4gRWNvbm9taWMgQXJlYSwgYWJicmV2aWF0ZWQgYXMgRUVBLCBjb25zaXN0cyBvZiB0aGUgTWVtYmVyIFN0YXRlcyBvZiB0aGUgRXVyb3BlYW4gVW5pb24gKEVVKSBhbmQgdGhyZWUgY291bnRyaWVzIG9mIHRoZSBFdXJvcGVhbiBGcmVlIFRyYWRlIEFzc29jaWF0aW9uIChFRlRBKSAoSWNlbGFuZCwgTGllY2h0ZW5zdGVpbiBhbmQgTm9yd2F5OyBleGNsdWRpbmcgU3dpdHplcmxhbmQpLiBUaGUgQWdyZWVtZW50IG9uIHRoZSBFRUEgZW50ZXJlZCBpbnRvIGZvcmNlIG9uIDEgSmFudWFyeSAxOTk0LiANCjE5OTQ6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEV1cm9wZWFuIEVjb25vbWljIEFyZWEgKEVFQSkgd2FzIGVzdGFibGlzaGVkIG9uIDEgSmFudWFyeSAxOTk0LiBUaGUgYWdyZWVtZW50IGxpbmtzIHRoZSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aHJlZSBFRlRBIHN0YXRlc+KAlEljZWxhbmQsIExpZWNodGVuc3RlaW4sIGFuZCBOb3J3YXnigJRpbnRvIGEgc2luZ2xlIGludGVybmFsIG1hcmtldCwgYWxsb3dpbmcgZm9yIHRoZSBmcmVlIG1vdmVtZW50IG9mIGdvb2RzLCBwZXJzb25zLCBzZXJ2aWNlcywgYW5kIGNhcGl0YWwuIA0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBOQUZUQSwgdGhlIE5vcnRoIEFtZXJpY2FuIEZyZWUgVHJhZGUgQWdyZWVtZW50LCB3YXMgYSAxOTk0IGFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzLCBDYW5hZGEsIGFuZCBNZXhpY28gdG8gZWxpbWluYXRlIHRyYWRlIGJhcnJpZXJzIGFuZCBwcm9tb3RlIGZyZWUgdHJhZGUgaW4gTm9ydGggQW1lcmljYS4gSXQgZmFjaWxpdGF0ZWQgdGhlIG1vdmVtZW50IG9mIGdvb2RzIGFuZCBzZXJ2aWNlcyBhbmQgZXN0YWJsaXNoZWQgYSBsYXJnZSB0cmFkZSBibG9jLiBJbiBKdWx5IDIwMjAsIE5BRlRBIHdhcyByZXBsYWNlZCBieSB0aGUgVW5pdGVkIFN0YXRlcy1NZXhpY28tQ2FuYWRhIEFncmVlbWVudCAoVVNNQ0EpLCB3aGljaCBtb2Rlcm5pemVkIGFuZCBlbmhhbmNlZCB0aGUgdHJlYXR5IGZvciBhIGNvbnRlbXBvcmFyeSBlY29ub215Lg0KMTk5NDpbUy5BZnJpY2FdW1NvY2lhbGlzbV0gRmlyc3QgZnJlZSBlbGVjdGlvbnMgaW4gU291dGggQWZyaWNhOyBOZWxzb24gTWFuZGVsYQ0KMTk5NDpbUmVzZWFyY2hdW3NwYWNlXSBDYXJsIFNhZ2FuIGNvbmNlZGVkIHRoYXQgdGhpcyBhcHByb2FjaCB3b3VsZCBub3Qgd29yayBiZWNhdXNlIHRoZSBhdG1vc3BoZXJlIG9mIFZlbnVzIGlzIGZhciBkZW5zZXIgKDkwIGJhcnMpIHRoYW4gd2hhdCB3YXMgdW5kZXJzdG9vZCBpbiAxOTYxIChhIGZldyBiYXJzKSwgbWVhbmluZyB0aGUgY2FyYm9uIHdvdWxkIGp1c3QgYmUgb3hpZGl6ZWQgYmFjayBpbnRvIENPMi4NCjE5OTQ6W0NvbXB1dGluZ11bUXVhbnR1bV0gUGV0ZXIgU2hvciBkaXNjb3ZlcmVkIGFuIGFsZ29yaXRobSAoU2hvcidzIGFsZ29yaXRobSkgdGhhdCBjb3VsZCBmYWN0b3IgbGFyZ2UgbnVtYmVycyBpbiBwb2x5bm9taWFsIHRpbWUgb24gYSBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCB3b3VsZCBicmVhayB0aGUgc2VjdXJpdHkgb2YgbWFueSBjcnlwdG9ncmFwaGljIHNjaGVtZXMuIA0KMTk5NDpbQ29tcHV0aW5nXVtRdWFudHVtXSBQZXRlciBTaG9yIGFuZCBEb24gQ29wcGVyc21pdGggZmlndXJlZCBvdXQgaG93IHRvIHRha2UgYSBRdWFudHVtIEZvdXJpZXIgVHJhbnNmb3JtLg0KMTk5NDpUaGUgcHJvYmxlbSB3aXRoIHRoZSBwYXBlciBwdWJsaXNoZWQgZWFybGllciB0aGlzIG1vbnRoIHdhcyBpdHMgcmVsaWFuY2Ugb24gU2Nobm9ycidzIGFsZ29yaXRobSAobm90IHRvIGJlIGNvbmZ1c2VkIHdpdGggU2hvcuKAmXMgYWxnb3JpdGhtKSwgd2hpY2ggd2FzIGRldmVsb3BlZCBpbiAxOTk0LiBTY2hub3Jy4oCZcyBhbGdvcml0aG0gaXMgYSBjbGFzc2ljYWwgY29tcHV0YXRpb24gYmFzZWQgb24gbGF0dGljZXMsIHdoaWNoIGFyZSBtYXRoZW1hdGljYWwgc3RydWN0dXJlcyB0aGF0IGhhdmUgbWFueSBhcHBsaWNhdGlvbnMgaW4gY29uc3RydWN0aXZlIGNyeXB0b2dyYXBoeSBhbmQgY3J5cHRhbmFseXNpcy4gVGhlIGF1dGhvcnMgd2hvIGRldmlzZWQgU2Nobm9ycuKAmXMgYWxnb3JpdGhtIHNhaWQgaXQgY291bGQgZW5oYW5jZSB0aGUgdXNlIG9mIHRoZSBoZXVyaXN0aWMgcXVhbnR1bSBvcHRpbWl6YXRpb24gbWV0aG9kIGNhbGxlZCBRQU9BLg0KMTk5NCAoSmFuIDEpOiBbR2VvUG9saXRpY3NdIFRoZSBOb3J0aCBBbWVyaWNhbiBGcmVlIFRyYWRlIEFncmVlbWVudCAoTkFGVEEpIHdhcyBhbiBhZ3JlZW1lbnQgc2lnbmVkIGJ5IENhbmFkYSwgTWV4aWNvLCBhbmQgdGhlIFVuaXRlZCBTdGF0ZXMgdGhhdCBjcmVhdGVkIGEgdHJpbGF0ZXJhbCB0cmFkZSBibG9jIGluIE5vcnRoIEFtZXJpY2EuIFRoZSBhZ3JlZW1lbnQgY2FtZSBpbnRvIGZvcmNlIG9uIEphbnVhcnkgMSwgMTk5NCwgYW5kIHN1cGVyc2VkZWQgdGhlIDE5ODggQ2FuYWRh4oCTVW5pdGVkIFN0YXRlcyBGcmVlIFRyYWRlIEFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzIGFuZCBDYW5hZGEuIFRoZSBOQUZUQSB0cmFkZSBibG9jIGZvcm1lZCBvbmUgb2YgdGhlIGxhcmdlc3QgdHJhZGUgYmxvY3MgaW4gdGhlIHdvcmxkIGJ5IGdyb3NzIGRvbWVzdGljIHByb2R1Y3QuDQoxOTk0OltUZWNobm9sb2d5XVtCdXNpbmVzc11bVVNdW0NvbXB1dGluZ10gVGhlIERlbGwgTGF0aXR1ZGUgc2VyaWVzIGlzIGEgbGluZSBvZiBsYXB0b3AgY29tcHV0ZXJzIG1hbnVmYWN0dXJlZCBhbmQgc29sZCBieSBBbWVyaWNhbiBjb21wYW55IERlbGwuIEl0IGlzIGEgYnVzaW5lc3Mtb3JpZW50ZWQgbGluZSwgYWltZWQgYXQgY29ycG9yYXRlIGVudGVycHJpc2VzLCBoZWFsdGhjYXJlLCBnb3Zlcm5tZW50LCBhbmQgZWR1Y2F0aW9uIG1hcmtldHM7IHVubGlrZSB0aGUgSW5zcGlyb24gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBpbmRpdmlkdWFsIGN1c3RvbWVycywgYW5kIHRoZSBWb3N0cm8gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBzbWFsbGVyIGJ1c2luZXNzZXMuIFRoZSBMYXRpdHVkZSBkaXJlY3RseSBjb21wZXRlcyB3aXRoIHRoZSBMZW5vdm8gVGhpbmtQYWQgYW5kIHRoZSBFbGl0ZUJvb2sgc2VyaWVzIGJ5IEhQLiBBZGRpdGlvbmFsbHksIHRoZSAiUnVnZ2VkIChFeHRyZW1lKSIsICJYRlIiIGFuZCAiQVRHIiBtb2RlbHMgY29tcGV0ZSBwcmltYXJpbHkgd2l0aCBQYW5hc29uaWMncyBUb3VnaGJvb2sgbGluZSBvZiAicnVnZ2VkIiBsYXB0b3BzLg0KMTk5NDogU3VzaG1pdGEgU2VuIGJlY2FtZSBNaXNzIFVuaXZlcnNlLg0KMTk5NDogVGhlIEFubmFscyBvZiBJbXByb2JhYmxlIFJlc2VhcmNoIGlzIGEgYmktbW9udGhseSBtYWdhemluZSBkZXZvdGVkIHRvIHNjaWVudGlmaWMgaHVtb3IsIGluIHRoZSBmb3JtIG9mIGEgc2F0aXJpY2FsIHRha2Ugb24gdGhlIHN0YW5kYXJkIGFjYWRlbWljIGpvdXJuYWwuDQoxOTk0OiBMaW5kb24gTGVhZGVyIG9mIExhbmRvciBBc3NvY2lhdGVzLCBvZiBTYW4gRnJhbmNpc2NvIGRlc2lnbmVkIHdvcmRtYXJrcyBmb3IgRmVkRXgncyB2YXJpb3VzIE9wLXVuaXQuIEZlZEV44oCZcyBwdWJsaWMtcmVsYXRpb25zIGZpcm0gd2FudGVkIHRvIGhpZ2hsaWdodCB0aGUgYXJyb3cgc28gaXQgd291bGQgYmUgb2J2aW91cy4gQnV0IGhlIGZvdWdodCB0aGVtIG9uIHRoYXQg4oCUIGhlIHRob3VnaHQgaXQgd291bGQgYmUgb3ZlcmtpbGwuIFRoZXJl4oCZcyBzb21ldGhpbmcgYWJvdXQgbWFraW5nIHBlb3BsZSBkaXNjb3ZlciBzb21ldGhpbmcgb24gdGhlaXIgb3duIHRoYXTigJlzIGEgbG90IG1vcmUgcG93ZXJmdWwgdGhhbiBpdGFsaWNpemluZyBpdCB0byBtYWtlIHlvdXIgcG9pbnQuDQoxOTk0OiBTY2lsYWIgMS4xLCB0aGUgZmlyc3QgcmVsZWFzZWQgdmVyc2lvbiBvZiBTY2lsYWIsIHdhcyBwdXQgb24gYW5vbnltb3VzIGZ0cCBzaXRlLg0KMTk5NDogVGhlIGNvbmNlcHQgb2YgYSBjYWbDqSB3aXRoIGZ1bGwgSW50ZXJuZXQgYWNjZXNzIChhbmQgdGhlIG5hbWUgQ3liZXJjYWbDqSkgd2FzIGludmVudGVkIGluIGVhcmx5IGJ5ICBhIEJyaXRpc2ggdGVjaG5vbG9neSBhcnRpc3QsIEl2YW4gUG9wZS4NCjE5OTQ6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIGx1cmVkIG9uZSBvZiBEYXdvb2QncyBmYXZvcml0ZSAibmFyY28tdGVycm9yaXN0IiBQaGlsbHUgS2hhbiBhbGlhcyBCYWtodGl5YXIgQWhtZWQgS2hhbiB0byBhIGhvdGVsIHJvb20gaW4gQmFuZ2tvaywgd2hlcmUgaGUgd2FzIHRvcnR1cmVkIHRvIGRlYXRoLCBoYXZpbmcgYmVlbiBiZXRyYXllZCBieSBoaXMgY2xvc2VzdCBhaWRlIGFuZCBzaWRla2ljayBNYW5nZXNoICJNYW5neWEiIFBhd2FyLiBELUNvbXBhbnkncyBTaGFyYWQsIHVzZWQgaGlzIGxpbmtzIHdpdGggTXVtYmFpLWJhc2VkIGhvdGVsaWVyIFZpbm9kIGFuZCBBLiBNaXNocmEgdG8gdHJhY2sgZG93biBSYWphbiBpbiBCYW5na29rLiBSYWphbidzIGhpdG1hbiBSb2hpdCBWYXJtYSBhbmQgaGlzIHdpZmUgc2hvdCBieSBELUNvbXBhbnkuDQoxOTk0KEp1bCAxNik6W1NwYWNlXSBGcm9tIEp1bHkgMTYgdG8gMjIsIDE5OTQsIGVub3Jtb3VzIHBpZWNlcyBvZiB0aGUgY29tZXQgU2hvZW1ha2VyLUxldnkgOSAoU0w5KSwgZGlzY292ZXJlZCBqdXN0IGEgeWVhciBwcmlvciwgY3Jhc2hlZCBpbnRvIEp1cGl0ZXIgb3ZlciBzZXZlcmFsIGRheXMsIGNyZWF0aW5nIGh1Z2UsIGRhcmsgc2NhcnMgaW4gdGhlIHBsYW5ldCdzIGF0bW9zcGhlcmUgYW5kIGxvZnRpbmcgc3VwZXJoZWF0ZWQgcGx1bWVzIGludG8gaXRzIHN0cmF0b3NwaGVyZS4NCjE5OTQgKE9jdCk6IElUUE8gYW5kIEdvSSdzIE5JQyBqb2ludGx5IHNldC11cCB0aGUgTmF0aW9uYWwgQ2VudHJlIGZvciBUcmFkZSBJbmZvcm1hdGlvbiAoTkNUSSkgYXQgUHJhZ2F0aSBNYWlkYW4uDQoxOTk0IChOb3YgMSwgMTU6MDEgSVNUKTpbU3BhY2VdW1N1bl0gVGhlIEdsb2JhbCBHZW9zcGFjZSBTY2llbmNlICdXaW5kJyBzYXRlbGxpdGUgaXMgYSBOQVNBIHNjaWVuY2Ugc3BhY2VjcmFmdCBkZXNpZ25lZCB0byBzdHVkeSByYWRpbyB3YXZlcyBhbmQgcGxhc21hIHRoYXQgb2NjdXIgaW4gdGhlIHNvbGFyIHdpbmQgYW5kIGluIHRoZSBFYXJ0aCdzIG1hZ25ldG9zcGhlcmUuIA0KMTk5NCAoRGVjIDMpOiBTb255J3MgUGxheVN0YXRpb24gKGEgdmlkZW8gZ2FtZSBjb25zb2xlKSB3YXMgaW50cm9kdWNlZCB0byB0aGUgd29ybGQgZnJvbSBNaW5hdG8sIFRva3lvIChKYXBhbikuDQoxOTk0OiBXWFlDLSBmaXJzdCBpbnRlcm5ldCByYWRpbyBzdGF0aW9uIGJyb2FkY2FzdC4NCjE5OTQ6IE1lbW9yeSBjYXJkcyB3ZXJlIGludHJvZHVjZWQgaW4gdGhlIGNvbnN1bWVyIGVsZWN0cm9uaWNzIG1hcmtldC4NCjE5OTQgKEF1Zyk6IElUUE8ncyAxc3QgRGVsaGkgQm9vayBGYWlyIGF0ICBIYWxsIDggdG8gMTIgb2YgUHJhZ2F0aSBNYWlkYW4sIE5ldyBEZWxoaS4gVGhlIHRpbWluZ3Mgb2YgZmFpciBhcmUgZnJvbSAxMC4wMCBhbSB0byA4LjAwIHBtIChlbnRyeSB0byBmYWlyIHdpbGwgY2xvc2UgYXQgNy4zMCBwbSkuDQoxOTk0IChTZXApOiBUaGUgQ09OQ0VSVCBzb2Z0d2FyZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgaW1wbGVtZW50ZWQgYXQgYWxsIG9mIHRoZSBmaXZlIFBSUycgc2l0ZXMgU2VjdW5kZXJhYmFkIGluIFNlcHQuIDE5OTQsIE5ldyBEZWxoaSBvbiBTZXB0LiAxOTk2LCBDYWxjdXR0YSBvbiAxNHRoIEp1bmUgMTk5OCwgTXVtYmFpIG9uIDExdGggSmFuIDE5OTkgYW5kIENoZW5uYWkgb24gMTJ0aCBBcHJpbCAxOTk5Lg0KMTk5NDogdGhlIDI0dGggYW5kIHRoZSBsYXN0IEdQUyBzYXRlbGxpdGUgd2FzIGxhdW5jaGVkIGluIFVTLg0KMTk5NDogVGhlIHdvcmQgVGFsaWJhbiBpcyBQYXNodG8sINi32KfZhNio2KfZhiDhua3EgWxpYsSBbiwgbWVhbmluZyAic3R1ZGVudHMiLCB0aGUgcGx1cmFsIG9mIOG5rcSBbGliLiBBZnRlciB0aGUgU292aWV0IFVuaW9uIGludGVydmVuZWQgYW5kIG9jY3VwaWVkIEFmZ2hhbmlzdGFuIGluIDE5NzksIElzbGFtaWMgbXVqYWhpZGVlbiBmaWdodGVycyBlbmdhZ2VkIGluIHdhciB3aXRoIHRob3NlIFNvdmlldCBmb3JjZXMsIHdoaWNoIGxhaWQgdGhlIGZvdW5kYXRpb24gb2YgcG9saXRpY2FsIG1vdmVtZW50IGFuZCBtaWxpdGFyeSBvcmdhbml6YXRpb24gbmFtZWQgVGFsaWJhbi4NCjE5OTQ6IEFiZHVsIEthcmVlbSBUZWxnaSBhY3F1aXJlZCB0aGUgbGljZW5zZSBmb3Igc2VsbGluZyBzdGFtcCBwYXBlciBhbmQgb3BlbmVkIGFuIG9mZmljZSBpbiBNdW1iYWkuIEFmdGVyIHRoYXQsIGhlIHN0YXJ0ZWQgcHJpbnRpbmcgc3RhbXAgcGFwZXIgaW4gTmFzaGlrLiBXaXRoIHNvbWUgYWdlbnRz4oCZIGhlbHAsIGhlIHN0YXJ0cyBzZWxsaW5nIGZha2Ugc3RhbXAgcGFwZXIgaW4gYnVsayB0byBiYW5rcywgaW5zdXJhbmNlIGNvbXBhbmllcywgc3RvY2sgYnJva2VyYWdlIGZpcm1zLCBhbmQgY29ycG9yYXRlcy4gSW4gMjAwMyB0aGUgVGVsZ2kgc2NhbSB3YXMgdW5mb2xkZWQ7IHRoZSBmaWd1cmUgaW4gdGhlIG1pbmQgb2Ygc2VjdXJpdHkgYW5kIGludGVsbGlnZW5jZSBhZ2VuY2llcyB3YXMgdXAgdG8gUnMuMjBrIENyb3JlDQoxOTk0OiBbR2VvUG9saXRpY3NdIEludGVybmF0aW9uYWwgQXNzb2NpYXRpb24gb2YgR2VuZGFybWVyaWVzIGFuZCBQb2xpY2UgRm9yY2VzIHdpdGggTWlsaXRhcnkgU3RhdHVzIChjb21tb25seSBrbm93biBhcyBGSUVQIGZvciBGcmFuY2UtSXRhbGlhLUVzcGHDsWEtUG9ydHVnYWwsIHRoZSBmaXJzdCBmb3VyIG1lbWJlcnMpIGlzIGFuIGFzc29jaWF0aW9uIG9mIG5hdGlvbmFsIGdlbmRhcm1lcmllcyBvciBtaWxpdGFyeSBwb2xpY2UgZm9yY2VzLg0KMTk5NDpbQm9va10gUGFsZSBCbHVlIERvdDogQSBWaXNpb24gb2YgdGhlIEh1bWFuIEZ1dHVyZSBpbiBTcGFjZSBpcyBhIDE5OTQgYm9vayBieSB0aGUgYXN0cm9ub21lciBDYXJsIFNhZ2FuLiBJdCBpcyB0aGUgc2VxdWVsIHRvIFNhZ2FuJ3MgMTk4MCBib29rIENvc21vcyBhbmQgd2FzIGluc3BpcmVkIGJ5IHRoZSBmYW1vdXMgMTk5MCBQYWxlIEJsdWUgRG90IHBob3RvZ3JhcGgsIGZvciB3aGljaCBTYWdhbiBwcm92aWRlcyBhIHBvaWduYW50IGRlc2NyaXB0aW9uLiBJbiB0aGUgYm9vaywgU2FnYW4gbWl4ZXMgcGhpbG9zb3BoeSBhYm91dCB0aGUgaHVtYW4gcGxhY2UgaW4gdGhlIHVuaXZlcnNlIHdpdGggYSBkZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCBrbm93bGVkZ2UgYWJvdXQgdGhlIFNvbGFyIFN5c3RlbS4gSGUgYWxzbyBkZXRhaWxzIGEgaHVtYW4gdmlzaW9uIGZvciB0aGUgZnV0dXJlLg0KMTk5NDpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTWVjaGFnb2R6aWxsYSBJSSgxOTkzKQ0KMTk5NDpbQ2luZW1hXSBUaGUgQXBwbGUoMTk4MCkNCjE5OTQ6W0NpbmVtYV0gVGhlIEF0bGFudGlzIEludGVyY2VwdG9ycygxOTgzKQ0KMTk5NDpbTW50bmdnXSBJbiAxOTk0LCBNYXJrIFdoZXR1IHN1bW1pdHRlZCBNdCBFdmVyZXN0IHdpdGggTWlrZSBSZWluYmVyZ2VyLiBCdXQgYWZ0ZXIgYSBmcmVlemluZyBuaWdodCwgV2hldHUgZmFjZWQgYSBoYXJyb3dpbmcgY2hvaWNlOiBsZWF2ZSBoaXMgZnJpZW5kIG9yIHJlbWFpbiBmb3JldmVyLiBUaGUgRmF0YWwgR2FtZSAoMTk5NykNCjE5OTQ6W1RvdXJpc21dIFRoZSBBZHZlbnR1cmUgVG91ciBPcGVyYXRvcnMgQXNzb2NpYXRpb24gb2YgSW5kaWEgKEFUT0FJKSB3YXMgZm91bmRlZCBpbiAxOTk0LiBJdCB3YXMgZXN0YWJsaXNoZWQgYnkgYSBncm91cCBvZiB0cmF2ZWwgdHJhZGUgYWR2ZW50dXJlcnMgd2hvIGFpbWVkIHRvIGNyZWF0ZSBhIHN0cm9uZyBzdXBwb3J0IG5ldHdvcmsgZm9yIEluZGlhbiBhZHZlbnR1cmUgdG91ciBvcGVyYXRvcnMuIA0KDQoxOTk1IChNYXkgMTkpOiBbUmVzZWFyY2hdW1NwYWNlXSB0d28gc2NpZW50aXN0cyBhdCBDYWwgUG9seSBzaG93ZWQgdGhhdCBiYWN0ZXJpYSBjYW4gc3Vydml2ZSB3aXRob3V0IGFueSBtZXRhYm9saXNtIGZvciBhdCBsZWFzdCAyNSBtaWxsaW9uIHllYXJzOyBwcm9iYWJseSB0aGV5IGFyZSBpbW1vcnRhbC4NCjI0IE5vdmVtYmVyIDE5OTU6IFRoZSBOZXcgWW9yayBUaW1lcyBkZXNjcmliZWQgYmFjdGVyaWEgdGhhdCBjYW4gc3Vydml2ZSByYWRpYXRpb24gbXVjaCBzdHJvbmdlciB0aGFuIGFueSB0aGF0IEVhcnRoIGhhcyBldmVyIGV4cGVyaWVuY2VkLg0KV2UgYXJlIGNhbGxpbmcgdGhlIHVuaW9uIG9mIExvdmVsb2NrJ3MgR2FpYSB3aXRoIEhveWxlIGFuZCBXaWNrcmFtYXNpbmdoZSdzIGV4cGFuZGVkIHRoZW9yeSBvZiBwYW5zcGVybWlhIENvc21pYyBBbmNlc3RyeS4gVGhpcyBhY2NvdW50IG9mIGV2b2x1dGlvbiBhbmQgdGhlIG9yaWdpbiBvZiBsaWZlIG9uIEVhcnRoIGlzIHByb2ZvdW5kbHkgZGlmZmVyZW50IGZyb20gdGhlIHByZXZhaWxpbmcgc2NpZW50aWZpYyBwYXJhZGlnbS4gSXQgY2hhbGxlbmdlcyBub3QgbWVyZWx5IHRoZSBhbnN3ZXJzIGJ1dCB0aGUgcXVlc3Rpb25zIHRoYXQgYXJlIHBvcHVsYXIgdG9kYXkuIENvc21pYyBBbmNlc3RyeSByZXF1aXJlcyB0aGF0IGxpZmUgY2FuIG9ubHkgZGVzY2VuZCBmcm9tIGFuY2VzdG9ycyBhdCBsZWFzdCBhcyBoaWdobHkgZXZvbHZlZCBhcyBpdHNlbGYsIGFuZCB0aGF0IHRoZXJlIGNhbiBiZSBubyBvcmlnaW4gb2YgbGlmZSBmcm9tIG5vbmJpb2xvZ2ljYWwgbWF0dGVyLiBXaXRob3V0IHN1cGVybmF0dXJhbCBpbnRlcnZlbnRpb24sIHRoZXJlZm9yZSwgd2UgY29uY2x1ZGUgdGhhdCBsaWZlIG11c3QgaGF2ZSBhbHdheXMgZXhpc3RlZC4gQWx0aG91Z2ggdGhlc2UgY29uY2x1c2lvbnMgY3V0IGFjcm9zcyB0aGUgYm91bmRhcmllcyBiZXR3ZWVuIHNjaWVuY2UsIHBoaWxvc29waHksIGFuZCByZWxpZ2lvbiwgd2UgYmVsaWV2ZSB0aGV5IGFyZSBncm91bmRlZCBpbiBnb29kIGV2aWRlbmNlLiBBbmQgbmV3IGRhdGEgdGhhdCBzdXBwb3J0IG1hbnkgYXNwZWN0cyBvZiBDb3NtaWMgQW5jZXN0cnkgYXJlIGNvbWluZyBpbiByYXBpZGx5LiBJbiB0aGUgZm9sbG93aW5nIHBhZ2VzIHdlIHdpbGwgZXhwbGFpbiBob3cgdGhlc2UgYW5kIG90aGVyIHJlY2VudCBkZXZlbG9wbWVudHMgc3VwcG9ydCBDb3NtaWMgQW5jZXN0cnk6DQoNCjE5OTU6IEFOU0VUIHNvbGQgdG8gQU9MLCB3aG8gIG5vdyBydW5zIGl0Lg0KMTk5NSAoTWFyKTogRGVwdC4gb2YgSW5kaWFuIE1lZGljaW5lIGFuZCBIb21lb3BhdGh5IGZvdW5kZWQuDQoxOTk1IChNYXIgMjQpOltSZXNlYXJjaF0gUmVtb3RlbHkgT3BlcmF0ZWQgVmVoaWNsZSBLQUlLTyByZWFjaGVkIHRoZSBkZWVwZXN0IGFyZWEgb2YgdGhlIE1hcmlhbmEgVHJlbmNoIGFuZCBtYWRlIHRoZSBkZWVwZXN0IGRpdmluZyByZWNvcmQgb2YgMTAsOTExIG0gKDM1LDc5NyBmdDsgNSw5NjYgZmF0aG9tcykgDQoxOTk1OiBwaG9uZSBjYWxsIGNvc3RpbmcgUnMuIDE2IHBlciBtaW4uDQoxOTk1OltHYW1pbmddIFZpcnR1YSBDb3AgMiBpcyBhIGxpZ2h0IGd1biBzaG9vdGVyIGFyY2FkZSBnYW1lLCByZWxlYXNlZCBpbiAxOTk1IGFuZCBkZXZlbG9wZWQgaW50ZXJuYWxseSBhdCBTZWdhIGJ5IHRoZWlyIEFNMiBzdHVkaW8gKFl1IFN1enVraSkuIEl0IHdhcyBwb3J0ZWQgdG8gdGhlIFNlZ2EgU2F0dXJuIGluIDE5OTYuIEl0IHdhcyByZWxlYXNlZCBvbiBQQyBpbiAxOTk3IGFuZCBTZWdhIERyZWFtY2FzdCBpbiAyMDAwLiBJdCB3YXMgbGF0ZXIgYnVuZGxlZCB3aXRoIFZpcnR1YSBDb3AgaW4gVmlydHVhIENvcDogRWxpdGUgRWRpdGlvbiBmb3IgUGxheVN0YXRpb24gMiBpbiAyMDAyLg0KMTk5NSAoQXByIDEpOltSZXNlYXJjaF0gUGlsbGFycyBvZiBDcmVhdGlvbiBpcyBhIHBob3RvZ3JhcGggdGFrZW4gYnkgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgb2YgZWxlcGhhbnQgdHJ1bmtzIG9mIGludGVyc3RlbGxhciBnYXMgYW5kIGR1c3QgaW4gdGhlIEVhZ2xlIE5lYnVsYSwgaW4gdGhlIFNlcnBlbnMgY29uc3RlbGxhdGlvbiwgc29tZSA2LDUwMOKAkzcsMDAwIGxpZ2h0LXllYXJzICgyLDAwMOKAkzIsMTAwIHBjOyA2MeKAkzY2IEVtKSBmcm9tIEVhcnRoLg0KMTk5NSAoQXByIDEpOiBJQUFJIGFuZCBOQUEgd2VyZSBtZXJnZWQgYnkgYW4gQWN0IG9mIFBhcmxpYW1lbnQgYW5kIHdhcyBuYW1lZCBhcyBBaXJwb3J0cyBBdXRob3JpdHkgb2YgSW5kaWEgKEFBSSkuIFRoaXMgbmV3IG9yZ2FuaXNhdGlvbiB3YXMgdG8gYmUgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nLCB1cGdyYWRpbmcsIG1haW50YWluaW5nIGFuZCBtYW5hZ2luZyBjaXZpbCBhdmlhdGlvbiBpbmZyYXN0cnVjdHVyZSBib3RoIG9uIHRoZSBncm91bmQgYW5kIGFpciBzcGFjZSBpbiB0aGUgY291bnRyeS4NCjE5OTUgKEFwciAyMSk6W0NyaW1lXVtJbmRpYV0gQmFibG9vIHBpY2tlZCB1cCBieSB0aGUgU2luZ2Fwb3JlIGFpcnBvcnQgcG9saWNlIGZvciB0cmF2ZWxsaW5nIG9uIGZha2UgcGFzc3BvcnQuIEhlIHdhcyBzdGF5aW5nIGluIER1YmFpLg0KMTk5NSAoU2VwIDMwKTpbQ3JpbWVdW0luZGlhXSBTaW5nYXBvcmUgZXh0cmFkaXRlcyBJbmRpYSdzICdtb3N0LXdhbnRlZCBpbnRlci1zdGF0ZSBjcmltaW5hbCcgQmFibG9vIFNyaXZhc3RhdmEgKDMzWU8pDQoxOTk1IChOb3YgMzApOiBPcGVyYXRpb24gRGVzZXJ0IFN0b3JtIChGaXJzdCBJcmFxIFdhcilvZmZpY2lhbGx5IGVuZGVkLg0KMTk5NSAoTWF5IDMxKTpbQm9va11bTWlsaXRhcnldIEFkbWlyYWwgV2lsbGlhbSBILiBNY1JhdmVuJ3MgU3BlYyBPcHM6IENhc2UgU3R1ZGllcyBpbiBTcGVjaWFsIE9wZXJhdGlvbnMgV2FyZmFyZTogVGhlb3J5IGFuZCBQcmFjdGljZTsgU2VhIFN0b3JpZXM6IE15IExpZmUgaW4gU3BlY2lhbCBPcGVyYXRpb25zICgyMDE5LCBNYXkgMSk7IFRoZSBIZXJvIENvZGU6IExlc3NvbnMgTGVhcm5lZCBmcm9tIExpdmVzIFdlbGwgTGl2ZWQgKDIwMjEsIEFwciAxMykNCjE5OTU6IERyLiBIYW5kZSBhZnRlciBncmFkdWF0aW5nIGZyb20gSUlUIEtoYXJhZ3B1ciBjb25jZXB0dWFsaXplZCBTRUxDTyBJbmRpYSBkdXJpbmcgaGlzIFBoRCBvbiBzdXN0YWluYWJsZSBlbmVyZ3kgYXQgdGhlIFVuaXZlcnNpdHkgb2YgTWFzc2FjaHVzZXR0cy4gRHVyaW5nIGEgZmllbGQgdmlzaXQgdG8gdGhlIERvbWluaWNhbiBSZXB1YmxpYywgaGUgd2FzIHN1cnByaXNlZCB0byBzZWUgdGhlIHBvb3IgdXNpbmcgc29sYXIgbGlnaHRzLg0KMTk5NTogVGhlIEdvdmVybm1lbnQgb2YgSW5kaWEgYW5kIHRoZSBHb3Zlcm5tZW50IG9mIERlbGhpIGpvaW50bHkgc2V0IHVwIGEgY29tcGFueSBjYWxsZWQgdGhlIERlbGhpIE1ldHJvIFJhaWwgQ29ycG9yYXRpb24gKERNUkMpIG9uIDMgTWF5IDE5OTUsIHdpdGggRHIuIEUuIFNyZWVkaGFyYW4gYXMgdGhlIG1hbmFnaW5nIGRpcmVjdG9yLg0KMTk5NTogSW50J2wgR2FuZGhpIFBlYWNlIFByaXplIGxhdW5jaGVkLg0KMTk5NTogU2FjaGluIFIuIFRlbmR1a2FyIGFuZCBBbmphbGkgVGVuZHVsa2FyIHdlZGRlZCB0b2dldGhlci4NCjE5OTU6IC5tcDMgaW52ZW50ZWQuDQoxOTk1OltHYW1pbmddIFdoaWxlIEZJRkEgOTUgZGlkIG5vdCBhZGQgbXVjaCBvdGhlciB0aGFuIHRoZSBhYmlsaXR5IHRvIHBsYXkgd2l0aCBjbHViIHRlYW1zLCBGSUZBIDk2IHB1c2hlZCB0aGUgYm91bmRhcmllcy4gRm9yIHRoZSBmaXJzdCB0aW1lIHdpdGggcmVhbCBwbGF5ZXIgbmFtZXMgYnkgb2J0YWluaW5nIHRoZSBGSUZQcm8gbGljZW5zZSwgdGhlIFBsYXlTdGF0aW9uLCBQQywgMzJYIGFuZCBTZWdhIFNhdHVybiB2ZXJzaW9ucyB1c2VkIEVBJ3MgIlZpcnR1YWwgU3RhZGl1bSIgZW5naW5lLCB3aXRoIDJEIHNwcml0ZSBwbGF5ZXJzIG1vdmluZyBhcm91bmQgYSByZWFsLXRpbWUgM0Qgc3RhZGl1bS4NCjE5OTUgKEp1bCAxOCk6W0Jvb2tdIEJhcmFjayBPYmFtYSdzIERyZWFtcyBmcm9tIE15IEZhdGhlcjogQSBTdG9yeSBvZiBSYWNlIGFuZCBJbmhlcml0YW5jZTsgRHJlYW1zIGZyb20gTXkgRmF0aGVyOiBBIFN0b3J5IG9mIFJhY2UgYW5kIEluaGVyaXRhbmNlICgyMDA2LCBPY3QgMTcpOyBPZiBUaGVlIEkgU2luZzogQSBMZXR0ZXIgdG8gTXkgRGF1Z2h0ZXJzICgyMDEwLCBOb3YgMTYpOyBBIFByb21pc2VkIExhbmQgKDIwMjAsIE5vdiAxNykNCjE5OTUoSmFuIDEpOltFbnZdIFRoZSBBZ3JlZW1lbnQgb24gQWdyaWN1bHR1cmUgKEFvQSkgaXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgb2YgdGhlIFdvcmxkIFRyYWRlIE9yZ2FuaXphdGlvbi4gSXQgd2FzIG5lZ290aWF0ZWQgZHVyaW5nIHRoZSBVcnVndWF5IFJvdW5kIG9mIHRoZSBHZW5lcmFsIEFncmVlbWVudCBvbiBUYXJpZmZzIGFuZCBUcmFkZSwgYW5kIGVudGVyZWQgaW50byBmb3JjZSB3aXRoIHRoZSBlc3RhYmxpc2htZW50IG9mIHRoZSBXVE8gb24gSmFudWFyeSAxLCAxOTk1LiBCbHVlLCBSZWQsIEFtYmVyIGFuZCBHcmVlbiBCb3ggb2Ygc3Vic2lkaWVzLg0KMTk5NTpbQ2luZW1hXSBOZWxzb24gTWFuZGVsYSwgaW4gaGlzIGZpcnN0IHRlcm0gYXMgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYSwgaW5pdGlhdGVzIGEgdW5pcXVlIHZlbnR1cmUgdG8gdW5pdGUgdGhlIEFwYXJ0aGVpZC10b3JuIGxhbmQ6IGVubGlzdCB0aGUgbmF0aW9uYWwgcnVnYnkgdGVhbSBvbiBhIG1pc3Npb24gdG8gd2luIHRoZSAxOTk1IFJ1Z2J5IFdvcmxkIEN1cC4gLSAgSW52aWN0dXMgKDIwMDkpDQoxOTk1OltDaW5lbWFdIEEgQ2xvY2t3b3JrIE9yYW5nZSgxOTcxKQ0KMTk5NTpbQ2luZW1hXSBEZWFkIEVuZCBEcml2ZS1JbigxOTg2KQ0KMTk5NTpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gU3BhY2Vnb2R6aWxsYSgxOTk0KQ0KMTk5NTpbQ2luZW1hXSBIZWFydGJlZXBzKDE5ODEpDQoxOTk1OltDaW5lbWFdIFRoZSBNdW1teSdzIEN1cnNlKDE5NDQpDQoxOTk1IChEZWMpOltTcGFjZV0gU29sYXIgYW5kIEhlbGlvc3BoZXJpYyBPYnNlcnZhdG9yeSAoU29ITykgd2FzIGxhdW5jaGVkIGluIERlY2VtYmVyIDE5OTUgYXMgYSBqb2ludCBtaXNzaW9uIGJldHdlZW4gdGhlIEV1cm9wZWFuIFNwYWNlIEFnZW5jeSAoRVNBKSBhbmQgTkFTQSwgU29ITyB3YXMgZGVzaWduZWQgdG8gb3JiaXQgdGhlIFN1biB0byBsZWFybiBhYm91dCB0aGUgc3RydWN0dXJlIG9mIHRoZSBzdGFy4oCZcyBpbnRlcmlvciBhbmQgaXRzIG91dGVyIGF0bW9zcGhlcmUsIGFzIHdlbGwgYXMgdG8gaW52ZXN0aWdhdGUgdGhlIGJlaGF2aW9yIG9mIHNvbGFyIHdpbmRzLiBJdCB3YXMgZXhwZWN0ZWQgdG8gY29tcGxldGUgaXRzIG1pc3Npb24gaW4gMTk5OC4gSW5zdGVhZCwgaXQgaXMgc3RpbGwgYWN0aXZlIHRvZGF5LCBhbmQgaXMgbm93IGxpa2VseSB0byBrZWVwIHdvcmtpbmcgdW50aWwgMjAyNSwgd2hlbiBpdCB3aWxsIGhhdmUgYmVlbiBpbiBzcGFjZSBmb3IgMzAgeWVhcnMuDQoxOTk1OltQaHlzaWNzXVtTcGFjZV1bUmVzZWFyY2hdIFByaW9yIHRvIDE5OTUsIHRoZW9yaXN0cyBiZWxpZXZlZCB0aGF0IHRoZXJlIHdlcmUgZml2ZSBjb25zaXN0ZW50IHZlcnNpb25zIG9mIHN1cGVyc3RyaW5nIHRoZW9yeSAodHlwZSBJLCB0eXBlIElJQSwgdHlwZSBJSUIsIGFuZCB0d28gdmVyc2lvbnMgb2YgaGV0ZXJvdGljIHN0cmluZyB0aGVvcnkpLiBUaGlzIHVuZGVyc3RhbmRpbmcgY2hhbmdlZCBpbiAxOTk1IHdoZW4gRWR3YXJkIFdpdHRlbiBzdWdnZXN0ZWQgdGhhdCB0aGUgZml2ZSB0aGVvcmllcyB3ZXJlIGp1c3Qgc3BlY2lhbCBsaW1pdGluZyBjYXNlcyBvZiBhbiBlbGV2ZW4tZGltZW5zaW9uYWwgdGhlb3J5IGNhbGxlZCBNLXRoZW9yeS4gV2l0dGVuJ3MgY29uamVjdHVyZSB3YXMgYmFzZWQgb24gdGhlIHdvcmsgb2YgYSBudW1iZXIgb2Ygb3RoZXIgcGh5c2ljaXN0cywgaW5jbHVkaW5nIEFzaG9rZSBTZW4sIENocmlzIEh1bGwsIFBhdWwgVG93bnNlbmQsIGFuZCBNaWNoYWVsIER1ZmYuIEhpcyBhbm5vdW5jZW1lbnQgbGVkIHRvIGEgZmx1cnJ5IG9mIHJlc2VhcmNoIGFjdGl2aXR5IG5vdyBrbm93biBhcyB0aGUgc2Vjb25kIHN1cGVyc3RyaW5nIHJldm9sdXRpb24uDQoxOTk1OltDcmltZV1bSW5kaWFdIE11cmRlciBvZiBNdW1iYWktYmFzZWQgYnVpbGRlciBQcmFkZWVwIEphaW4gYnkgQWJ1IFNhbGVtDQoxOTk1OiBGb3J0dW5lIEhvdGVscyBpbiBJbmRpYSBpcyBvd25lZCBieSBpdHMgcGFyZW50IGNvbXBhbnksIElUQyBMdGQuLCB3aGljaCBlc3RhYmxpc2hlZCBGb3J0dW5lIEhvdGVscyBpbiAxOTk1IGFzIGEgc3Vic2lkaWFyeSB0byBwcm92aWRlIG1pZC1tYXJrZXQgdG8gdXBzY2FsZSBob3NwaXRhbGl0eSBzZXJ2aWNlcy4gSG93ZXZlciwgYSBzZXBhcmF0ZSBncm91cCwgRm9ydHVuZSBHcm91cCBvZiBIb3RlbHMsIGJhc2VkIGluIHRoZSBVbml0ZWQgQXJhYiBFbWlyYXRlcyAoVUFFKSBhbmQgZm91bmRlZCBieSBQcmF2ZWVuIFNoZXR0eSwgYWxzbyBvcGVyYXRlcyBhIGRpZmZlcmVudCBzZXQgb2YgaG90ZWxzIGluIHRoYXQgcmVnaW9uLg0KMTk5NTpbVUtdIENhbWlsbGEgaXMgUXVlZW4gb2YgdGhlIFVuaXRlZCBLaW5nZG9tIGFuZCAxNCBvdGhlciBDb21tb253ZWFsdGggcmVhbG1zIGFzIHRoZSB3aWZlIG9mIEtpbmcgQ2hhcmxlcyBJSUkuIENhbWlsbGEgd2FzIHJhaXNlZCBpbiBFYXN0IFN1c3NleCBhbmQgU291dGggS2Vuc2luZ3RvbiBpbiBFbmdsYW5kIGFuZCBlZHVjYXRlZCBpbiBFbmdsYW5kLCBTd2l0emVybGFuZCBhbmQgRnJhbmNlLiBJbiAxOTczLCBzaGUgbWFycmllZCBCcml0aXNoIEFybXkgb2ZmaWNlciBBbmRyZXcgUGFya2VyIEJvd2xlczsgdGhleSBkaXZvcmNlZCBpbiAxOTk1Lg0KDQoxOTk2OltHZW9Qb2xpdGljc11bQnVzaW5lc3NdIE1vbmdvbGlhIHdhcyBncmFudGVkIG9ic2VydmVyIHN0YXR1cyB0byBUUkFDRUNBLg0KMTk5NiAoNyBBdWd1c3QpOltSZXNlYXJjaF1bU3BhY2VdIE5BU0EgYW5ub3VuY2VkIGZvc3NpbGl6ZWQgZXZpZGVuY2Ugb2YgYW5jaWVudCBsaWZlIGluIG1ldGVvcml0ZSBBTEggODQwMDEgZnJvbSBNYXJzLg0KMTk5NiAoT2N0IDI3KTpbUmVzZWFyY2hdW1NwYWNlXSBnZW5ldGljaXN0cyBzaG93ZWQgZXZpZGVuY2UgdGhhdCBtYW55IGdlbmVzIGFyZSBtdWNoIG9sZGVyIHRoYW4gdGhlIGZvc3NpbCByZWNvcmQgd291bGQgaW5kaWNhdGUuIFN1YnNlcXVlbnQgc3R1ZGllcyBoYXZlIHN0cmVuZ3RoZW5lZCB0aGlzIGZpbmRpbmcuDQoxOTk2OltCdXNpbmVzc11bR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2hlbiB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4gc2lnbmVkIHRoZSBUcmVhdHkgb24gRGVlcGVuaW5nIE1pbGl0YXJ5IFRydXN0IGluIEJvcmRlciBSZWdpb25zIGluIFNoYW5naGFpLiBPbiAyNCBBcHJpbCAxOTk3IHRoZSBzYW1lIGNvdW50cmllcyBzaWduZWQgdGhlIFRyZWF0eSBvbiBSZWR1Y3Rpb24gb2YgTWlsaXRhcnkgRm9yY2VzIGluIEJvcmRlciBSZWdpb25zIGluIGEgbWVldGluZyBpbiBNb3Njb3csIFJ1c3NpYS4gT24gMjAgTWF5IDE5OTcgUnVzc2lhbiBQcmVzaWRlbnQgQm9yaXMgWWVsdHNpbiBhbmQgQ2hpbmVzZSBQcmVzaWRlbnQgSmlhbmcgWmVtaW4gc2lnbmVkIGEgZGVjbGFyYXRpb24gb24gYSAibXVsdGlwb2xhciB3b3JsZCIuDQoxOTk2OiAxOTk2IE1vdW50IEV2ZXJlc3QgRGlzYXN0ZXIsIGluIHdoaWNoIGVpZ2h0IHBlb3BsZSBkaWVkIHdoaWxlIG9uIGFuIGV4cGVkaXRpb24gdG8gc2NhbGUgdGhlIGluZmFtb3VzIHN1bW1pdC4gT25lIG9mIHRoZSBjbGltYmVycyB3aG8gbG9zdCBoaXMgbGlmZSB3YXMgQW5keSBIYXJyaXMsIHBsYXllZCBpbiBFdmVyZXN0IGJ5IE1hcnRpbiBIZW5kZXJzb24uIEhhcnJpcyB3YXMgb25lIG9mIHRoZSBndWlkZXMgZm9yIHRoZSBBZHZlbnR1cmUgQ29uc3VsdGFudHMsIGFsb25nIHdpdGggUm9iIEhhbGwgYW5kIE1pa2UgR3Jvb20uIEluIHRoZSBmaWxtLCBoZSBhcHBlYXJzIHRvIGRpZSB3aGlsZSB3aXRoIEhhbGwsIGZhbGxpbmcgb2ZmIGEgY2xpZmYgYWZ0ZXIgYSBoYWxsdWNpbmF0aW9uLiBCdXQgUm9iIEhhbGwgbmV2ZXIgcmVwb3J0ZWQgdGhpcywgYW5kIHNpbmNlIGhlIGRpZWQgc2hvcnRseSB0aGVyZWFmdGVyLCB0aGVyZSBpcyBubyB3YXkgdG8gY29uZmlybSB0aGUgY2lyY3Vtc3RhbmNlcyBzdXJyb3VuZGluZyBIYXJyaXMnIGRlYXRoLg0KMTk5NjpbQ29tcHV0aW5nXVtRdWFudHVtXSAgTG92IEdyb3ZlciBkZXZpc2VkIGFuIGFsZ29yaXRobSAoR3JvdmVyJ3MgYWxnb3JpdGhtKSB0aGF0IGNvdWxkIHNlYXJjaCBhbiB1bnNvcnRlZCBkYXRhYmFzZSBpbiBzcXVhcmUgcm9vdCB0aW1lIG9uIGEgcXVhbnR1bSBjb21wdXRlciwgd2hpY2ggd291bGQgb3V0cGVyZm9ybSBhbnkgY2xhc3NpY2FsIGFsZ29yaXRobS4NCjE5OTY6W1VTXSBCYXJhY2sgT2JhbWEgd2FzIGVsZWN0ZWQgdG8gdGhlIElsbGlub2lzIFNlbmF0ZSwgc3VjY2VlZGluZyBEZW1vY3JhdGljIFN0YXRlIFNlbmF0b3IgQWxpY2UgUGFsbWVyIGZyb20gSWxsaW5vaXMncyAxM3RoIERpc3RyaWN0LCB3aGljaCwgYXQgdGhhdCB0aW1lLCBzcGFubmVkIENoaWNhZ28gU291dGggU2lkZSBuZWlnaGJvcmhvb2RzIGZyb20gSHlkZSBQYXJr4oCTS2Vud29vZCBzb3V0aCB0byBTb3V0aCBTaG9yZSBhbmQgd2VzdCB0byBDaGljYWdvIExhd24uDQoxOTk2OltVS10gQ2hhcmxlcyBJSUkgYW5kIERpYW5hIGdldHMgZGl2b3JjZWQuDQoxOTk2IChKYW4gMjUpOltCb29rXSBQZXRlciBMeW5jaCAmIEpvaG4gUm90aGNoaWxkJ3MgTGVhcm4gdG8gRWFybjogQSBCZWdpbm5lcidzIEd1aWRlIHRvIHRoZSBCYXNpY3Mgb2YgSW52ZXN0aW5nIGFuZCBCdXNpbmVzcy4NCjE5OTYgKEphbik6W0NyaW1lXVtJbmRpYV0gQW5lZXMgSWJyYWhpbSBhcnJlc3RlZCBpbiBCYWhyYWluLCBzaGlmdGVkIHRvIER1YmFpIGFsbGVnZWRseSBvbiB0aGUgaW50ZXJ2ZW50aW9uIG9mIHNvbWUgb2YgRHViYWkncyBydWxpbmcgbm90YWJsZXMsIGFuZCB3YXMgdGhlbiBhbGxvd2VkIHRvIHNsaXAgYXdheSB0byBLYXJhY2hpLCBQYWtpc3Rhbi4NCjE5OTY6IE5hdGlvbmFsIEFlcm9zcGFjZSBMYWJvcmF0b3JpZXMsIEluZGlhIGluZGlnZW5vdXNseSBidWlsdCBGTE9TT0xWRVIsIEluZGlhJ3MgZmlyc3Qgc3VwZXJjb21wdXRlci4gSXQgd2FzIHJlcGxpY2F0ZWQgYW5kIGluc3RhbGxlZCBhdCBJQ0FEIE1vc2NvdyBpbiAxOTkxIHVuZGVyIFJ1c3NpYW4gY29sbGFib3JhdGlvbi4NCjE5OTY6IEluZGlhL1Bha2lzdGFuL1NyaSBMYW5rYSAxOTk2Lg0KMTk5NjpbQ29tcHV0aW5nXVt3d3ddIE1hcmlvIDY0IGdhbWUgcmFuIDEwMCBtaWxsaW9uIGNhbGN1bGF0aW9ucyBwZXIgc2Vjb25kLCA1NDAgbWlsbGlvbiAoSGFsZi1MaWZlKSBpbiAxOTk4LCBNaW5lY3JhZnQgKDIwMTEpIHJ1bm5pbmcgMTAwIGJpbGxpb24gY2FsY3VsYXRpb25zLCBDeWJlcnB1bmsgMjA3NyAobW9zdCByZWFsaXN0aWMgdmlkZW8gZ2FtZSAyMDI0KSwgeW91IG5lZWQgYSBncmFwaGljcyBjYXJkIHRoYXQgY2FuIHBlcmZvcm0gYXJvdW5kIDM2IHRyaWxsaW9uIGNhbGMgcGVyIHNlY29uZC4NCjE5OTY6IFByb2YgTWFsY29sbSBIZWF0aC4gUHJvZmVzc29yIG9mIEdyZWVrIExhbmd1YWdlIGFuZCBMaXRlcmF0dXJlIEBsZWVkcy5hYy51aywgdHJhbnNsYXRlZCBBcmlzdG90bGUncyBQb2V0aWNzLg0KMTk5NjogVGhlIDU2SyBtb2RlbSB3YXMgaW52ZW50ZWQgYnkgRHIuIEJyZW50IFRvd25zaGVuZA0KMTk5NiAoRmViIDEzKTogTmVwYWxlc2UgQ2l2aWwgV2FyIHN0YXJ0ZWQuIFRoZSBNYW9pc3QgUmViZWxsaW9uIChsYWJlbGxlZCB0aGUgUGVvcGxlJ3MgV2FyIGJ5IHRoZW4gQ1BOKE1hb2lzdCkpIHdhcyBhbiBhcm1lZCBjb25mbGljdCBhZ2FpbnN0IEdvdmVybm1lbnQgb2YgTmVwYWwgKHRoZW4gSE1HIG9mIE5lcGFsKSBmb3VnaHQgZnJvbSAxOTk2IHRvIDIwMDYuIFRoZSByZWJlbGxpb24gd2FzIGxhdW5jaGVkIGJ5IHRoZSBDb21tdW5pc3QgUGFydHkgb2YgTmVwYWwgKE1hb2lzdCkgb24gMTMgRmVicnVhcnkgMTk5NiB3aXRoIHRoZSBtYWluIGFpbSBvZiBvdmVydGhyb3dpbmcgdGhlIE5lcGFsZXNlIG1vbmFyY2h5IGFuZCBlc3RhYmxpc2hpbmcgYSAnUGVvcGxlJ3MgUmVwdWJsaWMnLiBJdCBlbmRlZCB3aXRoIHRoZSBDb21wcmVoZW5zaXZlIFBlYWNlIEFjY29yZCBzaWduZWQgb24gMjEgTm92ZW1iZXIgMjAwNi4NCjE5OTYgKE1hciAxKTogW0dlb1BvbGl0aWNzXSBUaGUgQXNpYeKAk0V1cm9wZSBNZWV0aW5nIChBU0VNKSBpcyBhbiBBc2lhbuKAk0V1cm9wZWFuIHBvbGl0aWNhbCBkaWFsb2d1ZSBmb3J1bSB0byBlbmhhbmNlIHJlbGF0aW9ucyBhbmQgdmFyaW91cyBmb3JtcyBvZiBjb29wZXJhdGlvbiBiZXR3ZWVuIGl0cyBwYXJ0bmVycy4gSXQgd2FzIG9mZmljaWFsbHkgZXN0YWJsaXNoZWQgYXQgdGhlIDFzdCBBU0VNIFN1bW1pdCAoQVNFTTEpIGluIEJhbmdrb2ssIFRoYWlsYW5kLCBieSB0aGUgdGhlbiAxNSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aGUgRXVyb3BlYW4gQ29tbWlzc2lvbiwgdGhlIHRoZW4gNyBNZW1iZXIgU3RhdGVzIG9mIHRoZSBBc3NvY2lhdGlvbiBvZiBTb3V0aGVhc3QgQXNpYW4gTmF0aW9ucyAoQVNFQU4pLCBhbmQgdGhlIGluZGl2aWR1YWwgY291bnRyaWVzIG9mIENoaW5hLCBKYXBhbiwgYW5kIFNvdXRoIEtvcmVhLiBBIHNlcmllcyBvZiBlbmxhcmdlbWVudHMgc2F3IGFkZGl0aW9uYWwgRVUgTWVtYmVyIFN0YXRlcyBqb2luIGFzIHdlbGwgYXMgSW5kaWEsIE1vbmdvbGlhLCBQYWtpc3RhbiBhbmQgdGhlIEFTRUFOIFNlY3JldGFyaWF0IGluIDIwMDgsIEF1c3RyYWxpYSwgTmV3IFplYWxhbmQgYW5kIFJ1c3NpYSBpbiAyMDEwLCBCYW5nbGFkZXNoLCBOb3J3YXksIGFuZCBTd2l0emVybGFuZCBpbiAyMDEyLCBhcyB3ZWxsIGFzIENyb2F0aWEsIGFuZCBLYXpha2hzdGFuIGluIDIwMTQuDQoxOTk2IChBcHIgMjYpOiBbR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2l0aCB0aGUgc2lnbmluZyBvZiB0aGUgVHJlYXR5IG9uIERlZXBlbmluZyBNaWxpdGFyeSBUcnVzdCBpbiBCb3JkZXIgUmVnaW9ucyBpbiBTaGFuZ2hhaSBieSB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4uIExhdGVyIG9uIEp1biAxNSwgMjAwMSBpdCBnb3QgcmVuYW1lZCBhcyBTaGFuZ2hhaSBDb29wZXJhdGlvbiBPcmdhbmlzYXRpb24gKFNDTykgb3IgU2hhbmdoYWkgUGFjdCANCjE5OTYgKE1heSAxNik6IEF0YWwgQmloYXJpIFZhanBheWVlIGJlY29tZXMgUE0gb2YgSW5kaWEgZm9yIHRoZSB2ZXJ5IGZpcnN0IHRpbWUgZm9yIDE2IGRheXMuDQoxOTk2IChKdW4gMSk6IEF0YWwgQmloYXJpIFZhanBheWVlIHJlc2lnbnMuIEhEIERldmUgR293ZGEgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NiAoQXVnIDE0KTpbcmVzZWFyY2hdW2V4dHJlbWVdIEthcmVuIEVsaXphYmV0aCBXZXR0ZXJoYWhuIChPY3RvYmVyIDE2LCAxOTQ4IOKAkyBKdW5lIDgsIDE5OTcpLCBhbHNvIGtub3duIGFzIEthcmVuIFdldHRlcmhhaG4gSmVubmV0dGUsIHdhcyBhbiBBbWVyaWNhbiBwcm9mZXNzb3Igb2YgY2hlbWlzdHJ5IGF0IERhcnRtb3V0aCBDb2xsZWdlLCBOZXcgSGFtcHNoaXJlLCB3aG8gc3BlY2lhbGl6ZWQgaW4gdG94aWMgbWV0YWwgZXhwb3N1cmUuIFNoZSBkaWVkIG9mIG1lcmN1cnkgcG9pc29uaW5nIGF0IHRoZSBhZ2Ugb2YgNDggZHVlIHRvIGFjY2lkZW50YWwgZXhwb3N1cmUgdG8gdGhlIGV4dHJlbWVseSB0b3hpYyBvcmdhbmljIG1lcmN1cnkgY29tcG91bmQgZGltZXRoeWxtZXJjdXJ5IChIZyhDSDMpMikuIFByb3RlY3RpdmUgZ2xvdmVzIGluIHVzZSBhdCB0aGUgdGltZSBvZiB0aGUgaW5jaWRlbnQgcHJvdmlkZWQgaW5zdWZmaWNpZW50IHByb3RlY3Rpb24sIGFuZCBleHBvc3VyZSB0byBvbmx5IGEgc2luZ2xlIGRyb3Agb3IgdHdvIG9mIHRoZSBkaW1ldGh5bG1lcmN1cnkgYWJzb3JiZWQgdGhyb3VnaCB0aGUgZ2xvdmVzIHByb3ZlZCB0byBiZSBmYXRhbCBhZnRlciBsZXNzIHRoYW4gYSB5ZWFyLiBUZXN0cyBsYXRlciByZXZlYWxlZCB0aGF0IGRpbWV0aHlsbWVyY3VyeSBjYW4sIGluIGZhY3QsIHJhcGlkbHkgcGVybWVhdGUgc2V2ZXJhbCBraW5kcyBvZiBsYXRleCBnbG92ZXMgYW5kIGVudGVyIHRoZSBza2luIHdpdGhpbiBhYm91dCAxNSBzZWNvbmRzLiBIZXIgZXhwb3N1cmUgd2FzIGxhdGVyIGNvbmZpcm1lZCBieSBoYWlyIGFuYWx5c2lzLCB3aGljaCBzaG93ZWQgYSBkcmFtYXRpYyBqdW1wIGluIG1lcmN1cnkgbGV2ZWxzIDE3IGRheXMgYWZ0ZXIgdGhlIGluaXRpYWwgYWNjaWRlbnQsIHBlYWtpbmcgYXQgMzkgZGF5cywgZm9sbG93ZWQgYnkgYSBncmFkdWFsIGRlY2xpbmUuIEFwcHJveGltYXRlbHkgdGhyZWUgbW9udGhzIGFmdGVyIHRoZSBpbml0aWFsIGFjY2lkZW50IFdldHRlcmhhaG4gYmVnYW4gZXhwZXJpZW5jaW5nIGJyaWVmIGVwaXNvZGVzIG9mIGFiZG9taW5hbCBkaXNjb21mb3J0IGFuZCBub3RpY2VkIHNpZ25pZmljYW50IHdlaWdodCBsb3NzLiBUaGUgbW9yZSBkaXN0aW5jdGl2ZSBuZXVyb2xvZ2ljYWwgc3ltcHRvbXMgb2YgbWVyY3VyeSBwb2lzb25pbmcsIGluY2x1ZGluZyBsb3NzIG9mIGJhbGFuY2UgYW5kIHNsdXJyZWQgc3BlZWNoLCBhcHBlYXJlZCBpbiBKYW51YXJ5IDE5OTcsIGZpdmUgbW9udGhzIGFmdGVyIHRoZSBhY2NpZGVudC4gSGVyIGJsb29kIGFuZCB1cmluYXJ5IG1lcmN1cnkgY29udGVudCB3ZXJlIG1lYXN1cmVkIGF0IDQsMDAwIM68Zy9MIGFuZCAyMzQgzrxnL0wsIHJlc3BlY3RpdmVseeKAlGJvdGggbWFueSB0aW1lcyB0aGVpciByZXNwZWN0aXZlIHRveGljIHRocmVzaG9sZHMgb2YgMjAwIM68Zy9MIGFuZCA1MCDOvGcvTCAoYmxvb2QgYW5kIHVyaW5lIHJlZmVyZW5jZSByYW5nZXMgYXJlIDEgdG8gOCDOvGcvTCBhbmQgMSB0byA1IM68Zy9MKS4NCjE5OTYgKERlYyA0IDA2OjU4OjA3IFVUQyk6W1NwYWNlXVtNYXJzXVtFYXJ0aF0gTGF1bmNoIG9mIE1hcnMgUGF0aGZpbmRlciBvbiBEZWx0YSBJSSA3OTI1ICgjRDI0MCkNCnJvY2tldCBmcm9tIENhcGUgQ2FuYXZlcmFsIFNMQy0xNy4gVG8gcHJvdmUgdGhhdCB0aGUgZGV2ZWxvcG1lbnQgb2YgImZhc3RlciwgYmV0dGVyIGFuZCBjaGVhcGVyIiBzcGFjZWNyYWZ0IHdhcyBwb3NzaWJsZSAod2l0aCB0aHJlZSB5ZWFycyBmb3IgZGV2ZWxvcG1lbnQgYW5kIGEgY29zdCB1bmRlciAkMTUwIG1pbGxpb24gZm9yIHRoZSBsYW5kZXIsIGFuZCAkMjUgbWlsbGlvbiBmb3IgdGhlIHJvdmVyKS4gVG8gc2hvdyB0aGF0IGl0IHdhcyBwb3NzaWJsZSB0byBzZW5kIGEgbG9hZCBvZiBzY2llbnRpZmljIGluc3RydW1lbnRzIHRvIGFub3RoZXIgcGxhbmV0IHdpdGggYSBzaW1wbGUgc3lzdGVtIGFuZCBhdCBvbmUtZmlmdGVlbnRoIHRoZSBjb3N0IG9mIGEgVmlraW5nIG1pc3Npb24uIChGb3IgY29tcGFyaXNvbiwgdGhlIFZpa2luZyBtaXNzaW9ucyBjb3N0ICQ5MzUgbWlsbGlvbiBpbiAxOTc0IG9yICQzLjUgYmlsbGlvbiBpbiAxOTk3IGRvbGxhcnMuKS4gVG8gZGVtb25zdHJhdGUgTkFTQSdzIGNvbW1pdG1lbnQgdG8gbG93LWNvc3QgcGxhbmV0YXJ5IGV4cGxvcmF0aW9uIGJ5IGZpbmlzaGluZyB0aGUgbWlzc2lvbiB3aXRoIGEgdG90YWwgZXhwZW5kaXR1cmUgb2YgJDI4MCBtaWxsaW9uLCBpbmNsdWRpbmcgdGhlIGxhdW5jaCB2ZWhpY2xlIGFuZCBtaXNzaW9uIG9wZXJhdGlvbnMuDQoxOTk2OiBhIHJhaWQgb24gdGhlIEFuaW1hbCBIdXNiYW5kcnkgZGVwYXJ0bWVudOKAmXMgb2ZmaWNlcyBpbiBDaGFpYmFzYSwgQmloYXIgdW5mb2xkZWQgdGhlIFJzLjk1MCBjcm9yZSBmb2RkZXIgc2NhbSwgaW4gd2hpY2ggdGhlIEJpaGFyIGNoaWVmIG1pbmlzdGVyIExhbHUgUHJhc2FkIFlhZGF2IGNhdGNoIHVwIGluIGEgbGlmZWxvbmcgdHVzc2xlIHdpdGggdGhlIENCSS4NCjE5OTY6W0Jvb2tdW0FkdmVudHVyZV0gSm9uIEtyYWthdWVyJ3MgSW50byB0aGUgV2lsZC4NCjE5OTY6W0NvbXB1dGluZ10gVGhlIFZpZGVvTEFOIHNvZnR3YXJlIG9yaWdpbmF0ZWQgYXMgYSBGcmVuY2ggYWNhZGVtaWMgcHJvamVjdC4gVkxDIHVzZWQgdG8gc3RhbmQgZm9yICJWaWRlb0xBTiBDbGllbnQiIHdoZW4gVkxDIHdhcyBhIGNsaWVudCBvZiB0aGUgVmlkZW9MQU4gcHJvamVjdCwgb2ZmaWNpYWxseSByZWxlYXNlZCB1bmRlciBHTlUgR1BMIG9uIDIwMDEgKEZlYiAxKS4NCjE5OTY6W01lbWVdIERhbmNpbmcgQmFieSBTY3JlZW5zYXZlcg0KMTk5NjpbU3BhY2VYXSBUaGUgZW50aXJlIHByb2Nlc3MgZm9yIHRoZSBKYW1lcyBXZWJiIFNwYWNlIFRlbGVzY29wZSAoSldTVCkgZnJvbSBpbml0aWFsIGNvbmNlcHQgdG8gbGF1bmNoIHNwYW5uZWQgYXBwcm94aW1hdGVseSAyNSB5ZWFycywgd2l0aCBpbml0aWFsIGRlc2lnbnMgYmVnaW5uaW5nIGluIDE5OTYgYW5kIHRoZSB0ZWxlc2NvcGUgbGF1bmNoaW5nIGluIDIwMjEsIGJ1dCBhIHNpZ25pZmljYW50IHBvcnRpb24gb2YgdGhpcyB3YXMgc3BlbnQgaW4gZGVzaWduLCB0ZXN0aW5nLCBhbmQgb3ZlcmNvbWluZyBtYWpvciByZWRlc2lnbnMgYW5kIGRlbGF5cywgbm90IGp1c3QgYXNzZW1ibHkuIA0KMTk5NiAoRmViIDI4KTpbRGVsaGldIEluZGlyYXB1cmFtLCBHaGF6aWFiYWQgd2FzIGVzdGQgd2hlbiBpdHMgZm91bmRhdGlvbiBzdG9uZSAoS2FsYSBQYXRoYXIpIHdhcyBpbmF1Z3VyYXRlZCBieSBTaCBNb3RpbGFsIFZvcmEsIHRoZW4gR292ZXJub3Igb2YgVVAuICgyMDIxKSBJJ3B1cmFtIEV4dG4gdG8gYmUgYnVpbHQgb24gMTIgYWNyZXMgb25seSwgY29uY2VpdmVkIGluIDIwMDQuDQoxOTk2OltCb29rXVtNaWxpdGFyeV1bQ3VsdHVyZV1bRVVdW1VTQV0gR2VvcmdlIFIuUi4gTWFydGluIGlzIHRoZSBBbWVyaWNhbiBhdXRob3Igb2YgdGhlIGVwaWMgZmFudGFzeSBib29rIHNlcmllcyBBIFNvbmcgb2YgSWNlIGFuZCBGaXJlLCB3aGljaCBiZWdhbiB3aXRoIEEgR2FtZSBvZiBUaHJvbmVzICgxOTk2KSBhbmQgc2VydmVkIGFzIHRoZSBiYXNpcyBmb3IgSEJPJ3MgbWFzc2l2ZWx5IHBvcHVsYXIgR2FtZSBvZiBUaHJvbmVzIFRWIHNlcmllcy4gQSBTb25nIG9mIEljZSBhbmQgRmlyZSBpcyBhIHNlcmllcyBvZiBoaWdoIGZhbnRhc3kgbm92ZWxzIGJ5IHRoZSBBbWVyaWNhbiBhdXRob3IgR2VvcmdlIFIuIFIuIE1hcnRpbi4gTWFydGluIGJlZ2FuIHdyaXRpbmcgdGhlIGZpcnN0IHZvbHVtZSwgQSBHYW1lIG9mIFRocm9uZXMsIGluIDE5OTEsIGFuZCBwdWJsaXNoZWQgaXQgaW4gMTk5Ni4gTWFydGluLCB3aG8gb3JpZ2luYWxseSBlbnZpc2lvbmVkIHRoZSBzZXJpZXMgYXMgYSB0cmlsb2d5LCBoYXMgcmVsZWFzZWQgZml2ZSBvdXQgb2Ygc2V2ZW4gcGxhbm5lZCB2b2x1bWVzLiANCg0KW0dlbmVyYXRpb25dIE1pbGxlbm5pYWwgZ2VuZXJhdGlvbiAoMTk4MeKAkzE5OTYpIGVuZHM7IGxhc3RlZCBmb3IgMTUgeWVhcnMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICA1MCB5ZWFycyBvZiBJbmRlcGVuZGVudCBJbmRpYSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSANCg0KW0dlbmVyYXRpb25dIEdlbiBaICgxOTk34oCTMjAxMikgc3RhcnRzOyBhbmQgZXhpc3RzIGZvciBuZXh0IDE1IHllYXJzLg0KDQoxOTk3OltXaG9dW1Jlc2VhcmNoXVtDb21wdXRpbmddW1RlY2hdW0N1bHR1cmVdIFZMQyBNZWRpYSBQbGF5ZXIgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBzdHVkZW50cyBhdCB0aGUgRnJlbmNoIGVuZ2luZWVyaW5nIHNjaG9vbCDDiWNvbGUgQ2VudHJhbGUgUGFyaXMgaW4gMTk5Ni4gV2hpbGUgaXQgc3RhcnRlZCBhcyBhbiBhY2FkZW1pYyBwcm9qZWN0IChWaWRlb0xBTikgdG8gc3RyZWFtIHZpZGVvIG92ZXIgYSBjYW1wdXMgbmV0d29yaywgaXRzIGRldmVsb3BtZW50IGFuZCBtb2Rlcm5pemF0aW9uIHdlcmUgbGF0ZXIgbGVkIGJ5IEplYW4tQmFwdGlzdGUgS2VtcGYuIA0KMTk5NzpbUmVzZWFyY2hdW1NwYWNlXSAyOSBKdWx5IDE5OTc6IGEgTkFTQSBzY2llbnRpc3QgYW5ub3VuY2VkIGV2aWRlbmNlIG9mIGZvc3NpbGl6ZWQgbWljcm9zY29waWMgbGlmZSBmb3JtcyBpbiBhIG1ldGVvcml0ZSBub3QgZnJvbSBhbnkga25vd24gcGxhbmV0Lg0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgR3JvdXAgb2YgRWlnaHQgKEc4KSB3YXMgYW4gaW50ZXJnb3Zlcm5tZW50YWwgcG9saXRpY2FsIGZvcnVtIGZyb20gMTk5NyB0byAyMDE0LCBmb3JtZWQgYnkgaW5jb3Jwb3JhdGluZyBSdXNzaWEgaW50byB0aGUgRzcuIFRoZSBHOCBiZWNhbWUgdGhlIEc3IGFnYWluIGFmdGVyIFJ1c3NpYSB3YXMgZXhwZWxsZWQgaW4gMjAxNCBhZnRlciB0aGUgUnVzc2lhbiBhbm5leGF0aW9uIG9mIENyaW1lYS4gRm91bmRlZDogMTk5NywgRGVudmVyLCBDb2xvcmFkbywgVW5pdGVkIFN0YXRlcw0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBGb3VuZGVkOiA2IEp1bmUgMTk5NywgVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiAoQklNU1RFQykgaXMgYW4gaW50ZXJuYXRpb25hbCBvcmdhbml6YXRpb24gb2Ygc2V2ZW4gU291dGggQXNpYW4gYW5kIFNvdXRoZWFzdCBBc2lhbiBuYXRpb25zLCBob3VzaW5nIDEuNzMgYmlsbGlvbiBwZW9wbGUgYW5kIGhhdmluZyBhIGNvbWJpbmVkIGdyb3NzIGRvbWVzdGljIHByb2R1Y3Qgb2YgVVMkNS4yIHRyaWxsaW9uLg0KMTk5NzpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gYnVpbHQgdGhlIGZpcnN0IGV4cGVyaW1lbnRhbCBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCBjb3VsZCBtYW5pcHVsYXRlIDcgcXViaXRzIHVzaW5nIG51Y2xlYXIgbWFnbmV0aWMgcmVzb25hbmNlIChOTVIpIHRlY2huaXF1ZXMuDQoxOTk3IChKdWwgNCk6W1NwYWNlXVtNYXJzXSBUaGUgTWFycyBQYXRoZmluZGVyIGVuZHVyZWQgYSAzMC1zZWNvbmQgY29tbXVuaWNhdGlvbnMgYmxhY2tvdXQgYXMgaXQgZW50ZXJlZCBNYXJzJyBhdG1vc3BoZXJlLiBJdCBsYW5kZWQgYXQgQXJlcyBWYWxsaXMsIENocnlzZSBQbGFuaXRpYSwgTWFycyAxOcKwN+KAsjQ44oCzTiAzM8KwMTPigLIxMuKAs1cuIE1hcnMgUGF0aGZpbmRlciAoTUVTVVIgUGF0aGZpbmRlcikgaXMgYW4gQW1lcmljYW4gcm9ib3RpYyBzcGFjZWNyYWZ0IHRoYXQgbGFuZGVkIGEgYmFzZSBzdGF0aW9uIHdpdGggYSByb3ZpbmcgcHJvYmUgb24gTWFycyBpbiAxOTk3LiBJdCBjb25zaXN0ZWQgb2YgYSBsYW5kZXIsIHJlbmFtZWQgdGhlIENhcmwgU2FnYW4gTWVtb3JpYWwgU3RhdGlvbiwgYW5kIGEgbGlnaHR3ZWlnaHQsIDEwLjYga2cgKDIzIGxiKSB3aGVlbGVkIHJvYm90aWMgTWFycyByb3ZlciBuYW1lZCBTb2pvdXJuZXIsIHRoZSBmaXJzdCByb3ZlciB0byBvcGVyYXRlIG91dHNpZGUgdGhlIEVhcnRo4oCTTW9vbiBzeXN0ZW0uDQoxOTk3OltCb29rXSBNaXRjaCBBbGJvbSdzIFR1ZXNkYXlzIHdpdGggTW9ycmllLg0KMTk5NzpbR2FtaW5nXSBHcmFuZCBUaGVmdCBBdXRvIChHVEEpIHJlbGVhc2VkIGJ5IERNQSBEZXNpZ24gKGxhdGVyIFJvY2tzdGFyIE5vcnRoKSBmb3IgUFMxLCBXaW5kb3dzIGFuZCBNUy1ET1M7IEdyYW5kIFRoZWZ0IEF1dG86IFZpY2UgQ2l0eSAoMjAwMik7IEdyYW5kIFRoZWZ0IEF1dG86IFNhbiBBbmRyZWFzICgyMDA0KTsgR3JhbmQgVGhlZnQgQXV0byBJViAoMjAwOCk7IEdyYW5kIFRoZWZ0IEF1dG8gViAoMjAxMyk7IEdyYW5kIFRoZWZ0IEF1dG86IFRoZSBUcmlsb2d5IOKAkyBUaGUgRGVmaW5pdGl2ZSBFZGl0aW9uICgyMDIxKQ0KMTk5NzogVGVra2VuIDMgd2FzIGRlc2lnbmVkIGJ5IEthdHN1aGlybyBIYXJhZGEgKE9zYWthLCBPc2FrYSBQcmVmZWN0dXJlLCBKYXBhbikgb2YgQmFuZGFpIE5hbWNvIEVudGVydGFpbm1lbnQgaGVhZHF1YXJ0ZXJlZCBhdCDFjHRhLCBUb2t5by4NCjE5OTcgKE1hciA2KTogW0dlb1BvbGl0aWNzXSBUaGUgSW5kaWFuIE9jZWFuIFJpbSBBc3NvY2lhdGlvbiwgZm9ybWVybHkga25vd24gYXMgdGhlIEluZGlhbiBPY2VhbiBSaW0gSW5pdGlhdGl2ZSBhbmQgdGhlIEluZGlhbiBPY2VhbiBSaW0gQXNzb2NpYXRpb24gZm9yIFJlZ2lvbmFsIENvb3BlcmF0aW9uLCBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBjb25zaXN0aW5nIG9mIDIzIHN0YXRlcyBib3JkZXJpbmcgdGhlIEluZGlhbiBPY2Vhbi4gVGhlIElPUkEgaXMgYSByZWdpb25hbCBmb3J1bSwgdHJpcGFydGl0ZSBpbiBuYXR1cmUsIGJyaW5naW5nIHRvZ2V0aGVyIHJlcHJlc2VudGF0aXZlcyBvZiBHb3Zlcm5tZW50LCBCdXNpbmVzcyBhbmQgQWNhZGVtaWEsIGZvciBwcm9tb3RpbmcgY28tb3BlcmF0aW9uIGFuZCBjbG9zZXIgaW50ZXJhY3Rpb24gYW1vbmcgdGhlbS4gSXQgaXMgYmFzZWQgb24gdGhlIHByaW5jaXBsZXMgb2YgT3BlbiBSZWdpb25hbGlzbSBmb3Igc3RyZW5ndGhlbmluZyBFY29ub21pYyBDb29wZXJhdGlvbiBwYXJ0aWN1bGFybHkgb24gVHJhZGUgRmFjaWxpdGF0aW9uIGFuZCBJbnZlc3RtZW50LCBQcm9tb3Rpb24gYXMgd2VsbCBhcyBTb2NpYWwgRGV2ZWxvcG1lbnQgb2YgdGhlIHJlZ2lvbi4gVGhlIENvb3JkaW5hdGluZyBTZWNyZXRhcmlhdCBvZiBJT1JBIGlzIGxvY2F0ZWQgYXQgRWJlbmUsIE1hdXJpdGl1cy4NCjE5OTcgKEFwciAyMSk6IEguRC4gRGV2ZSBHb3dkYSByZXNpZ25zLiBJbmRlciBLdW1hciBHdWpyYWwgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NyAoSnVuIDYpOiBbR2VvUG9saXRpY3NdIEJJTVNURUMgZm91bmRlZC4gVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBvZiBzZXZlbiBTb3V0aCBBc2lhbiBhbmQgU291dGhlYXN0IEFzaWFuIG5hdGlvbnMsIGhvdXNpbmcgMS43MyBiaWxsaW9uIHBlb3BsZSBhbmQgaGF2aW5nIGEgY29tYmluZWQgZ3Jvc3MgZG9tZXN0aWMgcHJvZHVjdCBvZiAkMy44IHRyaWxsaW9uLiBUaGUgQklNU1RFQyBtZW1iZXIgc3RhdGVzIOKAkyBCYW5nbGFkZXNoLCBCaHV0YW4sIEluZGlhLCBNeWFubWFyLCBOZXBhbCwgU3JpIExhbmthLCBhbmQgVGhhaWxhbmQg4oCTIGFyZSBhbW9uZyB0aGUgY291bnRyaWVzIGRlcGVuZGVudCBvbiB0aGUgQmF5IG9mIEJlbmdhbC4NCjE5OTcgKEp1biA4KTogRGVzcGl0ZSBhZ2dyZXNzaXZlIGNoZWxhdGlvbiB0aGVyYXB5LCBoZXIgY29uZGl0aW9uIHJhcGlkbHkgZGV0ZXJpb3JhdGVkLiBUaHJlZSB3ZWVrcyBhZnRlciB0aGUgZmlyc3QgbmV1cm9sb2dpY2FsIHN5bXB0b21zIGFwcGVhcmVkLCBXZXR0ZXJoYWhuIGxhcHNlZCBpbnRvIHdoYXQgYXBwZWFyZWQgdG8gYmUgYSB2ZWdldGF0aXZlIHN0YXRlIHB1bmN0dWF0ZWQgYnkgcGVyaW9kcyBvZiBleHRyZW1lIGFnaXRhdGlvbi4gT25lIG9mIGhlciBmb3JtZXIgc3R1ZGVudHMgc2FpZCB0aGF0ICJIZXIgaHVzYmFuZCBzYXcgdGVhcnMgcm9sbGluZyBkb3duIGhlciBmYWNlLiBJIGFza2VkIGlmIHNoZSB3YXMgaW4gcGFpbi4gVGhlIGRvY3RvcnMgc2FpZCBpdCBkaWRuJ3QgYXBwZWFyIHRoYXQgaGVyIGJyYWluIGNvdWxkIGV2ZW4gcmVnaXN0ZXIgcGFpbi4iIFdldHRlcmhhaG4gd2FzIHJlbW92ZWQgZnJvbSBsaWZlIHN1cHBvcnQgYW5kIHByb25vdW5jZWQgZGVhZCBvbiBKdW5lIDgsIDE5OTcsIHRlbiBtb250aHMgYWZ0ZXIgaGVyIGluaXRpYWwgZXhwb3N1cmUuIEluIHJlc3BvbnNlLCB0aGUgT2NjdXBhdGlvbmFsIFNhZmV0eSBhbmQgSGVhbHRoIEFkbWluaXN0cmF0aW9uIHJlY29tbWVuZGVkIHRoYXQgdGhlIHVzZSBvZiBkaW1ldGh5bG1lcmN1cnkgYmUgYXZvaWRlZCB1bmxlc3MgYWJzb2x1dGVseSBuZWNlc3NhcnkgYW5kIG1hbmRhdGVkIHRoZSB1c2Ugb2YgcGxhc3RpYy1sYW1pbmF0ZSBnbG92ZXMgKFNpbHZlclNoaWVsZCkgd2hlbiBoYW5kbGluZyB0aGlzIGNvbXBvdW5kLg0KMTk5NyAoSnVuIDEzKTpbSmFja10gQm9yZGVyDQoxOTk3IChKdW4gMjYpOltCb29rXSAzMllPIEouIEsuIFJvd2xpbmcgcHVibGlzaGVzIGhlciBmaXJzdCBIYXJyeSBQb3R0ZXIgYm9vaywgVGhlIFBoaWxvc29waGVyJ3MgU3RvbmU7IA0KVGhlIENoYW1iZXIgb2YgU2VjcmV0cyAoMiBKdWx5IDE5OTgpLA0KVGhlIFByaXNvbmVyIG9mIEF6a2FiYW4gKDggSnVseSAxOTk5KSwNClRoZSBHb2JsZXQgb2YgRmlyZSAoOCBKdWx5IDIwMDApLA0KVGhlIE9yZGVyIG9mIHRoZSBQaG9lbml4ICgsIDI3IEp1bmUgMjAwMyksDQpUaGUgSGFsZi1CbG9vZCBQcmluY2UgKDE2IEp1bHkgMjAwNSksDQpUaGUgRGVhdGhseSBIYWxsb3dzICgyMSBKdWx5IDIwMDcpDQoxOTk3IChBdWcgMjUpOltTcGFjZV0gQWR2YW5jZWQgQ29tcG9zaXRpb24gRXhwbG9yZXIgaXMgYSBOQVNBIEV4cGxvcmVyIHByb2dyYW0gc2F0ZWxsaXRlIGFuZCBzcGFjZSBleHBsb3JhdGlvbiBtaXNzaW9uIHRvIHN0dWR5IG1hdHRlciBjb21wcmlzaW5nIGVuZXJnZXRpYyBwYXJ0aWNsZXMgZnJvbSB0aGUgc29sYXIgd2luZCwgdGhlIGludGVycGxhbmV0YXJ5IG1lZGl1bSwgYW5kIG90aGVyIHNvdXJjZXMuDQoxOTk3IChTZXAgMTMpOiB0aGUgaW50cm9kdWN0b3J5IGVwaXNvZGUgb2YgU2hha3RpbWFuIHdhcyBhaXJlZCBvbiBEb29yZGFyc2hhbiAoSW5kaWEncyBuYXRpb25hbCB0ZWxldmlzaW9uIG5ldHdvcmspIGZyb20gMjcgU2VwdGVtYmVyIDE5OTcgdG8gMjcgTWFyY2ggMjAwNSwgb24gU3VuZGF5cyBhdCAxMiBub29uIElTVC4gVGhlIHRlbGVjYXN0IHNsb3QsIGhvd2V2ZXIgd2FzIHNoaWZ0ZWQgdG8gOTozMCBhLm0uIGZvciB0aGUgbGFzdCBlcGlzb2Rlcy4gDQoxOTk3IChTZXAgMjcgMTA6MjMgVVRDKTpbU3BhY2VdW01hcnNdIExhc3QgY29udGFjdCB3aXRoIE1hcnMgUGF0aGZpbmRlci4gTWlzc2lvbiBkdXJhdGlvbiAoTGF1bmNoIHRvIGxhc3QgY29udGFjdCk6IDkgbW9udGhzLCAyMyBkYXlzLg0KMTk5NyAoT2N0IDMxKTpbQm9va10gRG9uYWxkIFRydW1wJ3MgVHJ1bXA6IFRoZSBBcnQgb2YgdGhlIENvbWViYWNrOyBUaGUgQW1lcmljYSBXZSBEZXNlcnZlICgyMDAwKTsgVHJ1bXA6IFRoaW5rIExpa2UgYSBCaWxsaW9uYWlyZTogRXZlcnl0aGluZyBZb3UgTmVlZCB0byBLbm93IEFib3V0IFN1Y2Nlc3MsIFJlYWwgRXN0YXRlLCBhbmQgTGlmZSAoMjAwNCk7IFdoeSBXZSBXYW50IFlvdSB0byBCZSBSaWNoICgyMDA2KTsgVHJ1bXA6IFRoZSBCZXN0IFJlYWwgRXN0YXRlIEFkdmljZSBJIEV2ZXIgUmVjZWl2ZWQ6IDEwMCBUb3AgRXhwZXJ0cyBTaGFyZSBUaGVpciBTdHJhdGVnaWVzICgyMDA2LCBOb3YgMSk7IFRoaW5rIEJJRyBhbmQgS2ljayBBc3MgaW4gQnVzaW5lc3MgYW5kIExpZmUgKDIwMDcpOyBUcnVtcCBOZXZlciBHaXZlIFVwOiBIb3cgSSBUdXJuZWQgTXkgQmlnZ2VzdCBDaGFsbGVuZ2VzIGludG8gU3VjY2VzcyAoMjAwOCk7IFRpbWUgdG8gR2V0IFRvdWdoOiBNYWtpbmcgQW1lcmljYSAjMSBBZ2FpbiAoMjAxMSk7IENyaXBwbGVkIEFtZXJpY2E6IEhvdyB0byBNYWtlIEFtZXJpY2EgR3JlYXQgQWdhaW4gKDIwMTUpDQoxOTk3OiBBcnVuZGhhdGkgUm95IGJlY2FtZSB0aGUgZmlyc3QgSW5kaWFuIHRvIHdpbiBNYW4gQm9va2VyIFByaXplIGZvciBoZXIgbm92ZWwgJ1RoZSBHb2Qgb2YgU21hbGwgVGhpbmdzJy4NCjE5OTc6IElJVC1KRUUgd2FzIGNvbmR1Y3RlZCB0d2ljZSBhZnRlciB0aGUgUS1QYXBlciB3YXMgbGVha2VkLg0KMTk5NzogTkFTQSBlc3RpbWF0ZWQgdGhlcmUgd2VyZSBhcHByb3guIDIsNjQ1IGFydGlmaWNpYWwgc2F0ZWxsaXRlIHBheWxvYWRzIG9yYml0dGluZyB0aGUgZWFydGggYW5kIDYsMjE2IHBpZWNlcyBvZiBzcGFjZSBkZWJyaXMgYXMgdHJhY2tlZCBieSB0aGUgR1NGQy4gT3ZlciAxNiwyOTEgcHJldmlvdXNseSBsYXVuY2hlZCBvYmplY3RzIGhhdmUgZGVjYXllZCBpbnRvIHRoZSBFYXJ0aCdzIGF0bW9zcGhlcmUuDQoxOTk3OiBCSEMgRmluYW5jaWFsLCBJbmMuIG9mIFBlbm5zeWx2YW5pYSBtZXJnZWQgaW50byBGSVNWIHRvIGZvcm0gU2VjdXJlZCBUcmFuc2FjdGlvbiBQcm9jZXNzaW5nIFNlcnZpY2VzLg0KMTk5NzpbQm9va10gVGhlIEZvdXIgQWdyZWVtZW50czogQSBQcmFjdGljYWwgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSBpcyBhIHNlbGYtaGVscCBib29rIGJ5IGJlc3RzZWxsaW5nIGF1dGhvciBEb24gTWlndWVsIFJ1aXogd2l0aCBKYW5ldCBNaWxsczsgVGhlIE1hc3Rlcnkgb2YgTG92ZTogQSBQcmFjdGljYWwgR3VpZGUgdG8gdGhlIEFydCBvZiBSZWxhdGlvbnNoaXAgLS1Ub2x0ZWMgV2lzZG9tIEJvb2sgKDE5OTksIE1hciAzMCk7IFRoZSBWb2ljZSBvZiBLbm93bGVkZ2U6IEEgUHJhY3RpY2FsIEd1aWRlIHRvIElubmVyIFBlYWNlICgyMDA0LCBNYXIgMTApOyBUaGUgRmlmdGggQWdyZWVtZW50OiBBIFByYWN0aWNhbCBHdWlkZSB0byBTZWxmLU1hc3RlcnkgKDIwMDkpOyBUaGUgQ2lyY2xlIG9mIEZpcmU6IEluc3BpcmF0aW9uIGFuZCBHdWlkZWQgTWVkaXRhdGlvbnMgZm9yIExpdmluZyBpbiBMb3ZlIGFuZCBIYXBwaW5lc3MgKDIwMTMsIEF1ZyAxKTsgVGhlIE1hc3Rlcnkgb2YgU2VsZjogQSBUb2x0ZWMgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSAoMjAxNiwgTWF5IDYpDQoxOTk3OltCb29rXSBKb24gS3Jha2F1ZXIncyBJbnRvIFRoaW4gQWlyOiBBIFBlcnNvbmFsIEFjY291bnQgb2YgdGhlIE10LiBFdmVyZXN0IERpc2FzdGVyOyBVbmRlciB0aGUgQmFubmVyIG9mIEhlYXZlbiAoMjAwMyBKdWwpDQoxOTk3IChEZWMgMTEpOltFbnZdIFRoZSBLeW90byBQcm90b2NvbCB3YXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgd2hpY2ggZXh0ZW5kZWQgdGhlIDE5OTIgVW5pdGVkIE5hdGlvbnMgRnJhbWV3b3JrIENvbnZlbnRpb24gb24gQ2xpbWF0ZSBDaGFuZ2UgKFVORkNDQykgdGhhdCBjb21taXRzIHN0YXRlIHBhcnRpZXMgdG8gcmVkdWNlIGdyZWVuaG91c2UgZ2FzIGVtaXNzaW9ucywgYmFzZWQgb24gdGhlIHNjaWVudGlmaWMgY29uc2Vuc3VzIHRoYXQgKHBhcnQgb25lKSBnbG9iYWwgd2FybWluZyBpcyBvY2N1cnJpbmcgYW5kIChwYXJ0IHR3bykgdGhhdCBodW1hbi1tYWRlIENPMiBlbWlzc2lvbnMgYXJlIGRyaXZpbmcgaXQuDQoxOTk3OltJbmRpYV1bRWR1Y2F0aW9uXVtDdWx0dXJlXSBFa2xhdnlhIE1vZGVsIFJlc2lkZW50aWFsIFNjaG9vbCBpcyBhIEdvdmVybm1lbnQgb2YgSW5kaWEgc2NoZW1lIGZvciBtb2RlbCByZXNpZGVudGlhbCBzY2hvb2wgZm9yIEluZGlhbiB0cmliYWxzIGFjcm9zcyBJbmRpYS4gSXQgaXMgb25lIG9mIHRoZSBmbGFnc2hpcCBpbnRlcnZlbnRpb25zIG9mIHRoZSBNaW5pc3RyeSBvZiBUcmliYWwgQWZmYWlycywgR292ZXJubWVudCBvZiBJbmRpYSBhbmQgd2FzIGludHJvZHVjZWQgaW4gdGhlIHllYXIgMTk5Ny05OCB0byBlbnN1cmUgdHJpYmFsIHN0dWRlbnRzIGdldCBhY2Nlc3MgdG8gcXVhbGl0eSBlZHVjYXRpb24gaW4gdGhlIHJlbW90ZSB0cmliYWwgYXJlYXMuIEVNUlNzIGFyZSBzZXQgdXAgaW4gU3RhdGVzL1VUcyB3aXRoIGdyYW50cyB1bmRlciBBcnRpY2xlIDI3NSgxKSBvZiB0aGUgQ29uc3RpdHV0aW9uIG9mIEluZGlhLiBBcyBwZXIgdGhlIGJ1ZGdldCAyMDE4LTE5LCBldmVyeSBibG9jayB3aXRoIG1vcmUgdGhhbiA1MCUgU1QgcG9wdWxhdGlvbiBhbmQgYXQgbGVhc3QgMjAsMDAwIHRyaWJhbCBwZXJzb25zLCB3aWxsIGhhdmUgYW4gRWtsYXZ5YSBNb2RlbCBSZXNpZGVudGlhbCBTY2hvb2wgYnkgdGhlIHllYXIgMjAyMi4NCjE5OTc6W1NwYWNlXSBIaXBwYXJjb3MgKDE5ODkgLTE5OTMpLiBJdCB0b29rIDQtOCB5ZWFycyB0byBvcmdhbml6ZSBhbmQgcHVibGlzaCB0aGUgNCB5ZWFycyBzdHVkeSBieSB0aGlzIGV4cGVyaW1lbnQsIHdoaWNoIHBlcm1pdHRlZCB0aGUgZmlyc3QgaGlnaC1wcmVjaXNpb24gbWVhc3VyZW1lbnRzIG9mIHRoZSBpbnRyaW5zaWMgYnJpZ2h0bmVzc2VzIChjb21wYXJlZCB0byB0aGUgbGVzcyBwcmVjaXNlIGFwcGFyZW50IGJyaWdodG5lc3MpLCBwcm9wZXIgbW90aW9ucywgYW5kIHBhcmFsbGF4ZXMgb2Ygc3RhcnMsIGVuYWJsaW5nIGJldHRlciBjYWxjdWxhdGlvbnMgb2YgdGhlaXIgZGlzdGFuY2UgYW5kIHRhbmdlbnRpYWwgdmVsb2NpdHkuIFdoZW4gY29tYmluZWQgd2l0aCByYWRpYWwgdmVsb2NpdHkgbWVhc3VyZW1lbnRzIGZyb20gc3BlY3Ryb3Njb3B5LCBhc3Ryb3BoeXNpY2lzdHMgd2VyZSBhYmxlIHRvIGZpbmFsbHkgbWVhc3VyZSBhbGwgc2l4IHF1YW50aXRpZXMgbmVlZGVkIHRvIGRldGVybWluZSB0aGUgbW90aW9uIG9mIHN0YXJzLiBUaGUgcmVzdWx0aW5nIEhpcHBhcmNvcyBDYXRhbG9ndWUsIGEgaGlnaC1wcmVjaXNpb24gY2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiAxMTgsMjAwIHN0YXJzLCB3YXMgcHVibGlzaGVkIGluIDE5OTcuIFRoZSBsb3dlci1wcmVjaXNpb24gVHljaG8gQ2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiBhIG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBhdCB0aGUgc2FtZSB0aW1lLCB3aGlsZSB0aGUgZW5oYW5jZWQgVHljaG8tMiBDYXRhbG9ndWUgb2YgMi41IG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBpbiAyMDAwLiBIaXBwYXJjb3MnIGZvbGxvdy11cCBtaXNzaW9uLCBHYWlhLCB3YXMgbGF1bmNoZWQgaW4gMjAxMy4NCjE5OTc6W1NwYWNlXVtSZXNlYXJjaF0gU2luY2UgdGhlIDE5OTcgcHJvcG9zYWwgb2YgdGhlIEFkUy9DRlQgKEFudGktZGUgU2l0dGVyL0NvbmZvcm1hbCBGaWVsZCBUaGVvcnkpIGNvcnJlc3BvbmRlbmNlLCB0aGUgcHJlZG9taW5hbnQgYmVsaWVmIGFtb25nIHBoeXNpY2lzdHMgaXMgdGhhdCBpbmZvcm1hdGlvbiBpcyBpbmRlZWQgcHJlc2VydmVkIGluIGJsYWNrIGhvbGUgZXZhcG9yYXRpb24uIA0KMTk5NzpbU3BhY2VdW1Jlc2VhcmNoXSBBIHdpZGVseSBwdWJsaWNpemVkIGJldCBtYWRlIGluIDE5OTcgYmV0d2VlbiBKb2huIFByZXNraWxsIG9uIHRoZSBvbmUgaGFuZCB3aXRoIEhhd2tpbmcgYW5kIEtpcCBUaG9ybmUgb24gdGhlIG90aGVyIHRoYXQgaW5mb3JtYXRpb24gd2FzIG5vdCBsb3N0IGluIGJsYWNrIGhvbGVzLiBUaGUgc2NpZW50aWZpYyBkZWJhdGUgb24gdGhlIHBhcmFkb3ggd2FzIGRlc2NyaWJlZCBpbiBhIHBvcHVsYXIgYm9vayBwdWJsaXNoZWQgaW4gMjAwOCBieSBMZW9uYXJkIFN1c3NraW5kIGNhbGxlZCBUaGUgQmxhY2sgSG9sZSBXYXIuIChUaGUgYm9vayBjYXJlZnVsbHkgbm90ZXMgdGhhdCB0aGUgJ3dhcicgd2FzIHB1cmVseSBhIHNjaWVudGlmaWMgb25lLCBhbmQgdGhhdCBhdCBhIHBlcnNvbmFsIGxldmVsLCB0aGUgcGFydGljaXBhbnRzIHJlbWFpbmVkIGZyaWVuZHMuKSBUaGUgYm9vayBzdGF0ZXMgdGhhdCBIYXdraW5nIHdhcyBldmVudHVhbGx5IHBlcnN1YWRlZCB0aGF0IGJsYWNrLWhvbGUgZXZhcG9yYXRpb24gd2FzIHVuaXRhcnkgYnkgdGhlIGhvbG9ncmFwaGljIHByaW5jaXBsZSwgd2hpY2ggd2FzIGZpcnN0IHByb3Bvc2VkIGJ5ICd0IEhvb2Z0LCBmdXJ0aGVyIGRldmVsb3BlZCBieSBTdXNza2luZCBhbmQgbGF0ZXIgZ2l2ZW4gYSBwcmVjaXNlIHN0cmluZyB0aGVvcnkgaW50ZXJwcmV0YXRpb24gYnkgdGhlIEFkUy9DRlQgY29ycmVzcG9uZGVuY2UuIEluIDIwMDQsIEhhd2tpbmcgYWxzbyBjb25jZWRlZCB0aGUgMTk5NyBiZXQsIHBheWluZyBQcmVza2lsbCB3aXRoIGEgYmFzZWJhbGwgZW5jeWNsb3BlZGlhICJmcm9tIHdoaWNoIGluZm9ybWF0aW9uIGNhbiBiZSByZXRyaWV2ZWQgYXQgd2lsbCIgYWx0aG91Z2ggVGhvcm5lIHJlZnVzZWQgdG8gY29uY2VkZS4NCjE5OTc6W0VhcnRoXVtQaHlzaWNzXVtSZXNlYXJjaF0gdGhlcmUgd2VyZSB0d28gbGFyZ2UgZWFydGhxdWFrZXMgb2ZmIHRoZSBjb2FzdCBvZiBDaGlsZS4gVGhlIG1hZ25pdHVkZSBvZiB0aGUgZmlyc3QsIGluIEp1bHksIHdhcyBlc3RpbWF0ZWQgYXQgTXfigK82LjksIGJ1dCB3YXMgYmFyZWx5IGZlbHQsIGFuZCBvbmx5IGluIHRocmVlIHBsYWNlcy4gSW4gT2N0b2JlciBhIE134oCvNy4xIHF1YWtlIGluIG5lYXJseSB0aGUgc2FtZSBsb2NhdGlvbiwgYnV0IHR3aWNlIGFzIGRlZXAgYW5kIG9uIGEgZGlmZmVyZW50IGtpbmQgb2YgZmF1bHQsIHdhcyBmZWx0IG92ZXIgYSBicm9hZCBhcmVhLCBpbmp1cmVkIG92ZXIgMzAwIHBlb3BsZSwgYW5kIGRlc3Ryb3llZCBvciBzZXJpb3VzbHkgZGFtYWdlZCBvdmVyIDEwLDAwMCBob3VzZXMuIEFzIGNhbiBiZSBzZWVuIGluIHRoZSB0YWJsZSBiZWxvdywgdGhpcyBkaXNwYXJpdHkgb2YgZGFtYWdlIGRvbmUgaXMgbm90IHJlZmxlY3RlZCBpbiBlaXRoZXIgdGhlIG1vbWVudCBtYWduaXR1ZGUgKE134oCvKSBub3IgdGhlIHN1cmZhY2Utd2F2ZSBtYWduaXR1ZGUgKE1z4oCvKS4gT25seSB3aGVuIHRoZSBtYWduaXR1ZGUgaXMgbWVhc3VyZWQgb24gdGhlIGJhc2lzIG9mIHRoZSBib2R5LXdhdmUgKG1i4oCvKSBvciB0aGUgc2Vpc21pYyBlbmVyZ3kgKE1l4oCvKSBpcyB0aGVyZSBhIGRpZmZlcmVuY2UgY29tcGFyYWJsZSB0byB0aGUgZGlmZmVyZW5jZSBpbiBkYW1hZ2UuIChhcyByZXNlYXJjaGVkIGJ5IENob3ksIEJvYXR3cmlnaHQgJiBLaXJieSAyMDAxLCBwLiAxMy4pLiBNdyA2Ljkgd2FzIGFjdHVhbGx5IE1lIDYuMSwgYW4gaW50ZXJwbGF0ZS10aHJ1c3QgdHlwZSBvZiBmYXVsdCwgd2hpbGUgTXcgNy4xIHdhcyBhY3R1YWxseSBhIDcuNSBNZSBpbnRyYXNsYWItbm9ybWFsIHR5cGUgb2YgZmF1bHQuDQoxOTk3OltSZXNlYXJjaF0gRHVyaW5nIHN1cnZleXMgY2FycmllZCBvdXQgYmV0d2VlbiAxOTk3IGFuZCAyMDAxLCBhIHNwb3Qgd2FzIGZvdW5kIGFsb25nIHRoZSBNYXJpYW5hIFRyZW5jaCB0aGF0IGhhZCBhIGRlcHRoIHNpbWlsYXIgdG8gdGhlIENoYWxsZW5nZXIgRGVlcCwgcG9zc2libHkgZXZlbiBkZWVwZXIuIEl0IHdhcyBkaXNjb3ZlcmVkIHdoaWxlIHNjaWVudGlzdHMgZnJvbSB0aGUgSGF3YWlpIEluc3RpdHV0ZSBvZiBHZW9waHlzaWNzIGFuZCBQbGFuZXRvbG9neSB3ZXJlIGNvbXBsZXRpbmcgYSBzdXJ2ZXkgYXJvdW5kIEd1YW07IHRoZXkgdXNlZCBhIHNvbmFyIG1hcHBpbmcgc3lzdGVtIHRvd2VkIGJlaGluZCB0aGUgcmVzZWFyY2ggc2hpcCB0byBjb25kdWN0IHRoZSBzdXJ2ZXkuIFRoaXMgbmV3IHNwb3Qgd2FzIG5hbWVkIHRoZSBITVJHIChIYXdhaWkgTWFwcGluZyBSZXNlYXJjaCBHcm91cCkgRGVlcCwgYWZ0ZXIgdGhlIGdyb3VwIG9mIHNjaWVudGlzdHMgd2hvIGRpc2NvdmVyZWQgaXQuDQoxOTk3OltTcGFjZVhdIEEgcmVzb2x2ZWQgY2lyY3Vtc3RlbGxhciBkaXNrIHdhcyBmaXJzdCBpZGVudGlmaWVkIGluIDE5OTcgd2l0aCB0aGUgT3dlbnMgVmFsbGV5IFJhZGlvIE9ic2VydmF0b3J5LiBUaGUgc2VtaS1tYWpvciBheGlzIHdhcyBpbml0aWFsbHkgZXN0aW1hdGVkIHRvIGJlIDExMCBBVS4gSEQgMTYzMjk2IGFuZCBzdXJyb3VuZGluZ3MgQ3JlZGl0OiBFU08vRGlnaXRpemVkIFNreSBTdXJ2ZXkgMjsgQWNrbm93bGVkZ2VtZW50OiBEYXZpZGUgRGUgTWFydGluIE9ic2VydmF0aW9uIGRhdGEgRXBvY2ggSjIwMDAgICAgICBFcXVpbm94IEoyMDAwIENvbnN0ZWxsYXRpb24JU2FnaXR0YXJpdXMgUmlnaHQgYXNjZW5zaW9uCTE3aCA1Nm0gMjEuMjlzIERlY2xpbmF0aW9uCeKIkjIxwrAgNTfigLIgMjEuODfigLMgQXBwYXJlbnQgbWFnbml0dWRlIChWKQk2Ljg1OyBDaGFyYWN0ZXJpc3RpY3MgRXZvbHV0aW9uYXJ5IHN0YWdlCUhlcmJpZyBBZSBzdGFyIFNwZWN0cmFsIHR5cGUJQTNWYWVrQTFtQTE7IEFzdHJvbWV0cnkgUmFkaWFsIHZlbG9jaXR5IChSdikJLTQuMDAgwrEzLjNbM10ga20vcyBQcm9wZXIgbW90aW9uICjOvCkJUkE6IC03LjU4NiDCsTAuMDQxIG1hcy95cjsgRGVjLjogLTM5LjQ1OCDCsTAuMDI5IG1hcy95cls0XSBQYXJhbGxheCAoz4ApCTkuOTA0M8KxMC4wNDA4IG1hc1s0XSBEaXN0YW5jZQkzMjkgwrEgMSBseSAoMTAxLjAgwrEgMC40IHBjKSBEZXRhaWxzOyBNYXNzCTEuOTXCsTAuMDcgTeKYiSBSYWRpdXMJMS44N8KxMC4wNSBS4piJIEx1bWlub3NpdHkJMjAuNCszLjYg4oiSMy4wIEzimIkgU3VyZmFjZSBncmF2aXR5IChsb2cgZykJNC4xMMKxMC4xMCBjZ3MgVGVtcGVyYXR1cmUJOTAwMMKxMjUwIEsgQWdlCTYuMDMrMC4yOCDiiJIwLjI3IE15ciBPdGhlciBkZXNpZ25hdGlvbnMgQkQtMjEgNDc3OSwgQ1BELTIxIDY1MDgsIEVNKiBNV0MgMjc1LCBISVAgODc4MTksIElSQVMgMTc1MzMtMjE1NiwgMk1BU1MgSjE3NTYyMTI4LTIxNTcyMTgsIFBEUyA0NzMsIFRZQyA2MjYyLTIxMzEtMSwgRGF0YWJhc2UgcmVmZXJlbmNlcyBTSU1CQUQNCjE5OTc6W1NwYWNlWF0gMTAxOTkgQ2hhcmlrbG8gaXMgYSByaW5nZWQgYXN0ZXJvaWQgb3IgY2VudGF1ciBpbiB0aGUgb3V0ZXIgU29sYXIgU3lzdGVtLiBJdCBpcyB0aGUgbGFyZ2VzdCBrbm93biBjZW50YXVyLCB3aXRoIGEgZGlhbWV0ZXIgb2YgYWJvdXQgMjUwIGttLiBJdCBvcmJpdHMgdGhlIFN1biBiZXR3ZWVuIFNhdHVybiBhbmQgVXJhbnVzIHdpdGggYW4gb3JiaXRhbCBwZXJpb2Qgb2YgNjIuNSB5ZWFycy4gV2lraXBlZGlhIE9yYml0YWwgcGVyaW9kOiA2MyB5ZWFycyBSYWRpdXM6IDE1MSBrbSBEaXNjb3ZlcmVkOiAxNSBGZWJydWFyeSAxOTk3IERpbWVuc2lvbnM6ICgyODcuNisyLjg7IOKIkjMuMCkgw5cgKDI3MC40KzIuODsg4oiSNS42KSDDlyAoMTk4LjIrMTAuODsg4oiSNS40KSBrbTogMTEgRGlzY292ZXJlcjogSmFtZXMgVi4gU2NvdHRpIFNwZWN0cmFsIHR5cGU6IEQtdHlwZSBhc3Rlcm9pZCBBcGhlbGlvbjogMTguNDIwIEFVDQoxOTk3OltTcGFjZVhdIFRoZSBHcmVhdCBEYXlsaWdodCBGaXJlYmFsbCAtIFRoZSBhdG1vc3BoZXJpYyBwYXNzIG1vZGlmaWVkIHRoZSBvYmplY3QncyBtYXNzIGFuZCBvcmJpdCBhcm91bmQgdGhlIFN1bi4gQSAxOTk0IHN0dWR5IGZvdW5kIHRoYXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgaW4gYW4gRWFydGgtY3Jvc3Npbmcgb3JiaXQgYW5kIHByZWRpY3RlZCB0aGF0IGl0IHdvdWxkIHBhc3MgY2xvc2UgdG8gRWFydGggYWdhaW4gaW4gQXVndXN0IDE5OTcuIEhvd2V2ZXIsIHRoZSBvYmplY3QgaGFzIG5vdCBiZWVuIG9ic2VydmVkIGFnYWluIGFuZCBzbyBpdHMgcG9zdC1lbmNvdW50ZXIgb3JiaXQgcmVtYWlucyB1bmtub3duLg0KMTk5NzpOYWZpc2EgSm9zZXBoIHdhcyB0aGUgeW91bmdlc3QgTWlzcyBJbmRpYSB3aW5uZXIgYXQgYWdlIDE5LCB3aW5uaW5nIHRoZSB0aXRsZSBpbiAxOTk3LiBTaGUgbGF0ZXIgYmVjYW1lIGEgbW9kZWwgYW5kIHRlbGV2aXNpb24gcGVyc29uYWxpdHkuIFdoaWxlIG90aGVyIHdpbm5lcnMgbGlrZSBNZWVuYWtzaGkgU2VzaGFkcmkgd2VyZSBhbHNvIDE3IHdoZW4gdGhleSB3b24gaW4gMTk4MSwgSm9zZXBoIGlzIG9mdGVuIGNpdGVkIGZvciBoZXIgZWFybHkgd2luIGF0IDE5LCB3aGljaCB3YXMgdGhlbiBhIHlvdW5nZXIgYWdlIHRoYW4gaXMgdHlwaWNhbGx5IHNlZW4gaW4gdGhlIGNvbXBldGl0aW9uLiANCjE5OTc6W3NwYWNlXVt0ZWNoXSBUaGUgZmluYWwgQmxvY2sgSUlBIHdhcyBpbiBOb3YgMTk5Nywgd2hpbGUgQmxvY2sgSUlScyBiZWdhbiByZXBsYWNpbmcgdGhlbSBzaG9ydGx5IGFmdGVyLCBsYXN0aW5nIHVudGlsIDIwMDQuIEJsb2NrIElJUiAoUmVwbGVuaXNobWVudCkgbGF1bmNoZXMgZm9sbG93ZWQgZnJvbSAxOTk3IHRvIDIwMDQsIHdpdGggdGhlIGZpcnN0IGxhdW5jaCBpbiBKYW51YXJ5IDE5OTcuIA0KDQoxOTk4OltTcGFjZVhdIFRoZSBwcmltYXJ5IGNvbnN0cnVjdGlvbiBwaGFzZSBvZiB0aGUgSW50ZXJuYXRpb25hbCBTcGFjZSBTdGF0aW9uIChJU1MpIHRvb2sgYXBwcm94aW1hdGVseSAxMyB5ZWFycywgZnJvbSAxOTk4IHRvIDIwMTEsIHdpdGggdGhlIGZpcnN0IG1vZHVsZSBsYXVuY2hpbmcgaW4gTm92ZW1iZXIgMTk5OCBhbmQgSVNTIEFzc2VtYmx5IENvbXBsZXRlIGRlY2xhcmVkIGluIE1heSAyMDExLiBIb3dldmVyLCBhc3NlbWJseSB3YXMgYSBjb250aW51b3VzLCBtdWx0aS1zdGFnZSBwcm9jZXNzIGludm9sdmluZyBtb3JlIHRoYW4gMzAgbWlzc2lvbnMsIG51bWVyb3VzIHNwYWNld2Fsa3MsIGFuZCByb2JvdGljIGFzc2lzdGFuY2UgdG8gYnVpbGQgdGhlIHN0YXRpb24gcGllY2UgYnkgcGllY2UgaW4gb3JiaXQuIEV2ZW4gYWZ0ZXIgMjAxMSwgdGhlIElTUyBjb250aW51ZWQgdG8gZXZvbHZlIHdpdGggb25nb2luZyBhZGRpdGlvbnMgYW5kIHVwZ3JhZGVzLg0KMTk5ODpbUmVzZWFyY2hdW1NwYWNlXSBTcHJpbmcsIDE5OTg6IGEgbWljcm9mb3NzaWwgdGhhdCB3YXMgZm91bmQgaW4gYSBtZXRlb3JpdGUgYW5kIHBob3RvZ3JhcGhlZCBpbiAxOTY2LCB3YXMgcmVjb2duaXplZCBieSBhIFJ1c3NpYW4gbWljcm9iaW9sb2dpc3QgYXMgYSBtYWduZXRvdGFjdGljIGJhY3Rlcml1bS4gQnkgRmFsbCwgMTk5ODogTkFTQSdzIHB1YmxpYyBwb3NpdGlvbiBvbiBsaWZlLWZyb20tc3BhY2Ugc2hpZnRlZCBkcmFtYXRpY2FsbHkuDQoxOTk4OiBBcyBhIHJlc2VhcmNoIHByb2plY3QgYXQgU3RhbmZvcmQgVW5pdmVyc2l0eSwgU2VyZ2V5IEJyaW4gYW5kIExhcnJ5IFBhZ2UgY3JlYXRlZCBhIHNlYXJjaCBlbmdpbmUgdGhhdCBsaXN0ZWQgcmVzdWx0cyBhY2NvcmRpbmcgdG8gdGhlIHBvcHVsYXJpdHkgb2YgdGhlIHBhZ2VzLCBhZnRlciBjb25jbHVkaW5nIHRoYXQgdGhlIG1vc3QgcG9wdWxhciByZXN1bHQgd291bGQgb2Z0ZW4gYmUgdGhlIG1vc3QgdXNlZnVsLiBBZnRlciByYWlzaW5nICQxIG1pbGxpb24gZnJvbSBmYW1pbHksIGZyaWVuZHMgYW5kIG90aGVyIGludmVzdG9ycywgdGhlIHBhaXIgbGF1bmNoZWQgdGhlIGNvbXBhbnkgaW4gMTk5OC4gR29vZ2xlIGhhcyBzaW5jZSBiZWNvbWUgdGhlIHdvcmxk4oCZcyBtb3N0IHBvcHVsYXIgc2VhcmNoIGVuZ2luZSwgcmVjZWl2aW5nIG1vcmUgdGhhbiAyMDAgbWlsbGlvbiBxdWVyaWVzIGVhY2ggZGF5Lg0KMTk5OCAoTm92IDIwKTogDQoxOTk4IChBcHIgMjcpOiBSUkIgZm91bmRlZCBhcyBSYWlsd2F5IFJlY3J1aXRtZW50IENvbnRyb2wgQm9hcmQgaXMgYSBnb3Zlcm5tZW50IG9yZ2FuaXNhdGlvbiBpbiBJbmRpYS4gSXQgd2FzIHNldCB1cCBpbiAxOTk4IGluIHRoZSBNaW5pc3RyeSBvZiBSYWlsd2F5cyAoUmFpbHdheSBCb2FyZCksIE5ldyBEZWxoaS5JbiAxOTQ1LCB0aGUgU2VydmljZXMgQ29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgYXQgQm9tYmF5LCBDYWxjdXR0YSwgTWFkcmFzIGFuZCBMdWNrbm93LiBJbiAxOTgzLCB0byBjYXRlciB0byB0aGUgbmVlZHMgb2YgYXJlYXMgd2hpY2ggd2VyZSBiZWluZyBuZWdsZWN0ZWQgZHVlIHRvIGxvY2F0aW9ucyBvZiB0aGUgZXhpc3RpbmcgY29tbWlzc2lvbnMsIHNldmVuIG1vcmUgY29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgdml6LCBhdCBBaG1lZGFiYWQsIEFqbWVyLCBCaG9wYWwsIEJodXZuZXNod2FyLCBDaGFuZGlnYXJoLCBKYW1tdSBhbmQgU3JpbmFnYXIgd2l0aCBzaXR0aW5nIGF0IExlaCBhbmQgVHJpdmVuZHJ1bS4gSW4gMTk4NCB0d28gbW9yZSBzZXJ2aWNlIGNvbW1pc3Npb25zIHdlcmUgc2V0IHVwIGF0IE1hbGRhIGFuZCBHb3Jha2hwdXIuDQoxOTk4IChNYXkgMTkpOiBBdGFsIEJpaGFyaSBWYWpwYXllZSBiZWNvbWVzIFBNIG9mIEluZGlhIGZvciB0aGUgc2Vjb25kIHRpbWUsIG5vdyBmb3IgNiB5ZWFycyB0aWxsIE1heSAyMiwgMjAwNC4gDQoxOTk4IChNYXkgMjggMTU6MTVQU1QpOiBDaGFnYWktSSBpcyB0aGUgY29kZSBuYW1lIG9mIGZpdmUgc2ltdWx0YW5lb3VzIHVuZGVyZ3JvdW5kIG51Y2xlYXIgdGVzdHMgY29uZHVjdGVkIGJ5IFBha2lzdGFuLiBUaGUgdGVzdHMgd2VyZSBwZXJmb3JtZWQgYXQgUmFzIEtvaCBIaWxscyBpbiB0aGUgQ2hhZ2FpIERpc3RyaWN0IG9mIEJhbG9jaGlzdGFuIFByb3ZpbmNlLiBDaGFnYWktSSB3YXMgUGFraXN0YW4ncyBmaXJzdCBwdWJsaWMgdGVzdCBvZiBudWNsZWFyIHdlYXBvbnMuIFBha2lzdGFuJ3MgZmlzc2lsZSBtYXRlcmlhbCBwcm9kdWN0aW9uIHRha2VzIHBsYWNlIGF0IE5pbG9yZSwgS2FodXRhLCBhbmQgS2h1c2hhYiBOdWNsZWFyIENvbXBsZXgsIHdoZXJlIHdlYXBvbnMtZ3JhZGUgcGx1dG9uaXVtIGlzIHJlZmluZWQuDQoxOTk4OiBBZnRlciBjb21wbGV0aW5nIGhpcyBYIHN0YW5kYXJkIGV4YW1pbmF0aW9ucywgUmFuYmlyIEthcG9vciwgYWdlZCAxNiwgd29ya2VkIGFzIGFuIGFzc2lzdGFudCBkaXJlY3RvciB0byBoaXMgZmF0aGVyIG9uIHRoZSBmaWxtIEFhIEFiIExhdXQgQ2hhbGVuICgxOTk5KSwgZHVyaW5nIHdoaWNoIGhlIGRldmVsb3BlZCBhIGNsb3NlciBib25kIHdpdGggaGltLg0KMTk4ODogTmV0d29ya2VkIERhdGEgUHJvY2Vzc2luZyBDb3IsIElvd2EgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBJbnN1cmFuY2UgZGl2aXNpb24uDQoxOTk4OltCb29rXSBSb2JlcnQgR3JlZW5lJ3MgVGhlIDQ4IExhd3Mgb2YgUG93ZXI7IFRoZSAzMyBTdHJhdGVnaWVzIG9mIFdhciAoMjAwNik7IE1hc3RlcnkgKDIwMTIsIE5vdiAxMyk7IFRoZSBMYXdzIG9mIEh1bWFuIE5hdHVyZSAoMjAxOCwgT2N0IDE2KQ0KMTk5ODpbU3BhY2VdW1Jlc2VhcmNoXVtFeHRyZW1lXSBUaGVuIGNhbWUgMTk5OCBhbmQgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgKEhTVCkgb2JzZXJ2YXRpb25zIG9mIHZlcnkgZGlzdGFudCBzdXBlcm5vdmFlIHRoYXQgc2hvd2VkIHRoYXQsIGEgbG9uZyB0aW1lIGFnbywgdGhlIHVuaXZlcnNlIHdhcyBhY3R1YWxseSBleHBhbmRpbmcgbW9yZSBzbG93bHkgdGhhbiBpdCBpcyB0b2RheS4gU28gdGhlIGV4cGFuc2lvbiBvZiB0aGUgdW5pdmVyc2UgaGFzIG5vdCBiZWVuIHNsb3dpbmcgZHVlIHRvIGdyYXZpdHksIGFzIGV2ZXJ5b25lIHRob3VnaHQsIGl0IGhhcyBiZWVuIGFjY2VsZXJhdGluZy4NCjE5OTg6W0NyaW1lXVtJbmRpYV0gQW5lZXMgYXJyZXN0ZWQgaW4gVUFFIG9uIGNoYXJnZXMgb2YgaGF2aW5nIG11cmRlcmVkIGEgZm9ybWVyIGFzc29jaWF0ZSBhbmQgdGhlbiByaXZhbCwgSXJmYW4gR29nYSwgaW4gRHViYWksIGJ1dCB3YXMgZnJlZWQgYWZ0ZXIgdHdvIGRheXMgZm9yICdsYWNrIG9mIGV2aWRlbmNlJy4NCjE5OTg6W0NvbXB1dGluZ11bUXVhbnR1bV0gUmVzZWFyY2hlcnMgYXQgSUJNLCBPeGZvcmQsIEJlcmtlbGV5LCBTdGFuZm9yZCwgYW5kIE1JVCBwcm9kdWNlZCBhIDItcXViaXQgY29tcHV0aW5nIHN5c3RlbS4NCjE5OTg6W3d3d10gV2lyZXNoYXJrIGlzIGEgZnJlZSBhbmQgb3Blbi1zb3VyY2UgcGFja2V0IGFuYWx5emVyLiBJdCBpcyB1c2VkIGZvciBuZXR3b3JrIHRyb3VibGVzaG9vdGluZywgYW5hbHlzaXMsIHNvZnR3YXJlIGFuZCBjb21tdW5pY2F0aW9ucyBwcm90b2NvbCBkZXZlbG9wbWVudCwgYW5kIGVkdWNhdGlvbi4gT3JpZ2luYWxseSBuYW1lZCBFdGhlcmVhbCwgdGhlIHByb2plY3Qgd2FzIHJlbmFtZWQgV2lyZXNoYXJrIGluIE1heSAyMDA2IGR1ZSB0byB0cmFkZW1hcmsgaXNzdWVzLg0KMTk5ODpbVVNdW0Vjb25vbXldRGF2aWQgUm9ja2VmZWxsZXIgU3IuIHdhcyBhd2FyZGVkIHRoZSBQcmVzaWRlbnRpYWwgTWVkYWwgb2YgRnJlZWRvbSBieSBQcmVzaWRlbnQgQmlsbCBDbGludG9uIGZvciBoaXMgd29yayBvbiBJbnRlcm5hdGlvbmFsIEV4ZWN1dGl2ZSBTZXJ2aWNlIENvcnBzLg0KMTk5ODpbRGVmXVtBdmlhdGlvbl0gVGhlIExvY2toZWVkIFNSLTcxIEJsYWNrYmlyZCBmbGV3IHNvIGhpZ2ggYW5kIHNvIGZhc3QgdGhhdCB0aGUgY3JldyBuZWVkZWQgcHJlc3N1cml6ZWQgc3BhY2Ugc3VpdHMgd2hlbiBmbHlpbmcgaXQuIEFuZCBpdCBpcyBzYWlkIHRoYXQgYXQgdGhlIG1heGltdW0gYWx0aXR1ZGUgb2YgaXQgaXQgd2FzIHBvc3NpYmxlIHRvIHNlZSB0aGUgY3VydmF0dXJlIG9mIHRoZSBlYXJ0aCwgd2hpY2ggcmVmZXJzIHRvIHRoaXMgcXVvdGUgYnkgQ29sb25lbCBBbGlzb246IOKAnE9uIGEgY2xlYXIgZGF5IHlvdSBjYW4gc2VlIGZvcmV2ZXLigKbigJ0uIFRoZSBzZXJ2aWNlIGNlaWxpbmcgb2YgODUsMDAwIGZlZXQgKDI1LDkwMG0pIG1lYW50IHRoYXQgaXQgd2FzIGFuIGV4Y2VsbGVudCBleHBlcmltZW50YWwgdW5pdCBmb3Igc3BhY2UgdHJhdmVscy4gVGhhdCwgY29tYmluZWQgd2l0aCB0aGUgZ3JlYXQgc3BlZWRzIG9mIGl0IHdhcyB0d28gb2YgdGhlIHJlYXNvbnMgd2h5IE5BU0EgZGVjaWRlZCB0byB0YWtlIG92ZXIgdGhlIGxhc3QgdHdvIEJsYWNrYmlyZHMgYWZ0ZXIgaXRzIHJldGlyZW1lbnQgZnJvbSB0aGUgQWlyIEZvcmNlIGluIDE5OTguIFRoaXMgbWVhbnMgdGhhdCB0aGUgd29ybGTigJlzIGZhc3Rlc3QgYWlyY3JhZnQgd2FzIGluIHNlcnZpY2UgZnJvbSAxOTY2IHVudGlsIE5BU0EgcmV0aXJlZCBpdHMgdHdvIHVuaXRzIGluIDE5OTksIGFuZCBtb3N0IG9mIHRoZSByZW1haW5pbmcgQmxhY2tiaXJkcyBhcmUgdG9kYXkgc3RhdGlvbmVkIGF0IG11c2V1bXMgb3IgbWlsaXRhcnkgYmFzZXMgYWNyb3NzIHRoZSBVUy4NCjE5OTg6SW4gMTk5OCwgR2F1dGFtIEFkYW5pLCBhbG9uZyB3aXRoIGhpcyBhc3NvY2lhdGUgU2hhbnRpbGFsIFBhdGVsLCB3YXMga2lkbmFwcGVkIGZvciByYW5zb20gaW4gQWhtZWRhYmFkLCBJbmRpYS4gVGhleSB3ZXJlIGFiZHVjdGVkIGF0IGd1bnBvaW50IGFmdGVyIGxlYXZpbmcgdGhlIEthcm5hdmF0aSBDbHViIGluIGEgY2FyLiBUaGUga2lkbmFwcGVycywgYWxsZWdlZGx5IGdhbmdzdGVycyBGYXpsdSBSZWhtYW4gYW5kIEJob2dpbGFsIERhcmppLCByZXBvcnRlZGx5IGRlbWFuZGVkIGEgcmFuc29tIG9mICQxLjUtMiBtaWxsaW9uLiBCb3RoIEFkYW5pIGFuZCBQYXRlbCB3ZXJlIHJlbGVhc2VkIGEgZGF5IGxhdGVyLCBidXQgaXQncyB1bmNsZWFyIGlmIHRoZSByYW5zb20gd2FzIHBhaWQuIA0KVGhlIGtpZG5hcHBpbmcgaW5jaWRlbnQgaGFwcGVuZWQgaW4gdGhlIG1pZC0xOTkwcywgYXJvdW5kIHRoZSB0aW1lIEFkYW5pJ3MgYnVzaW5lc3Mgc3VjY2Vzc2VzIHN0YXJ0ZWQgYXR0cmFjdGluZyB1bndhbnRlZCBhdHRlbnRpb24uIFRoZSBraWRuYXBwaW5nIHdhcyBhbGxlZ2VkbHkgY2FycmllZCBvdXQgYnkgRmF6bHUgUmVobWFuIGFuZCBCaG9naWxhbCBEYXJqaSwgYWxzbyBrbm93biBhcyAiTWFtYSIuIFRoZXkgd2VyZSBsYXRlciBhY3F1aXR0ZWQgZHVlIHRvIGxhY2sgb2YgZXZpZGVuY2UuIA0KVGhlIGFiZHVjdGlvbiBpcyBqdXN0IG9uZSBvZiB0aGUgY2hhbGxlbmdlcyBBZGFuaSBoYXMgZmFjZWQuIEhlIHdhcyBhbHNvIGNhdWdodCBpbiB0aGUgMjYvMTEgTXVtYmFpIHRlcnJvciBhdHRhY2tzIGF0IHRoZSBUYWogSG90ZWwuIE1vcmUgcmVjZW50bHksIGhlIGhhcyBmYWNlZCBhY2N1c2F0aW9ucyBvZiBicmliZXJ5IGFuZCBzZWN1cml0aWVzIGZyYXVkLiANCkFkYW5pIGFuZCBvdGhlcnMgd2VyZSBlc2NvcnRlZCBieSBzdGFmZiB0byB0aGUga2l0Y2hlbiBhbmQgdGhlbiB0aGUgYmFzZW1lbnQuIFRoZXkgc3BlbnQgdGhlIGVudGlyZSBuaWdodCBpbiBhIGhhbGwgd2FpdGluZyBmb3IgcmVzY3VlLiBBZGFuaSBsYXRlciB0b2xkIG5ld3MgY2hhbm5lbHMgdGhhdCBoZSBzYXcg4oCcZGVhdGggYXQgYSBkaXN0YW5jZSBvZiBqdXN0IDE1IGZlZXQu4oCdIEhlIHdhcyByZXNjdWVkIHRoZSBuZXh0IG1vcm5pbmcgYnkgc2VjdXJpdHkgZm9yY2VzLg0KMTk5ODpbRW52XVtEaXNhc3Rlcl0gRWFzdGVybiBJbmRpYSwgMTk5OCBCYW5nbGFkZXNoIGZsb29kOyA0ayBkZWF0aHMNCjE5OTg6W1dob11bUmVzZWFyY2hdW0NvbXB1dGluZ11bVGVjaF1bQ3VsdHVyZV0gSW50ZXJuZXQgRG93bmxvYWQgTWFuYWdlciAoSURNKSB3YXMgZGV2ZWxvcGVkIGJ5IFRvbmVjIEluYy4sIGFuIEFtZXJpY2FuIGNvbXBhbnkgdGhhdCBzdGFydGVkIHRoZSBwcm9qZWN0IGluIDE5OTggYW5kIHJlbGVhc2VkIHRoZSBzb2Z0d2FyZSBpbiAyMDAxLiBUb25lYyBJbmMuIGZvY3VzZXMgb24gbmV0d29yayBwcm9ncmFtbWluZyBhbmQgY3JlYXRlZCBJRE0gdG8gc3BlZWQgdXAgZG93bmxvYWRzIGJ5IHVzaW5nIGR5bmFtaWMgZmlsZSBzZWdtZW50YXRpb24sIGFjY2VsZXJhdGluZyBzcGVlZHMgYnkgdXAgdG8gOCB0aW1lcy4gDQoNCjE5OTk6NCBKYW51YXJ5IDE5OTk6IE5BU0Egb2ZmaWNpYWxseSByZWNvZ25pemVkIHRoZSBwb3NzaWJpbGl0eSB0aGF0IGxpZmUgb24gRWFydGggY29tZXMgZnJvbSBzcGFjZS4NCjE5IE1hcmNoIDE5OTk6IE5BU0Egc2NpZW50aXN0cyBhbm5vdW5jZWQgdGhhdCB0d28gbW9yZSBtZXRlb3JpdGVzIGhvbGQgZXZlbiBzdHJvbmdlciBmb3NzaWxpemVkIGV2aWRlbmNlIGZvciBwYXN0IGxpZmUgb24gTWFycy4NCjE5OTk6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEcyMCBvciBHcm91cCBvZiAyMCBpcyBhbiBpbnRlcmdvdmVybm1lbnRhbCBmb3J1bSBjb21wcmlzaW5nIDE5IHNvdmVyZWlnbiBjb3VudHJpZXMsIHRoZSBFdXJvcGVhbiBVbmlvbiwgYW5kIHRoZSBBZnJpY2FuIFVuaW9uLiBGb3VuZGVkOiAyNiBTZXB0ZW1iZXIgMTk5OTsgQ2hhaXJtYW4gKEluY3VtYmVudCk6IEN5cmlsIFJhbWFwaG9zYSwgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYQ0KMTk5OTogVGhlIHRlcm0gV2ktRmkgd2FzIGludmVudGVkIGJ5IEludGVyYnJhbmQgKGFuIGFtZXJpY2FuIGJyYW5kIGNvbnN1bHRhbmN5IGNvbXBhbnkpIGFzIGEgcHVuIHVwb24gdGhlIHdvcmQgaGktZmkuDQpXaS1GaSBBbGxpYW5jZSBmb3JtZWQgYXMgYSB0cmFkZSBhc3NvY2lhdGlvbiB0byBob2xkIHRoZSBXaS1GaSB0cmFkZW1hcmsgdW5kZXIgd2hpY2ggbW9zdCBwcm9kdWN0cyBhcmUgc29sZC4NCjE5OTk6IHRoZSB0ZXJtDQoxOTk5OiBJc2xhbWljIFN0YXRlIG9mIElyYXEgYW5kIHRoZSBMZXZhbnQgKGFsc28ga25vd24gYXMgdGhlIElzbGFtaWMgU3RhdGUgb2YgSXJhcSBhbmQgU3lyaWEsIElzbGFtaWMgU3RhdGUsIG9yIGNvbW1vbmx5LCBJU0lTKSBmb3VuZGVkIGFzIEphbWEnYXQgYWwtVGF3aGlkIHdhbC1KaWhhZCBieSBBYnUgTXVzYWIgYWwtWmFycWF3aSBIUSdkIGF0ICBBbC1SYXFxYWguDQoxOTk5IChBcHIgMTIpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBJIFdhbnQgSXQgVGhhdCBXYXkuDQoxOTk5IChBcHIgMTgpOiBDT05DRVJUIGJlY2FtZSBvcGVyYXRpb25hbC4gSXQgd2FzIGRldmVsb3BlZCB1c2luZyBjbGllbnQtc2VydmVyIG1vZGVsIGZvciBkaXN0cmlidXRlZCBjb21wdXRpbmcgaXMgYSB0b3RhbCBzb2x1dGlvbiB0byB0aGUgbmV0d29ya2luZyBvZiB0aGUgUFJTcy4gQWxsIHRoZSBmaXZlIHNpdGVzIGhhdmUgYmVlbiBpbnRlcm5ldC13b3JrZWQgb3ZlciBhIDY0IGticHMgbGluZSB1c2luZyByb3V0ZXJzLCBvbiBsZWFzZWQgY29tbXVuaWNhdGlvbiBsaW5lIGNvbm5lY3Rpb25zIGZyb20gRGVwYXJ0bWVudCBvZiBUZWxlY29tIChET1QpLg0KMTk5OTogQ3JlZGl0IGNhcmRzIGFjY2VwdGVkIGZvciBib29raW5nIHRpY2tldHMgYW5kIHJlc2VydmF0aW9ucyBpbiBzb21lIHN0YXRpb25zIChpbmNsdWRpbmcgTXVtYmFpIENTVCkuDQoxOTk5IChNYXkgMSk6W0Jvb2tdIFJvYmVydCBLaXlvc2FraSAmIFNoYXJvbiBMZWNodGVyJ3MgUmljaCBEYWQncyBDYXNoZmxvdyBRdWFkcmFudDogUmljaCBEYWQncyBHdWlkZSB0byBGaW5hbmNpYWwgRnJlZWRvbTsgUmljaCBEYWQncyBHdWlkZSB0byBJbnZlc3Rpbmc6IFdoYXQgdGhlIFJpY2ggSW52ZXN0IGluIFRoYXQgdGhlIFBvb3IgYW5kIE1pZGRsZSBDbGFzcyBEbyBOb3QhICgyMDAxLCBKYW4gMSk7IFRoZSBSZWFsIEJvb2sgb2YgUmVhbCBFc3RhdGU6IFJlYWwgRXhwZXJ0cy4gUmVhbCBTdG9yaWVzLiBSZWFsIExpZmUuICgyMDA5LCBNYXkgMTIpOyBSaWNoIEtpZCBTbWFydCBLaWQ6IEdpdmluZyBZb3VyIENoaWxkIGEgRmluYW5jaWFsIEhlYWQgU3RhcnQgKDIwMDEsIEphbiAxKTsgDQoxOTk5IChNYXkgMTgpOltNdXNpY10gTWlsbGVubml1bSBpcyB0aGUgdGhpcmQgc3R1ZGlvIGFsYnVtIChzZWNvbmQgaW4gdGhlIFVuaXRlZCBTdGF0ZXMpIGJ5IEFtZXJpY2FuIGJveSBiYW5kIEJhY2tzdHJlZXQgQm95cywgcmVsZWFzZWQgYnkgSml2ZSBSZWNvcmRzLg0KMTk5OSAoRnJpLCAyNCBEZWMpOiBJbmRpYW4gQWlybGluZXMgRmxpZ2h0IDgxNCBjb21tb25seSBrbm93biBhcyBJQyA4MTQgd2FzIGFuIEluZGlhbiBBaXJsaW5lcyBBaXJidXMgQTMwMCBlbiByb3V0ZSBmcm9tIFRyaWJodXZhbiBJbnRlcm5hdGlvbmFsIEFpcnBvcnQgaW4gS2F0aG1hbmR1LCBOZXBhbCB0byBJbmRpcmEgR2FuZGhpIEludGVybmF0aW9uYWwgQWlycG9ydCBpbiBEZWxoaSwgSW5kaWEgd2FzIGhpamFja2VkLiBIYXJrYXQtdWwtTXVqYWhpZGVlbiB3YXMgYWNjdXNlZCBvZiB0aGUgaGlqYWNraW5nLg0KMTk5OTogSVJDVEMNCjE5OTkgKEF1Zyk6IEJvb2tNeVNob3cNCjE5OTkgKFNlcCAxNCk6IFtHZW9Qb2xpdGljc10gVGhlIENvbmZlcmVuY2Ugb24gSW50ZXJhY3Rpb24gYW5kIENvbmZpZGVuY2UtQnVpbGRpbmcgTWVhc3VyZXMgaW4gQXNpYSAoQ0lDQSkgaXMgYW4gaW50ZXItZ292ZXJubWVudGFsIGZvcnVtIGZvciBlbmhhbmNpbmcgY29vcGVyYXRpb24gdG93YXJkcyBwcm9tb3RpbmcgcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYS4gSXQgaXMgYSBmb3J1bSBiYXNlZCBvbiB0aGUgcmVjb2duaXRpb24gdGhhdCB0aGVyZSBpcyBjbG9zZSBsaW5rIGJldHdlZW4gcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYSBhbmQgaW4gdGhlIHJlc3Qgb2YgdGhlIHdvcmxkLiBUaGUga2V5IGlkZWEgb2YgdGhlIENvbmZlcmVuY2UgaXMgYmFzZWQgb24gdGhlIHByaW9yaXR5IG9mIHRoZSBpbmRpdmlzaWJpbGl0eSBvZiBzZWN1cml0eSwgam9pbnQgaW5pdGlhdGl2ZSBhbmQgbXV0dWFsbHkgYmVuZWZpY2lhbCBpbnRlcmFjdGlvbiBvZiBzbWFsbCBhbmQgbGFyZ2Ugc3RhdGVzLg0KMTk5OTogTm9ibGUgRWR1Y2F0aW9uIFNvY2lldHkncyBOb2JsZSBQdWJsaWMgU2Nob29sIChOUFMpLCBHYWpyYXVsYSBmb3VuZGVkIHdpdGggMjEzMDYyNyBhcyBpdHMgQ0JTRSBBZmZpbGlhdGlvbiBuby4NCjE5OTk6IGZpcnN0IC53bWEgZmlsZSBjcmVhdGVkDQoxOTk5OiBOYXBzdGVyIGZvdW5kZWQuDQoxOTk5IChEZWMgMTQpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBTaG93IE1lIHRoZSBNZWFuaW5nIG9mIEJlaW5nIExvbmVseS4gDQoxOTk5OltNdXNpY10gRHIuIERyZSBmdC4gU25vb3AgRG9nZydzIFN0aWxsIEQuUi5FLg0KMTk5OTpbQ3VsdHVyZV0gVGhlIENpdHRhc2xvdyBvcmdhbml6YXRpb24gd2FzIGNyZWF0ZWQgYnkgUGFvbG8gU2F0dXJuaW5pLCB0aGUgZm9ybWVyIG1heW9yIG9mIEdyZXZlIGluIENoaWFudGksIEl0YWx5LiBTYXR1cm5pbmkgd2FzIGluc3BpcmVkIGJ5IENhcmxvIFBldHJpbmkgYW5kIGhpcyBTbG93IEZvb2QgbW92ZW1lbnQsIHN0YXJ0ZWQgaW4gdGhlIDE5ODBzIHRvIHByb3Rlc3QgdGhlIGZpcnN0IE1jRG9uYWxkJ3MgY2hhaW4gaW4gUm9tZS4gU2luY2UgdGhlbiwgdGhlIENpdHRhc2xvdyBtb3ZlbWVudCBoYXMgZ3Jvd24gYWNyb3NzIGZvdXIgY29udGluZW50cywgd2l0aCAyNjIgcGFydGljaXBhdGluZyB0b3ducyBhcyBvZiAyMDIwLiANCjE5OTk6W01hbmFnZW1lbnRdW0J1c2luZXNzXVtQc3ljaG9sb2d5XVtSZXNlYXJjaF0gRHVubmluZyBhbmQgS3J1Z2VyIEVmZmVjdDogRGF2aWQgRHVubmluZyBhbmQgSnVzdGluIEtydWdlciBwdWJsaXNoZWQgdGhlIGluaXRpYWwgc3R1ZHkgaW4gMTk5OSB1bmRlciB0aGUgdGl0bGUgIlVuc2tpbGxlZCBhbmQgVW5hd2FyZSBvZiBJdDogSG93IERpZmZpY3VsdGllcyBpbiBSZWNvZ25pemluZyBPbmUncyBPd24gSW5jb21wZXRlbmNlIExlYWQgdG8gSW5mbGF0ZWQgU2VsZi1Bc3Nlc3NtZW50cyIuDQoxOTk5OltSZXNlYXJjaF0gUmVzZWFyY2ggYnkgVVMgTmF0aW9uYWwgUmVzZWFyY2ggQ291bmNpbC4gV2F0ZXIgZnJvbSB1bmRlcmdyb3VuZCBzb3VyY2VzIG1heSBjb250YWluIHNpZ25pZmljYW50IGFtb3VudHMgb2YgcmFkb24gZGVwZW5kaW5nIG9uIHRoZSBzdXJyb3VuZGluZyByb2NrIGFuZCBzb2lsIGNvbmRpdGlvbnMsIHdoZXJlYXMgc3VyZmFjZSBzb3VyY2VzIGdlbmVyYWxseSBkbyBub3QuDQoxOTk5OltOU0VdIEluY29ycG9yYXRlZCBpbiAxOTk5LCBJUkNUQyBpcyBhIE1pbmkgUmF0bmEgKENhdGVnb3J5IDEsIENlbnRyYWwgUHVibGljIFNlY3RvciBFbnRlcnByaXNlcyApIGFuZCB0aGUgb25seSBjb21wYW55IGF1dGhvcml6ZWQgYnkgdGhlIEluZGlhbiBnb3Zlcm5tZW50IHRvIHByb3ZpZGUgb25saW5lIHJhaWx3YXkgdGlja2V0cywgY2F0ZXJpbmcgc2VydmljZXMsIGFuZCBwYWNrYWdlZCBkcmlua2luZyB3YXRlciBhdCByYWlsd2F5IHN0YXRpb25zIGFuZCB0cmFpbnMgaW4gSW5kaWEuDQoxOTk5OltNbnRuZ2ddW0Jvb2tdIFN0ZXZlIEhvdXNlIGlzIGEgd29ybGQtcmVub3duZWQgY2xpbWJlciwgbW91bnRhaW4gZ3VpZGUgYW5kIFBhdGFnb25pYSBhbWJhc3NhZG9yLCB3aWRlbHkgcmVnYXJkZWQgZm9yIGhpcyBjbGVhbiwgbGlnaHQtYW5kLWZhc3Qgc3R5bGUuIEhlIGhhcyBwdWJsaXNoZWQgYXJ0aWNsZXMgaW4gYSBudW1iZXIgb2YgcGVyaW9kaWNhbHMgaW5jbHVkaW5nOiBBbHBpbmlzdCwgUm9jayBhbmQgSWNlLCBDbGltYmluZywgVGhlIEFtZXJpY2FuIEFscGluZSBKb3VybmFsLCBHcmlwcGVkLCBDYW5hZGlhbiBBbHBpbmUgSm91cm5hbCwgQ2xpbWIsIFZlcnRpY2FsLCBNb250YWduZXMsIFJpc2ssIEFscCssIENhbXBvIEJhc2UsIERlc25pdmVsLCBhbmQgU3RpbGUgQWxwaW4uIEhpcyBlc3NheXMgaGF2ZSBiZWVuIHB1Ymxpc2hlZCBpbiBzZXZlcmFsIGJvb2tzIGluY2x1ZGluZzsgQ29udGFjdDogTW91bnRhaW4gQ2xpbWJpbmcgYW5kIEVudmlyb25tZW50YWwgVGhpbmtpbmc7IFNvbHRhcmksIGEgY29sbGVjdGlvbiBvZiBlc3NheXMgYWJvdXQgc29sbyBjbGltYmluZyBwdWJsaXNoZWQgaW4gSXRhbGlhbjsgQmVyZywgYSBHZXJtYW4gYm9vayBhYm91dCBjbGltYmluZyBpbiB0aGUgSGltYWxheWE7IGFuZCBhbiB1cGNvbWluZyBib29rIGFib3V0IE5hbmdhIFBhcmJhdCBlZGl0ZWQgYnkgUmVpbmhvbGQgTWVzc25lci4gSGUgaGFzIHdvcmtlZCBhcyBhIFBhdGFnb25pYSBhbHBpbmUgYW1iYXNzYWRvciBzaW5jZSAxOTk5LiBQdWJsaXNoZWQ6IFRyYWluaW5nIGZvciB0aGUgTmV3IEFscGluaXNtOiBBIE1hbnVhbCBmb3IgdGhlIENsaW1iZXIgYXMgQXRobGV0ZSBQYXBlcmJhY2sg4oCTIElsbHVzdHJhdGVkLCAzIEFwcmlsIDIwMTQNCjE5OTk6W01udG5nZ10gQ29ucmFkIEFua2VyIChib3JuIE5vdmVtYmVyIDI3LCAxOTYyKSBpcyBhbiBBbWVyaWNhbiByb2NrIGNsaW1iZXIsIG1vdW50YWluZWVyLCBhbmQgYXV0aG9yLiBIZSB3YXMgdGhlIHRlYW0gbGVhZGVyIG9mIFRoZSBOb3J0aCBGYWNlIGNsaW1iaW5nIHRlYW0gZm9yIDI2IHllYXJzIHVudGlsIDIwMTguWzJdIEluIDE5OTksIGhlIGxvY2F0ZWQgR2VvcmdlIE1hbGxvcnkncyBib2R5IG9uIEV2ZXJlc3QgYXMgYSBtZW1iZXIgb2YgYSBzZWFyY2ggdGVhbSBsb29raW5nIGZvciB0aGUgcmVtYWlucyBvZiB0aGUgQnJpdGlzaCBjbGltYmVyIHdobyB3YXMgbGFzdCBzZWVuIGluIDE5MjQuDQoxOTk5OlRoZSBQaXBpc3RyZWwgVmlydXMgZmxldyBmb3IgdGhlIGZpcnN0IHRpbWUgb24gQXVndXN0IDEwLCAxOTk5LiBQcm9kdWN0aW9uIGJlZ2FuIG9uIEphbnVhcnkgMjAsIDIwMDAuIFRoZSBkZXZlbG9wbWVudCBvZiB0aGUgc2hvcnQgd2luZyB2ZXJzaW9uIHN0YXJ0ZWQgaW4gMjAwNy4gVGhlIFZpcnVzIFNXIHByb2R1Y3Rpb24gc3RhcnRlZCBpbiAyMDA4LiBUaGUgVmlydXMgd29uIHRoZSBOQVNBIDIwMDcgUGVyc29uYWwgQWlyIFZlaGljbGUgKFBBVikgQ2hhbGxlbmdlIGFuZCB0aGUgMjAwOCBHZW5lcmFsIEF2aWF0aW9uIFRlY2hub2xvZ3kgKEdBVCkgQ2hhbGxlbmdlLg0KMTk5OTpbc2lsdmljc10gU3VzdGFpbmFibGUgUHJhY3RpY2VzOiBSZXNlYXJjaCBpbiB0aGUgMjB0aCBjZW50dXJ5IHZhbGlkYXRlZCB0aGF0IHNlY29uZC1ncm93dGggc3RhbmRzIGNvdWxkIGJlIHN1c3RhaW5hYmx5IG1hbmFnZWQgdGhyb3VnaCB0ZWNobmlxdWVzIGxpa2UgdGhlIHNlZWQgdHJlZSBtZXRob2QuIFRvZGF5LCBzaWx2aWN1bHR1cmUgZm9jdXNlcyBvbiBjb21wbGV4IHN0YW5kIHN0cnVjdHVyZXMsIGJhbGFuY2luZyBjb21tZXJjaWFsIGRlbWFuZCB3aXRoIGVudmlyb25tZW50YWwgc3Rld2FyZHNoaXAuIA0KDQoyMXN0IGNlbnR1cnkgQ0Ugc3RhcnRlZCBvbiAxc3QgSmFuIDIwMDEgQUQuDQoNCjIwMDBzOltSZXNlYXJjaF0gVGhlIGNsYWltIHRoYXQgIndlIGFyZSA2MCUgYmFuYW5hIiAob3Igc2hhcmUgNjAlIG9mIG91ciBETkEpIGlzIGEgcG9wdWxhciwgeWV0IG9mdGVuIG1pc2ludGVycHJldGVkLCBzdGF0aXN0aWMgdGhhdCBvcmlnaW5hdGVkIGZyb20gY29tcGFyaXNvbnMgb2YgcHJvdGVpbi1jb2RpbmcgZ2VuZXMsIGxpa2VseSBwb3B1bGFyaXplZCBpbiB0aGUgZWFybHkgMjAwMHMgZm9sbG93aW5nIHByZWxpbWluYXJ5IHN0dWRpZXMgb2YgdGhlIGJhbmFuYSBnZW5vbWUuIEl0IHJlZmVycyB0byBhYm91dCA2MCUgb2YgaHVtYW4gZ2VuZXMgaGF2aW5nIGEgcmVjb2duaXphYmxlIGNvdW50ZXJwYXJ0IGluIGJhbmFuYXMsIG5vdCA2MCUgb2Ygb3VyIHRvdGFsIEROQS4gDQpNYW55IG9mIHRoZSDigJxob3VzZWtlZXBpbmfigJ0gZ2VuZXMgdGhhdCBhcmUgbmVjZXNzYXJ5IGZvciBiYXNpYyBjZWxsdWxhciBmdW5jdGlvbiwgc3VjaCBhcyBmb3IgcmVwbGljYXRpbmcgRE5BLCBjb250cm9sbGluZyB0aGUgY2VsbCBjeWNsZSwgYW5kIGhlbHBpbmcgY2VsbHMgZGl2aWRlIGFyZSBzaGFyZWQgYmV0d2VlbiBtYW55IHBsYW50cyAoaW5jbHVkaW5nIGJhbmFuYXMpIGFuZCBhbmltYWxzLldoaWxlIDYwJSBvZiBnZW5lcyBoYXZlIGNvdW50ZXJwYXJ0cywgdGhlc2UgZXNzZW50aWFsIGdlbmVzIG1ha2UgdXAgb25seSBhIHNtYWxsIGZyYWN0aW9uIG9mIHRoZSB0b3RhbCBnZW5vbWU7IGh1bWFucyBhbmQgYmFuYW5hcyBhcmUgbm90IDYwJSBpZGVudGljYWwgb3ZlcmFsbC4gDQpUaGUgcGhyYXNlIGlzIGVzc2VudGlhbGx5IGEgc2ltcGxpZmllZCwgb2Z0ZW4tZXhhZ2dlcmF0ZWQsIHdheSBvZiBoaWdobGlnaHRpbmcgdGhhdCBhbGwgbGlmZSBzaGFyZXMgY29tbW9uIGFuY2VzdHJhbCBnZW5lcyBmb3IgYmFzaWMgY2VsbHVsYXIgcHJvY2Vzc2VzLiANCjIwMDBzOltNQkFdIFNob3VsZCBDb3N0IE1vZGVsaW5nOiBNb2Rlcm4gIlNob3VsZCBDb3N0IiBtb2RlbHMgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBpZGVhbCBjb3N0IG9mIGEgcHJvZHVjdCwgYWNjb3VudGluZyBmb3IgbGFib3IsIG1hdGVyaWFscywgYW5kIG92ZXJoZWFkLiBFbnZpcm9ubWVudGFsICYgU29jaWFsIEltcGFjdDogTW9kZXJuIENCQSBub3cgcm91dGluZWx5IGluY2x1ZGVzIGVudmlyb25tZW50YWwgYW5kIHNvY2lhbCBpbXBhY3RzIGluIGFkZGl0aW9uIHRvIGZpbmFuY2lhbCBvbmVzLiBTaGlmdCBmcm9tIExvY2FsIHRvIEdsb2JhbDogRWFybHksIGhpZ2hseSBsb2NhbCBhc3Nlc3NtZW50cyBldm9sdmVkIGludG8gbGFyZ2Utc2NhbGUsIG5hdGlvbmFsLCBhbmQgaW50ZXJuYXRpb25hbCBDQkEuIFJlZmluZW1lbnQgb2YgVGVjaG5pcXVlczogTW92aW5nIGZyb20gc2ltcGxlLCBzaW5nbGUtcGVyaW9kIG1vZGVscyB0byBjb21wbGV4LCBtdWx0aS1wZXJpb2Qgc2ltdWxhdGlvbnMuIEluY3JlYXNlZCBEYXRhIFVzZTogVGhlIGF2YWlsYWJpbGl0eSBvZiBsYXJnZSwgZ3JhbnVsYXIgZGF0YSBzZXRzIGhhcyBhbGxvd2VkIGZvciBtb3JlIHByZWNpc2UgYW5kIHJlbGlhYmxlIGFuYWx5c2lzLiANCjIwMDBzOltNbnRuZ2ddW0V4dHJlbWVdIEluIHRoZSBlYXJseSAyMDAwcywgRGlkaWVyIEJlcnRob2Qgd2FzIHRoZSBiZXN0IGNyYWNrIGNsaW1iZXIgaW4gdGhlIHdvcmxkLCB0aGVuIGhlIGRyb3BwZWQgb3V0IG9mIGNsaW1iaW5nIGFuZCBlc3NlbnRpYWxseSBkaXNhcHBlYXJlZCBmcm9tIHRoZSB3b3JsZC4NCjIwMDBzOltSZWFsdHldIEVhcmx5IDIwMDBzOiBSZWFsIGVzdGF0ZSB3YXMgaW4gaXRzIGVhcmx5IHN0YWdlcyBpbiBJbmRpYSwgd2l0aCBncmFkdWFsIGdyb3d0aCBhbmQgZGV2ZWxvcG1lbnQuIA0KMjAwMHM6VGVhbXdvcmsgaXMgbm93IGFuIGludGVncmFsIHBhcnQgb2Ygb3JnYW5pemF0aW9uYWwgc3RyYXRlZ3ksIHdpdGggYSBncmVhdGVyIGVtcGhhc2lzIG9uIGN1c3RvbWl6YXRpb24sIHBlcnNvbmFsaXphdGlvbiwgYW5kIHN0cmF0ZWdpYyBpbnRlZ3JhdGlvbiBvZiB0ZWFtLWJ1aWxkaW5nIHByYWN0aWNlcy4gVGhlIHJpc2Ugb2YgdGVjaG5vbG9neSBoYXMgYWxzbyBpbmZsdWVuY2VkIHRlYW13b3JrLCB3aXRoIHJlbW90ZSB3b3JrIGJlY29taW5nIG1vcmUgcHJldmFsZW50IGFuZCBuZXcgdG9vbHMgZW1lcmdpbmcgdG8gZmFjaWxpdGF0ZSBjb2xsYWJvcmF0aW9uLiANCg0KMjAwMDpbVVNdW0dlb1BvbGl0aWNzXSBvdmVydGhyb3cgb2YgU2xvYm9kYW4gTWlsb8WhZXZpxIcuIChVUydzIGludm9sdmVtZW50IGluIHJlZ2ltZSBjaGFuZ2UpDQoyMDAwOiBbR2VvUG9saXRpY3NdW01pbGl0YXJ5XVtFY29ub21pY3NdIFRoZSBVUyBEb2xsYXIgaG9sZHMgYSA3MiUgc2hhcmUgb2YgYWxsIGdsb2JhbCBjdXJyZW5jeSByZXNlcnZlcyBbWzE2OjQyXShodHRwOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dllKcmkxZU5SeWMmdD0xMDAyKV0uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdIDI2IEFwcmlsIDIwMDA6IHRoZSBHZXJtYW4gdGVhbSBvcGVyYXRpbmcgdGhlIG1hc3Mgc3BlY3Ryb21ldGVyIG9uIE5BU0EncyBTdGFyZHVzdCBtaXNzaW9uIGFubm91bmNlZCB0aGUgZGV0ZWN0aW9uIG9mIHZlcnkgbGFyZ2Ugb3JnYW5pYyBtb2xlY3VsZXMgaW4gaW50ZXJzdGVsbGFyIHNwYWNlLiBOb25iaW9sb2dpY2FsIHNvdXJjZXMgZm9yIG9yZ2FuaWMgbW9sZWN1bGVzIHNvIGxhcmdlIGFyZSBub3Qga25vd24uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdMTkgT2N0b2JlciAyMDAwLCBhIHRlYW0gb2YgYmlvbG9naXN0cyBhbmQgYSBnZW9sb2dpc3QgYW5ub3VuY2VkIHRoZSByZXZpdmFsIG9mIGJhY3RlcmlhIHRoYXQgYXJlIDI1MCBtaWxsaW9uIHllYXJzIG9sZCwgc3RyZW5ndGhlbmluZyB0aGF0IGNhc2UgdGhhdCBiYWN0ZXJpYWwgc3BvcmVzIGNhbiBiZSBpbW1vcnRhbC4NCjEzIERlY2VtYmVyIDIwMDA6IGEgTkFTQSB0ZWFtIGRlbW9uc3RyYXRlZCB0aGF0IHRoZSBtYWduZXRvc29tZXMgaW4gTWFycyBtZXRlb3JpdGUgQUxIIDg0MDAxIGFyZSBiaW9sb2dpY2FsLg0KMjAwMDpbUmVzZWFyY2hdW1NwYWNlXSBNaWxlaWtvd3NreSBDLCBDdWNpbm90dGEgRkEsIFdpbHNvbiBKVywgR2xhZG1hbiBCLCBIb3JuZWNrIEcsIExpbmRlZ3JlbiBMLCBNZWxvc2ggSiwgUmlja21hbiBILCBWYWx0b25lbiBNLCBaaGVuZyBKUS4gTmF0dXJhbCB0cmFuc2ZlciBvZiB2aWFibGUgbWljcm9iZXMgaW4gc3BhY2UuIEljYXJ1cyAyMDAwLCAxNDU6Mzkx4oCTNDI3LiBbRE9JXSBbUHViTWVkXSBbR29vZ2xlIFNjaG9sYXJdDQoyMDAwOltTcGFjZVhdIFMvMjAwMCAoOTApIDEgTW9vbiBEaXNjb3ZlcmVyOiBXaWxsaWFtIEouIE1lcmxpbmUgT3JiaXRzOiA5MCBBbnRpb3BlIEFic29sdXRlIG1hZ25pdHVkZTogOS4wMg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gZGVtb25zdHJhdGVkIFNob3LigJlzIGFsZ29yaXRobSBvbiBhIDUtcXViaXQgTk1SIHF1YW50dW0gY29tcHV0ZXIsIGZhY3RvcmluZyB0aGUgbnVtYmVyIDE1Lg0KMjAwMDogQXQgYWdlIDE0IGFuZCBpbiBjbGFzcyA4dGgsIEFhcm9uIFN3YXJ0eiBiZWNhbWUgYSBtZW1iZXIgb2YgdGhlIHdvcmtpbmcgZ3JvdXAgdGhhdCBhdXRob3JlZCB0aGUgUlNTIDEuMCB3ZWIgc3luZGljYXRpb24gc3BlY2lmaWNhdGlvbi4NCjIwMDA6IE1ha2VteVRyaXANCjIwMDAgKEphbiAxNCk6W0phY2tdIEthaG8gTmFhLi4uIFB5YWFyIEhhaQ0KMjAwMCAoRmViKTogSW5kaWFuIFJhaWx3YXlzIHdlYiBzaXRlIGkuZS4gaHR0cDovL2luZGlhbnJhaWx3YXlzLmdvdi5pbi8gd2FzIGRlcGxveWVkIGJ5IENSSVMuDQoyMDAwIChNYXIpOltCb29rXSBNYWxjb2xtIEdsYWR3ZWxsJ3MgZGVidXQgYm9vaywgVGhlIFRpcHBpbmcgUG9pbnQ6IEhvdyBMaXR0bGUgVGhpbmdzIENhbiBNYWtlIGEgQmlnIERpZmZlcmVuY2UuIA0KQmxpbms6IFRoZSBQb3dlciBvZiBUaGlua2luZyBXaXRob3V0IFRoaW5raW5nICgyMDA1LCBKYW4gMTEpOyANCk91dGxpZXJzOiBUaGUgU3Rvcnkgb2YgU3VjY2VzcyAoMjAwOCwgTm92IDE4KTsgDQpXaGF0IHRoZSBEb2cgU2F3OiBBbmQgT3RoZXIgQWR2ZW50dXJlcyAoMjAwOSwgT2N0IDIwKTsgDQpEYXZpZCBhbmQgR29saWF0aDogVW5kZXJkb2dzLCBNaXNmaXRzLCBhbmQgdGhlIEFydCBvZiBCYXR0bGluZyBHaWFudHMgKDIwMTMsIE9jdCAxKQ0KVGFsa2luZyB0byBTdHJhbmdlcnM6IFdoYXQgV2UgU2hvdWxkIEtub3cgYWJvdXQgdGhlIFBlb3BsZSBXZSBEb24ndCBLbm93ICgyMDE5KQ0KMjAwMCAoQXByIDEpOltCb29rXSBSb2JlcnQgS2l5b3Nha2kgJiBTaGFyb24gTGVjaHRlcidzIFJpY2ggRGFkIFBvb3IgRGFkLg0KMjAwMCAoQXByIDEpOltUZWNobm9sb2d5XVtSZXNlYXJjaF0gIldoeSBUaGUgRnV0dXJlIERvZXNuJ3QgTmVlZCBVcyIgaXMgYW4gYXJ0aWNsZSB3cml0dGVuIGJ5IEJpbGwgSm95IGluIHRoZSBBcHJpbCAyMDAwIGlzc3VlIG9mIFdpcmVkIG1hZ2F6aW5lLiBJbiB0aGUgYXJ0aWNsZSwgaGUgYXJndWVzIHRoYXQgIk91ciBtb3N0IHBvd2VyZnVsIDIxc3QtY2VudHVyeSB0ZWNobm9sb2dpZXPigJRyb2JvdGljcywgZ2VuZXRpYyBlbmdpbmVlcmluZywgYW5kIG5hbm90ZWNo4oCUYXJlIHRocmVhdGVuaW5nIHRvIG1ha2UgaHVtYW5zIGFuIGVuZGFuZ2VyZWQgc3BlY2llcy4iIA0KMjAwMCAoSnVuIDI2KTpbTXVzaWNdICJZZWxsb3ciIGlzIGEgc29uZyBieSB0aGUgQnJpdGlzaCByb2NrIGJhbmQgQ29sZHBsYXkuIFRoZSBiYW5kIHdyb3RlIHRoZSBzb25nIGFuZCBjby1wcm9kdWNlZCBpdCB3aXRoIEJyaXRpc2ggcmVjb3JkIHByb2R1Y2VyIEtlbiBOZWxzb24gZm9yIHRoZWlyIGRlYnV0IGFsYnVtLCBQYXJhY2h1dGVzICgyMDAwKS4gVGhlIHNvbmcgd2FzIHJlY29yZGVkIGluIE1hcmNoIDIwMDAgYW5kIHJlbGVhc2VkIG9uIDI2IEp1bmUgdGhhdCBzYW1lIHllYXIuDQoyMDAwIChTZXApOiBBbWF6b24ncyBKZWZmIEJlem9zIGZvdW5kZWQuDQoyMDAwIChTZXApOltDcmltZV1bSW5kaWFdIENoaG90YSBTaGFrZWVsJ3MgYXR0YWNrIG9uIFJhamFuIGluIGhpcyBCYW5na29rIGhvdGVsIHJvb20uDQoyMDAwIChTZXApOiBSYWlsVGVsIENvcnBvcmF0aW9uIG9mIEluZGlhIEx0ZC4gZm91bmRlZCBhbmQgSFEnZCBhdCAxNDMsIEluc3RpdHV0aW9uYWwgQXJlYSwgU2VjdG9yLTQ0LCBHdXJnYW9uLCBIYXJ5YW5hLCBJbmRpYS4gSXQgaXMgYSBNaW5pcmF0bmEgZW50ZXJwcmlzZSBvZiBHb3Zlcm5tZW50IG9mIEluZGlhIGZvY3VzaW5nIG9uIHByb3ZpZGluZyBicm9hZGJhbmQgYW5kIFZQTiBzZXJ2aWNlcy4NCjIwMDAgKFNlcCAxNyk6IFtHZW9Qb2xpdGljc10gVGhlIGlkZWEgb2YgYW4gQXNpYSBDb29wZXJhdGlvbiBEaWFsb2d1ZSAoQUNEKSB3YXMgcmFpc2VkIGF0IHRoZSBGaXJzdCBJbnRlcm5hdGlvbmFsIENvbmZlcmVuY2Ugb2YgQXNpYW4gUG9saXRpY2FsIFBhcnRpZXMgKGhlbGQgaW4gTWFuaWxhIGJldHdlZW4gMTfigJMyMCBTZXB0ZW1iZXIgMjAwMCkgYnkgU3VyYWtpYXJ0IFNhdGhpcmF0aGFpLCB0aGVuIGRlcHV0eSBsZWFkZXIgb2YgdGhlIG5vdyBkZWZ1bmN0IFRoYWkgUmFrIFRoYWkgUGFydHksIG9uIGJlaGFsZiBvZiBoaXMgcGFydHkgbGVhZGVyLCBUaGFrc2luIFNoaW5hd2F0cmEsIHRoZW4gUHJpbWUgTWluaXN0ZXIgb2YgVGhhaWxhbmQuIEl0IHdhcyBzdWdnZXN0ZWQgdGhhdCBBc2lhIGFzIGEgY29udGluZW50IHNob3VsZCBoYXZlIGl0cyBvd24gZm9ydW0gdG8gZGlzY3VzcyBBc2lhLXdpZGUgY29vcGVyYXRpb24uIEFmdGVyd2FyZHMsIHRoZSBpZGVhIG9mIHRoZSBBQ0Qgd2FzIGZvcm1hbGx5IHB1dCBmb3J3YXJkIGR1cmluZyB0aGUgMzR0aCBBU0VBTiBGb3JlaWduIE1pbmlzdGVycyBNZWV0aW5nIGluIEhhbm9pLCAyM+KAkzI0IEp1bHkgMjAwMSBhbmQgYXQgdGhlIEFTRUFOIEZvcmVpZ24gTWluaXN0ZXJzIFJldHJlYXQgaW4gUGh1a2V0LCAyMOKAkzIxIEZlYnJ1YXJ5IDIwMDIuDQoyMDAwIChPY3QgNCk6W011c2ljXSBGb3JtZWQgaW4gMTk5NiwgTGlua2luIFBhcmsgcm9zZSB0byBpbnRlcm5hdGlvbmFsIGZhbWUgd2l0aCB0aGVpciBkZWJ1dCBzdHVkaW8gYWxidW0sIEh5YnJpZCBUaGVvcnkuIEZvdXIgc2luZ2xlcyB3ZXJlIHJlbGVhc2VkIGZyb20gSHlicmlkIFRoZW9yeTogIk9uZSBTdGVwIENsb3NlciIsICJJbiB0aGUgRW5kIiwgIkNyYXdsaW5nIiBhbmQgIlBhcGVyY3V0IiwgYWxsIG9mIHRoZW0gYmVpbmcgcmVzcG9uc2libGUgZm9yIGxhdW5jaGluZyBMaW5raW4gUGFyayBpbnRvIG1haW5zdHJlYW0gcG9wdWxhcml0eS4gV2hpbGUgIkluIHRoZSBFbmQiIHdhcyB0aGUgbW9zdCBzdWNjZXNzZnVsIG9mIHRoZSBmb3VyLCBhbGwgb2YgdGhlIHNpbmdsZXMgaW4gdGhlIGFsYnVtIHJlbWFpbiBzb21lIG9mIHRoZSBiYW5kJ3MgbW9zdCBzdWNjZXNzZnVsIHNvbmdzIHRvIGRhdGUuDQoyMDAwIChOb3YgOSk6IGZvcm1hdGlvbiBvZiBVdHRhcmFraGFuZCBhcyBVdHRhcmFuY2hhbCAyMDAwIChKdW4gOSk6IEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQWN0LCAyMDAwLiBUaGUgYmlsbCB3YXMgcGFzc2VkIGluIHRoZSBidWRnZXQgc2Vzc2lvbiBvZiAyMDAwIGFuZCBzaWduZWQgYnkgUHJlc2lkZW50IEsuIFIuIE5hcmF5YW5hbiBvbiA5IE1heSAyMDAwLiBUaGUgYmlsbCB3YXMgZmluYWxpc2VkIGJ5IGdyb3VwIG9mIG9mZmljaWFscyBoZWFkZWQgYnkgdGhlbiBNaW5pc3RlciBvZiBJbmZvcm1hdGlvbiBUZWNobm9sb2d5LCBQcmFtb2QgTWFoYWphbi4NCjIwMDA6IGZvcm1hdGlvbiBvZg0KMjAwMDogSmFpc2gtZS1Nb2hhbW1lZCAobGl0ZXJhbGx5ICJUaGUgQXJteSBvZiBNdWhhbW1hZCIsIEplTSkgZm91bmRlZCBhdCBCYWhhd2FscHVyLCBQdW5qYWIsIFBha2lzdGFuLg0KMjAwMDogQ2hpbmEncyBCZWlEb3UgbmF2aWdhdGlvbiB0ZXN0IHN5c3RlbSBzdGFydHMuDQoyMDAwOiBGaXNlcnYgaGFkIGFjcXVpcmVkIG1vcmUgdGhhbiA5MCBidXNpbmVzc2VzLiBUaGUgbnVtYmVyIG9mIGVtcGxveWVlcyBncmV3IGZyb20gMjY0IHRvIDE0LDAwMC4gRmlzZXJ2IHdhcyBhbiBpbmR1c3RyeSBsZWFkZXIsIHdpdGggcmV2ZW51ZSB0aGF0IGluY3JlYXNlZCBmcm9tICQyMSBtaWxsaW9uIHRvICQxLjQgYmlsbGlvbiBpbiAxNSB5ZWFycy4NCjIwMDAgKERlYyA4KTpbR2FtaW5nXSBQcm9qZWN0IEkuRy5JLiBpcyBhIHRhY3RpY2FsIGZpcnN0LXBlcnNvbiBzaG9vdGVyIHZpZGVvIGdhbWUuIEl0IHdhcyBkZXZlbG9wZWQgYnkgSW5uZXJsb29wIFN0dWRpb3MgYW5kIHJlbGVhc2VkIGluIERlY2VtYmVyIDIwMDAgYnkgRWlkb3MgSW50ZXJhY3RpdmUuIFRoZSBnYW1lIHJlY2VpdmVkIG1peGVkIHJldmlld3MgZHVlIHRvIHNob3J0Y29taW5ncyBpbmNsdWRpbmcgYSBwb29ybHkgcHJvZ3JhbW1lZCBBLkkuLCBsYWNrIG9mIGEgbWlkLWdhbWUgc2F2ZSBvcHRpb24sIGFuZCB0aGUgbGFjayBvZiBtdWx0aXBsYXllciBmZWF0dXJlcy4gSG93ZXZlciBpdCB3YXMgcHJhaXNlZCBmb3IgaXRzIHNvdW5kIGRlc2lnbiBhbmQgZ3JhcGhpY3MsIHRoYW5rcyBpbiBwYXJ0IHRvIGl0cyB1c2Ugb2YgYSBwcm9wcmlldGFyeSBnYW1lIGVuZ2luZSB0aGF0IHdhcyBwcmV2aW91c2x5IHVzZWQgaW4gSW5uZXJsb29wJ3MgSm9pbnQgU3RyaWtlIEZpZ2h0ZXIuDQoyMDAwIChEZWMgMjEpOltKYWNrXSBSYWp1IENoYWNoYSByZWxlYXNlZC4NCjIwMDA6IFtCdXNpbmVzc11bRmluYW5jZV1bQ29ycG9yYXRlXVtJbmRpYV0gUklMIHBpbG90ZWQgd29ybGQncyBsYXJnZXN0IHBldHJvbGV1bSByZWZpbmVyeSBhdCBKYW1uYWdhciwgR3VqYXJhdCwgcmVmaW5pbmcgMS4yNE1uIGJhcnJlbHMvZGF5Lg0KMjAwMDpbQ3JpbWVdW0luZGlhXSBQb2xpY2UgZW5jb3VudGVycyBpbiBNdW1iYWkuIE1vc3QgY3JpbWluYWxzIGZsZWVpbmcgdG8gQ2FsY3VsdHRhLiBBZnRhYiBCaGF0a2kgZGVzdGFiaWxpc2UgdGhlIGVjb25vbXkgYnkgc3ByZWFkaW5nIGZha2UgY3VycmVuY3kgbm90ZXMgcHJpbnRlZCBieSBJU0kgZnVuY3Rpb25hcmllcywgYW5kIHR3bywgc2VuZCBtZXJjZW5hcmllcyB0byBjb25kdWN0IGFiZHVjdGlvbnMgYW5kIHRlcnJvcmlzdCBhdHRhY2tzLg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBUZWNobmljYWwgVW5pdmVyc2l0eSBvZiBNdW5pY2ggKDUgcXViaXQpOyBMb3MgQWxhbW9zIE5hdGlvbmFsIExhYiAoNyBxdWJpdHMpDQoyMDAwOkluIDIwMDAsIFRhdGEgVGVhIGFjcXVpcmVkIHRoZSBUZXRsZXkgVGVhIENvbXBhbnkgZm9yICQ0MDcgbWlsbGlvbi4gT3RoZXIgbm90YWJsZSBhY3F1aXNpdGlvbnMgaW5jbHVkZSBOYXRTdGVlbCAoMjAwNCksIEJydW5uZXIgTW9uZCAoMjAwNSksIGFuZCBFaWdodCBPJ0Nsb2NrIENvZmZlZSAoMjAwNikuIA0KMjAwMDogQmlybGEgYWNxdWlyZWQgSW5kaWFuIEFsdW1pbnVtIENvbXBhbnkgKElOREFMKS4gDQoyMDAwOiBTYXR5YSBOYXJheWFuYSBHb2Vua2Egd29ya2VkIGFzIGFuIGludGVybmF0aW9uYWwgYnVzaW5lc3NtYW4gYmFzZWQgaW4gTXlhbm1hciBhbmQgSW5kaWEgZm9yIGEgbGFyZ2UgcGFydCBvZiBoaXMgbGlmZS4gSGUgd2FzIGEga2V5bm90ZSBzcGVha2VyIG9uIHRoZSBzdWJqZWN0IG9mIFNwaXJpdHVhbGl0eSBpbiBCdXNpbmVzcyBhdCB0aGUgMzB0aCBXb3JsZCBFY29ub21pYyBGb3J1bSBpbiBEYXZvcywgU3dpdHplcmxhbmQgYmV0d2VlbiAyNiBKYW4gYW5kIDIgRmViIDIwMDAuIFR3byB5ZWFycyBsYXRlciBoZSBjb25kdWN0ZWQgdGhlIGZpcnN0IDEwLWRheSBjb3Vyc2UgaW4gVmlwYXNzYW5hIE1lZGl0YXRpb24gZXNwZWNpYWxseSBmb3IgYnVzaW5lc3MgZXhlY3V0aXZlcyBhbmQgZ292ZXJubWVudCBvZmZpY2lhbHMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAyMjUgeWVhcnMgb2YgSW5kZXBlbmRlbnQgVVNBIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIA0KDQoyMDAxOltVU11bR2VvUG9saXRpY3NdIGludmFzaW9uIG9mIEFmZ2hhbmlzdGFuLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMjAwMTpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgU2hhbmdoYWkgQ29vcGVyYXRpb24gT3JnYW5pc2F0aW9uIChTQ08pIGlzIGEgRXVyYXNpYW4gcG9saXRpY2FsLCBlY29ub21pYywgaW50ZXJuYXRpb25hbCBzZWN1cml0eSBhbmQgZGVmZW5jZSBvcmdhbml6YXRpb24gb2YgdGVuIG1lbWJlciBzdGF0ZXMuIEl0IHdhcyBlc3RhYmxpc2hlZCBpbiAyMDAxIGJ5IHRoZSBQZW9wbGUncyBSZXB1YmxpYyBvZiBDaGluYSwgS2F6YWtoc3RhbiwgS3lyZ3l6c3RhbiwgUnVzc2lhLCBhbmQgVGFqaWtpc3RhbiBhbmQgVXpiZWtpc3Rhbi4gSW4gSnVuZSAyMDE3LCBpdCBleHBhbmRlZCB0byBlaWdodCBzdGF0ZXMsIHdpdGggSW5kaWEgYW5kIFBha2lzdGFuLiBJcmFuIGpvaW5lZCB0aGUgZ3JvdXAgaW4gSnVseSAyMDIzLCBhbmQgQmVsYXJ1cyBpbiBKdWx5IDIwMjQuIFNldmVyYWwgY291bnRyaWVzIGFyZSBlbmdhZ2VkIGFzIG9ic2VydmVycyBvciBkaWFsb2d1ZSBwYXJ0bmVycy4gRm91bmRlcnM6IENoaW5hLCBSdXNzaWEsIEthemFraHN0YW4sIFV6YmVraXN0YW4sIEt5cmd5enN0YW4sIFRhamlraXN0YW47IEhlYWRxdWFydGVyczogQmVpamluZywgQ2hpbmE7IEZvdW5kZWQ6IDE1IEp1bmUgMjAwMQ0KMjAwMTpbQnVzaW5lc3NdIDIwMDHigJMyMDA1OiBIRlQgZXhlY3V0aW9uIHRpbWVzIGRlY3JlYXNlZCBmcm9tIHNldmVyYWwgc2Vjb25kcyB0byBtaWxsaXNlY29uZHMuIChIRlQpDQoyMDAxOltDb21wdXRpbmddW1F1YW50dW1dICBJQk0gaW1wbGVtZW50ZWQgR3JvdmVy4oCZcyBhbGdvcml0aG0gb24gYSA3LXF1Yml0IE5NUiBxdWFudHVtIGNvbXB1dGVyLCBmaW5kaW5nIGEgbWFya2VkIGl0ZW0gaW4gYSBkYXRhYmFzZSBvZiA0IGVudHJpZXMuDQoyMDAxOiBMaWZlIG9mIFBpIGlzIGEgQ2FuYWRpYW4gcGhpbG9zb3BoaWNhbCBub3ZlbCBieSBZYW5uIE1hcnRlbCBwdWJsaXNoZWQuIFRoZSBwcm90YWdvbmlzdCBpcyBQaXNjaW5lIE1vbGl0b3IgIlBpIiBQYXRlbCwgYW4gSW5kaWFuIGJveSBmcm9tIFBvbmRpY2hlcnJ5IHdobyBleHBsb3JlcyBpc3N1ZXMgb2Ygc3Bpcml0dWFsaXR5IGFuZCBtZXRhcGh5c2ljcyBmcm9tIGFuIGVhcmx5IGFnZS4gSGUgc3Vydml2ZXMgMjI3IGRheXMgYWZ0ZXIgYSBzaGlwd3JlY2sgd2hpbGUgc3RyYW5kZWQgb24gYSBsaWZlYm9hdCBpbiB0aGUgUGFjaWZpYyBPY2VhbiB3aXRoIGEgQmVuZ2FsIHRpZ2VyIHdoaWNoIHJhaXNlcyBxdWVzdGlvbnMgYWJvdXQgdGhlIG5hdHVyZSBvZiByZWFsaXR5IGFuZCBob3cgaXQgaXMgcGVyY2VpdmVkIGFuZCB0b2xkLjtTZXZlbiBTdG9yaWVzICgxOTkzKQ0KMjAwMTpbQ3JpbWVdW0luZGlhXSBDaGhvdGEgUmFqYW4ncyBhc3NvY2lhdGVzIHRyYWNrZWQgZG93biBhbmQgc2hvdCBkZWFkIGhvdGVsaWVyIFZpbm9kIGluIE11bWJhaSwgYXMgd2VsbCBhcyBTdW5pbCBTb2FucyDigJMgYW5vdGhlciBEYXdvb2QgYXNzb2NpYXRlLg0KMjAwMSAoSmFuIDEpOltCb29rXSBHcmVnIE1jS2Vvd24ncyBFc3NlbnRpYWxpc206IFRoZSBEaXNjaXBsaW5lZCBQdXJzdWl0IG9mIExlc3MNCjIwMDEgKEphbiAxKTpbQm9va10gQnJpYW4gVHJhY3kncyBFYXQgVGhhdCBGcm9nIQ0KMjAwMTogVGhlIEFyZHVpbm8gcHJvamVjdCBzdGFydGVkIGF0IHRoZSBJbnRlcmFjdGlvbiBEZXNpZ24gSW5zdGl0dXRlIEl2cmVhIChJRElJKSBpbiBJdnJlYSwgSXRhbHkuIEF0IHRoYXQgdGltZSwgdGhlIHN0dWRlbnRzIHVzZWQgYSBCQVNJQyBTdGFtcCBtaWNyb2NvbnRyb2xsZXIgYXQgYSBjb3N0IG9mICQxMDAsIGEgY29uc2lkZXJhYmxlIGV4cGVuc2UgZm9yIG1hbnkgc3R1ZGVudHMuDQoyMDAxIChBcHIgNHRoKTogQ2hhcmxlcyBNLiBWZXN0LCB0aGUgdGhlbiBQcmVzaWRlbnQgb2YgTUlUIGFubm91bmNlZCBPcGVuQ291cnNlV2FyZSAoT0NXKSBwdWJsaWNpemluZyBhbGwgb2YgaXRzIDIsMDAwIGNvdXJzZXMgIGF0IHRoZSBlc3RpbWF0ZWQgY29zdCBvZiAkMTAwIG1pbGxpb24gKG9uIGFuIGF2Zy4sIGEgTUlUIHN0dWRlbnRzIHBheXMgYXJvdW5kICQyNiwwMDAgYXMgb2ZmbGluZSB0dWl0aW9uIGZlZSkNCjIwMDE6IFVTIGludmFkZWQgQWZnaGFuaXN0YW4gaW4gcmVzcG9uc2UgdG8gOS8xMSBhdHRhY2tzLiBPZmZpY2lhbGx5LCBJdCBoYXMgYmVjb21lIHRoZSBsb25nZXN0IHdhciBpbiBBbWVyaWNhbiBoaXN0b3J5Lg0KMjAwMTogaVBvZCBieSBUb255IEZhZGVsbA0KMjAwMSAoSnVuIDE1KTpbSmFja10gR2FkYXI6IEVrIFByZW0gS2F0aGE7IExhZ2FhbjogT25jZSBVcG9uIGEgVGltZSBpbiBJbmRpYQ0KMjAwMSAoU2VwIDExKTogOS8xMSBUZXJyb3Jpc3QgYXR0YWNrcy4gVGhlIFNlcHRlbWJlciAxMSBvciA5LzExLCBhdHRhY2tzIHdlcmUgYSBzZXJpZXMgb2YgZm91ciBjb29yZGluYXRlZCB0ZXJyb3Jpc3QgYXR0YWNrcyBieSB0aGUgSXNsYW1pYyB0ZXJyb3Jpc3QgZ3JvdXAgYWwtUWFlZGEgb24gdGhlIFVuaXRlZCBTdGF0ZXMgb24gdGhlIG1vcm5pbmcgb2YgVHVlc2RheSwgU2VwIDExLiBUaGUgbG9zcyBvZiBsaWZlIHdhcyBlc3RpbWF0ZWQgYXQganVzdCB1bmRlciAzLDAwMC4gVGhlIGV2ZW50IGNoYW5nZWQgQW1lcmljYW4gZm9yZWlnbiBwb2xpY3kuIEl0IHdhcyBhIG1vdGl2YXRpbmcgZmFjdG9yIGJlaGluZCB0aGUgY29udHJvdmVyc2lhbCBpbnZhc2lvbiBvZiBJcmFxIGFuZCBsZWQgdG8gYSDigJh3YXIgb24gdGVycm9y4oCZIHN5bWJvbGlzZWQgYnkgR3VhbnRhbmFtbyBCYXkgYW5kIGEgZGViYXRlIG92ZXIgdGhlIGp1c3RpZmljYXRpb24gb2YgdG9ydHVyZS4NCjIwMDEgKE9jdCA3KTpbR2VvUG9saXRpY3NdIFVuaXRlZCBTdGF0ZXMgaW52YXNpb24gb2YgQWZnaGFuaXN0YW46IEluIGxhdGUgMjAwMSwgdGhlIFVuaXRlZCBTdGF0ZXMgYW5kIGl0cyBjbG9zZSBhbGxpZXMgaW52YWRlZCBBZmdoYW5pc3RhbiBhbmQgdG9wcGxlZCB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50LiBUaGUgaW52YXNpb24ncyBzdGF0ZWQgYWltcyB3ZXJlIHRvIGRpc21hbnRsZSBhbC1RYWVkYSwgd2hpY2ggaGFkIGV4ZWN1dGVkIHRoZSBTZXB0ZW1iZXIgMTEgYXR0YWNrcywgYW5kIHRvIGRlbnkgaXQgYSBzYWZlIGJhc2Ugb2Ygb3BlcmF0aW9ucyBpbiBBZmdoYW5pc3RhbiBieSByZW1vdmluZyB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50IGZyb20gcG93ZXIuIERlYyA3LCAyMDAxIG9ud2FyZCBzdGFydGVkIFdhciBpbiBBZmdoYW5pc3Rhbi4NCjIwMDEgKE9jdCAxNik6W0Jvb2tdIE1jS2luc2V5IFJlc2VhcmNoZXIgSmFtZXMgQy4gQ29sbGlucycgR29vZCBUbyBHcmVhdDogV2h5IFNvbWUgQ29tcGFuaWVzIE1ha2UgdGhlIExlYXAuLi5BbmQgT3RoZXJzIERvbid0OyANCjIwMDEgKE5vdik6W0NyaW1lXVtJbmRpYV0gQWJkdWwgR2FmZmFyIGFsaWFzIENoaWtuYSBHYWZmYXIgY2F1Z2h0IGJ5IHRoZSBkZXRlY3RpdmUgZGVwYXJ0bWVudCBpbiBDYWxjdXR0YSANCjIwMDEgKEphbiAyKTogVGhlIG5vcnRoZXJuIGVsZWN0cmljYWwgZ3JpZCBjb2xsYXBzZWQgaW4gSW5kaWEuIEEgZmF1bHQgaW4gdGhlIHRyYW5zbWlzc2lvbiBzeXN0ZW0gaW4gdGhlIHN0YXRlIG9mIFV0dGFyIFByYWRlc2ggbGVkIHRvIGNhc2NhZGluZyBmYWlsdXJlIHRocm91Z2hvdXQgbm9ydGhlcm4gSW5kaWEgYWZmZWN0aW5nIDIzIGNyb3JlIHJlc2lkZW50cy4NCjIwMDE6IElWUlMgKCdJbnRlcmFjdGl2ZSBWb2ljZSBSZXNwb25zZSBTeXN0ZW0nKSBmb3IgdGVsZXBob25pYyBlbnF1aXJpZXMgYWJvdXQgdHJhaW5zIGludHJvZHVjZWQgaW4gc29tZSBzdGF0aW9ucy4NCjIwMDE6IE1hZGVFYXN5IGluY29ycG9yYXRlZCBhdCA0NC1BLzEsIEthbHUgU2FyYWksIE5lYXIgSGF1eiBLaGFzIE1ldHJvIFN0YXRpb24sIE5ldyBEZWxoaS0xMTAwMTYNCjIwMDE6IEFjYyB0byAyMDAxIGNlbnN1cywgMzAgbGFraHMgd2VyZSBpbW1pZ3JhdGVkIHRvIEluZGlhIGZyb20gQmFuZ2xhZGVzaCBhbG9uZSwgZm9sbG93ZWQgYnkgMTAgbGFraHMgZnJvbSBQYWtpc3RhbiBhbmQgNiBsYWtocyBmcm9tIE5lcGFsLg0KMjAwMSAoRGVjIDEzKTpbQ3JpbWVdW0luZGlhXSBUZXJyb3Jpc3QgYXR0YWNrIG9uIEluZGlhJ3MgUGFybGlhbWVudC4NCjIwMDE6IHRoZSBjdXN0b21lciBiYXNlIG9mIG1vYmlsZSBwaG9uZSBjb21wYW5pZXMgd2FzIDQgbWlsbGlvbi4NCjIwMDE6IEJlbmVmaXQgbGFubmVycywgVGV4YXMgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBIZWFsdGggQmVuZWZpdCBkaXZpc2lvbi4NCjIwMDE6IE5ldyBIb3Jpem9ucyB3YXMgaW5pdGlhbGx5IHNlbGVjdGVkIGZvciBmdW5kaW5nIGluIDIwMDEgYnV0IHdhcyBleGNsdWRlZCBmcm9tIHRoZSBOQVNBIDIwMDMgYnVkZ2V0LiBGdW5kaW5nIGZvciB0aGUgbWlzc2lvbiB3YXMgcmVpbnN0YXRlZCBhZnRlciBOZXcgSG9yaXpvbnMgd2FzIGxpc3RlZCBhcyBhIHRvcCBwcmlvcml0eSBpbiB0aGUgUGxhbmV0YXJ5IFNjaWVuY2UgRGVjYWRhbCBTdXJ2ZXkgb2YgMjAwM+jjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlallkllklklklklklklklklklklklklklklklklklklklklklklklklklklklkjjajlkasjdlajdlkajdlaj
+KAkzIwMDEuDQoxOTkzOiBBc2hvayBIYWxsIEdpcmwncyBSZXNpZGVudGlhbCBTY2hvb2wsIE1hamtoYWxpLg0KMTk5MzogQnkgdGhpcyB5ZWFyIHRoZXJlIHdlcmUgYXJvdW5kIDEwMCB3ZWItc2VydmVycyBhY3Jvc3MgdGhlIHdvcmxkLiAoQSByZXBvcnQgcHVibGlzaGVkIGluIGZpcnN0IGlzc3VlIG9mIFRoZSBXb3JsZCBXaWRlIFdlYiBOZXdzbGV0dGVyLCAxOTkzKQ0KMTk5MzogQUMgMy10aWVyIGNvYWNoZXMgJiBTbGVlcGVyIGNsYXNzIGFyZSBpbnRyb2R1Y2VkIGFwYXJ0IGZyb20gc2Vjb25kIGNsYXNzLg0KMTk5MzogR29JJ3MgRGlzdHJpY3QgUHJpbWFyeSBFZHVjYXRpb24gUHJvZ3JhbW1lIChEUEVQKSB3YXMgbGF1bmNoZWQsIHdpdGggYW4gYWltIG9mIGFjaGlldmluZyB0aGUgb2JqZWN0aXZlIG9mIHVuaXZlcnNhbCBwcmltYXJ5IGVkdWNhdGlvbi4gVGhpcyBwcm9ncmFtbWVkIGxhaWQgdGhlIGZvdW5kYXRpb25zIGZvciDgpLjgpLDgpY3gpLUg4KS24KS/4KSV4KWN4KS34KS+IOCkheCkreCkv+Ckr+CkvuCkqChFZHVjYXRpb24gZm9yIEFsbCBNb3ZlbWVudCkgYWltZWQgYXQgdGhlIHVuaXZlcnNhbGlzYXRpb24gb2YgZWxlbWVudGFyeSBlZHVjYXRpb24gbWFraW5nIGZyZWUgYW5kIGNvbXB1bHNvcnkgZWR1Y2F0aW9uIHRvIGNoaWxkcmVuIGJldHdlZW4gdGhlIGFnZXMgb2YgNiB0byAxNC4NCjE5OTM6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIHNwbGl0IHdpdGggRGF3b29kIGFuZCBmb3JtZWQgYW4gaW5kZXBlbmRlbnQgZ2FuZyB0aGF0IGZyZXF1ZW50bHkgY2xhc2hlZCB3aXRoIERhd29vZCdzIEQtQ29tcGFueS4NCjE5OTMgKEphbiA3KTpbQ3JpbWVdIFJpb3RzIHJlLXN0YXJ0ZWQgaW4gTXVtYmFpIGFuZCBsYXN0ZWQgZm9yIDIwIGRheXMuIFRoZSBJU0ksIHdoaWNoIGNvbnRyb2xsZWQgc2hpcHBpbmcgcm91dGVzIGZyb20gdGhlIEd1bGYgdG8gSW5kaWEncyB3ZXN0IGNvYXN0LCBkZW1hbmRlZCB0aGF0IHRoZSBtYWZpYSB0cmFuc3BvcnQgd2VhcG9ucyBhbmQgZXhwbG9zaXZlcyBpbnRvIEluZGlhIGluIHJldHVybiBmb3IgdGhlIHVzZSBvZiBQYWtpc3RhbidzIHdhdGVycy4gRGF3b29kIG1ldCB0aGVpciBJU0kgaGFuZGxlcnMgaW4gYSA1IHN0YXIgaG90ZWwgb2YgRHViYWkgaW4gSmFuIG9yIEZlYiBvZiAxOTkzLCB0aGVuIGNhbWUgdGhlIFJEWCB0aHJvdWdoIHRoZSBzYW1lIHBvcm91cyBhbmQgdW5jaGVja2VkIHNlYSByb3V0ZSB0aGF0IDI2LzExIGF0dGFja2VycyBzbGlwcGVkIGFjcm9zcyBhbmQgd3JlY2tlZCBtYXloZW0gaW4gTXVtYmFpLiBUaGUg4oCZOTMgYXR0YWNrcyB3ZXJlIGZpbmFsbHkgZXhlY3V0ZWQgaW4gbWFyY2ggdGhhdCBjbGFpbWVkIHNvbWUgMzAwIGlubm9jZW50IGxpdmVzLg0KMTk5MyAoTWFyIDYpOltQb2xpdHldW0luZGlhXSBTaGFyYWQgUGF3YXIgcmUtZWxlY2V0ZCBhcyBDTSBvZiBNSCBmb3IgMiB5ZWFycy4NCjE5OTMgKE1hciAxMik6W0NyaW1lXSBUaGUgMTk5MyBCb21iYXkgYm9tYmluZ3Mgd2VyZSBhIHNlcmllcyBvZiAxMiB0ZXJyb3Jpc3QgYm9tYmluZ3MgdGhhdCB0b29rIHBsYWNlIGluIEJvbWJheS4gVGhlIHNpbmdsZS1kYXkgYXR0YWNrcyByZXN1bHRlZCBpbiAyNTcgZmF0YWxpdGllcyBhbmQgMSw0MDAgaW5qdXJpZXMuIFRoZXJlIHdhcyBhbm90aGVyIHJhaWQgbmVhciBNYW5pc2ggbWFya2V0IHdoZXJlIGhhbmQgZ3JlbmFkZXMgd2VyZSByZWNvdmVyZWQuIEFmdGVyIGFub3RoZXIgdGlwIG9mZiBsZWQgdG8gZGlzY292ZXJ5IG9mIGEgaHVnZSBxdWFudGl0eSBvZiBSRFggZnJvbSBOYWdsYSBCdW5kZXIgb2ZmIEdob2RidW5kZXIgUm9hZCBpbiBUaGFuZS4g4oCcSW4gYWxsLCA1LDAwMCBraWxvZ3JhbXMgb2YgUkRYIHdhcyBicm91Z2h0IGludG8gTXVtYmFpIGFuZCB3ZSByZWNvdmVyZWQgMywzMDAga2lsb2dyYW1zIG9mIGl0IGluIGFsbCB0aGUgcmFpZHMs4oCdIHNheXMgQ2hhdWd1bGUuIFJlZHVjZWQgU2hvY2sgU2Vuc2l0aXZpdHkgKFJTUykgZXhwbG9zaXZlcywgc3VjaCBhcyBSU1MtUkRYLCB3aGljaCBjb3N0cyBhYm91dCBScy4gMSw1MDAtMiwwMDAgcGVyIGtnLiBBbmVlcyBjb250aW51ZWQgb3BlcmF0aW9uIG9mIEQtQ29tcGFueSB3aGljaCBpbmNsdWRlIGNvbnRyYWN0IGtpbGxpbmcsIGV4dG9ydGlvbiwgdGhlIGNpcmN1bGF0aW9uIG9mIGNvdW50ZXJmZWl0IGN1cnJlbmN5LCBhbmQgdGhlIHByb3Zpc2lvbiBvZiBhIHJhbmdlIG9mIGZyZWUtbGFuY2Ugc2VydmljZXMgdG8gdGVycm9yaXN0IGdyb3VwcyBhdCB0aGUgaW5zdGFuY2Ugb2YgUGFraXN0YW4ncyBJbnRlciBTZXJ2aWNlcyBJbnRlbGxpZ2VuY2UgKElTSSkuIEludGVycG9sIFJlZCBDb3JuZXIgbm90aWNlIGZvciBELUNvbXBhbnkuDQoxOTkzIChOb3YgMSk6IFRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGZvdW5kZWQuIEl0IGlzIGFuIGVjb25vbWljIGFuZCBwb2xpdGljYWwgcGFydG5lcnNoaXAgaW52b2x2aW5nIDI4IEV1cm9wZWFuIGNvdW50cmllcy4gSXQgYmVnYW4gYWZ0ZXIgV1cyIHRvIGZvc3RlciBlY29ub21pYyBjby1vcGVyYXRpb24sIHdpdGggdGhlIGlkZWEgdGhhdCBjb3VudHJpZXMgd2hpY2ggdHJhZGUgdG9nZXRoZXIgYXJlIG1vcmUgbGlrZWx5IHRvIGF2b2lkIGdvaW5nIHRvIHdhciB3aXRoIGVhY2ggb3RoZXIuDQoxOTkzIChOb3YgMyk6IFtHZW9Qb2xpdGljc10gVGhlIENvbW1vbiBNYXJrZXQgZm9yIEVhc3Rlcm4gYW5kIFNvdXRoZXJuIEFmcmljYSAoQ09NRVNBKSBpcyBhIHJlZ2lvbmFsIGVjb25vbWljIGNvbW11bml0eSBpbiBBZnJpY2Egd2l0aCB0d2VudHktb25lIG1lbWJlciBzdGF0ZXMgc3RyZXRjaGluZyBmcm9tIFR1bmlzaWEgdG8gRXN3YXRpbmkuIENPTUVTQSB3YXMgZm9ybWVkIGluIERlY2VtYmVyIDE5OTQsIHJlcGxhY2luZyBhIFByZWZlcmVudGlhbCBUcmFkZSBBcmVhIHdoaWNoIGhhZCBleGlzdGVkIHNpbmNlIDE5ODEuIE5pbmUgb2YgdGhlIG1lbWJlciBzdGF0ZXMgZm9ybWVkIGEgZnJlZSB0cmFkZSBhcmVhIGluIDIwMDAgKERqaWJvdXRpLCBFZ3lwdCwgS2VueWEsIE1hZGFnYXNjYXIsIE1hbGF3aSwgTWF1cml0aXVzLCBTdWRhbiwgWmFtYmlhIGFuZCBaaW1iYWJ3ZSksIHdpdGggUndhbmRhIGFuZCBCdXJ1bmRpIGpvaW5pbmcgdGhlIEZUQSBpbiAyMDA0LCB0aGUgQ29tb3JvcyBhbmQgTGlieWEgaW4gMjAwNiwgU2V5Y2hlbGxlcyBpbiAyMDA5IGFuZCBUdW5pc2lhIGFuZCBTb21hbGlhIGluIDIwMTguDQoxOTkzIChEZWMgMjApOiBPSENIUiBmb3JtZWQuIFRoZSBPZmZpY2Ugb2YgdGhlIFVuaXRlZCBOYXRpb25zIEhpZ2ggQ29tbWlzc2lvbmVyIGZvciBIdW1hbiBSaWdodHMgKE9IQ0hSKSwgYSBVbml0ZWQgTmF0aW9ucyBhZ2VuY3kgdGhhdCB3b3JrcyB0byBwcm9tb3RlIGFuZCBwcm90ZWN0IHRoZSBodW1hbiByaWdodHMgdGhhdCBhcmUgZ3VhcmFudGVlZCB1bmRlciBpbnRlcm5hdGlvbmFsIGxhdyBhbmQgc3RpcHVsYXRlZCBpbiB0aGUgVW5pdmVyc2FsIERlY2xhcmF0aW9uIG9mIEh1bWFuIFJpZ2h0cyBvZiAxOTQ4Lg0KMTk5Mzp0aGUgMjR0aCBhbmQgbGFzdCBHTE9OQVNTIHNhdGVsbGl0ZSB3YXMgbGF1bmNoZWQgZm9ybWluZyB0aGUgd2hvbGUgbmF2aWdhdGlvbiBjb25zdGVsbGF0aW9uIHNpbWlsYXIgdG8gdGhhdCBvZiBVUydzIEdQUy4NCjE5OTM6IFNIQS0wIChhIGhhc2ggZnVuY3Rpb24pIHdhcyBwcm9wb3NlZCBieSBOSVNULCBNYXJ5bGFuZCwgVVNBIChGb3VuZGVkOiAxOTAxKS4gSXQgcHJvZHVjZXMgYSAxNjAtYml0IGhhc2ggdmFsdWUsIHRodXMgdGhlIGJydXRlLWZvcmNlIGNvbGxpc2lvbiBvciAgbmVhci1jb2xsaXNpb24gYXR0YWNrIHJlcXVpcmVzIE8oMl44MCkgY29tcHV0YXRpb24uIFdpdGhpbiA1IHllYXJzLCBpdCB3YXMgbWFkZSBjb2xsaXNpb24gYXR0YWNrZWQgYnkgQ2hhYmF1ZCBhbmQgSm91eCB3aXRoIHRoZSBhdHRhY2sgY29tcGxleGl0eSBvZiAyXjYxLg0KMTk5MzogW0NvYWxnYXRlIHNjYW1dIE9uIDIzcmQgQXByaWwgMjAxMywgdGhlIFN0YW5kaW5nIENvbW1pdHRlZSBvbiBDb2FsIGFuZCBTdGVlbCB0YWJsZWQgaW4gUGFybGlhbWVudCB0aGF0IGFsbCAxOTQgY29hbCBibG9ja3MgZGlzdHJpYnV0ZWQgYmV0d2VlbiAxOTkzIGFuZCAyMDA4IHdlcmUgYXVjdGlvbmVkIGluIGFuIHVuYXV0aG9yaXplZCBtYW5uZXIgYW5kIHRoZSBjb3VudHJ5IGxvc3QgUnMuMS44NiBsYWtoIGNyb3JlLi4gRm9ybWVyIFByaW1lIE1pbmlzdGVyIE1hbm1vaGFuIFNpbmdoLCBhbG9uZyB3aXRoIEt1bWFyIE1hbmdhbGFtIEJpcmxhIGFuZCBQLkMuIFBhcmFraCwgd2VyZSBhY2N1c2VkIGFuZCBzdW1tb25lZCBieSBhIHNwZWNpYWwgY291cnQuIFsyTCBDcm9yZV0uIENvbXB0cm9sbGVyIGFuZCBBdWRpdG9yIEdlbmVyYWwgb2YgSW5kaWEgdG9vayAyMCB5ZWFycyB0byBJRCBvbmUgb2YgdGhlIGJpZ2dlc3Qgc2NhbXMgaW4gSW5kaWFuIGhpc3RvcnkuDQoxOTkzOiBBZnRlciBQcmVzaWRlbnQgQmlsbCBDbGludG9uIHRvb2sgb2ZmaWNlIGluIDE5OTMsIGhvd2V2ZXIsIHRoZSBVLlMuIGVjb25vbXkgZW1iYXJrZWQgb24gYSBsb25nIGFuZCBzdHJvbmcgZXhwYW5zaW9uLCBtYWtpbmcgdGhlIDE5OTBzIGEgZ3JlYXQgZGVjYWRlIGZvciBBbWVyaWNhJ3MgbW9uZXksIG92ZXJhbGwuIA0KMTk5MzpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTW90aHJhKDE5OTIpDQoxOTkzOltTcGFjZV0gSGlwcGFyY29zLCBhIHNjaWVudGlmaWMgc2F0ZWxsaXRlIG9mIHRoZSBFdXJvcGVhbiBTcGFjZSBBZ2VuY3kgKEVTQSkgbGFzdGVkIGZvciA0IHllYXJzIGJlZm9yZSBnb2luZyBvdXQtb2Ytc2VydmljZS4NCjE5OTM6W1NwYWNlXVtSZXNlYXJjaF0gSW4gMTk5MywgRG9uIFBhZ2UgYXJndWVkIHRoYXQgaWYgYSBibGFjayBob2xlIHN0YXJ0cyBpbiBhIHB1cmUgcXVhbnR1bSBzdGF0ZSBhbmQgZXZhcG9yYXRlcyBjb21wbGV0ZWx5IGJ5IGEgdW5pdGFyeSBwcm9jZXNzLCB0aGUgdm9uIE5ldW1hbm4gZW50cm9weSBvZiB0aGUgSGF3a2luZyByYWRpYXRpb24gaW5pdGlhbGx5IGluY3JlYXNlcyBhbmQgdGhlbiBkZWNyZWFzZXMgYmFjayB0byB6ZXJvIHdoZW4gdGhlIGJsYWNrIGhvbGUgaGFzIGRpc2FwcGVhcmVkLiBUaGlzIGlzIGNhbGxlZCB0aGUgUGFnZSBjdXJ2ZS4NCjE5OTM6W0Jvb2tzXVtIaXN0b3J5XSBHcmVlbuKAmXMgRGljdGlvbmFyeSBvZiBTbGFuZyBpcyB0aGUgbGFyZ2VzdCBoaXN0b3JpY2FsIGRpY3Rpb25hcnkgb2YgRW5nbGlzaCBzbGFuZy4gV3JpdHRlbiBieSBKb25hdGhvbiBHcmVlbiBvdmVyIDE3IHllYXJzIGZyb20gMTk5MywgaXQgcmVhY2hlZCB0aGUgcHJpbnRlZCBwYWdlIGluIDIwMTAgaW4gYSB0aHJlZS12b2x1bWUgc2V0IGNvbnRhaW5pbmcgbmVhcmx5IDEwMCwwMDAgZW50cmllcyBzdXBwb3J0ZWQgYnkgb3ZlciA0MDAsMDAwIGNpdGF0aW9ucyBmcm9tIGMuIGFkIDEwMDAgdG8gdGhlIHByZXNlbnQgZGF5LiBUaGUgbWFpbiBmb2N1cyBvZiB0aGUgZGljdGlvbmFyeSBpcyB0aGUgY292ZXJhZ2Ugb2Ygb3ZlciA1MDAgeWVhcnMgb2Ygc2xhbmcgZnJvbSBjLiAxNTAwIG9ud2FyZHMuDQoxOTkzOltFbnZdW0Rpc2FzdGVyXSBTb3V0aCBBc2lhbiBtb25zb29uIGZsb29kcywgM2sgZGVhdGhzDQoxOTkzOltHZW9ncmFwaHldIFRoZSBsYXN0IG1ham9yIHNoaWZ0cyBpbiBFYXJ0aCdzIGF4aXMgd2VyZSBpbmZsdWVuY2VkIGJ5IGNsaW1hdGUgY2hhbmdlOiBhIDMxLjUtaW5jaCBzaGlmdCBiZXR3ZWVuIDE5OTMgYW5kIDIwMTAgd2FzIHByaW1hcmlseSBjYXVzZWQgYnkgZ3JvdW5kd2F0ZXIgcHVtcGluZywgYW5kIGEgY2hhbmdlIGluIHBvbGFyIGRyaWZ0IGRpcmVjdGlvbiBhcm91bmQgdGhlIDE5OTBzIHdhcyBsaW5rZWQgdG8gbWVsdGluZyBnbGFjaWVycyBhbmQgaWNlIHNoZWV0cyBkdWUgdG8gZ2xvYmFsIHdhcm1pbmcuIEVhcnRoJ3MgYXhpcyBhbHNvIHNoaWZ0ZWQgYnkgYWJvdXQgNi41IGluY2hlcyBpbiBNYXJjaCAyMDExIGFmdGVyIHRoZSBKYXBhbmVzZSBlYXJ0aHF1YWtlLCBjYXVzaW5nIHRoZSBwbGFuZXQgdG8gc3BpbiBzbGlnaHRseSBmYXN0ZXIuDQoxOTkzOltXaG9dIEluIDE5OTMsIEluZGlhIGNhbWUgaGVhcnRicmVha2luZ2x5IGNsb3NlIHRvIHdpbm5pbmcgaXRzIGZpcnN0IE1pc3MgVW5pdmVyc2UgY3Jvd24gd2l0aCB0aGUgc3R1bm5pbmcgYW5kIGdyYWNlZnVsIE5hbXJhdGEgU2hpcm9ka2FyLCB3aG8gaGFkIGVhcmxpZXIgd29uIHRoZSBGZW1pbmEgTWlzcyBJbmRpYSB0aXRsZS4gUmVwcmVzZW50aW5nIEluZGlhIGF0IHRoZSBNaXNzIFVuaXZlcnNlIHBhZ2VhbnQgaGVsZCBpbiBNZXhpY28gQ2l0eSwgTmFtcmF0YSB3YXMgYSBzdHJvbmcgY29udGVuZGVy4oCUZWxlZ2FudCBpbiBoZXIgZ293biwgcG9pc2VkIGluIGludGVydmlld3MsIGFuZCBhIGZhbiBmYXZvcml0ZS4gU2hlIGVhc2lseSBtYWRlIGl0IHRvIHRoZSBUb3AgNiwgYW5kIGhlciBjaGFuY2VzIG9mIHdpbm5pbmcgbG9va2VkIGluY3JlZGlibHkgaGlnaC4gQnV0IHRoZW4gY2FtZSB0aGUgZmluYWwgcXVlc3Rpb246IOKAnElmIHlvdSBjb3VsZCBiZSBib3JuIGFzIGFueSBoaXN0b3JpY2FsIGZpZ3VyZSwgd2hvIHdvdWxkIGl0IGJlIGFuZCB3aHk/4oCdIFdoaWxlIG90aGVyIGNvbnRlc3RhbnRzIG5hbWVkIGdsb2JhbCBpY29ucyBsaWtlIE1vdGhlciBUZXJlc2EgYW5kIFByaW5jZXNzIERpYW5hLCBOYW1yYXRhIGdhdmUgYW4gaG9uZXN0LCBwZXJzb25hbCBhbnN3ZXLigJRzaGUgc2FpZCBzaGUgd291bGQgYmUgYm9ybiBhcyBoZXJzZWxmIG9yIHNvbWVvbmUgY2xvc2UgdG8gaGVyLCBiZWNhdXNlIHNoZSBiZWxpZXZlZCBpbiBsaXZpbmcgbGlmZSB3aXRoIHRydXRoIGFuZCBpbmRpdmlkdWFsaXR5LiBJdCB3YXMgYSBiZWF1dGlmdWwsIGdyb3VuZGVkIGFuc3dlcuKAlGJ1dCBub3QgdGhlIGtpbmQgb2YgZ3JhbmQsIGlkZWFsaXN0aWMgcmVzcG9uc2UgdGhlIGp1ZGdlcyB3ZXJlIGV4cGVjdGluZy4gVGhhdCBvbmUgbW9tZW50IG9mIHRydXRoLCBtYW55IGJlbGlldmUsIGNvc3QgaGVyIHRoZSBjcm93biwgYW5kIEluZGlhIGhhZCB0byB3YWl0IGFub3RoZXIgeWVhciBiZWZvcmUgU3VzaG1pdGEgU2VuIGJyb3VnaHQgdGhlIE1pc3MgVW5pdmVyc2UgdGl0bGUgaG9tZSBpbiAxOTk0LiBTdGlsbCwgTmFtcmF0YeKAmXMgYW5zd2VyIGJlY2FtZSBpY29uaWPigJRub3QgYmVjYXVzZSBpdCB3b24sIGJ1dCBiZWNhdXNlIGl0IHdhcyByZWFsLCBtYXJraW5nIGEgcmFyZSBpbnN0YW5jZSB3aGVyZSBob25lc3R5IHN0b29kIHRhbGxlciB0aGFuIGRpcGxvbWFjeS4NCjE5OTM6W0F2aWF0aW9uXVtFeHRyZW1lXVtXaG9dIFRoZSBIZXJic3QgbWFuZXV2ZXIgd2FzIGZpcnN0IHN1Y2Nlc3NmdWxseSBwZXJmb3JtZWQgb24gQXByaWwgMjksIDE5OTMsIGJ5IGFuIFgtMzEgYWlyY3JhZnQuIE5hbWVkIGFmdGVyIFdvbGZnYW5nIEhlcmJzdCwgYSBkZXZlbG9wZXIgb2YgcG9zdC1zdGFsbCB0ZWNobm9sb2d5IGZvciBNZXNzZXJzY2htaXR0LULDtmxrb3ctQmxvaG0gKE1CQiksIHRoaXMsIHBvc3Qtc3RhbGwgbWFuZXV2ZXIgZW5hYmxlcyBhIGZpZ2h0ZXIgdG8gbWFrZSBhIHJhcGlkIDE4MMKwIHR1cm4gd2l0aGluIGEgbWluaW1hbCByYWRpdXMuIA0KDQoxOTk04oCTMTk5NTpbVVNdW0dlb1BvbGl0aWNzXSBvY2N1cGF0aW9uIG9mIEhhaXRpLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgRXVyb3BlYW4gRWNvbm9taWMgQXJlYSwgYWJicmV2aWF0ZWQgYXMgRUVBLCBjb25zaXN0cyBvZiB0aGUgTWVtYmVyIFN0YXRlcyBvZiB0aGUgRXVyb3BlYW4gVW5pb24gKEVVKSBhbmQgdGhyZWUgY291bnRyaWVzIG9mIHRoZSBFdXJvcGVhbiBGcmVlIFRyYWRlIEFzc29jaWF0aW9uIChFRlRBKSAoSWNlbGFuZCwgTGllY2h0ZW5zdGVpbiBhbmQgTm9yd2F5OyBleGNsdWRpbmcgU3dpdHplcmxhbmQpLiBUaGUgQWdyZWVtZW50IG9uIHRoZSBFRUEgZW50ZXJlZCBpbnRvIGZvcmNlIG9uIDEgSmFudWFyeSAxOTk0LiANCjE5OTQ6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEV1cm9wZWFuIEVjb25vbWljIEFyZWEgKEVFQSkgd2FzIGVzdGFibGlzaGVkIG9uIDEgSmFudWFyeSAxOTk0LiBUaGUgYWdyZWVtZW50IGxpbmtzIHRoZSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aHJlZSBFRlRBIHN0YXRlc+KAlEljZWxhbmQsIExpZWNodGVuc3RlaW4sIGFuZCBOb3J3YXnigJRpbnRvIGEgc2luZ2xlIGludGVybmFsIG1hcmtldCwgYWxsb3dpbmcgZm9yIHRoZSBmcmVlIG1vdmVtZW50IG9mIGdvb2RzLCBwZXJzb25zLCBzZXJ2aWNlcywgYW5kIGNhcGl0YWwuIA0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBOQUZUQSwgdGhlIE5vcnRoIEFtZXJpY2FuIEZyZWUgVHJhZGUgQWdyZWVtZW50LCB3YXMgYSAxOTk0IGFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzLCBDYW5hZGEsIGFuZCBNZXhpY28gdG8gZWxpbWluYXRlIHRyYWRlIGJhcnJpZXJzIGFuZCBwcm9tb3RlIGZyZWUgdHJhZGUgaW4gTm9ydGggQW1lcmljYS4gSXQgZmFjaWxpdGF0ZWQgdGhlIG1vdmVtZW50IG9mIGdvb2RzIGFuZCBzZXJ2aWNlcyBhbmQgZXN0YWJsaXNoZWQgYSBsYXJnZSB0cmFkZSBibG9jLiBJbiBKdWx5IDIwMjAsIE5BRlRBIHdhcyByZXBsYWNlZCBieSB0aGUgVW5pdGVkIFN0YXRlcy1NZXhpY28tQ2FuYWRhIEFncmVlbWVudCAoVVNNQ0EpLCB3aGljaCBtb2Rlcm5pemVkIGFuZCBlbmhhbmNlZCB0aGUgdHJlYXR5IGZvciBhIGNvbnRlbXBvcmFyeSBlY29ub215Lg0KMTk5NDpbUy5BZnJpY2FdW1NvY2lhbGlzbV0gRmlyc3QgZnJlZSBlbGVjdGlvbnMgaW4gU291dGggQWZyaWNhOyBOZWxzb24gTWFuZGVsYQ0KMTk5NDpbUmVzZWFyY2hdW3NwYWNlXSBDYXJsIFNhZ2FuIGNvbmNlZGVkIHRoYXQgdGhpcyBhcHByb2FjaCB3b3VsZCBub3Qgd29yayBiZWNhdXNlIHRoZSBhdG1vc3BoZXJlIG9mIFZlbnVzIGlzIGZhciBkZW5zZXIgKDkwIGJhcnMpIHRoYW4gd2hhdCB3YXMgdW5kZXJzdG9vZCBpbiAxOTYxIChhIGZldyBiYXJzKSwgbWVhbmluZyB0aGUgY2FyYm9uIHdvdWxkIGp1c3QgYmUgb3hpZGl6ZWQgYmFjayBpbnRvIENPMi4NCjE5OTQ6W0NvbXB1dGluZ11bUXVhbnR1bV0gUGV0ZXIgU2hvciBkaXNjb3ZlcmVkIGFuIGFsZ29yaXRobSAoU2hvcidzIGFsZ29yaXRobSkgdGhhdCBjb3VsZCBmYWN0b3IgbGFyZ2UgbnVtYmVycyBpbiBwb2x5bm9taWFsIHRpbWUgb24gYSBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCB3b3VsZCBicmVhayB0aGUgc2VjdXJpdHkgb2YgbWFueSBjcnlwdG9ncmFwaGljIHNjaGVtZXMuIA0KMTk5NDpbQ29tcHV0aW5nXVtRdWFudHVtXSBQZXRlciBTaG9yIGFuZCBEb24gQ29wcGVyc21pdGggZmlndXJlZCBvdXQgaG93IHRvIHRha2UgYSBRdWFudHVtIEZvdXJpZXIgVHJhbnNmb3JtLg0KMTk5NDpUaGUgcHJvYmxlbSB3aXRoIHRoZSBwYXBlciBwdWJsaXNoZWQgZWFybGllciB0aGlzIG1vbnRoIHdhcyBpdHMgcmVsaWFuY2Ugb24gU2Nobm9ycidzIGFsZ29yaXRobSAobm90IHRvIGJlIGNvbmZ1c2VkIHdpdGggU2hvcuKAmXMgYWxnb3JpdGhtKSwgd2hpY2ggd2FzIGRldmVsb3BlZCBpbiAxOTk0LiBTY2hub3Jy4oCZcyBhbGdvcml0aG0gaXMgYSBjbGFzc2ljYWwgY29tcHV0YXRpb24gYmFzZWQgb24gbGF0dGljZXMsIHdoaWNoIGFyZSBtYXRoZW1hdGljYWwgc3RydWN0dXJlcyB0aGF0IGhhdmUgbWFueSBhcHBsaWNhdGlvbnMgaW4gY29uc3RydWN0aXZlIGNyeXB0b2dyYXBoeSBhbmQgY3J5cHRhbmFseXNpcy4gVGhlIGF1dGhvcnMgd2hvIGRldmlzZWQgU2Nobm9ycuKAmXMgYWxnb3JpdGhtIHNhaWQgaXQgY291bGQgZW5oYW5jZSB0aGUgdXNlIG9mIHRoZSBoZXVyaXN0aWMgcXVhbnR1bSBvcHRpbWl6YXRpb24gbWV0aG9kIGNhbGxlZCBRQU9BLg0KMTk5NCAoSmFuIDEpOiBbR2VvUG9saXRpY3NdIFRoZSBOb3J0aCBBbWVyaWNhbiBGcmVlIFRyYWRlIEFncmVlbWVudCAoTkFGVEEpIHdhcyBhbiBhZ3JlZW1lbnQgc2lnbmVkIGJ5IENhbmFkYSwgTWV4aWNvLCBhbmQgdGhlIFVuaXRlZCBTdGF0ZXMgdGhhdCBjcmVhdGVkIGEgdHJpbGF0ZXJhbCB0cmFkZSBibG9jIGluIE5vcnRoIEFtZXJpY2EuIFRoZSBhZ3JlZW1lbnQgY2FtZSBpbnRvIGZvcmNlIG9uIEphbnVhcnkgMSwgMTk5NCwgYW5kIHN1cGVyc2VkZWQgdGhlIDE5ODggQ2FuYWRh4oCTVW5pdGVkIFN0YXRlcyBGcmVlIFRyYWRlIEFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzIGFuZCBDYW5hZGEuIFRoZSBOQUZUQSB0cmFkZSBibG9jIGZvcm1lZCBvbmUgb2YgdGhlIGxhcmdlc3QgdHJhZGUgYmxvY3MgaW4gdGhlIHdvcmxkIGJ5IGdyb3NzIGRvbWVzdGljIHByb2R1Y3QuDQoxOTk0OltUZWNobm9sb2d5XVtCdXNpbmVzc11bVVNdW0NvbXB1dGluZ10gVGhlIERlbGwgTGF0aXR1ZGUgc2VyaWVzIGlzIGEgbGluZSBvZiBsYXB0b3AgY29tcHV0ZXJzIG1hbnVmYWN0dXJlZCBhbmQgc29sZCBieSBBbWVyaWNhbiBjb21wYW55IERlbGwuIEl0IGlzIGEgYnVzaW5lc3Mtb3JpZW50ZWQgbGluZSwgYWltZWQgYXQgY29ycG9yYXRlIGVudGVycHJpc2VzLCBoZWFsdGhjYXJlLCBnb3Zlcm5tZW50LCBhbmQgZWR1Y2F0aW9uIG1hcmtldHM7IHVubGlrZSB0aGUgSW5zcGlyb24gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBpbmRpdmlkdWFsIGN1c3RvbWVycywgYW5kIHRoZSBWb3N0cm8gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBzbWFsbGVyIGJ1c2luZXNzZXMuIFRoZSBMYXRpdHVkZSBkaXJlY3RseSBjb21wZXRlcyB3aXRoIHRoZSBMZW5vdm8gVGhpbmtQYWQgYW5kIHRoZSBFbGl0ZUJvb2sgc2VyaWVzIGJ5IEhQLiBBZGRpdGlvbmFsbHksIHRoZSAiUnVnZ2VkIChFeHRyZW1lKSIsICJYRlIiIGFuZCAiQVRHIiBtb2RlbHMgY29tcGV0ZSBwcmltYXJpbHkgd2l0aCBQYW5hc29uaWMncyBUb3VnaGJvb2sgbGluZSBvZiAicnVnZ2VkIiBsYXB0b3BzLg0KMTk5NDogU3VzaG1pdGEgU2VuIGJlY2FtZSBNaXNzIFVuaXZlcnNlLg0KMTk5NDogVGhlIEFubmFscyBvZiBJbXByb2JhYmxlIFJlc2VhcmNoIGlzIGEgYmktbW9udGhseSBtYWdhemluZSBkZXZvdGVkIHRvIHNjaWVudGlmaWMgaHVtb3IsIGluIHRoZSBmb3JtIG9mIGEgc2F0aXJpY2FsIHRha2Ugb24gdGhlIHN0YW5kYXJkIGFjYWRlbWljIGpvdXJuYWwuDQoxOTk0OiBMaW5kb24gTGVhZGVyIG9mIExhbmRvciBBc3NvY2lhdGVzLCBvZiBTYW4gRnJhbmNpc2NvIGRlc2lnbmVkIHdvcmRtYXJrcyBmb3IgRmVkRXgncyB2YXJpb3VzIE9wLXVuaXQuIEZlZEV44oCZcyBwdWJsaWMtcmVsYXRpb25zIGZpcm0gd2FudGVkIHRvIGhpZ2hsaWdodCB0aGUgYXJyb3cgc28gaXQgd291bGQgYmUgb2J2aW91cy4gQnV0IGhlIGZvdWdodCB0aGVtIG9uIHRoYXQg4oCUIGhlIHRob3VnaHQgaXQgd291bGQgYmUgb3ZlcmtpbGwuIFRoZXJl4oCZcyBzb21ldGhpbmcgYWJvdXQgbWFraW5nIHBlb3BsZSBkaXNjb3ZlciBzb21ldGhpbmcgb24gdGhlaXIgb3duIHRoYXTigJlzIGEgbG90IG1vcmUgcG93ZXJmdWwgdGhhbiBpdGFsaWNpemluZyBpdCB0byBtYWtlIHlvdXIgcG9pbnQuDQoxOTk0OiBTY2lsYWIgMS4xLCB0aGUgZmlyc3QgcmVsZWFzZWQgdmVyc2lvbiBvZiBTY2lsYWIsIHdhcyBwdXQgb24gYW5vbnltb3VzIGZ0cCBzaXRlLg0KMTk5NDogVGhlIGNvbmNlcHQgb2YgYSBjYWbDqSB3aXRoIGZ1bGwgSW50ZXJuZXQgYWNjZXNzIChhbmQgdGhlIG5hbWUgQ3liZXJjYWbDqSkgd2FzIGludmVudGVkIGluIGVhcmx5IGJ5ICBhIEJyaXRpc2ggdGVjaG5vbG9neSBhcnRpc3QsIEl2YW4gUG9wZS4NCjE5OTQ6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIGx1cmVkIG9uZSBvZiBEYXdvb2QncyBmYXZvcml0ZSAibmFyY28tdGVycm9yaXN0IiBQaGlsbHUgS2hhbiBhbGlhcyBCYWtodGl5YXIgQWhtZWQgS2hhbiB0byBhIGhvdGVsIHJvb20gaW4gQmFuZ2tvaywgd2hlcmUgaGUgd2FzIHRvcnR1cmVkIHRvIGRlYXRoLCBoYXZpbmcgYmVlbiBiZXRyYXllZCBieSBoaXMgY2xvc2VzdCBhaWRlIGFuZCBzaWRla2ljayBNYW5nZXNoICJNYW5neWEiIFBhd2FyLiBELUNvbXBhbnkncyBTaGFyYWQsIHVzZWQgaGlzIGxpbmtzIHdpdGggTXVtYmFpLWJhc2VkIGhvdGVsaWVyIFZpbm9kIGFuZCBBLiBNaXNocmEgdG8gdHJhY2sgZG93biBSYWphbiBpbiBCYW5na29rLiBSYWphbidzIGhpdG1hbiBSb2hpdCBWYXJtYSBhbmQgaGlzIHdpZmUgc2hvdCBieSBELUNvbXBhbnkuDQoxOTk0KEp1bCAxNik6W1NwYWNlXSBGcm9tIEp1bHkgMTYgdG8gMjIsIDE5OTQsIGVub3Jtb3VzIHBpZWNlcyBvZiB0aGUgY29tZXQgU2hvZW1ha2VyLUxldnkgOSAoU0w5KSwgZGlzY292ZXJlZCBqdXN0IGEgeWVhciBwcmlvciwgY3Jhc2hlZCBpbnRvIEp1cGl0ZXIgb3ZlciBzZXZlcmFsIGRheXMsIGNyZWF0aW5nIGh1Z2UsIGRhcmsgc2NhcnMgaW4gdGhlIHBsYW5ldCdzIGF0bW9zcGhlcmUgYW5kIGxvZnRpbmcgc3VwZXJoZWF0ZWQgcGx1bWVzIGludG8gaXRzIHN0cmF0b3NwaGVyZS4NCjE5OTQgKE9jdCk6IElUUE8gYW5kIEdvSSdzIE5JQyBqb2ludGx5IHNldC11cCB0aGUgTmF0aW9uYWwgQ2VudHJlIGZvciBUcmFkZSBJbmZvcm1hdGlvbiAoTkNUSSkgYXQgUHJhZ2F0aSBNYWlkYW4uDQoxOTk0IChOb3YgMSwgMTU6MDEgSVNUKTpbU3BhY2VdW1N1bl0gVGhlIEdsb2JhbCBHZW9zcGFjZSBTY2llbmNlICdXaW5kJyBzYXRlbGxpdGUgaXMgYSBOQVNBIHNjaWVuY2Ugc3BhY2VjcmFmdCBkZXNpZ25lZCB0byBzdHVkeSByYWRpbyB3YXZlcyBhbmQgcGxhc21hIHRoYXQgb2NjdXIgaW4gdGhlIHNvbGFyIHdpbmQgYW5kIGluIHRoZSBFYXJ0aCdzIG1hZ25ldG9zcGhlcmUuIA0KMTk5NCAoRGVjIDMpOiBTb255J3MgUGxheVN0YXRpb24gKGEgdmlkZW8gZ2FtZSBjb25zb2xlKSB3YXMgaW50cm9kdWNlZCB0byB0aGUgd29ybGQgZnJvbSBNaW5hdG8sIFRva3lvIChKYXBhbikuDQoxOTk0OiBXWFlDLSBmaXJzdCBpbnRlcm5ldCByYWRpbyBzdGF0aW9uIGJyb2FkY2FzdC4NCjE5OTQ6IE1lbW9yeSBjYXJkcyB3ZXJlIGludHJvZHVjZWQgaW4gdGhlIGNvbnN1bWVyIGVsZWN0cm9uaWNzIG1hcmtldC4NCjE5OTQgKEF1Zyk6IElUUE8ncyAxc3QgRGVsaGkgQm9vayBGYWlyIGF0ICBIYWxsIDggdG8gMTIgb2YgUHJhZ2F0aSBNYWlkYW4sIE5ldyBEZWxoaS4gVGhlIHRpbWluZ3Mgb2YgZmFpciBhcmUgZnJvbSAxMC4wMCBhbSB0byA4LjAwIHBtIChlbnRyeSB0byBmYWlyIHdpbGwgY2xvc2UgYXQgNy4zMCBwbSkuDQoxOTk0IChTZXApOiBUaGUgQ09OQ0VSVCBzb2Z0d2FyZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgaW1wbGVtZW50ZWQgYXQgYWxsIG9mIHRoZSBmaXZlIFBSUycgc2l0ZXMgU2VjdW5kZXJhYmFkIGluIFNlcHQuIDE5OTQsIE5ldyBEZWxoaSBvbiBTZXB0LiAxOTk2LCBDYWxjdXR0YSBvbiAxNHRoIEp1bmUgMTk5OCwgTXVtYmFpIG9uIDExdGggSmFuIDE5OTkgYW5kIENoZW5uYWkgb24gMTJ0aCBBcHJpbCAxOTk5Lg0KMTk5NDogdGhlIDI0dGggYW5kIHRoZSBsYXN0IEdQUyBzYXRlbGxpdGUgd2FzIGxhdW5jaGVkIGluIFVTLg0KMTk5NDogVGhlIHdvcmQgVGFsaWJhbiBpcyBQYXNodG8sINi32KfZhNio2KfZhiDhua3EgWxpYsSBbiwgbWVhbmluZyAic3R1ZGVudHMiLCB0aGUgcGx1cmFsIG9mIOG5rcSBbGliLiBBZnRlciB0aGUgU292aWV0IFVuaW9uIGludGVydmVuZWQgYW5kIG9jY3VwaWVkIEFmZ2hhbmlzdGFuIGluIDE5NzksIElzbGFtaWMgbXVqYWhpZGVlbiBmaWdodGVycyBlbmdhZ2VkIGluIHdhciB3aXRoIHRob3NlIFNvdmlldCBmb3JjZXMsIHdoaWNoIGxhaWQgdGhlIGZvdW5kYXRpb24gb2YgcG9saXRpY2FsIG1vdmVtZW50IGFuZCBtaWxpdGFyeSBvcmdhbml6YXRpb24gbmFtZWQgVGFsaWJhbi4NCjE5OTQ6IEFiZHVsIEthcmVlbSBUZWxnaSBhY3F1aXJlZCB0aGUgbGljZW5zZSBmb3Igc2VsbGluZyBzdGFtcCBwYXBlciBhbmQgb3BlbmVkIGFuIG9mZmljZSBpbiBNdW1iYWkuIEFmdGVyIHRoYXQsIGhlIHN0YXJ0ZWQgcHJpbnRpbmcgc3RhbXAgcGFwZXIgaW4gTmFzaGlrLiBXaXRoIHNvbWUgYWdlbnRz4oCZIGhlbHAsIGhlIHN0YXJ0cyBzZWxsaW5nIGZha2Ugc3RhbXAgcGFwZXIgaW4gYnVsayB0byBiYW5rcywgaW5zdXJhbmNlIGNvbXBhbmllcywgc3RvY2sgYnJva2VyYWdlIGZpcm1zLCBhbmQgY29ycG9yYXRlcy4gSW4gMjAwMyB0aGUgVGVsZ2kgc2NhbSB3YXMgdW5mb2xkZWQ7IHRoZSBmaWd1cmUgaW4gdGhlIG1pbmQgb2Ygc2VjdXJpdHkgYW5kIGludGVsbGlnZW5jZSBhZ2VuY2llcyB3YXMgdXAgdG8gUnMuMjBrIENyb3JlDQoxOTk0OiBbR2VvUG9saXRpY3NdIEludGVybmF0aW9uYWwgQXNzb2NpYXRpb24gb2YgR2VuZGFybWVyaWVzIGFuZCBQb2xpY2UgRm9yY2VzIHdpdGggTWlsaXRhcnkgU3RhdHVzIChjb21tb25seSBrbm93biBhcyBGSUVQIGZvciBGcmFuY2UtSXRhbGlhLUVzcGHDsWEtUG9ydHVnYWwsIHRoZSBmaXJzdCBmb3VyIG1lbWJlcnMpIGlzIGFuIGFzc29jaWF0aW9uIG9mIG5hdGlvbmFsIGdlbmRhcm1lcmllcyBvciBtaWxpdGFyeSBwb2xpY2UgZm9yY2VzLg0KMTk5NDpbQm9va10gUGFsZSBCbHVlIERvdDogQSBWaXNpb24gb2YgdGhlIEh1bWFuIEZ1dHVyZSBpbiBTcGFjZSBpcyBhIDE5OTQgYm9vayBieSB0aGUgYXN0cm9ub21lciBDYXJsIFNhZ2FuLiBJdCBpcyB0aGUgc2VxdWVsIHRvIFNhZ2FuJ3MgMTk4MCBib29rIENvc21vcyBhbmQgd2FzIGluc3BpcmVkIGJ5IHRoZSBmYW1vdXMgMTk5MCBQYWxlIEJsdWUgRG90IHBob3RvZ3JhcGgsIGZvciB3aGljaCBTYWdhbiBwcm92aWRlcyBhIHBvaWduYW50IGRlc2NyaXB0aW9uLiBJbiB0aGUgYm9vaywgU2FnYW4gbWl4ZXMgcGhpbG9zb3BoeSBhYm91dCB0aGUgaHVtYW4gcGxhY2UgaW4gdGhlIHVuaXZlcnNlIHdpdGggYSBkZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCBrbm93bGVkZ2UgYWJvdXQgdGhlIFNvbGFyIFN5c3RlbS4gSGUgYWxzbyBkZXRhaWxzIGEgaHVtYW4gdmlzaW9uIGZvciB0aGUgZnV0dXJlLg0KMTk5NDpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTWVjaGFnb2R6aWxsYSBJSSgxOTkzKQ0KMTk5NDpbQ2luZW1hXSBUaGUgQXBwbGUoMTk4MCkNCjE5OTQ6W0NpbmVtYV0gVGhlIEF0bGFudGlzIEludGVyY2VwdG9ycygxOTgzKQ0KMTk5NDpbTW50bmdnXSBJbiAxOTk0LCBNYXJrIFdoZXR1IHN1bW1pdHRlZCBNdCBFdmVyZXN0IHdpdGggTWlrZSBSZWluYmVyZ2VyLiBCdXQgYWZ0ZXIgYSBmcmVlemluZyBuaWdodCwgV2hldHUgZmFjZWQgYSBoYXJyb3dpbmcgY2hvaWNlOiBsZWF2ZSBoaXMgZnJpZW5kIG9yIHJlbWFpbiBmb3JldmVyLiBUaGUgRmF0YWwgR2FtZSAoMTk5NykNCjE5OTQ6W1RvdXJpc21dIFRoZSBBZHZlbnR1cmUgVG91ciBPcGVyYXRvcnMgQXNzb2NpYXRpb24gb2YgSW5kaWEgKEFUT0FJKSB3YXMgZm91bmRlZCBpbiAxOTk0LiBJdCB3YXMgZXN0YWJsaXNoZWQgYnkgYSBncm91cCBvZiB0cmF2ZWwgdHJhZGUgYWR2ZW50dXJlcnMgd2hvIGFpbWVkIHRvIGNyZWF0ZSBhIHN0cm9uZyBzdXBwb3J0IG5ldHdvcmsgZm9yIEluZGlhbiBhZHZlbnR1cmUgdG91ciBvcGVyYXRvcnMuIA0KDQoxOTk1IChNYXkgMTkpOiBbUmVzZWFyY2hdW1NwYWNlXSB0d28gc2NpZW50aXN0cyBhdCBDYWwgUG9seSBzaG93ZWQgdGhhdCBiYWN0ZXJpYSBjYW4gc3Vydml2ZSB3aXRob3V0IGFueSBtZXRhYm9saXNtIGZvciBhdCBsZWFzdCAyNSBtaWxsaW9uIHllYXJzOyBwcm9iYWJseSB0aGV5IGFyZSBpbW1vcnRhbC4NCjI0IE5vdmVtYmVyIDE5OTU6IFRoZSBOZXcgWW9yayBUaW1lcyBkZXNjcmliZWQgYmFjdGVyaWEgdGhhdCBjYW4gc3Vydml2ZSByYWRpYXRpb24gbXVjaCBzdHJvbmdlciB0aGFuIGFueSB0aGF0IEVhcnRoIGhhcyBldmVyIGV4cGVyaWVuY2VkLg0KV2UgYXJlIGNhbGxpbmcgdGhlIHVuaW9uIG9mIExvdmVsb2NrJ3MgR2FpYSB3aXRoIEhveWxlIGFuZCBXaWNrcmFtYXNpbmdoZSdzIGV4cGFuZGVkIHRoZW9yeSBvZiBwYW5zcGVybWlhIENvc21pYyBBbmNlc3RyeS4gVGhpcyBhY2NvdW50IG9mIGV2b2x1dGlvbiBhbmQgdGhlIG9yaWdpbiBvZiBsaWZlIG9uIEVhcnRoIGlzIHByb2ZvdW5kbHkgZGlmZmVyZW50IGZyb20gdGhlIHByZXZhaWxpbmcgc2NpZW50aWZpYyBwYXJhZGlnbS4gSXQgY2hhbGxlbmdlcyBub3QgbWVyZWx5IHRoZSBhbnN3ZXJzIGJ1dCB0aGUgcXVlc3Rpb25zIHRoYXQgYXJlIHBvcHVsYXIgdG9kYXkuIENvc21pYyBBbmNlc3RyeSByZXF1aXJlcyB0aGF0IGxpZmUgY2FuIG9ubHkgZGVzY2VuZCBmcm9tIGFuY2VzdG9ycyBhdCBsZWFzdCBhcyBoaWdobHkgZXZvbHZlZCBhcyBpdHNlbGYsIGFuZCB0aGF0IHRoZXJlIGNhbiBiZSBubyBvcmlnaW4gb2YgbGlmZSBmcm9tIG5vbmJpb2xvZ2ljYWwgbWF0dGVyLiBXaXRob3V0IHN1cGVybmF0dXJhbCBpbnRlcnZlbnRpb24sIHRoZXJlZm9yZSwgd2UgY29uY2x1ZGUgdGhhdCBsaWZlIG11c3QgaGF2ZSBhbHdheXMgZXhpc3RlZC4gQWx0aG91Z2ggdGhlc2UgY29uY2x1c2lvbnMgY3V0IGFjcm9zcyB0aGUgYm91bmRhcmllcyBiZXR3ZWVuIHNjaWVuY2UsIHBoaWxvc29waHksIGFuZCByZWxpZ2lvbiwgd2UgYmVsaWV2ZSB0aGV5IGFyZSBncm91bmRlZCBpbiBnb29kIGV2aWRlbmNlLiBBbmQgbmV3IGRhdGEgdGhhdCBzdXBwb3J0IG1hbnkgYXNwZWN0cyBvZiBDb3NtaWMgQW5jZXN0cnkgYXJlIGNvbWluZyBpbiByYXBpZGx5LiBJbiB0aGUgZm9sbG93aW5nIHBhZ2VzIHdlIHdpbGwgZXhwbGFpbiBob3cgdGhlc2UgYW5kIG90aGVyIHJlY2VudCBkZXZlbG9wbWVudHMgc3VwcG9ydCBDb3NtaWMgQW5jZXN0cnk6DQoNCjE5OTU6IEFOU0VUIHNvbGQgdG8gQU9MLCB3aG8gIG5vdyBydW5zIGl0Lg0KMTk5NSAoTWFyKTogRGVwdC4gb2YgSW5kaWFuIE1lZGljaW5lIGFuZCBIb21lb3BhdGh5IGZvdW5kZWQuDQoxOTk1IChNYXIgMjQpOltSZXNlYXJjaF0gUmVtb3RlbHkgT3BlcmF0ZWQgVmVoaWNsZSBLQUlLTyByZWFjaGVkIHRoZSBkZWVwZXN0IGFyZWEgb2YgdGhlIE1hcmlhbmEgVHJlbmNoIGFuZCBtYWRlIHRoZSBkZWVwZXN0IGRpdmluZyByZWNvcmQgb2YgMTAsOTExIG0gKDM1LDc5NyBmdDsgNSw5NjYgZmF0aG9tcykgDQoxOTk1OiBwaG9uZSBjYWxsIGNvc3RpbmcgUnMuIDE2IHBlciBtaW4uDQoxOTk1OltHYW1pbmddIFZpcnR1YSBDb3AgMiBpcyBhIGxpZ2h0IGd1biBzaG9vdGVyIGFyY2FkZSBnYW1lLCByZWxlYXNlZCBpbiAxOTk1IGFuZCBkZXZlbG9wZWQgaW50ZXJuYWxseSBhdCBTZWdhIGJ5IHRoZWlyIEFNMiBzdHVkaW8gKFl1IFN1enVraSkuIEl0IHdhcyBwb3J0ZWQgdG8gdGhlIFNlZ2EgU2F0dXJuIGluIDE5OTYuIEl0IHdhcyByZWxlYXNlZCBvbiBQQyBpbiAxOTk3IGFuZCBTZWdhIERyZWFtY2FzdCBpbiAyMDAwLiBJdCB3YXMgbGF0ZXIgYnVuZGxlZCB3aXRoIFZpcnR1YSBDb3AgaW4gVmlydHVhIENvcDogRWxpdGUgRWRpdGlvbiBmb3IgUGxheVN0YXRpb24gMiBpbiAyMDAyLg0KMTk5NSAoQXByIDEpOltSZXNlYXJjaF0gUGlsbGFycyBvZiBDcmVhdGlvbiBpcyBhIHBob3RvZ3JhcGggdGFrZW4gYnkgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgb2YgZWxlcGhhbnQgdHJ1bmtzIG9mIGludGVyc3RlbGxhciBnYXMgYW5kIGR1c3QgaW4gdGhlIEVhZ2xlIE5lYnVsYSwgaW4gdGhlIFNlcnBlbnMgY29uc3RlbGxhdGlvbiwgc29tZSA2LDUwMOKAkzcsMDAwIGxpZ2h0LXllYXJzICgyLDAwMOKAkzIsMTAwIHBjOyA2MeKAkzY2IEVtKSBmcm9tIEVhcnRoLg0KMTk5NSAoQXByIDEpOiBJQUFJIGFuZCBOQUEgd2VyZSBtZXJnZWQgYnkgYW4gQWN0IG9mIFBhcmxpYW1lbnQgYW5kIHdhcyBuYW1lZCBhcyBBaXJwb3J0cyBBdXRob3JpdHkgb2YgSW5kaWEgKEFBSSkuIFRoaXMgbmV3IG9yZ2FuaXNhdGlvbiB3YXMgdG8gYmUgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nLCB1cGdyYWRpbmcsIG1haW50YWluaW5nIGFuZCBtYW5hZ2luZyBjaXZpbCBhdmlhdGlvbiBpbmZyYXN0cnVjdHVyZSBib3RoIG9uIHRoZSBncm91bmQgYW5kIGFpciBzcGFjZSBpbiB0aGUgY291bnRyeS4NCjE5OTUgKEFwciAyMSk6W0NyaW1lXVtJbmRpYV0gQmFibG9vIHBpY2tlZCB1cCBieSB0aGUgU2luZ2Fwb3JlIGFpcnBvcnQgcG9saWNlIGZvciB0cmF2ZWxsaW5nIG9uIGZha2UgcGFzc3BvcnQuIEhlIHdhcyBzdGF5aW5nIGluIER1YmFpLg0KMTk5NSAoU2VwIDMwKTpbQ3JpbWVdW0luZGlhXSBTaW5nYXBvcmUgZXh0cmFkaXRlcyBJbmRpYSdzICdtb3N0LXdhbnRlZCBpbnRlci1zdGF0ZSBjcmltaW5hbCcgQmFibG9vIFNyaXZhc3RhdmEgKDMzWU8pDQoxOTk1IChOb3YgMzApOiBPcGVyYXRpb24gRGVzZXJ0IFN0b3JtIChGaXJzdCBJcmFxIFdhcilvZmZpY2lhbGx5IGVuZGVkLg0KMTk5NSAoTWF5IDMxKTpbQm9va11bTWlsaXRhcnldIEFkbWlyYWwgV2lsbGlhbSBILiBNY1JhdmVuJ3MgU3BlYyBPcHM6IENhc2UgU3R1ZGllcyBpbiBTcGVjaWFsIE9wZXJhdGlvbnMgV2FyZmFyZTogVGhlb3J5IGFuZCBQcmFjdGljZTsgU2VhIFN0b3JpZXM6IE15IExpZmUgaW4gU3BlY2lhbCBPcGVyYXRpb25zICgyMDE5LCBNYXkgMSk7IFRoZSBIZXJvIENvZGU6IExlc3NvbnMgTGVhcm5lZCBmcm9tIExpdmVzIFdlbGwgTGl2ZWQgKDIwMjEsIEFwciAxMykNCjE5OTU6IERyLiBIYW5kZSBhZnRlciBncmFkdWF0aW5nIGZyb20gSUlUIEtoYXJhZ3B1ciBjb25jZXB0dWFsaXplZCBTRUxDTyBJbmRpYSBkdXJpbmcgaGlzIFBoRCBvbiBzdXN0YWluYWJsZSBlbmVyZ3kgYXQgdGhlIFVuaXZlcnNpdHkgb2YgTWFzc2FjaHVzZXR0cy4gRHVyaW5nIGEgZmllbGQgdmlzaXQgdG8gdGhlIERvbWluaWNhbiBSZXB1YmxpYywgaGUgd2FzIHN1cnByaXNlZCB0byBzZWUgdGhlIHBvb3IgdXNpbmcgc29sYXIgbGlnaHRzLg0KMTk5NTogVGhlIEdvdmVybm1lbnQgb2YgSW5kaWEgYW5kIHRoZSBHb3Zlcm5tZW50IG9mIERlbGhpIGpvaW50bHkgc2V0IHVwIGEgY29tcGFueSBjYWxsZWQgdGhlIERlbGhpIE1ldHJvIFJhaWwgQ29ycG9yYXRpb24gKERNUkMpIG9uIDMgTWF5IDE5OTUsIHdpdGggRHIuIEUuIFNyZWVkaGFyYW4gYXMgdGhlIG1hbmFnaW5nIGRpcmVjdG9yLg0KMTk5NTogSW50J2wgR2FuZGhpIFBlYWNlIFByaXplIGxhdW5jaGVkLg0KMTk5NTogU2FjaGluIFIuIFRlbmR1a2FyIGFuZCBBbmphbGkgVGVuZHVsa2FyIHdlZGRlZCB0b2dldGhlci4NCjE5OTU6IC5tcDMgaW52ZW50ZWQuDQoxOTk1OltHYW1pbmddIFdoaWxlIEZJRkEgOTUgZGlkIG5vdCBhZGQgbXVjaCBvdGhlciB0aGFuIHRoZSBhYmlsaXR5IHRvIHBsYXkgd2l0aCBjbHViIHRlYW1zLCBGSUZBIDk2IHB1c2hlZCB0aGUgYm91bmRhcmllcy4gRm9yIHRoZSBmaXJzdCB0aW1lIHdpdGggcmVhbCBwbGF5ZXIgbmFtZXMgYnkgb2J0YWluaW5nIHRoZSBGSUZQcm8gbGljZW5zZSwgdGhlIFBsYXlTdGF0aW9uLCBQQywgMzJYIGFuZCBTZWdhIFNhdHVybiB2ZXJzaW9ucyB1c2VkIEVBJ3MgIlZpcnR1YWwgU3RhZGl1bSIgZW5naW5lLCB3aXRoIDJEIHNwcml0ZSBwbGF5ZXJzIG1vdmluZyBhcm91bmQgYSByZWFsLXRpbWUgM0Qgc3RhZGl1bS4NCjE5OTUgKEp1bCAxOCk6W0Jvb2tdIEJhcmFjayBPYmFtYSdzIERyZWFtcyBmcm9tIE15IEZhdGhlcjogQSBTdG9yeSBvZiBSYWNlIGFuZCBJbmhlcml0YW5jZTsgRHJlYW1zIGZyb20gTXkgRmF0aGVyOiBBIFN0b3J5IG9mIFJhY2UgYW5kIEluaGVyaXRhbmNlICgyMDA2LCBPY3QgMTcpOyBPZiBUaGVlIEkgU2luZzogQSBMZXR0ZXIgdG8gTXkgRGF1Z2h0ZXJzICgyMDEwLCBOb3YgMTYpOyBBIFByb21pc2VkIExhbmQgKDIwMjAsIE5vdiAxNykNCjE5OTUoSmFuIDEpOltFbnZdIFRoZSBBZ3JlZW1lbnQgb24gQWdyaWN1bHR1cmUgKEFvQSkgaXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgb2YgdGhlIFdvcmxkIFRyYWRlIE9yZ2FuaXphdGlvbi4gSXQgd2FzIG5lZ290aWF0ZWQgZHVyaW5nIHRoZSBVcnVndWF5IFJvdW5kIG9mIHRoZSBHZW5lcmFsIEFncmVlbWVudCBvbiBUYXJpZmZzIGFuZCBUcmFkZSwgYW5kIGVudGVyZWQgaW50byBmb3JjZSB3aXRoIHRoZSBlc3RhYmxpc2htZW50IG9mIHRoZSBXVE8gb24gSmFudWFyeSAxLCAxOTk1LiBCbHVlLCBSZWQsIEFtYmVyIGFuZCBHcmVlbiBCb3ggb2Ygc3Vic2lkaWVzLg0KMTk5NTpbQ2luZW1hXSBOZWxzb24gTWFuZGVsYSwgaW4gaGlzIGZpcnN0IHRlcm0gYXMgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYSwgaW5pdGlhdGVzIGEgdW5pcXVlIHZlbnR1cmUgdG8gdW5pdGUgdGhlIEFwYXJ0aGVpZC10b3JuIGxhbmQ6IGVubGlzdCB0aGUgbmF0aW9uYWwgcnVnYnkgdGVhbSBvbiBhIG1pc3Npb24gdG8gd2luIHRoZSAxOTk1IFJ1Z2J5IFdvcmxkIEN1cC4gLSAgSW52aWN0dXMgKDIwMDkpDQoxOTk1OltDaW5lbWFdIEEgQ2xvY2t3b3JrIE9yYW5nZSgxOTcxKQ0KMTk5NTpbQ2luZW1hXSBEZWFkIEVuZCBEcml2ZS1JbigxOTg2KQ0KMTk5NTpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gU3BhY2Vnb2R6aWxsYSgxOTk0KQ0KMTk5NTpbQ2luZW1hXSBIZWFydGJlZXBzKDE5ODEpDQoxOTk1OltDaW5lbWFdIFRoZSBNdW1teSdzIEN1cnNlKDE5NDQpDQoxOTk1IChEZWMpOltTcGFjZV0gU29sYXIgYW5kIEhlbGlvc3BoZXJpYyBPYnNlcnZhdG9yeSAoU29ITykgd2FzIGxhdW5jaGVkIGluIERlY2VtYmVyIDE5OTUgYXMgYSBqb2ludCBtaXNzaW9uIGJldHdlZW4gdGhlIEV1cm9wZWFuIFNwYWNlIEFnZW5jeSAoRVNBKSBhbmQgTkFTQSwgU29ITyB3YXMgZGVzaWduZWQgdG8gb3JiaXQgdGhlIFN1biB0byBsZWFybiBhYm91dCB0aGUgc3RydWN0dXJlIG9mIHRoZSBzdGFy4oCZcyBpbnRlcmlvciBhbmQgaXRzIG91dGVyIGF0bW9zcGhlcmUsIGFzIHdlbGwgYXMgdG8gaW52ZXN0aWdhdGUgdGhlIGJlaGF2aW9yIG9mIHNvbGFyIHdpbmRzLiBJdCB3YXMgZXhwZWN0ZWQgdG8gY29tcGxldGUgaXRzIG1pc3Npb24gaW4gMTk5OC4gSW5zdGVhZCwgaXQgaXMgc3RpbGwgYWN0aXZlIHRvZGF5LCBhbmQgaXMgbm93IGxpa2VseSB0byBrZWVwIHdvcmtpbmcgdW50aWwgMjAyNSwgd2hlbiBpdCB3aWxsIGhhdmUgYmVlbiBpbiBzcGFjZSBmb3IgMzAgeWVhcnMuDQoxOTk1OltQaHlzaWNzXVtTcGFjZV1bUmVzZWFyY2hdIFByaW9yIHRvIDE5OTUsIHRoZW9yaXN0cyBiZWxpZXZlZCB0aGF0IHRoZXJlIHdlcmUgZml2ZSBjb25zaXN0ZW50IHZlcnNpb25zIG9mIHN1cGVyc3RyaW5nIHRoZW9yeSAodHlwZSBJLCB0eXBlIElJQSwgdHlwZSBJSUIsIGFuZCB0d28gdmVyc2lvbnMgb2YgaGV0ZXJvdGljIHN0cmluZyB0aGVvcnkpLiBUaGlzIHVuZGVyc3RhbmRpbmcgY2hhbmdlZCBpbiAxOTk1IHdoZW4gRWR3YXJkIFdpdHRlbiBzdWdnZXN0ZWQgdGhhdCB0aGUgZml2ZSB0aGVvcmllcyB3ZXJlIGp1c3Qgc3BlY2lhbCBsaW1pdGluZyBjYXNlcyBvZiBhbiBlbGV2ZW4tZGltZW5zaW9uYWwgdGhlb3J5IGNhbGxlZCBNLXRoZW9yeS4gV2l0dGVuJ3MgY29uamVjdHVyZSB3YXMgYmFzZWQgb24gdGhlIHdvcmsgb2YgYSBudW1iZXIgb2Ygb3RoZXIgcGh5c2ljaXN0cywgaW5jbHVkaW5nIEFzaG9rZSBTZW4sIENocmlzIEh1bGwsIFBhdWwgVG93bnNlbmQsIGFuZCBNaWNoYWVsIER1ZmYuIEhpcyBhbm5vdW5jZW1lbnQgbGVkIHRvIGEgZmx1cnJ5IG9mIHJlc2VhcmNoIGFjdGl2aXR5IG5vdyBrbm93biBhcyB0aGUgc2Vjb25kIHN1cGVyc3RyaW5nIHJldm9sdXRpb24uDQoxOTk1OltDcmltZV1bSW5kaWFdIE11cmRlciBvZiBNdW1iYWktYmFzZWQgYnVpbGRlciBQcmFkZWVwIEphaW4gYnkgQWJ1IFNhbGVtDQoxOTk1OiBGb3J0dW5lIEhvdGVscyBpbiBJbmRpYSBpcyBvd25lZCBieSBpdHMgcGFyZW50IGNvbXBhbnksIElUQyBMdGQuLCB3aGljaCBlc3RhYmxpc2hlZCBGb3J0dW5lIEhvdGVscyBpbiAxOTk1IGFzIGEgc3Vic2lkaWFyeSB0byBwcm92aWRlIG1pZC1tYXJrZXQgdG8gdXBzY2FsZSBob3NwaXRhbGl0eSBzZXJ2aWNlcy4gSG93ZXZlciwgYSBzZXBhcmF0ZSBncm91cCwgRm9ydHVuZSBHcm91cCBvZiBIb3RlbHMsIGJhc2VkIGluIHRoZSBVbml0ZWQgQXJhYiBFbWlyYXRlcyAoVUFFKSBhbmQgZm91bmRlZCBieSBQcmF2ZWVuIFNoZXR0eSwgYWxzbyBvcGVyYXRlcyBhIGRpZmZlcmVudCBzZXQgb2YgaG90ZWxzIGluIHRoYXQgcmVnaW9uLg0KMTk5NTpbVUtdIENhbWlsbGEgaXMgUXVlZW4gb2YgdGhlIFVuaXRlZCBLaW5nZG9tIGFuZCAxNCBvdGhlciBDb21tb253ZWFsdGggcmVhbG1zIGFzIHRoZSB3aWZlIG9mIEtpbmcgQ2hhcmxlcyBJSUkuIENhbWlsbGEgd2FzIHJhaXNlZCBpbiBFYXN0IFN1c3NleCBhbmQgU291dGggS2Vuc2luZ3RvbiBpbiBFbmdsYW5kIGFuZCBlZHVjYXRlZCBpbiBFbmdsYW5kLCBTd2l0emVybGFuZCBhbmQgRnJhbmNlLiBJbiAxOTczLCBzaGUgbWFycmllZCBCcml0aXNoIEFybXkgb2ZmaWNlciBBbmRyZXcgUGFya2VyIEJvd2xlczsgdGhleSBkaXZvcmNlZCBpbiAxOTk1Lg0KDQoxOTk2OltHZW9Qb2xpdGljc11bQnVzaW5lc3NdIE1vbmdvbGlhIHdhcyBncmFudGVkIG9ic2VydmVyIHN0YXR1cyB0byBUUkFDRUNBLg0KMTk5NiAoNyBBdWd1c3QpOltSZXNlYXJjaF1bU3BhY2VdIE5BU0EgYW5ub3VuY2VkIGZvc3NpbGl6ZWQgZXZpZGVuY2Ugb2YgYW5jaWVudCBsaWZlIGluIG1ldGVvcml0ZSBBTEggODQwMDEgZnJvbSBNYXJzLg0KMTk5NiAoT2N0IDI3KTpbUmVzZWFyY2hdW1NwYWNlXSBnZW5ldGljaXN0cyBzaG93ZWQgZXZpZGVuY2UgdGhhdCBtYW55IGdlbmVzIGFyZSBtdWNoIG9sZGVyIHRoYW4gdGhlIGZvc3NpbCByZWNvcmQgd291bGQgaW5kaWNhdGUuIFN1YnNlcXVlbnQgc3R1ZGllcyBoYXZlIHN0cmVuZ3RoZW5lZCB0aGlzIGZpbmRpbmcuDQoxOTk2OltCdXNpbmVzc11bR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2hlbiB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4gc2lnbmVkIHRoZSBUcmVhdHkgb24gRGVlcGVuaW5nIE1pbGl0YXJ5IFRydXN0IGluIEJvcmRlciBSZWdpb25zIGluIFNoYW5naGFpLiBPbiAyNCBBcHJpbCAxOTk3IHRoZSBzYW1lIGNvdW50cmllcyBzaWduZWQgdGhlIFRyZWF0eSBvbiBSZWR1Y3Rpb24gb2YgTWlsaXRhcnkgRm9yY2VzIGluIEJvcmRlciBSZWdpb25zIGluIGEgbWVldGluZyBpbiBNb3Njb3csIFJ1c3NpYS4gT24gMjAgTWF5IDE5OTcgUnVzc2lhbiBQcmVzaWRlbnQgQm9yaXMgWWVsdHNpbiBhbmQgQ2hpbmVzZSBQcmVzaWRlbnQgSmlhbmcgWmVtaW4gc2lnbmVkIGEgZGVjbGFyYXRpb24gb24gYSAibXVsdGlwb2xhciB3b3JsZCIuDQoxOTk2OiAxOTk2IE1vdW50IEV2ZXJlc3QgRGlzYXN0ZXIsIGluIHdoaWNoIGVpZ2h0IHBlb3BsZSBkaWVkIHdoaWxlIG9uIGFuIGV4cGVkaXRpb24gdG8gc2NhbGUgdGhlIGluZmFtb3VzIHN1bW1pdC4gT25lIG9mIHRoZSBjbGltYmVycyB3aG8gbG9zdCBoaXMgbGlmZSB3YXMgQW5keSBIYXJyaXMsIHBsYXllZCBpbiBFdmVyZXN0IGJ5IE1hcnRpbiBIZW5kZXJzb24uIEhhcnJpcyB3YXMgb25lIG9mIHRoZSBndWlkZXMgZm9yIHRoZSBBZHZlbnR1cmUgQ29uc3VsdGFudHMsIGFsb25nIHdpdGggUm9iIEhhbGwgYW5kIE1pa2UgR3Jvb20uIEluIHRoZSBmaWxtLCBoZSBhcHBlYXJzIHRvIGRpZSB3aGlsZSB3aXRoIEhhbGwsIGZhbGxpbmcgb2ZmIGEgY2xpZmYgYWZ0ZXIgYSBoYWxsdWNpbmF0aW9uLiBCdXQgUm9iIEhhbGwgbmV2ZXIgcmVwb3J0ZWQgdGhpcywgYW5kIHNpbmNlIGhlIGRpZWQgc2hvcnRseSB0aGVyZWFmdGVyLCB0aGVyZSBpcyBubyB3YXkgdG8gY29uZmlybSB0aGUgY2lyY3Vtc3RhbmNlcyBzdXJyb3VuZGluZyBIYXJyaXMnIGRlYXRoLg0KMTk5NjpbQ29tcHV0aW5nXVtRdWFudHVtXSAgTG92IEdyb3ZlciBkZXZpc2VkIGFuIGFsZ29yaXRobSAoR3JvdmVyJ3MgYWxnb3JpdGhtKSB0aGF0IGNvdWxkIHNlYXJjaCBhbiB1bnNvcnRlZCBkYXRhYmFzZSBpbiBzcXVhcmUgcm9vdCB0aW1lIG9uIGEgcXVhbnR1bSBjb21wdXRlciwgd2hpY2ggd291bGQgb3V0cGVyZm9ybSBhbnkgY2xhc3NpY2FsIGFsZ29yaXRobS4NCjE5OTY6W1VTXSBCYXJhY2sgT2JhbWEgd2FzIGVsZWN0ZWQgdG8gdGhlIElsbGlub2lzIFNlbmF0ZSwgc3VjY2VlZGluZyBEZW1vY3JhdGljIFN0YXRlIFNlbmF0b3IgQWxpY2UgUGFsbWVyIGZyb20gSWxsaW5vaXMncyAxM3RoIERpc3RyaWN0LCB3aGljaCwgYXQgdGhhdCB0aW1lLCBzcGFubmVkIENoaWNhZ28gU291dGggU2lkZSBuZWlnaGJvcmhvb2RzIGZyb20gSHlkZSBQYXJr4oCTS2Vud29vZCBzb3V0aCB0byBTb3V0aCBTaG9yZSBhbmQgd2VzdCB0byBDaGljYWdvIExhd24uDQoxOTk2OltVS10gQ2hhcmxlcyBJSUkgYW5kIERpYW5hIGdldHMgZGl2b3JjZWQuDQoxOTk2IChKYW4gMjUpOltCb29rXSBQZXRlciBMeW5jaCAmIEpvaG4gUm90aGNoaWxkJ3MgTGVhcm4gdG8gRWFybjogQSBCZWdpbm5lcidzIEd1aWRlIHRvIHRoZSBCYXNpY3Mgb2YgSW52ZXN0aW5nIGFuZCBCdXNpbmVzcy4NCjE5OTYgKEphbik6W0NyaW1lXVtJbmRpYV0gQW5lZXMgSWJyYWhpbSBhcnJlc3RlZCBpbiBCYWhyYWluLCBzaGlmdGVkIHRvIER1YmFpIGFsbGVnZWRseSBvbiB0aGUgaW50ZXJ2ZW50aW9uIG9mIHNvbWUgb2YgRHViYWkncyBydWxpbmcgbm90YWJsZXMsIGFuZCB3YXMgdGhlbiBhbGxvd2VkIHRvIHNsaXAgYXdheSB0byBLYXJhY2hpLCBQYWtpc3Rhbi4NCjE5OTY6IE5hdGlvbmFsIEFlcm9zcGFjZSBMYWJvcmF0b3JpZXMsIEluZGlhIGluZGlnZW5vdXNseSBidWlsdCBGTE9TT0xWRVIsIEluZGlhJ3MgZmlyc3Qgc3VwZXJjb21wdXRlci4gSXQgd2FzIHJlcGxpY2F0ZWQgYW5kIGluc3RhbGxlZCBhdCBJQ0FEIE1vc2NvdyBpbiAxOTkxIHVuZGVyIFJ1c3NpYW4gY29sbGFib3JhdGlvbi4NCjE5OTY6IEluZGlhL1Bha2lzdGFuL1NyaSBMYW5rYSAxOTk2Lg0KMTk5NjpbQ29tcHV0aW5nXVt3d3ddIE1hcmlvIDY0IGdhbWUgcmFuIDEwMCBtaWxsaW9uIGNhbGN1bGF0aW9ucyBwZXIgc2Vjb25kLCA1NDAgbWlsbGlvbiAoSGFsZi1MaWZlKSBpbiAxOTk4LCBNaW5lY3JhZnQgKDIwMTEpIHJ1bm5pbmcgMTAwIGJpbGxpb24gY2FsY3VsYXRpb25zLCBDeWJlcnB1bmsgMjA3NyAobW9zdCByZWFsaXN0aWMgdmlkZW8gZ2FtZSAyMDI0KSwgeW91IG5lZWQgYSBncmFwaGljcyBjYXJkIHRoYXQgY2FuIHBlcmZvcm0gYXJvdW5kIDM2IHRyaWxsaW9uIGNhbGMgcGVyIHNlY29uZC4NCjE5OTY6IFByb2YgTWFsY29sbSBIZWF0aC4gUHJvZmVzc29yIG9mIEdyZWVrIExhbmd1YWdlIGFuZCBMaXRlcmF0dXJlIEBsZWVkcy5hYy51aywgdHJhbnNsYXRlZCBBcmlzdG90bGUncyBQb2V0aWNzLg0KMTk5NjogVGhlIDU2SyBtb2RlbSB3YXMgaW52ZW50ZWQgYnkgRHIuIEJyZW50IFRvd25zaGVuZA0KMTk5NiAoRmViIDEzKTogTmVwYWxlc2UgQ2l2aWwgV2FyIHN0YXJ0ZWQuIFRoZSBNYW9pc3QgUmViZWxsaW9uIChsYWJlbGxlZCB0aGUgUGVvcGxlJ3MgV2FyIGJ5IHRoZW4gQ1BOKE1hb2lzdCkpIHdhcyBhbiBhcm1lZCBjb25mbGljdCBhZ2FpbnN0IEdvdmVybm1lbnQgb2YgTmVwYWwgKHRoZW4gSE1HIG9mIE5lcGFsKSBmb3VnaHQgZnJvbSAxOTk2IHRvIDIwMDYuIFRoZSByZWJlbGxpb24gd2FzIGxhdW5jaGVkIGJ5IHRoZSBDb21tdW5pc3QgUGFydHkgb2YgTmVwYWwgKE1hb2lzdCkgb24gMTMgRmVicnVhcnkgMTk5NiB3aXRoIHRoZSBtYWluIGFpbSBvZiBvdmVydGhyb3dpbmcgdGhlIE5lcGFsZXNlIG1vbmFyY2h5IGFuZCBlc3RhYmxpc2hpbmcgYSAnUGVvcGxlJ3MgUmVwdWJsaWMnLiBJdCBlbmRlZCB3aXRoIHRoZSBDb21wcmVoZW5zaXZlIFBlYWNlIEFjY29yZCBzaWduZWQgb24gMjEgTm92ZW1iZXIgMjAwNi4NCjE5OTYgKE1hciAxKTogW0dlb1BvbGl0aWNzXSBUaGUgQXNpYeKAk0V1cm9wZSBNZWV0aW5nIChBU0VNKSBpcyBhbiBBc2lhbuKAk0V1cm9wZWFuIHBvbGl0aWNhbCBkaWFsb2d1ZSBmb3J1bSB0byBlbmhhbmNlIHJlbGF0aW9ucyBhbmQgdmFyaW91cyBmb3JtcyBvZiBjb29wZXJhdGlvbiBiZXR3ZWVuIGl0cyBwYXJ0bmVycy4gSXQgd2FzIG9mZmljaWFsbHkgZXN0YWJsaXNoZWQgYXQgdGhlIDFzdCBBU0VNIFN1bW1pdCAoQVNFTTEpIGluIEJhbmdrb2ssIFRoYWlsYW5kLCBieSB0aGUgdGhlbiAxNSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aGUgRXVyb3BlYW4gQ29tbWlzc2lvbiwgdGhlIHRoZW4gNyBNZW1iZXIgU3RhdGVzIG9mIHRoZSBBc3NvY2lhdGlvbiBvZiBTb3V0aGVhc3QgQXNpYW4gTmF0aW9ucyAoQVNFQU4pLCBhbmQgdGhlIGluZGl2aWR1YWwgY291bnRyaWVzIG9mIENoaW5hLCBKYXBhbiwgYW5kIFNvdXRoIEtvcmVhLiBBIHNlcmllcyBvZiBlbmxhcmdlbWVudHMgc2F3IGFkZGl0aW9uYWwgRVUgTWVtYmVyIFN0YXRlcyBqb2luIGFzIHdlbGwgYXMgSW5kaWEsIE1vbmdvbGlhLCBQYWtpc3RhbiBhbmQgdGhlIEFTRUFOIFNlY3JldGFyaWF0IGluIDIwMDgsIEF1c3RyYWxpYSwgTmV3IFplYWxhbmQgYW5kIFJ1c3NpYSBpbiAyMDEwLCBCYW5nbGFkZXNoLCBOb3J3YXksIGFuZCBTd2l0emVybGFuZCBpbiAyMDEyLCBhcyB3ZWxsIGFzIENyb2F0aWEsIGFuZCBLYXpha2hzdGFuIGluIDIwMTQuDQoxOTk2IChBcHIgMjYpOiBbR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2l0aCB0aGUgc2lnbmluZyBvZiB0aGUgVHJlYXR5IG9uIERlZXBlbmluZyBNaWxpdGFyeSBUcnVzdCBpbiBCb3JkZXIgUmVnaW9ucyBpbiBTaGFuZ2hhaSBieSB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4uIExhdGVyIG9uIEp1biAxNSwgMjAwMSBpdCBnb3QgcmVuYW1lZCBhcyBTaGFuZ2hhaSBDb29wZXJhdGlvbiBPcmdhbmlzYXRpb24gKFNDTykgb3IgU2hhbmdoYWkgUGFjdCANCjE5OTYgKE1heSAxNik6IEF0YWwgQmloYXJpIFZhanBheWVlIGJlY29tZXMgUE0gb2YgSW5kaWEgZm9yIHRoZSB2ZXJ5IGZpcnN0IHRpbWUgZm9yIDE2IGRheXMuDQoxOTk2IChKdW4gMSk6IEF0YWwgQmloYXJpIFZhanBheWVlIHJlc2lnbnMuIEhEIERldmUgR293ZGEgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NiAoQXVnIDE0KTpbcmVzZWFyY2hdW2V4dHJlbWVdIEthcmVuIEVsaXphYmV0aCBXZXR0ZXJoYWhuIChPY3RvYmVyIDE2LCAxOTQ4IOKAkyBKdW5lIDgsIDE5OTcpLCBhbHNvIGtub3duIGFzIEthcmVuIFdldHRlcmhhaG4gSmVubmV0dGUsIHdhcyBhbiBBbWVyaWNhbiBwcm9mZXNzb3Igb2YgY2hlbWlzdHJ5IGF0IERhcnRtb3V0aCBDb2xsZWdlLCBOZXcgSGFtcHNoaXJlLCB3aG8gc3BlY2lhbGl6ZWQgaW4gdG94aWMgbWV0YWwgZXhwb3N1cmUuIFNoZSBkaWVkIG9mIG1lcmN1cnkgcG9pc29uaW5nIGF0IHRoZSBhZ2Ugb2YgNDggZHVlIHRvIGFjY2lkZW50YWwgZXhwb3N1cmUgdG8gdGhlIGV4dHJlbWVseSB0b3hpYyBvcmdhbmljIG1lcmN1cnkgY29tcG91bmQgZGltZXRoeWxtZXJjdXJ5IChIZyhDSDMpMikuIFByb3RlY3RpdmUgZ2xvdmVzIGluIHVzZSBhdCB0aGUgdGltZSBvZiB0aGUgaW5jaWRlbnQgcHJvdmlkZWQgaW5zdWZmaWNpZW50IHByb3RlY3Rpb24sIGFuZCBleHBvc3VyZSB0byBvbmx5IGEgc2luZ2xlIGRyb3Agb3IgdHdvIG9mIHRoZSBkaW1ldGh5bG1lcmN1cnkgYWJzb3JiZWQgdGhyb3VnaCB0aGUgZ2xvdmVzIHByb3ZlZCB0byBiZSBmYXRhbCBhZnRlciBsZXNzIHRoYW4gYSB5ZWFyLiBUZXN0cyBsYXRlciByZXZlYWxlZCB0aGF0IGRpbWV0aHlsbWVyY3VyeSBjYW4sIGluIGZhY3QsIHJhcGlkbHkgcGVybWVhdGUgc2V2ZXJhbCBraW5kcyBvZiBsYXRleCBnbG92ZXMgYW5kIGVudGVyIHRoZSBza2luIHdpdGhpbiBhYm91dCAxNSBzZWNvbmRzLiBIZXIgZXhwb3N1cmUgd2FzIGxhdGVyIGNvbmZpcm1lZCBieSBoYWlyIGFuYWx5c2lzLCB3aGljaCBzaG93ZWQgYSBkcmFtYXRpYyBqdW1wIGluIG1lcmN1cnkgbGV2ZWxzIDE3IGRheXMgYWZ0ZXIgdGhlIGluaXRpYWwgYWNjaWRlbnQsIHBlYWtpbmcgYXQgMzkgZGF5cywgZm9sbG93ZWQgYnkgYSBncmFkdWFsIGRlY2xpbmUuIEFwcHJveGltYXRlbHkgdGhyZWUgbW9udGhzIGFmdGVyIHRoZSBpbml0aWFsIGFjY2lkZW50IFdldHRlcmhhaG4gYmVnYW4gZXhwZXJpZW5jaW5nIGJyaWVmIGVwaXNvZGVzIG9mIGFiZG9taW5hbCBkaXNjb21mb3J0IGFuZCBub3RpY2VkIHNpZ25pZmljYW50IHdlaWdodCBsb3NzLiBUaGUgbW9yZSBkaXN0aW5jdGl2ZSBuZXVyb2xvZ2ljYWwgc3ltcHRvbXMgb2YgbWVyY3VyeSBwb2lzb25pbmcsIGluY2x1ZGluZyBsb3NzIG9mIGJhbGFuY2UgYW5kIHNsdXJyZWQgc3BlZWNoLCBhcHBlYXJlZCBpbiBKYW51YXJ5IDE5OTcsIGZpdmUgbW9udGhzIGFmdGVyIHRoZSBhY2NpZGVudC4gSGVyIGJsb29kIGFuZCB1cmluYXJ5IG1lcmN1cnkgY29udGVudCB3ZXJlIG1lYXN1cmVkIGF0IDQsMDAwIM68Zy9MIGFuZCAyMzQgzrxnL0wsIHJlc3BlY3RpdmVseeKAlGJvdGggbWFueSB0aW1lcyB0aGVpciByZXNwZWN0aXZlIHRveGljIHRocmVzaG9sZHMgb2YgMjAwIM68Zy9MIGFuZCA1MCDOvGcvTCAoYmxvb2QgYW5kIHVyaW5lIHJlZmVyZW5jZSByYW5nZXMgYXJlIDEgdG8gOCDOvGcvTCBhbmQgMSB0byA1IM68Zy9MKS4NCjE5OTYgKERlYyA0IDA2OjU4OjA3IFVUQyk6W1NwYWNlXVtNYXJzXVtFYXJ0aF0gTGF1bmNoIG9mIE1hcnMgUGF0aGZpbmRlciBvbiBEZWx0YSBJSSA3OTI1ICgjRDI0MCkNCnJvY2tldCBmcm9tIENhcGUgQ2FuYXZlcmFsIFNMQy0xNy4gVG8gcHJvdmUgdGhhdCB0aGUgZGV2ZWxvcG1lbnQgb2YgImZhc3RlciwgYmV0dGVyIGFuZCBjaGVhcGVyIiBzcGFjZWNyYWZ0IHdhcyBwb3NzaWJsZSAod2l0aCB0aHJlZSB5ZWFycyBmb3IgZGV2ZWxvcG1lbnQgYW5kIGEgY29zdCB1bmRlciAkMTUwIG1pbGxpb24gZm9yIHRoZSBsYW5kZXIsIGFuZCAkMjUgbWlsbGlvbiBmb3IgdGhlIHJvdmVyKS4gVG8gc2hvdyB0aGF0IGl0IHdhcyBwb3NzaWJsZSB0byBzZW5kIGEgbG9hZCBvZiBzY2llbnRpZmljIGluc3RydW1lbnRzIHRvIGFub3RoZXIgcGxhbmV0IHdpdGggYSBzaW1wbGUgc3lzdGVtIGFuZCBhdCBvbmUtZmlmdGVlbnRoIHRoZSBjb3N0IG9mIGEgVmlraW5nIG1pc3Npb24uIChGb3IgY29tcGFyaXNvbiwgdGhlIFZpa2luZyBtaXNzaW9ucyBjb3N0ICQ5MzUgbWlsbGlvbiBpbiAxOTc0IG9yICQzLjUgYmlsbGlvbiBpbiAxOTk3IGRvbGxhcnMuKS4gVG8gZGVtb25zdHJhdGUgTkFTQSdzIGNvbW1pdG1lbnQgdG8gbG93LWNvc3QgcGxhbmV0YXJ5IGV4cGxvcmF0aW9uIGJ5IGZpbmlzaGluZyB0aGUgbWlzc2lvbiB3aXRoIGEgdG90YWwgZXhwZW5kaXR1cmUgb2YgJDI4MCBtaWxsaW9uLCBpbmNsdWRpbmcgdGhlIGxhdW5jaCB2ZWhpY2xlIGFuZCBtaXNzaW9uIG9wZXJhdGlvbnMuDQoxOTk2OiBhIHJhaWQgb24gdGhlIEFuaW1hbCBIdXNiYW5kcnkgZGVwYXJ0bWVudOKAmXMgb2ZmaWNlcyBpbiBDaGFpYmFzYSwgQmloYXIgdW5mb2xkZWQgdGhlIFJzLjk1MCBjcm9yZSBmb2RkZXIgc2NhbSwgaW4gd2hpY2ggdGhlIEJpaGFyIGNoaWVmIG1pbmlzdGVyIExhbHUgUHJhc2FkIFlhZGF2IGNhdGNoIHVwIGluIGEgbGlmZWxvbmcgdHVzc2xlIHdpdGggdGhlIENCSS4NCjE5OTY6W0Jvb2tdW0FkdmVudHVyZV0gSm9uIEtyYWthdWVyJ3MgSW50byB0aGUgV2lsZC4NCjE5OTY6W0NvbXB1dGluZ10gVGhlIFZpZGVvTEFOIHNvZnR3YXJlIG9yaWdpbmF0ZWQgYXMgYSBGcmVuY2ggYWNhZGVtaWMgcHJvamVjdC4gVkxDIHVzZWQgdG8gc3RhbmQgZm9yICJWaWRlb0xBTiBDbGllbnQiIHdoZW4gVkxDIHdhcyBhIGNsaWVudCBvZiB0aGUgVmlkZW9MQU4gcHJvamVjdCwgb2ZmaWNpYWxseSByZWxlYXNlZCB1bmRlciBHTlUgR1BMIG9uIDIwMDEgKEZlYiAxKS4NCjE5OTY6W01lbWVdIERhbmNpbmcgQmFieSBTY3JlZW5zYXZlcg0KMTk5NjpbU3BhY2VYXSBUaGUgZW50aXJlIHByb2Nlc3MgZm9yIHRoZSBKYW1lcyBXZWJiIFNwYWNlIFRlbGVzY29wZSAoSldTVCkgZnJvbSBpbml0aWFsIGNvbmNlcHQgdG8gbGF1bmNoIHNwYW5uZWQgYXBwcm94aW1hdGVseSAyNSB5ZWFycywgd2l0aCBpbml0aWFsIGRlc2lnbnMgYmVnaW5uaW5nIGluIDE5OTYgYW5kIHRoZSB0ZWxlc2NvcGUgbGF1bmNoaW5nIGluIDIwMjEsIGJ1dCBhIHNpZ25pZmljYW50IHBvcnRpb24gb2YgdGhpcyB3YXMgc3BlbnQgaW4gZGVzaWduLCB0ZXN0aW5nLCBhbmQgb3ZlcmNvbWluZyBtYWpvciByZWRlc2lnbnMgYW5kIGRlbGF5cywgbm90IGp1c3QgYXNzZW1ibHkuIA0KMTk5NiAoRmViIDI4KTpbRGVsaGldIEluZGlyYXB1cmFtLCBHaGF6aWFiYWQgd2FzIGVzdGQgd2hlbiBpdHMgZm91bmRhdGlvbiBzdG9uZSAoS2FsYSBQYXRoYXIpIHdhcyBpbmF1Z3VyYXRlZCBieSBTaCBNb3RpbGFsIFZvcmEsIHRoZW4gR292ZXJub3Igb2YgVVAuICgyMDIxKSBJJ3B1cmFtIEV4dG4gdG8gYmUgYnVpbHQgb24gMTIgYWNyZXMgb25seSwgY29uY2VpdmVkIGluIDIwMDQuDQoxOTk2OltCb29rXVtNaWxpdGFyeV1bQ3VsdHVyZV1bRVVdW1VTQV0gR2VvcmdlIFIuUi4gTWFydGluIGlzIHRoZSBBbWVyaWNhbiBhdXRob3Igb2YgdGhlIGVwaWMgZmFudGFzeSBib29rIHNlcmllcyBBIFNvbmcgb2YgSWNlIGFuZCBGaXJlLCB3aGljaCBiZWdhbiB3aXRoIEEgR2FtZSBvZiBUaHJvbmVzICgxOTk2KSBhbmQgc2VydmVkIGFzIHRoZSBiYXNpcyBmb3IgSEJPJ3MgbWFzc2l2ZWx5IHBvcHVsYXIgR2FtZSBvZiBUaHJvbmVzIFRWIHNlcmllcy4gQSBTb25nIG9mIEljZSBhbmQgRmlyZSBpcyBhIHNlcmllcyBvZiBoaWdoIGZhbnRhc3kgbm92ZWxzIGJ5IHRoZSBBbWVyaWNhbiBhdXRob3IgR2VvcmdlIFIuIFIuIE1hcnRpbi4gTWFydGluIGJlZ2FuIHdyaXRpbmcgdGhlIGZpcnN0IHZvbHVtZSwgQSBHYW1lIG9mIFRocm9uZXMsIGluIDE5OTEsIGFuZCBwdWJsaXNoZWQgaXQgaW4gMTk5Ni4gTWFydGluLCB3aG8gb3JpZ2luYWxseSBlbnZpc2lvbmVkIHRoZSBzZXJpZXMgYXMgYSB0cmlsb2d5LCBoYXMgcmVsZWFzZWQgZml2ZSBvdXQgb2Ygc2V2ZW4gcGxhbm5lZCB2b2x1bWVzLiANCg0KW0dlbmVyYXRpb25dIE1pbGxlbm5pYWwgZ2VuZXJhdGlvbiAoMTk4MeKAkzE5OTYpIGVuZHM7IGxhc3RlZCBmb3IgMTUgeWVhcnMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICA1MCB5ZWFycyBvZiBJbmRlcGVuZGVudCBJbmRpYSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSANCg0KW0dlbmVyYXRpb25dIEdlbiBaICgxOTk34oCTMjAxMikgc3RhcnRzOyBhbmQgZXhpc3RzIGZvciBuZXh0IDE1IHllYXJzLg0KDQoxOTk3OltXaG9dW1Jlc2VhcmNoXVtDb21wdXRpbmddW1RlY2hdW0N1bHR1cmVdIFZMQyBNZWRpYSBQbGF5ZXIgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBzdHVkZW50cyBhdCB0aGUgRnJlbmNoIGVuZ2luZWVyaW5nIHNjaG9vbCDDiWNvbGUgQ2VudHJhbGUgUGFyaXMgaW4gMTk5Ni4gV2hpbGUgaXQgc3RhcnRlZCBhcyBhbiBhY2FkZW1pYyBwcm9qZWN0IChWaWRlb0xBTikgdG8gc3RyZWFtIHZpZGVvIG92ZXIgYSBjYW1wdXMgbmV0d29yaywgaXRzIGRldmVsb3BtZW50IGFuZCBtb2Rlcm5pemF0aW9uIHdlcmUgbGF0ZXIgbGVkIGJ5IEplYW4tQmFwdGlzdGUgS2VtcGYuIA0KMTk5NzpbUmVzZWFyY2hdW1NwYWNlXSAyOSBKdWx5IDE5OTc6IGEgTkFTQSBzY2llbnRpc3QgYW5ub3VuY2VkIGV2aWRlbmNlIG9mIGZvc3NpbGl6ZWQgbWljcm9zY29waWMgbGlmZSBmb3JtcyBpbiBhIG1ldGVvcml0ZSBub3QgZnJvbSBhbnkga25vd24gcGxhbmV0Lg0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgR3JvdXAgb2YgRWlnaHQgKEc4KSB3YXMgYW4gaW50ZXJnb3Zlcm5tZW50YWwgcG9saXRpY2FsIGZvcnVtIGZyb20gMTk5NyB0byAyMDE0LCBmb3JtZWQgYnkgaW5jb3Jwb3JhdGluZyBSdXNzaWEgaW50byB0aGUgRzcuIFRoZSBHOCBiZWNhbWUgdGhlIEc3IGFnYWluIGFmdGVyIFJ1c3NpYSB3YXMgZXhwZWxsZWQgaW4gMjAxNCBhZnRlciB0aGUgUnVzc2lhbiBhbm5leGF0aW9uIG9mIENyaW1lYS4gRm91bmRlZDogMTk5NywgRGVudmVyLCBDb2xvcmFkbywgVW5pdGVkIFN0YXRlcw0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBGb3VuZGVkOiA2IEp1bmUgMTk5NywgVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiAoQklNU1RFQykgaXMgYW4gaW50ZXJuYXRpb25hbCBvcmdhbml6YXRpb24gb2Ygc2V2ZW4gU291dGggQXNpYW4gYW5kIFNvdXRoZWFzdCBBc2lhbiBuYXRpb25zLCBob3VzaW5nIDEuNzMgYmlsbGlvbiBwZW9wbGUgYW5kIGhhdmluZyBhIGNvbWJpbmVkIGdyb3NzIGRvbWVzdGljIHByb2R1Y3Qgb2YgVVMkNS4yIHRyaWxsaW9uLg0KMTk5NzpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gYnVpbHQgdGhlIGZpcnN0IGV4cGVyaW1lbnRhbCBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCBjb3VsZCBtYW5pcHVsYXRlIDcgcXViaXRzIHVzaW5nIG51Y2xlYXIgbWFnbmV0aWMgcmVzb25hbmNlIChOTVIpIHRlY2huaXF1ZXMuDQoxOTk3IChKdWwgNCk6W1NwYWNlXVtNYXJzXSBUaGUgTWFycyBQYXRoZmluZGVyIGVuZHVyZWQgYSAzMC1zZWNvbmQgY29tbXVuaWNhdGlvbnMgYmxhY2tvdXQgYXMgaXQgZW50ZXJlZCBNYXJzJyBhdG1vc3BoZXJlLiBJdCBsYW5kZWQgYXQgQXJlcyBWYWxsaXMsIENocnlzZSBQbGFuaXRpYSwgTWFycyAxOcKwN+KAsjQ44oCzTiAzM8KwMTPigLIxMuKAs1cuIE1hcnMgUGF0aGZpbmRlciAoTUVTVVIgUGF0aGZpbmRlcikgaXMgYW4gQW1lcmljYW4gcm9ib3RpYyBzcGFjZWNyYWZ0IHRoYXQgbGFuZGVkIGEgYmFzZSBzdGF0aW9uIHdpdGggYSByb3ZpbmcgcHJvYmUgb24gTWFycyBpbiAxOTk3LiBJdCBjb25zaXN0ZWQgb2YgYSBsYW5kZXIsIHJlbmFtZWQgdGhlIENhcmwgU2FnYW4gTWVtb3JpYWwgU3RhdGlvbiwgYW5kIGEgbGlnaHR3ZWlnaHQsIDEwLjYga2cgKDIzIGxiKSB3aGVlbGVkIHJvYm90aWMgTWFycyByb3ZlciBuYW1lZCBTb2pvdXJuZXIsIHRoZSBmaXJzdCByb3ZlciB0byBvcGVyYXRlIG91dHNpZGUgdGhlIEVhcnRo4oCTTW9vbiBzeXN0ZW0uDQoxOTk3OltCb29rXSBNaXRjaCBBbGJvbSdzIFR1ZXNkYXlzIHdpdGggTW9ycmllLg0KMTk5NzpbR2FtaW5nXSBHcmFuZCBUaGVmdCBBdXRvIChHVEEpIHJlbGVhc2VkIGJ5IERNQSBEZXNpZ24gKGxhdGVyIFJvY2tzdGFyIE5vcnRoKSBmb3IgUFMxLCBXaW5kb3dzIGFuZCBNUy1ET1M7IEdyYW5kIFRoZWZ0IEF1dG86IFZpY2UgQ2l0eSAoMjAwMik7IEdyYW5kIFRoZWZ0IEF1dG86IFNhbiBBbmRyZWFzICgyMDA0KTsgR3JhbmQgVGhlZnQgQXV0byBJViAoMjAwOCk7IEdyYW5kIFRoZWZ0IEF1dG8gViAoMjAxMyk7IEdyYW5kIFRoZWZ0IEF1dG86IFRoZSBUcmlsb2d5IOKAkyBUaGUgRGVmaW5pdGl2ZSBFZGl0aW9uICgyMDIxKQ0KMTk5NzogVGVra2VuIDMgd2FzIGRlc2lnbmVkIGJ5IEthdHN1aGlybyBIYXJhZGEgKE9zYWthLCBPc2FrYSBQcmVmZWN0dXJlLCBKYXBhbikgb2YgQmFuZGFpIE5hbWNvIEVudGVydGFpbm1lbnQgaGVhZHF1YXJ0ZXJlZCBhdCDFjHRhLCBUb2t5by4NCjE5OTcgKE1hciA2KTogW0dlb1BvbGl0aWNzXSBUaGUgSW5kaWFuIE9jZWFuIFJpbSBBc3NvY2lhdGlvbiwgZm9ybWVybHkga25vd24gYXMgdGhlIEluZGlhbiBPY2VhbiBSaW0gSW5pdGlhdGl2ZSBhbmQgdGhlIEluZGlhbiBPY2VhbiBSaW0gQXNzb2NpYXRpb24gZm9yIFJlZ2lvbmFsIENvb3BlcmF0aW9uLCBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBjb25zaXN0aW5nIG9mIDIzIHN0YXRlcyBib3JkZXJpbmcgdGhlIEluZGlhbiBPY2Vhbi4gVGhlIElPUkEgaXMgYSByZWdpb25hbCBmb3J1bSwgdHJpcGFydGl0ZSBpbiBuYXR1cmUsIGJyaW5naW5nIHRvZ2V0aGVyIHJlcHJlc2VudGF0aXZlcyBvZiBHb3Zlcm5tZW50LCBCdXNpbmVzcyBhbmQgQWNhZGVtaWEsIGZvciBwcm9tb3RpbmcgY28tb3BlcmF0aW9uIGFuZCBjbG9zZXIgaW50ZXJhY3Rpb24gYW1vbmcgdGhlbS4gSXQgaXMgYmFzZWQgb24gdGhlIHByaW5jaXBsZXMgb2YgT3BlbiBSZWdpb25hbGlzbSBmb3Igc3RyZW5ndGhlbmluZyBFY29ub21pYyBDb29wZXJhdGlvbiBwYXJ0aWN1bGFybHkgb24gVHJhZGUgRmFjaWxpdGF0aW9uIGFuZCBJbnZlc3RtZW50LCBQcm9tb3Rpb24gYXMgd2VsbCBhcyBTb2NpYWwgRGV2ZWxvcG1lbnQgb2YgdGhlIHJlZ2lvbi4gVGhlIENvb3JkaW5hdGluZyBTZWNyZXRhcmlhdCBvZiBJT1JBIGlzIGxvY2F0ZWQgYXQgRWJlbmUsIE1hdXJpdGl1cy4NCjE5OTcgKEFwciAyMSk6IEguRC4gRGV2ZSBHb3dkYSByZXNpZ25zLiBJbmRlciBLdW1hciBHdWpyYWwgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NyAoSnVuIDYpOiBbR2VvUG9saXRpY3NdIEJJTVNURUMgZm91bmRlZC4gVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBvZiBzZXZlbiBTb3V0aCBBc2lhbiBhbmQgU291dGhlYXN0IEFzaWFuIG5hdGlvbnMsIGhvdXNpbmcgMS43MyBiaWxsaW9uIHBlb3BsZSBhbmQgaGF2aW5nIGEgY29tYmluZWQgZ3Jvc3MgZG9tZXN0aWMgcHJvZHVjdCBvZiAkMy44IHRyaWxsaW9uLiBUaGUgQklNU1RFQyBtZW1iZXIgc3RhdGVzIOKAkyBCYW5nbGFkZXNoLCBCaHV0YW4sIEluZGlhLCBNeWFubWFyLCBOZXBhbCwgU3JpIExhbmthLCBhbmQgVGhhaWxhbmQg4oCTIGFyZSBhbW9uZyB0aGUgY291bnRyaWVzIGRlcGVuZGVudCBvbiB0aGUgQmF5IG9mIEJlbmdhbC4NCjE5OTcgKEp1biA4KTogRGVzcGl0ZSBhZ2dyZXNzaXZlIGNoZWxhdGlvbiB0aGVyYXB5LCBoZXIgY29uZGl0aW9uIHJhcGlkbHkgZGV0ZXJpb3JhdGVkLiBUaHJlZSB3ZWVrcyBhZnRlciB0aGUgZmlyc3QgbmV1cm9sb2dpY2FsIHN5bXB0b21zIGFwcGVhcmVkLCBXZXR0ZXJoYWhuIGxhcHNlZCBpbnRvIHdoYXQgYXBwZWFyZWQgdG8gYmUgYSB2ZWdldGF0aXZlIHN0YXRlIHB1bmN0dWF0ZWQgYnkgcGVyaW9kcyBvZiBleHRyZW1lIGFnaXRhdGlvbi4gT25lIG9mIGhlciBmb3JtZXIgc3R1ZGVudHMgc2FpZCB0aGF0ICJIZXIgaHVzYmFuZCBzYXcgdGVhcnMgcm9sbGluZyBkb3duIGhlciBmYWNlLiBJIGFza2VkIGlmIHNoZSB3YXMgaW4gcGFpbi4gVGhlIGRvY3RvcnMgc2FpZCBpdCBkaWRuJ3QgYXBwZWFyIHRoYXQgaGVyIGJyYWluIGNvdWxkIGV2ZW4gcmVnaXN0ZXIgcGFpbi4iIFdldHRlcmhhaG4gd2FzIHJlbW92ZWQgZnJvbSBsaWZlIHN1cHBvcnQgYW5kIHByb25vdW5jZWQgZGVhZCBvbiBKdW5lIDgsIDE5OTcsIHRlbiBtb250aHMgYWZ0ZXIgaGVyIGluaXRpYWwgZXhwb3N1cmUuIEluIHJlc3BvbnNlLCB0aGUgT2NjdXBhdGlvbmFsIFNhZmV0eSBhbmQgSGVhbHRoIEFkbWluaXN0cmF0aW9uIHJlY29tbWVuZGVkIHRoYXQgdGhlIHVzZSBvZiBkaW1ldGh5bG1lcmN1cnkgYmUgYXZvaWRlZCB1bmxlc3MgYWJzb2x1dGVseSBuZWNlc3NhcnkgYW5kIG1hbmRhdGVkIHRoZSB1c2Ugb2YgcGxhc3RpYy1sYW1pbmF0ZSBnbG92ZXMgKFNpbHZlclNoaWVsZCkgd2hlbiBoYW5kbGluZyB0aGlzIGNvbXBvdW5kLg0KMTk5NyAoSnVuIDEzKTpbSmFja10gQm9yZGVyDQoxOTk3IChKdW4gMjYpOltCb29rXSAzMllPIEouIEsuIFJvd2xpbmcgcHVibGlzaGVzIGhlciBmaXJzdCBIYXJyeSBQb3R0ZXIgYm9vaywgVGhlIFBoaWxvc29waGVyJ3MgU3RvbmU7IA0KVGhlIENoYW1iZXIgb2YgU2VjcmV0cyAoMiBKdWx5IDE5OTgpLA0KVGhlIFByaXNvbmVyIG9mIEF6a2FiYW4gKDggSnVseSAxOTk5KSwNClRoZSBHb2JsZXQgb2YgRmlyZSAoOCBKdWx5IDIwMDApLA0KVGhlIE9yZGVyIG9mIHRoZSBQaG9lbml4ICgsIDI3IEp1bmUgMjAwMyksDQpUaGUgSGFsZi1CbG9vZCBQcmluY2UgKDE2IEp1bHkgMjAwNSksDQpUaGUgRGVhdGhseSBIYWxsb3dzICgyMSBKdWx5IDIwMDcpDQoxOTk3IChBdWcgMjUpOltTcGFjZV0gQWR2YW5jZWQgQ29tcG9zaXRpb24gRXhwbG9yZXIgaXMgYSBOQVNBIEV4cGxvcmVyIHByb2dyYW0gc2F0ZWxsaXRlIGFuZCBzcGFjZSBleHBsb3JhdGlvbiBtaXNzaW9uIHRvIHN0dWR5IG1hdHRlciBjb21wcmlzaW5nIGVuZXJnZXRpYyBwYXJ0aWNsZXMgZnJvbSB0aGUgc29sYXIgd2luZCwgdGhlIGludGVycGxhbmV0YXJ5IG1lZGl1bSwgYW5kIG90aGVyIHNvdXJjZXMuDQoxOTk3IChTZXAgMTMpOiB0aGUgaW50cm9kdWN0b3J5IGVwaXNvZGUgb2YgU2hha3RpbWFuIHdhcyBhaXJlZCBvbiBEb29yZGFyc2hhbiAoSW5kaWEncyBuYXRpb25hbCB0ZWxldmlzaW9uIG5ldHdvcmspIGZyb20gMjcgU2VwdGVtYmVyIDE5OTcgdG8gMjcgTWFyY2ggMjAwNSwgb24gU3VuZGF5cyBhdCAxMiBub29uIElTVC4gVGhlIHRlbGVjYXN0IHNsb3QsIGhvd2V2ZXIgd2FzIHNoaWZ0ZWQgdG8gOTozMCBhLm0uIGZvciB0aGUgbGFzdCBlcGlzb2Rlcy4gDQoxOTk3IChTZXAgMjcgMTA6MjMgVVRDKTpbU3BhY2VdW01hcnNdIExhc3QgY29udGFjdCB3aXRoIE1hcnMgUGF0aGZpbmRlci4gTWlzc2lvbiBkdXJhdGlvbiAoTGF1bmNoIHRvIGxhc3QgY29udGFjdCk6IDkgbW9udGhzLCAyMyBkYXlzLg0KMTk5NyAoT2N0IDMxKTpbQm9va10gRG9uYWxkIFRydW1wJ3MgVHJ1bXA6IFRoZSBBcnQgb2YgdGhlIENvbWViYWNrOyBUaGUgQW1lcmljYSBXZSBEZXNlcnZlICgyMDAwKTsgVHJ1bXA6IFRoaW5rIExpa2UgYSBCaWxsaW9uYWlyZTogRXZlcnl0aGluZyBZb3UgTmVlZCB0byBLbm93IEFib3V0IFN1Y2Nlc3MsIFJlYWwgRXN0YXRlLCBhbmQgTGlmZSAoMjAwNCk7IFdoeSBXZSBXYW50IFlvdSB0byBCZSBSaWNoICgyMDA2KTsgVHJ1bXA6IFRoZSBCZXN0IFJlYWwgRXN0YXRlIEFkdmljZSBJIEV2ZXIgUmVjZWl2ZWQ6IDEwMCBUb3AgRXhwZXJ0cyBTaGFyZSBUaGVpciBTdHJhdGVnaWVzICgyMDA2LCBOb3YgMSk7IFRoaW5rIEJJRyBhbmQgS2ljayBBc3MgaW4gQnVzaW5lc3MgYW5kIExpZmUgKDIwMDcpOyBUcnVtcCBOZXZlciBHaXZlIFVwOiBIb3cgSSBUdXJuZWQgTXkgQmlnZ2VzdCBDaGFsbGVuZ2VzIGludG8gU3VjY2VzcyAoMjAwOCk7IFRpbWUgdG8gR2V0IFRvdWdoOiBNYWtpbmcgQW1lcmljYSAjMSBBZ2FpbiAoMjAxMSk7IENyaXBwbGVkIEFtZXJpY2E6IEhvdyB0byBNYWtlIEFtZXJpY2EgR3JlYXQgQWdhaW4gKDIwMTUpDQoxOTk3OiBBcnVuZGhhdGkgUm95IGJlY2FtZSB0aGUgZmlyc3QgSW5kaWFuIHRvIHdpbiBNYW4gQm9va2VyIFByaXplIGZvciBoZXIgbm92ZWwgJ1RoZSBHb2Qgb2YgU21hbGwgVGhpbmdzJy4NCjE5OTc6IElJVC1KRUUgd2FzIGNvbmR1Y3RlZCB0d2ljZSBhZnRlciB0aGUgUS1QYXBlciB3YXMgbGVha2VkLg0KMTk5NzogTkFTQSBlc3RpbWF0ZWQgdGhlcmUgd2VyZSBhcHByb3guIDIsNjQ1IGFydGlmaWNpYWwgc2F0ZWxsaXRlIHBheWxvYWRzIG9yYml0dGluZyB0aGUgZWFydGggYW5kIDYsMjE2IHBpZWNlcyBvZiBzcGFjZSBkZWJyaXMgYXMgdHJhY2tlZCBieSB0aGUgR1NGQy4gT3ZlciAxNiwyOTEgcHJldmlvdXNseSBsYXVuY2hlZCBvYmplY3RzIGhhdmUgZGVjYXllZCBpbnRvIHRoZSBFYXJ0aCdzIGF0bW9zcGhlcmUuDQoxOTk3OiBCSEMgRmluYW5jaWFsLCBJbmMuIG9mIFBlbm5zeWx2YW5pYSBtZXJnZWQgaW50byBGSVNWIHRvIGZvcm0gU2VjdXJlZCBUcmFuc2FjdGlvbiBQcm9jZXNzaW5nIFNlcnZpY2VzLg0KMTk5NzpbQm9va10gVGhlIEZvdXIgQWdyZWVtZW50czogQSBQcmFjdGljYWwgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSBpcyBhIHNlbGYtaGVscCBib29rIGJ5IGJlc3RzZWxsaW5nIGF1dGhvciBEb24gTWlndWVsIFJ1aXogd2l0aCBKYW5ldCBNaWxsczsgVGhlIE1hc3Rlcnkgb2YgTG92ZTogQSBQcmFjdGljYWwgR3VpZGUgdG8gdGhlIEFydCBvZiBSZWxhdGlvbnNoaXAgLS1Ub2x0ZWMgV2lzZG9tIEJvb2sgKDE5OTksIE1hciAzMCk7IFRoZSBWb2ljZSBvZiBLbm93bGVkZ2U6IEEgUHJhY3RpY2FsIEd1aWRlIHRvIElubmVyIFBlYWNlICgyMDA0LCBNYXIgMTApOyBUaGUgRmlmdGggQWdyZWVtZW50OiBBIFByYWN0aWNhbCBHdWlkZSB0byBTZWxmLU1hc3RlcnkgKDIwMDkpOyBUaGUgQ2lyY2xlIG9mIEZpcmU6IEluc3BpcmF0aW9uIGFuZCBHdWlkZWQgTWVkaXRhdGlvbnMgZm9yIExpdmluZyBpbiBMb3ZlIGFuZCBIYXBwaW5lc3MgKDIwMTMsIEF1ZyAxKTsgVGhlIE1hc3Rlcnkgb2YgU2VsZjogQSBUb2x0ZWMgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSAoMjAxNiwgTWF5IDYpDQoxOTk3OltCb29rXSBKb24gS3Jha2F1ZXIncyBJbnRvIFRoaW4gQWlyOiBBIFBlcnNvbmFsIEFjY291bnQgb2YgdGhlIE10LiBFdmVyZXN0IERpc2FzdGVyOyBVbmRlciB0aGUgQmFubmVyIG9mIEhlYXZlbiAoMjAwMyBKdWwpDQoxOTk3IChEZWMgMTEpOltFbnZdIFRoZSBLeW90byBQcm90b2NvbCB3YXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgd2hpY2ggZXh0ZW5kZWQgdGhlIDE5OTIgVW5pdGVkIE5hdGlvbnMgRnJhbWV3b3JrIENvbnZlbnRpb24gb24gQ2xpbWF0ZSBDaGFuZ2UgKFVORkNDQykgdGhhdCBjb21taXRzIHN0YXRlIHBhcnRpZXMgdG8gcmVkdWNlIGdyZWVuaG91c2UgZ2FzIGVtaXNzaW9ucywgYmFzZWQgb24gdGhlIHNjaWVudGlmaWMgY29uc2Vuc3VzIHRoYXQgKHBhcnQgb25lKSBnbG9iYWwgd2FybWluZyBpcyBvY2N1cnJpbmcgYW5kIChwYXJ0IHR3bykgdGhhdCBodW1hbi1tYWRlIENPMiBlbWlzc2lvbnMgYXJlIGRyaXZpbmcgaXQuDQoxOTk3OltJbmRpYV1bRWR1Y2F0aW9uXVtDdWx0dXJlXSBFa2xhdnlhIE1vZGVsIFJlc2lkZW50aWFsIFNjaG9vbCBpcyBhIEdvdmVybm1lbnQgb2YgSW5kaWEgc2NoZW1lIGZvciBtb2RlbCByZXNpZGVudGlhbCBzY2hvb2wgZm9yIEluZGlhbiB0cmliYWxzIGFjcm9zcyBJbmRpYS4gSXQgaXMgb25lIG9mIHRoZSBmbGFnc2hpcCBpbnRlcnZlbnRpb25zIG9mIHRoZSBNaW5pc3RyeSBvZiBUcmliYWwgQWZmYWlycywgR292ZXJubWVudCBvZiBJbmRpYSBhbmQgd2FzIGludHJvZHVjZWQgaW4gdGhlIHllYXIgMTk5Ny05OCB0byBlbnN1cmUgdHJpYmFsIHN0dWRlbnRzIGdldCBhY2Nlc3MgdG8gcXVhbGl0eSBlZHVjYXRpb24gaW4gdGhlIHJlbW90ZSB0cmliYWwgYXJlYXMuIEVNUlNzIGFyZSBzZXQgdXAgaW4gU3RhdGVzL1VUcyB3aXRoIGdyYW50cyB1bmRlciBBcnRpY2xlIDI3NSgxKSBvZiB0aGUgQ29uc3RpdHV0aW9uIG9mIEluZGlhLiBBcyBwZXIgdGhlIGJ1ZGdldCAyMDE4LTE5LCBldmVyeSBibG9jayB3aXRoIG1vcmUgdGhhbiA1MCUgU1QgcG9wdWxhdGlvbiBhbmQgYXQgbGVhc3QgMjAsMDAwIHRyaWJhbCBwZXJzb25zLCB3aWxsIGhhdmUgYW4gRWtsYXZ5YSBNb2RlbCBSZXNpZGVudGlhbCBTY2hvb2wgYnkgdGhlIHllYXIgMjAyMi4NCjE5OTc6W1NwYWNlXSBIaXBwYXJjb3MgKDE5ODkgLTE5OTMpLiBJdCB0b29rIDQtOCB5ZWFycyB0byBvcmdhbml6ZSBhbmQgcHVibGlzaCB0aGUgNCB5ZWFycyBzdHVkeSBieSB0aGlzIGV4cGVyaW1lbnQsIHdoaWNoIHBlcm1pdHRlZCB0aGUgZmlyc3QgaGlnaC1wcmVjaXNpb24gbWVhc3VyZW1lbnRzIG9mIHRoZSBpbnRyaW5zaWMgYnJpZ2h0bmVzc2VzIChjb21wYXJlZCB0byB0aGUgbGVzcyBwcmVjaXNlIGFwcGFyZW50IGJyaWdodG5lc3MpLCBwcm9wZXIgbW90aW9ucywgYW5kIHBhcmFsbGF4ZXMgb2Ygc3RhcnMsIGVuYWJsaW5nIGJldHRlciBjYWxjdWxhdGlvbnMgb2YgdGhlaXIgZGlzdGFuY2UgYW5kIHRhbmdlbnRpYWwgdmVsb2NpdHkuIFdoZW4gY29tYmluZWQgd2l0aCByYWRpYWwgdmVsb2NpdHkgbWVhc3VyZW1lbnRzIGZyb20gc3BlY3Ryb3Njb3B5LCBhc3Ryb3BoeXNpY2lzdHMgd2VyZSBhYmxlIHRvIGZpbmFsbHkgbWVhc3VyZSBhbGwgc2l4IHF1YW50aXRpZXMgbmVlZGVkIHRvIGRldGVybWluZSB0aGUgbW90aW9uIG9mIHN0YXJzLiBUaGUgcmVzdWx0aW5nIEhpcHBhcmNvcyBDYXRhbG9ndWUsIGEgaGlnaC1wcmVjaXNpb24gY2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiAxMTgsMjAwIHN0YXJzLCB3YXMgcHVibGlzaGVkIGluIDE5OTcuIFRoZSBsb3dlci1wcmVjaXNpb24gVHljaG8gQ2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiBhIG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBhdCB0aGUgc2FtZSB0aW1lLCB3aGlsZSB0aGUgZW5oYW5jZWQgVHljaG8tMiBDYXRhbG9ndWUgb2YgMi41IG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBpbiAyMDAwLiBIaXBwYXJjb3MnIGZvbGxvdy11cCBtaXNzaW9uLCBHYWlhLCB3YXMgbGF1bmNoZWQgaW4gMjAxMy4NCjE5OTc6W1NwYWNlXVtSZXNlYXJjaF0gU2luY2UgdGhlIDE5OTcgcHJvcG9zYWwgb2YgdGhlIEFkUy9DRlQgKEFudGktZGUgU2l0dGVyL0NvbmZvcm1hbCBGaWVsZCBUaGVvcnkpIGNvcnJlc3BvbmRlbmNlLCB0aGUgcHJlZG9taW5hbnQgYmVsaWVmIGFtb25nIHBoeXNpY2lzdHMgaXMgdGhhdCBpbmZvcm1hdGlvbiBpcyBpbmRlZWQgcHJlc2VydmVkIGluIGJsYWNrIGhvbGUgZXZhcG9yYXRpb24uIA0KMTk5NzpbU3BhY2VdW1Jlc2VhcmNoXSBBIHdpZGVseSBwdWJsaWNpemVkIGJldCBtYWRlIGluIDE5OTcgYmV0d2VlbiBKb2huIFByZXNraWxsIG9uIHRoZSBvbmUgaGFuZCB3aXRoIEhhd2tpbmcgYW5kIEtpcCBUaG9ybmUgb24gdGhlIG90aGVyIHRoYXQgaW5mb3JtYXRpb24gd2FzIG5vdCBsb3N0IGluIGJsYWNrIGhvbGVzLiBUaGUgc2NpZW50aWZpYyBkZWJhdGUgb24gdGhlIHBhcmFkb3ggd2FzIGRlc2NyaWJlZCBpbiBhIHBvcHVsYXIgYm9vayBwdWJsaXNoZWQgaW4gMjAwOCBieSBMZW9uYXJkIFN1c3NraW5kIGNhbGxlZCBUaGUgQmxhY2sgSG9sZSBXYXIuIChUaGUgYm9vayBjYXJlZnVsbHkgbm90ZXMgdGhhdCB0aGUgJ3dhcicgd2FzIHB1cmVseSBhIHNjaWVudGlmaWMgb25lLCBhbmQgdGhhdCBhdCBhIHBlcnNvbmFsIGxldmVsLCB0aGUgcGFydGljaXBhbnRzIHJlbWFpbmVkIGZyaWVuZHMuKSBUaGUgYm9vayBzdGF0ZXMgdGhhdCBIYXdraW5nIHdhcyBldmVudHVhbGx5IHBlcnN1YWRlZCB0aGF0IGJsYWNrLWhvbGUgZXZhcG9yYXRpb24gd2FzIHVuaXRhcnkgYnkgdGhlIGhvbG9ncmFwaGljIHByaW5jaXBsZSwgd2hpY2ggd2FzIGZpcnN0IHByb3Bvc2VkIGJ5ICd0IEhvb2Z0LCBmdXJ0aGVyIGRldmVsb3BlZCBieSBTdXNza2luZCBhbmQgbGF0ZXIgZ2l2ZW4gYSBwcmVjaXNlIHN0cmluZyB0aGVvcnkgaW50ZXJwcmV0YXRpb24gYnkgdGhlIEFkUy9DRlQgY29ycmVzcG9uZGVuY2UuIEluIDIwMDQsIEhhd2tpbmcgYWxzbyBjb25jZWRlZCB0aGUgMTk5NyBiZXQsIHBheWluZyBQcmVza2lsbCB3aXRoIGEgYmFzZWJhbGwgZW5jeWNsb3BlZGlhICJmcm9tIHdoaWNoIGluZm9ybWF0aW9uIGNhbiBiZSByZXRyaWV2ZWQgYXQgd2lsbCIgYWx0aG91Z2ggVGhvcm5lIHJlZnVzZWQgdG8gY29uY2VkZS4NCjE5OTc6W0VhcnRoXVtQaHlzaWNzXVtSZXNlYXJjaF0gdGhlcmUgd2VyZSB0d28gbGFyZ2UgZWFydGhxdWFrZXMgb2ZmIHRoZSBjb2FzdCBvZiBDaGlsZS4gVGhlIG1hZ25pdHVkZSBvZiB0aGUgZmlyc3QsIGluIEp1bHksIHdhcyBlc3RpbWF0ZWQgYXQgTXfigK82LjksIGJ1dCB3YXMgYmFyZWx5IGZlbHQsIGFuZCBvbmx5IGluIHRocmVlIHBsYWNlcy4gSW4gT2N0b2JlciBhIE134oCvNy4xIHF1YWtlIGluIG5lYXJseSB0aGUgc2FtZSBsb2NhdGlvbiwgYnV0IHR3aWNlIGFzIGRlZXAgYW5kIG9uIGEgZGlmZmVyZW50IGtpbmQgb2YgZmF1bHQsIHdhcyBmZWx0IG92ZXIgYSBicm9hZCBhcmVhLCBpbmp1cmVkIG92ZXIgMzAwIHBlb3BsZSwgYW5kIGRlc3Ryb3llZCBvciBzZXJpb3VzbHkgZGFtYWdlZCBvdmVyIDEwLDAwMCBob3VzZXMuIEFzIGNhbiBiZSBzZWVuIGluIHRoZSB0YWJsZSBiZWxvdywgdGhpcyBkaXNwYXJpdHkgb2YgZGFtYWdlIGRvbmUgaXMgbm90IHJlZmxlY3RlZCBpbiBlaXRoZXIgdGhlIG1vbWVudCBtYWduaXR1ZGUgKE134oCvKSBub3IgdGhlIHN1cmZhY2Utd2F2ZSBtYWduaXR1ZGUgKE1z4oCvKS4gT25seSB3aGVuIHRoZSBtYWduaXR1ZGUgaXMgbWVhc3VyZWQgb24gdGhlIGJhc2lzIG9mIHRoZSBib2R5LXdhdmUgKG1i4oCvKSBvciB0aGUgc2Vpc21pYyBlbmVyZ3kgKE1l4oCvKSBpcyB0aGVyZSBhIGRpZmZlcmVuY2UgY29tcGFyYWJsZSB0byB0aGUgZGlmZmVyZW5jZSBpbiBkYW1hZ2UuIChhcyByZXNlYXJjaGVkIGJ5IENob3ksIEJvYXR3cmlnaHQgJiBLaXJieSAyMDAxLCBwLiAxMy4pLiBNdyA2Ljkgd2FzIGFjdHVhbGx5IE1lIDYuMSwgYW4gaW50ZXJwbGF0ZS10aHJ1c3QgdHlwZSBvZiBmYXVsdCwgd2hpbGUgTXcgNy4xIHdhcyBhY3R1YWxseSBhIDcuNSBNZSBpbnRyYXNsYWItbm9ybWFsIHR5cGUgb2YgZmF1bHQuDQoxOTk3OltSZXNlYXJjaF0gRHVyaW5nIHN1cnZleXMgY2FycmllZCBvdXQgYmV0d2VlbiAxOTk3IGFuZCAyMDAxLCBhIHNwb3Qgd2FzIGZvdW5kIGFsb25nIHRoZSBNYXJpYW5hIFRyZW5jaCB0aGF0IGhhZCBhIGRlcHRoIHNpbWlsYXIgdG8gdGhlIENoYWxsZW5nZXIgRGVlcCwgcG9zc2libHkgZXZlbiBkZWVwZXIuIEl0IHdhcyBkaXNjb3ZlcmVkIHdoaWxlIHNjaWVudGlzdHMgZnJvbSB0aGUgSGF3YWlpIEluc3RpdHV0ZSBvZiBHZW9waHlzaWNzIGFuZCBQbGFuZXRvbG9neSB3ZXJlIGNvbXBsZXRpbmcgYSBzdXJ2ZXkgYXJvdW5kIEd1YW07IHRoZXkgdXNlZCBhIHNvbmFyIG1hcHBpbmcgc3lzdGVtIHRvd2VkIGJlaGluZCB0aGUgcmVzZWFyY2ggc2hpcCB0byBjb25kdWN0IHRoZSBzdXJ2ZXkuIFRoaXMgbmV3IHNwb3Qgd2FzIG5hbWVkIHRoZSBITVJHIChIYXdhaWkgTWFwcGluZyBSZXNlYXJjaCBHcm91cCkgRGVlcCwgYWZ0ZXIgdGhlIGdyb3VwIG9mIHNjaWVudGlzdHMgd2hvIGRpc2NvdmVyZWQgaXQuDQoxOTk3OltTcGFjZVhdIEEgcmVzb2x2ZWQgY2lyY3Vtc3RlbGxhciBkaXNrIHdhcyBmaXJzdCBpZGVudGlmaWVkIGluIDE5OTcgd2l0aCB0aGUgT3dlbnMgVmFsbGV5IFJhZGlvIE9ic2VydmF0b3J5LiBUaGUgc2VtaS1tYWpvciBheGlzIHdhcyBpbml0aWFsbHkgZXN0aW1hdGVkIHRvIGJlIDExMCBBVS4gSEQgMTYzMjk2IGFuZCBzdXJyb3VuZGluZ3MgQ3JlZGl0OiBFU08vRGlnaXRpemVkIFNreSBTdXJ2ZXkgMjsgQWNrbm93bGVkZ2VtZW50OiBEYXZpZGUgRGUgTWFydGluIE9ic2VydmF0aW9uIGRhdGEgRXBvY2ggSjIwMDAgICAgICBFcXVpbm94IEoyMDAwIENvbnN0ZWxsYXRpb24JU2FnaXR0YXJpdXMgUmlnaHQgYXNjZW5zaW9uCTE3aCA1Nm0gMjEuMjlzIERlY2xpbmF0aW9uCeKIkjIxwrAgNTfigLIgMjEuODfigLMgQXBwYXJlbnQgbWFnbml0dWRlIChWKQk2Ljg1OyBDaGFyYWN0ZXJpc3RpY3MgRXZvbHV0aW9uYXJ5IHN0YWdlCUhlcmJpZyBBZSBzdGFyIFNwZWN0cmFsIHR5cGUJQTNWYWVrQTFtQTE7IEFzdHJvbWV0cnkgUmFkaWFsIHZlbG9jaXR5IChSdikJLTQuMDAgwrEzLjNbM10ga20vcyBQcm9wZXIgbW90aW9uICjOvCkJUkE6IC03LjU4NiDCsTAuMDQxIG1hcy95cjsgRGVjLjogLTM5LjQ1OCDCsTAuMDI5IG1hcy95cls0XSBQYXJhbGxheCAoz4ApCTkuOTA0M8KxMC4wNDA4IG1hc1s0XSBEaXN0YW5jZQkzMjkgwrEgMSBseSAoMTAxLjAgwrEgMC40IHBjKSBEZXRhaWxzOyBNYXNzCTEuOTXCsTAuMDcgTeKYiSBSYWRpdXMJMS44N8KxMC4wNSBS4piJIEx1bWlub3NpdHkJMjAuNCszLjYg4oiSMy4wIEzimIkgU3VyZmFjZSBncmF2aXR5IChsb2cgZykJNC4xMMKxMC4xMCBjZ3MgVGVtcGVyYXR1cmUJOTAwMMKxMjUwIEsgQWdlCTYuMDMrMC4yOCDiiJIwLjI3IE15ciBPdGhlciBkZXNpZ25hdGlvbnMgQkQtMjEgNDc3OSwgQ1BELTIxIDY1MDgsIEVNKiBNV0MgMjc1LCBISVAgODc4MTksIElSQVMgMTc1MzMtMjE1NiwgMk1BU1MgSjE3NTYyMTI4LTIxNTcyMTgsIFBEUyA0NzMsIFRZQyA2MjYyLTIxMzEtMSwgRGF0YWJhc2UgcmVmZXJlbmNlcyBTSU1CQUQNCjE5OTc6W1NwYWNlWF0gMTAxOTkgQ2hhcmlrbG8gaXMgYSByaW5nZWQgYXN0ZXJvaWQgb3IgY2VudGF1ciBpbiB0aGUgb3V0ZXIgU29sYXIgU3lzdGVtLiBJdCBpcyB0aGUgbGFyZ2VzdCBrbm93biBjZW50YXVyLCB3aXRoIGEgZGlhbWV0ZXIgb2YgYWJvdXQgMjUwIGttLiBJdCBvcmJpdHMgdGhlIFN1biBiZXR3ZWVuIFNhdHVybiBhbmQgVXJhbnVzIHdpdGggYW4gb3JiaXRhbCBwZXJpb2Qgb2YgNjIuNSB5ZWFycy4gV2lraXBlZGlhIE9yYml0YWwgcGVyaW9kOiA2MyB5ZWFycyBSYWRpdXM6IDE1MSBrbSBEaXNjb3ZlcmVkOiAxNSBGZWJydWFyeSAxOTk3IERpbWVuc2lvbnM6ICgyODcuNisyLjg7IOKIkjMuMCkgw5cgKDI3MC40KzIuODsg4oiSNS42KSDDlyAoMTk4LjIrMTAuODsg4oiSNS40KSBrbTogMTEgRGlzY292ZXJlcjogSmFtZXMgVi4gU2NvdHRpIFNwZWN0cmFsIHR5cGU6IEQtdHlwZSBhc3Rlcm9pZCBBcGhlbGlvbjogMTguNDIwIEFVDQoxOTk3OltTcGFjZVhdIFRoZSBHcmVhdCBEYXlsaWdodCBGaXJlYmFsbCAtIFRoZSBhdG1vc3BoZXJpYyBwYXNzIG1vZGlmaWVkIHRoZSBvYmplY3QncyBtYXNzIGFuZCBvcmJpdCBhcm91bmQgdGhlIFN1bi4gQSAxOTk0IHN0dWR5IGZvdW5kIHRoYXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgaW4gYW4gRWFydGgtY3Jvc3Npbmcgb3JiaXQgYW5kIHByZWRpY3RlZCB0aGF0IGl0IHdvdWxkIHBhc3MgY2xvc2UgdG8gRWFydGggYWdhaW4gaW4gQXVndXN0IDE5OTcuIEhvd2V2ZXIsIHRoZSBvYmplY3QgaGFzIG5vdCBiZWVuIG9ic2VydmVkIGFnYWluIGFuZCBzbyBpdHMgcG9zdC1lbmNvdW50ZXIgb3JiaXQgcmVtYWlucyB1bmtub3duLg0KMTk5NzpOYWZpc2EgSm9zZXBoIHdhcyB0aGUgeW91bmdlc3QgTWlzcyBJbmRpYSB3aW5uZXIgYXQgYWdlIDE5LCB3aW5uaW5nIHRoZSB0aXRsZSBpbiAxOTk3LiBTaGUgbGF0ZXIgYmVjYW1lIGEgbW9kZWwgYW5kIHRlbGV2aXNpb24gcGVyc29uYWxpdHkuIFdoaWxlIG90aGVyIHdpbm5lcnMgbGlrZSBNZWVuYWtzaGkgU2VzaGFkcmkgd2VyZSBhbHNvIDE3IHdoZW4gdGhleSB3b24gaW4gMTk4MSwgSm9zZXBoIGlzIG9mdGVuIGNpdGVkIGZvciBoZXIgZWFybHkgd2luIGF0IDE5LCB3aGljaCB3YXMgdGhlbiBhIHlvdW5nZXIgYWdlIHRoYW4gaXMgdHlwaWNhbGx5IHNlZW4gaW4gdGhlIGNvbXBldGl0aW9uLiANCjE5OTc6W3NwYWNlXVt0ZWNoXSBUaGUgZmluYWwgQmxvY2sgSUlBIHdhcyBpbiBOb3YgMTk5Nywgd2hpbGUgQmxvY2sgSUlScyBiZWdhbiByZXBsYWNpbmcgdGhlbSBzaG9ydGx5IGFmdGVyLCBsYXN0aW5nIHVudGlsIDIwMDQuIEJsb2NrIElJUiAoUmVwbGVuaXNobWVudCkgbGF1bmNoZXMgZm9sbG93ZWQgZnJvbSAxOTk3IHRvIDIwMDQsIHdpdGggdGhlIGZpcnN0IGxhdW5jaCBpbiBKYW51YXJ5IDE5OTcuIA0KDQoxOTk4OltTcGFjZVhdIFRoZSBwcmltYXJ5IGNvbnN0cnVjdGlvbiBwaGFzZSBvZiB0aGUgSW50ZXJuYXRpb25hbCBTcGFjZSBTdGF0aW9uIChJU1MpIHRvb2sgYXBwcm94aW1hdGVseSAxMyB5ZWFycywgZnJvbSAxOTk4IHRvIDIwMTEsIHdpdGggdGhlIGZpcnN0IG1vZHVsZSBsYXVuY2hpbmcgaW4gTm92ZW1iZXIgMTk5OCBhbmQgSVNTIEFzc2VtYmx5IENvbXBsZXRlIGRlY2xhcmVkIGluIE1heSAyMDExLiBIb3dldmVyLCBhc3NlbWJseSB3YXMgYSBjb250aW51b3VzLCBtdWx0aS1zdGFnZSBwcm9jZXNzIGludm9sdmluZyBtb3JlIHRoYW4gMzAgbWlzc2lvbnMsIG51bWVyb3VzIHNwYWNld2Fsa3MsIGFuZCByb2JvdGljIGFzc2lzdGFuY2UgdG8gYnVpbGQgdGhlIHN0YXRpb24gcGllY2UgYnkgcGllY2UgaW4gb3JiaXQuIEV2ZW4gYWZ0ZXIgMjAxMSwgdGhlIElTUyBjb250aW51ZWQgdG8gZXZvbHZlIHdpdGggb25nb2luZyBhZGRpdGlvbnMgYW5kIHVwZ3JhZGVzLg0KMTk5ODpbUmVzZWFyY2hdW1NwYWNlXSBTcHJpbmcsIDE5OTg6IGEgbWljcm9mb3NzaWwgdGhhdCB3YXMgZm91bmQgaW4gYSBtZXRlb3JpdGUgYW5kIHBob3RvZ3JhcGhlZCBpbiAxOTY2LCB3YXMgcmVjb2duaXplZCBieSBhIFJ1c3NpYW4gbWljcm9iaW9sb2dpc3QgYXMgYSBtYWduZXRvdGFjdGljIGJhY3Rlcml1bS4gQnkgRmFsbCwgMTk5ODogTkFTQSdzIHB1YmxpYyBwb3NpdGlvbiBvbiBsaWZlLWZyb20tc3BhY2Ugc2hpZnRlZCBkcmFtYXRpY2FsbHkuDQoxOTk4OiBBcyBhIHJlc2VhcmNoIHByb2plY3QgYXQgU3RhbmZvcmQgVW5pdmVyc2l0eSwgU2VyZ2V5IEJyaW4gYW5kIExhcnJ5IFBhZ2UgY3JlYXRlZCBhIHNlYXJjaCBlbmdpbmUgdGhhdCBsaXN0ZWQgcmVzdWx0cyBhY2NvcmRpbmcgdG8gdGhlIHBvcHVsYXJpdHkgb2YgdGhlIHBhZ2VzLCBhZnRlciBjb25jbHVkaW5nIHRoYXQgdGhlIG1vc3QgcG9wdWxhciByZXN1bHQgd291bGQgb2Z0ZW4gYmUgdGhlIG1vc3QgdXNlZnVsLiBBZnRlciByYWlzaW5nICQxIG1pbGxpb24gZnJvbSBmYW1pbHksIGZyaWVuZHMgYW5kIG90aGVyIGludmVzdG9ycywgdGhlIHBhaXIgbGF1bmNoZWQgdGhlIGNvbXBhbnkgaW4gMTk5OC4gR29vZ2xlIGhhcyBzaW5jZSBiZWNvbWUgdGhlIHdvcmxk4oCZcyBtb3N0IHBvcHVsYXIgc2VhcmNoIGVuZ2luZSwgcmVjZWl2aW5nIG1vcmUgdGhhbiAyMDAgbWlsbGlvbiBxdWVyaWVzIGVhY2ggZGF5Lg0KMTk5OCAoTm92IDIwKTogDQoxOTk4IChBcHIgMjcpOiBSUkIgZm91bmRlZCBhcyBSYWlsd2F5IFJlY3J1aXRtZW50IENvbnRyb2wgQm9hcmQgaXMgYSBnb3Zlcm5tZW50IG9yZ2FuaXNhdGlvbiBpbiBJbmRpYS4gSXQgd2FzIHNldCB1cCBpbiAxOTk4IGluIHRoZSBNaW5pc3RyeSBvZiBSYWlsd2F5cyAoUmFpbHdheSBCb2FyZCksIE5ldyBEZWxoaS5JbiAxOTQ1LCB0aGUgU2VydmljZXMgQ29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgYXQgQm9tYmF5LCBDYWxjdXR0YSwgTWFkcmFzIGFuZCBMdWNrbm93LiBJbiAxOTgzLCB0byBjYXRlciB0byB0aGUgbmVlZHMgb2YgYXJlYXMgd2hpY2ggd2VyZSBiZWluZyBuZWdsZWN0ZWQgZHVlIHRvIGxvY2F0aW9ucyBvZiB0aGUgZXhpc3RpbmcgY29tbWlzc2lvbnMsIHNldmVuIG1vcmUgY29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgdml6LCBhdCBBaG1lZGFiYWQsIEFqbWVyLCBCaG9wYWwsIEJodXZuZXNod2FyLCBDaGFuZGlnYXJoLCBKYW1tdSBhbmQgU3JpbmFnYXIgd2l0aCBzaXR0aW5nIGF0IExlaCBhbmQgVHJpdmVuZHJ1bS4gSW4gMTk4NCB0d28gbW9yZSBzZXJ2aWNlIGNvbW1pc3Npb25zIHdlcmUgc2V0IHVwIGF0IE1hbGRhIGFuZCBHb3Jha2hwdXIuDQoxOTk4IChNYXkgMTkpOiBBdGFsIEJpaGFyaSBWYWpwYXllZSBiZWNvbWVzIFBNIG9mIEluZGlhIGZvciB0aGUgc2Vjb25kIHRpbWUsIG5vdyBmb3IgNiB5ZWFycyB0aWxsIE1heSAyMiwgMjAwNC4gDQoxOTk4IChNYXkgMjggMTU6MTVQU1QpOiBDaGFnYWktSSBpcyB0aGUgY29kZSBuYW1lIG9mIGZpdmUgc2ltdWx0YW5lb3VzIHVuZGVyZ3JvdW5kIG51Y2xlYXIgdGVzdHMgY29uZHVjdGVkIGJ5IFBha2lzdGFuLiBUaGUgdGVzdHMgd2VyZSBwZXJmb3JtZWQgYXQgUmFzIEtvaCBIaWxscyBpbiB0aGUgQ2hhZ2FpIERpc3RyaWN0IG9mIEJhbG9jaGlzdGFuIFByb3ZpbmNlLiBDaGFnYWktSSB3YXMgUGFraXN0YW4ncyBmaXJzdCBwdWJsaWMgdGVzdCBvZiBudWNsZWFyIHdlYXBvbnMuIFBha2lzdGFuJ3MgZmlzc2lsZSBtYXRlcmlhbCBwcm9kdWN0aW9uIHRha2VzIHBsYWNlIGF0IE5pbG9yZSwgS2FodXRhLCBhbmQgS2h1c2hhYiBOdWNsZWFyIENvbXBsZXgsIHdoZXJlIHdlYXBvbnMtZ3JhZGUgcGx1dG9uaXVtIGlzIHJlZmluZWQuDQoxOTk4OiBBZnRlciBjb21wbGV0aW5nIGhpcyBYIHN0YW5kYXJkIGV4YW1pbmF0aW9ucywgUmFuYmlyIEthcG9vciwgYWdlZCAxNiwgd29ya2VkIGFzIGFuIGFzc2lzdGFudCBkaXJlY3RvciB0byBoaXMgZmF0aGVyIG9uIHRoZSBmaWxtIEFhIEFiIExhdXQgQ2hhbGVuICgxOTk5KSwgZHVyaW5nIHdoaWNoIGhlIGRldmVsb3BlZCBhIGNsb3NlciBib25kIHdpdGggaGltLg0KMTk4ODogTmV0d29ya2VkIERhdGEgUHJvY2Vzc2luZyBDb3IsIElvd2EgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBJbnN1cmFuY2UgZGl2aXNpb24uDQoxOTk4OltCb29rXSBSb2JlcnQgR3JlZW5lJ3MgVGhlIDQ4IExhd3Mgb2YgUG93ZXI7IFRoZSAzMyBTdHJhdGVnaWVzIG9mIFdhciAoMjAwNik7IE1hc3RlcnkgKDIwMTIsIE5vdiAxMyk7IFRoZSBMYXdzIG9mIEh1bWFuIE5hdHVyZSAoMjAxOCwgT2N0IDE2KQ0KMTk5ODpbU3BhY2VdW1Jlc2VhcmNoXVtFeHRyZW1lXSBUaGVuIGNhbWUgMTk5OCBhbmQgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgKEhTVCkgb2JzZXJ2YXRpb25zIG9mIHZlcnkgZGlzdGFudCBzdXBlcm5vdmFlIHRoYXQgc2hvd2VkIHRoYXQsIGEgbG9uZyB0aW1lIGFnbywgdGhlIHVuaXZlcnNlIHdhcyBhY3R1YWxseSBleHBhbmRpbmcgbW9yZSBzbG93bHkgdGhhbiBpdCBpcyB0b2RheS4gU28gdGhlIGV4cGFuc2lvbiBvZiB0aGUgdW5pdmVyc2UgaGFzIG5vdCBiZWVuIHNsb3dpbmcgZHVlIHRvIGdyYXZpdHksIGFzIGV2ZXJ5b25lIHRob3VnaHQsIGl0IGhhcyBiZWVuIGFjY2VsZXJhdGluZy4NCjE5OTg6W0NyaW1lXVtJbmRpYV0gQW5lZXMgYXJyZXN0ZWQgaW4gVUFFIG9uIGNoYXJnZXMgb2YgaGF2aW5nIG11cmRlcmVkIGEgZm9ybWVyIGFzc29jaWF0ZSBhbmQgdGhlbiByaXZhbCwgSXJmYW4gR29nYSwgaW4gRHViYWksIGJ1dCB3YXMgZnJlZWQgYWZ0ZXIgdHdvIGRheXMgZm9yICdsYWNrIG9mIGV2aWRlbmNlJy4NCjE5OTg6W0NvbXB1dGluZ11bUXVhbnR1bV0gUmVzZWFyY2hlcnMgYXQgSUJNLCBPeGZvcmQsIEJlcmtlbGV5LCBTdGFuZm9yZCwgYW5kIE1JVCBwcm9kdWNlZCBhIDItcXViaXQgY29tcHV0aW5nIHN5c3RlbS4NCjE5OTg6W3d3d10gV2lyZXNoYXJrIGlzIGEgZnJlZSBhbmQgb3Blbi1zb3VyY2UgcGFja2V0IGFuYWx5emVyLiBJdCBpcyB1c2VkIGZvciBuZXR3b3JrIHRyb3VibGVzaG9vdGluZywgYW5hbHlzaXMsIHNvZnR3YXJlIGFuZCBjb21tdW5pY2F0aW9ucyBwcm90b2NvbCBkZXZlbG9wbWVudCwgYW5kIGVkdWNhdGlvbi4gT3JpZ2luYWxseSBuYW1lZCBFdGhlcmVhbCwgdGhlIHByb2plY3Qgd2FzIHJlbmFtZWQgV2lyZXNoYXJrIGluIE1heSAyMDA2IGR1ZSB0byB0cmFkZW1hcmsgaXNzdWVzLg0KMTk5ODpbVVNdW0Vjb25vbXldRGF2aWQgUm9ja2VmZWxsZXIgU3IuIHdhcyBhd2FyZGVkIHRoZSBQcmVzaWRlbnRpYWwgTWVkYWwgb2YgRnJlZWRvbSBieSBQcmVzaWRlbnQgQmlsbCBDbGludG9uIGZvciBoaXMgd29yayBvbiBJbnRlcm5hdGlvbmFsIEV4ZWN1dGl2ZSBTZXJ2aWNlIENvcnBzLg0KMTk5ODpbRGVmXVtBdmlhdGlvbl0gVGhlIExvY2toZWVkIFNSLTcxIEJsYWNrYmlyZCBmbGV3IHNvIGhpZ2ggYW5kIHNvIGZhc3QgdGhhdCB0aGUgY3JldyBuZWVkZWQgcHJlc3N1cml6ZWQgc3BhY2Ugc3VpdHMgd2hlbiBmbHlpbmcgaXQuIEFuZCBpdCBpcyBzYWlkIHRoYXQgYXQgdGhlIG1heGltdW0gYWx0aXR1ZGUgb2YgaXQgaXQgd2FzIHBvc3NpYmxlIHRvIHNlZSB0aGUgY3VydmF0dXJlIG9mIHRoZSBlYXJ0aCwgd2hpY2ggcmVmZXJzIHRvIHRoaXMgcXVvdGUgYnkgQ29sb25lbCBBbGlzb246IOKAnE9uIGEgY2xlYXIgZGF5IHlvdSBjYW4gc2VlIGZvcmV2ZXLigKbigJ0uIFRoZSBzZXJ2aWNlIGNlaWxpbmcgb2YgODUsMDAwIGZlZXQgKDI1LDkwMG0pIG1lYW50IHRoYXQgaXQgd2FzIGFuIGV4Y2VsbGVudCBleHBlcmltZW50YWwgdW5pdCBmb3Igc3BhY2UgdHJhdmVscy4gVGhhdCwgY29tYmluZWQgd2l0aCB0aGUgZ3JlYXQgc3BlZWRzIG9mIGl0IHdhcyB0d28gb2YgdGhlIHJlYXNvbnMgd2h5IE5BU0EgZGVjaWRlZCB0byB0YWtlIG92ZXIgdGhlIGxhc3QgdHdvIEJsYWNrYmlyZHMgYWZ0ZXIgaXRzIHJldGlyZW1lbnQgZnJvbSB0aGUgQWlyIEZvcmNlIGluIDE5OTguIFRoaXMgbWVhbnMgdGhhdCB0aGUgd29ybGTigJlzIGZhc3Rlc3QgYWlyY3JhZnQgd2FzIGluIHNlcnZpY2UgZnJvbSAxOTY2IHVudGlsIE5BU0EgcmV0aXJlZCBpdHMgdHdvIHVuaXRzIGluIDE5OTksIGFuZCBtb3N0IG9mIHRoZSByZW1haW5pbmcgQmxhY2tiaXJkcyBhcmUgdG9kYXkgc3RhdGlvbmVkIGF0IG11c2V1bXMgb3IgbWlsaXRhcnkgYmFzZXMgYWNyb3NzIHRoZSBVUy4NCjE5OTg6SW4gMTk5OCwgR2F1dGFtIEFkYW5pLCBhbG9uZyB3aXRoIGhpcyBhc3NvY2lhdGUgU2hhbnRpbGFsIFBhdGVsLCB3YXMga2lkbmFwcGVkIGZvciByYW5zb20gaW4gQWhtZWRhYmFkLCBJbmRpYS4gVGhleSB3ZXJlIGFiZHVjdGVkIGF0IGd1bnBvaW50IGFmdGVyIGxlYXZpbmcgdGhlIEthcm5hdmF0aSBDbHViIGluIGEgY2FyLiBUaGUga2lkbmFwcGVycywgYWxsZWdlZGx5IGdhbmdzdGVycyBGYXpsdSBSZWhtYW4gYW5kIEJob2dpbGFsIERhcmppLCByZXBvcnRlZGx5IGRlbWFuZGVkIGEgcmFuc29tIG9mICQxLjUtMiBtaWxsaW9uLiBCb3RoIEFkYW5pIGFuZCBQYXRlbCB3ZXJlIHJlbGVhc2VkIGEgZGF5IGxhdGVyLCBidXQgaXQncyB1bmNsZWFyIGlmIHRoZSByYW5zb20gd2FzIHBhaWQuIA0KVGhlIGtpZG5hcHBpbmcgaW5jaWRlbnQgaGFwcGVuZWQgaW4gdGhlIG1pZC0xOTkwcywgYXJvdW5kIHRoZSB0aW1lIEFkYW5pJ3MgYnVzaW5lc3Mgc3VjY2Vzc2VzIHN0YXJ0ZWQgYXR0cmFjdGluZyB1bndhbnRlZCBhdHRlbnRpb24uIFRoZSBraWRuYXBwaW5nIHdhcyBhbGxlZ2VkbHkgY2FycmllZCBvdXQgYnkgRmF6bHUgUmVobWFuIGFuZCBCaG9naWxhbCBEYXJqaSwgYWxzbyBrbm93biBhcyAiTWFtYSIuIFRoZXkgd2VyZSBsYXRlciBhY3F1aXR0ZWQgZHVlIHRvIGxhY2sgb2YgZXZpZGVuY2UuIA0KVGhlIGFiZHVjdGlvbiBpcyBqdXN0IG9uZSBvZiB0aGUgY2hhbGxlbmdlcyBBZGFuaSBoYXMgZmFjZWQuIEhlIHdhcyBhbHNvIGNhdWdodCBpbiB0aGUgMjYvMTEgTXVtYmFpIHRlcnJvciBhdHRhY2tzIGF0IHRoZSBUYWogSG90ZWwuIE1vcmUgcmVjZW50bHksIGhlIGhhcyBmYWNlZCBhY2N1c2F0aW9ucyBvZiBicmliZXJ5IGFuZCBzZWN1cml0aWVzIGZyYXVkLiANCkFkYW5pIGFuZCBvdGhlcnMgd2VyZSBlc2NvcnRlZCBieSBzdGFmZiB0byB0aGUga2l0Y2hlbiBhbmQgdGhlbiB0aGUgYmFzZW1lbnQuIFRoZXkgc3BlbnQgdGhlIGVudGlyZSBuaWdodCBpbiBhIGhhbGwgd2FpdGluZyBmb3IgcmVzY3VlLiBBZGFuaSBsYXRlciB0b2xkIG5ld3MgY2hhbm5lbHMgdGhhdCBoZSBzYXcg4oCcZGVhdGggYXQgYSBkaXN0YW5jZSBvZiBqdXN0IDE1IGZlZXQu4oCdIEhlIHdhcyByZXNjdWVkIHRoZSBuZXh0IG1vcm5pbmcgYnkgc2VjdXJpdHkgZm9yY2VzLg0KMTk5ODpbRW52XVtEaXNhc3Rlcl0gRWFzdGVybiBJbmRpYSwgMTk5OCBCYW5nbGFkZXNoIGZsb29kOyA0ayBkZWF0aHMNCjE5OTg6W1dob11bUmVzZWFyY2hdW0NvbXB1dGluZ11bVGVjaF1bQ3VsdHVyZV0gSW50ZXJuZXQgRG93bmxvYWQgTWFuYWdlciAoSURNKSB3YXMgZGV2ZWxvcGVkIGJ5IFRvbmVjIEluYy4sIGFuIEFtZXJpY2FuIGNvbXBhbnkgdGhhdCBzdGFydGVkIHRoZSBwcm9qZWN0IGluIDE5OTggYW5kIHJlbGVhc2VkIHRoZSBzb2Z0d2FyZSBpbiAyMDAxLiBUb25lYyBJbmMuIGZvY3VzZXMgb24gbmV0d29yayBwcm9ncmFtbWluZyBhbmQgY3JlYXRlZCBJRE0gdG8gc3BlZWQgdXAgZG93bmxvYWRzIGJ5IHVzaW5nIGR5bmFtaWMgZmlsZSBzZWdtZW50YXRpb24sIGFjY2VsZXJhdGluZyBzcGVlZHMgYnkgdXAgdG8gOCB0aW1lcy4gDQoNCjE5OTk6NCBKYW51YXJ5IDE5OTk6IE5BU0Egb2ZmaWNpYWxseSByZWNvZ25pemVkIHRoZSBwb3NzaWJpbGl0eSB0aGF0IGxpZmUgb24gRWFydGggY29tZXMgZnJvbSBzcGFjZS4NCjE5IE1hcmNoIDE5OTk6IE5BU0Egc2NpZW50aXN0cyBhbm5vdW5jZWQgdGhhdCB0d28gbW9yZSBtZXRlb3JpdGVzIGhvbGQgZXZlbiBzdHJvbmdlciBmb3NzaWxpemVkIGV2aWRlbmNlIGZvciBwYXN0IGxpZmUgb24gTWFycy4NCjE5OTk6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEcyMCBvciBHcm91cCBvZiAyMCBpcyBhbiBpbnRlcmdvdmVybm1lbnRhbCBmb3J1bSBjb21wcmlzaW5nIDE5IHNvdmVyZWlnbiBjb3VudHJpZXMsIHRoZSBFdXJvcGVhbiBVbmlvbiwgYW5kIHRoZSBBZnJpY2FuIFVuaW9uLiBGb3VuZGVkOiAyNiBTZXB0ZW1iZXIgMTk5OTsgQ2hhaXJtYW4gKEluY3VtYmVudCk6IEN5cmlsIFJhbWFwaG9zYSwgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYQ0KMTk5OTogVGhlIHRlcm0gV2ktRmkgd2FzIGludmVudGVkIGJ5IEludGVyYnJhbmQgKGFuIGFtZXJpY2FuIGJyYW5kIGNvbnN1bHRhbmN5IGNvbXBhbnkpIGFzIGEgcHVuIHVwb24gdGhlIHdvcmQgaGktZmkuDQpXaS1GaSBBbGxpYW5jZSBmb3JtZWQgYXMgYSB0cmFkZSBhc3NvY2lhdGlvbiB0byBob2xkIHRoZSBXaS1GaSB0cmFkZW1hcmsgdW5kZXIgd2hpY2ggbW9zdCBwcm9kdWN0cyBhcmUgc29sZC4NCjE5OTk6IHRoZSB0ZXJtDQoxOTk5OiBJc2xhbWljIFN0YXRlIG9mIElyYXEgYW5kIHRoZSBMZXZhbnQgKGFsc28ga25vd24gYXMgdGhlIElzbGFtaWMgU3RhdGUgb2YgSXJhcSBhbmQgU3lyaWEsIElzbGFtaWMgU3RhdGUsIG9yIGNvbW1vbmx5LCBJU0lTKSBmb3VuZGVkIGFzIEphbWEnYXQgYWwtVGF3aGlkIHdhbC1KaWhhZCBieSBBYnUgTXVzYWIgYWwtWmFycWF3aSBIUSdkIGF0ICBBbC1SYXFxYWguDQoxOTk5IChBcHIgMTIpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBJIFdhbnQgSXQgVGhhdCBXYXkuDQoxOTk5IChBcHIgMTgpOiBDT05DRVJUIGJlY2FtZSBvcGVyYXRpb25hbC4gSXQgd2FzIGRldmVsb3BlZCB1c2luZyBjbGllbnQtc2VydmVyIG1vZGVsIGZvciBkaXN0cmlidXRlZCBjb21wdXRpbmcgaXMgYSB0b3RhbCBzb2x1dGlvbiB0byB0aGUgbmV0d29ya2luZyBvZiB0aGUgUFJTcy4gQWxsIHRoZSBmaXZlIHNpdGVzIGhhdmUgYmVlbiBpbnRlcm5ldC13b3JrZWQgb3ZlciBhIDY0IGticHMgbGluZSB1c2luZyByb3V0ZXJzLCBvbiBsZWFzZWQgY29tbXVuaWNhdGlvbiBsaW5lIGNvbm5lY3Rpb25zIGZyb20gRGVwYXJ0bWVudCBvZiBUZWxlY29tIChET1QpLg0KMTk5OTogQ3JlZGl0IGNhcmRzIGFjY2VwdGVkIGZvciBib29raW5nIHRpY2tldHMgYW5kIHJlc2VydmF0aW9ucyBpbiBzb21lIHN0YXRpb25zIChpbmNsdWRpbmcgTXVtYmFpIENTVCkuDQoxOTk5IChNYXkgMSk6W0Jvb2tdIFJvYmVydCBLaXlvc2FraSAmIFNoYXJvbiBMZWNodGVyJ3MgUmljaCBEYWQncyBDYXNoZmxvdyBRdWFkcmFudDogUmljaCBEYWQncyBHdWlkZSB0byBGaW5hbmNpYWwgRnJlZWRvbTsgUmljaCBEYWQncyBHdWlkZSB0byBJbnZlc3Rpbmc6IFdoYXQgdGhlIFJpY2ggSW52ZXN0IGluIFRoYXQgdGhlIFBvb3IgYW5kIE1pZGRsZSBDbGFzcyBEbyBOb3QhICgyMDAxLCBKYW4gMSk7IFRoZSBSZWFsIEJvb2sgb2YgUmVhbCBFc3RhdGU6IFJlYWwgRXhwZXJ0cy4gUmVhbCBTdG9yaWVzLiBSZWFsIExpZmUuICgyMDA5LCBNYXkgMTIpOyBSaWNoIEtpZCBTbWFydCBLaWQ6IEdpdmluZyBZb3VyIENoaWxkIGEgRmluYW5jaWFsIEhlYWQgU3RhcnQgKDIwMDEsIEphbiAxKTsgDQoxOTk5IChNYXkgMTgpOltNdXNpY10gTWlsbGVubml1bSBpcyB0aGUgdGhpcmQgc3R1ZGlvIGFsYnVtIChzZWNvbmQgaW4gdGhlIFVuaXRlZCBTdGF0ZXMpIGJ5IEFtZXJpY2FuIGJveSBiYW5kIEJhY2tzdHJlZXQgQm95cywgcmVsZWFzZWQgYnkgSml2ZSBSZWNvcmRzLg0KMTk5OSAoRnJpLCAyNCBEZWMpOiBJbmRpYW4gQWlybGluZXMgRmxpZ2h0IDgxNCBjb21tb25seSBrbm93biBhcyBJQyA4MTQgd2FzIGFuIEluZGlhbiBBaXJsaW5lcyBBaXJidXMgQTMwMCBlbiByb3V0ZSBmcm9tIFRyaWJodXZhbiBJbnRlcm5hdGlvbmFsIEFpcnBvcnQgaW4gS2F0aG1hbmR1LCBOZXBhbCB0byBJbmRpcmEgR2FuZGhpIEludGVybmF0aW9uYWwgQWlycG9ydCBpbiBEZWxoaSwgSW5kaWEgd2FzIGhpamFja2VkLiBIYXJrYXQtdWwtTXVqYWhpZGVlbiB3YXMgYWNjdXNlZCBvZiB0aGUgaGlqYWNraW5nLg0KMTk5OTogSVJDVEMNCjE5OTkgKEF1Zyk6IEJvb2tNeVNob3cNCjE5OTkgKFNlcCAxNCk6IFtHZW9Qb2xpdGljc10gVGhlIENvbmZlcmVuY2Ugb24gSW50ZXJhY3Rpb24gYW5kIENvbmZpZGVuY2UtQnVpbGRpbmcgTWVhc3VyZXMgaW4gQXNpYSAoQ0lDQSkgaXMgYW4gaW50ZXItZ292ZXJubWVudGFsIGZvcnVtIGZvciBlbmhhbmNpbmcgY29vcGVyYXRpb24gdG93YXJkcyBwcm9tb3RpbmcgcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYS4gSXQgaXMgYSBmb3J1bSBiYXNlZCBvbiB0aGUgcmVjb2duaXRpb24gdGhhdCB0aGVyZSBpcyBjbG9zZSBsaW5rIGJldHdlZW4gcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYSBhbmQgaW4gdGhlIHJlc3Qgb2YgdGhlIHdvcmxkLiBUaGUga2V5IGlkZWEgb2YgdGhlIENvbmZlcmVuY2UgaXMgYmFzZWQgb24gdGhlIHByaW9yaXR5IG9mIHRoZSBpbmRpdmlzaWJpbGl0eSBvZiBzZWN1cml0eSwgam9pbnQgaW5pdGlhdGl2ZSBhbmQgbXV0dWFsbHkgYmVuZWZpY2lhbCBpbnRlcmFjdGlvbiBvZiBzbWFsbCBhbmQgbGFyZ2Ugc3RhdGVzLg0KMTk5OTogTm9ibGUgRWR1Y2F0aW9uIFNvY2lldHkncyBOb2JsZSBQdWJsaWMgU2Nob29sIChOUFMpLCBHYWpyYXVsYSBmb3VuZGVkIHdpdGggMjEzMDYyNyBhcyBpdHMgQ0JTRSBBZmZpbGlhdGlvbiBuby4NCjE5OTk6IGZpcnN0IC53bWEgZmlsZSBjcmVhdGVkDQoxOTk5OiBOYXBzdGVyIGZvdW5kZWQuDQoxOTk5IChEZWMgMTQpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBTaG93IE1lIHRoZSBNZWFuaW5nIG9mIEJlaW5nIExvbmVseS4gDQoxOTk5OltNdXNpY10gRHIuIERyZSBmdC4gU25vb3AgRG9nZydzIFN0aWxsIEQuUi5FLg0KMTk5OTpbQ3VsdHVyZV0gVGhlIENpdHRhc2xvdyBvcmdhbml6YXRpb24gd2FzIGNyZWF0ZWQgYnkgUGFvbG8gU2F0dXJuaW5pLCB0aGUgZm9ybWVyIG1heW9yIG9mIEdyZXZlIGluIENoaWFudGksIEl0YWx5LiBTYXR1cm5pbmkgd2FzIGluc3BpcmVkIGJ5IENhcmxvIFBldHJpbmkgYW5kIGhpcyBTbG93IEZvb2QgbW92ZW1lbnQsIHN0YXJ0ZWQgaW4gdGhlIDE5ODBzIHRvIHByb3Rlc3QgdGhlIGZpcnN0IE1jRG9uYWxkJ3MgY2hhaW4gaW4gUm9tZS4gU2luY2UgdGhlbiwgdGhlIENpdHRhc2xvdyBtb3ZlbWVudCBoYXMgZ3Jvd24gYWNyb3NzIGZvdXIgY29udGluZW50cywgd2l0aCAyNjIgcGFydGljaXBhdGluZyB0b3ducyBhcyBvZiAyMDIwLiANCjE5OTk6W01hbmFnZW1lbnRdW0J1c2luZXNzXVtQc3ljaG9sb2d5XVtSZXNlYXJjaF0gRHVubmluZyBhbmQgS3J1Z2VyIEVmZmVjdDogRGF2aWQgRHVubmluZyBhbmQgSnVzdGluIEtydWdlciBwdWJsaXNoZWQgdGhlIGluaXRpYWwgc3R1ZHkgaW4gMTk5OSB1bmRlciB0aGUgdGl0bGUgIlVuc2tpbGxlZCBhbmQgVW5hd2FyZSBvZiBJdDogSG93IERpZmZpY3VsdGllcyBpbiBSZWNvZ25pemluZyBPbmUncyBPd24gSW5jb21wZXRlbmNlIExlYWQgdG8gSW5mbGF0ZWQgU2VsZi1Bc3Nlc3NtZW50cyIuDQoxOTk5OltSZXNlYXJjaF0gUmVzZWFyY2ggYnkgVVMgTmF0aW9uYWwgUmVzZWFyY2ggQ291bmNpbC4gV2F0ZXIgZnJvbSB1bmRlcmdyb3VuZCBzb3VyY2VzIG1heSBjb250YWluIHNpZ25pZmljYW50IGFtb3VudHMgb2YgcmFkb24gZGVwZW5kaW5nIG9uIHRoZSBzdXJyb3VuZGluZyByb2NrIGFuZCBzb2lsIGNvbmRpdGlvbnMsIHdoZXJlYXMgc3VyZmFjZSBzb3VyY2VzIGdlbmVyYWxseSBkbyBub3QuDQoxOTk5OltOU0VdIEluY29ycG9yYXRlZCBpbiAxOTk5LCBJUkNUQyBpcyBhIE1pbmkgUmF0bmEgKENhdGVnb3J5IDEsIENlbnRyYWwgUHVibGljIFNlY3RvciBFbnRlcnByaXNlcyApIGFuZCB0aGUgb25seSBjb21wYW55IGF1dGhvcml6ZWQgYnkgdGhlIEluZGlhbiBnb3Zlcm5tZW50IHRvIHByb3ZpZGUgb25saW5lIHJhaWx3YXkgdGlja2V0cywgY2F0ZXJpbmcgc2VydmljZXMsIGFuZCBwYWNrYWdlZCBkcmlua2luZyB3YXRlciBhdCByYWlsd2F5IHN0YXRpb25zIGFuZCB0cmFpbnMgaW4gSW5kaWEuDQoxOTk5OltNbnRuZ2ddW0Jvb2tdIFN0ZXZlIEhvdXNlIGlzIGEgd29ybGQtcmVub3duZWQgY2xpbWJlciwgbW91bnRhaW4gZ3VpZGUgYW5kIFBhdGFnb25pYSBhbWJhc3NhZG9yLCB3aWRlbHkgcmVnYXJkZWQgZm9yIGhpcyBjbGVhbiwgbGlnaHQtYW5kLWZhc3Qgc3R5bGUuIEhlIGhhcyBwdWJsaXNoZWQgYXJ0aWNsZXMgaW4gYSBudW1iZXIgb2YgcGVyaW9kaWNhbHMgaW5jbHVkaW5nOiBBbHBpbmlzdCwgUm9jayBhbmQgSWNlLCBDbGltYmluZywgVGhlIEFtZXJpY2FuIEFscGluZSBKb3VybmFsLCBHcmlwcGVkLCBDYW5hZGlhbiBBbHBpbmUgSm91cm5hbCwgQ2xpbWIsIFZlcnRpY2FsLCBNb250YWduZXMsIFJpc2ssIEFscCssIENhbXBvIEJhc2UsIERlc25pdmVsLCBhbmQgU3RpbGUgQWxwaW4uIEhpcyBlc3NheXMgaGF2ZSBiZWVuIHB1Ymxpc2hlZCBpbiBzZXZlcmFsIGJvb2tzIGluY2x1ZGluZzsgQ29udGFjdDogTW91bnRhaW4gQ2xpbWJpbmcgYW5kIEVudmlyb25tZW50YWwgVGhpbmtpbmc7IFNvbHRhcmksIGEgY29sbGVjdGlvbiBvZiBlc3NheXMgYWJvdXQgc29sbyBjbGltYmluZyBwdWJsaXNoZWQgaW4gSXRhbGlhbjsgQmVyZywgYSBHZXJtYW4gYm9vayBhYm91dCBjbGltYmluZyBpbiB0aGUgSGltYWxheWE7IGFuZCBhbiB1cGNvbWluZyBib29rIGFib3V0IE5hbmdhIFBhcmJhdCBlZGl0ZWQgYnkgUmVpbmhvbGQgTWVzc25lci4gSGUgaGFzIHdvcmtlZCBhcyBhIFBhdGFnb25pYSBhbHBpbmUgYW1iYXNzYWRvciBzaW5jZSAxOTk5LiBQdWJsaXNoZWQ6IFRyYWluaW5nIGZvciB0aGUgTmV3IEFscGluaXNtOiBBIE1hbnVhbCBmb3IgdGhlIENsaW1iZXIgYXMgQXRobGV0ZSBQYXBlcmJhY2sg4oCTIElsbHVzdHJhdGVkLCAzIEFwcmlsIDIwMTQNCjE5OTk6W01udG5nZ10gQ29ucmFkIEFua2VyIChib3JuIE5vdmVtYmVyIDI3LCAxOTYyKSBpcyBhbiBBbWVyaWNhbiByb2NrIGNsaW1iZXIsIG1vdW50YWluZWVyLCBhbmQgYXV0aG9yLiBIZSB3YXMgdGhlIHRlYW0gbGVhZGVyIG9mIFRoZSBOb3J0aCBGYWNlIGNsaW1iaW5nIHRlYW0gZm9yIDI2IHllYXJzIHVudGlsIDIwMTguWzJdIEluIDE5OTksIGhlIGxvY2F0ZWQgR2VvcmdlIE1hbGxvcnkncyBib2R5IG9uIEV2ZXJlc3QgYXMgYSBtZW1iZXIgb2YgYSBzZWFyY2ggdGVhbSBsb29raW5nIGZvciB0aGUgcmVtYWlucyBvZiB0aGUgQnJpdGlzaCBjbGltYmVyIHdobyB3YXMgbGFzdCBzZWVuIGluIDE5MjQuDQoxOTk5OlRoZSBQaXBpc3RyZWwgVmlydXMgZmxldyBmb3IgdGhlIGZpcnN0IHRpbWUgb24gQXVndXN0IDEwLCAxOTk5LiBQcm9kdWN0aW9uIGJlZ2FuIG9uIEphbnVhcnkgMjAsIDIwMDAuIFRoZSBkZXZlbG9wbWVudCBvZiB0aGUgc2hvcnQgd2luZyB2ZXJzaW9uIHN0YXJ0ZWQgaW4gMjAwNy4gVGhlIFZpcnVzIFNXIHByb2R1Y3Rpb24gc3RhcnRlZCBpbiAyMDA4LiBUaGUgVmlydXMgd29uIHRoZSBOQVNBIDIwMDcgUGVyc29uYWwgQWlyIFZlaGljbGUgKFBBVikgQ2hhbGxlbmdlIGFuZCB0aGUgMjAwOCBHZW5lcmFsIEF2aWF0aW9uIFRlY2hub2xvZ3kgKEdBVCkgQ2hhbGxlbmdlLg0KMTk5OTpbc2lsdmljc10gU3VzdGFpbmFibGUgUHJhY3RpY2VzOiBSZXNlYXJjaCBpbiB0aGUgMjB0aCBjZW50dXJ5IHZhbGlkYXRlZCB0aGF0IHNlY29uZC1ncm93dGggc3RhbmRzIGNvdWxkIGJlIHN1c3RhaW5hYmx5IG1hbmFnZWQgdGhyb3VnaCB0ZWNobmlxdWVzIGxpa2UgdGhlIHNlZWQgdHJlZSBtZXRob2QuIFRvZGF5LCBzaWx2aWN1bHR1cmUgZm9jdXNlcyBvbiBjb21wbGV4IHN0YW5kIHN0cnVjdHVyZXMsIGJhbGFuY2luZyBjb21tZXJjaWFsIGRlbWFuZCB3aXRoIGVudmlyb25tZW50YWwgc3Rld2FyZHNoaXAuIA0KDQoyMXN0IGNlbnR1cnkgQ0Ugc3RhcnRlZCBvbiAxc3QgSmFuIDIwMDEgQUQuDQoNCjIwMDBzOltSZXNlYXJjaF0gVGhlIGNsYWltIHRoYXQgIndlIGFyZSA2MCUgYmFuYW5hIiAob3Igc2hhcmUgNjAlIG9mIG91ciBETkEpIGlzIGEgcG9wdWxhciwgeWV0IG9mdGVuIG1pc2ludGVycHJldGVkLCBzdGF0aXN0aWMgdGhhdCBvcmlnaW5hdGVkIGZyb20gY29tcGFyaXNvbnMgb2YgcHJvdGVpbi1jb2RpbmcgZ2VuZXMsIGxpa2VseSBwb3B1bGFyaXplZCBpbiB0aGUgZWFybHkgMjAwMHMgZm9sbG93aW5nIHByZWxpbWluYXJ5IHN0dWRpZXMgb2YgdGhlIGJhbmFuYSBnZW5vbWUuIEl0IHJlZmVycyB0byBhYm91dCA2MCUgb2YgaHVtYW4gZ2VuZXMgaGF2aW5nIGEgcmVjb2duaXphYmxlIGNvdW50ZXJwYXJ0IGluIGJhbmFuYXMsIG5vdCA2MCUgb2Ygb3VyIHRvdGFsIEROQS4gDQpNYW55IG9mIHRoZSDigJxob3VzZWtlZXBpbmfigJ0gZ2VuZXMgdGhhdCBhcmUgbmVjZXNzYXJ5IGZvciBiYXNpYyBjZWxsdWxhciBmdW5jdGlvbiwgc3VjaCBhcyBmb3IgcmVwbGljYXRpbmcgRE5BLCBjb250cm9sbGluZyB0aGUgY2VsbCBjeWNsZSwgYW5kIGhlbHBpbmcgY2VsbHMgZGl2aWRlIGFyZSBzaGFyZWQgYmV0d2VlbiBtYW55IHBsYW50cyAoaW5jbHVkaW5nIGJhbmFuYXMpIGFuZCBhbmltYWxzLldoaWxlIDYwJSBvZiBnZW5lcyBoYXZlIGNvdW50ZXJwYXJ0cywgdGhlc2UgZXNzZW50aWFsIGdlbmVzIG1ha2UgdXAgb25seSBhIHNtYWxsIGZyYWN0aW9uIG9mIHRoZSB0b3RhbCBnZW5vbWU7IGh1bWFucyBhbmQgYmFuYW5hcyBhcmUgbm90IDYwJSBpZGVudGljYWwgb3ZlcmFsbC4gDQpUaGUgcGhyYXNlIGlzIGVzc2VudGlhbGx5IGEgc2ltcGxpZmllZCwgb2Z0ZW4tZXhhZ2dlcmF0ZWQsIHdheSBvZiBoaWdobGlnaHRpbmcgdGhhdCBhbGwgbGlmZSBzaGFyZXMgY29tbW9uIGFuY2VzdHJhbCBnZW5lcyBmb3IgYmFzaWMgY2VsbHVsYXIgcHJvY2Vzc2VzLiANCjIwMDBzOltNQkFdIFNob3VsZCBDb3N0IE1vZGVsaW5nOiBNb2Rlcm4gIlNob3VsZCBDb3N0IiBtb2RlbHMgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBpZGVhbCBjb3N0IG9mIGEgcHJvZHVjdCwgYWNjb3VudGluZyBmb3IgbGFib3IsIG1hdGVyaWFscywgYW5kIG92ZXJoZWFkLiBFbnZpcm9ubWVudGFsICYgU29jaWFsIEltcGFjdDogTW9kZXJuIENCQSBub3cgcm91dGluZWx5IGluY2x1ZGVzIGVudmlyb25tZW50YWwgYW5kIHNvY2lhbCBpbXBhY3RzIGluIGFkZGl0aW9uIHRvIGZpbmFuY2lhbCBvbmVzLiBTaGlmdCBmcm9tIExvY2FsIHRvIEdsb2JhbDogRWFybHksIGhpZ2hseSBsb2NhbCBhc3Nlc3NtZW50cyBldm9sdmVkIGludG8gbGFyZ2Utc2NhbGUsIG5hdGlvbmFsLCBhbmQgaW50ZXJuYXRpb25hbCBDQkEuIFJlZmluZW1lbnQgb2YgVGVjaG5pcXVlczogTW92aW5nIGZyb20gc2ltcGxlLCBzaW5nbGUtcGVyaW9kIG1vZGVscyB0byBjb21wbGV4LCBtdWx0aS1wZXJpb2Qgc2ltdWxhdGlvbnMuIEluY3JlYXNlZCBEYXRhIFVzZTogVGhlIGF2YWlsYWJpbGl0eSBvZiBsYXJnZSwgZ3JhbnVsYXIgZGF0YSBzZXRzIGhhcyBhbGxvd2VkIGZvciBtb3JlIHByZWNpc2UgYW5kIHJlbGlhYmxlIGFuYWx5c2lzLiANCjIwMDBzOltNbnRuZ2ddW0V4dHJlbWVdIEluIHRoZSBlYXJseSAyMDAwcywgRGlkaWVyIEJlcnRob2Qgd2FzIHRoZSBiZXN0IGNyYWNrIGNsaW1iZXIgaW4gdGhlIHdvcmxkLCB0aGVuIGhlIGRyb3BwZWQgb3V0IG9mIGNsaW1iaW5nIGFuZCBlc3NlbnRpYWxseSBkaXNhcHBlYXJlZCBmcm9tIHRoZSB3b3JsZC4NCjIwMDBzOltSZWFsdHldIEVhcmx5IDIwMDBzOiBSZWFsIGVzdGF0ZSB3YXMgaW4gaXRzIGVhcmx5IHN0YWdlcyBpbiBJbmRpYSwgd2l0aCBncmFkdWFsIGdyb3d0aCBhbmQgZGV2ZWxvcG1lbnQuIA0KMjAwMHM6VGVhbXdvcmsgaXMgbm93IGFuIGludGVncmFsIHBhcnQgb2Ygb3JnYW5pemF0aW9uYWwgc3RyYXRlZ3ksIHdpdGggYSBncmVhdGVyIGVtcGhhc2lzIG9uIGN1c3RvbWl6YXRpb24sIHBlcnNvbmFsaXphdGlvbiwgYW5kIHN0cmF0ZWdpYyBpbnRlZ3JhdGlvbiBvZiB0ZWFtLWJ1aWxkaW5nIHByYWN0aWNlcy4gVGhlIHJpc2Ugb2YgdGVjaG5vbG9neSBoYXMgYWxzbyBpbmZsdWVuY2VkIHRlYW13b3JrLCB3aXRoIHJlbW90ZSB3b3JrIGJlY29taW5nIG1vcmUgcHJldmFsZW50IGFuZCBuZXcgdG9vbHMgZW1lcmdpbmcgdG8gZmFjaWxpdGF0ZSBjb2xsYWJvcmF0aW9uLiANCg0KMjAwMDpbVVNdW0dlb1BvbGl0aWNzXSBvdmVydGhyb3cgb2YgU2xvYm9kYW4gTWlsb8WhZXZpxIcuIChVUydzIGludm9sdmVtZW50IGluIHJlZ2ltZSBjaGFuZ2UpDQoyMDAwOiBbR2VvUG9saXRpY3NdW01pbGl0YXJ5XVtFY29ub21pY3NdIFRoZSBVUyBEb2xsYXIgaG9sZHMgYSA3MiUgc2hhcmUgb2YgYWxsIGdsb2JhbCBjdXJyZW5jeSByZXNlcnZlcyBbWzE2OjQyXShodHRwOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dllKcmkxZU5SeWMmdD0xMDAyKV0uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdIDI2IEFwcmlsIDIwMDA6IHRoZSBHZXJtYW4gdGVhbSBvcGVyYXRpbmcgdGhlIG1hc3Mgc3BlY3Ryb21ldGVyIG9uIE5BU0EncyBTdGFyZHVzdCBtaXNzaW9uIGFubm91bmNlZCB0aGUgZGV0ZWN0aW9uIG9mIHZlcnkgbGFyZ2Ugb3JnYW5pYyBtb2xlY3VsZXMgaW4gaW50ZXJzdGVsbGFyIHNwYWNlLiBOb25iaW9sb2dpY2FsIHNvdXJjZXMgZm9yIG9yZ2FuaWMgbW9sZWN1bGVzIHNvIGxhcmdlIGFyZSBub3Qga25vd24uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdMTkgT2N0b2JlciAyMDAwLCBhIHRlYW0gb2YgYmlvbG9naXN0cyBhbmQgYSBnZW9sb2dpc3QgYW5ub3VuY2VkIHRoZSByZXZpdmFsIG9mIGJhY3RlcmlhIHRoYXQgYXJlIDI1MCBtaWxsaW9uIHllYXJzIG9sZCwgc3RyZW5ndGhlbmluZyB0aGF0IGNhc2UgdGhhdCBiYWN0ZXJpYWwgc3BvcmVzIGNhbiBiZSBpbW1vcnRhbC4NCjEzIERlY2VtYmVyIDIwMDA6IGEgTkFTQSB0ZWFtIGRlbW9uc3RyYXRlZCB0aGF0IHRoZSBtYWduZXRvc29tZXMgaW4gTWFycyBtZXRlb3JpdGUgQUxIIDg0MDAxIGFyZSBiaW9sb2dpY2FsLg0KMjAwMDpbUmVzZWFyY2hdW1NwYWNlXSBNaWxlaWtvd3NreSBDLCBDdWNpbm90dGEgRkEsIFdpbHNvbiBKVywgR2xhZG1hbiBCLCBIb3JuZWNrIEcsIExpbmRlZ3JlbiBMLCBNZWxvc2ggSiwgUmlja21hbiBILCBWYWx0b25lbiBNLCBaaGVuZyBKUS4gTmF0dXJhbCB0cmFuc2ZlciBvZiB2aWFibGUgbWljcm9iZXMgaW4gc3BhY2UuIEljYXJ1cyAyMDAwLCAxNDU6Mzkx4oCTNDI3LiBbRE9JXSBbUHViTWVkXSBbR29vZ2xlIFNjaG9sYXJdDQoyMDAwOltTcGFjZVhdIFMvMjAwMCAoOTApIDEgTW9vbiBEaXNjb3ZlcmVyOiBXaWxsaWFtIEouIE1lcmxpbmUgT3JiaXRzOiA5MCBBbnRpb3BlIEFic29sdXRlIG1hZ25pdHVkZTogOS4wMg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gZGVtb25zdHJhdGVkIFNob3LigJlzIGFsZ29yaXRobSBvbiBhIDUtcXViaXQgTk1SIHF1YW50dW0gY29tcHV0ZXIsIGZhY3RvcmluZyB0aGUgbnVtYmVyIDE1Lg0KMjAwMDogQXQgYWdlIDE0IGFuZCBpbiBjbGFzcyA4dGgsIEFhcm9uIFN3YXJ0eiBiZWNhbWUgYSBtZW1iZXIgb2YgdGhlIHdvcmtpbmcgZ3JvdXAgdGhhdCBhdXRob3JlZCB0aGUgUlNTIDEuMCB3ZWIgc3luZGljYXRpb24gc3BlY2lmaWNhdGlvbi4NCjIwMDA6IE1ha2VteVRyaXANCjIwMDAgKEphbiAxNCk6W0phY2tdIEthaG8gTmFhLi4uIFB5YWFyIEhhaQ0KMjAwMCAoRmViKTogSW5kaWFuIFJhaWx3YXlzIHdlYiBzaXRlIGkuZS4gaHR0cDovL2luZGlhbnJhaWx3YXlzLmdvdi5pbi8gd2FzIGRlcGxveWVkIGJ5IENSSVMuDQoyMDAwIChNYXIpOltCb29rXSBNYWxjb2xtIEdsYWR3ZWxsJ3MgZGVidXQgYm9vaywgVGhlIFRpcHBpbmcgUG9pbnQ6IEhvdyBMaXR0bGUgVGhpbmdzIENhbiBNYWtlIGEgQmlnIERpZmZlcmVuY2UuIA0KQmxpbms6IFRoZSBQb3dlciBvZiBUaGlua2luZyBXaXRob3V0IFRoaW5raW5nICgyMDA1LCBKYW4gMTEpOyANCk91dGxpZXJzOiBUaGUgU3Rvcnkgb2YgU3VjY2VzcyAoMjAwOCwgTm92IDE4KTsgDQpXaGF0IHRoZSBEb2cgU2F3OiBBbmQgT3RoZXIgQWR2ZW50dXJlcyAoMjAwOSwgT2N0IDIwKTsgDQpEYXZpZCBhbmQgR29saWF0aDogVW5kZXJkb2dzLCBNaXNmaXRzLCBhbmQgdGhlIEFydCBvZiBCYXR0bGluZyBHaWFudHMgKDIwMTMsIE9jdCAxKQ0KVGFsa2luZyB0byBTdHJhbmdlcnM6IFdoYXQgV2UgU2hvdWxkIEtub3cgYWJvdXQgdGhlIFBlb3BsZSBXZSBEb24ndCBLbm93ICgyMDE5KQ0KMjAwMCAoQXByIDEpOltCb29rXSBSb2JlcnQgS2l5b3Nha2kgJiBTaGFyb24gTGVjaHRlcidzIFJpY2ggRGFkIFBvb3IgRGFkLg0KMjAwMCAoQXByIDEpOltUZWNobm9sb2d5XVtSZXNlYXJjaF0gIldoeSBUaGUgRnV0dXJlIERvZXNuJ3QgTmVlZCBVcyIgaXMgYW4gYXJ0aWNsZSB3cml0dGVuIGJ5IEJpbGwgSm95IGluIHRoZSBBcHJpbCAyMDAwIGlzc3VlIG9mIFdpcmVkIG1hZ2F6aW5lLiBJbiB0aGUgYXJ0aWNsZSwgaGUgYXJndWVzIHRoYXQgIk91ciBtb3N0IHBvd2VyZnVsIDIxc3QtY2VudHVyeSB0ZWNobm9sb2dpZXPigJRyb2JvdGljcywgZ2VuZXRpYyBlbmdpbmVlcmluZywgYW5kIG5hbm90ZWNo4oCUYXJlIHRocmVhdGVuaW5nIHRvIG1ha2UgaHVtYW5zIGFuIGVuZGFuZ2VyZWQgc3BlY2llcy4iIA0KMjAwMCAoSnVuIDI2KTpbTXVzaWNdICJZZWxsb3ciIGlzIGEgc29uZyBieSB0aGUgQnJpdGlzaCByb2NrIGJhbmQgQ29sZHBsYXkuIFRoZSBiYW5kIHdyb3RlIHRoZSBzb25nIGFuZCBjby1wcm9kdWNlZCBpdCB3aXRoIEJyaXRpc2ggcmVjb3JkIHByb2R1Y2VyIEtlbiBOZWxzb24gZm9yIHRoZWlyIGRlYnV0IGFsYnVtLCBQYXJhY2h1dGVzICgyMDAwKS4gVGhlIHNvbmcgd2FzIHJlY29yZGVkIGluIE1hcmNoIDIwMDAgYW5kIHJlbGVhc2VkIG9uIDI2IEp1bmUgdGhhdCBzYW1lIHllYXIuDQoyMDAwIChTZXApOiBBbWF6b24ncyBKZWZmIEJlem9zIGZvdW5kZWQuDQoyMDAwIChTZXApOltDcmltZV1bSW5kaWFdIENoaG90YSBTaGFrZWVsJ3MgYXR0YWNrIG9uIFJhamFuIGluIGhpcyBCYW5na29rIGhvdGVsIHJvb20uDQoyMDAwIChTZXApOiBSYWlsVGVsIENvcnBvcmF0aW9uIG9mIEluZGlhIEx0ZC4gZm91bmRlZCBhbmQgSFEnZCBhdCAxNDMsIEluc3RpdHV0aW9uYWwgQXJlYSwgU2VjdG9yLTQ0LCBHdXJnYW9uLCBIYXJ5YW5hLCBJbmRpYS4gSXQgaXMgYSBNaW5pcmF0bmEgZW50ZXJwcmlzZSBvZiBHb3Zlcm5tZW50IG9mIEluZGlhIGZvY3VzaW5nIG9uIHByb3ZpZGluZyBicm9hZGJhbmQgYW5kIFZQTiBzZXJ2aWNlcy4NCjIwMDAgKFNlcCAxNyk6IFtHZW9Qb2xpdGljc10gVGhlIGlkZWEgb2YgYW4gQXNpYSBDb29wZXJhdGlvbiBEaWFsb2d1ZSAoQUNEKSB3YXMgcmFpc2VkIGF0IHRoZSBGaXJzdCBJbnRlcm5hdGlvbmFsIENvbmZlcmVuY2Ugb2YgQXNpYW4gUG9saXRpY2FsIFBhcnRpZXMgKGhlbGQgaW4gTWFuaWxhIGJldHdlZW4gMTfigJMyMCBTZXB0ZW1iZXIgMjAwMCkgYnkgU3VyYWtpYXJ0IFNhdGhpcmF0aGFpLCB0aGVuIGRlcHV0eSBsZWFkZXIgb2YgdGhlIG5vdyBkZWZ1bmN0IFRoYWkgUmFrIFRoYWkgUGFydHksIG9uIGJlaGFsZiBvZiBoaXMgcGFydHkgbGVhZGVyLCBUaGFrc2luIFNoaW5hd2F0cmEsIHRoZW4gUHJpbWUgTWluaXN0ZXIgb2YgVGhhaWxhbmQuIEl0IHdhcyBzdWdnZXN0ZWQgdGhhdCBBc2lhIGFzIGEgY29udGluZW50IHNob3VsZCBoYXZlIGl0cyBvd24gZm9ydW0gdG8gZGlzY3VzcyBBc2lhLXdpZGUgY29vcGVyYXRpb24uIEFmdGVyd2FyZHMsIHRoZSBpZGVhIG9mIHRoZSBBQ0Qgd2FzIGZvcm1hbGx5IHB1dCBmb3J3YXJkIGR1cmluZyB0aGUgMzR0aCBBU0VBTiBGb3JlaWduIE1pbmlzdGVycyBNZWV0aW5nIGluIEhhbm9pLCAyM+KAkzI0IEp1bHkgMjAwMSBhbmQgYXQgdGhlIEFTRUFOIEZvcmVpZ24gTWluaXN0ZXJzIFJldHJlYXQgaW4gUGh1a2V0LCAyMOKAkzIxIEZlYnJ1YXJ5IDIwMDIuDQoyMDAwIChPY3QgNCk6W011c2ljXSBGb3JtZWQgaW4gMTk5NiwgTGlua2luIFBhcmsgcm9zZSB0byBpbnRlcm5hdGlvbmFsIGZhbWUgd2l0aCB0aGVpciBkZWJ1dCBzdHVkaW8gYWxidW0sIEh5YnJpZCBUaGVvcnkuIEZvdXIgc2luZ2xlcyB3ZXJlIHJlbGVhc2VkIGZyb20gSHlicmlkIFRoZW9yeTogIk9uZSBTdGVwIENsb3NlciIsICJJbiB0aGUgRW5kIiwgIkNyYXdsaW5nIiBhbmQgIlBhcGVyY3V0IiwgYWxsIG9mIHRoZW0gYmVpbmcgcmVzcG9uc2libGUgZm9yIGxhdW5jaGluZyBMaW5raW4gUGFyayBpbnRvIG1haW5zdHJlYW0gcG9wdWxhcml0eS4gV2hpbGUgIkluIHRoZSBFbmQiIHdhcyB0aGUgbW9zdCBzdWNjZXNzZnVsIG9mIHRoZSBmb3VyLCBhbGwgb2YgdGhlIHNpbmdsZXMgaW4gdGhlIGFsYnVtIHJlbWFpbiBzb21lIG9mIHRoZSBiYW5kJ3MgbW9zdCBzdWNjZXNzZnVsIHNvbmdzIHRvIGRhdGUuDQoyMDAwIChOb3YgOSk6IGZvcm1hdGlvbiBvZiBVdHRhcmFraGFuZCBhcyBVdHRhcmFuY2hhbCAyMDAwIChKdW4gOSk6IEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQWN0LCAyMDAwLiBUaGUgYmlsbCB3YXMgcGFzc2VkIGluIHRoZSBidWRnZXQgc2Vzc2lvbiBvZiAyMDAwIGFuZCBzaWduZWQgYnkgUHJlc2lkZW50IEsuIFIuIE5hcmF5YW5hbiBvbiA5IE1heSAyMDAwLiBUaGUgYmlsbCB3YXMgZmluYWxpc2VkIGJ5IGdyb3VwIG9mIG9mZmljaWFscyBoZWFkZWQgYnkgdGhlbiBNaW5pc3RlciBvZiBJbmZvcm1hdGlvbiBUZWNobm9sb2d5LCBQcmFtb2QgTWFoYWphbi4NCjIwMDA6IGZvcm1hdGlvbiBvZg0KMjAwMDogSmFpc2gtZS1Nb2hhbW1lZCAobGl0ZXJhbGx5ICJUaGUgQXJteSBvZiBNdWhhbW1hZCIsIEplTSkgZm91bmRlZCBhdCBCYWhhd2FscHVyLCBQdW5qYWIsIFBha2lzdGFuLg0KMjAwMDogQ2hpbmEncyBCZWlEb3UgbmF2aWdhdGlvbiB0ZXN0IHN5c3RlbSBzdGFydHMuDQoyMDAwOiBGaXNlcnYgaGFkIGFjcXVpcmVkIG1vcmUgdGhhbiA5MCBidXNpbmVzc2VzLiBUaGUgbnVtYmVyIG9mIGVtcGxveWVlcyBncmV3IGZyb20gMjY0IHRvIDE0LDAwMC4gRmlzZXJ2IHdhcyBhbiBpbmR1c3RyeSBsZWFkZXIsIHdpdGggcmV2ZW51ZSB0aGF0IGluY3JlYXNlZCBmcm9tICQyMSBtaWxsaW9uIHRvICQxLjQgYmlsbGlvbiBpbiAxNSB5ZWFycy4NCjIwMDAgKERlYyA4KTpbR2FtaW5nXSBQcm9qZWN0IEkuRy5JLiBpcyBhIHRhY3RpY2FsIGZpcnN0LXBlcnNvbiBzaG9vdGVyIHZpZGVvIGdhbWUuIEl0IHdhcyBkZXZlbG9wZWQgYnkgSW5uZXJsb29wIFN0dWRpb3MgYW5kIHJlbGVhc2VkIGluIERlY2VtYmVyIDIwMDAgYnkgRWlkb3MgSW50ZXJhY3RpdmUuIFRoZSBnYW1lIHJlY2VpdmVkIG1peGVkIHJldmlld3MgZHVlIHRvIHNob3J0Y29taW5ncyBpbmNsdWRpbmcgYSBwb29ybHkgcHJvZ3JhbW1lZCBBLkkuLCBsYWNrIG9mIGEgbWlkLWdhbWUgc2F2ZSBvcHRpb24sIGFuZCB0aGUgbGFjayBvZiBtdWx0aXBsYXllciBmZWF0dXJlcy4gSG93ZXZlciBpdCB3YXMgcHJhaXNlZCBmb3IgaXRzIHNvdW5kIGRlc2lnbiBhbmQgZ3JhcGhpY3MsIHRoYW5rcyBpbiBwYXJ0IHRvIGl0cyB1c2Ugb2YgYSBwcm9wcmlldGFyeSBnYW1lIGVuZ2luZSB0aGF0IHdhcyBwcmV2aW91c2x5IHVzZWQgaW4gSW5uZXJsb29wJ3MgSm9pbnQgU3RyaWtlIEZpZ2h0ZXIuDQoyMDAwIChEZWMgMjEpOltKYWNrXSBSYWp1IENoYWNoYSByZWxlYXNlZC4NCjIwMDA6IFtCdXNpbmVzc11bRmluYW5jZV1bQ29ycG9yYXRlXVtJbmRpYV0gUklMIHBpbG90ZWQgd29ybGQncyBsYXJnZXN0IHBldHJvbGV1bSByZWZpbmVyeSBhdCBKYW1uYWdhciwgR3VqYXJhdCwgcmVmaW5pbmcgMS4yNE1uIGJhcnJlbHMvZGF5Lg0KMjAwMDpbQ3JpbWVdW0luZGlhXSBQb2xpY2UgZW5jb3VudGVycyBpbiBNdW1iYWkuIE1vc3QgY3JpbWluYWxzIGZsZWVpbmcgdG8gQ2FsY3VsdHRhLiBBZnRhYiBCaGF0a2kgZGVzdGFiaWxpc2UgdGhlIGVjb25vbXkgYnkgc3ByZWFkaW5nIGZha2UgY3VycmVuY3kgbm90ZXMgcHJpbnRlZCBieSBJU0kgZnVuY3Rpb25hcmllcywgYW5kIHR3bywgc2VuZCBtZXJjZW5hcmllcyB0byBjb25kdWN0IGFiZHVjdGlvbnMgYW5kIHRlcnJvcmlzdCBhdHRhY2tzLg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBUZWNobmljYWwgVW5pdmVyc2l0eSBvZiBNdW5pY2ggKDUgcXViaXQpOyBMb3MgQWxhbW9zIE5hdGlvbmFsIExhYiAoNyBxdWJpdHMpDQoyMDAwOkluIDIwMDAsIFRhdGEgVGVhIGFjcXVpcmVkIHRoZSBUZXRsZXkgVGVhIENvbXBhbnkgZm9yICQ0MDcgbWlsbGlvbi4gT3RoZXIgbm90YWJsZSBhY3F1aXNpdGlvbnMgaW5jbHVkZSBOYXRTdGVlbCAoMjAwNCksIEJydW5uZXIgTW9uZCAoMjAwNSksIGFuZCBFaWdodCBPJ0Nsb2NrIENvZmZlZSAoMjAwNikuIA0KMjAwMDogQmlybGEgYWNxdWlyZWQgSW5kaWFuIEFsdW1pbnVtIENvbXBhbnkgKElOREFMKS4gDQoyMDAwOiBTYXR5YSBOYXJheWFuYSBHb2Vua2Egd29ya2VkIGFzIGFuIGludGVybmF0aW9uYWwgYnVzaW5lc3NtYW4gYmFzZWQgaW4gTXlhbm1hciBhbmQgSW5kaWEgZm9yIGEgbGFyZ2UgcGFydCBvZiBoaXMgbGlmZS4gSGUgd2FzIGEga2V5bm90ZSBzcGVha2VyIG9uIHRoZSBzdWJqZWN0IG9mIFNwaXJpdHVhbGl0eSBpbiBCdXNpbmVzcyBhdCB0aGUgMzB0aCBXb3JsZCBFY29ub21pYyBGb3J1bSBpbiBEYXZvcywgU3dpdHplcmxhbmQgYmV0d2VlbiAyNiBKYW4gYW5kIDIgRmViIDIwMDAuIFR3byB5ZWFycyBsYXRlciBoZSBjb25kdWN0ZWQgdGhlIGZpcnN0IDEwLWRheSBjb3Vyc2UgaW4gVmlwYXNzYW5hIE1lZGl0YXRpb24gZXNwZWNpYWxseSBmb3IgYnVzaW5lc3MgZXhlY3V0aXZlcyBhbmQgZ292ZXJubWVudCBvZmZpY2lhbHMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAyMjUgeWVhcnMgb2YgSW5kZXBlbmRlbnQgVVNBIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIA0KDQoyMDAxOltVU11bR2VvUG9saXRpY3NdIGludmFzaW9uIG9mIEFmZ2hhbmlzdGFuLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMjAwMTpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgU2hhbmdoYWkgQ29vcGVyYXRpb24gT3JnYW5pc2F0aW9uIChTQ08pIGlzIGEgRXVyYXNpYW4gcG9saXRpY2FsLCBlY29ub21pYywgaW50ZXJuYXRpb25hbCBzZWN1cml0eSBhbmQgZGVmZW5jZSBvcmdhbml6YXRpb24gb2YgdGVuIG1lbWJlciBzdGF0ZXMuIEl0IHdhcyBlc3RhYmxpc2hlZCBpbiAyMDAxIGJ5IHRoZSBQZW9wbGUncyBSZXB1YmxpYyBvZiBDaGluYSwgS2F6YWtoc3RhbiwgS3lyZ3l6c3RhbiwgUnVzc2lhLCBhbmQgVGFqaWtpc3RhbiBhbmQgVXpiZWtpc3Rhbi4gSW4gSnVuZSAyMDE3LCBpdCBleHBhbmRlZCB0byBlaWdodCBzdGF0ZXMsIHdpdGggSW5kaWEgYW5kIFBha2lzdGFuLiBJcmFuIGpvaW5lZCB0aGUgZ3JvdXAgaW4gSnVseSAyMDIzLCBhbmQgQmVsYXJ1cyBpbiBKdWx5IDIwMjQuIFNldmVyYWwgY291bnRyaWVzIGFyZSBlbmdhZ2VkIGFzIG9ic2VydmVycyBvciBkaWFsb2d1ZSBwYXJ0bmVycy4gRm91bmRlcnM6IENoaW5hLCBSdXNzaWEsIEthemFraHN0YW4sIFV6YmVraXN0YW4sIEt5cmd5enN0YW4sIFRhamlraXN0YW47IEhlYWRxdWFydGVyczogQmVpamluZywgQ2hpbmE7IEZvdW5kZWQ6IDE1IEp1bmUgMjAwMQ0KMjAwMTpbQnVzaW5lc3NdIDIwMDHigJMyMDA1OiBIRlQgZXhlY3V0aW9uIHRpbWVzIGRlY3JlYXNlZCBmcm9tIHNldmVyYWwgc2Vjb25kcyB0byBtaWxsaXNlY29uZHMuIChIRlQpDQoyMDAxOltDb21wdXRpbmddW1F1YW50dW1dICBJQk0gaW1wbGVtZW50ZWQgR3JvdmVy4oCZcyBhbGdvcml0aG0gb24gYSA3LXF1Yml0IE5NUiBxdWFudHVtIGNvbXB1dGVyLCBmaW5kaW5nIGEgbWFya2VkIGl0ZW0gaW4gYSBkYXRhYmFzZSBvZiA0IGVudHJpZXMuDQoyMDAxOiBMaWZlIG9mIFBpIGlzIGEgQ2FuYWRpYW4gcGhpbG9zb3BoaWNhbCBub3ZlbCBieSBZYW5uIE1hcnRlbCBwdWJsaXNoZWQuIFRoZSBwcm90YWdvbmlzdCBpcyBQaXNjaW5lIE1vbGl0b3IgIlBpIiBQYXRlbCwgYW4gSW5kaWFuIGJveSBmcm9tIFBvbmRpY2hlcnJ5IHdobyBleHBsb3JlcyBpc3N1ZXMgb2Ygc3Bpcml0dWFsaXR5IGFuZCBtZXRhcGh5c2ljcyBmcm9tIGFuIGVhcmx5IGFnZS4gSGUgc3Vydml2ZXMgMjI3IGRheXMgYWZ0ZXIgYSBzaGlwd3JlY2sgd2hpbGUgc3RyYW5kZWQgb24gYSBsaWZlYm9hdCBpbiB0aGUgUGFjaWZpYyBPY2VhbiB3aXRoIGEgQmVuZ2FsIHRpZ2VyIHdoaWNoIHJhaXNlcyBxdWVzdGlvbnMgYWJvdXQgdGhlIG5hdHVyZSBvZiByZWFsaXR5IGFuZCBob3cgaXQgaXMgcGVyY2VpdmVkIGFuZCB0b2xkLjtTZXZlbiBTdG9yaWVzICgxOTkzKQ0KMjAwMTpbQ3JpbWVdW0luZGlhXSBDaGhvdGEgUmFqYW4ncyBhc3NvY2lhdGVzIHRyYWNrZWQgZG93biBhbmQgc2hvdCBkZWFkIGhvdGVsaWVyIFZpbm9kIGluIE11bWJhaSwgYXMgd2VsbCBhcyBTdW5pbCBTb2FucyDigJMgYW5vdGhlciBEYXdvb2QgYXNzb2NpYXRlLg0KMjAwMSAoSmFuIDEpOltCb29rXSBHcmVnIE1jS2Vvd24ncyBFc3NlbnRpYWxpc206IFRoZSBEaXNjaXBsaW5lZCBQdXJzdWl0IG9mIExlc3MNCjIwMDEgKEphbiAxKTpbQm9va10gQnJpYW4gVHJhY3kncyBFYXQgVGhhdCBGcm9nIQ0KMjAwMTogVGhlIEFyZHVpbm8gcHJvamVjdCBzdGFydGVkIGF0IHRoZSBJbnRlcmFjdGlvbiBEZXNpZ24gSW5zdGl0dXRlIEl2cmVhIChJRElJKSBpbiBJdnJlYSwgSXRhbHkuIEF0IHRoYXQgdGltZSwgdGhlIHN0dWRlbnRzIHVzZWQgYSBCQVNJQyBTdGFtcCBtaWNyb2NvbnRyb2xsZXIgYXQgYSBjb3N0IG9mICQxMDAsIGEgY29uc2lkZXJhYmxlIGV4cGVuc2UgZm9yIG1hbnkgc3R1ZGVudHMuDQoyMDAxIChBcHIgNHRoKTogQ2hhcmxlcyBNLiBWZXN0LCB0aGUgdGhlbiBQcmVzaWRlbnQgb2YgTUlUIGFubm91bmNlZCBPcGVuQ291cnNlV2FyZSAoT0NXKSBwdWJsaWNpemluZyBhbGwgb2YgaXRzIDIsMDAwIGNvdXJzZXMgIGF0IHRoZSBlc3RpbWF0ZWQgY29zdCBvZiAkMTAwIG1pbGxpb24gKG9uIGFuIGF2Zy4sIGEgTUlUIHN0dWRlbnRzIHBheXMgYXJvdW5kICQyNiwwMDAgYXMgb2ZmbGluZSB0dWl0aW9uIGZlZSkNCjIwMDE6IFVTIGludmFkZWQgQWZnaGFuaXN0YW4gaW4gcmVzcG9uc2UgdG8gOS8xMSBhdHRhY2tzLiBPZmZpY2lhbGx5LCBJdCBoYXMgYmVjb21lIHRoZSBsb25nZXN0IHdhciBpbiBBbWVyaWNhbiBoaXN0b3J5Lg0KMjAwMTogaVBvZCBieSBUb255IEZhZGVsbA0KMjAwMSAoSnVuIDE1KTpbSmFja10gR2FkYXI6IEVrIFByZW0gS2F0aGE7IExhZ2FhbjogT25jZSBVcG9uIGEgVGltZSBpbiBJbmRpYQ0KMjAwMSAoU2VwIDExKTogOS8xMSBUZXJyb3Jpc3QgYXR0YWNrcy4gVGhlIFNlcHRlbWJlciAxMSBvciA5LzExLCBhdHRhY2tzIHdlcmUgYSBzZXJpZXMgb2YgZm91ciBjb29yZGluYXRlZCB0ZXJyb3Jpc3QgYXR0YWNrcyBieSB0aGUgSXNsYW1pYyB0ZXJyb3Jpc3QgZ3JvdXAgYWwtUWFlZGEgb24gdGhlIFVuaXRlZCBTdGF0ZXMgb24gdGhlIG1vcm5pbmcgb2YgVHVlc2RheSwgU2VwIDExLiBUaGUgbG9zcyBvZiBsaWZlIHdhcyBlc3RpbWF0ZWQgYXQganVzdCB1bmRlciAzLDAwMC4gVGhlIGV2ZW50IGNoYW5nZWQgQW1lcmljYW4gZm9yZWlnbiBwb2xpY3kuIEl0IHdhcyBhIG1vdGl2YXRpbmcgZmFjdG9yIGJlaGluZCB0aGUgY29udHJvdmVyc2lhbCBpbnZhc2lvbiBvZiBJcmFxIGFuZCBsZWQgdG8gYSDigJh3YXIgb24gdGVycm9y4oCZIHN5bWJvbGlzZWQgYnkgR3VhbnRhbmFtbyBCYXkgYW5kIGEgZGViYXRlIG92ZXIgdGhlIGp1c3RpZmljYXRpb24gb2YgdG9ydHVyZS4NCjIwMDEgKE9jdCA3KTpbR2VvUG9saXRpY3NdIFVuaXRlZCBTdGF0ZXMgaW52YXNpb24gb2YgQWZnaGFuaXN0YW46IEluIGxhdGUgMjAwMSwgdGhlIFVuaXRlZCBTdGF0ZXMgYW5kIGl0cyBjbG9zZSBhbGxpZXMgaW52YWRlZCBBZmdoYW5pc3RhbiBhbmQgdG9wcGxlZCB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50LiBUaGUgaW52YXNpb24ncyBzdGF0ZWQgYWltcyB3ZXJlIHRvIGRpc21hbnRsZSBhbC1RYWVkYSwgd2hpY2ggaGFkIGV4ZWN1dGVkIHRoZSBTZXB0ZW1iZXIgMTEgYXR0YWNrcywgYW5kIHRvIGRlbnkgaXQgYSBzYWZlIGJhc2Ugb2Ygb3BlcmF0aW9ucyBpbiBBZmdoYW5pc3RhbiBieSByZW1vdmluZyB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50IGZyb20gcG93ZXIuIERlYyA3LCAyMDAxIG9ud2FyZCBzdGFydGVkIFdhciBpbiBBZmdoYW5pc3Rhbi4NCjIwMDEgKE9jdCAxNik6W0Jvb2tdIE1jS2luc2V5IFJlc2VhcmNoZXIgSmFtZXMgQy4gQ29sbGlucycgR29vZCBUbyBHcmVhdDogV2h5IFNvbWUgQ29tcGFuaWVzIE1ha2UgdGhlIExlYXAuLi5BbmQgT3RoZXJzIERvbid0OyANCjIwMDEgKE5vdik6W0NyaW1lXVtJbmRpYV0gQWJkdWwgR2FmZmFyIGFsaWFzIENoaWtuYSBHYWZmYXIgY2F1Z2h0IGJ5IHRoZSBkZXRlY3RpdmUgZGVwYXJ0bWVudCBpbiBDYWxjdXR0YSANCjIwMDEgKEphbiAyKTogVGhlIG5vcnRoZXJuIGVsZWN0cmljYWwgZ3JpZCBjb2xsYXBzZWQgaW4gSW5kaWEuIEEgZmF1bHQgaW4gdGhlIHRyYW5zbWlzc2lvbiBzeXN0ZW0gaW4gdGhlIHN0YXRlIG9mIFV0dGFyIFByYWRlc2ggbGVkIHRvIGNhc2NhZGluZyBmYWlsdXJlIHRocm91Z2hvdXQgbm9ydGhlcm4gSW5kaWEgYWZmZWN0aW5nIDIzIGNyb3JlIHJlc2lkZW50cy4NCjIwMDE6IElWUlMgKCdJbnRlcmFjdGl2ZSBWb2ljZSBSZXNwb25zZSBTeXN0ZW0nKSBmb3IgdGVsZXBob25pYyBlbnF1aXJpZXMgYWJvdXQgdHJhaW5zIGludHJvZHVjZWQgaW4gc29tZSBzdGF0aW9ucy4NCjIwMDE6IE1hZGVFYXN5IGluY29ycG9yYXRlZCBhdCA0NC1BLzEsIEthbHUgU2FyYWksIE5lYXIgSGF1eiBLaGFzIE1ldHJvIFN0YXRpb24sIE5ldyBEZWxoaS0xMTAwMTYNCjIwMDE6IEFjYyB0byAyMDAxIGNlbnN1cywgMzAgbGFraHMgd2VyZSBpbW1pZ3JhdGVkIHRvIEluZGlhIGZyb20gQmFuZ2xhZGVzaCBhbG9uZSwgZm9sbG93ZWQgYnkgMTAgbGFraHMgZnJvbSBQYWtpc3RhbiBhbmQgNiBsYWtocyBmcm9tIE5lcGFsLg0KMjAwMSAoRGVjIDEzKTpbQ3JpbWVdW0luZGlhXSBUZXJyb3Jpc3QgYXR0YWNrIG9uIEluZGlhJ3MgUGFybGlhbWVudC4NCjIwMDE6IHRoZSBjdXN0b21lciBiYXNlIG9mIG1vYmlsZSBwaG9uZSBjb21wYW5pZXMgd2FzIDQgbWlsbGlvbi4NCjIwMDE6IEJlbmVmaXQgbGFubmVycywgVGV4YXMgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBIZWFsdGggQmVuZWZpdCBkaXZpc2lvbi4NCjIwMDE6IE5ldyBIb3Jpem9ucyB3YXMgaW5pdGlhbGx5IHNlbGVjdGVkIGZvciBmdW5kaW5nIGluIDIwMDEgYnV0IHdhcyBleGNsdWRlZCBmcm9tIHRoZSBOQVNBIDIwMDMgYnVkZ2V0LiBGdW5kaW5nIGZvciB0aGUgbWlzc2lvbiB3YXMgcmVpbnN0YXRlZCBhZnRlciBOZXcgSG9yaXpvbnMgd2FzIGxpc3RlZCBhcyBhIHRvcCBwcmlvcml0eSBpbiB0aGUgUGxhbmV0YXJ5IFNjaWVuY2UgRGVjYWRhbCBTdXJ2ZXkgb2YgMjAwM+jjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlallkllklklklklklklklklklklklklklklklklklklklklklklklklklklklkjjajlkasjdlajdlkajdlaj
+KAkzIwMDEuDQoxOTkzOiBBc2hvayBIYWxsIEdpcmwncyBSZXNpZGVudGlhbCBTY2hvb2wsIE1hamtoYWxpLg0KMTk5MzogQnkgdGhpcyB5ZWFyIHRoZXJlIHdlcmUgYXJvdW5kIDEwMCB3ZWItc2VydmVycyBhY3Jvc3MgdGhlIHdvcmxkLiAoQSByZXBvcnQgcHVibGlzaGVkIGluIGZpcnN0IGlzc3VlIG9mIFRoZSBXb3JsZCBXaWRlIFdlYiBOZXdzbGV0dGVyLCAxOTkzKQ0KMTk5MzogQUMgMy10aWVyIGNvYWNoZXMgJiBTbGVlcGVyIGNsYXNzIGFyZSBpbnRyb2R1Y2VkIGFwYXJ0IGZyb20gc2Vjb25kIGNsYXNzLg0KMTk5MzogR29JJ3MgRGlzdHJpY3QgUHJpbWFyeSBFZHVjYXRpb24gUHJvZ3JhbW1lIChEUEVQKSB3YXMgbGF1bmNoZWQsIHdpdGggYW4gYWltIG9mIGFjaGlldmluZyB0aGUgb2JqZWN0aXZlIG9mIHVuaXZlcnNhbCBwcmltYXJ5IGVkdWNhdGlvbi4gVGhpcyBwcm9ncmFtbWVkIGxhaWQgdGhlIGZvdW5kYXRpb25zIGZvciDgpLjgpLDgpY3gpLUg4KS24KS/4KSV4KWN4KS34KS+IOCkheCkreCkv+Ckr+CkvuCkqChFZHVjYXRpb24gZm9yIEFsbCBNb3ZlbWVudCkgYWltZWQgYXQgdGhlIHVuaXZlcnNhbGlzYXRpb24gb2YgZWxlbWVudGFyeSBlZHVjYXRpb24gbWFraW5nIGZyZWUgYW5kIGNvbXB1bHNvcnkgZWR1Y2F0aW9uIHRvIGNoaWxkcmVuIGJldHdlZW4gdGhlIGFnZXMgb2YgNiB0byAxNC4NCjE5OTM6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIHNwbGl0IHdpdGggRGF3b29kIGFuZCBmb3JtZWQgYW4gaW5kZXBlbmRlbnQgZ2FuZyB0aGF0IGZyZXF1ZW50bHkgY2xhc2hlZCB3aXRoIERhd29vZCdzIEQtQ29tcGFueS4NCjE5OTMgKEphbiA3KTpbQ3JpbWVdIFJpb3RzIHJlLXN0YXJ0ZWQgaW4gTXVtYmFpIGFuZCBsYXN0ZWQgZm9yIDIwIGRheXMuIFRoZSBJU0ksIHdoaWNoIGNvbnRyb2xsZWQgc2hpcHBpbmcgcm91dGVzIGZyb20gdGhlIEd1bGYgdG8gSW5kaWEncyB3ZXN0IGNvYXN0LCBkZW1hbmRlZCB0aGF0IHRoZSBtYWZpYSB0cmFuc3BvcnQgd2VhcG9ucyBhbmQgZXhwbG9zaXZlcyBpbnRvIEluZGlhIGluIHJldHVybiBmb3IgdGhlIHVzZSBvZiBQYWtpc3RhbidzIHdhdGVycy4gRGF3b29kIG1ldCB0aGVpciBJU0kgaGFuZGxlcnMgaW4gYSA1IHN0YXIgaG90ZWwgb2YgRHViYWkgaW4gSmFuIG9yIEZlYiBvZiAxOTkzLCB0aGVuIGNhbWUgdGhlIFJEWCB0aHJvdWdoIHRoZSBzYW1lIHBvcm91cyBhbmQgdW5jaGVja2VkIHNlYSByb3V0ZSB0aGF0IDI2LzExIGF0dGFja2VycyBzbGlwcGVkIGFjcm9zcyBhbmQgd3JlY2tlZCBtYXloZW0gaW4gTXVtYmFpLiBUaGUg4oCZOTMgYXR0YWNrcyB3ZXJlIGZpbmFsbHkgZXhlY3V0ZWQgaW4gbWFyY2ggdGhhdCBjbGFpbWVkIHNvbWUgMzAwIGlubm9jZW50IGxpdmVzLg0KMTk5MyAoTWFyIDYpOltQb2xpdHldW0luZGlhXSBTaGFyYWQgUGF3YXIgcmUtZWxlY2V0ZCBhcyBDTSBvZiBNSCBmb3IgMiB5ZWFycy4NCjE5OTMgKE1hciAxMik6W0NyaW1lXSBUaGUgMTk5MyBCb21iYXkgYm9tYmluZ3Mgd2VyZSBhIHNlcmllcyBvZiAxMiB0ZXJyb3Jpc3QgYm9tYmluZ3MgdGhhdCB0b29rIHBsYWNlIGluIEJvbWJheS4gVGhlIHNpbmdsZS1kYXkgYXR0YWNrcyByZXN1bHRlZCBpbiAyNTcgZmF0YWxpdGllcyBhbmQgMSw0MDAgaW5qdXJpZXMuIFRoZXJlIHdhcyBhbm90aGVyIHJhaWQgbmVhciBNYW5pc2ggbWFya2V0IHdoZXJlIGhhbmQgZ3JlbmFkZXMgd2VyZSByZWNvdmVyZWQuIEFmdGVyIGFub3RoZXIgdGlwIG9mZiBsZWQgdG8gZGlzY292ZXJ5IG9mIGEgaHVnZSBxdWFudGl0eSBvZiBSRFggZnJvbSBOYWdsYSBCdW5kZXIgb2ZmIEdob2RidW5kZXIgUm9hZCBpbiBUaGFuZS4g4oCcSW4gYWxsLCA1LDAwMCBraWxvZ3JhbXMgb2YgUkRYIHdhcyBicm91Z2h0IGludG8gTXVtYmFpIGFuZCB3ZSByZWNvdmVyZWQgMywzMDAga2lsb2dyYW1zIG9mIGl0IGluIGFsbCB0aGUgcmFpZHMs4oCdIHNheXMgQ2hhdWd1bGUuIFJlZHVjZWQgU2hvY2sgU2Vuc2l0aXZpdHkgKFJTUykgZXhwbG9zaXZlcywgc3VjaCBhcyBSU1MtUkRYLCB3aGljaCBjb3N0cyBhYm91dCBScy4gMSw1MDAtMiwwMDAgcGVyIGtnLiBBbmVlcyBjb250aW51ZWQgb3BlcmF0aW9uIG9mIEQtQ29tcGFueSB3aGljaCBpbmNsdWRlIGNvbnRyYWN0IGtpbGxpbmcsIGV4dG9ydGlvbiwgdGhlIGNpcmN1bGF0aW9uIG9mIGNvdW50ZXJmZWl0IGN1cnJlbmN5LCBhbmQgdGhlIHByb3Zpc2lvbiBvZiBhIHJhbmdlIG9mIGZyZWUtbGFuY2Ugc2VydmljZXMgdG8gdGVycm9yaXN0IGdyb3VwcyBhdCB0aGUgaW5zdGFuY2Ugb2YgUGFraXN0YW4ncyBJbnRlciBTZXJ2aWNlcyBJbnRlbGxpZ2VuY2UgKElTSSkuIEludGVycG9sIFJlZCBDb3JuZXIgbm90aWNlIGZvciBELUNvbXBhbnkuDQoxOTkzIChOb3YgMSk6IFRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGZvdW5kZWQuIEl0IGlzIGFuIGVjb25vbWljIGFuZCBwb2xpdGljYWwgcGFydG5lcnNoaXAgaW52b2x2aW5nIDI4IEV1cm9wZWFuIGNvdW50cmllcy4gSXQgYmVnYW4gYWZ0ZXIgV1cyIHRvIGZvc3RlciBlY29ub21pYyBjby1vcGVyYXRpb24sIHdpdGggdGhlIGlkZWEgdGhhdCBjb3VudHJpZXMgd2hpY2ggdHJhZGUgdG9nZXRoZXIgYXJlIG1vcmUgbGlrZWx5IHRvIGF2b2lkIGdvaW5nIHRvIHdhciB3aXRoIGVhY2ggb3RoZXIuDQoxOTkzIChOb3YgMyk6IFtHZW9Qb2xpdGljc10gVGhlIENvbW1vbiBNYXJrZXQgZm9yIEVhc3Rlcm4gYW5kIFNvdXRoZXJuIEFmcmljYSAoQ09NRVNBKSBpcyBhIHJlZ2lvbmFsIGVjb25vbWljIGNvbW11bml0eSBpbiBBZnJpY2Egd2l0aCB0d2VudHktb25lIG1lbWJlciBzdGF0ZXMgc3RyZXRjaGluZyBmcm9tIFR1bmlzaWEgdG8gRXN3YXRpbmkuIENPTUVTQSB3YXMgZm9ybWVkIGluIERlY2VtYmVyIDE5OTQsIHJlcGxhY2luZyBhIFByZWZlcmVudGlhbCBUcmFkZSBBcmVhIHdoaWNoIGhhZCBleGlzdGVkIHNpbmNlIDE5ODEuIE5pbmUgb2YgdGhlIG1lbWJlciBzdGF0ZXMgZm9ybWVkIGEgZnJlZSB0cmFkZSBhcmVhIGluIDIwMDAgKERqaWJvdXRpLCBFZ3lwdCwgS2VueWEsIE1hZGFnYXNjYXIsIE1hbGF3aSwgTWF1cml0aXVzLCBTdWRhbiwgWmFtYmlhIGFuZCBaaW1iYWJ3ZSksIHdpdGggUndhbmRhIGFuZCBCdXJ1bmRpIGpvaW5pbmcgdGhlIEZUQSBpbiAyMDA0LCB0aGUgQ29tb3JvcyBhbmQgTGlieWEgaW4gMjAwNiwgU2V5Y2hlbGxlcyBpbiAyMDA5IGFuZCBUdW5pc2lhIGFuZCBTb21hbGlhIGluIDIwMTguDQoxOTkzIChEZWMgMjApOiBPSENIUiBmb3JtZWQuIFRoZSBPZmZpY2Ugb2YgdGhlIFVuaXRlZCBOYXRpb25zIEhpZ2ggQ29tbWlzc2lvbmVyIGZvciBIdW1hbiBSaWdodHMgKE9IQ0hSKSwgYSBVbml0ZWQgTmF0aW9ucyBhZ2VuY3kgdGhhdCB3b3JrcyB0byBwcm9tb3RlIGFuZCBwcm90ZWN0IHRoZSBodW1hbiByaWdodHMgdGhhdCBhcmUgZ3VhcmFudGVlZCB1bmRlciBpbnRlcm5hdGlvbmFsIGxhdyBhbmQgc3RpcHVsYXRlZCBpbiB0aGUgVW5pdmVyc2FsIERlY2xhcmF0aW9uIG9mIEh1bWFuIFJpZ2h0cyBvZiAxOTQ4Lg0KMTk5Mzp0aGUgMjR0aCBhbmQgbGFzdCBHTE9OQVNTIHNhdGVsbGl0ZSB3YXMgbGF1bmNoZWQgZm9ybWluZyB0aGUgd2hvbGUgbmF2aWdhdGlvbiBjb25zdGVsbGF0aW9uIHNpbWlsYXIgdG8gdGhhdCBvZiBVUydzIEdQUy4NCjE5OTM6IFNIQS0wIChhIGhhc2ggZnVuY3Rpb24pIHdhcyBwcm9wb3NlZCBieSBOSVNULCBNYXJ5bGFuZCwgVVNBIChGb3VuZGVkOiAxOTAxKS4gSXQgcHJvZHVjZXMgYSAxNjAtYml0IGhhc2ggdmFsdWUsIHRodXMgdGhlIGJydXRlLWZvcmNlIGNvbGxpc2lvbiBvciAgbmVhci1jb2xsaXNpb24gYXR0YWNrIHJlcXVpcmVzIE8oMl44MCkgY29tcHV0YXRpb24uIFdpdGhpbiA1IHllYXJzLCBpdCB3YXMgbWFkZSBjb2xsaXNpb24gYXR0YWNrZWQgYnkgQ2hhYmF1ZCBhbmQgSm91eCB3aXRoIHRoZSBhdHRhY2sgY29tcGxleGl0eSBvZiAyXjYxLg0KMTk5MzogW0NvYWxnYXRlIHNjYW1dIE9uIDIzcmQgQXByaWwgMjAxMywgdGhlIFN0YW5kaW5nIENvbW1pdHRlZSBvbiBDb2FsIGFuZCBTdGVlbCB0YWJsZWQgaW4gUGFybGlhbWVudCB0aGF0IGFsbCAxOTQgY29hbCBibG9ja3MgZGlzdHJpYnV0ZWQgYmV0d2VlbiAxOTkzIGFuZCAyMDA4IHdlcmUgYXVjdGlvbmVkIGluIGFuIHVuYXV0aG9yaXplZCBtYW5uZXIgYW5kIHRoZSBjb3VudHJ5IGxvc3QgUnMuMS44NiBsYWtoIGNyb3JlLi4gRm9ybWVyIFByaW1lIE1pbmlzdGVyIE1hbm1vaGFuIFNpbmdoLCBhbG9uZyB3aXRoIEt1bWFyIE1hbmdhbGFtIEJpcmxhIGFuZCBQLkMuIFBhcmFraCwgd2VyZSBhY2N1c2VkIGFuZCBzdW1tb25lZCBieSBhIHNwZWNpYWwgY291cnQuIFsyTCBDcm9yZV0uIENvbXB0cm9sbGVyIGFuZCBBdWRpdG9yIEdlbmVyYWwgb2YgSW5kaWEgdG9vayAyMCB5ZWFycyB0byBJRCBvbmUgb2YgdGhlIGJpZ2dlc3Qgc2NhbXMgaW4gSW5kaWFuIGhpc3RvcnkuDQoxOTkzOiBBZnRlciBQcmVzaWRlbnQgQmlsbCBDbGludG9uIHRvb2sgb2ZmaWNlIGluIDE5OTMsIGhvd2V2ZXIsIHRoZSBVLlMuIGVjb25vbXkgZW1iYXJrZWQgb24gYSBsb25nIGFuZCBzdHJvbmcgZXhwYW5zaW9uLCBtYWtpbmcgdGhlIDE5OTBzIGEgZ3JlYXQgZGVjYWRlIGZvciBBbWVyaWNhJ3MgbW9uZXksIG92ZXJhbGwuIA0KMTk5MzpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTW90aHJhKDE5OTIpDQoxOTkzOltTcGFjZV0gSGlwcGFyY29zLCBhIHNjaWVudGlmaWMgc2F0ZWxsaXRlIG9mIHRoZSBFdXJvcGVhbiBTcGFjZSBBZ2VuY3kgKEVTQSkgbGFzdGVkIGZvciA0IHllYXJzIGJlZm9yZSBnb2luZyBvdXQtb2Ytc2VydmljZS4NCjE5OTM6W1NwYWNlXVtSZXNlYXJjaF0gSW4gMTk5MywgRG9uIFBhZ2UgYXJndWVkIHRoYXQgaWYgYSBibGFjayBob2xlIHN0YXJ0cyBpbiBhIHB1cmUgcXVhbnR1bSBzdGF0ZSBhbmQgZXZhcG9yYXRlcyBjb21wbGV0ZWx5IGJ5IGEgdW5pdGFyeSBwcm9jZXNzLCB0aGUgdm9uIE5ldW1hbm4gZW50cm9weSBvZiB0aGUgSGF3a2luZyByYWRpYXRpb24gaW5pdGlhbGx5IGluY3JlYXNlcyBhbmQgdGhlbiBkZWNyZWFzZXMgYmFjayB0byB6ZXJvIHdoZW4gdGhlIGJsYWNrIGhvbGUgaGFzIGRpc2FwcGVhcmVkLiBUaGlzIGlzIGNhbGxlZCB0aGUgUGFnZSBjdXJ2ZS4NCjE5OTM6W0Jvb2tzXVtIaXN0b3J5XSBHcmVlbuKAmXMgRGljdGlvbmFyeSBvZiBTbGFuZyBpcyB0aGUgbGFyZ2VzdCBoaXN0b3JpY2FsIGRpY3Rpb25hcnkgb2YgRW5nbGlzaCBzbGFuZy4gV3JpdHRlbiBieSBKb25hdGhvbiBHcmVlbiBvdmVyIDE3IHllYXJzIGZyb20gMTk5MywgaXQgcmVhY2hlZCB0aGUgcHJpbnRlZCBwYWdlIGluIDIwMTAgaW4gYSB0aHJlZS12b2x1bWUgc2V0IGNvbnRhaW5pbmcgbmVhcmx5IDEwMCwwMDAgZW50cmllcyBzdXBwb3J0ZWQgYnkgb3ZlciA0MDAsMDAwIGNpdGF0aW9ucyBmcm9tIGMuIGFkIDEwMDAgdG8gdGhlIHByZXNlbnQgZGF5LiBUaGUgbWFpbiBmb2N1cyBvZiB0aGUgZGljdGlvbmFyeSBpcyB0aGUgY292ZXJhZ2Ugb2Ygb3ZlciA1MDAgeWVhcnMgb2Ygc2xhbmcgZnJvbSBjLiAxNTAwIG9ud2FyZHMuDQoxOTkzOltFbnZdW0Rpc2FzdGVyXSBTb3V0aCBBc2lhbiBtb25zb29uIGZsb29kcywgM2sgZGVhdGhzDQoxOTkzOltHZW9ncmFwaHldIFRoZSBsYXN0IG1ham9yIHNoaWZ0cyBpbiBFYXJ0aCdzIGF4aXMgd2VyZSBpbmZsdWVuY2VkIGJ5IGNsaW1hdGUgY2hhbmdlOiBhIDMxLjUtaW5jaCBzaGlmdCBiZXR3ZWVuIDE5OTMgYW5kIDIwMTAgd2FzIHByaW1hcmlseSBjYXVzZWQgYnkgZ3JvdW5kd2F0ZXIgcHVtcGluZywgYW5kIGEgY2hhbmdlIGluIHBvbGFyIGRyaWZ0IGRpcmVjdGlvbiBhcm91bmQgdGhlIDE5OTBzIHdhcyBsaW5rZWQgdG8gbWVsdGluZyBnbGFjaWVycyBhbmQgaWNlIHNoZWV0cyBkdWUgdG8gZ2xvYmFsIHdhcm1pbmcuIEVhcnRoJ3MgYXhpcyBhbHNvIHNoaWZ0ZWQgYnkgYWJvdXQgNi41IGluY2hlcyBpbiBNYXJjaCAyMDExIGFmdGVyIHRoZSBKYXBhbmVzZSBlYXJ0aHF1YWtlLCBjYXVzaW5nIHRoZSBwbGFuZXQgdG8gc3BpbiBzbGlnaHRseSBmYXN0ZXIuDQoxOTkzOltXaG9dIEluIDE5OTMsIEluZGlhIGNhbWUgaGVhcnRicmVha2luZ2x5IGNsb3NlIHRvIHdpbm5pbmcgaXRzIGZpcnN0IE1pc3MgVW5pdmVyc2UgY3Jvd24gd2l0aCB0aGUgc3R1bm5pbmcgYW5kIGdyYWNlZnVsIE5hbXJhdGEgU2hpcm9ka2FyLCB3aG8gaGFkIGVhcmxpZXIgd29uIHRoZSBGZW1pbmEgTWlzcyBJbmRpYSB0aXRsZS4gUmVwcmVzZW50aW5nIEluZGlhIGF0IHRoZSBNaXNzIFVuaXZlcnNlIHBhZ2VhbnQgaGVsZCBpbiBNZXhpY28gQ2l0eSwgTmFtcmF0YSB3YXMgYSBzdHJvbmcgY29udGVuZGVy4oCUZWxlZ2FudCBpbiBoZXIgZ293biwgcG9pc2VkIGluIGludGVydmlld3MsIGFuZCBhIGZhbiBmYXZvcml0ZS4gU2hlIGVhc2lseSBtYWRlIGl0IHRvIHRoZSBUb3AgNiwgYW5kIGhlciBjaGFuY2VzIG9mIHdpbm5pbmcgbG9va2VkIGluY3JlZGlibHkgaGlnaC4gQnV0IHRoZW4gY2FtZSB0aGUgZmluYWwgcXVlc3Rpb246IOKAnElmIHlvdSBjb3VsZCBiZSBib3JuIGFzIGFueSBoaXN0b3JpY2FsIGZpZ3VyZSwgd2hvIHdvdWxkIGl0IGJlIGFuZCB3aHk/4oCdIFdoaWxlIG90aGVyIGNvbnRlc3RhbnRzIG5hbWVkIGdsb2JhbCBpY29ucyBsaWtlIE1vdGhlciBUZXJlc2EgYW5kIFByaW5jZXNzIERpYW5hLCBOYW1yYXRhIGdhdmUgYW4gaG9uZXN0LCBwZXJzb25hbCBhbnN3ZXLigJRzaGUgc2FpZCBzaGUgd291bGQgYmUgYm9ybiBhcyBoZXJzZWxmIG9yIHNvbWVvbmUgY2xvc2UgdG8gaGVyLCBiZWNhdXNlIHNoZSBiZWxpZXZlZCBpbiBsaXZpbmcgbGlmZSB3aXRoIHRydXRoIGFuZCBpbmRpdmlkdWFsaXR5LiBJdCB3YXMgYSBiZWF1dGlmdWwsIGdyb3VuZGVkIGFuc3dlcuKAlGJ1dCBub3QgdGhlIGtpbmQgb2YgZ3JhbmQsIGlkZWFsaXN0aWMgcmVzcG9uc2UgdGhlIGp1ZGdlcyB3ZXJlIGV4cGVjdGluZy4gVGhhdCBvbmUgbW9tZW50IG9mIHRydXRoLCBtYW55IGJlbGlldmUsIGNvc3QgaGVyIHRoZSBjcm93biwgYW5kIEluZGlhIGhhZCB0byB3YWl0IGFub3RoZXIgeWVhciBiZWZvcmUgU3VzaG1pdGEgU2VuIGJyb3VnaHQgdGhlIE1pc3MgVW5pdmVyc2UgdGl0bGUgaG9tZSBpbiAxOTk0LiBTdGlsbCwgTmFtcmF0YeKAmXMgYW5zd2VyIGJlY2FtZSBpY29uaWPigJRub3QgYmVjYXVzZSBpdCB3b24sIGJ1dCBiZWNhdXNlIGl0IHdhcyByZWFsLCBtYXJraW5nIGEgcmFyZSBpbnN0YW5jZSB3aGVyZSBob25lc3R5IHN0b29kIHRhbGxlciB0aGFuIGRpcGxvbWFjeS4NCjE5OTM6W0F2aWF0aW9uXVtFeHRyZW1lXVtXaG9dIFRoZSBIZXJic3QgbWFuZXV2ZXIgd2FzIGZpcnN0IHN1Y2Nlc3NmdWxseSBwZXJmb3JtZWQgb24gQXByaWwgMjksIDE5OTMsIGJ5IGFuIFgtMzEgYWlyY3JhZnQuIE5hbWVkIGFmdGVyIFdvbGZnYW5nIEhlcmJzdCwgYSBkZXZlbG9wZXIgb2YgcG9zdC1zdGFsbCB0ZWNobm9sb2d5IGZvciBNZXNzZXJzY2htaXR0LULDtmxrb3ctQmxvaG0gKE1CQiksIHRoaXMsIHBvc3Qtc3RhbGwgbWFuZXV2ZXIgZW5hYmxlcyBhIGZpZ2h0ZXIgdG8gbWFrZSBhIHJhcGlkIDE4MMKwIHR1cm4gd2l0aGluIGEgbWluaW1hbCByYWRpdXMuIA0KDQoxOTk04oCTMTk5NTpbVVNdW0dlb1BvbGl0aWNzXSBvY2N1cGF0aW9uIG9mIEhhaXRpLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgRXVyb3BlYW4gRWNvbm9taWMgQXJlYSwgYWJicmV2aWF0ZWQgYXMgRUVBLCBjb25zaXN0cyBvZiB0aGUgTWVtYmVyIFN0YXRlcyBvZiB0aGUgRXVyb3BlYW4gVW5pb24gKEVVKSBhbmQgdGhyZWUgY291bnRyaWVzIG9mIHRoZSBFdXJvcGVhbiBGcmVlIFRyYWRlIEFzc29jaWF0aW9uIChFRlRBKSAoSWNlbGFuZCwgTGllY2h0ZW5zdGVpbiBhbmQgTm9yd2F5OyBleGNsdWRpbmcgU3dpdHplcmxhbmQpLiBUaGUgQWdyZWVtZW50IG9uIHRoZSBFRUEgZW50ZXJlZCBpbnRvIGZvcmNlIG9uIDEgSmFudWFyeSAxOTk0LiANCjE5OTQ6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEV1cm9wZWFuIEVjb25vbWljIEFyZWEgKEVFQSkgd2FzIGVzdGFibGlzaGVkIG9uIDEgSmFudWFyeSAxOTk0LiBUaGUgYWdyZWVtZW50IGxpbmtzIHRoZSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aHJlZSBFRlRBIHN0YXRlc+KAlEljZWxhbmQsIExpZWNodGVuc3RlaW4sIGFuZCBOb3J3YXnigJRpbnRvIGEgc2luZ2xlIGludGVybmFsIG1hcmtldCwgYWxsb3dpbmcgZm9yIHRoZSBmcmVlIG1vdmVtZW50IG9mIGdvb2RzLCBwZXJzb25zLCBzZXJ2aWNlcywgYW5kIGNhcGl0YWwuIA0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBOQUZUQSwgdGhlIE5vcnRoIEFtZXJpY2FuIEZyZWUgVHJhZGUgQWdyZWVtZW50LCB3YXMgYSAxOTk0IGFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzLCBDYW5hZGEsIGFuZCBNZXhpY28gdG8gZWxpbWluYXRlIHRyYWRlIGJhcnJpZXJzIGFuZCBwcm9tb3RlIGZyZWUgdHJhZGUgaW4gTm9ydGggQW1lcmljYS4gSXQgZmFjaWxpdGF0ZWQgdGhlIG1vdmVtZW50IG9mIGdvb2RzIGFuZCBzZXJ2aWNlcyBhbmQgZXN0YWJsaXNoZWQgYSBsYXJnZSB0cmFkZSBibG9jLiBJbiBKdWx5IDIwMjAsIE5BRlRBIHdhcyByZXBsYWNlZCBieSB0aGUgVW5pdGVkIFN0YXRlcy1NZXhpY28tQ2FuYWRhIEFncmVlbWVudCAoVVNNQ0EpLCB3aGljaCBtb2Rlcm5pemVkIGFuZCBlbmhhbmNlZCB0aGUgdHJlYXR5IGZvciBhIGNvbnRlbXBvcmFyeSBlY29ub215Lg0KMTk5NDpbUy5BZnJpY2FdW1NvY2lhbGlzbV0gRmlyc3QgZnJlZSBlbGVjdGlvbnMgaW4gU291dGggQWZyaWNhOyBOZWxzb24gTWFuZGVsYQ0KMTk5NDpbUmVzZWFyY2hdW3NwYWNlXSBDYXJsIFNhZ2FuIGNvbmNlZGVkIHRoYXQgdGhpcyBhcHByb2FjaCB3b3VsZCBub3Qgd29yayBiZWNhdXNlIHRoZSBhdG1vc3BoZXJlIG9mIFZlbnVzIGlzIGZhciBkZW5zZXIgKDkwIGJhcnMpIHRoYW4gd2hhdCB3YXMgdW5kZXJzdG9vZCBpbiAxOTYxIChhIGZldyBiYXJzKSwgbWVhbmluZyB0aGUgY2FyYm9uIHdvdWxkIGp1c3QgYmUgb3hpZGl6ZWQgYmFjayBpbnRvIENPMi4NCjE5OTQ6W0NvbXB1dGluZ11bUXVhbnR1bV0gUGV0ZXIgU2hvciBkaXNjb3ZlcmVkIGFuIGFsZ29yaXRobSAoU2hvcidzIGFsZ29yaXRobSkgdGhhdCBjb3VsZCBmYWN0b3IgbGFyZ2UgbnVtYmVycyBpbiBwb2x5bm9taWFsIHRpbWUgb24gYSBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCB3b3VsZCBicmVhayB0aGUgc2VjdXJpdHkgb2YgbWFueSBjcnlwdG9ncmFwaGljIHNjaGVtZXMuIA0KMTk5NDpbQ29tcHV0aW5nXVtRdWFudHVtXSBQZXRlciBTaG9yIGFuZCBEb24gQ29wcGVyc21pdGggZmlndXJlZCBvdXQgaG93IHRvIHRha2UgYSBRdWFudHVtIEZvdXJpZXIgVHJhbnNmb3JtLg0KMTk5NDpUaGUgcHJvYmxlbSB3aXRoIHRoZSBwYXBlciBwdWJsaXNoZWQgZWFybGllciB0aGlzIG1vbnRoIHdhcyBpdHMgcmVsaWFuY2Ugb24gU2Nobm9ycidzIGFsZ29yaXRobSAobm90IHRvIGJlIGNvbmZ1c2VkIHdpdGggU2hvcuKAmXMgYWxnb3JpdGhtKSwgd2hpY2ggd2FzIGRldmVsb3BlZCBpbiAxOTk0LiBTY2hub3Jy4oCZcyBhbGdvcml0aG0gaXMgYSBjbGFzc2ljYWwgY29tcHV0YXRpb24gYmFzZWQgb24gbGF0dGljZXMsIHdoaWNoIGFyZSBtYXRoZW1hdGljYWwgc3RydWN0dXJlcyB0aGF0IGhhdmUgbWFueSBhcHBsaWNhdGlvbnMgaW4gY29uc3RydWN0aXZlIGNyeXB0b2dyYXBoeSBhbmQgY3J5cHRhbmFseXNpcy4gVGhlIGF1dGhvcnMgd2hvIGRldmlzZWQgU2Nobm9ycuKAmXMgYWxnb3JpdGhtIHNhaWQgaXQgY291bGQgZW5oYW5jZSB0aGUgdXNlIG9mIHRoZSBoZXVyaXN0aWMgcXVhbnR1bSBvcHRpbWl6YXRpb24gbWV0aG9kIGNhbGxlZCBRQU9BLg0KMTk5NCAoSmFuIDEpOiBbR2VvUG9saXRpY3NdIFRoZSBOb3J0aCBBbWVyaWNhbiBGcmVlIFRyYWRlIEFncmVlbWVudCAoTkFGVEEpIHdhcyBhbiBhZ3JlZW1lbnQgc2lnbmVkIGJ5IENhbmFkYSwgTWV4aWNvLCBhbmQgdGhlIFVuaXRlZCBTdGF0ZXMgdGhhdCBjcmVhdGVkIGEgdHJpbGF0ZXJhbCB0cmFkZSBibG9jIGluIE5vcnRoIEFtZXJpY2EuIFRoZSBhZ3JlZW1lbnQgY2FtZSBpbnRvIGZvcmNlIG9uIEphbnVhcnkgMSwgMTk5NCwgYW5kIHN1cGVyc2VkZWQgdGhlIDE5ODggQ2FuYWRh4oCTVW5pdGVkIFN0YXRlcyBGcmVlIFRyYWRlIEFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzIGFuZCBDYW5hZGEuIFRoZSBOQUZUQSB0cmFkZSBibG9jIGZvcm1lZCBvbmUgb2YgdGhlIGxhcmdlc3QgdHJhZGUgYmxvY3MgaW4gdGhlIHdvcmxkIGJ5IGdyb3NzIGRvbWVzdGljIHByb2R1Y3QuDQoxOTk0OltUZWNobm9sb2d5XVtCdXNpbmVzc11bVVNdW0NvbXB1dGluZ10gVGhlIERlbGwgTGF0aXR1ZGUgc2VyaWVzIGlzIGEgbGluZSBvZiBsYXB0b3AgY29tcHV0ZXJzIG1hbnVmYWN0dXJlZCBhbmQgc29sZCBieSBBbWVyaWNhbiBjb21wYW55IERlbGwuIEl0IGlzIGEgYnVzaW5lc3Mtb3JpZW50ZWQgbGluZSwgYWltZWQgYXQgY29ycG9yYXRlIGVudGVycHJpc2VzLCBoZWFsdGhjYXJlLCBnb3Zlcm5tZW50LCBhbmQgZWR1Y2F0aW9uIG1hcmtldHM7IHVubGlrZSB0aGUgSW5zcGlyb24gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBpbmRpdmlkdWFsIGN1c3RvbWVycywgYW5kIHRoZSBWb3N0cm8gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBzbWFsbGVyIGJ1c2luZXNzZXMuIFRoZSBMYXRpdHVkZSBkaXJlY3RseSBjb21wZXRlcyB3aXRoIHRoZSBMZW5vdm8gVGhpbmtQYWQgYW5kIHRoZSBFbGl0ZUJvb2sgc2VyaWVzIGJ5IEhQLiBBZGRpdGlvbmFsbHksIHRoZSAiUnVnZ2VkIChFeHRyZW1lKSIsICJYRlIiIGFuZCAiQVRHIiBtb2RlbHMgY29tcGV0ZSBwcmltYXJpbHkgd2l0aCBQYW5hc29uaWMncyBUb3VnaGJvb2sgbGluZSBvZiAicnVnZ2VkIiBsYXB0b3BzLg0KMTk5NDogU3VzaG1pdGEgU2VuIGJlY2FtZSBNaXNzIFVuaXZlcnNlLg0KMTk5NDogVGhlIEFubmFscyBvZiBJbXByb2JhYmxlIFJlc2VhcmNoIGlzIGEgYmktbW9udGhseSBtYWdhemluZSBkZXZvdGVkIHRvIHNjaWVudGlmaWMgaHVtb3IsIGluIHRoZSBmb3JtIG9mIGEgc2F0aXJpY2FsIHRha2Ugb24gdGhlIHN0YW5kYXJkIGFjYWRlbWljIGpvdXJuYWwuDQoxOTk0OiBMaW5kb24gTGVhZGVyIG9mIExhbmRvciBBc3NvY2lhdGVzLCBvZiBTYW4gRnJhbmNpc2NvIGRlc2lnbmVkIHdvcmRtYXJrcyBmb3IgRmVkRXgncyB2YXJpb3VzIE9wLXVuaXQuIEZlZEV44oCZcyBwdWJsaWMtcmVsYXRpb25zIGZpcm0gd2FudGVkIHRvIGhpZ2hsaWdodCB0aGUgYXJyb3cgc28gaXQgd291bGQgYmUgb2J2aW91cy4gQnV0IGhlIGZvdWdodCB0aGVtIG9uIHRoYXQg4oCUIGhlIHRob3VnaHQgaXQgd291bGQgYmUgb3ZlcmtpbGwuIFRoZXJl4oCZcyBzb21ldGhpbmcgYWJvdXQgbWFraW5nIHBlb3BsZSBkaXNjb3ZlciBzb21ldGhpbmcgb24gdGhlaXIgb3duIHRoYXTigJlzIGEgbG90IG1vcmUgcG93ZXJmdWwgdGhhbiBpdGFsaWNpemluZyBpdCB0byBtYWtlIHlvdXIgcG9pbnQuDQoxOTk0OiBTY2lsYWIgMS4xLCB0aGUgZmlyc3QgcmVsZWFzZWQgdmVyc2lvbiBvZiBTY2lsYWIsIHdhcyBwdXQgb24gYW5vbnltb3VzIGZ0cCBzaXRlLg0KMTk5NDogVGhlIGNvbmNlcHQgb2YgYSBjYWbDqSB3aXRoIGZ1bGwgSW50ZXJuZXQgYWNjZXNzIChhbmQgdGhlIG5hbWUgQ3liZXJjYWbDqSkgd2FzIGludmVudGVkIGluIGVhcmx5IGJ5ICBhIEJyaXRpc2ggdGVjaG5vbG9neSBhcnRpc3QsIEl2YW4gUG9wZS4NCjE5OTQ6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIGx1cmVkIG9uZSBvZiBEYXdvb2QncyBmYXZvcml0ZSAibmFyY28tdGVycm9yaXN0IiBQaGlsbHUgS2hhbiBhbGlhcyBCYWtodGl5YXIgQWhtZWQgS2hhbiB0byBhIGhvdGVsIHJvb20gaW4gQmFuZ2tvaywgd2hlcmUgaGUgd2FzIHRvcnR1cmVkIHRvIGRlYXRoLCBoYXZpbmcgYmVlbiBiZXRyYXllZCBieSBoaXMgY2xvc2VzdCBhaWRlIGFuZCBzaWRla2ljayBNYW5nZXNoICJNYW5neWEiIFBhd2FyLiBELUNvbXBhbnkncyBTaGFyYWQsIHVzZWQgaGlzIGxpbmtzIHdpdGggTXVtYmFpLWJhc2VkIGhvdGVsaWVyIFZpbm9kIGFuZCBBLiBNaXNocmEgdG8gdHJhY2sgZG93biBSYWphbiBpbiBCYW5na29rLiBSYWphbidzIGhpdG1hbiBSb2hpdCBWYXJtYSBhbmQgaGlzIHdpZmUgc2hvdCBieSBELUNvbXBhbnkuDQoxOTk0KEp1bCAxNik6W1NwYWNlXSBGcm9tIEp1bHkgMTYgdG8gMjIsIDE5OTQsIGVub3Jtb3VzIHBpZWNlcyBvZiB0aGUgY29tZXQgU2hvZW1ha2VyLUxldnkgOSAoU0w5KSwgZGlzY292ZXJlZCBqdXN0IGEgeWVhciBwcmlvciwgY3Jhc2hlZCBpbnRvIEp1cGl0ZXIgb3ZlciBzZXZlcmFsIGRheXMsIGNyZWF0aW5nIGh1Z2UsIGRhcmsgc2NhcnMgaW4gdGhlIHBsYW5ldCdzIGF0bW9zcGhlcmUgYW5kIGxvZnRpbmcgc3VwZXJoZWF0ZWQgcGx1bWVzIGludG8gaXRzIHN0cmF0b3NwaGVyZS4NCjE5OTQgKE9jdCk6IElUUE8gYW5kIEdvSSdzIE5JQyBqb2ludGx5IHNldC11cCB0aGUgTmF0aW9uYWwgQ2VudHJlIGZvciBUcmFkZSBJbmZvcm1hdGlvbiAoTkNUSSkgYXQgUHJhZ2F0aSBNYWlkYW4uDQoxOTk0IChOb3YgMSwgMTU6MDEgSVNUKTpbU3BhY2VdW1N1bl0gVGhlIEdsb2JhbCBHZW9zcGFjZSBTY2llbmNlICdXaW5kJyBzYXRlbGxpdGUgaXMgYSBOQVNBIHNjaWVuY2Ugc3BhY2VjcmFmdCBkZXNpZ25lZCB0byBzdHVkeSByYWRpbyB3YXZlcyBhbmQgcGxhc21hIHRoYXQgb2NjdXIgaW4gdGhlIHNvbGFyIHdpbmQgYW5kIGluIHRoZSBFYXJ0aCdzIG1hZ25ldG9zcGhlcmUuIA0KMTk5NCAoRGVjIDMpOiBTb255J3MgUGxheVN0YXRpb24gKGEgdmlkZW8gZ2FtZSBjb25zb2xlKSB3YXMgaW50cm9kdWNlZCB0byB0aGUgd29ybGQgZnJvbSBNaW5hdG8sIFRva3lvIChKYXBhbikuDQoxOTk0OiBXWFlDLSBmaXJzdCBpbnRlcm5ldCByYWRpbyBzdGF0aW9uIGJyb2FkY2FzdC4NCjE5OTQ6IE1lbW9yeSBjYXJkcyB3ZXJlIGludHJvZHVjZWQgaW4gdGhlIGNvbnN1bWVyIGVsZWN0cm9uaWNzIG1hcmtldC4NCjE5OTQgKEF1Zyk6IElUUE8ncyAxc3QgRGVsaGkgQm9vayBGYWlyIGF0ICBIYWxsIDggdG8gMTIgb2YgUHJhZ2F0aSBNYWlkYW4sIE5ldyBEZWxoaS4gVGhlIHRpbWluZ3Mgb2YgZmFpciBhcmUgZnJvbSAxMC4wMCBhbSB0byA4LjAwIHBtIChlbnRyeSB0byBmYWlyIHdpbGwgY2xvc2UgYXQgNy4zMCBwbSkuDQoxOTk0IChTZXApOiBUaGUgQ09OQ0VSVCBzb2Z0d2FyZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgaW1wbGVtZW50ZWQgYXQgYWxsIG9mIHRoZSBmaXZlIFBSUycgc2l0ZXMgU2VjdW5kZXJhYmFkIGluIFNlcHQuIDE5OTQsIE5ldyBEZWxoaSBvbiBTZXB0LiAxOTk2LCBDYWxjdXR0YSBvbiAxNHRoIEp1bmUgMTk5OCwgTXVtYmFpIG9uIDExdGggSmFuIDE5OTkgYW5kIENoZW5uYWkgb24gMTJ0aCBBcHJpbCAxOTk5Lg0KMTk5NDogdGhlIDI0dGggYW5kIHRoZSBsYXN0IEdQUyBzYXRlbGxpdGUgd2FzIGxhdW5jaGVkIGluIFVTLg0KMTk5NDogVGhlIHdvcmQgVGFsaWJhbiBpcyBQYXNodG8sINi32KfZhNio2KfZhiDhua3EgWxpYsSBbiwgbWVhbmluZyAic3R1ZGVudHMiLCB0aGUgcGx1cmFsIG9mIOG5rcSBbGliLiBBZnRlciB0aGUgU292aWV0IFVuaW9uIGludGVydmVuZWQgYW5kIG9jY3VwaWVkIEFmZ2hhbmlzdGFuIGluIDE5NzksIElzbGFtaWMgbXVqYWhpZGVlbiBmaWdodGVycyBlbmdhZ2VkIGluIHdhciB3aXRoIHRob3NlIFNvdmlldCBmb3JjZXMsIHdoaWNoIGxhaWQgdGhlIGZvdW5kYXRpb24gb2YgcG9saXRpY2FsIG1vdmVtZW50IGFuZCBtaWxpdGFyeSBvcmdhbml6YXRpb24gbmFtZWQgVGFsaWJhbi4NCjE5OTQ6IEFiZHVsIEthcmVlbSBUZWxnaSBhY3F1aXJlZCB0aGUgbGljZW5zZSBmb3Igc2VsbGluZyBzdGFtcCBwYXBlciBhbmQgb3BlbmVkIGFuIG9mZmljZSBpbiBNdW1iYWkuIEFmdGVyIHRoYXQsIGhlIHN0YXJ0ZWQgcHJpbnRpbmcgc3RhbXAgcGFwZXIgaW4gTmFzaGlrLiBXaXRoIHNvbWUgYWdlbnRz4oCZIGhlbHAsIGhlIHN0YXJ0cyBzZWxsaW5nIGZha2Ugc3RhbXAgcGFwZXIgaW4gYnVsayB0byBiYW5rcywgaW5zdXJhbmNlIGNvbXBhbmllcywgc3RvY2sgYnJva2VyYWdlIGZpcm1zLCBhbmQgY29ycG9yYXRlcy4gSW4gMjAwMyB0aGUgVGVsZ2kgc2NhbSB3YXMgdW5mb2xkZWQ7IHRoZSBmaWd1cmUgaW4gdGhlIG1pbmQgb2Ygc2VjdXJpdHkgYW5kIGludGVsbGlnZW5jZSBhZ2VuY2llcyB3YXMgdXAgdG8gUnMuMjBrIENyb3JlDQoxOTk0OiBbR2VvUG9saXRpY3NdIEludGVybmF0aW9uYWwgQXNzb2NpYXRpb24gb2YgR2VuZGFybWVyaWVzIGFuZCBQb2xpY2UgRm9yY2VzIHdpdGggTWlsaXRhcnkgU3RhdHVzIChjb21tb25seSBrbm93biBhcyBGSUVQIGZvciBGcmFuY2UtSXRhbGlhLUVzcGHDsWEtUG9ydHVnYWwsIHRoZSBmaXJzdCBmb3VyIG1lbWJlcnMpIGlzIGFuIGFzc29jaWF0aW9uIG9mIG5hdGlvbmFsIGdlbmRhcm1lcmllcyBvciBtaWxpdGFyeSBwb2xpY2UgZm9yY2VzLg0KMTk5NDpbQm9va10gUGFsZSBCbHVlIERvdDogQSBWaXNpb24gb2YgdGhlIEh1bWFuIEZ1dHVyZSBpbiBTcGFjZSBpcyBhIDE5OTQgYm9vayBieSB0aGUgYXN0cm9ub21lciBDYXJsIFNhZ2FuLiBJdCBpcyB0aGUgc2VxdWVsIHRvIFNhZ2FuJ3MgMTk4MCBib29rIENvc21vcyBhbmQgd2FzIGluc3BpcmVkIGJ5IHRoZSBmYW1vdXMgMTk5MCBQYWxlIEJsdWUgRG90IHBob3RvZ3JhcGgsIGZvciB3aGljaCBTYWdhbiBwcm92aWRlcyBhIHBvaWduYW50IGRlc2NyaXB0aW9uLiBJbiB0aGUgYm9vaywgU2FnYW4gbWl4ZXMgcGhpbG9zb3BoeSBhYm91dCB0aGUgaHVtYW4gcGxhY2UgaW4gdGhlIHVuaXZlcnNlIHdpdGggYSBkZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCBrbm93bGVkZ2UgYWJvdXQgdGhlIFNvbGFyIFN5c3RlbS4gSGUgYWxzbyBkZXRhaWxzIGEgaHVtYW4gdmlzaW9uIGZvciB0aGUgZnV0dXJlLg0KMTk5NDpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTWVjaGFnb2R6aWxsYSBJSSgxOTkzKQ0KMTk5NDpbQ2luZW1hXSBUaGUgQXBwbGUoMTk4MCkNCjE5OTQ6W0NpbmVtYV0gVGhlIEF0bGFudGlzIEludGVyY2VwdG9ycygxOTgzKQ0KMTk5NDpbTW50bmdnXSBJbiAxOTk0LCBNYXJrIFdoZXR1IHN1bW1pdHRlZCBNdCBFdmVyZXN0IHdpdGggTWlrZSBSZWluYmVyZ2VyLiBCdXQgYWZ0ZXIgYSBmcmVlemluZyBuaWdodCwgV2hldHUgZmFjZWQgYSBoYXJyb3dpbmcgY2hvaWNlOiBsZWF2ZSBoaXMgZnJpZW5kIG9yIHJlbWFpbiBmb3JldmVyLiBUaGUgRmF0YWwgR2FtZSAoMTk5NykNCjE5OTQ6W1RvdXJpc21dIFRoZSBBZHZlbnR1cmUgVG91ciBPcGVyYXRvcnMgQXNzb2NpYXRpb24gb2YgSW5kaWEgKEFUT0FJKSB3YXMgZm91bmRlZCBpbiAxOTk0LiBJdCB3YXMgZXN0YWJsaXNoZWQgYnkgYSBncm91cCBvZiB0cmF2ZWwgdHJhZGUgYWR2ZW50dXJlcnMgd2hvIGFpbWVkIHRvIGNyZWF0ZSBhIHN0cm9uZyBzdXBwb3J0IG5ldHdvcmsgZm9yIEluZGlhbiBhZHZlbnR1cmUgdG91ciBvcGVyYXRvcnMuIA0KDQoxOTk1IChNYXkgMTkpOiBbUmVzZWFyY2hdW1NwYWNlXSB0d28gc2NpZW50aXN0cyBhdCBDYWwgUG9seSBzaG93ZWQgdGhhdCBiYWN0ZXJpYSBjYW4gc3Vydml2ZSB3aXRob3V0IGFueSBtZXRhYm9saXNtIGZvciBhdCBsZWFzdCAyNSBtaWxsaW9uIHllYXJzOyBwcm9iYWJseSB0aGV5IGFyZSBpbW1vcnRhbC4NCjI0IE5vdmVtYmVyIDE5OTU6IFRoZSBOZXcgWW9yayBUaW1lcyBkZXNjcmliZWQgYmFjdGVyaWEgdGhhdCBjYW4gc3Vydml2ZSByYWRpYXRpb24gbXVjaCBzdHJvbmdlciB0aGFuIGFueSB0aGF0IEVhcnRoIGhhcyBldmVyIGV4cGVyaWVuY2VkLg0KV2UgYXJlIGNhbGxpbmcgdGhlIHVuaW9uIG9mIExvdmVsb2NrJ3MgR2FpYSB3aXRoIEhveWxlIGFuZCBXaWNrcmFtYXNpbmdoZSdzIGV4cGFuZGVkIHRoZW9yeSBvZiBwYW5zcGVybWlhIENvc21pYyBBbmNlc3RyeS4gVGhpcyBhY2NvdW50IG9mIGV2b2x1dGlvbiBhbmQgdGhlIG9yaWdpbiBvZiBsaWZlIG9uIEVhcnRoIGlzIHByb2ZvdW5kbHkgZGlmZmVyZW50IGZyb20gdGhlIHByZXZhaWxpbmcgc2NpZW50aWZpYyBwYXJhZGlnbS4gSXQgY2hhbGxlbmdlcyBub3QgbWVyZWx5IHRoZSBhbnN3ZXJzIGJ1dCB0aGUgcXVlc3Rpb25zIHRoYXQgYXJlIHBvcHVsYXIgdG9kYXkuIENvc21pYyBBbmNlc3RyeSByZXF1aXJlcyB0aGF0IGxpZmUgY2FuIG9ubHkgZGVzY2VuZCBmcm9tIGFuY2VzdG9ycyBhdCBsZWFzdCBhcyBoaWdobHkgZXZvbHZlZCBhcyBpdHNlbGYsIGFuZCB0aGF0IHRoZXJlIGNhbiBiZSBubyBvcmlnaW4gb2YgbGlmZSBmcm9tIG5vbmJpb2xvZ2ljYWwgbWF0dGVyLiBXaXRob3V0IHN1cGVybmF0dXJhbCBpbnRlcnZlbnRpb24sIHRoZXJlZm9yZSwgd2UgY29uY2x1ZGUgdGhhdCBsaWZlIG11c3QgaGF2ZSBhbHdheXMgZXhpc3RlZC4gQWx0aG91Z2ggdGhlc2UgY29uY2x1c2lvbnMgY3V0IGFjcm9zcyB0aGUgYm91bmRhcmllcyBiZXR3ZWVuIHNjaWVuY2UsIHBoaWxvc29waHksIGFuZCByZWxpZ2lvbiwgd2UgYmVsaWV2ZSB0aGV5IGFyZSBncm91bmRlZCBpbiBnb29kIGV2aWRlbmNlLiBBbmQgbmV3IGRhdGEgdGhhdCBzdXBwb3J0IG1hbnkgYXNwZWN0cyBvZiBDb3NtaWMgQW5jZXN0cnkgYXJlIGNvbWluZyBpbiByYXBpZGx5LiBJbiB0aGUgZm9sbG93aW5nIHBhZ2VzIHdlIHdpbGwgZXhwbGFpbiBob3cgdGhlc2UgYW5kIG90aGVyIHJlY2VudCBkZXZlbG9wbWVudHMgc3VwcG9ydCBDb3NtaWMgQW5jZXN0cnk6DQoNCjE5OTU6IEFOU0VUIHNvbGQgdG8gQU9MLCB3aG8gIG5vdyBydW5zIGl0Lg0KMTk5NSAoTWFyKTogRGVwdC4gb2YgSW5kaWFuIE1lZGljaW5lIGFuZCBIb21lb3BhdGh5IGZvdW5kZWQuDQoxOTk1IChNYXIgMjQpOltSZXNlYXJjaF0gUmVtb3RlbHkgT3BlcmF0ZWQgVmVoaWNsZSBLQUlLTyByZWFjaGVkIHRoZSBkZWVwZXN0IGFyZWEgb2YgdGhlIE1hcmlhbmEgVHJlbmNoIGFuZCBtYWRlIHRoZSBkZWVwZXN0IGRpdmluZyByZWNvcmQgb2YgMTAsOTExIG0gKDM1LDc5NyBmdDsgNSw5NjYgZmF0aG9tcykgDQoxOTk1OiBwaG9uZSBjYWxsIGNvc3RpbmcgUnMuIDE2IHBlciBtaW4uDQoxOTk1OltHYW1pbmddIFZpcnR1YSBDb3AgMiBpcyBhIGxpZ2h0IGd1biBzaG9vdGVyIGFyY2FkZSBnYW1lLCByZWxlYXNlZCBpbiAxOTk1IGFuZCBkZXZlbG9wZWQgaW50ZXJuYWxseSBhdCBTZWdhIGJ5IHRoZWlyIEFNMiBzdHVkaW8gKFl1IFN1enVraSkuIEl0IHdhcyBwb3J0ZWQgdG8gdGhlIFNlZ2EgU2F0dXJuIGluIDE5OTYuIEl0IHdhcyByZWxlYXNlZCBvbiBQQyBpbiAxOTk3IGFuZCBTZWdhIERyZWFtY2FzdCBpbiAyMDAwLiBJdCB3YXMgbGF0ZXIgYnVuZGxlZCB3aXRoIFZpcnR1YSBDb3AgaW4gVmlydHVhIENvcDogRWxpdGUgRWRpdGlvbiBmb3IgUGxheVN0YXRpb24gMiBpbiAyMDAyLg0KMTk5NSAoQXByIDEpOltSZXNlYXJjaF0gUGlsbGFycyBvZiBDcmVhdGlvbiBpcyBhIHBob3RvZ3JhcGggdGFrZW4gYnkgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgb2YgZWxlcGhhbnQgdHJ1bmtzIG9mIGludGVyc3RlbGxhciBnYXMgYW5kIGR1c3QgaW4gdGhlIEVhZ2xlIE5lYnVsYSwgaW4gdGhlIFNlcnBlbnMgY29uc3RlbGxhdGlvbiwgc29tZSA2LDUwMOKAkzcsMDAwIGxpZ2h0LXllYXJzICgyLDAwMOKAkzIsMTAwIHBjOyA2MeKAkzY2IEVtKSBmcm9tIEVhcnRoLg0KMTk5NSAoQXByIDEpOiBJQUFJIGFuZCBOQUEgd2VyZSBtZXJnZWQgYnkgYW4gQWN0IG9mIFBhcmxpYW1lbnQgYW5kIHdhcyBuYW1lZCBhcyBBaXJwb3J0cyBBdXRob3JpdHkgb2YgSW5kaWEgKEFBSSkuIFRoaXMgbmV3IG9yZ2FuaXNhdGlvbiB3YXMgdG8gYmUgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nLCB1cGdyYWRpbmcsIG1haW50YWluaW5nIGFuZCBtYW5hZ2luZyBjaXZpbCBhdmlhdGlvbiBpbmZyYXN0cnVjdHVyZSBib3RoIG9uIHRoZSBncm91bmQgYW5kIGFpciBzcGFjZSBpbiB0aGUgY291bnRyeS4NCjE5OTUgKEFwciAyMSk6W0NyaW1lXVtJbmRpYV0gQmFibG9vIHBpY2tlZCB1cCBieSB0aGUgU2luZ2Fwb3JlIGFpcnBvcnQgcG9saWNlIGZvciB0cmF2ZWxsaW5nIG9uIGZha2UgcGFzc3BvcnQuIEhlIHdhcyBzdGF5aW5nIGluIER1YmFpLg0KMTk5NSAoU2VwIDMwKTpbQ3JpbWVdW0luZGlhXSBTaW5nYXBvcmUgZXh0cmFkaXRlcyBJbmRpYSdzICdtb3N0LXdhbnRlZCBpbnRlci1zdGF0ZSBjcmltaW5hbCcgQmFibG9vIFNyaXZhc3RhdmEgKDMzWU8pDQoxOTk1IChOb3YgMzApOiBPcGVyYXRpb24gRGVzZXJ0IFN0b3JtIChGaXJzdCBJcmFxIFdhcilvZmZpY2lhbGx5IGVuZGVkLg0KMTk5NSAoTWF5IDMxKTpbQm9va11bTWlsaXRhcnldIEFkbWlyYWwgV2lsbGlhbSBILiBNY1JhdmVuJ3MgU3BlYyBPcHM6IENhc2UgU3R1ZGllcyBpbiBTcGVjaWFsIE9wZXJhdGlvbnMgV2FyZmFyZTogVGhlb3J5IGFuZCBQcmFjdGljZTsgU2VhIFN0b3JpZXM6IE15IExpZmUgaW4gU3BlY2lhbCBPcGVyYXRpb25zICgyMDE5LCBNYXkgMSk7IFRoZSBIZXJvIENvZGU6IExlc3NvbnMgTGVhcm5lZCBmcm9tIExpdmVzIFdlbGwgTGl2ZWQgKDIwMjEsIEFwciAxMykNCjE5OTU6IERyLiBIYW5kZSBhZnRlciBncmFkdWF0aW5nIGZyb20gSUlUIEtoYXJhZ3B1ciBjb25jZXB0dWFsaXplZCBTRUxDTyBJbmRpYSBkdXJpbmcgaGlzIFBoRCBvbiBzdXN0YWluYWJsZSBlbmVyZ3kgYXQgdGhlIFVuaXZlcnNpdHkgb2YgTWFzc2FjaHVzZXR0cy4gRHVyaW5nIGEgZmllbGQgdmlzaXQgdG8gdGhlIERvbWluaWNhbiBSZXB1YmxpYywgaGUgd2FzIHN1cnByaXNlZCB0byBzZWUgdGhlIHBvb3IgdXNpbmcgc29sYXIgbGlnaHRzLg0KMTk5NTogVGhlIEdvdmVybm1lbnQgb2YgSW5kaWEgYW5kIHRoZSBHb3Zlcm5tZW50IG9mIERlbGhpIGpvaW50bHkgc2V0IHVwIGEgY29tcGFueSBjYWxsZWQgdGhlIERlbGhpIE1ldHJvIFJhaWwgQ29ycG9yYXRpb24gKERNUkMpIG9uIDMgTWF5IDE5OTUsIHdpdGggRHIuIEUuIFNyZWVkaGFyYW4gYXMgdGhlIG1hbmFnaW5nIGRpcmVjdG9yLg0KMTk5NTogSW50J2wgR2FuZGhpIFBlYWNlIFByaXplIGxhdW5jaGVkLg0KMTk5NTogU2FjaGluIFIuIFRlbmR1a2FyIGFuZCBBbmphbGkgVGVuZHVsa2FyIHdlZGRlZCB0b2dldGhlci4NCjE5OTU6IC5tcDMgaW52ZW50ZWQuDQoxOTk1OltHYW1pbmddIFdoaWxlIEZJRkEgOTUgZGlkIG5vdCBhZGQgbXVjaCBvdGhlciB0aGFuIHRoZSBhYmlsaXR5IHRvIHBsYXkgd2l0aCBjbHViIHRlYW1zLCBGSUZBIDk2IHB1c2hlZCB0aGUgYm91bmRhcmllcy4gRm9yIHRoZSBmaXJzdCB0aW1lIHdpdGggcmVhbCBwbGF5ZXIgbmFtZXMgYnkgb2J0YWluaW5nIHRoZSBGSUZQcm8gbGljZW5zZSwgdGhlIFBsYXlTdGF0aW9uLCBQQywgMzJYIGFuZCBTZWdhIFNhdHVybiB2ZXJzaW9ucyB1c2VkIEVBJ3MgIlZpcnR1YWwgU3RhZGl1bSIgZW5naW5lLCB3aXRoIDJEIHNwcml0ZSBwbGF5ZXJzIG1vdmluZyBhcm91bmQgYSByZWFsLXRpbWUgM0Qgc3RhZGl1bS4NCjE5OTUgKEp1bCAxOCk6W0Jvb2tdIEJhcmFjayBPYmFtYSdzIERyZWFtcyBmcm9tIE15IEZhdGhlcjogQSBTdG9yeSBvZiBSYWNlIGFuZCBJbmhlcml0YW5jZTsgRHJlYW1zIGZyb20gTXkgRmF0aGVyOiBBIFN0b3J5IG9mIFJhY2UgYW5kIEluaGVyaXRhbmNlICgyMDA2LCBPY3QgMTcpOyBPZiBUaGVlIEkgU2luZzogQSBMZXR0ZXIgdG8gTXkgRGF1Z2h0ZXJzICgyMDEwLCBOb3YgMTYpOyBBIFByb21pc2VkIExhbmQgKDIwMjAsIE5vdiAxNykNCjE5OTUoSmFuIDEpOltFbnZdIFRoZSBBZ3JlZW1lbnQgb24gQWdyaWN1bHR1cmUgKEFvQSkgaXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgb2YgdGhlIFdvcmxkIFRyYWRlIE9yZ2FuaXphdGlvbi4gSXQgd2FzIG5lZ290aWF0ZWQgZHVyaW5nIHRoZSBVcnVndWF5IFJvdW5kIG9mIHRoZSBHZW5lcmFsIEFncmVlbWVudCBvbiBUYXJpZmZzIGFuZCBUcmFkZSwgYW5kIGVudGVyZWQgaW50byBmb3JjZSB3aXRoIHRoZSBlc3RhYmxpc2htZW50IG9mIHRoZSBXVE8gb24gSmFudWFyeSAxLCAxOTk1LiBCbHVlLCBSZWQsIEFtYmVyIGFuZCBHcmVlbiBCb3ggb2Ygc3Vic2lkaWVzLg0KMTk5NTpbQ2luZW1hXSBOZWxzb24gTWFuZGVsYSwgaW4gaGlzIGZpcnN0IHRlcm0gYXMgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYSwgaW5pdGlhdGVzIGEgdW5pcXVlIHZlbnR1cmUgdG8gdW5pdGUgdGhlIEFwYXJ0aGVpZC10b3JuIGxhbmQ6IGVubGlzdCB0aGUgbmF0aW9uYWwgcnVnYnkgdGVhbSBvbiBhIG1pc3Npb24gdG8gd2luIHRoZSAxOTk1IFJ1Z2J5IFdvcmxkIEN1cC4gLSAgSW52aWN0dXMgKDIwMDkpDQoxOTk1OltDaW5lbWFdIEEgQ2xvY2t3b3JrIE9yYW5nZSgxOTcxKQ0KMTk5NTpbQ2luZW1hXSBEZWFkIEVuZCBEcml2ZS1JbigxOTg2KQ0KMTk5NTpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gU3BhY2Vnb2R6aWxsYSgxOTk0KQ0KMTk5NTpbQ2luZW1hXSBIZWFydGJlZXBzKDE5ODEpDQoxOTk1OltDaW5lbWFdIFRoZSBNdW1teSdzIEN1cnNlKDE5NDQpDQoxOTk1IChEZWMpOltTcGFjZV0gU29sYXIgYW5kIEhlbGlvc3BoZXJpYyBPYnNlcnZhdG9yeSAoU29ITykgd2FzIGxhdW5jaGVkIGluIERlY2VtYmVyIDE5OTUgYXMgYSBqb2ludCBtaXNzaW9uIGJldHdlZW4gdGhlIEV1cm9wZWFuIFNwYWNlIEFnZW5jeSAoRVNBKSBhbmQgTkFTQSwgU29ITyB3YXMgZGVzaWduZWQgdG8gb3JiaXQgdGhlIFN1biB0byBsZWFybiBhYm91dCB0aGUgc3RydWN0dXJlIG9mIHRoZSBzdGFy4oCZcyBpbnRlcmlvciBhbmQgaXRzIG91dGVyIGF0bW9zcGhlcmUsIGFzIHdlbGwgYXMgdG8gaW52ZXN0aWdhdGUgdGhlIGJlaGF2aW9yIG9mIHNvbGFyIHdpbmRzLiBJdCB3YXMgZXhwZWN0ZWQgdG8gY29tcGxldGUgaXRzIG1pc3Npb24gaW4gMTk5OC4gSW5zdGVhZCwgaXQgaXMgc3RpbGwgYWN0aXZlIHRvZGF5LCBhbmQgaXMgbm93IGxpa2VseSB0byBrZWVwIHdvcmtpbmcgdW50aWwgMjAyNSwgd2hlbiBpdCB3aWxsIGhhdmUgYmVlbiBpbiBzcGFjZSBmb3IgMzAgeWVhcnMuDQoxOTk1OltQaHlzaWNzXVtTcGFjZV1bUmVzZWFyY2hdIFByaW9yIHRvIDE5OTUsIHRoZW9yaXN0cyBiZWxpZXZlZCB0aGF0IHRoZXJlIHdlcmUgZml2ZSBjb25zaXN0ZW50IHZlcnNpb25zIG9mIHN1cGVyc3RyaW5nIHRoZW9yeSAodHlwZSBJLCB0eXBlIElJQSwgdHlwZSBJSUIsIGFuZCB0d28gdmVyc2lvbnMgb2YgaGV0ZXJvdGljIHN0cmluZyB0aGVvcnkpLiBUaGlzIHVuZGVyc3RhbmRpbmcgY2hhbmdlZCBpbiAxOTk1IHdoZW4gRWR3YXJkIFdpdHRlbiBzdWdnZXN0ZWQgdGhhdCB0aGUgZml2ZSB0aGVvcmllcyB3ZXJlIGp1c3Qgc3BlY2lhbCBsaW1pdGluZyBjYXNlcyBvZiBhbiBlbGV2ZW4tZGltZW5zaW9uYWwgdGhlb3J5IGNhbGxlZCBNLXRoZW9yeS4gV2l0dGVuJ3MgY29uamVjdHVyZSB3YXMgYmFzZWQgb24gdGhlIHdvcmsgb2YgYSBudW1iZXIgb2Ygb3RoZXIgcGh5c2ljaXN0cywgaW5jbHVkaW5nIEFzaG9rZSBTZW4sIENocmlzIEh1bGwsIFBhdWwgVG93bnNlbmQsIGFuZCBNaWNoYWVsIER1ZmYuIEhpcyBhbm5vdW5jZW1lbnQgbGVkIHRvIGEgZmx1cnJ5IG9mIHJlc2VhcmNoIGFjdGl2aXR5IG5vdyBrbm93biBhcyB0aGUgc2Vjb25kIHN1cGVyc3RyaW5nIHJldm9sdXRpb24uDQoxOTk1OltDcmltZV1bSW5kaWFdIE11cmRlciBvZiBNdW1iYWktYmFzZWQgYnVpbGRlciBQcmFkZWVwIEphaW4gYnkgQWJ1IFNhbGVtDQoxOTk1OiBGb3J0dW5lIEhvdGVscyBpbiBJbmRpYSBpcyBvd25lZCBieSBpdHMgcGFyZW50IGNvbXBhbnksIElUQyBMdGQuLCB3aGljaCBlc3RhYmxpc2hlZCBGb3J0dW5lIEhvdGVscyBpbiAxOTk1IGFzIGEgc3Vic2lkaWFyeSB0byBwcm92aWRlIG1pZC1tYXJrZXQgdG8gdXBzY2FsZSBob3NwaXRhbGl0eSBzZXJ2aWNlcy4gSG93ZXZlciwgYSBzZXBhcmF0ZSBncm91cCwgRm9ydHVuZSBHcm91cCBvZiBIb3RlbHMsIGJhc2VkIGluIHRoZSBVbml0ZWQgQXJhYiBFbWlyYXRlcyAoVUFFKSBhbmQgZm91bmRlZCBieSBQcmF2ZWVuIFNoZXR0eSwgYWxzbyBvcGVyYXRlcyBhIGRpZmZlcmVudCBzZXQgb2YgaG90ZWxzIGluIHRoYXQgcmVnaW9uLg0KMTk5NTpbVUtdIENhbWlsbGEgaXMgUXVlZW4gb2YgdGhlIFVuaXRlZCBLaW5nZG9tIGFuZCAxNCBvdGhlciBDb21tb253ZWFsdGggcmVhbG1zIGFzIHRoZSB3aWZlIG9mIEtpbmcgQ2hhcmxlcyBJSUkuIENhbWlsbGEgd2FzIHJhaXNlZCBpbiBFYXN0IFN1c3NleCBhbmQgU291dGggS2Vuc2luZ3RvbiBpbiBFbmdsYW5kIGFuZCBlZHVjYXRlZCBpbiBFbmdsYW5kLCBTd2l0emVybGFuZCBhbmQgRnJhbmNlLiBJbiAxOTczLCBzaGUgbWFycmllZCBCcml0aXNoIEFybXkgb2ZmaWNlciBBbmRyZXcgUGFya2VyIEJvd2xlczsgdGhleSBkaXZvcmNlZCBpbiAxOTk1Lg0KDQoxOTk2OltHZW9Qb2xpdGljc11bQnVzaW5lc3NdIE1vbmdvbGlhIHdhcyBncmFudGVkIG9ic2VydmVyIHN0YXR1cyB0byBUUkFDRUNBLg0KMTk5NiAoNyBBdWd1c3QpOltSZXNlYXJjaF1bU3BhY2VdIE5BU0EgYW5ub3VuY2VkIGZvc3NpbGl6ZWQgZXZpZGVuY2Ugb2YgYW5jaWVudCBsaWZlIGluIG1ldGVvcml0ZSBBTEggODQwMDEgZnJvbSBNYXJzLg0KMTk5NiAoT2N0IDI3KTpbUmVzZWFyY2hdW1NwYWNlXSBnZW5ldGljaXN0cyBzaG93ZWQgZXZpZGVuY2UgdGhhdCBtYW55IGdlbmVzIGFyZSBtdWNoIG9sZGVyIHRoYW4gdGhlIGZvc3NpbCByZWNvcmQgd291bGQgaW5kaWNhdGUuIFN1YnNlcXVlbnQgc3R1ZGllcyBoYXZlIHN0cmVuZ3RoZW5lZCB0aGlzIGZpbmRpbmcuDQoxOTk2OltCdXNpbmVzc11bR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2hlbiB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4gc2lnbmVkIHRoZSBUcmVhdHkgb24gRGVlcGVuaW5nIE1pbGl0YXJ5IFRydXN0IGluIEJvcmRlciBSZWdpb25zIGluIFNoYW5naGFpLiBPbiAyNCBBcHJpbCAxOTk3IHRoZSBzYW1lIGNvdW50cmllcyBzaWduZWQgdGhlIFRyZWF0eSBvbiBSZWR1Y3Rpb24gb2YgTWlsaXRhcnkgRm9yY2VzIGluIEJvcmRlciBSZWdpb25zIGluIGEgbWVldGluZyBpbiBNb3Njb3csIFJ1c3NpYS4gT24gMjAgTWF5IDE5OTcgUnVzc2lhbiBQcmVzaWRlbnQgQm9yaXMgWWVsdHNpbiBhbmQgQ2hpbmVzZSBQcmVzaWRlbnQgSmlhbmcgWmVtaW4gc2lnbmVkIGEgZGVjbGFyYXRpb24gb24gYSAibXVsdGlwb2xhciB3b3JsZCIuDQoxOTk2OiAxOTk2IE1vdW50IEV2ZXJlc3QgRGlzYXN0ZXIsIGluIHdoaWNoIGVpZ2h0IHBlb3BsZSBkaWVkIHdoaWxlIG9uIGFuIGV4cGVkaXRpb24gdG8gc2NhbGUgdGhlIGluZmFtb3VzIHN1bW1pdC4gT25lIG9mIHRoZSBjbGltYmVycyB3aG8gbG9zdCBoaXMgbGlmZSB3YXMgQW5keSBIYXJyaXMsIHBsYXllZCBpbiBFdmVyZXN0IGJ5IE1hcnRpbiBIZW5kZXJzb24uIEhhcnJpcyB3YXMgb25lIG9mIHRoZSBndWlkZXMgZm9yIHRoZSBBZHZlbnR1cmUgQ29uc3VsdGFudHMsIGFsb25nIHdpdGggUm9iIEhhbGwgYW5kIE1pa2UgR3Jvb20uIEluIHRoZSBmaWxtLCBoZSBhcHBlYXJzIHRvIGRpZSB3aGlsZSB3aXRoIEhhbGwsIGZhbGxpbmcgb2ZmIGEgY2xpZmYgYWZ0ZXIgYSBoYWxsdWNpbmF0aW9uLiBCdXQgUm9iIEhhbGwgbmV2ZXIgcmVwb3J0ZWQgdGhpcywgYW5kIHNpbmNlIGhlIGRpZWQgc2hvcnRseSB0aGVyZWFmdGVyLCB0aGVyZSBpcyBubyB3YXkgdG8gY29uZmlybSB0aGUgY2lyY3Vtc3RhbmNlcyBzdXJyb3VuZGluZyBIYXJyaXMnIGRlYXRoLg0KMTk5NjpbQ29tcHV0aW5nXVtRdWFudHVtXSAgTG92IEdyb3ZlciBkZXZpc2VkIGFuIGFsZ29yaXRobSAoR3JvdmVyJ3MgYWxnb3JpdGhtKSB0aGF0IGNvdWxkIHNlYXJjaCBhbiB1bnNvcnRlZCBkYXRhYmFzZSBpbiBzcXVhcmUgcm9vdCB0aW1lIG9uIGEgcXVhbnR1bSBjb21wdXRlciwgd2hpY2ggd291bGQgb3V0cGVyZm9ybSBhbnkgY2xhc3NpY2FsIGFsZ29yaXRobS4NCjE5OTY6W1VTXSBCYXJhY2sgT2JhbWEgd2FzIGVsZWN0ZWQgdG8gdGhlIElsbGlub2lzIFNlbmF0ZSwgc3VjY2VlZGluZyBEZW1vY3JhdGljIFN0YXRlIFNlbmF0b3IgQWxpY2UgUGFsbWVyIGZyb20gSWxsaW5vaXMncyAxM3RoIERpc3RyaWN0LCB3aGljaCwgYXQgdGhhdCB0aW1lLCBzcGFubmVkIENoaWNhZ28gU291dGggU2lkZSBuZWlnaGJvcmhvb2RzIGZyb20gSHlkZSBQYXJr4oCTS2Vud29vZCBzb3V0aCB0byBTb3V0aCBTaG9yZSBhbmQgd2VzdCB0byBDaGljYWdvIExhd24uDQoxOTk2OltVS10gQ2hhcmxlcyBJSUkgYW5kIERpYW5hIGdldHMgZGl2b3JjZWQuDQoxOTk2IChKYW4gMjUpOltCb29rXSBQZXRlciBMeW5jaCAmIEpvaG4gUm90aGNoaWxkJ3MgTGVhcm4gdG8gRWFybjogQSBCZWdpbm5lcidzIEd1aWRlIHRvIHRoZSBCYXNpY3Mgb2YgSW52ZXN0aW5nIGFuZCBCdXNpbmVzcy4NCjE5OTYgKEphbik6W0NyaW1lXVtJbmRpYV0gQW5lZXMgSWJyYWhpbSBhcnJlc3RlZCBpbiBCYWhyYWluLCBzaGlmdGVkIHRvIER1YmFpIGFsbGVnZWRseSBvbiB0aGUgaW50ZXJ2ZW50aW9uIG9mIHNvbWUgb2YgRHViYWkncyBydWxpbmcgbm90YWJsZXMsIGFuZCB3YXMgdGhlbiBhbGxvd2VkIHRvIHNsaXAgYXdheSB0byBLYXJhY2hpLCBQYWtpc3Rhbi4NCjE5OTY6IE5hdGlvbmFsIEFlcm9zcGFjZSBMYWJvcmF0b3JpZXMsIEluZGlhIGluZGlnZW5vdXNseSBidWlsdCBGTE9TT0xWRVIsIEluZGlhJ3MgZmlyc3Qgc3VwZXJjb21wdXRlci4gSXQgd2FzIHJlcGxpY2F0ZWQgYW5kIGluc3RhbGxlZCBhdCBJQ0FEIE1vc2NvdyBpbiAxOTkxIHVuZGVyIFJ1c3NpYW4gY29sbGFib3JhdGlvbi4NCjE5OTY6IEluZGlhL1Bha2lzdGFuL1NyaSBMYW5rYSAxOTk2Lg0KMTk5NjpbQ29tcHV0aW5nXVt3d3ddIE1hcmlvIDY0IGdhbWUgcmFuIDEwMCBtaWxsaW9uIGNhbGN1bGF0aW9ucyBwZXIgc2Vjb25kLCA1NDAgbWlsbGlvbiAoSGFsZi1MaWZlKSBpbiAxOTk4LCBNaW5lY3JhZnQgKDIwMTEpIHJ1bm5pbmcgMTAwIGJpbGxpb24gY2FsY3VsYXRpb25zLCBDeWJlcnB1bmsgMjA3NyAobW9zdCByZWFsaXN0aWMgdmlkZW8gZ2FtZSAyMDI0KSwgeW91IG5lZWQgYSBncmFwaGljcyBjYXJkIHRoYXQgY2FuIHBlcmZvcm0gYXJvdW5kIDM2IHRyaWxsaW9uIGNhbGMgcGVyIHNlY29uZC4NCjE5OTY6IFByb2YgTWFsY29sbSBIZWF0aC4gUHJvZmVzc29yIG9mIEdyZWVrIExhbmd1YWdlIGFuZCBMaXRlcmF0dXJlIEBsZWVkcy5hYy51aywgdHJhbnNsYXRlZCBBcmlzdG90bGUncyBQb2V0aWNzLg0KMTk5NjogVGhlIDU2SyBtb2RlbSB3YXMgaW52ZW50ZWQgYnkgRHIuIEJyZW50IFRvd25zaGVuZA0KMTk5NiAoRmViIDEzKTogTmVwYWxlc2UgQ2l2aWwgV2FyIHN0YXJ0ZWQuIFRoZSBNYW9pc3QgUmViZWxsaW9uIChsYWJlbGxlZCB0aGUgUGVvcGxlJ3MgV2FyIGJ5IHRoZW4gQ1BOKE1hb2lzdCkpIHdhcyBhbiBhcm1lZCBjb25mbGljdCBhZ2FpbnN0IEdvdmVybm1lbnQgb2YgTmVwYWwgKHRoZW4gSE1HIG9mIE5lcGFsKSBmb3VnaHQgZnJvbSAxOTk2IHRvIDIwMDYuIFRoZSByZWJlbGxpb24gd2FzIGxhdW5jaGVkIGJ5IHRoZSBDb21tdW5pc3QgUGFydHkgb2YgTmVwYWwgKE1hb2lzdCkgb24gMTMgRmVicnVhcnkgMTk5NiB3aXRoIHRoZSBtYWluIGFpbSBvZiBvdmVydGhyb3dpbmcgdGhlIE5lcGFsZXNlIG1vbmFyY2h5IGFuZCBlc3RhYmxpc2hpbmcgYSAnUGVvcGxlJ3MgUmVwdWJsaWMnLiBJdCBlbmRlZCB3aXRoIHRoZSBDb21wcmVoZW5zaXZlIFBlYWNlIEFjY29yZCBzaWduZWQgb24gMjEgTm92ZW1iZXIgMjAwNi4NCjE5OTYgKE1hciAxKTogW0dlb1BvbGl0aWNzXSBUaGUgQXNpYeKAk0V1cm9wZSBNZWV0aW5nIChBU0VNKSBpcyBhbiBBc2lhbuKAk0V1cm9wZWFuIHBvbGl0aWNhbCBkaWFsb2d1ZSBmb3J1bSB0byBlbmhhbmNlIHJlbGF0aW9ucyBhbmQgdmFyaW91cyBmb3JtcyBvZiBjb29wZXJhdGlvbiBiZXR3ZWVuIGl0cyBwYXJ0bmVycy4gSXQgd2FzIG9mZmljaWFsbHkgZXN0YWJsaXNoZWQgYXQgdGhlIDFzdCBBU0VNIFN1bW1pdCAoQVNFTTEpIGluIEJhbmdrb2ssIFRoYWlsYW5kLCBieSB0aGUgdGhlbiAxNSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aGUgRXVyb3BlYW4gQ29tbWlzc2lvbiwgdGhlIHRoZW4gNyBNZW1iZXIgU3RhdGVzIG9mIHRoZSBBc3NvY2lhdGlvbiBvZiBTb3V0aGVhc3QgQXNpYW4gTmF0aW9ucyAoQVNFQU4pLCBhbmQgdGhlIGluZGl2aWR1YWwgY291bnRyaWVzIG9mIENoaW5hLCBKYXBhbiwgYW5kIFNvdXRoIEtvcmVhLiBBIHNlcmllcyBvZiBlbmxhcmdlbWVudHMgc2F3IGFkZGl0aW9uYWwgRVUgTWVtYmVyIFN0YXRlcyBqb2luIGFzIHdlbGwgYXMgSW5kaWEsIE1vbmdvbGlhLCBQYWtpc3RhbiBhbmQgdGhlIEFTRUFOIFNlY3JldGFyaWF0IGluIDIwMDgsIEF1c3RyYWxpYSwgTmV3IFplYWxhbmQgYW5kIFJ1c3NpYSBpbiAyMDEwLCBCYW5nbGFkZXNoLCBOb3J3YXksIGFuZCBTd2l0emVybGFuZCBpbiAyMDEyLCBhcyB3ZWxsIGFzIENyb2F0aWEsIGFuZCBLYXpha2hzdGFuIGluIDIwMTQuDQoxOTk2IChBcHIgMjYpOiBbR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2l0aCB0aGUgc2lnbmluZyBvZiB0aGUgVHJlYXR5IG9uIERlZXBlbmluZyBNaWxpdGFyeSBUcnVzdCBpbiBCb3JkZXIgUmVnaW9ucyBpbiBTaGFuZ2hhaSBieSB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4uIExhdGVyIG9uIEp1biAxNSwgMjAwMSBpdCBnb3QgcmVuYW1lZCBhcyBTaGFuZ2hhaSBDb29wZXJhdGlvbiBPcmdhbmlzYXRpb24gKFNDTykgb3IgU2hhbmdoYWkgUGFjdCANCjE5OTYgKE1heSAxNik6IEF0YWwgQmloYXJpIFZhanBheWVlIGJlY29tZXMgUE0gb2YgSW5kaWEgZm9yIHRoZSB2ZXJ5IGZpcnN0IHRpbWUgZm9yIDE2IGRheXMuDQoxOTk2IChKdW4gMSk6IEF0YWwgQmloYXJpIFZhanBheWVlIHJlc2lnbnMuIEhEIERldmUgR293ZGEgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NiAoQXVnIDE0KTpbcmVzZWFyY2hdW2V4dHJlbWVdIEthcmVuIEVsaXphYmV0aCBXZXR0ZXJoYWhuIChPY3RvYmVyIDE2LCAxOTQ4IOKAkyBKdW5lIDgsIDE5OTcpLCBhbHNvIGtub3duIGFzIEthcmVuIFdldHRlcmhhaG4gSmVubmV0dGUsIHdhcyBhbiBBbWVyaWNhbiBwcm9mZXNzb3Igb2YgY2hlbWlzdHJ5IGF0IERhcnRtb3V0aCBDb2xsZWdlLCBOZXcgSGFtcHNoaXJlLCB3aG8gc3BlY2lhbGl6ZWQgaW4gdG94aWMgbWV0YWwgZXhwb3N1cmUuIFNoZSBkaWVkIG9mIG1lcmN1cnkgcG9pc29uaW5nIGF0IHRoZSBhZ2Ugb2YgNDggZHVlIHRvIGFjY2lkZW50YWwgZXhwb3N1cmUgdG8gdGhlIGV4dHJlbWVseSB0b3hpYyBvcmdhbmljIG1lcmN1cnkgY29tcG91bmQgZGltZXRoeWxtZXJjdXJ5IChIZyhDSDMpMikuIFByb3RlY3RpdmUgZ2xvdmVzIGluIHVzZSBhdCB0aGUgdGltZSBvZiB0aGUgaW5jaWRlbnQgcHJvdmlkZWQgaW5zdWZmaWNpZW50IHByb3RlY3Rpb24sIGFuZCBleHBvc3VyZSB0byBvbmx5IGEgc2luZ2xlIGRyb3Agb3IgdHdvIG9mIHRoZSBkaW1ldGh5bG1lcmN1cnkgYWJzb3JiZWQgdGhyb3VnaCB0aGUgZ2xvdmVzIHByb3ZlZCB0byBiZSBmYXRhbCBhZnRlciBsZXNzIHRoYW4gYSB5ZWFyLiBUZXN0cyBsYXRlciByZXZlYWxlZCB0aGF0IGRpbWV0aHlsbWVyY3VyeSBjYW4sIGluIGZhY3QsIHJhcGlkbHkgcGVybWVhdGUgc2V2ZXJhbCBraW5kcyBvZiBsYXRleCBnbG92ZXMgYW5kIGVudGVyIHRoZSBza2luIHdpdGhpbiBhYm91dCAxNSBzZWNvbmRzLiBIZXIgZXhwb3N1cmUgd2FzIGxhdGVyIGNvbmZpcm1lZCBieSBoYWlyIGFuYWx5c2lzLCB3aGljaCBzaG93ZWQgYSBkcmFtYXRpYyBqdW1wIGluIG1lcmN1cnkgbGV2ZWxzIDE3IGRheXMgYWZ0ZXIgdGhlIGluaXRpYWwgYWNjaWRlbnQsIHBlYWtpbmcgYXQgMzkgZGF5cywgZm9sbG93ZWQgYnkgYSBncmFkdWFsIGRlY2xpbmUuIEFwcHJveGltYXRlbHkgdGhyZWUgbW9udGhzIGFmdGVyIHRoZSBpbml0aWFsIGFjY2lkZW50IFdldHRlcmhhaG4gYmVnYW4gZXhwZXJpZW5jaW5nIGJyaWVmIGVwaXNvZGVzIG9mIGFiZG9taW5hbCBkaXNjb21mb3J0IGFuZCBub3RpY2VkIHNpZ25pZmljYW50IHdlaWdodCBsb3NzLiBUaGUgbW9yZSBkaXN0aW5jdGl2ZSBuZXVyb2xvZ2ljYWwgc3ltcHRvbXMgb2YgbWVyY3VyeSBwb2lzb25pbmcsIGluY2x1ZGluZyBsb3NzIG9mIGJhbGFuY2UgYW5kIHNsdXJyZWQgc3BlZWNoLCBhcHBlYXJlZCBpbiBKYW51YXJ5IDE5OTcsIGZpdmUgbW9udGhzIGFmdGVyIHRoZSBhY2NpZGVudC4gSGVyIGJsb29kIGFuZCB1cmluYXJ5IG1lcmN1cnkgY29udGVudCB3ZXJlIG1lYXN1cmVkIGF0IDQsMDAwIM68Zy9MIGFuZCAyMzQgzrxnL0wsIHJlc3BlY3RpdmVseeKAlGJvdGggbWFueSB0aW1lcyB0aGVpciByZXNwZWN0aXZlIHRveGljIHRocmVzaG9sZHMgb2YgMjAwIM68Zy9MIGFuZCA1MCDOvGcvTCAoYmxvb2QgYW5kIHVyaW5lIHJlZmVyZW5jZSByYW5nZXMgYXJlIDEgdG8gOCDOvGcvTCBhbmQgMSB0byA1IM68Zy9MKS4NCjE5OTYgKERlYyA0IDA2OjU4OjA3IFVUQyk6W1NwYWNlXVtNYXJzXVtFYXJ0aF0gTGF1bmNoIG9mIE1hcnMgUGF0aGZpbmRlciBvbiBEZWx0YSBJSSA3OTI1ICgjRDI0MCkNCnJvY2tldCBmcm9tIENhcGUgQ2FuYXZlcmFsIFNMQy0xNy4gVG8gcHJvdmUgdGhhdCB0aGUgZGV2ZWxvcG1lbnQgb2YgImZhc3RlciwgYmV0dGVyIGFuZCBjaGVhcGVyIiBzcGFjZWNyYWZ0IHdhcyBwb3NzaWJsZSAod2l0aCB0aHJlZSB5ZWFycyBmb3IgZGV2ZWxvcG1lbnQgYW5kIGEgY29zdCB1bmRlciAkMTUwIG1pbGxpb24gZm9yIHRoZSBsYW5kZXIsIGFuZCAkMjUgbWlsbGlvbiBmb3IgdGhlIHJvdmVyKS4gVG8gc2hvdyB0aGF0IGl0IHdhcyBwb3NzaWJsZSB0byBzZW5kIGEgbG9hZCBvZiBzY2llbnRpZmljIGluc3RydW1lbnRzIHRvIGFub3RoZXIgcGxhbmV0IHdpdGggYSBzaW1wbGUgc3lzdGVtIGFuZCBhdCBvbmUtZmlmdGVlbnRoIHRoZSBjb3N0IG9mIGEgVmlraW5nIG1pc3Npb24uIChGb3IgY29tcGFyaXNvbiwgdGhlIFZpa2luZyBtaXNzaW9ucyBjb3N0ICQ5MzUgbWlsbGlvbiBpbiAxOTc0IG9yICQzLjUgYmlsbGlvbiBpbiAxOTk3IGRvbGxhcnMuKS4gVG8gZGVtb25zdHJhdGUgTkFTQSdzIGNvbW1pdG1lbnQgdG8gbG93LWNvc3QgcGxhbmV0YXJ5IGV4cGxvcmF0aW9uIGJ5IGZpbmlzaGluZyB0aGUgbWlzc2lvbiB3aXRoIGEgdG90YWwgZXhwZW5kaXR1cmUgb2YgJDI4MCBtaWxsaW9uLCBpbmNsdWRpbmcgdGhlIGxhdW5jaCB2ZWhpY2xlIGFuZCBtaXNzaW9uIG9wZXJhdGlvbnMuDQoxOTk2OiBhIHJhaWQgb24gdGhlIEFuaW1hbCBIdXNiYW5kcnkgZGVwYXJ0bWVudOKAmXMgb2ZmaWNlcyBpbiBDaGFpYmFzYSwgQmloYXIgdW5mb2xkZWQgdGhlIFJzLjk1MCBjcm9yZSBmb2RkZXIgc2NhbSwgaW4gd2hpY2ggdGhlIEJpaGFyIGNoaWVmIG1pbmlzdGVyIExhbHUgUHJhc2FkIFlhZGF2IGNhdGNoIHVwIGluIGEgbGlmZWxvbmcgdHVzc2xlIHdpdGggdGhlIENCSS4NCjE5OTY6W0Jvb2tdW0FkdmVudHVyZV0gSm9uIEtyYWthdWVyJ3MgSW50byB0aGUgV2lsZC4NCjE5OTY6W0NvbXB1dGluZ10gVGhlIFZpZGVvTEFOIHNvZnR3YXJlIG9yaWdpbmF0ZWQgYXMgYSBGcmVuY2ggYWNhZGVtaWMgcHJvamVjdC4gVkxDIHVzZWQgdG8gc3RhbmQgZm9yICJWaWRlb0xBTiBDbGllbnQiIHdoZW4gVkxDIHdhcyBhIGNsaWVudCBvZiB0aGUgVmlkZW9MQU4gcHJvamVjdCwgb2ZmaWNpYWxseSByZWxlYXNlZCB1bmRlciBHTlUgR1BMIG9uIDIwMDEgKEZlYiAxKS4NCjE5OTY6W01lbWVdIERhbmNpbmcgQmFieSBTY3JlZW5zYXZlcg0KMTk5NjpbU3BhY2VYXSBUaGUgZW50aXJlIHByb2Nlc3MgZm9yIHRoZSBKYW1lcyBXZWJiIFNwYWNlIFRlbGVzY29wZSAoSldTVCkgZnJvbSBpbml0aWFsIGNvbmNlcHQgdG8gbGF1bmNoIHNwYW5uZWQgYXBwcm94aW1hdGVseSAyNSB5ZWFycywgd2l0aCBpbml0aWFsIGRlc2lnbnMgYmVnaW5uaW5nIGluIDE5OTYgYW5kIHRoZSB0ZWxlc2NvcGUgbGF1bmNoaW5nIGluIDIwMjEsIGJ1dCBhIHNpZ25pZmljYW50IHBvcnRpb24gb2YgdGhpcyB3YXMgc3BlbnQgaW4gZGVzaWduLCB0ZXN0aW5nLCBhbmQgb3ZlcmNvbWluZyBtYWpvciByZWRlc2lnbnMgYW5kIGRlbGF5cywgbm90IGp1c3QgYXNzZW1ibHkuIA0KMTk5NiAoRmViIDI4KTpbRGVsaGldIEluZGlyYXB1cmFtLCBHaGF6aWFiYWQgd2FzIGVzdGQgd2hlbiBpdHMgZm91bmRhdGlvbiBzdG9uZSAoS2FsYSBQYXRoYXIpIHdhcyBpbmF1Z3VyYXRlZCBieSBTaCBNb3RpbGFsIFZvcmEsIHRoZW4gR292ZXJub3Igb2YgVVAuICgyMDIxKSBJJ3B1cmFtIEV4dG4gdG8gYmUgYnVpbHQgb24gMTIgYWNyZXMgb25seSwgY29uY2VpdmVkIGluIDIwMDQuDQoxOTk2OltCb29rXVtNaWxpdGFyeV1bQ3VsdHVyZV1bRVVdW1VTQV0gR2VvcmdlIFIuUi4gTWFydGluIGlzIHRoZSBBbWVyaWNhbiBhdXRob3Igb2YgdGhlIGVwaWMgZmFudGFzeSBib29rIHNlcmllcyBBIFNvbmcgb2YgSWNlIGFuZCBGaXJlLCB3aGljaCBiZWdhbiB3aXRoIEEgR2FtZSBvZiBUaHJvbmVzICgxOTk2KSBhbmQgc2VydmVkIGFzIHRoZSBiYXNpcyBmb3IgSEJPJ3MgbWFzc2l2ZWx5IHBvcHVsYXIgR2FtZSBvZiBUaHJvbmVzIFRWIHNlcmllcy4gQSBTb25nIG9mIEljZSBhbmQgRmlyZSBpcyBhIHNlcmllcyBvZiBoaWdoIGZhbnRhc3kgbm92ZWxzIGJ5IHRoZSBBbWVyaWNhbiBhdXRob3IgR2VvcmdlIFIuIFIuIE1hcnRpbi4gTWFydGluIGJlZ2FuIHdyaXRpbmcgdGhlIGZpcnN0IHZvbHVtZSwgQSBHYW1lIG9mIFRocm9uZXMsIGluIDE5OTEsIGFuZCBwdWJsaXNoZWQgaXQgaW4gMTk5Ni4gTWFydGluLCB3aG8gb3JpZ2luYWxseSBlbnZpc2lvbmVkIHRoZSBzZXJpZXMgYXMgYSB0cmlsb2d5LCBoYXMgcmVsZWFzZWQgZml2ZSBvdXQgb2Ygc2V2ZW4gcGxhbm5lZCB2b2x1bWVzLiANCg0KW0dlbmVyYXRpb25dIE1pbGxlbm5pYWwgZ2VuZXJhdGlvbiAoMTk4MeKAkzE5OTYpIGVuZHM7IGxhc3RlZCBmb3IgMTUgeWVhcnMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICA1MCB5ZWFycyBvZiBJbmRlcGVuZGVudCBJbmRpYSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSANCg0KW0dlbmVyYXRpb25dIEdlbiBaICgxOTk34oCTMjAxMikgc3RhcnRzOyBhbmQgZXhpc3RzIGZvciBuZXh0IDE1IHllYXJzLg0KDQoxOTk3OltXaG9dW1Jlc2VhcmNoXVtDb21wdXRpbmddW1RlY2hdW0N1bHR1cmVdIFZMQyBNZWRpYSBQbGF5ZXIgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBzdHVkZW50cyBhdCB0aGUgRnJlbmNoIGVuZ2luZWVyaW5nIHNjaG9vbCDDiWNvbGUgQ2VudHJhbGUgUGFyaXMgaW4gMTk5Ni4gV2hpbGUgaXQgc3RhcnRlZCBhcyBhbiBhY2FkZW1pYyBwcm9qZWN0IChWaWRlb0xBTikgdG8gc3RyZWFtIHZpZGVvIG92ZXIgYSBjYW1wdXMgbmV0d29yaywgaXRzIGRldmVsb3BtZW50IGFuZCBtb2Rlcm5pemF0aW9uIHdlcmUgbGF0ZXIgbGVkIGJ5IEplYW4tQmFwdGlzdGUgS2VtcGYuIA0KMTk5NzpbUmVzZWFyY2hdW1NwYWNlXSAyOSBKdWx5IDE5OTc6IGEgTkFTQSBzY2llbnRpc3QgYW5ub3VuY2VkIGV2aWRlbmNlIG9mIGZvc3NpbGl6ZWQgbWljcm9zY29waWMgbGlmZSBmb3JtcyBpbiBhIG1ldGVvcml0ZSBub3QgZnJvbSBhbnkga25vd24gcGxhbmV0Lg0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgR3JvdXAgb2YgRWlnaHQgKEc4KSB3YXMgYW4gaW50ZXJnb3Zlcm5tZW50YWwgcG9saXRpY2FsIGZvcnVtIGZyb20gMTk5NyB0byAyMDE0LCBmb3JtZWQgYnkgaW5jb3Jwb3JhdGluZyBSdXNzaWEgaW50byB0aGUgRzcuIFRoZSBHOCBiZWNhbWUgdGhlIEc3IGFnYWluIGFmdGVyIFJ1c3NpYSB3YXMgZXhwZWxsZWQgaW4gMjAxNCBhZnRlciB0aGUgUnVzc2lhbiBhbm5leGF0aW9uIG9mIENyaW1lYS4gRm91bmRlZDogMTk5NywgRGVudmVyLCBDb2xvcmFkbywgVW5pdGVkIFN0YXRlcw0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBGb3VuZGVkOiA2IEp1bmUgMTk5NywgVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiAoQklNU1RFQykgaXMgYW4gaW50ZXJuYXRpb25hbCBvcmdhbml6YXRpb24gb2Ygc2V2ZW4gU291dGggQXNpYW4gYW5kIFNvdXRoZWFzdCBBc2lhbiBuYXRpb25zLCBob3VzaW5nIDEuNzMgYmlsbGlvbiBwZW9wbGUgYW5kIGhhdmluZyBhIGNvbWJpbmVkIGdyb3NzIGRvbWVzdGljIHByb2R1Y3Qgb2YgVVMkNS4yIHRyaWxsaW9uLg0KMTk5NzpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gYnVpbHQgdGhlIGZpcnN0IGV4cGVyaW1lbnRhbCBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCBjb3VsZCBtYW5pcHVsYXRlIDcgcXViaXRzIHVzaW5nIG51Y2xlYXIgbWFnbmV0aWMgcmVzb25hbmNlIChOTVIpIHRlY2huaXF1ZXMuDQoxOTk3IChKdWwgNCk6W1NwYWNlXVtNYXJzXSBUaGUgTWFycyBQYXRoZmluZGVyIGVuZHVyZWQgYSAzMC1zZWNvbmQgY29tbXVuaWNhdGlvbnMgYmxhY2tvdXQgYXMgaXQgZW50ZXJlZCBNYXJzJyBhdG1vc3BoZXJlLiBJdCBsYW5kZWQgYXQgQXJlcyBWYWxsaXMsIENocnlzZSBQbGFuaXRpYSwgTWFycyAxOcKwN+KAsjQ44oCzTiAzM8KwMTPigLIxMuKAs1cuIE1hcnMgUGF0aGZpbmRlciAoTUVTVVIgUGF0aGZpbmRlcikgaXMgYW4gQW1lcmljYW4gcm9ib3RpYyBzcGFjZWNyYWZ0IHRoYXQgbGFuZGVkIGEgYmFzZSBzdGF0aW9uIHdpdGggYSByb3ZpbmcgcHJvYmUgb24gTWFycyBpbiAxOTk3LiBJdCBjb25zaXN0ZWQgb2YgYSBsYW5kZXIsIHJlbmFtZWQgdGhlIENhcmwgU2FnYW4gTWVtb3JpYWwgU3RhdGlvbiwgYW5kIGEgbGlnaHR3ZWlnaHQsIDEwLjYga2cgKDIzIGxiKSB3aGVlbGVkIHJvYm90aWMgTWFycyByb3ZlciBuYW1lZCBTb2pvdXJuZXIsIHRoZSBmaXJzdCByb3ZlciB0byBvcGVyYXRlIG91dHNpZGUgdGhlIEVhcnRo4oCTTW9vbiBzeXN0ZW0uDQoxOTk3OltCb29rXSBNaXRjaCBBbGJvbSdzIFR1ZXNkYXlzIHdpdGggTW9ycmllLg0KMTk5NzpbR2FtaW5nXSBHcmFuZCBUaGVmdCBBdXRvIChHVEEpIHJlbGVhc2VkIGJ5IERNQSBEZXNpZ24gKGxhdGVyIFJvY2tzdGFyIE5vcnRoKSBmb3IgUFMxLCBXaW5kb3dzIGFuZCBNUy1ET1M7IEdyYW5kIFRoZWZ0IEF1dG86IFZpY2UgQ2l0eSAoMjAwMik7IEdyYW5kIFRoZWZ0IEF1dG86IFNhbiBBbmRyZWFzICgyMDA0KTsgR3JhbmQgVGhlZnQgQXV0byBJViAoMjAwOCk7IEdyYW5kIFRoZWZ0IEF1dG8gViAoMjAxMyk7IEdyYW5kIFRoZWZ0IEF1dG86IFRoZSBUcmlsb2d5IOKAkyBUaGUgRGVmaW5pdGl2ZSBFZGl0aW9uICgyMDIxKQ0KMTk5NzogVGVra2VuIDMgd2FzIGRlc2lnbmVkIGJ5IEthdHN1aGlybyBIYXJhZGEgKE9zYWthLCBPc2FrYSBQcmVmZWN0dXJlLCBKYXBhbikgb2YgQmFuZGFpIE5hbWNvIEVudGVydGFpbm1lbnQgaGVhZHF1YXJ0ZXJlZCBhdCDFjHRhLCBUb2t5by4NCjE5OTcgKE1hciA2KTogW0dlb1BvbGl0aWNzXSBUaGUgSW5kaWFuIE9jZWFuIFJpbSBBc3NvY2lhdGlvbiwgZm9ybWVybHkga25vd24gYXMgdGhlIEluZGlhbiBPY2VhbiBSaW0gSW5pdGlhdGl2ZSBhbmQgdGhlIEluZGlhbiBPY2VhbiBSaW0gQXNzb2NpYXRpb24gZm9yIFJlZ2lvbmFsIENvb3BlcmF0aW9uLCBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBjb25zaXN0aW5nIG9mIDIzIHN0YXRlcyBib3JkZXJpbmcgdGhlIEluZGlhbiBPY2Vhbi4gVGhlIElPUkEgaXMgYSByZWdpb25hbCBmb3J1bSwgdHJpcGFydGl0ZSBpbiBuYXR1cmUsIGJyaW5naW5nIHRvZ2V0aGVyIHJlcHJlc2VudGF0aXZlcyBvZiBHb3Zlcm5tZW50LCBCdXNpbmVzcyBhbmQgQWNhZGVtaWEsIGZvciBwcm9tb3RpbmcgY28tb3BlcmF0aW9uIGFuZCBjbG9zZXIgaW50ZXJhY3Rpb24gYW1vbmcgdGhlbS4gSXQgaXMgYmFzZWQgb24gdGhlIHByaW5jaXBsZXMgb2YgT3BlbiBSZWdpb25hbGlzbSBmb3Igc3RyZW5ndGhlbmluZyBFY29ub21pYyBDb29wZXJhdGlvbiBwYXJ0aWN1bGFybHkgb24gVHJhZGUgRmFjaWxpdGF0aW9uIGFuZCBJbnZlc3RtZW50LCBQcm9tb3Rpb24gYXMgd2VsbCBhcyBTb2NpYWwgRGV2ZWxvcG1lbnQgb2YgdGhlIHJlZ2lvbi4gVGhlIENvb3JkaW5hdGluZyBTZWNyZXRhcmlhdCBvZiBJT1JBIGlzIGxvY2F0ZWQgYXQgRWJlbmUsIE1hdXJpdGl1cy4NCjE5OTcgKEFwciAyMSk6IEguRC4gRGV2ZSBHb3dkYSByZXNpZ25zLiBJbmRlciBLdW1hciBHdWpyYWwgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NyAoSnVuIDYpOiBbR2VvUG9saXRpY3NdIEJJTVNURUMgZm91bmRlZC4gVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBvZiBzZXZlbiBTb3V0aCBBc2lhbiBhbmQgU291dGhlYXN0IEFzaWFuIG5hdGlvbnMsIGhvdXNpbmcgMS43MyBiaWxsaW9uIHBlb3BsZSBhbmQgaGF2aW5nIGEgY29tYmluZWQgZ3Jvc3MgZG9tZXN0aWMgcHJvZHVjdCBvZiAkMy44IHRyaWxsaW9uLiBUaGUgQklNU1RFQyBtZW1iZXIgc3RhdGVzIOKAkyBCYW5nbGFkZXNoLCBCaHV0YW4sIEluZGlhLCBNeWFubWFyLCBOZXBhbCwgU3JpIExhbmthLCBhbmQgVGhhaWxhbmQg4oCTIGFyZSBhbW9uZyB0aGUgY291bnRyaWVzIGRlcGVuZGVudCBvbiB0aGUgQmF5IG9mIEJlbmdhbC4NCjE5OTcgKEp1biA4KTogRGVzcGl0ZSBhZ2dyZXNzaXZlIGNoZWxhdGlvbiB0aGVyYXB5LCBoZXIgY29uZGl0aW9uIHJhcGlkbHkgZGV0ZXJpb3JhdGVkLiBUaHJlZSB3ZWVrcyBhZnRlciB0aGUgZmlyc3QgbmV1cm9sb2dpY2FsIHN5bXB0b21zIGFwcGVhcmVkLCBXZXR0ZXJoYWhuIGxhcHNlZCBpbnRvIHdoYXQgYXBwZWFyZWQgdG8gYmUgYSB2ZWdldGF0aXZlIHN0YXRlIHB1bmN0dWF0ZWQgYnkgcGVyaW9kcyBvZiBleHRyZW1lIGFnaXRhdGlvbi4gT25lIG9mIGhlciBmb3JtZXIgc3R1ZGVudHMgc2FpZCB0aGF0ICJIZXIgaHVzYmFuZCBzYXcgdGVhcnMgcm9sbGluZyBkb3duIGhlciBmYWNlLiBJIGFza2VkIGlmIHNoZSB3YXMgaW4gcGFpbi4gVGhlIGRvY3RvcnMgc2FpZCBpdCBkaWRuJ3QgYXBwZWFyIHRoYXQgaGVyIGJyYWluIGNvdWxkIGV2ZW4gcmVnaXN0ZXIgcGFpbi4iIFdldHRlcmhhaG4gd2FzIHJlbW92ZWQgZnJvbSBsaWZlIHN1cHBvcnQgYW5kIHByb25vdW5jZWQgZGVhZCBvbiBKdW5lIDgsIDE5OTcsIHRlbiBtb250aHMgYWZ0ZXIgaGVyIGluaXRpYWwgZXhwb3N1cmUuIEluIHJlc3BvbnNlLCB0aGUgT2NjdXBhdGlvbmFsIFNhZmV0eSBhbmQgSGVhbHRoIEFkbWluaXN0cmF0aW9uIHJlY29tbWVuZGVkIHRoYXQgdGhlIHVzZSBvZiBkaW1ldGh5bG1lcmN1cnkgYmUgYXZvaWRlZCB1bmxlc3MgYWJzb2x1dGVseSBuZWNlc3NhcnkgYW5kIG1hbmRhdGVkIHRoZSB1c2Ugb2YgcGxhc3RpYy1sYW1pbmF0ZSBnbG92ZXMgKFNpbHZlclNoaWVsZCkgd2hlbiBoYW5kbGluZyB0aGlzIGNvbXBvdW5kLg0KMTk5NyAoSnVuIDEzKTpbSmFja10gQm9yZGVyDQoxOTk3IChKdW4gMjYpOltCb29rXSAzMllPIEouIEsuIFJvd2xpbmcgcHVibGlzaGVzIGhlciBmaXJzdCBIYXJyeSBQb3R0ZXIgYm9vaywgVGhlIFBoaWxvc29waGVyJ3MgU3RvbmU7IA0KVGhlIENoYW1iZXIgb2YgU2VjcmV0cyAoMiBKdWx5IDE5OTgpLA0KVGhlIFByaXNvbmVyIG9mIEF6a2FiYW4gKDggSnVseSAxOTk5KSwNClRoZSBHb2JsZXQgb2YgRmlyZSAoOCBKdWx5IDIwMDApLA0KVGhlIE9yZGVyIG9mIHRoZSBQaG9lbml4ICgsIDI3IEp1bmUgMjAwMyksDQpUaGUgSGFsZi1CbG9vZCBQcmluY2UgKDE2IEp1bHkgMjAwNSksDQpUaGUgRGVhdGhseSBIYWxsb3dzICgyMSBKdWx5IDIwMDcpDQoxOTk3IChBdWcgMjUpOltTcGFjZV0gQWR2YW5jZWQgQ29tcG9zaXRpb24gRXhwbG9yZXIgaXMgYSBOQVNBIEV4cGxvcmVyIHByb2dyYW0gc2F0ZWxsaXRlIGFuZCBzcGFjZSBleHBsb3JhdGlvbiBtaXNzaW9uIHRvIHN0dWR5IG1hdHRlciBjb21wcmlzaW5nIGVuZXJnZXRpYyBwYXJ0aWNsZXMgZnJvbSB0aGUgc29sYXIgd2luZCwgdGhlIGludGVycGxhbmV0YXJ5IG1lZGl1bSwgYW5kIG90aGVyIHNvdXJjZXMuDQoxOTk3IChTZXAgMTMpOiB0aGUgaW50cm9kdWN0b3J5IGVwaXNvZGUgb2YgU2hha3RpbWFuIHdhcyBhaXJlZCBvbiBEb29yZGFyc2hhbiAoSW5kaWEncyBuYXRpb25hbCB0ZWxldmlzaW9uIG5ldHdvcmspIGZyb20gMjcgU2VwdGVtYmVyIDE5OTcgdG8gMjcgTWFyY2ggMjAwNSwgb24gU3VuZGF5cyBhdCAxMiBub29uIElTVC4gVGhlIHRlbGVjYXN0IHNsb3QsIGhvd2V2ZXIgd2FzIHNoaWZ0ZWQgdG8gOTozMCBhLm0uIGZvciB0aGUgbGFzdCBlcGlzb2Rlcy4gDQoxOTk3IChTZXAgMjcgMTA6MjMgVVRDKTpbU3BhY2VdW01hcnNdIExhc3QgY29udGFjdCB3aXRoIE1hcnMgUGF0aGZpbmRlci4gTWlzc2lvbiBkdXJhdGlvbiAoTGF1bmNoIHRvIGxhc3QgY29udGFjdCk6IDkgbW9udGhzLCAyMyBkYXlzLg0KMTk5NyAoT2N0IDMxKTpbQm9va10gRG9uYWxkIFRydW1wJ3MgVHJ1bXA6IFRoZSBBcnQgb2YgdGhlIENvbWViYWNrOyBUaGUgQW1lcmljYSBXZSBEZXNlcnZlICgyMDAwKTsgVHJ1bXA6IFRoaW5rIExpa2UgYSBCaWxsaW9uYWlyZTogRXZlcnl0aGluZyBZb3UgTmVlZCB0byBLbm93IEFib3V0IFN1Y2Nlc3MsIFJlYWwgRXN0YXRlLCBhbmQgTGlmZSAoMjAwNCk7IFdoeSBXZSBXYW50IFlvdSB0byBCZSBSaWNoICgyMDA2KTsgVHJ1bXA6IFRoZSBCZXN0IFJlYWwgRXN0YXRlIEFkdmljZSBJIEV2ZXIgUmVjZWl2ZWQ6IDEwMCBUb3AgRXhwZXJ0cyBTaGFyZSBUaGVpciBTdHJhdGVnaWVzICgyMDA2LCBOb3YgMSk7IFRoaW5rIEJJRyBhbmQgS2ljayBBc3MgaW4gQnVzaW5lc3MgYW5kIExpZmUgKDIwMDcpOyBUcnVtcCBOZXZlciBHaXZlIFVwOiBIb3cgSSBUdXJuZWQgTXkgQmlnZ2VzdCBDaGFsbGVuZ2VzIGludG8gU3VjY2VzcyAoMjAwOCk7IFRpbWUgdG8gR2V0IFRvdWdoOiBNYWtpbmcgQW1lcmljYSAjMSBBZ2FpbiAoMjAxMSk7IENyaXBwbGVkIEFtZXJpY2E6IEhvdyB0byBNYWtlIEFtZXJpY2EgR3JlYXQgQWdhaW4gKDIwMTUpDQoxOTk3OiBBcnVuZGhhdGkgUm95IGJlY2FtZSB0aGUgZmlyc3QgSW5kaWFuIHRvIHdpbiBNYW4gQm9va2VyIFByaXplIGZvciBoZXIgbm92ZWwgJ1RoZSBHb2Qgb2YgU21hbGwgVGhpbmdzJy4NCjE5OTc6IElJVC1KRUUgd2FzIGNvbmR1Y3RlZCB0d2ljZSBhZnRlciB0aGUgUS1QYXBlciB3YXMgbGVha2VkLg0KMTk5NzogTkFTQSBlc3RpbWF0ZWQgdGhlcmUgd2VyZSBhcHByb3guIDIsNjQ1IGFydGlmaWNpYWwgc2F0ZWxsaXRlIHBheWxvYWRzIG9yYml0dGluZyB0aGUgZWFydGggYW5kIDYsMjE2IHBpZWNlcyBvZiBzcGFjZSBkZWJyaXMgYXMgdHJhY2tlZCBieSB0aGUgR1NGQy4gT3ZlciAxNiwyOTEgcHJldmlvdXNseSBsYXVuY2hlZCBvYmplY3RzIGhhdmUgZGVjYXllZCBpbnRvIHRoZSBFYXJ0aCdzIGF0bW9zcGhlcmUuDQoxOTk3OiBCSEMgRmluYW5jaWFsLCBJbmMuIG9mIFBlbm5zeWx2YW5pYSBtZXJnZWQgaW50byBGSVNWIHRvIGZvcm0gU2VjdXJlZCBUcmFuc2FjdGlvbiBQcm9jZXNzaW5nIFNlcnZpY2VzLg0KMTk5NzpbQm9va10gVGhlIEZvdXIgQWdyZWVtZW50czogQSBQcmFjdGljYWwgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSBpcyBhIHNlbGYtaGVscCBib29rIGJ5IGJlc3RzZWxsaW5nIGF1dGhvciBEb24gTWlndWVsIFJ1aXogd2l0aCBKYW5ldCBNaWxsczsgVGhlIE1hc3Rlcnkgb2YgTG92ZTogQSBQcmFjdGljYWwgR3VpZGUgdG8gdGhlIEFydCBvZiBSZWxhdGlvbnNoaXAgLS1Ub2x0ZWMgV2lzZG9tIEJvb2sgKDE5OTksIE1hciAzMCk7IFRoZSBWb2ljZSBvZiBLbm93bGVkZ2U6IEEgUHJhY3RpY2FsIEd1aWRlIHRvIElubmVyIFBlYWNlICgyMDA0LCBNYXIgMTApOyBUaGUgRmlmdGggQWdyZWVtZW50OiBBIFByYWN0aWNhbCBHdWlkZSB0byBTZWxmLU1hc3RlcnkgKDIwMDkpOyBUaGUgQ2lyY2xlIG9mIEZpcmU6IEluc3BpcmF0aW9uIGFuZCBHdWlkZWQgTWVkaXRhdGlvbnMgZm9yIExpdmluZyBpbiBMb3ZlIGFuZCBIYXBwaW5lc3MgKDIwMTMsIEF1ZyAxKTsgVGhlIE1hc3Rlcnkgb2YgU2VsZjogQSBUb2x0ZWMgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSAoMjAxNiwgTWF5IDYpDQoxOTk3OltCb29rXSBKb24gS3Jha2F1ZXIncyBJbnRvIFRoaW4gQWlyOiBBIFBlcnNvbmFsIEFjY291bnQgb2YgdGhlIE10LiBFdmVyZXN0IERpc2FzdGVyOyBVbmRlciB0aGUgQmFubmVyIG9mIEhlYXZlbiAoMjAwMyBKdWwpDQoxOTk3IChEZWMgMTEpOltFbnZdIFRoZSBLeW90byBQcm90b2NvbCB3YXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgd2hpY2ggZXh0ZW5kZWQgdGhlIDE5OTIgVW5pdGVkIE5hdGlvbnMgRnJhbWV3b3JrIENvbnZlbnRpb24gb24gQ2xpbWF0ZSBDaGFuZ2UgKFVORkNDQykgdGhhdCBjb21taXRzIHN0YXRlIHBhcnRpZXMgdG8gcmVkdWNlIGdyZWVuaG91c2UgZ2FzIGVtaXNzaW9ucywgYmFzZWQgb24gdGhlIHNjaWVudGlmaWMgY29uc2Vuc3VzIHRoYXQgKHBhcnQgb25lKSBnbG9iYWwgd2FybWluZyBpcyBvY2N1cnJpbmcgYW5kIChwYXJ0IHR3bykgdGhhdCBodW1hbi1tYWRlIENPMiBlbWlzc2lvbnMgYXJlIGRyaXZpbmcgaXQuDQoxOTk3OltJbmRpYV1bRWR1Y2F0aW9uXVtDdWx0dXJlXSBFa2xhdnlhIE1vZGVsIFJlc2lkZW50aWFsIFNjaG9vbCBpcyBhIEdvdmVybm1lbnQgb2YgSW5kaWEgc2NoZW1lIGZvciBtb2RlbCByZXNpZGVudGlhbCBzY2hvb2wgZm9yIEluZGlhbiB0cmliYWxzIGFjcm9zcyBJbmRpYS4gSXQgaXMgb25lIG9mIHRoZSBmbGFnc2hpcCBpbnRlcnZlbnRpb25zIG9mIHRoZSBNaW5pc3RyeSBvZiBUcmliYWwgQWZmYWlycywgR292ZXJubWVudCBvZiBJbmRpYSBhbmQgd2FzIGludHJvZHVjZWQgaW4gdGhlIHllYXIgMTk5Ny05OCB0byBlbnN1cmUgdHJpYmFsIHN0dWRlbnRzIGdldCBhY2Nlc3MgdG8gcXVhbGl0eSBlZHVjYXRpb24gaW4gdGhlIHJlbW90ZSB0cmliYWwgYXJlYXMuIEVNUlNzIGFyZSBzZXQgdXAgaW4gU3RhdGVzL1VUcyB3aXRoIGdyYW50cyB1bmRlciBBcnRpY2xlIDI3NSgxKSBvZiB0aGUgQ29uc3RpdHV0aW9uIG9mIEluZGlhLiBBcyBwZXIgdGhlIGJ1ZGdldCAyMDE4LTE5LCBldmVyeSBibG9jayB3aXRoIG1vcmUgdGhhbiA1MCUgU1QgcG9wdWxhdGlvbiBhbmQgYXQgbGVhc3QgMjAsMDAwIHRyaWJhbCBwZXJzb25zLCB3aWxsIGhhdmUgYW4gRWtsYXZ5YSBNb2RlbCBSZXNpZGVudGlhbCBTY2hvb2wgYnkgdGhlIHllYXIgMjAyMi4NCjE5OTc6W1NwYWNlXSBIaXBwYXJjb3MgKDE5ODkgLTE5OTMpLiBJdCB0b29rIDQtOCB5ZWFycyB0byBvcmdhbml6ZSBhbmQgcHVibGlzaCB0aGUgNCB5ZWFycyBzdHVkeSBieSB0aGlzIGV4cGVyaW1lbnQsIHdoaWNoIHBlcm1pdHRlZCB0aGUgZmlyc3QgaGlnaC1wcmVjaXNpb24gbWVhc3VyZW1lbnRzIG9mIHRoZSBpbnRyaW5zaWMgYnJpZ2h0bmVzc2VzIChjb21wYXJlZCB0byB0aGUgbGVzcyBwcmVjaXNlIGFwcGFyZW50IGJyaWdodG5lc3MpLCBwcm9wZXIgbW90aW9ucywgYW5kIHBhcmFsbGF4ZXMgb2Ygc3RhcnMsIGVuYWJsaW5nIGJldHRlciBjYWxjdWxhdGlvbnMgb2YgdGhlaXIgZGlzdGFuY2UgYW5kIHRhbmdlbnRpYWwgdmVsb2NpdHkuIFdoZW4gY29tYmluZWQgd2l0aCByYWRpYWwgdmVsb2NpdHkgbWVhc3VyZW1lbnRzIGZyb20gc3BlY3Ryb3Njb3B5LCBhc3Ryb3BoeXNpY2lzdHMgd2VyZSBhYmxlIHRvIGZpbmFsbHkgbWVhc3VyZSBhbGwgc2l4IHF1YW50aXRpZXMgbmVlZGVkIHRvIGRldGVybWluZSB0aGUgbW90aW9uIG9mIHN0YXJzLiBUaGUgcmVzdWx0aW5nIEhpcHBhcmNvcyBDYXRhbG9ndWUsIGEgaGlnaC1wcmVjaXNpb24gY2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiAxMTgsMjAwIHN0YXJzLCB3YXMgcHVibGlzaGVkIGluIDE5OTcuIFRoZSBsb3dlci1wcmVjaXNpb24gVHljaG8gQ2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiBhIG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBhdCB0aGUgc2FtZSB0aW1lLCB3aGlsZSB0aGUgZW5oYW5jZWQgVHljaG8tMiBDYXRhbG9ndWUgb2YgMi41IG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBpbiAyMDAwLiBIaXBwYXJjb3MnIGZvbGxvdy11cCBtaXNzaW9uLCBHYWlhLCB3YXMgbGF1bmNoZWQgaW4gMjAxMy4NCjE5OTc6W1NwYWNlXVtSZXNlYXJjaF0gU2luY2UgdGhlIDE5OTcgcHJvcG9zYWwgb2YgdGhlIEFkUy9DRlQgKEFudGktZGUgU2l0dGVyL0NvbmZvcm1hbCBGaWVsZCBUaGVvcnkpIGNvcnJlc3BvbmRlbmNlLCB0aGUgcHJlZG9taW5hbnQgYmVsaWVmIGFtb25nIHBoeXNpY2lzdHMgaXMgdGhhdCBpbmZvcm1hdGlvbiBpcyBpbmRlZWQgcHJlc2VydmVkIGluIGJsYWNrIGhvbGUgZXZhcG9yYXRpb24uIA0KMTk5NzpbU3BhY2VdW1Jlc2VhcmNoXSBBIHdpZGVseSBwdWJsaWNpemVkIGJldCBtYWRlIGluIDE5OTcgYmV0d2VlbiBKb2huIFByZXNraWxsIG9uIHRoZSBvbmUgaGFuZCB3aXRoIEhhd2tpbmcgYW5kIEtpcCBUaG9ybmUgb24gdGhlIG90aGVyIHRoYXQgaW5mb3JtYXRpb24gd2FzIG5vdCBsb3N0IGluIGJsYWNrIGhvbGVzLiBUaGUgc2NpZW50aWZpYyBkZWJhdGUgb24gdGhlIHBhcmFkb3ggd2FzIGRlc2NyaWJlZCBpbiBhIHBvcHVsYXIgYm9vayBwdWJsaXNoZWQgaW4gMjAwOCBieSBMZW9uYXJkIFN1c3NraW5kIGNhbGxlZCBUaGUgQmxhY2sgSG9sZSBXYXIuIChUaGUgYm9vayBjYXJlZnVsbHkgbm90ZXMgdGhhdCB0aGUgJ3dhcicgd2FzIHB1cmVseSBhIHNjaWVudGlmaWMgb25lLCBhbmQgdGhhdCBhdCBhIHBlcnNvbmFsIGxldmVsLCB0aGUgcGFydGljaXBhbnRzIHJlbWFpbmVkIGZyaWVuZHMuKSBUaGUgYm9vayBzdGF0ZXMgdGhhdCBIYXdraW5nIHdhcyBldmVudHVhbGx5IHBlcnN1YWRlZCB0aGF0IGJsYWNrLWhvbGUgZXZhcG9yYXRpb24gd2FzIHVuaXRhcnkgYnkgdGhlIGhvbG9ncmFwaGljIHByaW5jaXBsZSwgd2hpY2ggd2FzIGZpcnN0IHByb3Bvc2VkIGJ5ICd0IEhvb2Z0LCBmdXJ0aGVyIGRldmVsb3BlZCBieSBTdXNza2luZCBhbmQgbGF0ZXIgZ2l2ZW4gYSBwcmVjaXNlIHN0cmluZyB0aGVvcnkgaW50ZXJwcmV0YXRpb24gYnkgdGhlIEFkUy9DRlQgY29ycmVzcG9uZGVuY2UuIEluIDIwMDQsIEhhd2tpbmcgYWxzbyBjb25jZWRlZCB0aGUgMTk5NyBiZXQsIHBheWluZyBQcmVza2lsbCB3aXRoIGEgYmFzZWJhbGwgZW5jeWNsb3BlZGlhICJmcm9tIHdoaWNoIGluZm9ybWF0aW9uIGNhbiBiZSByZXRyaWV2ZWQgYXQgd2lsbCIgYWx0aG91Z2ggVGhvcm5lIHJlZnVzZWQgdG8gY29uY2VkZS4NCjE5OTc6W0VhcnRoXVtQaHlzaWNzXVtSZXNlYXJjaF0gdGhlcmUgd2VyZSB0d28gbGFyZ2UgZWFydGhxdWFrZXMgb2ZmIHRoZSBjb2FzdCBvZiBDaGlsZS4gVGhlIG1hZ25pdHVkZSBvZiB0aGUgZmlyc3QsIGluIEp1bHksIHdhcyBlc3RpbWF0ZWQgYXQgTXfigK82LjksIGJ1dCB3YXMgYmFyZWx5IGZlbHQsIGFuZCBvbmx5IGluIHRocmVlIHBsYWNlcy4gSW4gT2N0b2JlciBhIE134oCvNy4xIHF1YWtlIGluIG5lYXJseSB0aGUgc2FtZSBsb2NhdGlvbiwgYnV0IHR3aWNlIGFzIGRlZXAgYW5kIG9uIGEgZGlmZmVyZW50IGtpbmQgb2YgZmF1bHQsIHdhcyBmZWx0IG92ZXIgYSBicm9hZCBhcmVhLCBpbmp1cmVkIG92ZXIgMzAwIHBlb3BsZSwgYW5kIGRlc3Ryb3llZCBvciBzZXJpb3VzbHkgZGFtYWdlZCBvdmVyIDEwLDAwMCBob3VzZXMuIEFzIGNhbiBiZSBzZWVuIGluIHRoZSB0YWJsZSBiZWxvdywgdGhpcyBkaXNwYXJpdHkgb2YgZGFtYWdlIGRvbmUgaXMgbm90IHJlZmxlY3RlZCBpbiBlaXRoZXIgdGhlIG1vbWVudCBtYWduaXR1ZGUgKE134oCvKSBub3IgdGhlIHN1cmZhY2Utd2F2ZSBtYWduaXR1ZGUgKE1z4oCvKS4gT25seSB3aGVuIHRoZSBtYWduaXR1ZGUgaXMgbWVhc3VyZWQgb24gdGhlIGJhc2lzIG9mIHRoZSBib2R5LXdhdmUgKG1i4oCvKSBvciB0aGUgc2Vpc21pYyBlbmVyZ3kgKE1l4oCvKSBpcyB0aGVyZSBhIGRpZmZlcmVuY2UgY29tcGFyYWJsZSB0byB0aGUgZGlmZmVyZW5jZSBpbiBkYW1hZ2UuIChhcyByZXNlYXJjaGVkIGJ5IENob3ksIEJvYXR3cmlnaHQgJiBLaXJieSAyMDAxLCBwLiAxMy4pLiBNdyA2Ljkgd2FzIGFjdHVhbGx5IE1lIDYuMSwgYW4gaW50ZXJwbGF0ZS10aHJ1c3QgdHlwZSBvZiBmYXVsdCwgd2hpbGUgTXcgNy4xIHdhcyBhY3R1YWxseSBhIDcuNSBNZSBpbnRyYXNsYWItbm9ybWFsIHR5cGUgb2YgZmF1bHQuDQoxOTk3OltSZXNlYXJjaF0gRHVyaW5nIHN1cnZleXMgY2FycmllZCBvdXQgYmV0d2VlbiAxOTk3IGFuZCAyMDAxLCBhIHNwb3Qgd2FzIGZvdW5kIGFsb25nIHRoZSBNYXJpYW5hIFRyZW5jaCB0aGF0IGhhZCBhIGRlcHRoIHNpbWlsYXIgdG8gdGhlIENoYWxsZW5nZXIgRGVlcCwgcG9zc2libHkgZXZlbiBkZWVwZXIuIEl0IHdhcyBkaXNjb3ZlcmVkIHdoaWxlIHNjaWVudGlzdHMgZnJvbSB0aGUgSGF3YWlpIEluc3RpdHV0ZSBvZiBHZW9waHlzaWNzIGFuZCBQbGFuZXRvbG9neSB3ZXJlIGNvbXBsZXRpbmcgYSBzdXJ2ZXkgYXJvdW5kIEd1YW07IHRoZXkgdXNlZCBhIHNvbmFyIG1hcHBpbmcgc3lzdGVtIHRvd2VkIGJlaGluZCB0aGUgcmVzZWFyY2ggc2hpcCB0byBjb25kdWN0IHRoZSBzdXJ2ZXkuIFRoaXMgbmV3IHNwb3Qgd2FzIG5hbWVkIHRoZSBITVJHIChIYXdhaWkgTWFwcGluZyBSZXNlYXJjaCBHcm91cCkgRGVlcCwgYWZ0ZXIgdGhlIGdyb3VwIG9mIHNjaWVudGlzdHMgd2hvIGRpc2NvdmVyZWQgaXQuDQoxOTk3OltTcGFjZVhdIEEgcmVzb2x2ZWQgY2lyY3Vtc3RlbGxhciBkaXNrIHdhcyBmaXJzdCBpZGVudGlmaWVkIGluIDE5OTcgd2l0aCB0aGUgT3dlbnMgVmFsbGV5IFJhZGlvIE9ic2VydmF0b3J5LiBUaGUgc2VtaS1tYWpvciBheGlzIHdhcyBpbml0aWFsbHkgZXN0aW1hdGVkIHRvIGJlIDExMCBBVS4gSEQgMTYzMjk2IGFuZCBzdXJyb3VuZGluZ3MgQ3JlZGl0OiBFU08vRGlnaXRpemVkIFNreSBTdXJ2ZXkgMjsgQWNrbm93bGVkZ2VtZW50OiBEYXZpZGUgRGUgTWFydGluIE9ic2VydmF0aW9uIGRhdGEgRXBvY2ggSjIwMDAgICAgICBFcXVpbm94IEoyMDAwIENvbnN0ZWxsYXRpb24JU2FnaXR0YXJpdXMgUmlnaHQgYXNjZW5zaW9uCTE3aCA1Nm0gMjEuMjlzIERlY2xpbmF0aW9uCeKIkjIxwrAgNTfigLIgMjEuODfigLMgQXBwYXJlbnQgbWFnbml0dWRlIChWKQk2Ljg1OyBDaGFyYWN0ZXJpc3RpY3MgRXZvbHV0aW9uYXJ5IHN0YWdlCUhlcmJpZyBBZSBzdGFyIFNwZWN0cmFsIHR5cGUJQTNWYWVrQTFtQTE7IEFzdHJvbWV0cnkgUmFkaWFsIHZlbG9jaXR5IChSdikJLTQuMDAgwrEzLjNbM10ga20vcyBQcm9wZXIgbW90aW9uICjOvCkJUkE6IC03LjU4NiDCsTAuMDQxIG1hcy95cjsgRGVjLjogLTM5LjQ1OCDCsTAuMDI5IG1hcy95cls0XSBQYXJhbGxheCAoz4ApCTkuOTA0M8KxMC4wNDA4IG1hc1s0XSBEaXN0YW5jZQkzMjkgwrEgMSBseSAoMTAxLjAgwrEgMC40IHBjKSBEZXRhaWxzOyBNYXNzCTEuOTXCsTAuMDcgTeKYiSBSYWRpdXMJMS44N8KxMC4wNSBS4piJIEx1bWlub3NpdHkJMjAuNCszLjYg4oiSMy4wIEzimIkgU3VyZmFjZSBncmF2aXR5IChsb2cgZykJNC4xMMKxMC4xMCBjZ3MgVGVtcGVyYXR1cmUJOTAwMMKxMjUwIEsgQWdlCTYuMDMrMC4yOCDiiJIwLjI3IE15ciBPdGhlciBkZXNpZ25hdGlvbnMgQkQtMjEgNDc3OSwgQ1BELTIxIDY1MDgsIEVNKiBNV0MgMjc1LCBISVAgODc4MTksIElSQVMgMTc1MzMtMjE1NiwgMk1BU1MgSjE3NTYyMTI4LTIxNTcyMTgsIFBEUyA0NzMsIFRZQyA2MjYyLTIxMzEtMSwgRGF0YWJhc2UgcmVmZXJlbmNlcyBTSU1CQUQNCjE5OTc6W1NwYWNlWF0gMTAxOTkgQ2hhcmlrbG8gaXMgYSByaW5nZWQgYXN0ZXJvaWQgb3IgY2VudGF1ciBpbiB0aGUgb3V0ZXIgU29sYXIgU3lzdGVtLiBJdCBpcyB0aGUgbGFyZ2VzdCBrbm93biBjZW50YXVyLCB3aXRoIGEgZGlhbWV0ZXIgb2YgYWJvdXQgMjUwIGttLiBJdCBvcmJpdHMgdGhlIFN1biBiZXR3ZWVuIFNhdHVybiBhbmQgVXJhbnVzIHdpdGggYW4gb3JiaXRhbCBwZXJpb2Qgb2YgNjIuNSB5ZWFycy4gV2lraXBlZGlhIE9yYml0YWwgcGVyaW9kOiA2MyB5ZWFycyBSYWRpdXM6IDE1MSBrbSBEaXNjb3ZlcmVkOiAxNSBGZWJydWFyeSAxOTk3IERpbWVuc2lvbnM6ICgyODcuNisyLjg7IOKIkjMuMCkgw5cgKDI3MC40KzIuODsg4oiSNS42KSDDlyAoMTk4LjIrMTAuODsg4oiSNS40KSBrbTogMTEgRGlzY292ZXJlcjogSmFtZXMgVi4gU2NvdHRpIFNwZWN0cmFsIHR5cGU6IEQtdHlwZSBhc3Rlcm9pZCBBcGhlbGlvbjogMTguNDIwIEFVDQoxOTk3OltTcGFjZVhdIFRoZSBHcmVhdCBEYXlsaWdodCBGaXJlYmFsbCAtIFRoZSBhdG1vc3BoZXJpYyBwYXNzIG1vZGlmaWVkIHRoZSBvYmplY3QncyBtYXNzIGFuZCBvcmJpdCBhcm91bmQgdGhlIFN1bi4gQSAxOTk0IHN0dWR5IGZvdW5kIHRoYXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgaW4gYW4gRWFydGgtY3Jvc3Npbmcgb3JiaXQgYW5kIHByZWRpY3RlZCB0aGF0IGl0IHdvdWxkIHBhc3MgY2xvc2UgdG8gRWFydGggYWdhaW4gaW4gQXVndXN0IDE5OTcuIEhvd2V2ZXIsIHRoZSBvYmplY3QgaGFzIG5vdCBiZWVuIG9ic2VydmVkIGFnYWluIGFuZCBzbyBpdHMgcG9zdC1lbmNvdW50ZXIgb3JiaXQgcmVtYWlucyB1bmtub3duLg0KMTk5NzpOYWZpc2EgSm9zZXBoIHdhcyB0aGUgeW91bmdlc3QgTWlzcyBJbmRpYSB3aW5uZXIgYXQgYWdlIDE5LCB3aW5uaW5nIHRoZSB0aXRsZSBpbiAxOTk3LiBTaGUgbGF0ZXIgYmVjYW1lIGEgbW9kZWwgYW5kIHRlbGV2aXNpb24gcGVyc29uYWxpdHkuIFdoaWxlIG90aGVyIHdpbm5lcnMgbGlrZSBNZWVuYWtzaGkgU2VzaGFkcmkgd2VyZSBhbHNvIDE3IHdoZW4gdGhleSB3b24gaW4gMTk4MSwgSm9zZXBoIGlzIG9mdGVuIGNpdGVkIGZvciBoZXIgZWFybHkgd2luIGF0IDE5LCB3aGljaCB3YXMgdGhlbiBhIHlvdW5nZXIgYWdlIHRoYW4gaXMgdHlwaWNhbGx5IHNlZW4gaW4gdGhlIGNvbXBldGl0aW9uLiANCjE5OTc6W3NwYWNlXVt0ZWNoXSBUaGUgZmluYWwgQmxvY2sgSUlBIHdhcyBpbiBOb3YgMTk5Nywgd2hpbGUgQmxvY2sgSUlScyBiZWdhbiByZXBsYWNpbmcgdGhlbSBzaG9ydGx5IGFmdGVyLCBsYXN0aW5nIHVudGlsIDIwMDQuIEJsb2NrIElJUiAoUmVwbGVuaXNobWVudCkgbGF1bmNoZXMgZm9sbG93ZWQgZnJvbSAxOTk3IHRvIDIwMDQsIHdpdGggdGhlIGZpcnN0IGxhdW5jaCBpbiBKYW51YXJ5IDE5OTcuIA0KDQoxOTk4OltTcGFjZVhdIFRoZSBwcmltYXJ5IGNvbnN0cnVjdGlvbiBwaGFzZSBvZiB0aGUgSW50ZXJuYXRpb25hbCBTcGFjZSBTdGF0aW9uIChJU1MpIHRvb2sgYXBwcm94aW1hdGVseSAxMyB5ZWFycywgZnJvbSAxOTk4IHRvIDIwMTEsIHdpdGggdGhlIGZpcnN0IG1vZHVsZSBsYXVuY2hpbmcgaW4gTm92ZW1iZXIgMTk5OCBhbmQgSVNTIEFzc2VtYmx5IENvbXBsZXRlIGRlY2xhcmVkIGluIE1heSAyMDExLiBIb3dldmVyLCBhc3NlbWJseSB3YXMgYSBjb250aW51b3VzLCBtdWx0aS1zdGFnZSBwcm9jZXNzIGludm9sdmluZyBtb3JlIHRoYW4gMzAgbWlzc2lvbnMsIG51bWVyb3VzIHNwYWNld2Fsa3MsIGFuZCByb2JvdGljIGFzc2lzdGFuY2UgdG8gYnVpbGQgdGhlIHN0YXRpb24gcGllY2UgYnkgcGllY2UgaW4gb3JiaXQuIEV2ZW4gYWZ0ZXIgMjAxMSwgdGhlIElTUyBjb250aW51ZWQgdG8gZXZvbHZlIHdpdGggb25nb2luZyBhZGRpdGlvbnMgYW5kIHVwZ3JhZGVzLg0KMTk5ODpbUmVzZWFyY2hdW1NwYWNlXSBTcHJpbmcsIDE5OTg6IGEgbWljcm9mb3NzaWwgdGhhdCB3YXMgZm91bmQgaW4gYSBtZXRlb3JpdGUgYW5kIHBob3RvZ3JhcGhlZCBpbiAxOTY2LCB3YXMgcmVjb2duaXplZCBieSBhIFJ1c3NpYW4gbWljcm9iaW9sb2dpc3QgYXMgYSBtYWduZXRvdGFjdGljIGJhY3Rlcml1bS4gQnkgRmFsbCwgMTk5ODogTkFTQSdzIHB1YmxpYyBwb3NpdGlvbiBvbiBsaWZlLWZyb20tc3BhY2Ugc2hpZnRlZCBkcmFtYXRpY2FsbHkuDQoxOTk4OiBBcyBhIHJlc2VhcmNoIHByb2plY3QgYXQgU3RhbmZvcmQgVW5pdmVyc2l0eSwgU2VyZ2V5IEJyaW4gYW5kIExhcnJ5IFBhZ2UgY3JlYXRlZCBhIHNlYXJjaCBlbmdpbmUgdGhhdCBsaXN0ZWQgcmVzdWx0cyBhY2NvcmRpbmcgdG8gdGhlIHBvcHVsYXJpdHkgb2YgdGhlIHBhZ2VzLCBhZnRlciBjb25jbHVkaW5nIHRoYXQgdGhlIG1vc3QgcG9wdWxhciByZXN1bHQgd291bGQgb2Z0ZW4gYmUgdGhlIG1vc3QgdXNlZnVsLiBBZnRlciByYWlzaW5nICQxIG1pbGxpb24gZnJvbSBmYW1pbHksIGZyaWVuZHMgYW5kIG90aGVyIGludmVzdG9ycywgdGhlIHBhaXIgbGF1bmNoZWQgdGhlIGNvbXBhbnkgaW4gMTk5OC4gR29vZ2xlIGhhcyBzaW5jZSBiZWNvbWUgdGhlIHdvcmxk4oCZcyBtb3N0IHBvcHVsYXIgc2VhcmNoIGVuZ2luZSwgcmVjZWl2aW5nIG1vcmUgdGhhbiAyMDAgbWlsbGlvbiBxdWVyaWVzIGVhY2ggZGF5Lg0KMTk5OCAoTm92IDIwKTogDQoxOTk4IChBcHIgMjcpOiBSUkIgZm91bmRlZCBhcyBSYWlsd2F5IFJlY3J1aXRtZW50IENvbnRyb2wgQm9hcmQgaXMgYSBnb3Zlcm5tZW50IG9yZ2FuaXNhdGlvbiBpbiBJbmRpYS4gSXQgd2FzIHNldCB1cCBpbiAxOTk4IGluIHRoZSBNaW5pc3RyeSBvZiBSYWlsd2F5cyAoUmFpbHdheSBCb2FyZCksIE5ldyBEZWxoaS5JbiAxOTQ1LCB0aGUgU2VydmljZXMgQ29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgYXQgQm9tYmF5LCBDYWxjdXR0YSwgTWFkcmFzIGFuZCBMdWNrbm93LiBJbiAxOTgzLCB0byBjYXRlciB0byB0aGUgbmVlZHMgb2YgYXJlYXMgd2hpY2ggd2VyZSBiZWluZyBuZWdsZWN0ZWQgZHVlIHRvIGxvY2F0aW9ucyBvZiB0aGUgZXhpc3RpbmcgY29tbWlzc2lvbnMsIHNldmVuIG1vcmUgY29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgdml6LCBhdCBBaG1lZGFiYWQsIEFqbWVyLCBCaG9wYWwsIEJodXZuZXNod2FyLCBDaGFuZGlnYXJoLCBKYW1tdSBhbmQgU3JpbmFnYXIgd2l0aCBzaXR0aW5nIGF0IExlaCBhbmQgVHJpdmVuZHJ1bS4gSW4gMTk4NCB0d28gbW9yZSBzZXJ2aWNlIGNvbW1pc3Npb25zIHdlcmUgc2V0IHVwIGF0IE1hbGRhIGFuZCBHb3Jha2hwdXIuDQoxOTk4IChNYXkgMTkpOiBBdGFsIEJpaGFyaSBWYWpwYXllZSBiZWNvbWVzIFBNIG9mIEluZGlhIGZvciB0aGUgc2Vjb25kIHRpbWUsIG5vdyBmb3IgNiB5ZWFycyB0aWxsIE1heSAyMiwgMjAwNC4gDQoxOTk4IChNYXkgMjggMTU6MTVQU1QpOiBDaGFnYWktSSBpcyB0aGUgY29kZSBuYW1lIG9mIGZpdmUgc2ltdWx0YW5lb3VzIHVuZGVyZ3JvdW5kIG51Y2xlYXIgdGVzdHMgY29uZHVjdGVkIGJ5IFBha2lzdGFuLiBUaGUgdGVzdHMgd2VyZSBwZXJmb3JtZWQgYXQgUmFzIEtvaCBIaWxscyBpbiB0aGUgQ2hhZ2FpIERpc3RyaWN0IG9mIEJhbG9jaGlzdGFuIFByb3ZpbmNlLiBDaGFnYWktSSB3YXMgUGFraXN0YW4ncyBmaXJzdCBwdWJsaWMgdGVzdCBvZiBudWNsZWFyIHdlYXBvbnMuIFBha2lzdGFuJ3MgZmlzc2lsZSBtYXRlcmlhbCBwcm9kdWN0aW9uIHRha2VzIHBsYWNlIGF0IE5pbG9yZSwgS2FodXRhLCBhbmQgS2h1c2hhYiBOdWNsZWFyIENvbXBsZXgsIHdoZXJlIHdlYXBvbnMtZ3JhZGUgcGx1dG9uaXVtIGlzIHJlZmluZWQuDQoxOTk4OiBBZnRlciBjb21wbGV0aW5nIGhpcyBYIHN0YW5kYXJkIGV4YW1pbmF0aW9ucywgUmFuYmlyIEthcG9vciwgYWdlZCAxNiwgd29ya2VkIGFzIGFuIGFzc2lzdGFudCBkaXJlY3RvciB0byBoaXMgZmF0aGVyIG9uIHRoZSBmaWxtIEFhIEFiIExhdXQgQ2hhbGVuICgxOTk5KSwgZHVyaW5nIHdoaWNoIGhlIGRldmVsb3BlZCBhIGNsb3NlciBib25kIHdpdGggaGltLg0KMTk4ODogTmV0d29ya2VkIERhdGEgUHJvY2Vzc2luZyBDb3IsIElvd2EgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBJbnN1cmFuY2UgZGl2aXNpb24uDQoxOTk4OltCb29rXSBSb2JlcnQgR3JlZW5lJ3MgVGhlIDQ4IExhd3Mgb2YgUG93ZXI7IFRoZSAzMyBTdHJhdGVnaWVzIG9mIFdhciAoMjAwNik7IE1hc3RlcnkgKDIwMTIsIE5vdiAxMyk7IFRoZSBMYXdzIG9mIEh1bWFuIE5hdHVyZSAoMjAxOCwgT2N0IDE2KQ0KMTk5ODpbU3BhY2VdW1Jlc2VhcmNoXVtFeHRyZW1lXSBUaGVuIGNhbWUgMTk5OCBhbmQgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgKEhTVCkgb2JzZXJ2YXRpb25zIG9mIHZlcnkgZGlzdGFudCBzdXBlcm5vdmFlIHRoYXQgc2hvd2VkIHRoYXQsIGEgbG9uZyB0aW1lIGFnbywgdGhlIHVuaXZlcnNlIHdhcyBhY3R1YWxseSBleHBhbmRpbmcgbW9yZSBzbG93bHkgdGhhbiBpdCBpcyB0b2RheS4gU28gdGhlIGV4cGFuc2lvbiBvZiB0aGUgdW5pdmVyc2UgaGFzIG5vdCBiZWVuIHNsb3dpbmcgZHVlIHRvIGdyYXZpdHksIGFzIGV2ZXJ5b25lIHRob3VnaHQsIGl0IGhhcyBiZWVuIGFjY2VsZXJhdGluZy4NCjE5OTg6W0NyaW1lXVtJbmRpYV0gQW5lZXMgYXJyZXN0ZWQgaW4gVUFFIG9uIGNoYXJnZXMgb2YgaGF2aW5nIG11cmRlcmVkIGEgZm9ybWVyIGFzc29jaWF0ZSBhbmQgdGhlbiByaXZhbCwgSXJmYW4gR29nYSwgaW4gRHViYWksIGJ1dCB3YXMgZnJlZWQgYWZ0ZXIgdHdvIGRheXMgZm9yICdsYWNrIG9mIGV2aWRlbmNlJy4NCjE5OTg6W0NvbXB1dGluZ11bUXVhbnR1bV0gUmVzZWFyY2hlcnMgYXQgSUJNLCBPeGZvcmQsIEJlcmtlbGV5LCBTdGFuZm9yZCwgYW5kIE1JVCBwcm9kdWNlZCBhIDItcXViaXQgY29tcHV0aW5nIHN5c3RlbS4NCjE5OTg6W3d3d10gV2lyZXNoYXJrIGlzIGEgZnJlZSBhbmQgb3Blbi1zb3VyY2UgcGFja2V0IGFuYWx5emVyLiBJdCBpcyB1c2VkIGZvciBuZXR3b3JrIHRyb3VibGVzaG9vdGluZywgYW5hbHlzaXMsIHNvZnR3YXJlIGFuZCBjb21tdW5pY2F0aW9ucyBwcm90b2NvbCBkZXZlbG9wbWVudCwgYW5kIGVkdWNhdGlvbi4gT3JpZ2luYWxseSBuYW1lZCBFdGhlcmVhbCwgdGhlIHByb2plY3Qgd2FzIHJlbmFtZWQgV2lyZXNoYXJrIGluIE1heSAyMDA2IGR1ZSB0byB0cmFkZW1hcmsgaXNzdWVzLg0KMTk5ODpbVVNdW0Vjb25vbXldRGF2aWQgUm9ja2VmZWxsZXIgU3IuIHdhcyBhd2FyZGVkIHRoZSBQcmVzaWRlbnRpYWwgTWVkYWwgb2YgRnJlZWRvbSBieSBQcmVzaWRlbnQgQmlsbCBDbGludG9uIGZvciBoaXMgd29yayBvbiBJbnRlcm5hdGlvbmFsIEV4ZWN1dGl2ZSBTZXJ2aWNlIENvcnBzLg0KMTk5ODpbRGVmXVtBdmlhdGlvbl0gVGhlIExvY2toZWVkIFNSLTcxIEJsYWNrYmlyZCBmbGV3IHNvIGhpZ2ggYW5kIHNvIGZhc3QgdGhhdCB0aGUgY3JldyBuZWVkZWQgcHJlc3N1cml6ZWQgc3BhY2Ugc3VpdHMgd2hlbiBmbHlpbmcgaXQuIEFuZCBpdCBpcyBzYWlkIHRoYXQgYXQgdGhlIG1heGltdW0gYWx0aXR1ZGUgb2YgaXQgaXQgd2FzIHBvc3NpYmxlIHRvIHNlZSB0aGUgY3VydmF0dXJlIG9mIHRoZSBlYXJ0aCwgd2hpY2ggcmVmZXJzIHRvIHRoaXMgcXVvdGUgYnkgQ29sb25lbCBBbGlzb246IOKAnE9uIGEgY2xlYXIgZGF5IHlvdSBjYW4gc2VlIGZvcmV2ZXLigKbigJ0uIFRoZSBzZXJ2aWNlIGNlaWxpbmcgb2YgODUsMDAwIGZlZXQgKDI1LDkwMG0pIG1lYW50IHRoYXQgaXQgd2FzIGFuIGV4Y2VsbGVudCBleHBlcmltZW50YWwgdW5pdCBmb3Igc3BhY2UgdHJhdmVscy4gVGhhdCwgY29tYmluZWQgd2l0aCB0aGUgZ3JlYXQgc3BlZWRzIG9mIGl0IHdhcyB0d28gb2YgdGhlIHJlYXNvbnMgd2h5IE5BU0EgZGVjaWRlZCB0byB0YWtlIG92ZXIgdGhlIGxhc3QgdHdvIEJsYWNrYmlyZHMgYWZ0ZXIgaXRzIHJldGlyZW1lbnQgZnJvbSB0aGUgQWlyIEZvcmNlIGluIDE5OTguIFRoaXMgbWVhbnMgdGhhdCB0aGUgd29ybGTigJlzIGZhc3Rlc3QgYWlyY3JhZnQgd2FzIGluIHNlcnZpY2UgZnJvbSAxOTY2IHVudGlsIE5BU0EgcmV0aXJlZCBpdHMgdHdvIHVuaXRzIGluIDE5OTksIGFuZCBtb3N0IG9mIHRoZSByZW1haW5pbmcgQmxhY2tiaXJkcyBhcmUgdG9kYXkgc3RhdGlvbmVkIGF0IG11c2V1bXMgb3IgbWlsaXRhcnkgYmFzZXMgYWNyb3NzIHRoZSBVUy4NCjE5OTg6SW4gMTk5OCwgR2F1dGFtIEFkYW5pLCBhbG9uZyB3aXRoIGhpcyBhc3NvY2lhdGUgU2hhbnRpbGFsIFBhdGVsLCB3YXMga2lkbmFwcGVkIGZvciByYW5zb20gaW4gQWhtZWRhYmFkLCBJbmRpYS4gVGhleSB3ZXJlIGFiZHVjdGVkIGF0IGd1bnBvaW50IGFmdGVyIGxlYXZpbmcgdGhlIEthcm5hdmF0aSBDbHViIGluIGEgY2FyLiBUaGUga2lkbmFwcGVycywgYWxsZWdlZGx5IGdhbmdzdGVycyBGYXpsdSBSZWhtYW4gYW5kIEJob2dpbGFsIERhcmppLCByZXBvcnRlZGx5IGRlbWFuZGVkIGEgcmFuc29tIG9mICQxLjUtMiBtaWxsaW9uLiBCb3RoIEFkYW5pIGFuZCBQYXRlbCB3ZXJlIHJlbGVhc2VkIGEgZGF5IGxhdGVyLCBidXQgaXQncyB1bmNsZWFyIGlmIHRoZSByYW5zb20gd2FzIHBhaWQuIA0KVGhlIGtpZG5hcHBpbmcgaW5jaWRlbnQgaGFwcGVuZWQgaW4gdGhlIG1pZC0xOTkwcywgYXJvdW5kIHRoZSB0aW1lIEFkYW5pJ3MgYnVzaW5lc3Mgc3VjY2Vzc2VzIHN0YXJ0ZWQgYXR0cmFjdGluZyB1bndhbnRlZCBhdHRlbnRpb24uIFRoZSBraWRuYXBwaW5nIHdhcyBhbGxlZ2VkbHkgY2FycmllZCBvdXQgYnkgRmF6bHUgUmVobWFuIGFuZCBCaG9naWxhbCBEYXJqaSwgYWxzbyBrbm93biBhcyAiTWFtYSIuIFRoZXkgd2VyZSBsYXRlciBhY3F1aXR0ZWQgZHVlIHRvIGxhY2sgb2YgZXZpZGVuY2UuIA0KVGhlIGFiZHVjdGlvbiBpcyBqdXN0IG9uZSBvZiB0aGUgY2hhbGxlbmdlcyBBZGFuaSBoYXMgZmFjZWQuIEhlIHdhcyBhbHNvIGNhdWdodCBpbiB0aGUgMjYvMTEgTXVtYmFpIHRlcnJvciBhdHRhY2tzIGF0IHRoZSBUYWogSG90ZWwuIE1vcmUgcmVjZW50bHksIGhlIGhhcyBmYWNlZCBhY2N1c2F0aW9ucyBvZiBicmliZXJ5IGFuZCBzZWN1cml0aWVzIGZyYXVkLiANCkFkYW5pIGFuZCBvdGhlcnMgd2VyZSBlc2NvcnRlZCBieSBzdGFmZiB0byB0aGUga2l0Y2hlbiBhbmQgdGhlbiB0aGUgYmFzZW1lbnQuIFRoZXkgc3BlbnQgdGhlIGVudGlyZSBuaWdodCBpbiBhIGhhbGwgd2FpdGluZyBmb3IgcmVzY3VlLiBBZGFuaSBsYXRlciB0b2xkIG5ld3MgY2hhbm5lbHMgdGhhdCBoZSBzYXcg4oCcZGVhdGggYXQgYSBkaXN0YW5jZSBvZiBqdXN0IDE1IGZlZXQu4oCdIEhlIHdhcyByZXNjdWVkIHRoZSBuZXh0IG1vcm5pbmcgYnkgc2VjdXJpdHkgZm9yY2VzLg0KMTk5ODpbRW52XVtEaXNhc3Rlcl0gRWFzdGVybiBJbmRpYSwgMTk5OCBCYW5nbGFkZXNoIGZsb29kOyA0ayBkZWF0aHMNCjE5OTg6W1dob11bUmVzZWFyY2hdW0NvbXB1dGluZ11bVGVjaF1bQ3VsdHVyZV0gSW50ZXJuZXQgRG93bmxvYWQgTWFuYWdlciAoSURNKSB3YXMgZGV2ZWxvcGVkIGJ5IFRvbmVjIEluYy4sIGFuIEFtZXJpY2FuIGNvbXBhbnkgdGhhdCBzdGFydGVkIHRoZSBwcm9qZWN0IGluIDE5OTggYW5kIHJlbGVhc2VkIHRoZSBzb2Z0d2FyZSBpbiAyMDAxLiBUb25lYyBJbmMuIGZvY3VzZXMgb24gbmV0d29yayBwcm9ncmFtbWluZyBhbmQgY3JlYXRlZCBJRE0gdG8gc3BlZWQgdXAgZG93bmxvYWRzIGJ5IHVzaW5nIGR5bmFtaWMgZmlsZSBzZWdtZW50YXRpb24sIGFjY2VsZXJhdGluZyBzcGVlZHMgYnkgdXAgdG8gOCB0aW1lcy4gDQoNCjE5OTk6NCBKYW51YXJ5IDE5OTk6IE5BU0Egb2ZmaWNpYWxseSByZWNvZ25pemVkIHRoZSBwb3NzaWJpbGl0eSB0aGF0IGxpZmUgb24gRWFydGggY29tZXMgZnJvbSBzcGFjZS4NCjE5IE1hcmNoIDE5OTk6IE5BU0Egc2NpZW50aXN0cyBhbm5vdW5jZWQgdGhhdCB0d28gbW9yZSBtZXRlb3JpdGVzIGhvbGQgZXZlbiBzdHJvbmdlciBmb3NzaWxpemVkIGV2aWRlbmNlIGZvciBwYXN0IGxpZmUgb24gTWFycy4NCjE5OTk6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEcyMCBvciBHcm91cCBvZiAyMCBpcyBhbiBpbnRlcmdvdmVybm1lbnRhbCBmb3J1bSBjb21wcmlzaW5nIDE5IHNvdmVyZWlnbiBjb3VudHJpZXMsIHRoZSBFdXJvcGVhbiBVbmlvbiwgYW5kIHRoZSBBZnJpY2FuIFVuaW9uLiBGb3VuZGVkOiAyNiBTZXB0ZW1iZXIgMTk5OTsgQ2hhaXJtYW4gKEluY3VtYmVudCk6IEN5cmlsIFJhbWFwaG9zYSwgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYQ0KMTk5OTogVGhlIHRlcm0gV2ktRmkgd2FzIGludmVudGVkIGJ5IEludGVyYnJhbmQgKGFuIGFtZXJpY2FuIGJyYW5kIGNvbnN1bHRhbmN5IGNvbXBhbnkpIGFzIGEgcHVuIHVwb24gdGhlIHdvcmQgaGktZmkuDQpXaS1GaSBBbGxpYW5jZSBmb3JtZWQgYXMgYSB0cmFkZSBhc3NvY2lhdGlvbiB0byBob2xkIHRoZSBXaS1GaSB0cmFkZW1hcmsgdW5kZXIgd2hpY2ggbW9zdCBwcm9kdWN0cyBhcmUgc29sZC4NCjE5OTk6IHRoZSB0ZXJtDQoxOTk5OiBJc2xhbWljIFN0YXRlIG9mIElyYXEgYW5kIHRoZSBMZXZhbnQgKGFsc28ga25vd24gYXMgdGhlIElzbGFtaWMgU3RhdGUgb2YgSXJhcSBhbmQgU3lyaWEsIElzbGFtaWMgU3RhdGUsIG9yIGNvbW1vbmx5LCBJU0lTKSBmb3VuZGVkIGFzIEphbWEnYXQgYWwtVGF3aGlkIHdhbC1KaWhhZCBieSBBYnUgTXVzYWIgYWwtWmFycWF3aSBIUSdkIGF0ICBBbC1SYXFxYWguDQoxOTk5IChBcHIgMTIpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBJIFdhbnQgSXQgVGhhdCBXYXkuDQoxOTk5IChBcHIgMTgpOiBDT05DRVJUIGJlY2FtZSBvcGVyYXRpb25hbC4gSXQgd2FzIGRldmVsb3BlZCB1c2luZyBjbGllbnQtc2VydmVyIG1vZGVsIGZvciBkaXN0cmlidXRlZCBjb21wdXRpbmcgaXMgYSB0b3RhbCBzb2x1dGlvbiB0byB0aGUgbmV0d29ya2luZyBvZiB0aGUgUFJTcy4gQWxsIHRoZSBmaXZlIHNpdGVzIGhhdmUgYmVlbiBpbnRlcm5ldC13b3JrZWQgb3ZlciBhIDY0IGticHMgbGluZSB1c2luZyByb3V0ZXJzLCBvbiBsZWFzZWQgY29tbXVuaWNhdGlvbiBsaW5lIGNvbm5lY3Rpb25zIGZyb20gRGVwYXJ0bWVudCBvZiBUZWxlY29tIChET1QpLg0KMTk5OTogQ3JlZGl0IGNhcmRzIGFjY2VwdGVkIGZvciBib29raW5nIHRpY2tldHMgYW5kIHJlc2VydmF0aW9ucyBpbiBzb21lIHN0YXRpb25zIChpbmNsdWRpbmcgTXVtYmFpIENTVCkuDQoxOTk5IChNYXkgMSk6W0Jvb2tdIFJvYmVydCBLaXlvc2FraSAmIFNoYXJvbiBMZWNodGVyJ3MgUmljaCBEYWQncyBDYXNoZmxvdyBRdWFkcmFudDogUmljaCBEYWQncyBHdWlkZSB0byBGaW5hbmNpYWwgRnJlZWRvbTsgUmljaCBEYWQncyBHdWlkZSB0byBJbnZlc3Rpbmc6IFdoYXQgdGhlIFJpY2ggSW52ZXN0IGluIFRoYXQgdGhlIFBvb3IgYW5kIE1pZGRsZSBDbGFzcyBEbyBOb3QhICgyMDAxLCBKYW4gMSk7IFRoZSBSZWFsIEJvb2sgb2YgUmVhbCBFc3RhdGU6IFJlYWwgRXhwZXJ0cy4gUmVhbCBTdG9yaWVzLiBSZWFsIExpZmUuICgyMDA5LCBNYXkgMTIpOyBSaWNoIEtpZCBTbWFydCBLaWQ6IEdpdmluZyBZb3VyIENoaWxkIGEgRmluYW5jaWFsIEhlYWQgU3RhcnQgKDIwMDEsIEphbiAxKTsgDQoxOTk5IChNYXkgMTgpOltNdXNpY10gTWlsbGVubml1bSBpcyB0aGUgdGhpcmQgc3R1ZGlvIGFsYnVtIChzZWNvbmQgaW4gdGhlIFVuaXRlZCBTdGF0ZXMpIGJ5IEFtZXJpY2FuIGJveSBiYW5kIEJhY2tzdHJlZXQgQm95cywgcmVsZWFzZWQgYnkgSml2ZSBSZWNvcmRzLg0KMTk5OSAoRnJpLCAyNCBEZWMpOiBJbmRpYW4gQWlybGluZXMgRmxpZ2h0IDgxNCBjb21tb25seSBrbm93biBhcyBJQyA4MTQgd2FzIGFuIEluZGlhbiBBaXJsaW5lcyBBaXJidXMgQTMwMCBlbiByb3V0ZSBmcm9tIFRyaWJodXZhbiBJbnRlcm5hdGlvbmFsIEFpcnBvcnQgaW4gS2F0aG1hbmR1LCBOZXBhbCB0byBJbmRpcmEgR2FuZGhpIEludGVybmF0aW9uYWwgQWlycG9ydCBpbiBEZWxoaSwgSW5kaWEgd2FzIGhpamFja2VkLiBIYXJrYXQtdWwtTXVqYWhpZGVlbiB3YXMgYWNjdXNlZCBvZiB0aGUgaGlqYWNraW5nLg0KMTk5OTogSVJDVEMNCjE5OTkgKEF1Zyk6IEJvb2tNeVNob3cNCjE5OTkgKFNlcCAxNCk6IFtHZW9Qb2xpdGljc10gVGhlIENvbmZlcmVuY2Ugb24gSW50ZXJhY3Rpb24gYW5kIENvbmZpZGVuY2UtQnVpbGRpbmcgTWVhc3VyZXMgaW4gQXNpYSAoQ0lDQSkgaXMgYW4gaW50ZXItZ292ZXJubWVudGFsIGZvcnVtIGZvciBlbmhhbmNpbmcgY29vcGVyYXRpb24gdG93YXJkcyBwcm9tb3RpbmcgcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYS4gSXQgaXMgYSBmb3J1bSBiYXNlZCBvbiB0aGUgcmVjb2duaXRpb24gdGhhdCB0aGVyZSBpcyBjbG9zZSBsaW5rIGJldHdlZW4gcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYSBhbmQgaW4gdGhlIHJlc3Qgb2YgdGhlIHdvcmxkLiBUaGUga2V5IGlkZWEgb2YgdGhlIENvbmZlcmVuY2UgaXMgYmFzZWQgb24gdGhlIHByaW9yaXR5IG9mIHRoZSBpbmRpdmlzaWJpbGl0eSBvZiBzZWN1cml0eSwgam9pbnQgaW5pdGlhdGl2ZSBhbmQgbXV0dWFsbHkgYmVuZWZpY2lhbCBpbnRlcmFjdGlvbiBvZiBzbWFsbCBhbmQgbGFyZ2Ugc3RhdGVzLg0KMTk5OTogTm9ibGUgRWR1Y2F0aW9uIFNvY2lldHkncyBOb2JsZSBQdWJsaWMgU2Nob29sIChOUFMpLCBHYWpyYXVsYSBmb3VuZGVkIHdpdGggMjEzMDYyNyBhcyBpdHMgQ0JTRSBBZmZpbGlhdGlvbiBuby4NCjE5OTk6IGZpcnN0IC53bWEgZmlsZSBjcmVhdGVkDQoxOTk5OiBOYXBzdGVyIGZvdW5kZWQuDQoxOTk5IChEZWMgMTQpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBTaG93IE1lIHRoZSBNZWFuaW5nIG9mIEJlaW5nIExvbmVseS4gDQoxOTk5OltNdXNpY10gRHIuIERyZSBmdC4gU25vb3AgRG9nZydzIFN0aWxsIEQuUi5FLg0KMTk5OTpbQ3VsdHVyZV0gVGhlIENpdHRhc2xvdyBvcmdhbml6YXRpb24gd2FzIGNyZWF0ZWQgYnkgUGFvbG8gU2F0dXJuaW5pLCB0aGUgZm9ybWVyIG1heW9yIG9mIEdyZXZlIGluIENoaWFudGksIEl0YWx5LiBTYXR1cm5pbmkgd2FzIGluc3BpcmVkIGJ5IENhcmxvIFBldHJpbmkgYW5kIGhpcyBTbG93IEZvb2QgbW92ZW1lbnQsIHN0YXJ0ZWQgaW4gdGhlIDE5ODBzIHRvIHByb3Rlc3QgdGhlIGZpcnN0IE1jRG9uYWxkJ3MgY2hhaW4gaW4gUm9tZS4gU2luY2UgdGhlbiwgdGhlIENpdHRhc2xvdyBtb3ZlbWVudCBoYXMgZ3Jvd24gYWNyb3NzIGZvdXIgY29udGluZW50cywgd2l0aCAyNjIgcGFydGljaXBhdGluZyB0b3ducyBhcyBvZiAyMDIwLiANCjE5OTk6W01hbmFnZW1lbnRdW0J1c2luZXNzXVtQc3ljaG9sb2d5XVtSZXNlYXJjaF0gRHVubmluZyBhbmQgS3J1Z2VyIEVmZmVjdDogRGF2aWQgRHVubmluZyBhbmQgSnVzdGluIEtydWdlciBwdWJsaXNoZWQgdGhlIGluaXRpYWwgc3R1ZHkgaW4gMTk5OSB1bmRlciB0aGUgdGl0bGUgIlVuc2tpbGxlZCBhbmQgVW5hd2FyZSBvZiBJdDogSG93IERpZmZpY3VsdGllcyBpbiBSZWNvZ25pemluZyBPbmUncyBPd24gSW5jb21wZXRlbmNlIExlYWQgdG8gSW5mbGF0ZWQgU2VsZi1Bc3Nlc3NtZW50cyIuDQoxOTk5OltSZXNlYXJjaF0gUmVzZWFyY2ggYnkgVVMgTmF0aW9uYWwgUmVzZWFyY2ggQ291bmNpbC4gV2F0ZXIgZnJvbSB1bmRlcmdyb3VuZCBzb3VyY2VzIG1heSBjb250YWluIHNpZ25pZmljYW50IGFtb3VudHMgb2YgcmFkb24gZGVwZW5kaW5nIG9uIHRoZSBzdXJyb3VuZGluZyByb2NrIGFuZCBzb2lsIGNvbmRpdGlvbnMsIHdoZXJlYXMgc3VyZmFjZSBzb3VyY2VzIGdlbmVyYWxseSBkbyBub3QuDQoxOTk5OltOU0VdIEluY29ycG9yYXRlZCBpbiAxOTk5LCBJUkNUQyBpcyBhIE1pbmkgUmF0bmEgKENhdGVnb3J5IDEsIENlbnRyYWwgUHVibGljIFNlY3RvciBFbnRlcnByaXNlcyApIGFuZCB0aGUgb25seSBjb21wYW55IGF1dGhvcml6ZWQgYnkgdGhlIEluZGlhbiBnb3Zlcm5tZW50IHRvIHByb3ZpZGUgb25saW5lIHJhaWx3YXkgdGlja2V0cywgY2F0ZXJpbmcgc2VydmljZXMsIGFuZCBwYWNrYWdlZCBkcmlua2luZyB3YXRlciBhdCByYWlsd2F5IHN0YXRpb25zIGFuZCB0cmFpbnMgaW4gSW5kaWEuDQoxOTk5OltNbnRuZ2ddW0Jvb2tdIFN0ZXZlIEhvdXNlIGlzIGEgd29ybGQtcmVub3duZWQgY2xpbWJlciwgbW91bnRhaW4gZ3VpZGUgYW5kIFBhdGFnb25pYSBhbWJhc3NhZG9yLCB3aWRlbHkgcmVnYXJkZWQgZm9yIGhpcyBjbGVhbiwgbGlnaHQtYW5kLWZhc3Qgc3R5bGUuIEhlIGhhcyBwdWJsaXNoZWQgYXJ0aWNsZXMgaW4gYSBudW1iZXIgb2YgcGVyaW9kaWNhbHMgaW5jbHVkaW5nOiBBbHBpbmlzdCwgUm9jayBhbmQgSWNlLCBDbGltYmluZywgVGhlIEFtZXJpY2FuIEFscGluZSBKb3VybmFsLCBHcmlwcGVkLCBDYW5hZGlhbiBBbHBpbmUgSm91cm5hbCwgQ2xpbWIsIFZlcnRpY2FsLCBNb250YWduZXMsIFJpc2ssIEFscCssIENhbXBvIEJhc2UsIERlc25pdmVsLCBhbmQgU3RpbGUgQWxwaW4uIEhpcyBlc3NheXMgaGF2ZSBiZWVuIHB1Ymxpc2hlZCBpbiBzZXZlcmFsIGJvb2tzIGluY2x1ZGluZzsgQ29udGFjdDogTW91bnRhaW4gQ2xpbWJpbmcgYW5kIEVudmlyb25tZW50YWwgVGhpbmtpbmc7IFNvbHRhcmksIGEgY29sbGVjdGlvbiBvZiBlc3NheXMgYWJvdXQgc29sbyBjbGltYmluZyBwdWJsaXNoZWQgaW4gSXRhbGlhbjsgQmVyZywgYSBHZXJtYW4gYm9vayBhYm91dCBjbGltYmluZyBpbiB0aGUgSGltYWxheWE7IGFuZCBhbiB1cGNvbWluZyBib29rIGFib3V0IE5hbmdhIFBhcmJhdCBlZGl0ZWQgYnkgUmVpbmhvbGQgTWVzc25lci4gSGUgaGFzIHdvcmtlZCBhcyBhIFBhdGFnb25pYSBhbHBpbmUgYW1iYXNzYWRvciBzaW5jZSAxOTk5LiBQdWJsaXNoZWQ6IFRyYWluaW5nIGZvciB0aGUgTmV3IEFscGluaXNtOiBBIE1hbnVhbCBmb3IgdGhlIENsaW1iZXIgYXMgQXRobGV0ZSBQYXBlcmJhY2sg4oCTIElsbHVzdHJhdGVkLCAzIEFwcmlsIDIwMTQNCjE5OTk6W01udG5nZ10gQ29ucmFkIEFua2VyIChib3JuIE5vdmVtYmVyIDI3LCAxOTYyKSBpcyBhbiBBbWVyaWNhbiByb2NrIGNsaW1iZXIsIG1vdW50YWluZWVyLCBhbmQgYXV0aG9yLiBIZSB3YXMgdGhlIHRlYW0gbGVhZGVyIG9mIFRoZSBOb3J0aCBGYWNlIGNsaW1iaW5nIHRlYW0gZm9yIDI2IHllYXJzIHVudGlsIDIwMTguWzJdIEluIDE5OTksIGhlIGxvY2F0ZWQgR2VvcmdlIE1hbGxvcnkncyBib2R5IG9uIEV2ZXJlc3QgYXMgYSBtZW1iZXIgb2YgYSBzZWFyY2ggdGVhbSBsb29raW5nIGZvciB0aGUgcmVtYWlucyBvZiB0aGUgQnJpdGlzaCBjbGltYmVyIHdobyB3YXMgbGFzdCBzZWVuIGluIDE5MjQuDQoxOTk5OlRoZSBQaXBpc3RyZWwgVmlydXMgZmxldyBmb3IgdGhlIGZpcnN0IHRpbWUgb24gQXVndXN0IDEwLCAxOTk5LiBQcm9kdWN0aW9uIGJlZ2FuIG9uIEphbnVhcnkgMjAsIDIwMDAuIFRoZSBkZXZlbG9wbWVudCBvZiB0aGUgc2hvcnQgd2luZyB2ZXJzaW9uIHN0YXJ0ZWQgaW4gMjAwNy4gVGhlIFZpcnVzIFNXIHByb2R1Y3Rpb24gc3RhcnRlZCBpbiAyMDA4LiBUaGUgVmlydXMgd29uIHRoZSBOQVNBIDIwMDcgUGVyc29uYWwgQWlyIFZlaGljbGUgKFBBVikgQ2hhbGxlbmdlIGFuZCB0aGUgMjAwOCBHZW5lcmFsIEF2aWF0aW9uIFRlY2hub2xvZ3kgKEdBVCkgQ2hhbGxlbmdlLg0KMTk5OTpbc2lsdmljc10gU3VzdGFpbmFibGUgUHJhY3RpY2VzOiBSZXNlYXJjaCBpbiB0aGUgMjB0aCBjZW50dXJ5IHZhbGlkYXRlZCB0aGF0IHNlY29uZC1ncm93dGggc3RhbmRzIGNvdWxkIGJlIHN1c3RhaW5hYmx5IG1hbmFnZWQgdGhyb3VnaCB0ZWNobmlxdWVzIGxpa2UgdGhlIHNlZWQgdHJlZSBtZXRob2QuIFRvZGF5LCBzaWx2aWN1bHR1cmUgZm9jdXNlcyBvbiBjb21wbGV4IHN0YW5kIHN0cnVjdHVyZXMsIGJhbGFuY2luZyBjb21tZXJjaWFsIGRlbWFuZCB3aXRoIGVudmlyb25tZW50YWwgc3Rld2FyZHNoaXAuIA0KDQoyMXN0IGNlbnR1cnkgQ0Ugc3RhcnRlZCBvbiAxc3QgSmFuIDIwMDEgQUQuDQoNCjIwMDBzOltSZXNlYXJjaF0gVGhlIGNsYWltIHRoYXQgIndlIGFyZSA2MCUgYmFuYW5hIiAob3Igc2hhcmUgNjAlIG9mIG91ciBETkEpIGlzIGEgcG9wdWxhciwgeWV0IG9mdGVuIG1pc2ludGVycHJldGVkLCBzdGF0aXN0aWMgdGhhdCBvcmlnaW5hdGVkIGZyb20gY29tcGFyaXNvbnMgb2YgcHJvdGVpbi1jb2RpbmcgZ2VuZXMsIGxpa2VseSBwb3B1bGFyaXplZCBpbiB0aGUgZWFybHkgMjAwMHMgZm9sbG93aW5nIHByZWxpbWluYXJ5IHN0dWRpZXMgb2YgdGhlIGJhbmFuYSBnZW5vbWUuIEl0IHJlZmVycyB0byBhYm91dCA2MCUgb2YgaHVtYW4gZ2VuZXMgaGF2aW5nIGEgcmVjb2duaXphYmxlIGNvdW50ZXJwYXJ0IGluIGJhbmFuYXMsIG5vdCA2MCUgb2Ygb3VyIHRvdGFsIEROQS4gDQpNYW55IG9mIHRoZSDigJxob3VzZWtlZXBpbmfigJ0gZ2VuZXMgdGhhdCBhcmUgbmVjZXNzYXJ5IGZvciBiYXNpYyBjZWxsdWxhciBmdW5jdGlvbiwgc3VjaCBhcyBmb3IgcmVwbGljYXRpbmcgRE5BLCBjb250cm9sbGluZyB0aGUgY2VsbCBjeWNsZSwgYW5kIGhlbHBpbmcgY2VsbHMgZGl2aWRlIGFyZSBzaGFyZWQgYmV0d2VlbiBtYW55IHBsYW50cyAoaW5jbHVkaW5nIGJhbmFuYXMpIGFuZCBhbmltYWxzLldoaWxlIDYwJSBvZiBnZW5lcyBoYXZlIGNvdW50ZXJwYXJ0cywgdGhlc2UgZXNzZW50aWFsIGdlbmVzIG1ha2UgdXAgb25seSBhIHNtYWxsIGZyYWN0aW9uIG9mIHRoZSB0b3RhbCBnZW5vbWU7IGh1bWFucyBhbmQgYmFuYW5hcyBhcmUgbm90IDYwJSBpZGVudGljYWwgb3ZlcmFsbC4gDQpUaGUgcGhyYXNlIGlzIGVzc2VudGlhbGx5IGEgc2ltcGxpZmllZCwgb2Z0ZW4tZXhhZ2dlcmF0ZWQsIHdheSBvZiBoaWdobGlnaHRpbmcgdGhhdCBhbGwgbGlmZSBzaGFyZXMgY29tbW9uIGFuY2VzdHJhbCBnZW5lcyBmb3IgYmFzaWMgY2VsbHVsYXIgcHJvY2Vzc2VzLiANCjIwMDBzOltNQkFdIFNob3VsZCBDb3N0IE1vZGVsaW5nOiBNb2Rlcm4gIlNob3VsZCBDb3N0IiBtb2RlbHMgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBpZGVhbCBjb3N0IG9mIGEgcHJvZHVjdCwgYWNjb3VudGluZyBmb3IgbGFib3IsIG1hdGVyaWFscywgYW5kIG92ZXJoZWFkLiBFbnZpcm9ubWVudGFsICYgU29jaWFsIEltcGFjdDogTW9kZXJuIENCQSBub3cgcm91dGluZWx5IGluY2x1ZGVzIGVudmlyb25tZW50YWwgYW5kIHNvY2lhbCBpbXBhY3RzIGluIGFkZGl0aW9uIHRvIGZpbmFuY2lhbCBvbmVzLiBTaGlmdCBmcm9tIExvY2FsIHRvIEdsb2JhbDogRWFybHksIGhpZ2hseSBsb2NhbCBhc3Nlc3NtZW50cyBldm9sdmVkIGludG8gbGFyZ2Utc2NhbGUsIG5hdGlvbmFsLCBhbmQgaW50ZXJuYXRpb25hbCBDQkEuIFJlZmluZW1lbnQgb2YgVGVjaG5pcXVlczogTW92aW5nIGZyb20gc2ltcGxlLCBzaW5nbGUtcGVyaW9kIG1vZGVscyB0byBjb21wbGV4LCBtdWx0aS1wZXJpb2Qgc2ltdWxhdGlvbnMuIEluY3JlYXNlZCBEYXRhIFVzZTogVGhlIGF2YWlsYWJpbGl0eSBvZiBsYXJnZSwgZ3JhbnVsYXIgZGF0YSBzZXRzIGhhcyBhbGxvd2VkIGZvciBtb3JlIHByZWNpc2UgYW5kIHJlbGlhYmxlIGFuYWx5c2lzLiANCjIwMDBzOltNbnRuZ2ddW0V4dHJlbWVdIEluIHRoZSBlYXJseSAyMDAwcywgRGlkaWVyIEJlcnRob2Qgd2FzIHRoZSBiZXN0IGNyYWNrIGNsaW1iZXIgaW4gdGhlIHdvcmxkLCB0aGVuIGhlIGRyb3BwZWQgb3V0IG9mIGNsaW1iaW5nIGFuZCBlc3NlbnRpYWxseSBkaXNhcHBlYXJlZCBmcm9tIHRoZSB3b3JsZC4NCjIwMDBzOltSZWFsdHldIEVhcmx5IDIwMDBzOiBSZWFsIGVzdGF0ZSB3YXMgaW4gaXRzIGVhcmx5IHN0YWdlcyBpbiBJbmRpYSwgd2l0aCBncmFkdWFsIGdyb3d0aCBhbmQgZGV2ZWxvcG1lbnQuIA0KMjAwMHM6VGVhbXdvcmsgaXMgbm93IGFuIGludGVncmFsIHBhcnQgb2Ygb3JnYW5pemF0aW9uYWwgc3RyYXRlZ3ksIHdpdGggYSBncmVhdGVyIGVtcGhhc2lzIG9uIGN1c3RvbWl6YXRpb24sIHBlcnNvbmFsaXphdGlvbiwgYW5kIHN0cmF0ZWdpYyBpbnRlZ3JhdGlvbiBvZiB0ZWFtLWJ1aWxkaW5nIHByYWN0aWNlcy4gVGhlIHJpc2Ugb2YgdGVjaG5vbG9neSBoYXMgYWxzbyBpbmZsdWVuY2VkIHRlYW13b3JrLCB3aXRoIHJlbW90ZSB3b3JrIGJlY29taW5nIG1vcmUgcHJldmFsZW50IGFuZCBuZXcgdG9vbHMgZW1lcmdpbmcgdG8gZmFjaWxpdGF0ZSBjb2xsYWJvcmF0aW9uLiANCg0KMjAwMDpbVVNdW0dlb1BvbGl0aWNzXSBvdmVydGhyb3cgb2YgU2xvYm9kYW4gTWlsb8WhZXZpxIcuIChVUydzIGludm9sdmVtZW50IGluIHJlZ2ltZSBjaGFuZ2UpDQoyMDAwOiBbR2VvUG9saXRpY3NdW01pbGl0YXJ5XVtFY29ub21pY3NdIFRoZSBVUyBEb2xsYXIgaG9sZHMgYSA3MiUgc2hhcmUgb2YgYWxsIGdsb2JhbCBjdXJyZW5jeSByZXNlcnZlcyBbWzE2OjQyXShodHRwOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dllKcmkxZU5SeWMmdD0xMDAyKV0uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdIDI2IEFwcmlsIDIwMDA6IHRoZSBHZXJtYW4gdGVhbSBvcGVyYXRpbmcgdGhlIG1hc3Mgc3BlY3Ryb21ldGVyIG9uIE5BU0EncyBTdGFyZHVzdCBtaXNzaW9uIGFubm91bmNlZCB0aGUgZGV0ZWN0aW9uIG9mIHZlcnkgbGFyZ2Ugb3JnYW5pYyBtb2xlY3VsZXMgaW4gaW50ZXJzdGVsbGFyIHNwYWNlLiBOb25iaW9sb2dpY2FsIHNvdXJjZXMgZm9yIG9yZ2FuaWMgbW9sZWN1bGVzIHNvIGxhcmdlIGFyZSBub3Qga25vd24uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdMTkgT2N0b2JlciAyMDAwLCBhIHRlYW0gb2YgYmlvbG9naXN0cyBhbmQgYSBnZW9sb2dpc3QgYW5ub3VuY2VkIHRoZSByZXZpdmFsIG9mIGJhY3RlcmlhIHRoYXQgYXJlIDI1MCBtaWxsaW9uIHllYXJzIG9sZCwgc3RyZW5ndGhlbmluZyB0aGF0IGNhc2UgdGhhdCBiYWN0ZXJpYWwgc3BvcmVzIGNhbiBiZSBpbW1vcnRhbC4NCjEzIERlY2VtYmVyIDIwMDA6IGEgTkFTQSB0ZWFtIGRlbW9uc3RyYXRlZCB0aGF0IHRoZSBtYWduZXRvc29tZXMgaW4gTWFycyBtZXRlb3JpdGUgQUxIIDg0MDAxIGFyZSBiaW9sb2dpY2FsLg0KMjAwMDpbUmVzZWFyY2hdW1NwYWNlXSBNaWxlaWtvd3NreSBDLCBDdWNpbm90dGEgRkEsIFdpbHNvbiBKVywgR2xhZG1hbiBCLCBIb3JuZWNrIEcsIExpbmRlZ3JlbiBMLCBNZWxvc2ggSiwgUmlja21hbiBILCBWYWx0b25lbiBNLCBaaGVuZyBKUS4gTmF0dXJhbCB0cmFuc2ZlciBvZiB2aWFibGUgbWljcm9iZXMgaW4gc3BhY2UuIEljYXJ1cyAyMDAwLCAxNDU6Mzkx4oCTNDI3LiBbRE9JXSBbUHViTWVkXSBbR29vZ2xlIFNjaG9sYXJdDQoyMDAwOltTcGFjZVhdIFMvMjAwMCAoOTApIDEgTW9vbiBEaXNjb3ZlcmVyOiBXaWxsaWFtIEouIE1lcmxpbmUgT3JiaXRzOiA5MCBBbnRpb3BlIEFic29sdXRlIG1hZ25pdHVkZTogOS4wMg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gZGVtb25zdHJhdGVkIFNob3LigJlzIGFsZ29yaXRobSBvbiBhIDUtcXViaXQgTk1SIHF1YW50dW0gY29tcHV0ZXIsIGZhY3RvcmluZyB0aGUgbnVtYmVyIDE1Lg0KMjAwMDogQXQgYWdlIDE0IGFuZCBpbiBjbGFzcyA4dGgsIEFhcm9uIFN3YXJ0eiBiZWNhbWUgYSBtZW1iZXIgb2YgdGhlIHdvcmtpbmcgZ3JvdXAgdGhhdCBhdXRob3JlZCB0aGUgUlNTIDEuMCB3ZWIgc3luZGljYXRpb24gc3BlY2lmaWNhdGlvbi4NCjIwMDA6IE1ha2VteVRyaXANCjIwMDAgKEphbiAxNCk6W0phY2tdIEthaG8gTmFhLi4uIFB5YWFyIEhhaQ0KMjAwMCAoRmViKTogSW5kaWFuIFJhaWx3YXlzIHdlYiBzaXRlIGkuZS4gaHR0cDovL2luZGlhbnJhaWx3YXlzLmdvdi5pbi8gd2FzIGRlcGxveWVkIGJ5IENSSVMuDQoyMDAwIChNYXIpOltCb29rXSBNYWxjb2xtIEdsYWR3ZWxsJ3MgZGVidXQgYm9vaywgVGhlIFRpcHBpbmcgUG9pbnQ6IEhvdyBMaXR0bGUgVGhpbmdzIENhbiBNYWtlIGEgQmlnIERpZmZlcmVuY2UuIA0KQmxpbms6IFRoZSBQb3dlciBvZiBUaGlua2luZyBXaXRob3V0IFRoaW5raW5nICgyMDA1LCBKYW4gMTEpOyANCk91dGxpZXJzOiBUaGUgU3Rvcnkgb2YgU3VjY2VzcyAoMjAwOCwgTm92IDE4KTsgDQpXaGF0IHRoZSBEb2cgU2F3OiBBbmQgT3RoZXIgQWR2ZW50dXJlcyAoMjAwOSwgT2N0IDIwKTsgDQpEYXZpZCBhbmQgR29saWF0aDogVW5kZXJkb2dzLCBNaXNmaXRzLCBhbmQgdGhlIEFydCBvZiBCYXR0bGluZyBHaWFudHMgKDIwMTMsIE9jdCAxKQ0KVGFsa2luZyB0byBTdHJhbmdlcnM6IFdoYXQgV2UgU2hvdWxkIEtub3cgYWJvdXQgdGhlIFBlb3BsZSBXZSBEb24ndCBLbm93ICgyMDE5KQ0KMjAwMCAoQXByIDEpOltCb29rXSBSb2JlcnQgS2l5b3Nha2kgJiBTaGFyb24gTGVjaHRlcidzIFJpY2ggRGFkIFBvb3IgRGFkLg0KMjAwMCAoQXByIDEpOltUZWNobm9sb2d5XVtSZXNlYXJjaF0gIldoeSBUaGUgRnV0dXJlIERvZXNuJ3QgTmVlZCBVcyIgaXMgYW4gYXJ0aWNsZSB3cml0dGVuIGJ5IEJpbGwgSm95IGluIHRoZSBBcHJpbCAyMDAwIGlzc3VlIG9mIFdpcmVkIG1hZ2F6aW5lLiBJbiB0aGUgYXJ0aWNsZSwgaGUgYXJndWVzIHRoYXQgIk91ciBtb3N0IHBvd2VyZnVsIDIxc3QtY2VudHVyeSB0ZWNobm9sb2dpZXPigJRyb2JvdGljcywgZ2VuZXRpYyBlbmdpbmVlcmluZywgYW5kIG5hbm90ZWNo4oCUYXJlIHRocmVhdGVuaW5nIHRvIG1ha2UgaHVtYW5zIGFuIGVuZGFuZ2VyZWQgc3BlY2llcy4iIA0KMjAwMCAoSnVuIDI2KTpbTXVzaWNdICJZZWxsb3ciIGlzIGEgc29uZyBieSB0aGUgQnJpdGlzaCByb2NrIGJhbmQgQ29sZHBsYXkuIFRoZSBiYW5kIHdyb3RlIHRoZSBzb25nIGFuZCBjby1wcm9kdWNlZCBpdCB3aXRoIEJyaXRpc2ggcmVjb3JkIHByb2R1Y2VyIEtlbiBOZWxzb24gZm9yIHRoZWlyIGRlYnV0IGFsYnVtLCBQYXJhY2h1dGVzICgyMDAwKS4gVGhlIHNvbmcgd2FzIHJlY29yZGVkIGluIE1hcmNoIDIwMDAgYW5kIHJlbGVhc2VkIG9uIDI2IEp1bmUgdGhhdCBzYW1lIHllYXIuDQoyMDAwIChTZXApOiBBbWF6b24ncyBKZWZmIEJlem9zIGZvdW5kZWQuDQoyMDAwIChTZXApOltDcmltZV1bSW5kaWFdIENoaG90YSBTaGFrZWVsJ3MgYXR0YWNrIG9uIFJhamFuIGluIGhpcyBCYW5na29rIGhvdGVsIHJvb20uDQoyMDAwIChTZXApOiBSYWlsVGVsIENvcnBvcmF0aW9uIG9mIEluZGlhIEx0ZC4gZm91bmRlZCBhbmQgSFEnZCBhdCAxNDMsIEluc3RpdHV0aW9uYWwgQXJlYSwgU2VjdG9yLTQ0LCBHdXJnYW9uLCBIYXJ5YW5hLCBJbmRpYS4gSXQgaXMgYSBNaW5pcmF0bmEgZW50ZXJwcmlzZSBvZiBHb3Zlcm5tZW50IG9mIEluZGlhIGZvY3VzaW5nIG9uIHByb3ZpZGluZyBicm9hZGJhbmQgYW5kIFZQTiBzZXJ2aWNlcy4NCjIwMDAgKFNlcCAxNyk6IFtHZW9Qb2xpdGljc10gVGhlIGlkZWEgb2YgYW4gQXNpYSBDb29wZXJhdGlvbiBEaWFsb2d1ZSAoQUNEKSB3YXMgcmFpc2VkIGF0IHRoZSBGaXJzdCBJbnRlcm5hdGlvbmFsIENvbmZlcmVuY2Ugb2YgQXNpYW4gUG9saXRpY2FsIFBhcnRpZXMgKGhlbGQgaW4gTWFuaWxhIGJldHdlZW4gMTfigJMyMCBTZXB0ZW1iZXIgMjAwMCkgYnkgU3VyYWtpYXJ0IFNhdGhpcmF0aGFpLCB0aGVuIGRlcHV0eSBsZWFkZXIgb2YgdGhlIG5vdyBkZWZ1bmN0IFRoYWkgUmFrIFRoYWkgUGFydHksIG9uIGJlaGFsZiBvZiBoaXMgcGFydHkgbGVhZGVyLCBUaGFrc2luIFNoaW5hd2F0cmEsIHRoZW4gUHJpbWUgTWluaXN0ZXIgb2YgVGhhaWxhbmQuIEl0IHdhcyBzdWdnZXN0ZWQgdGhhdCBBc2lhIGFzIGEgY29udGluZW50IHNob3VsZCBoYXZlIGl0cyBvd24gZm9ydW0gdG8gZGlzY3VzcyBBc2lhLXdpZGUgY29vcGVyYXRpb24uIEFmdGVyd2FyZHMsIHRoZSBpZGVhIG9mIHRoZSBBQ0Qgd2FzIGZvcm1hbGx5IHB1dCBmb3J3YXJkIGR1cmluZyB0aGUgMzR0aCBBU0VBTiBGb3JlaWduIE1pbmlzdGVycyBNZWV0aW5nIGluIEhhbm9pLCAyM+KAkzI0IEp1bHkgMjAwMSBhbmQgYXQgdGhlIEFTRUFOIEZvcmVpZ24gTWluaXN0ZXJzIFJldHJlYXQgaW4gUGh1a2V0LCAyMOKAkzIxIEZlYnJ1YXJ5IDIwMDIuDQoyMDAwIChPY3QgNCk6W011c2ljXSBGb3JtZWQgaW4gMTk5NiwgTGlua2luIFBhcmsgcm9zZSB0byBpbnRlcm5hdGlvbmFsIGZhbWUgd2l0aCB0aGVpciBkZWJ1dCBzdHVkaW8gYWxidW0sIEh5YnJpZCBUaGVvcnkuIEZvdXIgc2luZ2xlcyB3ZXJlIHJlbGVhc2VkIGZyb20gSHlicmlkIFRoZW9yeTogIk9uZSBTdGVwIENsb3NlciIsICJJbiB0aGUgRW5kIiwgIkNyYXdsaW5nIiBhbmQgIlBhcGVyY3V0IiwgYWxsIG9mIHRoZW0gYmVpbmcgcmVzcG9uc2libGUgZm9yIGxhdW5jaGluZyBMaW5raW4gUGFyayBpbnRvIG1haW5zdHJlYW0gcG9wdWxhcml0eS4gV2hpbGUgIkluIHRoZSBFbmQiIHdhcyB0aGUgbW9zdCBzdWNjZXNzZnVsIG9mIHRoZSBmb3VyLCBhbGwgb2YgdGhlIHNpbmdsZXMgaW4gdGhlIGFsYnVtIHJlbWFpbiBzb21lIG9mIHRoZSBiYW5kJ3MgbW9zdCBzdWNjZXNzZnVsIHNvbmdzIHRvIGRhdGUuDQoyMDAwIChOb3YgOSk6IGZvcm1hdGlvbiBvZiBVdHRhcmFraGFuZCBhcyBVdHRhcmFuY2hhbCAyMDAwIChKdW4gOSk6IEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQWN0LCAyMDAwLiBUaGUgYmlsbCB3YXMgcGFzc2VkIGluIHRoZSBidWRnZXQgc2Vzc2lvbiBvZiAyMDAwIGFuZCBzaWduZWQgYnkgUHJlc2lkZW50IEsuIFIuIE5hcmF5YW5hbiBvbiA5IE1heSAyMDAwLiBUaGUgYmlsbCB3YXMgZmluYWxpc2VkIGJ5IGdyb3VwIG9mIG9mZmljaWFscyBoZWFkZWQgYnkgdGhlbiBNaW5pc3RlciBvZiBJbmZvcm1hdGlvbiBUZWNobm9sb2d5LCBQcmFtb2QgTWFoYWphbi4NCjIwMDA6IGZvcm1hdGlvbiBvZg0KMjAwMDogSmFpc2gtZS1Nb2hhbW1lZCAobGl0ZXJhbGx5ICJUaGUgQXJteSBvZiBNdWhhbW1hZCIsIEplTSkgZm91bmRlZCBhdCBCYWhhd2FscHVyLCBQdW5qYWIsIFBha2lzdGFuLg0KMjAwMDogQ2hpbmEncyBCZWlEb3UgbmF2aWdhdGlvbiB0ZXN0IHN5c3RlbSBzdGFydHMuDQoyMDAwOiBGaXNlcnYgaGFkIGFjcXVpcmVkIG1vcmUgdGhhbiA5MCBidXNpbmVzc2VzLiBUaGUgbnVtYmVyIG9mIGVtcGxveWVlcyBncmV3IGZyb20gMjY0IHRvIDE0LDAwMC4gRmlzZXJ2IHdhcyBhbiBpbmR1c3RyeSBsZWFkZXIsIHdpdGggcmV2ZW51ZSB0aGF0IGluY3JlYXNlZCBmcm9tICQyMSBtaWxsaW9uIHRvICQxLjQgYmlsbGlvbiBpbiAxNSB5ZWFycy4NCjIwMDAgKERlYyA4KTpbR2FtaW5nXSBQcm9qZWN0IEkuRy5JLiBpcyBhIHRhY3RpY2FsIGZpcnN0LXBlcnNvbiBzaG9vdGVyIHZpZGVvIGdhbWUuIEl0IHdhcyBkZXZlbG9wZWQgYnkgSW5uZXJsb29wIFN0dWRpb3MgYW5kIHJlbGVhc2VkIGluIERlY2VtYmVyIDIwMDAgYnkgRWlkb3MgSW50ZXJhY3RpdmUuIFRoZSBnYW1lIHJlY2VpdmVkIG1peGVkIHJldmlld3MgZHVlIHRvIHNob3J0Y29taW5ncyBpbmNsdWRpbmcgYSBwb29ybHkgcHJvZ3JhbW1lZCBBLkkuLCBsYWNrIG9mIGEgbWlkLWdhbWUgc2F2ZSBvcHRpb24sIGFuZCB0aGUgbGFjayBvZiBtdWx0aXBsYXllciBmZWF0dXJlcy4gSG93ZXZlciBpdCB3YXMgcHJhaXNlZCBmb3IgaXRzIHNvdW5kIGRlc2lnbiBhbmQgZ3JhcGhpY3MsIHRoYW5rcyBpbiBwYXJ0IHRvIGl0cyB1c2Ugb2YgYSBwcm9wcmlldGFyeSBnYW1lIGVuZ2luZSB0aGF0IHdhcyBwcmV2aW91c2x5IHVzZWQgaW4gSW5uZXJsb29wJ3MgSm9pbnQgU3RyaWtlIEZpZ2h0ZXIuDQoyMDAwIChEZWMgMjEpOltKYWNrXSBSYWp1IENoYWNoYSByZWxlYXNlZC4NCjIwMDA6IFtCdXNpbmVzc11bRmluYW5jZV1bQ29ycG9yYXRlXVtJbmRpYV0gUklMIHBpbG90ZWQgd29ybGQncyBsYXJnZXN0IHBldHJvbGV1bSByZWZpbmVyeSBhdCBKYW1uYWdhciwgR3VqYXJhdCwgcmVmaW5pbmcgMS4yNE1uIGJhcnJlbHMvZGF5Lg0KMjAwMDpbQ3JpbWVdW0luZGlhXSBQb2xpY2UgZW5jb3VudGVycyBpbiBNdW1iYWkuIE1vc3QgY3JpbWluYWxzIGZsZWVpbmcgdG8gQ2FsY3VsdHRhLiBBZnRhYiBCaGF0a2kgZGVzdGFiaWxpc2UgdGhlIGVjb25vbXkgYnkgc3ByZWFkaW5nIGZha2UgY3VycmVuY3kgbm90ZXMgcHJpbnRlZCBieSBJU0kgZnVuY3Rpb25hcmllcywgYW5kIHR3bywgc2VuZCBtZXJjZW5hcmllcyB0byBjb25kdWN0IGFiZHVjdGlvbnMgYW5kIHRlcnJvcmlzdCBhdHRhY2tzLg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBUZWNobmljYWwgVW5pdmVyc2l0eSBvZiBNdW5pY2ggKDUgcXViaXQpOyBMb3MgQWxhbW9zIE5hdGlvbmFsIExhYiAoNyBxdWJpdHMpDQoyMDAwOkluIDIwMDAsIFRhdGEgVGVhIGFjcXVpcmVkIHRoZSBUZXRsZXkgVGVhIENvbXBhbnkgZm9yICQ0MDcgbWlsbGlvbi4gT3RoZXIgbm90YWJsZSBhY3F1aXNpdGlvbnMgaW5jbHVkZSBOYXRTdGVlbCAoMjAwNCksIEJydW5uZXIgTW9uZCAoMjAwNSksIGFuZCBFaWdodCBPJ0Nsb2NrIENvZmZlZSAoMjAwNikuIA0KMjAwMDogQmlybGEgYWNxdWlyZWQgSW5kaWFuIEFsdW1pbnVtIENvbXBhbnkgKElOREFMKS4gDQoyMDAwOiBTYXR5YSBOYXJheWFuYSBHb2Vua2Egd29ya2VkIGFzIGFuIGludGVybmF0aW9uYWwgYnVzaW5lc3NtYW4gYmFzZWQgaW4gTXlhbm1hciBhbmQgSW5kaWEgZm9yIGEgbGFyZ2UgcGFydCBvZiBoaXMgbGlmZS4gSGUgd2FzIGEga2V5bm90ZSBzcGVha2VyIG9uIHRoZSBzdWJqZWN0IG9mIFNwaXJpdHVhbGl0eSBpbiBCdXNpbmVzcyBhdCB0aGUgMzB0aCBXb3JsZCBFY29ub21pYyBGb3J1bSBpbiBEYXZvcywgU3dpdHplcmxhbmQgYmV0d2VlbiAyNiBKYW4gYW5kIDIgRmViIDIwMDAuIFR3byB5ZWFycyBsYXRlciBoZSBjb25kdWN0ZWQgdGhlIGZpcnN0IDEwLWRheSBjb3Vyc2UgaW4gVmlwYXNzYW5hIE1lZGl0YXRpb24gZXNwZWNpYWxseSBmb3IgYnVzaW5lc3MgZXhlY3V0aXZlcyBhbmQgZ292ZXJubWVudCBvZmZpY2lhbHMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAyMjUgeWVhcnMgb2YgSW5kZXBlbmRlbnQgVVNBIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIA0KDQoyMDAxOltVU11bR2VvUG9saXRpY3NdIGludmFzaW9uIG9mIEFmZ2hhbmlzdGFuLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMjAwMTpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgU2hhbmdoYWkgQ29vcGVyYXRpb24gT3JnYW5pc2F0aW9uIChTQ08pIGlzIGEgRXVyYXNpYW4gcG9saXRpY2FsLCBlY29ub21pYywgaW50ZXJuYXRpb25hbCBzZWN1cml0eSBhbmQgZGVmZW5jZSBvcmdhbml6YXRpb24gb2YgdGVuIG1lbWJlciBzdGF0ZXMuIEl0IHdhcyBlc3RhYmxpc2hlZCBpbiAyMDAxIGJ5IHRoZSBQZW9wbGUncyBSZXB1YmxpYyBvZiBDaGluYSwgS2F6YWtoc3RhbiwgS3lyZ3l6c3RhbiwgUnVzc2lhLCBhbmQgVGFqaWtpc3RhbiBhbmQgVXpiZWtpc3Rhbi4gSW4gSnVuZSAyMDE3LCBpdCBleHBhbmRlZCB0byBlaWdodCBzdGF0ZXMsIHdpdGggSW5kaWEgYW5kIFBha2lzdGFuLiBJcmFuIGpvaW5lZCB0aGUgZ3JvdXAgaW4gSnVseSAyMDIzLCBhbmQgQmVsYXJ1cyBpbiBKdWx5IDIwMjQuIFNldmVyYWwgY291bnRyaWVzIGFyZSBlbmdhZ2VkIGFzIG9ic2VydmVycyBvciBkaWFsb2d1ZSBwYXJ0bmVycy4gRm91bmRlcnM6IENoaW5hLCBSdXNzaWEsIEthemFraHN0YW4sIFV6YmVraXN0YW4sIEt5cmd5enN0YW4sIFRhamlraXN0YW47IEhlYWRxdWFydGVyczogQmVpamluZywgQ2hpbmE7IEZvdW5kZWQ6IDE1IEp1bmUgMjAwMQ0KMjAwMTpbQnVzaW5lc3NdIDIwMDHigJMyMDA1OiBIRlQgZXhlY3V0aW9uIHRpbWVzIGRlY3JlYXNlZCBmcm9tIHNldmVyYWwgc2Vjb25kcyB0byBtaWxsaXNlY29uZHMuIChIRlQpDQoyMDAxOltDb21wdXRpbmddW1F1YW50dW1dICBJQk0gaW1wbGVtZW50ZWQgR3JvdmVy4oCZcyBhbGdvcml0aG0gb24gYSA3LXF1Yml0IE5NUiBxdWFudHVtIGNvbXB1dGVyLCBmaW5kaW5nIGEgbWFya2VkIGl0ZW0gaW4gYSBkYXRhYmFzZSBvZiA0IGVudHJpZXMuDQoyMDAxOiBMaWZlIG9mIFBpIGlzIGEgQ2FuYWRpYW4gcGhpbG9zb3BoaWNhbCBub3ZlbCBieSBZYW5uIE1hcnRlbCBwdWJsaXNoZWQuIFRoZSBwcm90YWdvbmlzdCBpcyBQaXNjaW5lIE1vbGl0b3IgIlBpIiBQYXRlbCwgYW4gSW5kaWFuIGJveSBmcm9tIFBvbmRpY2hlcnJ5IHdobyBleHBsb3JlcyBpc3N1ZXMgb2Ygc3Bpcml0dWFsaXR5IGFuZCBtZXRhcGh5c2ljcyBmcm9tIGFuIGVhcmx5IGFnZS4gSGUgc3Vydml2ZXMgMjI3IGRheXMgYWZ0ZXIgYSBzaGlwd3JlY2sgd2hpbGUgc3RyYW5kZWQgb24gYSBsaWZlYm9hdCBpbiB0aGUgUGFjaWZpYyBPY2VhbiB3aXRoIGEgQmVuZ2FsIHRpZ2VyIHdoaWNoIHJhaXNlcyBxdWVzdGlvbnMgYWJvdXQgdGhlIG5hdHVyZSBvZiByZWFsaXR5IGFuZCBob3cgaXQgaXMgcGVyY2VpdmVkIGFuZCB0b2xkLjtTZXZlbiBTdG9yaWVzICgxOTkzKQ0KMjAwMTpbQ3JpbWVdW0luZGlhXSBDaGhvdGEgUmFqYW4ncyBhc3NvY2lhdGVzIHRyYWNrZWQgZG93biBhbmQgc2hvdCBkZWFkIGhvdGVsaWVyIFZpbm9kIGluIE11bWJhaSwgYXMgd2VsbCBhcyBTdW5pbCBTb2FucyDigJMgYW5vdGhlciBEYXdvb2QgYXNzb2NpYXRlLg0KMjAwMSAoSmFuIDEpOltCb29rXSBHcmVnIE1jS2Vvd24ncyBFc3NlbnRpYWxpc206IFRoZSBEaXNjaXBsaW5lZCBQdXJzdWl0IG9mIExlc3MNCjIwMDEgKEphbiAxKTpbQm9va10gQnJpYW4gVHJhY3kncyBFYXQgVGhhdCBGcm9nIQ0KMjAwMTogVGhlIEFyZHVpbm8gcHJvamVjdCBzdGFydGVkIGF0IHRoZSBJbnRlcmFjdGlvbiBEZXNpZ24gSW5zdGl0dXRlIEl2cmVhIChJRElJKSBpbiBJdnJlYSwgSXRhbHkuIEF0IHRoYXQgdGltZSwgdGhlIHN0dWRlbnRzIHVzZWQgYSBCQVNJQyBTdGFtcCBtaWNyb2NvbnRyb2xsZXIgYXQgYSBjb3N0IG9mICQxMDAsIGEgY29uc2lkZXJhYmxlIGV4cGVuc2UgZm9yIG1hbnkgc3R1ZGVudHMuDQoyMDAxIChBcHIgNHRoKTogQ2hhcmxlcyBNLiBWZXN0LCB0aGUgdGhlbiBQcmVzaWRlbnQgb2YgTUlUIGFubm91bmNlZCBPcGVuQ291cnNlV2FyZSAoT0NXKSBwdWJsaWNpemluZyBhbGwgb2YgaXRzIDIsMDAwIGNvdXJzZXMgIGF0IHRoZSBlc3RpbWF0ZWQgY29zdCBvZiAkMTAwIG1pbGxpb24gKG9uIGFuIGF2Zy4sIGEgTUlUIHN0dWRlbnRzIHBheXMgYXJvdW5kICQyNiwwMDAgYXMgb2ZmbGluZSB0dWl0aW9uIGZlZSkNCjIwMDE6IFVTIGludmFkZWQgQWZnaGFuaXN0YW4gaW4gcmVzcG9uc2UgdG8gOS8xMSBhdHRhY2tzLiBPZmZpY2lhbGx5LCBJdCBoYXMgYmVjb21lIHRoZSBsb25nZXN0IHdhciBpbiBBbWVyaWNhbiBoaXN0b3J5Lg0KMjAwMTogaVBvZCBieSBUb255IEZhZGVsbA0KMjAwMSAoSnVuIDE1KTpbSmFja10gR2FkYXI6IEVrIFByZW0gS2F0aGE7IExhZ2FhbjogT25jZSBVcG9uIGEgVGltZSBpbiBJbmRpYQ0KMjAwMSAoU2VwIDExKTogOS8xMSBUZXJyb3Jpc3QgYXR0YWNrcy4gVGhlIFNlcHRlbWJlciAxMSBvciA5LzExLCBhdHRhY2tzIHdlcmUgYSBzZXJpZXMgb2YgZm91ciBjb29yZGluYXRlZCB0ZXJyb3Jpc3QgYXR0YWNrcyBieSB0aGUgSXNsYW1pYyB0ZXJyb3Jpc3QgZ3JvdXAgYWwtUWFlZGEgb24gdGhlIFVuaXRlZCBTdGF0ZXMgb24gdGhlIG1vcm5pbmcgb2YgVHVlc2RheSwgU2VwIDExLiBUaGUgbG9zcyBvZiBsaWZlIHdhcyBlc3RpbWF0ZWQgYXQganVzdCB1bmRlciAzLDAwMC4gVGhlIGV2ZW50IGNoYW5nZWQgQW1lcmljYW4gZm9yZWlnbiBwb2xpY3kuIEl0IHdhcyBhIG1vdGl2YXRpbmcgZmFjdG9yIGJlaGluZCB0aGUgY29udHJvdmVyc2lhbCBpbnZhc2lvbiBvZiBJcmFxIGFuZCBsZWQgdG8gYSDigJh3YXIgb24gdGVycm9y4oCZIHN5bWJvbGlzZWQgYnkgR3VhbnRhbmFtbyBCYXkgYW5kIGEgZGViYXRlIG92ZXIgdGhlIGp1c3RpZmljYXRpb24gb2YgdG9ydHVyZS4NCjIwMDEgKE9jdCA3KTpbR2VvUG9saXRpY3NdIFVuaXRlZCBTdGF0ZXMgaW52YXNpb24gb2YgQWZnaGFuaXN0YW46IEluIGxhdGUgMjAwMSwgdGhlIFVuaXRlZCBTdGF0ZXMgYW5kIGl0cyBjbG9zZSBhbGxpZXMgaW52YWRlZCBBZmdoYW5pc3RhbiBhbmQgdG9wcGxlZCB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50LiBUaGUgaW52YXNpb24ncyBzdGF0ZWQgYWltcyB3ZXJlIHRvIGRpc21hbnRsZSBhbC1RYWVkYSwgd2hpY2ggaGFkIGV4ZWN1dGVkIHRoZSBTZXB0ZW1iZXIgMTEgYXR0YWNrcywgYW5kIHRvIGRlbnkgaXQgYSBzYWZlIGJhc2Ugb2Ygb3BlcmF0aW9ucyBpbiBBZmdoYW5pc3RhbiBieSByZW1vdmluZyB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50IGZyb20gcG93ZXIuIERlYyA3LCAyMDAxIG9ud2FyZCBzdGFydGVkIFdhciBpbiBBZmdoYW5pc3Rhbi4NCjIwMDEgKE9jdCAxNik6W0Jvb2tdIE1jS2luc2V5IFJlc2VhcmNoZXIgSmFtZXMgQy4gQ29sbGlucycgR29vZCBUbyBHcmVhdDogV2h5IFNvbWUgQ29tcGFuaWVzIE1ha2UgdGhlIExlYXAuLi5BbmQgT3RoZXJzIERvbid0OyANCjIwMDEgKE5vdik6W0NyaW1lXVtJbmRpYV0gQWJkdWwgR2FmZmFyIGFsaWFzIENoaWtuYSBHYWZmYXIgY2F1Z2h0IGJ5IHRoZSBkZXRlY3RpdmUgZGVwYXJ0bWVudCBpbiBDYWxjdXR0YSANCjIwMDEgKEphbiAyKTogVGhlIG5vcnRoZXJuIGVsZWN0cmljYWwgZ3JpZCBjb2xsYXBzZWQgaW4gSW5kaWEuIEEgZmF1bHQgaW4gdGhlIHRyYW5zbWlzc2lvbiBzeXN0ZW0gaW4gdGhlIHN0YXRlIG9mIFV0dGFyIFByYWRlc2ggbGVkIHRvIGNhc2NhZGluZyBmYWlsdXJlIHRocm91Z2hvdXQgbm9ydGhlcm4gSW5kaWEgYWZmZWN0aW5nIDIzIGNyb3JlIHJlc2lkZW50cy4NCjIwMDE6IElWUlMgKCdJbnRlcmFjdGl2ZSBWb2ljZSBSZXNwb25zZSBTeXN0ZW0nKSBmb3IgdGVsZXBob25pYyBlbnF1aXJpZXMgYWJvdXQgdHJhaW5zIGludHJvZHVjZWQgaW4gc29tZSBzdGF0aW9ucy4NCjIwMDE6IE1hZGVFYXN5IGluY29ycG9yYXRlZCBhdCA0NC1BLzEsIEthbHUgU2FyYWksIE5lYXIgSGF1eiBLaGFzIE1ldHJvIFN0YXRpb24sIE5ldyBEZWxoaS0xMTAwMTYNCjIwMDE6IEFjYyB0byAyMDAxIGNlbnN1cywgMzAgbGFraHMgd2VyZSBpbW1pZ3JhdGVkIHRvIEluZGlhIGZyb20gQmFuZ2xhZGVzaCBhbG9uZSwgZm9sbG93ZWQgYnkgMTAgbGFraHMgZnJvbSBQYWtpc3RhbiBhbmQgNiBsYWtocyBmcm9tIE5lcGFsLg0KMjAwMSAoRGVjIDEzKTpbQ3JpbWVdW0luZGlhXSBUZXJyb3Jpc3QgYXR0YWNrIG9uIEluZGlhJ3MgUGFybGlhbWVudC4NCjIwMDE6IHRoZSBjdXN0b21lciBiYXNlIG9mIG1vYmlsZSBwaG9uZSBjb21wYW5pZXMgd2FzIDQgbWlsbGlvbi4NCjIwMDE6IEJlbmVmaXQgbGFubmVycywgVGV4YXMgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBIZWFsdGggQmVuZWZpdCBkaXZpc2lvbi4NCjIwMDE6IE5ldyBIb3Jpem9ucyB3YXMgaW5pdGlhbGx5IHNlbGVjdGVkIGZvciBmdW5kaW5nIGluIDIwMDEgYnV0IHdhcyBleGNsdWRlZCBmcm9tIHRoZSBOQVNBIDIwMDMgYnVkZ2V0LiBGdW5kaW5nIGZvciB0aGUgbWlzc2lvbiB3YXMgcmVpbnN0YXRlZCBhZnRlciBOZXcgSG9yaXpvbnMgd2FzIGxpc3RlZCBhcyBhIHRvcCBwcmlvcml0eSBpbiB0aGUgUGxhbmV0YXJ5IFNjaWVuY2UgRGVjYWRhbCBTdXJ2ZXkgb2YgMjAwM+jjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlallkllklklklklklklklklklklklklklklklklklklklklklklklklklklklkjjajlkasjdlajdlkajdlaj
+KAkzIwMDEuDQoxOTkzOiBBc2hvayBIYWxsIEdpcmwncyBSZXNpZGVudGlhbCBTY2hvb2wsIE1hamtoYWxpLg0KMTk5MzogQnkgdGhpcyB5ZWFyIHRoZXJlIHdlcmUgYXJvdW5kIDEwMCB3ZWItc2VydmVycyBhY3Jvc3MgdGhlIHdvcmxkLiAoQSByZXBvcnQgcHVibGlzaGVkIGluIGZpcnN0IGlzc3VlIG9mIFRoZSBXb3JsZCBXaWRlIFdlYiBOZXdzbGV0dGVyLCAxOTkzKQ0KMTk5MzogQUMgMy10aWVyIGNvYWNoZXMgJiBTbGVlcGVyIGNsYXNzIGFyZSBpbnRyb2R1Y2VkIGFwYXJ0IGZyb20gc2Vjb25kIGNsYXNzLg0KMTk5MzogR29JJ3MgRGlzdHJpY3QgUHJpbWFyeSBFZHVjYXRpb24gUHJvZ3JhbW1lIChEUEVQKSB3YXMgbGF1bmNoZWQsIHdpdGggYW4gYWltIG9mIGFjaGlldmluZyB0aGUgb2JqZWN0aXZlIG9mIHVuaXZlcnNhbCBwcmltYXJ5IGVkdWNhdGlvbi4gVGhpcyBwcm9ncmFtbWVkIGxhaWQgdGhlIGZvdW5kYXRpb25zIGZvciDgpLjgpLDgpY3gpLUg4KS24KS/4KSV4KWN4KS34KS+IOCkheCkreCkv+Ckr+CkvuCkqChFZHVjYXRpb24gZm9yIEFsbCBNb3ZlbWVudCkgYWltZWQgYXQgdGhlIHVuaXZlcnNhbGlzYXRpb24gb2YgZWxlbWVudGFyeSBlZHVjYXRpb24gbWFraW5nIGZyZWUgYW5kIGNvbXB1bHNvcnkgZWR1Y2F0aW9uIHRvIGNoaWxkcmVuIGJldHdlZW4gdGhlIGFnZXMgb2YgNiB0byAxNC4NCjE5OTM6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIHNwbGl0IHdpdGggRGF3b29kIGFuZCBmb3JtZWQgYW4gaW5kZXBlbmRlbnQgZ2FuZyB0aGF0IGZyZXF1ZW50bHkgY2xhc2hlZCB3aXRoIERhd29vZCdzIEQtQ29tcGFueS4NCjE5OTMgKEphbiA3KTpbQ3JpbWVdIFJpb3RzIHJlLXN0YXJ0ZWQgaW4gTXVtYmFpIGFuZCBsYXN0ZWQgZm9yIDIwIGRheXMuIFRoZSBJU0ksIHdoaWNoIGNvbnRyb2xsZWQgc2hpcHBpbmcgcm91dGVzIGZyb20gdGhlIEd1bGYgdG8gSW5kaWEncyB3ZXN0IGNvYXN0LCBkZW1hbmRlZCB0aGF0IHRoZSBtYWZpYSB0cmFuc3BvcnQgd2VhcG9ucyBhbmQgZXhwbG9zaXZlcyBpbnRvIEluZGlhIGluIHJldHVybiBmb3IgdGhlIHVzZSBvZiBQYWtpc3RhbidzIHdhdGVycy4gRGF3b29kIG1ldCB0aGVpciBJU0kgaGFuZGxlcnMgaW4gYSA1IHN0YXIgaG90ZWwgb2YgRHViYWkgaW4gSmFuIG9yIEZlYiBvZiAxOTkzLCB0aGVuIGNhbWUgdGhlIFJEWCB0aHJvdWdoIHRoZSBzYW1lIHBvcm91cyBhbmQgdW5jaGVja2VkIHNlYSByb3V0ZSB0aGF0IDI2LzExIGF0dGFja2VycyBzbGlwcGVkIGFjcm9zcyBhbmQgd3JlY2tlZCBtYXloZW0gaW4gTXVtYmFpLiBUaGUg4oCZOTMgYXR0YWNrcyB3ZXJlIGZpbmFsbHkgZXhlY3V0ZWQgaW4gbWFyY2ggdGhhdCBjbGFpbWVkIHNvbWUgMzAwIGlubm9jZW50IGxpdmVzLg0KMTk5MyAoTWFyIDYpOltQb2xpdHldW0luZGlhXSBTaGFyYWQgUGF3YXIgcmUtZWxlY2V0ZCBhcyBDTSBvZiBNSCBmb3IgMiB5ZWFycy4NCjE5OTMgKE1hciAxMik6W0NyaW1lXSBUaGUgMTk5MyBCb21iYXkgYm9tYmluZ3Mgd2VyZSBhIHNlcmllcyBvZiAxMiB0ZXJyb3Jpc3QgYm9tYmluZ3MgdGhhdCB0b29rIHBsYWNlIGluIEJvbWJheS4gVGhlIHNpbmdsZS1kYXkgYXR0YWNrcyByZXN1bHRlZCBpbiAyNTcgZmF0YWxpdGllcyBhbmQgMSw0MDAgaW5qdXJpZXMuIFRoZXJlIHdhcyBhbm90aGVyIHJhaWQgbmVhciBNYW5pc2ggbWFya2V0IHdoZXJlIGhhbmQgZ3JlbmFkZXMgd2VyZSByZWNvdmVyZWQuIEFmdGVyIGFub3RoZXIgdGlwIG9mZiBsZWQgdG8gZGlzY292ZXJ5IG9mIGEgaHVnZSBxdWFudGl0eSBvZiBSRFggZnJvbSBOYWdsYSBCdW5kZXIgb2ZmIEdob2RidW5kZXIgUm9hZCBpbiBUaGFuZS4g4oCcSW4gYWxsLCA1LDAwMCBraWxvZ3JhbXMgb2YgUkRYIHdhcyBicm91Z2h0IGludG8gTXVtYmFpIGFuZCB3ZSByZWNvdmVyZWQgMywzMDAga2lsb2dyYW1zIG9mIGl0IGluIGFsbCB0aGUgcmFpZHMs4oCdIHNheXMgQ2hhdWd1bGUuIFJlZHVjZWQgU2hvY2sgU2Vuc2l0aXZpdHkgKFJTUykgZXhwbG9zaXZlcywgc3VjaCBhcyBSU1MtUkRYLCB3aGljaCBjb3N0cyBhYm91dCBScy4gMSw1MDAtMiwwMDAgcGVyIGtnLiBBbmVlcyBjb250aW51ZWQgb3BlcmF0aW9uIG9mIEQtQ29tcGFueSB3aGljaCBpbmNsdWRlIGNvbnRyYWN0IGtpbGxpbmcsIGV4dG9ydGlvbiwgdGhlIGNpcmN1bGF0aW9uIG9mIGNvdW50ZXJmZWl0IGN1cnJlbmN5LCBhbmQgdGhlIHByb3Zpc2lvbiBvZiBhIHJhbmdlIG9mIGZyZWUtbGFuY2Ugc2VydmljZXMgdG8gdGVycm9yaXN0IGdyb3VwcyBhdCB0aGUgaW5zdGFuY2Ugb2YgUGFraXN0YW4ncyBJbnRlciBTZXJ2aWNlcyBJbnRlbGxpZ2VuY2UgKElTSSkuIEludGVycG9sIFJlZCBDb3JuZXIgbm90aWNlIGZvciBELUNvbXBhbnkuDQoxOTkzIChOb3YgMSk6IFRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGZvdW5kZWQuIEl0IGlzIGFuIGVjb25vbWljIGFuZCBwb2xpdGljYWwgcGFydG5lcnNoaXAgaW52b2x2aW5nIDI4IEV1cm9wZWFuIGNvdW50cmllcy4gSXQgYmVnYW4gYWZ0ZXIgV1cyIHRvIGZvc3RlciBlY29ub21pYyBjby1vcGVyYXRpb24sIHdpdGggdGhlIGlkZWEgdGhhdCBjb3VudHJpZXMgd2hpY2ggdHJhZGUgdG9nZXRoZXIgYXJlIG1vcmUgbGlrZWx5IHRvIGF2b2lkIGdvaW5nIHRvIHdhciB3aXRoIGVhY2ggb3RoZXIuDQoxOTkzIChOb3YgMyk6IFtHZW9Qb2xpdGljc10gVGhlIENvbW1vbiBNYXJrZXQgZm9yIEVhc3Rlcm4gYW5kIFNvdXRoZXJuIEFmcmljYSAoQ09NRVNBKSBpcyBhIHJlZ2lvbmFsIGVjb25vbWljIGNvbW11bml0eSBpbiBBZnJpY2Egd2l0aCB0d2VudHktb25lIG1lbWJlciBzdGF0ZXMgc3RyZXRjaGluZyBmcm9tIFR1bmlzaWEgdG8gRXN3YXRpbmkuIENPTUVTQSB3YXMgZm9ybWVkIGluIERlY2VtYmVyIDE5OTQsIHJlcGxhY2luZyBhIFByZWZlcmVudGlhbCBUcmFkZSBBcmVhIHdoaWNoIGhhZCBleGlzdGVkIHNpbmNlIDE5ODEuIE5pbmUgb2YgdGhlIG1lbWJlciBzdGF0ZXMgZm9ybWVkIGEgZnJlZSB0cmFkZSBhcmVhIGluIDIwMDAgKERqaWJvdXRpLCBFZ3lwdCwgS2VueWEsIE1hZGFnYXNjYXIsIE1hbGF3aSwgTWF1cml0aXVzLCBTdWRhbiwgWmFtYmlhIGFuZCBaaW1iYWJ3ZSksIHdpdGggUndhbmRhIGFuZCBCdXJ1bmRpIGpvaW5pbmcgdGhlIEZUQSBpbiAyMDA0LCB0aGUgQ29tb3JvcyBhbmQgTGlieWEgaW4gMjAwNiwgU2V5Y2hlbGxlcyBpbiAyMDA5IGFuZCBUdW5pc2lhIGFuZCBTb21hbGlhIGluIDIwMTguDQoxOTkzIChEZWMgMjApOiBPSENIUiBmb3JtZWQuIFRoZSBPZmZpY2Ugb2YgdGhlIFVuaXRlZCBOYXRpb25zIEhpZ2ggQ29tbWlzc2lvbmVyIGZvciBIdW1hbiBSaWdodHMgKE9IQ0hSKSwgYSBVbml0ZWQgTmF0aW9ucyBhZ2VuY3kgdGhhdCB3b3JrcyB0byBwcm9tb3RlIGFuZCBwcm90ZWN0IHRoZSBodW1hbiByaWdodHMgdGhhdCBhcmUgZ3VhcmFudGVlZCB1bmRlciBpbnRlcm5hdGlvbmFsIGxhdyBhbmQgc3RpcHVsYXRlZCBpbiB0aGUgVW5pdmVyc2FsIERlY2xhcmF0aW9uIG9mIEh1bWFuIFJpZ2h0cyBvZiAxOTQ4Lg0KMTk5Mzp0aGUgMjR0aCBhbmQgbGFzdCBHTE9OQVNTIHNhdGVsbGl0ZSB3YXMgbGF1bmNoZWQgZm9ybWluZyB0aGUgd2hvbGUgbmF2aWdhdGlvbiBjb25zdGVsbGF0aW9uIHNpbWlsYXIgdG8gdGhhdCBvZiBVUydzIEdQUy4NCjE5OTM6IFNIQS0wIChhIGhhc2ggZnVuY3Rpb24pIHdhcyBwcm9wb3NlZCBieSBOSVNULCBNYXJ5bGFuZCwgVVNBIChGb3VuZGVkOiAxOTAxKS4gSXQgcHJvZHVjZXMgYSAxNjAtYml0IGhhc2ggdmFsdWUsIHRodXMgdGhlIGJydXRlLWZvcmNlIGNvbGxpc2lvbiBvciAgbmVhci1jb2xsaXNpb24gYXR0YWNrIHJlcXVpcmVzIE8oMl44MCkgY29tcHV0YXRpb24uIFdpdGhpbiA1IHllYXJzLCBpdCB3YXMgbWFkZSBjb2xsaXNpb24gYXR0YWNrZWQgYnkgQ2hhYmF1ZCBhbmQgSm91eCB3aXRoIHRoZSBhdHRhY2sgY29tcGxleGl0eSBvZiAyXjYxLg0KMTk5MzogW0NvYWxnYXRlIHNjYW1dIE9uIDIzcmQgQXByaWwgMjAxMywgdGhlIFN0YW5kaW5nIENvbW1pdHRlZSBvbiBDb2FsIGFuZCBTdGVlbCB0YWJsZWQgaW4gUGFybGlhbWVudCB0aGF0IGFsbCAxOTQgY29hbCBibG9ja3MgZGlzdHJpYnV0ZWQgYmV0d2VlbiAxOTkzIGFuZCAyMDA4IHdlcmUgYXVjdGlvbmVkIGluIGFuIHVuYXV0aG9yaXplZCBtYW5uZXIgYW5kIHRoZSBjb3VudHJ5IGxvc3QgUnMuMS44NiBsYWtoIGNyb3JlLi4gRm9ybWVyIFByaW1lIE1pbmlzdGVyIE1hbm1vaGFuIFNpbmdoLCBhbG9uZyB3aXRoIEt1bWFyIE1hbmdhbGFtIEJpcmxhIGFuZCBQLkMuIFBhcmFraCwgd2VyZSBhY2N1c2VkIGFuZCBzdW1tb25lZCBieSBhIHNwZWNpYWwgY291cnQuIFsyTCBDcm9yZV0uIENvbXB0cm9sbGVyIGFuZCBBdWRpdG9yIEdlbmVyYWwgb2YgSW5kaWEgdG9vayAyMCB5ZWFycyB0byBJRCBvbmUgb2YgdGhlIGJpZ2dlc3Qgc2NhbXMgaW4gSW5kaWFuIGhpc3RvcnkuDQoxOTkzOiBBZnRlciBQcmVzaWRlbnQgQmlsbCBDbGludG9uIHRvb2sgb2ZmaWNlIGluIDE5OTMsIGhvd2V2ZXIsIHRoZSBVLlMuIGVjb25vbXkgZW1iYXJrZWQgb24gYSBsb25nIGFuZCBzdHJvbmcgZXhwYW5zaW9uLCBtYWtpbmcgdGhlIDE5OTBzIGEgZ3JlYXQgZGVjYWRlIGZvciBBbWVyaWNhJ3MgbW9uZXksIG92ZXJhbGwuIA0KMTk5MzpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTW90aHJhKDE5OTIpDQoxOTkzOltTcGFjZV0gSGlwcGFyY29zLCBhIHNjaWVudGlmaWMgc2F0ZWxsaXRlIG9mIHRoZSBFdXJvcGVhbiBTcGFjZSBBZ2VuY3kgKEVTQSkgbGFzdGVkIGZvciA0IHllYXJzIGJlZm9yZSBnb2luZyBvdXQtb2Ytc2VydmljZS4NCjE5OTM6W1NwYWNlXVtSZXNlYXJjaF0gSW4gMTk5MywgRG9uIFBhZ2UgYXJndWVkIHRoYXQgaWYgYSBibGFjayBob2xlIHN0YXJ0cyBpbiBhIHB1cmUgcXVhbnR1bSBzdGF0ZSBhbmQgZXZhcG9yYXRlcyBjb21wbGV0ZWx5IGJ5IGEgdW5pdGFyeSBwcm9jZXNzLCB0aGUgdm9uIE5ldW1hbm4gZW50cm9weSBvZiB0aGUgSGF3a2luZyByYWRpYXRpb24gaW5pdGlhbGx5IGluY3JlYXNlcyBhbmQgdGhlbiBkZWNyZWFzZXMgYmFjayB0byB6ZXJvIHdoZW4gdGhlIGJsYWNrIGhvbGUgaGFzIGRpc2FwcGVhcmVkLiBUaGlzIGlzIGNhbGxlZCB0aGUgUGFnZSBjdXJ2ZS4NCjE5OTM6W0Jvb2tzXVtIaXN0b3J5XSBHcmVlbuKAmXMgRGljdGlvbmFyeSBvZiBTbGFuZyBpcyB0aGUgbGFyZ2VzdCBoaXN0b3JpY2FsIGRpY3Rpb25hcnkgb2YgRW5nbGlzaCBzbGFuZy4gV3JpdHRlbiBieSBKb25hdGhvbiBHcmVlbiBvdmVyIDE3IHllYXJzIGZyb20gMTk5MywgaXQgcmVhY2hlZCB0aGUgcHJpbnRlZCBwYWdlIGluIDIwMTAgaW4gYSB0aHJlZS12b2x1bWUgc2V0IGNvbnRhaW5pbmcgbmVhcmx5IDEwMCwwMDAgZW50cmllcyBzdXBwb3J0ZWQgYnkgb3ZlciA0MDAsMDAwIGNpdGF0aW9ucyBmcm9tIGMuIGFkIDEwMDAgdG8gdGhlIHByZXNlbnQgZGF5LiBUaGUgbWFpbiBmb2N1cyBvZiB0aGUgZGljdGlvbmFyeSBpcyB0aGUgY292ZXJhZ2Ugb2Ygb3ZlciA1MDAgeWVhcnMgb2Ygc2xhbmcgZnJvbSBjLiAxNTAwIG9ud2FyZHMuDQoxOTkzOltFbnZdW0Rpc2FzdGVyXSBTb3V0aCBBc2lhbiBtb25zb29uIGZsb29kcywgM2sgZGVhdGhzDQoxOTkzOltHZW9ncmFwaHldIFRoZSBsYXN0IG1ham9yIHNoaWZ0cyBpbiBFYXJ0aCdzIGF4aXMgd2VyZSBpbmZsdWVuY2VkIGJ5IGNsaW1hdGUgY2hhbmdlOiBhIDMxLjUtaW5jaCBzaGlmdCBiZXR3ZWVuIDE5OTMgYW5kIDIwMTAgd2FzIHByaW1hcmlseSBjYXVzZWQgYnkgZ3JvdW5kd2F0ZXIgcHVtcGluZywgYW5kIGEgY2hhbmdlIGluIHBvbGFyIGRyaWZ0IGRpcmVjdGlvbiBhcm91bmQgdGhlIDE5OTBzIHdhcyBsaW5rZWQgdG8gbWVsdGluZyBnbGFjaWVycyBhbmQgaWNlIHNoZWV0cyBkdWUgdG8gZ2xvYmFsIHdhcm1pbmcuIEVhcnRoJ3MgYXhpcyBhbHNvIHNoaWZ0ZWQgYnkgYWJvdXQgNi41IGluY2hlcyBpbiBNYXJjaCAyMDExIGFmdGVyIHRoZSBKYXBhbmVzZSBlYXJ0aHF1YWtlLCBjYXVzaW5nIHRoZSBwbGFuZXQgdG8gc3BpbiBzbGlnaHRseSBmYXN0ZXIuDQoxOTkzOltXaG9dIEluIDE5OTMsIEluZGlhIGNhbWUgaGVhcnRicmVha2luZ2x5IGNsb3NlIHRvIHdpbm5pbmcgaXRzIGZpcnN0IE1pc3MgVW5pdmVyc2UgY3Jvd24gd2l0aCB0aGUgc3R1bm5pbmcgYW5kIGdyYWNlZnVsIE5hbXJhdGEgU2hpcm9ka2FyLCB3aG8gaGFkIGVhcmxpZXIgd29uIHRoZSBGZW1pbmEgTWlzcyBJbmRpYSB0aXRsZS4gUmVwcmVzZW50aW5nIEluZGlhIGF0IHRoZSBNaXNzIFVuaXZlcnNlIHBhZ2VhbnQgaGVsZCBpbiBNZXhpY28gQ2l0eSwgTmFtcmF0YSB3YXMgYSBzdHJvbmcgY29udGVuZGVy4oCUZWxlZ2FudCBpbiBoZXIgZ293biwgcG9pc2VkIGluIGludGVydmlld3MsIGFuZCBhIGZhbiBmYXZvcml0ZS4gU2hlIGVhc2lseSBtYWRlIGl0IHRvIHRoZSBUb3AgNiwgYW5kIGhlciBjaGFuY2VzIG9mIHdpbm5pbmcgbG9va2VkIGluY3JlZGlibHkgaGlnaC4gQnV0IHRoZW4gY2FtZSB0aGUgZmluYWwgcXVlc3Rpb246IOKAnElmIHlvdSBjb3VsZCBiZSBib3JuIGFzIGFueSBoaXN0b3JpY2FsIGZpZ3VyZSwgd2hvIHdvdWxkIGl0IGJlIGFuZCB3aHk/4oCdIFdoaWxlIG90aGVyIGNvbnRlc3RhbnRzIG5hbWVkIGdsb2JhbCBpY29ucyBsaWtlIE1vdGhlciBUZXJlc2EgYW5kIFByaW5jZXNzIERpYW5hLCBOYW1yYXRhIGdhdmUgYW4gaG9uZXN0LCBwZXJzb25hbCBhbnN3ZXLigJRzaGUgc2FpZCBzaGUgd291bGQgYmUgYm9ybiBhcyBoZXJzZWxmIG9yIHNvbWVvbmUgY2xvc2UgdG8gaGVyLCBiZWNhdXNlIHNoZSBiZWxpZXZlZCBpbiBsaXZpbmcgbGlmZSB3aXRoIHRydXRoIGFuZCBpbmRpdmlkdWFsaXR5LiBJdCB3YXMgYSBiZWF1dGlmdWwsIGdyb3VuZGVkIGFuc3dlcuKAlGJ1dCBub3QgdGhlIGtpbmQgb2YgZ3JhbmQsIGlkZWFsaXN0aWMgcmVzcG9uc2UgdGhlIGp1ZGdlcyB3ZXJlIGV4cGVjdGluZy4gVGhhdCBvbmUgbW9tZW50IG9mIHRydXRoLCBtYW55IGJlbGlldmUsIGNvc3QgaGVyIHRoZSBjcm93biwgYW5kIEluZGlhIGhhZCB0byB3YWl0IGFub3RoZXIgeWVhciBiZWZvcmUgU3VzaG1pdGEgU2VuIGJyb3VnaHQgdGhlIE1pc3MgVW5pdmVyc2UgdGl0bGUgaG9tZSBpbiAxOTk0LiBTdGlsbCwgTmFtcmF0YeKAmXMgYW5zd2VyIGJlY2FtZSBpY29uaWPigJRub3QgYmVjYXVzZSBpdCB3b24sIGJ1dCBiZWNhdXNlIGl0IHdhcyByZWFsLCBtYXJraW5nIGEgcmFyZSBpbnN0YW5jZSB3aGVyZSBob25lc3R5IHN0b29kIHRhbGxlciB0aGFuIGRpcGxvbWFjeS4NCjE5OTM6W0F2aWF0aW9uXVtFeHRyZW1lXVtXaG9dIFRoZSBIZXJic3QgbWFuZXV2ZXIgd2FzIGZpcnN0IHN1Y2Nlc3NmdWxseSBwZXJmb3JtZWQgb24gQXByaWwgMjksIDE5OTMsIGJ5IGFuIFgtMzEgYWlyY3JhZnQuIE5hbWVkIGFmdGVyIFdvbGZnYW5nIEhlcmJzdCwgYSBkZXZlbG9wZXIgb2YgcG9zdC1zdGFsbCB0ZWNobm9sb2d5IGZvciBNZXNzZXJzY2htaXR0LULDtmxrb3ctQmxvaG0gKE1CQiksIHRoaXMsIHBvc3Qtc3RhbGwgbWFuZXV2ZXIgZW5hYmxlcyBhIGZpZ2h0ZXIgdG8gbWFrZSBhIHJhcGlkIDE4MMKwIHR1cm4gd2l0aGluIGEgbWluaW1hbCByYWRpdXMuIA0KDQoxOTk04oCTMTk5NTpbVVNdW0dlb1BvbGl0aWNzXSBvY2N1cGF0aW9uIG9mIEhhaXRpLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgRXVyb3BlYW4gRWNvbm9taWMgQXJlYSwgYWJicmV2aWF0ZWQgYXMgRUVBLCBjb25zaXN0cyBvZiB0aGUgTWVtYmVyIFN0YXRlcyBvZiB0aGUgRXVyb3BlYW4gVW5pb24gKEVVKSBhbmQgdGhyZWUgY291bnRyaWVzIG9mIHRoZSBFdXJvcGVhbiBGcmVlIFRyYWRlIEFzc29jaWF0aW9uIChFRlRBKSAoSWNlbGFuZCwgTGllY2h0ZW5zdGVpbiBhbmQgTm9yd2F5OyBleGNsdWRpbmcgU3dpdHplcmxhbmQpLiBUaGUgQWdyZWVtZW50IG9uIHRoZSBFRUEgZW50ZXJlZCBpbnRvIGZvcmNlIG9uIDEgSmFudWFyeSAxOTk0LiANCjE5OTQ6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEV1cm9wZWFuIEVjb25vbWljIEFyZWEgKEVFQSkgd2FzIGVzdGFibGlzaGVkIG9uIDEgSmFudWFyeSAxOTk0LiBUaGUgYWdyZWVtZW50IGxpbmtzIHRoZSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aHJlZSBFRlRBIHN0YXRlc+KAlEljZWxhbmQsIExpZWNodGVuc3RlaW4sIGFuZCBOb3J3YXnigJRpbnRvIGEgc2luZ2xlIGludGVybmFsIG1hcmtldCwgYWxsb3dpbmcgZm9yIHRoZSBmcmVlIG1vdmVtZW50IG9mIGdvb2RzLCBwZXJzb25zLCBzZXJ2aWNlcywgYW5kIGNhcGl0YWwuIA0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBOQUZUQSwgdGhlIE5vcnRoIEFtZXJpY2FuIEZyZWUgVHJhZGUgQWdyZWVtZW50LCB3YXMgYSAxOTk0IGFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzLCBDYW5hZGEsIGFuZCBNZXhpY28gdG8gZWxpbWluYXRlIHRyYWRlIGJhcnJpZXJzIGFuZCBwcm9tb3RlIGZyZWUgdHJhZGUgaW4gTm9ydGggQW1lcmljYS4gSXQgZmFjaWxpdGF0ZWQgdGhlIG1vdmVtZW50IG9mIGdvb2RzIGFuZCBzZXJ2aWNlcyBhbmQgZXN0YWJsaXNoZWQgYSBsYXJnZSB0cmFkZSBibG9jLiBJbiBKdWx5IDIwMjAsIE5BRlRBIHdhcyByZXBsYWNlZCBieSB0aGUgVW5pdGVkIFN0YXRlcy1NZXhpY28tQ2FuYWRhIEFncmVlbWVudCAoVVNNQ0EpLCB3aGljaCBtb2Rlcm5pemVkIGFuZCBlbmhhbmNlZCB0aGUgdHJlYXR5IGZvciBhIGNvbnRlbXBvcmFyeSBlY29ub215Lg0KMTk5NDpbUy5BZnJpY2FdW1NvY2lhbGlzbV0gRmlyc3QgZnJlZSBlbGVjdGlvbnMgaW4gU291dGggQWZyaWNhOyBOZWxzb24gTWFuZGVsYQ0KMTk5NDpbUmVzZWFyY2hdW3NwYWNlXSBDYXJsIFNhZ2FuIGNvbmNlZGVkIHRoYXQgdGhpcyBhcHByb2FjaCB3b3VsZCBub3Qgd29yayBiZWNhdXNlIHRoZSBhdG1vc3BoZXJlIG9mIFZlbnVzIGlzIGZhciBkZW5zZXIgKDkwIGJhcnMpIHRoYW4gd2hhdCB3YXMgdW5kZXJzdG9vZCBpbiAxOTYxIChhIGZldyBiYXJzKSwgbWVhbmluZyB0aGUgY2FyYm9uIHdvdWxkIGp1c3QgYmUgb3hpZGl6ZWQgYmFjayBpbnRvIENPMi4NCjE5OTQ6W0NvbXB1dGluZ11bUXVhbnR1bV0gUGV0ZXIgU2hvciBkaXNjb3ZlcmVkIGFuIGFsZ29yaXRobSAoU2hvcidzIGFsZ29yaXRobSkgdGhhdCBjb3VsZCBmYWN0b3IgbGFyZ2UgbnVtYmVycyBpbiBwb2x5bm9taWFsIHRpbWUgb24gYSBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCB3b3VsZCBicmVhayB0aGUgc2VjdXJpdHkgb2YgbWFueSBjcnlwdG9ncmFwaGljIHNjaGVtZXMuIA0KMTk5NDpbQ29tcHV0aW5nXVtRdWFudHVtXSBQZXRlciBTaG9yIGFuZCBEb24gQ29wcGVyc21pdGggZmlndXJlZCBvdXQgaG93IHRvIHRha2UgYSBRdWFudHVtIEZvdXJpZXIgVHJhbnNmb3JtLg0KMTk5NDpUaGUgcHJvYmxlbSB3aXRoIHRoZSBwYXBlciBwdWJsaXNoZWQgZWFybGllciB0aGlzIG1vbnRoIHdhcyBpdHMgcmVsaWFuY2Ugb24gU2Nobm9ycidzIGFsZ29yaXRobSAobm90IHRvIGJlIGNvbmZ1c2VkIHdpdGggU2hvcuKAmXMgYWxnb3JpdGhtKSwgd2hpY2ggd2FzIGRldmVsb3BlZCBpbiAxOTk0LiBTY2hub3Jy4oCZcyBhbGdvcml0aG0gaXMgYSBjbGFzc2ljYWwgY29tcHV0YXRpb24gYmFzZWQgb24gbGF0dGljZXMsIHdoaWNoIGFyZSBtYXRoZW1hdGljYWwgc3RydWN0dXJlcyB0aGF0IGhhdmUgbWFueSBhcHBsaWNhdGlvbnMgaW4gY29uc3RydWN0aXZlIGNyeXB0b2dyYXBoeSBhbmQgY3J5cHRhbmFseXNpcy4gVGhlIGF1dGhvcnMgd2hvIGRldmlzZWQgU2Nobm9ycuKAmXMgYWxnb3JpdGhtIHNhaWQgaXQgY291bGQgZW5oYW5jZSB0aGUgdXNlIG9mIHRoZSBoZXVyaXN0aWMgcXVhbnR1bSBvcHRpbWl6YXRpb24gbWV0aG9kIGNhbGxlZCBRQU9BLg0KMTk5NCAoSmFuIDEpOiBbR2VvUG9saXRpY3NdIFRoZSBOb3J0aCBBbWVyaWNhbiBGcmVlIFRyYWRlIEFncmVlbWVudCAoTkFGVEEpIHdhcyBhbiBhZ3JlZW1lbnQgc2lnbmVkIGJ5IENhbmFkYSwgTWV4aWNvLCBhbmQgdGhlIFVuaXRlZCBTdGF0ZXMgdGhhdCBjcmVhdGVkIGEgdHJpbGF0ZXJhbCB0cmFkZSBibG9jIGluIE5vcnRoIEFtZXJpY2EuIFRoZSBhZ3JlZW1lbnQgY2FtZSBpbnRvIGZvcmNlIG9uIEphbnVhcnkgMSwgMTk5NCwgYW5kIHN1cGVyc2VkZWQgdGhlIDE5ODggQ2FuYWRh4oCTVW5pdGVkIFN0YXRlcyBGcmVlIFRyYWRlIEFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzIGFuZCBDYW5hZGEuIFRoZSBOQUZUQSB0cmFkZSBibG9jIGZvcm1lZCBvbmUgb2YgdGhlIGxhcmdlc3QgdHJhZGUgYmxvY3MgaW4gdGhlIHdvcmxkIGJ5IGdyb3NzIGRvbWVzdGljIHByb2R1Y3QuDQoxOTk0OltUZWNobm9sb2d5XVtCdXNpbmVzc11bVVNdW0NvbXB1dGluZ10gVGhlIERlbGwgTGF0aXR1ZGUgc2VyaWVzIGlzIGEgbGluZSBvZiBsYXB0b3AgY29tcHV0ZXJzIG1hbnVmYWN0dXJlZCBhbmQgc29sZCBieSBBbWVyaWNhbiBjb21wYW55IERlbGwuIEl0IGlzIGEgYnVzaW5lc3Mtb3JpZW50ZWQgbGluZSwgYWltZWQgYXQgY29ycG9yYXRlIGVudGVycHJpc2VzLCBoZWFsdGhjYXJlLCBnb3Zlcm5tZW50LCBhbmQgZWR1Y2F0aW9uIG1hcmtldHM7IHVubGlrZSB0aGUgSW5zcGlyb24gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBpbmRpdmlkdWFsIGN1c3RvbWVycywgYW5kIHRoZSBWb3N0cm8gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBzbWFsbGVyIGJ1c2luZXNzZXMuIFRoZSBMYXRpdHVkZSBkaXJlY3RseSBjb21wZXRlcyB3aXRoIHRoZSBMZW5vdm8gVGhpbmtQYWQgYW5kIHRoZSBFbGl0ZUJvb2sgc2VyaWVzIGJ5IEhQLiBBZGRpdGlvbmFsbHksIHRoZSAiUnVnZ2VkIChFeHRyZW1lKSIsICJYRlIiIGFuZCAiQVRHIiBtb2RlbHMgY29tcGV0ZSBwcmltYXJpbHkgd2l0aCBQYW5hc29uaWMncyBUb3VnaGJvb2sgbGluZSBvZiAicnVnZ2VkIiBsYXB0b3BzLg0KMTk5NDogU3VzaG1pdGEgU2VuIGJlY2FtZSBNaXNzIFVuaXZlcnNlLg0KMTk5NDogVGhlIEFubmFscyBvZiBJbXByb2JhYmxlIFJlc2VhcmNoIGlzIGEgYmktbW9udGhseSBtYWdhemluZSBkZXZvdGVkIHRvIHNjaWVudGlmaWMgaHVtb3IsIGluIHRoZSBmb3JtIG9mIGEgc2F0aXJpY2FsIHRha2Ugb24gdGhlIHN0YW5kYXJkIGFjYWRlbWljIGpvdXJuYWwuDQoxOTk0OiBMaW5kb24gTGVhZGVyIG9mIExhbmRvciBBc3NvY2lhdGVzLCBvZiBTYW4gRnJhbmNpc2NvIGRlc2lnbmVkIHdvcmRtYXJrcyBmb3IgRmVkRXgncyB2YXJpb3VzIE9wLXVuaXQuIEZlZEV44oCZcyBwdWJsaWMtcmVsYXRpb25zIGZpcm0gd2FudGVkIHRvIGhpZ2hsaWdodCB0aGUgYXJyb3cgc28gaXQgd291bGQgYmUgb2J2aW91cy4gQnV0IGhlIGZvdWdodCB0aGVtIG9uIHRoYXQg4oCUIGhlIHRob3VnaHQgaXQgd291bGQgYmUgb3ZlcmtpbGwuIFRoZXJl4oCZcyBzb21ldGhpbmcgYWJvdXQgbWFraW5nIHBlb3BsZSBkaXNjb3ZlciBzb21ldGhpbmcgb24gdGhlaXIgb3duIHRoYXTigJlzIGEgbG90IG1vcmUgcG93ZXJmdWwgdGhhbiBpdGFsaWNpemluZyBpdCB0byBtYWtlIHlvdXIgcG9pbnQuDQoxOTk0OiBTY2lsYWIgMS4xLCB0aGUgZmlyc3QgcmVsZWFzZWQgdmVyc2lvbiBvZiBTY2lsYWIsIHdhcyBwdXQgb24gYW5vbnltb3VzIGZ0cCBzaXRlLg0KMTk5NDogVGhlIGNvbmNlcHQgb2YgYSBjYWbDqSB3aXRoIGZ1bGwgSW50ZXJuZXQgYWNjZXNzIChhbmQgdGhlIG5hbWUgQ3liZXJjYWbDqSkgd2FzIGludmVudGVkIGluIGVhcmx5IGJ5ICBhIEJyaXRpc2ggdGVjaG5vbG9neSBhcnRpc3QsIEl2YW4gUG9wZS4NCjE5OTQ6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIGx1cmVkIG9uZSBvZiBEYXdvb2QncyBmYXZvcml0ZSAibmFyY28tdGVycm9yaXN0IiBQaGlsbHUgS2hhbiBhbGlhcyBCYWtodGl5YXIgQWhtZWQgS2hhbiB0byBhIGhvdGVsIHJvb20gaW4gQmFuZ2tvaywgd2hlcmUgaGUgd2FzIHRvcnR1cmVkIHRvIGRlYXRoLCBoYXZpbmcgYmVlbiBiZXRyYXllZCBieSBoaXMgY2xvc2VzdCBhaWRlIGFuZCBzaWRla2ljayBNYW5nZXNoICJNYW5neWEiIFBhd2FyLiBELUNvbXBhbnkncyBTaGFyYWQsIHVzZWQgaGlzIGxpbmtzIHdpdGggTXVtYmFpLWJhc2VkIGhvdGVsaWVyIFZpbm9kIGFuZCBBLiBNaXNocmEgdG8gdHJhY2sgZG93biBSYWphbiBpbiBCYW5na29rLiBSYWphbidzIGhpdG1hbiBSb2hpdCBWYXJtYSBhbmQgaGlzIHdpZmUgc2hvdCBieSBELUNvbXBhbnkuDQoxOTk0KEp1bCAxNik6W1NwYWNlXSBGcm9tIEp1bHkgMTYgdG8gMjIsIDE5OTQsIGVub3Jtb3VzIHBpZWNlcyBvZiB0aGUgY29tZXQgU2hvZW1ha2VyLUxldnkgOSAoU0w5KSwgZGlzY292ZXJlZCBqdXN0IGEgeWVhciBwcmlvciwgY3Jhc2hlZCBpbnRvIEp1cGl0ZXIgb3ZlciBzZXZlcmFsIGRheXMsIGNyZWF0aW5nIGh1Z2UsIGRhcmsgc2NhcnMgaW4gdGhlIHBsYW5ldCdzIGF0bW9zcGhlcmUgYW5kIGxvZnRpbmcgc3VwZXJoZWF0ZWQgcGx1bWVzIGludG8gaXRzIHN0cmF0b3NwaGVyZS4NCjE5OTQgKE9jdCk6IElUUE8gYW5kIEdvSSdzIE5JQyBqb2ludGx5IHNldC11cCB0aGUgTmF0aW9uYWwgQ2VudHJlIGZvciBUcmFkZSBJbmZvcm1hdGlvbiAoTkNUSSkgYXQgUHJhZ2F0aSBNYWlkYW4uDQoxOTk0IChOb3YgMSwgMTU6MDEgSVNUKTpbU3BhY2VdW1N1bl0gVGhlIEdsb2JhbCBHZW9zcGFjZSBTY2llbmNlICdXaW5kJyBzYXRlbGxpdGUgaXMgYSBOQVNBIHNjaWVuY2Ugc3BhY2VjcmFmdCBkZXNpZ25lZCB0byBzdHVkeSByYWRpbyB3YXZlcyBhbmQgcGxhc21hIHRoYXQgb2NjdXIgaW4gdGhlIHNvbGFyIHdpbmQgYW5kIGluIHRoZSBFYXJ0aCdzIG1hZ25ldG9zcGhlcmUuIA0KMTk5NCAoRGVjIDMpOiBTb255J3MgUGxheVN0YXRpb24gKGEgdmlkZW8gZ2FtZSBjb25zb2xlKSB3YXMgaW50cm9kdWNlZCB0byB0aGUgd29ybGQgZnJvbSBNaW5hdG8sIFRva3lvIChKYXBhbikuDQoxOTk0OiBXWFlDLSBmaXJzdCBpbnRlcm5ldCByYWRpbyBzdGF0aW9uIGJyb2FkY2FzdC4NCjE5OTQ6IE1lbW9yeSBjYXJkcyB3ZXJlIGludHJvZHVjZWQgaW4gdGhlIGNvbnN1bWVyIGVsZWN0cm9uaWNzIG1hcmtldC4NCjE5OTQgKEF1Zyk6IElUUE8ncyAxc3QgRGVsaGkgQm9vayBGYWlyIGF0ICBIYWxsIDggdG8gMTIgb2YgUHJhZ2F0aSBNYWlkYW4sIE5ldyBEZWxoaS4gVGhlIHRpbWluZ3Mgb2YgZmFpciBhcmUgZnJvbSAxMC4wMCBhbSB0byA4LjAwIHBtIChlbnRyeSB0byBmYWlyIHdpbGwgY2xvc2UgYXQgNy4zMCBwbSkuDQoxOTk0IChTZXApOiBUaGUgQ09OQ0VSVCBzb2Z0d2FyZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgaW1wbGVtZW50ZWQgYXQgYWxsIG9mIHRoZSBmaXZlIFBSUycgc2l0ZXMgU2VjdW5kZXJhYmFkIGluIFNlcHQuIDE5OTQsIE5ldyBEZWxoaSBvbiBTZXB0LiAxOTk2LCBDYWxjdXR0YSBvbiAxNHRoIEp1bmUgMTk5OCwgTXVtYmFpIG9uIDExdGggSmFuIDE5OTkgYW5kIENoZW5uYWkgb24gMTJ0aCBBcHJpbCAxOTk5Lg0KMTk5NDogdGhlIDI0dGggYW5kIHRoZSBsYXN0IEdQUyBzYXRlbGxpdGUgd2FzIGxhdW5jaGVkIGluIFVTLg0KMTk5NDogVGhlIHdvcmQgVGFsaWJhbiBpcyBQYXNodG8sINi32KfZhNio2KfZhiDhua3EgWxpYsSBbiwgbWVhbmluZyAic3R1ZGVudHMiLCB0aGUgcGx1cmFsIG9mIOG5rcSBbGliLiBBZnRlciB0aGUgU292aWV0IFVuaW9uIGludGVydmVuZWQgYW5kIG9jY3VwaWVkIEFmZ2hhbmlzdGFuIGluIDE5NzksIElzbGFtaWMgbXVqYWhpZGVlbiBmaWdodGVycyBlbmdhZ2VkIGluIHdhciB3aXRoIHRob3NlIFNvdmlldCBmb3JjZXMsIHdoaWNoIGxhaWQgdGhlIGZvdW5kYXRpb24gb2YgcG9saXRpY2FsIG1vdmVtZW50IGFuZCBtaWxpdGFyeSBvcmdhbml6YXRpb24gbmFtZWQgVGFsaWJhbi4NCjE5OTQ6IEFiZHVsIEthcmVlbSBUZWxnaSBhY3F1aXJlZCB0aGUgbGljZW5zZSBmb3Igc2VsbGluZyBzdGFtcCBwYXBlciBhbmQgb3BlbmVkIGFuIG9mZmljZSBpbiBNdW1iYWkuIEFmdGVyIHRoYXQsIGhlIHN0YXJ0ZWQgcHJpbnRpbmcgc3RhbXAgcGFwZXIgaW4gTmFzaGlrLiBXaXRoIHNvbWUgYWdlbnRz4oCZIGhlbHAsIGhlIHN0YXJ0cyBzZWxsaW5nIGZha2Ugc3RhbXAgcGFwZXIgaW4gYnVsayB0byBiYW5rcywgaW5zdXJhbmNlIGNvbXBhbmllcywgc3RvY2sgYnJva2VyYWdlIGZpcm1zLCBhbmQgY29ycG9yYXRlcy4gSW4gMjAwMyB0aGUgVGVsZ2kgc2NhbSB3YXMgdW5mb2xkZWQ7IHRoZSBmaWd1cmUgaW4gdGhlIG1pbmQgb2Ygc2VjdXJpdHkgYW5kIGludGVsbGlnZW5jZSBhZ2VuY2llcyB3YXMgdXAgdG8gUnMuMjBrIENyb3JlDQoxOTk0OiBbR2VvUG9saXRpY3NdIEludGVybmF0aW9uYWwgQXNzb2NpYXRpb24gb2YgR2VuZGFybWVyaWVzIGFuZCBQb2xpY2UgRm9yY2VzIHdpdGggTWlsaXRhcnkgU3RhdHVzIChjb21tb25seSBrbm93biBhcyBGSUVQIGZvciBGcmFuY2UtSXRhbGlhLUVzcGHDsWEtUG9ydHVnYWwsIHRoZSBmaXJzdCBmb3VyIG1lbWJlcnMpIGlzIGFuIGFzc29jaWF0aW9uIG9mIG5hdGlvbmFsIGdlbmRhcm1lcmllcyBvciBtaWxpdGFyeSBwb2xpY2UgZm9yY2VzLg0KMTk5NDpbQm9va10gUGFsZSBCbHVlIERvdDogQSBWaXNpb24gb2YgdGhlIEh1bWFuIEZ1dHVyZSBpbiBTcGFjZSBpcyBhIDE5OTQgYm9vayBieSB0aGUgYXN0cm9ub21lciBDYXJsIFNhZ2FuLiBJdCBpcyB0aGUgc2VxdWVsIHRvIFNhZ2FuJ3MgMTk4MCBib29rIENvc21vcyBhbmQgd2FzIGluc3BpcmVkIGJ5IHRoZSBmYW1vdXMgMTk5MCBQYWxlIEJsdWUgRG90IHBob3RvZ3JhcGgsIGZvciB3aGljaCBTYWdhbiBwcm92aWRlcyBhIHBvaWduYW50IGRlc2NyaXB0aW9uLiBJbiB0aGUgYm9vaywgU2FnYW4gbWl4ZXMgcGhpbG9zb3BoeSBhYm91dCB0aGUgaHVtYW4gcGxhY2UgaW4gdGhlIHVuaXZlcnNlIHdpdGggYSBkZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCBrbm93bGVkZ2UgYWJvdXQgdGhlIFNvbGFyIFN5c3RlbS4gSGUgYWxzbyBkZXRhaWxzIGEgaHVtYW4gdmlzaW9uIGZvciB0aGUgZnV0dXJlLg0KMTk5NDpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTWVjaGFnb2R6aWxsYSBJSSgxOTkzKQ0KMTk5NDpbQ2luZW1hXSBUaGUgQXBwbGUoMTk4MCkNCjE5OTQ6W0NpbmVtYV0gVGhlIEF0bGFudGlzIEludGVyY2VwdG9ycygxOTgzKQ0KMTk5NDpbTW50bmdnXSBJbiAxOTk0LCBNYXJrIFdoZXR1IHN1bW1pdHRlZCBNdCBFdmVyZXN0IHdpdGggTWlrZSBSZWluYmVyZ2VyLiBCdXQgYWZ0ZXIgYSBmcmVlemluZyBuaWdodCwgV2hldHUgZmFjZWQgYSBoYXJyb3dpbmcgY2hvaWNlOiBsZWF2ZSBoaXMgZnJpZW5kIG9yIHJlbWFpbiBmb3JldmVyLiBUaGUgRmF0YWwgR2FtZSAoMTk5NykNCjE5OTQ6W1RvdXJpc21dIFRoZSBBZHZlbnR1cmUgVG91ciBPcGVyYXRvcnMgQXNzb2NpYXRpb24gb2YgSW5kaWEgKEFUT0FJKSB3YXMgZm91bmRlZCBpbiAxOTk0LiBJdCB3YXMgZXN0YWJsaXNoZWQgYnkgYSBncm91cCBvZiB0cmF2ZWwgdHJhZGUgYWR2ZW50dXJlcnMgd2hvIGFpbWVkIHRvIGNyZWF0ZSBhIHN0cm9uZyBzdXBwb3J0IG5ldHdvcmsgZm9yIEluZGlhbiBhZHZlbnR1cmUgdG91ciBvcGVyYXRvcnMuIA0KDQoxOTk1IChNYXkgMTkpOiBbUmVzZWFyY2hdW1NwYWNlXSB0d28gc2NpZW50aXN0cyBhdCBDYWwgUG9seSBzaG93ZWQgdGhhdCBiYWN0ZXJpYSBjYW4gc3Vydml2ZSB3aXRob3V0IGFueSBtZXRhYm9saXNtIGZvciBhdCBsZWFzdCAyNSBtaWxsaW9uIHllYXJzOyBwcm9iYWJseSB0aGV5IGFyZSBpbW1vcnRhbC4NCjI0IE5vdmVtYmVyIDE5OTU6IFRoZSBOZXcgWW9yayBUaW1lcyBkZXNjcmliZWQgYmFjdGVyaWEgdGhhdCBjYW4gc3Vydml2ZSByYWRpYXRpb24gbXVjaCBzdHJvbmdlciB0aGFuIGFueSB0aGF0IEVhcnRoIGhhcyBldmVyIGV4cGVyaWVuY2VkLg0KV2UgYXJlIGNhbGxpbmcgdGhlIHVuaW9uIG9mIExvdmVsb2NrJ3MgR2FpYSB3aXRoIEhveWxlIGFuZCBXaWNrcmFtYXNpbmdoZSdzIGV4cGFuZGVkIHRoZW9yeSBvZiBwYW5zcGVybWlhIENvc21pYyBBbmNlc3RyeS4gVGhpcyBhY2NvdW50IG9mIGV2b2x1dGlvbiBhbmQgdGhlIG9yaWdpbiBvZiBsaWZlIG9uIEVhcnRoIGlzIHByb2ZvdW5kbHkgZGlmZmVyZW50IGZyb20gdGhlIHByZXZhaWxpbmcgc2NpZW50aWZpYyBwYXJhZGlnbS4gSXQgY2hhbGxlbmdlcyBub3QgbWVyZWx5IHRoZSBhbnN3ZXJzIGJ1dCB0aGUgcXVlc3Rpb25zIHRoYXQgYXJlIHBvcHVsYXIgdG9kYXkuIENvc21pYyBBbmNlc3RyeSByZXF1aXJlcyB0aGF0IGxpZmUgY2FuIG9ubHkgZGVzY2VuZCBmcm9tIGFuY2VzdG9ycyBhdCBsZWFzdCBhcyBoaWdobHkgZXZvbHZlZCBhcyBpdHNlbGYsIGFuZCB0aGF0IHRoZXJlIGNhbiBiZSBubyBvcmlnaW4gb2YgbGlmZSBmcm9tIG5vbmJpb2xvZ2ljYWwgbWF0dGVyLiBXaXRob3V0IHN1cGVybmF0dXJhbCBpbnRlcnZlbnRpb24sIHRoZXJlZm9yZSwgd2UgY29uY2x1ZGUgdGhhdCBsaWZlIG11c3QgaGF2ZSBhbHdheXMgZXhpc3RlZC4gQWx0aG91Z2ggdGhlc2UgY29uY2x1c2lvbnMgY3V0IGFjcm9zcyB0aGUgYm91bmRhcmllcyBiZXR3ZWVuIHNjaWVuY2UsIHBoaWxvc29waHksIGFuZCByZWxpZ2lvbiwgd2UgYmVsaWV2ZSB0aGV5IGFyZSBncm91bmRlZCBpbiBnb29kIGV2aWRlbmNlLiBBbmQgbmV3IGRhdGEgdGhhdCBzdXBwb3J0IG1hbnkgYXNwZWN0cyBvZiBDb3NtaWMgQW5jZXN0cnkgYXJlIGNvbWluZyBpbiByYXBpZGx5LiBJbiB0aGUgZm9sbG93aW5nIHBhZ2VzIHdlIHdpbGwgZXhwbGFpbiBob3cgdGhlc2UgYW5kIG90aGVyIHJlY2VudCBkZXZlbG9wbWVudHMgc3VwcG9ydCBDb3NtaWMgQW5jZXN0cnk6DQoNCjE5OTU6IEFOU0VUIHNvbGQgdG8gQU9MLCB3aG8gIG5vdyBydW5zIGl0Lg0KMTk5NSAoTWFyKTogRGVwdC4gb2YgSW5kaWFuIE1lZGljaW5lIGFuZCBIb21lb3BhdGh5IGZvdW5kZWQuDQoxOTk1IChNYXIgMjQpOltSZXNlYXJjaF0gUmVtb3RlbHkgT3BlcmF0ZWQgVmVoaWNsZSBLQUlLTyByZWFjaGVkIHRoZSBkZWVwZXN0IGFyZWEgb2YgdGhlIE1hcmlhbmEgVHJlbmNoIGFuZCBtYWRlIHRoZSBkZWVwZXN0IGRpdmluZyByZWNvcmQgb2YgMTAsOTExIG0gKDM1LDc5NyBmdDsgNSw5NjYgZmF0aG9tcykgDQoxOTk1OiBwaG9uZSBjYWxsIGNvc3RpbmcgUnMuIDE2IHBlciBtaW4uDQoxOTk1OltHYW1pbmddIFZpcnR1YSBDb3AgMiBpcyBhIGxpZ2h0IGd1biBzaG9vdGVyIGFyY2FkZSBnYW1lLCByZWxlYXNlZCBpbiAxOTk1IGFuZCBkZXZlbG9wZWQgaW50ZXJuYWxseSBhdCBTZWdhIGJ5IHRoZWlyIEFNMiBzdHVkaW8gKFl1IFN1enVraSkuIEl0IHdhcyBwb3J0ZWQgdG8gdGhlIFNlZ2EgU2F0dXJuIGluIDE5OTYuIEl0IHdhcyByZWxlYXNlZCBvbiBQQyBpbiAxOTk3IGFuZCBTZWdhIERyZWFtY2FzdCBpbiAyMDAwLiBJdCB3YXMgbGF0ZXIgYnVuZGxlZCB3aXRoIFZpcnR1YSBDb3AgaW4gVmlydHVhIENvcDogRWxpdGUgRWRpdGlvbiBmb3IgUGxheVN0YXRpb24gMiBpbiAyMDAyLg0KMTk5NSAoQXByIDEpOltSZXNlYXJjaF0gUGlsbGFycyBvZiBDcmVhdGlvbiBpcyBhIHBob3RvZ3JhcGggdGFrZW4gYnkgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgb2YgZWxlcGhhbnQgdHJ1bmtzIG9mIGludGVyc3RlbGxhciBnYXMgYW5kIGR1c3QgaW4gdGhlIEVhZ2xlIE5lYnVsYSwgaW4gdGhlIFNlcnBlbnMgY29uc3RlbGxhdGlvbiwgc29tZSA2LDUwMOKAkzcsMDAwIGxpZ2h0LXllYXJzICgyLDAwMOKAkzIsMTAwIHBjOyA2MeKAkzY2IEVtKSBmcm9tIEVhcnRoLg0KMTk5NSAoQXByIDEpOiBJQUFJIGFuZCBOQUEgd2VyZSBtZXJnZWQgYnkgYW4gQWN0IG9mIFBhcmxpYW1lbnQgYW5kIHdhcyBuYW1lZCBhcyBBaXJwb3J0cyBBdXRob3JpdHkgb2YgSW5kaWEgKEFBSSkuIFRoaXMgbmV3IG9yZ2FuaXNhdGlvbiB3YXMgdG8gYmUgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nLCB1cGdyYWRpbmcsIG1haW50YWluaW5nIGFuZCBtYW5hZ2luZyBjaXZpbCBhdmlhdGlvbiBpbmZyYXN0cnVjdHVyZSBib3RoIG9uIHRoZSBncm91bmQgYW5kIGFpciBzcGFjZSBpbiB0aGUgY291bnRyeS4NCjE5OTUgKEFwciAyMSk6W0NyaW1lXVtJbmRpYV0gQmFibG9vIHBpY2tlZCB1cCBieSB0aGUgU2luZ2Fwb3JlIGFpcnBvcnQgcG9saWNlIGZvciB0cmF2ZWxsaW5nIG9uIGZha2UgcGFzc3BvcnQuIEhlIHdhcyBzdGF5aW5nIGluIER1YmFpLg0KMTk5NSAoU2VwIDMwKTpbQ3JpbWVdW0luZGlhXSBTaW5nYXBvcmUgZXh0cmFkaXRlcyBJbmRpYSdzICdtb3N0LXdhbnRlZCBpbnRlci1zdGF0ZSBjcmltaW5hbCcgQmFibG9vIFNyaXZhc3RhdmEgKDMzWU8pDQoxOTk1IChOb3YgMzApOiBPcGVyYXRpb24gRGVzZXJ0IFN0b3JtIChGaXJzdCBJcmFxIFdhcilvZmZpY2lhbGx5IGVuZGVkLg0KMTk5NSAoTWF5IDMxKTpbQm9va11bTWlsaXRhcnldIEFkbWlyYWwgV2lsbGlhbSBILiBNY1JhdmVuJ3MgU3BlYyBPcHM6IENhc2UgU3R1ZGllcyBpbiBTcGVjaWFsIE9wZXJhdGlvbnMgV2FyZmFyZTogVGhlb3J5IGFuZCBQcmFjdGljZTsgU2VhIFN0b3JpZXM6IE15IExpZmUgaW4gU3BlY2lhbCBPcGVyYXRpb25zICgyMDE5LCBNYXkgMSk7IFRoZSBIZXJvIENvZGU6IExlc3NvbnMgTGVhcm5lZCBmcm9tIExpdmVzIFdlbGwgTGl2ZWQgKDIwMjEsIEFwciAxMykNCjE5OTU6IERyLiBIYW5kZSBhZnRlciBncmFkdWF0aW5nIGZyb20gSUlUIEtoYXJhZ3B1ciBjb25jZXB0dWFsaXplZCBTRUxDTyBJbmRpYSBkdXJpbmcgaGlzIFBoRCBvbiBzdXN0YWluYWJsZSBlbmVyZ3kgYXQgdGhlIFVuaXZlcnNpdHkgb2YgTWFzc2FjaHVzZXR0cy4gRHVyaW5nIGEgZmllbGQgdmlzaXQgdG8gdGhlIERvbWluaWNhbiBSZXB1YmxpYywgaGUgd2FzIHN1cnByaXNlZCB0byBzZWUgdGhlIHBvb3IgdXNpbmcgc29sYXIgbGlnaHRzLg0KMTk5NTogVGhlIEdvdmVybm1lbnQgb2YgSW5kaWEgYW5kIHRoZSBHb3Zlcm5tZW50IG9mIERlbGhpIGpvaW50bHkgc2V0IHVwIGEgY29tcGFueSBjYWxsZWQgdGhlIERlbGhpIE1ldHJvIFJhaWwgQ29ycG9yYXRpb24gKERNUkMpIG9uIDMgTWF5IDE5OTUsIHdpdGggRHIuIEUuIFNyZWVkaGFyYW4gYXMgdGhlIG1hbmFnaW5nIGRpcmVjdG9yLg0KMTk5NTogSW50J2wgR2FuZGhpIFBlYWNlIFByaXplIGxhdW5jaGVkLg0KMTk5NTogU2FjaGluIFIuIFRlbmR1a2FyIGFuZCBBbmphbGkgVGVuZHVsa2FyIHdlZGRlZCB0b2dldGhlci4NCjE5OTU6IC5tcDMgaW52ZW50ZWQuDQoxOTk1OltHYW1pbmddIFdoaWxlIEZJRkEgOTUgZGlkIG5vdCBhZGQgbXVjaCBvdGhlciB0aGFuIHRoZSBhYmlsaXR5IHRvIHBsYXkgd2l0aCBjbHViIHRlYW1zLCBGSUZBIDk2IHB1c2hlZCB0aGUgYm91bmRhcmllcy4gRm9yIHRoZSBmaXJzdCB0aW1lIHdpdGggcmVhbCBwbGF5ZXIgbmFtZXMgYnkgb2J0YWluaW5nIHRoZSBGSUZQcm8gbGljZW5zZSwgdGhlIFBsYXlTdGF0aW9uLCBQQywgMzJYIGFuZCBTZWdhIFNhdHVybiB2ZXJzaW9ucyB1c2VkIEVBJ3MgIlZpcnR1YWwgU3RhZGl1bSIgZW5naW5lLCB3aXRoIDJEIHNwcml0ZSBwbGF5ZXJzIG1vdmluZyBhcm91bmQgYSByZWFsLXRpbWUgM0Qgc3RhZGl1bS4NCjE5OTUgKEp1bCAxOCk6W0Jvb2tdIEJhcmFjayBPYmFtYSdzIERyZWFtcyBmcm9tIE15IEZhdGhlcjogQSBTdG9yeSBvZiBSYWNlIGFuZCBJbmhlcml0YW5jZTsgRHJlYW1zIGZyb20gTXkgRmF0aGVyOiBBIFN0b3J5IG9mIFJhY2UgYW5kIEluaGVyaXRhbmNlICgyMDA2LCBPY3QgMTcpOyBPZiBUaGVlIEkgU2luZzogQSBMZXR0ZXIgdG8gTXkgRGF1Z2h0ZXJzICgyMDEwLCBOb3YgMTYpOyBBIFByb21pc2VkIExhbmQgKDIwMjAsIE5vdiAxNykNCjE5OTUoSmFuIDEpOltFbnZdIFRoZSBBZ3JlZW1lbnQgb24gQWdyaWN1bHR1cmUgKEFvQSkgaXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgb2YgdGhlIFdvcmxkIFRyYWRlIE9yZ2FuaXphdGlvbi4gSXQgd2FzIG5lZ290aWF0ZWQgZHVyaW5nIHRoZSBVcnVndWF5IFJvdW5kIG9mIHRoZSBHZW5lcmFsIEFncmVlbWVudCBvbiBUYXJpZmZzIGFuZCBUcmFkZSwgYW5kIGVudGVyZWQgaW50byBmb3JjZSB3aXRoIHRoZSBlc3RhYmxpc2htZW50IG9mIHRoZSBXVE8gb24gSmFudWFyeSAxLCAxOTk1LiBCbHVlLCBSZWQsIEFtYmVyIGFuZCBHcmVlbiBCb3ggb2Ygc3Vic2lkaWVzLg0KMTk5NTpbQ2luZW1hXSBOZWxzb24gTWFuZGVsYSwgaW4gaGlzIGZpcnN0IHRlcm0gYXMgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYSwgaW5pdGlhdGVzIGEgdW5pcXVlIHZlbnR1cmUgdG8gdW5pdGUgdGhlIEFwYXJ0aGVpZC10b3JuIGxhbmQ6IGVubGlzdCB0aGUgbmF0aW9uYWwgcnVnYnkgdGVhbSBvbiBhIG1pc3Npb24gdG8gd2luIHRoZSAxOTk1IFJ1Z2J5IFdvcmxkIEN1cC4gLSAgSW52aWN0dXMgKDIwMDkpDQoxOTk1OltDaW5lbWFdIEEgQ2xvY2t3b3JrIE9yYW5nZSgxOTcxKQ0KMTk5NTpbQ2luZW1hXSBEZWFkIEVuZCBEcml2ZS1JbigxOTg2KQ0KMTk5NTpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gU3BhY2Vnb2R6aWxsYSgxOTk0KQ0KMTk5NTpbQ2luZW1hXSBIZWFydGJlZXBzKDE5ODEpDQoxOTk1OltDaW5lbWFdIFRoZSBNdW1teSdzIEN1cnNlKDE5NDQpDQoxOTk1IChEZWMpOltTcGFjZV0gU29sYXIgYW5kIEhlbGlvc3BoZXJpYyBPYnNlcnZhdG9yeSAoU29ITykgd2FzIGxhdW5jaGVkIGluIERlY2VtYmVyIDE5OTUgYXMgYSBqb2ludCBtaXNzaW9uIGJldHdlZW4gdGhlIEV1cm9wZWFuIFNwYWNlIEFnZW5jeSAoRVNBKSBhbmQgTkFTQSwgU29ITyB3YXMgZGVzaWduZWQgdG8gb3JiaXQgdGhlIFN1biB0byBsZWFybiBhYm91dCB0aGUgc3RydWN0dXJlIG9mIHRoZSBzdGFy4oCZcyBpbnRlcmlvciBhbmQgaXRzIG91dGVyIGF0bW9zcGhlcmUsIGFzIHdlbGwgYXMgdG8gaW52ZXN0aWdhdGUgdGhlIGJlaGF2aW9yIG9mIHNvbGFyIHdpbmRzLiBJdCB3YXMgZXhwZWN0ZWQgdG8gY29tcGxldGUgaXRzIG1pc3Npb24gaW4gMTk5OC4gSW5zdGVhZCwgaXQgaXMgc3RpbGwgYWN0aXZlIHRvZGF5LCBhbmQgaXMgbm93IGxpa2VseSB0byBrZWVwIHdvcmtpbmcgdW50aWwgMjAyNSwgd2hlbiBpdCB3aWxsIGhhdmUgYmVlbiBpbiBzcGFjZSBmb3IgMzAgeWVhcnMuDQoxOTk1OltQaHlzaWNzXVtTcGFjZV1bUmVzZWFyY2hdIFByaW9yIHRvIDE5OTUsIHRoZW9yaXN0cyBiZWxpZXZlZCB0aGF0IHRoZXJlIHdlcmUgZml2ZSBjb25zaXN0ZW50IHZlcnNpb25zIG9mIHN1cGVyc3RyaW5nIHRoZW9yeSAodHlwZSBJLCB0eXBlIElJQSwgdHlwZSBJSUIsIGFuZCB0d28gdmVyc2lvbnMgb2YgaGV0ZXJvdGljIHN0cmluZyB0aGVvcnkpLiBUaGlzIHVuZGVyc3RhbmRpbmcgY2hhbmdlZCBpbiAxOTk1IHdoZW4gRWR3YXJkIFdpdHRlbiBzdWdnZXN0ZWQgdGhhdCB0aGUgZml2ZSB0aGVvcmllcyB3ZXJlIGp1c3Qgc3BlY2lhbCBsaW1pdGluZyBjYXNlcyBvZiBhbiBlbGV2ZW4tZGltZW5zaW9uYWwgdGhlb3J5IGNhbGxlZCBNLXRoZW9yeS4gV2l0dGVuJ3MgY29uamVjdHVyZSB3YXMgYmFzZWQgb24gdGhlIHdvcmsgb2YgYSBudW1iZXIgb2Ygb3RoZXIgcGh5c2ljaXN0cywgaW5jbHVkaW5nIEFzaG9rZSBTZW4sIENocmlzIEh1bGwsIFBhdWwgVG93bnNlbmQsIGFuZCBNaWNoYWVsIER1ZmYuIEhpcyBhbm5vdW5jZW1lbnQgbGVkIHRvIGEgZmx1cnJ5IG9mIHJlc2VhcmNoIGFjdGl2aXR5IG5vdyBrbm93biBhcyB0aGUgc2Vjb25kIHN1cGVyc3RyaW5nIHJldm9sdXRpb24uDQoxOTk1OltDcmltZV1bSW5kaWFdIE11cmRlciBvZiBNdW1iYWktYmFzZWQgYnVpbGRlciBQcmFkZWVwIEphaW4gYnkgQWJ1IFNhbGVtDQoxOTk1OiBGb3J0dW5lIEhvdGVscyBpbiBJbmRpYSBpcyBvd25lZCBieSBpdHMgcGFyZW50IGNvbXBhbnksIElUQyBMdGQuLCB3aGljaCBlc3RhYmxpc2hlZCBGb3J0dW5lIEhvdGVscyBpbiAxOTk1IGFzIGEgc3Vic2lkaWFyeSB0byBwcm92aWRlIG1pZC1tYXJrZXQgdG8gdXBzY2FsZSBob3NwaXRhbGl0eSBzZXJ2aWNlcy4gSG93ZXZlciwgYSBzZXBhcmF0ZSBncm91cCwgRm9ydHVuZSBHcm91cCBvZiBIb3RlbHMsIGJhc2VkIGluIHRoZSBVbml0ZWQgQXJhYiBFbWlyYXRlcyAoVUFFKSBhbmQgZm91bmRlZCBieSBQcmF2ZWVuIFNoZXR0eSwgYWxzbyBvcGVyYXRlcyBhIGRpZmZlcmVudCBzZXQgb2YgaG90ZWxzIGluIHRoYXQgcmVnaW9uLg0KMTk5NTpbVUtdIENhbWlsbGEgaXMgUXVlZW4gb2YgdGhlIFVuaXRlZCBLaW5nZG9tIGFuZCAxNCBvdGhlciBDb21tb253ZWFsdGggcmVhbG1zIGFzIHRoZSB3aWZlIG9mIEtpbmcgQ2hhcmxlcyBJSUkuIENhbWlsbGEgd2FzIHJhaXNlZCBpbiBFYXN0IFN1c3NleCBhbmQgU291dGggS2Vuc2luZ3RvbiBpbiBFbmdsYW5kIGFuZCBlZHVjYXRlZCBpbiBFbmdsYW5kLCBTd2l0emVybGFuZCBhbmQgRnJhbmNlLiBJbiAxOTczLCBzaGUgbWFycmllZCBCcml0aXNoIEFybXkgb2ZmaWNlciBBbmRyZXcgUGFya2VyIEJvd2xlczsgdGhleSBkaXZvcmNlZCBpbiAxOTk1Lg0KDQoxOTk2OltHZW9Qb2xpdGljc11bQnVzaW5lc3NdIE1vbmdvbGlhIHdhcyBncmFudGVkIG9ic2VydmVyIHN0YXR1cyB0byBUUkFDRUNBLg0KMTk5NiAoNyBBdWd1c3QpOltSZXNlYXJjaF1bU3BhY2VdIE5BU0EgYW5ub3VuY2VkIGZvc3NpbGl6ZWQgZXZpZGVuY2Ugb2YgYW5jaWVudCBsaWZlIGluIG1ldGVvcml0ZSBBTEggODQwMDEgZnJvbSBNYXJzLg0KMTk5NiAoT2N0IDI3KTpbUmVzZWFyY2hdW1NwYWNlXSBnZW5ldGljaXN0cyBzaG93ZWQgZXZpZGVuY2UgdGhhdCBtYW55IGdlbmVzIGFyZSBtdWNoIG9sZGVyIHRoYW4gdGhlIGZvc3NpbCByZWNvcmQgd291bGQgaW5kaWNhdGUuIFN1YnNlcXVlbnQgc3R1ZGllcyBoYXZlIHN0cmVuZ3RoZW5lZCB0aGlzIGZpbmRpbmcuDQoxOTk2OltCdXNpbmVzc11bR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2hlbiB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4gc2lnbmVkIHRoZSBUcmVhdHkgb24gRGVlcGVuaW5nIE1pbGl0YXJ5IFRydXN0IGluIEJvcmRlciBSZWdpb25zIGluIFNoYW5naGFpLiBPbiAyNCBBcHJpbCAxOTk3IHRoZSBzYW1lIGNvdW50cmllcyBzaWduZWQgdGhlIFRyZWF0eSBvbiBSZWR1Y3Rpb24gb2YgTWlsaXRhcnkgRm9yY2VzIGluIEJvcmRlciBSZWdpb25zIGluIGEgbWVldGluZyBpbiBNb3Njb3csIFJ1c3NpYS4gT24gMjAgTWF5IDE5OTcgUnVzc2lhbiBQcmVzaWRlbnQgQm9yaXMgWWVsdHNpbiBhbmQgQ2hpbmVzZSBQcmVzaWRlbnQgSmlhbmcgWmVtaW4gc2lnbmVkIGEgZGVjbGFyYXRpb24gb24gYSAibXVsdGlwb2xhciB3b3JsZCIuDQoxOTk2OiAxOTk2IE1vdW50IEV2ZXJlc3QgRGlzYXN0ZXIsIGluIHdoaWNoIGVpZ2h0IHBlb3BsZSBkaWVkIHdoaWxlIG9uIGFuIGV4cGVkaXRpb24gdG8gc2NhbGUgdGhlIGluZmFtb3VzIHN1bW1pdC4gT25lIG9mIHRoZSBjbGltYmVycyB3aG8gbG9zdCBoaXMgbGlmZSB3YXMgQW5keSBIYXJyaXMsIHBsYXllZCBpbiBFdmVyZXN0IGJ5IE1hcnRpbiBIZW5kZXJzb24uIEhhcnJpcyB3YXMgb25lIG9mIHRoZSBndWlkZXMgZm9yIHRoZSBBZHZlbnR1cmUgQ29uc3VsdGFudHMsIGFsb25nIHdpdGggUm9iIEhhbGwgYW5kIE1pa2UgR3Jvb20uIEluIHRoZSBmaWxtLCBoZSBhcHBlYXJzIHRvIGRpZSB3aGlsZSB3aXRoIEhhbGwsIGZhbGxpbmcgb2ZmIGEgY2xpZmYgYWZ0ZXIgYSBoYWxsdWNpbmF0aW9uLiBCdXQgUm9iIEhhbGwgbmV2ZXIgcmVwb3J0ZWQgdGhpcywgYW5kIHNpbmNlIGhlIGRpZWQgc2hvcnRseSB0aGVyZWFmdGVyLCB0aGVyZSBpcyBubyB3YXkgdG8gY29uZmlybSB0aGUgY2lyY3Vtc3RhbmNlcyBzdXJyb3VuZGluZyBIYXJyaXMnIGRlYXRoLg0KMTk5NjpbQ29tcHV0aW5nXVtRdWFudHVtXSAgTG92IEdyb3ZlciBkZXZpc2VkIGFuIGFsZ29yaXRobSAoR3JvdmVyJ3MgYWxnb3JpdGhtKSB0aGF0IGNvdWxkIHNlYXJjaCBhbiB1bnNvcnRlZCBkYXRhYmFzZSBpbiBzcXVhcmUgcm9vdCB0aW1lIG9uIGEgcXVhbnR1bSBjb21wdXRlciwgd2hpY2ggd291bGQgb3V0cGVyZm9ybSBhbnkgY2xhc3NpY2FsIGFsZ29yaXRobS4NCjE5OTY6W1VTXSBCYXJhY2sgT2JhbWEgd2FzIGVsZWN0ZWQgdG8gdGhlIElsbGlub2lzIFNlbmF0ZSwgc3VjY2VlZGluZyBEZW1vY3JhdGljIFN0YXRlIFNlbmF0b3IgQWxpY2UgUGFsbWVyIGZyb20gSWxsaW5vaXMncyAxM3RoIERpc3RyaWN0LCB3aGljaCwgYXQgdGhhdCB0aW1lLCBzcGFubmVkIENoaWNhZ28gU291dGggU2lkZSBuZWlnaGJvcmhvb2RzIGZyb20gSHlkZSBQYXJr4oCTS2Vud29vZCBzb3V0aCB0byBTb3V0aCBTaG9yZSBhbmQgd2VzdCB0byBDaGljYWdvIExhd24uDQoxOTk2OltVS10gQ2hhcmxlcyBJSUkgYW5kIERpYW5hIGdldHMgZGl2b3JjZWQuDQoxOTk2IChKYW4gMjUpOltCb29rXSBQZXRlciBMeW5jaCAmIEpvaG4gUm90aGNoaWxkJ3MgTGVhcm4gdG8gRWFybjogQSBCZWdpbm5lcidzIEd1aWRlIHRvIHRoZSBCYXNpY3Mgb2YgSW52ZXN0aW5nIGFuZCBCdXNpbmVzcy4NCjE5OTYgKEphbik6W0NyaW1lXVtJbmRpYV0gQW5lZXMgSWJyYWhpbSBhcnJlc3RlZCBpbiBCYWhyYWluLCBzaGlmdGVkIHRvIER1YmFpIGFsbGVnZWRseSBvbiB0aGUgaW50ZXJ2ZW50aW9uIG9mIHNvbWUgb2YgRHViYWkncyBydWxpbmcgbm90YWJsZXMsIGFuZCB3YXMgdGhlbiBhbGxvd2VkIHRvIHNsaXAgYXdheSB0byBLYXJhY2hpLCBQYWtpc3Rhbi4NCjE5OTY6IE5hdGlvbmFsIEFlcm9zcGFjZSBMYWJvcmF0b3JpZXMsIEluZGlhIGluZGlnZW5vdXNseSBidWlsdCBGTE9TT0xWRVIsIEluZGlhJ3MgZmlyc3Qgc3VwZXJjb21wdXRlci4gSXQgd2FzIHJlcGxpY2F0ZWQgYW5kIGluc3RhbGxlZCBhdCBJQ0FEIE1vc2NvdyBpbiAxOTkxIHVuZGVyIFJ1c3NpYW4gY29sbGFib3JhdGlvbi4NCjE5OTY6IEluZGlhL1Bha2lzdGFuL1NyaSBMYW5rYSAxOTk2Lg0KMTk5NjpbQ29tcHV0aW5nXVt3d3ddIE1hcmlvIDY0IGdhbWUgcmFuIDEwMCBtaWxsaW9uIGNhbGN1bGF0aW9ucyBwZXIgc2Vjb25kLCA1NDAgbWlsbGlvbiAoSGFsZi1MaWZlKSBpbiAxOTk4LCBNaW5lY3JhZnQgKDIwMTEpIHJ1bm5pbmcgMTAwIGJpbGxpb24gY2FsY3VsYXRpb25zLCBDeWJlcnB1bmsgMjA3NyAobW9zdCByZWFsaXN0aWMgdmlkZW8gZ2FtZSAyMDI0KSwgeW91IG5lZWQgYSBncmFwaGljcyBjYXJkIHRoYXQgY2FuIHBlcmZvcm0gYXJvdW5kIDM2IHRyaWxsaW9uIGNhbGMgcGVyIHNlY29uZC4NCjE5OTY6IFByb2YgTWFsY29sbSBIZWF0aC4gUHJvZmVzc29yIG9mIEdyZWVrIExhbmd1YWdlIGFuZCBMaXRlcmF0dXJlIEBsZWVkcy5hYy51aywgdHJhbnNsYXRlZCBBcmlzdG90bGUncyBQb2V0aWNzLg0KMTk5NjogVGhlIDU2SyBtb2RlbSB3YXMgaW52ZW50ZWQgYnkgRHIuIEJyZW50IFRvd25zaGVuZA0KMTk5NiAoRmViIDEzKTogTmVwYWxlc2UgQ2l2aWwgV2FyIHN0YXJ0ZWQuIFRoZSBNYW9pc3QgUmViZWxsaW9uIChsYWJlbGxlZCB0aGUgUGVvcGxlJ3MgV2FyIGJ5IHRoZW4gQ1BOKE1hb2lzdCkpIHdhcyBhbiBhcm1lZCBjb25mbGljdCBhZ2FpbnN0IEdvdmVybm1lbnQgb2YgTmVwYWwgKHRoZW4gSE1HIG9mIE5lcGFsKSBmb3VnaHQgZnJvbSAxOTk2IHRvIDIwMDYuIFRoZSByZWJlbGxpb24gd2FzIGxhdW5jaGVkIGJ5IHRoZSBDb21tdW5pc3QgUGFydHkgb2YgTmVwYWwgKE1hb2lzdCkgb24gMTMgRmVicnVhcnkgMTk5NiB3aXRoIHRoZSBtYWluIGFpbSBvZiBvdmVydGhyb3dpbmcgdGhlIE5lcGFsZXNlIG1vbmFyY2h5IGFuZCBlc3RhYmxpc2hpbmcgYSAnUGVvcGxlJ3MgUmVwdWJsaWMnLiBJdCBlbmRlZCB3aXRoIHRoZSBDb21wcmVoZW5zaXZlIFBlYWNlIEFjY29yZCBzaWduZWQgb24gMjEgTm92ZW1iZXIgMjAwNi4NCjE5OTYgKE1hciAxKTogW0dlb1BvbGl0aWNzXSBUaGUgQXNpYeKAk0V1cm9wZSBNZWV0aW5nIChBU0VNKSBpcyBhbiBBc2lhbuKAk0V1cm9wZWFuIHBvbGl0aWNhbCBkaWFsb2d1ZSBmb3J1bSB0byBlbmhhbmNlIHJlbGF0aW9ucyBhbmQgdmFyaW91cyBmb3JtcyBvZiBjb29wZXJhdGlvbiBiZXR3ZWVuIGl0cyBwYXJ0bmVycy4gSXQgd2FzIG9mZmljaWFsbHkgZXN0YWJsaXNoZWQgYXQgdGhlIDFzdCBBU0VNIFN1bW1pdCAoQVNFTTEpIGluIEJhbmdrb2ssIFRoYWlsYW5kLCBieSB0aGUgdGhlbiAxNSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aGUgRXVyb3BlYW4gQ29tbWlzc2lvbiwgdGhlIHRoZW4gNyBNZW1iZXIgU3RhdGVzIG9mIHRoZSBBc3NvY2lhdGlvbiBvZiBTb3V0aGVhc3QgQXNpYW4gTmF0aW9ucyAoQVNFQU4pLCBhbmQgdGhlIGluZGl2aWR1YWwgY291bnRyaWVzIG9mIENoaW5hLCBKYXBhbiwgYW5kIFNvdXRoIEtvcmVhLiBBIHNlcmllcyBvZiBlbmxhcmdlbWVudHMgc2F3IGFkZGl0aW9uYWwgRVUgTWVtYmVyIFN0YXRlcyBqb2luIGFzIHdlbGwgYXMgSW5kaWEsIE1vbmdvbGlhLCBQYWtpc3RhbiBhbmQgdGhlIEFTRUFOIFNlY3JldGFyaWF0IGluIDIwMDgsIEF1c3RyYWxpYSwgTmV3IFplYWxhbmQgYW5kIFJ1c3NpYSBpbiAyMDEwLCBCYW5nbGFkZXNoLCBOb3J3YXksIGFuZCBTd2l0emVybGFuZCBpbiAyMDEyLCBhcyB3ZWxsIGFzIENyb2F0aWEsIGFuZCBLYXpha2hzdGFuIGluIDIwMTQuDQoxOTk2IChBcHIgMjYpOiBbR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2l0aCB0aGUgc2lnbmluZyBvZiB0aGUgVHJlYXR5IG9uIERlZXBlbmluZyBNaWxpdGFyeSBUcnVzdCBpbiBCb3JkZXIgUmVnaW9ucyBpbiBTaGFuZ2hhaSBieSB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4uIExhdGVyIG9uIEp1biAxNSwgMjAwMSBpdCBnb3QgcmVuYW1lZCBhcyBTaGFuZ2hhaSBDb29wZXJhdGlvbiBPcmdhbmlzYXRpb24gKFNDTykgb3IgU2hhbmdoYWkgUGFjdCANCjE5OTYgKE1heSAxNik6IEF0YWwgQmloYXJpIFZhanBheWVlIGJlY29tZXMgUE0gb2YgSW5kaWEgZm9yIHRoZSB2ZXJ5IGZpcnN0IHRpbWUgZm9yIDE2IGRheXMuDQoxOTk2IChKdW4gMSk6IEF0YWwgQmloYXJpIFZhanBheWVlIHJlc2lnbnMuIEhEIERldmUgR293ZGEgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NiAoQXVnIDE0KTpbcmVzZWFyY2hdW2V4dHJlbWVdIEthcmVuIEVsaXphYmV0aCBXZXR0ZXJoYWhuIChPY3RvYmVyIDE2LCAxOTQ4IOKAkyBKdW5lIDgsIDE5OTcpLCBhbHNvIGtub3duIGFzIEthcmVuIFdldHRlcmhhaG4gSmVubmV0dGUsIHdhcyBhbiBBbWVyaWNhbiBwcm9mZXNzb3Igb2YgY2hlbWlzdHJ5IGF0IERhcnRtb3V0aCBDb2xsZWdlLCBOZXcgSGFtcHNoaXJlLCB3aG8gc3BlY2lhbGl6ZWQgaW4gdG94aWMgbWV0YWwgZXhwb3N1cmUuIFNoZSBkaWVkIG9mIG1lcmN1cnkgcG9pc29uaW5nIGF0IHRoZSBhZ2Ugb2YgNDggZHVlIHRvIGFjY2lkZW50YWwgZXhwb3N1cmUgdG8gdGhlIGV4dHJlbWVseSB0b3hpYyBvcmdhbmljIG1lcmN1cnkgY29tcG91bmQgZGltZXRoeWxtZXJjdXJ5IChIZyhDSDMpMikuIFByb3RlY3RpdmUgZ2xvdmVzIGluIHVzZSBhdCB0aGUgdGltZSBvZiB0aGUgaW5jaWRlbnQgcHJvdmlkZWQgaW5zdWZmaWNpZW50IHByb3RlY3Rpb24sIGFuZCBleHBvc3VyZSB0byBvbmx5IGEgc2luZ2xlIGRyb3Agb3IgdHdvIG9mIHRoZSBkaW1ldGh5bG1lcmN1cnkgYWJzb3JiZWQgdGhyb3VnaCB0aGUgZ2xvdmVzIHByb3ZlZCB0byBiZSBmYXRhbCBhZnRlciBsZXNzIHRoYW4gYSB5ZWFyLiBUZXN0cyBsYXRlciByZXZlYWxlZCB0aGF0IGRpbWV0aHlsbWVyY3VyeSBjYW4sIGluIGZhY3QsIHJhcGlkbHkgcGVybWVhdGUgc2V2ZXJhbCBraW5kcyBvZiBsYXRleCBnbG92ZXMgYW5kIGVudGVyIHRoZSBza2luIHdpdGhpbiBhYm91dCAxNSBzZWNvbmRzLiBIZXIgZXhwb3N1cmUgd2FzIGxhdGVyIGNvbmZpcm1lZCBieSBoYWlyIGFuYWx5c2lzLCB3aGljaCBzaG93ZWQgYSBkcmFtYXRpYyBqdW1wIGluIG1lcmN1cnkgbGV2ZWxzIDE3IGRheXMgYWZ0ZXIgdGhlIGluaXRpYWwgYWNjaWRlbnQsIHBlYWtpbmcgYXQgMzkgZGF5cywgZm9sbG93ZWQgYnkgYSBncmFkdWFsIGRlY2xpbmUuIEFwcHJveGltYXRlbHkgdGhyZWUgbW9udGhzIGFmdGVyIHRoZSBpbml0aWFsIGFjY2lkZW50IFdldHRlcmhhaG4gYmVnYW4gZXhwZXJpZW5jaW5nIGJyaWVmIGVwaXNvZGVzIG9mIGFiZG9taW5hbCBkaXNjb21mb3J0IGFuZCBub3RpY2VkIHNpZ25pZmljYW50IHdlaWdodCBsb3NzLiBUaGUgbW9yZSBkaXN0aW5jdGl2ZSBuZXVyb2xvZ2ljYWwgc3ltcHRvbXMgb2YgbWVyY3VyeSBwb2lzb25pbmcsIGluY2x1ZGluZyBsb3NzIG9mIGJhbGFuY2UgYW5kIHNsdXJyZWQgc3BlZWNoLCBhcHBlYXJlZCBpbiBKYW51YXJ5IDE5OTcsIGZpdmUgbW9udGhzIGFmdGVyIHRoZSBhY2NpZGVudC4gSGVyIGJsb29kIGFuZCB1cmluYXJ5IG1lcmN1cnkgY29udGVudCB3ZXJlIG1lYXN1cmVkIGF0IDQsMDAwIM68Zy9MIGFuZCAyMzQgzrxnL0wsIHJlc3BlY3RpdmVseeKAlGJvdGggbWFueSB0aW1lcyB0aGVpciByZXNwZWN0aXZlIHRveGljIHRocmVzaG9sZHMgb2YgMjAwIM68Zy9MIGFuZCA1MCDOvGcvTCAoYmxvb2QgYW5kIHVyaW5lIHJlZmVyZW5jZSByYW5nZXMgYXJlIDEgdG8gOCDOvGcvTCBhbmQgMSB0byA1IM68Zy9MKS4NCjE5OTYgKERlYyA0IDA2OjU4OjA3IFVUQyk6W1NwYWNlXVtNYXJzXVtFYXJ0aF0gTGF1bmNoIG9mIE1hcnMgUGF0aGZpbmRlciBvbiBEZWx0YSBJSSA3OTI1ICgjRDI0MCkNCnJvY2tldCBmcm9tIENhcGUgQ2FuYXZlcmFsIFNMQy0xNy4gVG8gcHJvdmUgdGhhdCB0aGUgZGV2ZWxvcG1lbnQgb2YgImZhc3RlciwgYmV0dGVyIGFuZCBjaGVhcGVyIiBzcGFjZWNyYWZ0IHdhcyBwb3NzaWJsZSAod2l0aCB0aHJlZSB5ZWFycyBmb3IgZGV2ZWxvcG1lbnQgYW5kIGEgY29zdCB1bmRlciAkMTUwIG1pbGxpb24gZm9yIHRoZSBsYW5kZXIsIGFuZCAkMjUgbWlsbGlvbiBmb3IgdGhlIHJvdmVyKS4gVG8gc2hvdyB0aGF0IGl0IHdhcyBwb3NzaWJsZSB0byBzZW5kIGEgbG9hZCBvZiBzY2llbnRpZmljIGluc3RydW1lbnRzIHRvIGFub3RoZXIgcGxhbmV0IHdpdGggYSBzaW1wbGUgc3lzdGVtIGFuZCBhdCBvbmUtZmlmdGVlbnRoIHRoZSBjb3N0IG9mIGEgVmlraW5nIG1pc3Npb24uIChGb3IgY29tcGFyaXNvbiwgdGhlIFZpa2luZyBtaXNzaW9ucyBjb3N0ICQ5MzUgbWlsbGlvbiBpbiAxOTc0IG9yICQzLjUgYmlsbGlvbiBpbiAxOTk3IGRvbGxhcnMuKS4gVG8gZGVtb25zdHJhdGUgTkFTQSdzIGNvbW1pdG1lbnQgdG8gbG93LWNvc3QgcGxhbmV0YXJ5IGV4cGxvcmF0aW9uIGJ5IGZpbmlzaGluZyB0aGUgbWlzc2lvbiB3aXRoIGEgdG90YWwgZXhwZW5kaXR1cmUgb2YgJDI4MCBtaWxsaW9uLCBpbmNsdWRpbmcgdGhlIGxhdW5jaCB2ZWhpY2xlIGFuZCBtaXNzaW9uIG9wZXJhdGlvbnMuDQoxOTk2OiBhIHJhaWQgb24gdGhlIEFuaW1hbCBIdXNiYW5kcnkgZGVwYXJ0bWVudOKAmXMgb2ZmaWNlcyBpbiBDaGFpYmFzYSwgQmloYXIgdW5mb2xkZWQgdGhlIFJzLjk1MCBjcm9yZSBmb2RkZXIgc2NhbSwgaW4gd2hpY2ggdGhlIEJpaGFyIGNoaWVmIG1pbmlzdGVyIExhbHUgUHJhc2FkIFlhZGF2IGNhdGNoIHVwIGluIGEgbGlmZWxvbmcgdHVzc2xlIHdpdGggdGhlIENCSS4NCjE5OTY6W0Jvb2tdW0FkdmVudHVyZV0gSm9uIEtyYWthdWVyJ3MgSW50byB0aGUgV2lsZC4NCjE5OTY6W0NvbXB1dGluZ10gVGhlIFZpZGVvTEFOIHNvZnR3YXJlIG9yaWdpbmF0ZWQgYXMgYSBGcmVuY2ggYWNhZGVtaWMgcHJvamVjdC4gVkxDIHVzZWQgdG8gc3RhbmQgZm9yICJWaWRlb0xBTiBDbGllbnQiIHdoZW4gVkxDIHdhcyBhIGNsaWVudCBvZiB0aGUgVmlkZW9MQU4gcHJvamVjdCwgb2ZmaWNpYWxseSByZWxlYXNlZCB1bmRlciBHTlUgR1BMIG9uIDIwMDEgKEZlYiAxKS4NCjE5OTY6W01lbWVdIERhbmNpbmcgQmFieSBTY3JlZW5zYXZlcg0KMTk5NjpbU3BhY2VYXSBUaGUgZW50aXJlIHByb2Nlc3MgZm9yIHRoZSBKYW1lcyBXZWJiIFNwYWNlIFRlbGVzY29wZSAoSldTVCkgZnJvbSBpbml0aWFsIGNvbmNlcHQgdG8gbGF1bmNoIHNwYW5uZWQgYXBwcm94aW1hdGVseSAyNSB5ZWFycywgd2l0aCBpbml0aWFsIGRlc2lnbnMgYmVnaW5uaW5nIGluIDE5OTYgYW5kIHRoZSB0ZWxlc2NvcGUgbGF1bmNoaW5nIGluIDIwMjEsIGJ1dCBhIHNpZ25pZmljYW50IHBvcnRpb24gb2YgdGhpcyB3YXMgc3BlbnQgaW4gZGVzaWduLCB0ZXN0aW5nLCBhbmQgb3ZlcmNvbWluZyBtYWpvciByZWRlc2lnbnMgYW5kIGRlbGF5cywgbm90IGp1c3QgYXNzZW1ibHkuIA0KMTk5NiAoRmViIDI4KTpbRGVsaGldIEluZGlyYXB1cmFtLCBHaGF6aWFiYWQgd2FzIGVzdGQgd2hlbiBpdHMgZm91bmRhdGlvbiBzdG9uZSAoS2FsYSBQYXRoYXIpIHdhcyBpbmF1Z3VyYXRlZCBieSBTaCBNb3RpbGFsIFZvcmEsIHRoZW4gR292ZXJub3Igb2YgVVAuICgyMDIxKSBJJ3B1cmFtIEV4dG4gdG8gYmUgYnVpbHQgb24gMTIgYWNyZXMgb25seSwgY29uY2VpdmVkIGluIDIwMDQuDQoxOTk2OltCb29rXVtNaWxpdGFyeV1bQ3VsdHVyZV1bRVVdW1VTQV0gR2VvcmdlIFIuUi4gTWFydGluIGlzIHRoZSBBbWVyaWNhbiBhdXRob3Igb2YgdGhlIGVwaWMgZmFudGFzeSBib29rIHNlcmllcyBBIFNvbmcgb2YgSWNlIGFuZCBGaXJlLCB3aGljaCBiZWdhbiB3aXRoIEEgR2FtZSBvZiBUaHJvbmVzICgxOTk2KSBhbmQgc2VydmVkIGFzIHRoZSBiYXNpcyBmb3IgSEJPJ3MgbWFzc2l2ZWx5IHBvcHVsYXIgR2FtZSBvZiBUaHJvbmVzIFRWIHNlcmllcy4gQSBTb25nIG9mIEljZSBhbmQgRmlyZSBpcyBhIHNlcmllcyBvZiBoaWdoIGZhbnRhc3kgbm92ZWxzIGJ5IHRoZSBBbWVyaWNhbiBhdXRob3IgR2VvcmdlIFIuIFIuIE1hcnRpbi4gTWFydGluIGJlZ2FuIHdyaXRpbmcgdGhlIGZpcnN0IHZvbHVtZSwgQSBHYW1lIG9mIFRocm9uZXMsIGluIDE5OTEsIGFuZCBwdWJsaXNoZWQgaXQgaW4gMTk5Ni4gTWFydGluLCB3aG8gb3JpZ2luYWxseSBlbnZpc2lvbmVkIHRoZSBzZXJpZXMgYXMgYSB0cmlsb2d5LCBoYXMgcmVsZWFzZWQgZml2ZSBvdXQgb2Ygc2V2ZW4gcGxhbm5lZCB2b2x1bWVzLiANCg0KW0dlbmVyYXRpb25dIE1pbGxlbm5pYWwgZ2VuZXJhdGlvbiAoMTk4MeKAkzE5OTYpIGVuZHM7IGxhc3RlZCBmb3IgMTUgeWVhcnMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICA1MCB5ZWFycyBvZiBJbmRlcGVuZGVudCBJbmRpYSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSANCg0KW0dlbmVyYXRpb25dIEdlbiBaICgxOTk34oCTMjAxMikgc3RhcnRzOyBhbmQgZXhpc3RzIGZvciBuZXh0IDE1IHllYXJzLg0KDQoxOTk3OltXaG9dW1Jlc2VhcmNoXVtDb21wdXRpbmddW1RlY2hdW0N1bHR1cmVdIFZMQyBNZWRpYSBQbGF5ZXIgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBzdHVkZW50cyBhdCB0aGUgRnJlbmNoIGVuZ2luZWVyaW5nIHNjaG9vbCDDiWNvbGUgQ2VudHJhbGUgUGFyaXMgaW4gMTk5Ni4gV2hpbGUgaXQgc3RhcnRlZCBhcyBhbiBhY2FkZW1pYyBwcm9qZWN0IChWaWRlb0xBTikgdG8gc3RyZWFtIHZpZGVvIG92ZXIgYSBjYW1wdXMgbmV0d29yaywgaXRzIGRldmVsb3BtZW50IGFuZCBtb2Rlcm5pemF0aW9uIHdlcmUgbGF0ZXIgbGVkIGJ5IEplYW4tQmFwdGlzdGUgS2VtcGYuIA0KMTk5NzpbUmVzZWFyY2hdW1NwYWNlXSAyOSBKdWx5IDE5OTc6IGEgTkFTQSBzY2llbnRpc3QgYW5ub3VuY2VkIGV2aWRlbmNlIG9mIGZvc3NpbGl6ZWQgbWljcm9zY29waWMgbGlmZSBmb3JtcyBpbiBhIG1ldGVvcml0ZSBub3QgZnJvbSBhbnkga25vd24gcGxhbmV0Lg0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgR3JvdXAgb2YgRWlnaHQgKEc4KSB3YXMgYW4gaW50ZXJnb3Zlcm5tZW50YWwgcG9saXRpY2FsIGZvcnVtIGZyb20gMTk5NyB0byAyMDE0LCBmb3JtZWQgYnkgaW5jb3Jwb3JhdGluZyBSdXNzaWEgaW50byB0aGUgRzcuIFRoZSBHOCBiZWNhbWUgdGhlIEc3IGFnYWluIGFmdGVyIFJ1c3NpYSB3YXMgZXhwZWxsZWQgaW4gMjAxNCBhZnRlciB0aGUgUnVzc2lhbiBhbm5leGF0aW9uIG9mIENyaW1lYS4gRm91bmRlZDogMTk5NywgRGVudmVyLCBDb2xvcmFkbywgVW5pdGVkIFN0YXRlcw0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBGb3VuZGVkOiA2IEp1bmUgMTk5NywgVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiAoQklNU1RFQykgaXMgYW4gaW50ZXJuYXRpb25hbCBvcmdhbml6YXRpb24gb2Ygc2V2ZW4gU291dGggQXNpYW4gYW5kIFNvdXRoZWFzdCBBc2lhbiBuYXRpb25zLCBob3VzaW5nIDEuNzMgYmlsbGlvbiBwZW9wbGUgYW5kIGhhdmluZyBhIGNvbWJpbmVkIGdyb3NzIGRvbWVzdGljIHByb2R1Y3Qgb2YgVVMkNS4yIHRyaWxsaW9uLg0KMTk5NzpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gYnVpbHQgdGhlIGZpcnN0IGV4cGVyaW1lbnRhbCBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCBjb3VsZCBtYW5pcHVsYXRlIDcgcXViaXRzIHVzaW5nIG51Y2xlYXIgbWFnbmV0aWMgcmVzb25hbmNlIChOTVIpIHRlY2huaXF1ZXMuDQoxOTk3IChKdWwgNCk6W1NwYWNlXVtNYXJzXSBUaGUgTWFycyBQYXRoZmluZGVyIGVuZHVyZWQgYSAzMC1zZWNvbmQgY29tbXVuaWNhdGlvbnMgYmxhY2tvdXQgYXMgaXQgZW50ZXJlZCBNYXJzJyBhdG1vc3BoZXJlLiBJdCBsYW5kZWQgYXQgQXJlcyBWYWxsaXMsIENocnlzZSBQbGFuaXRpYSwgTWFycyAxOcKwN+KAsjQ44oCzTiAzM8KwMTPigLIxMuKAs1cuIE1hcnMgUGF0aGZpbmRlciAoTUVTVVIgUGF0aGZpbmRlcikgaXMgYW4gQW1lcmljYW4gcm9ib3RpYyBzcGFjZWNyYWZ0IHRoYXQgbGFuZGVkIGEgYmFzZSBzdGF0aW9uIHdpdGggYSByb3ZpbmcgcHJvYmUgb24gTWFycyBpbiAxOTk3LiBJdCBjb25zaXN0ZWQgb2YgYSBsYW5kZXIsIHJlbmFtZWQgdGhlIENhcmwgU2FnYW4gTWVtb3JpYWwgU3RhdGlvbiwgYW5kIGEgbGlnaHR3ZWlnaHQsIDEwLjYga2cgKDIzIGxiKSB3aGVlbGVkIHJvYm90aWMgTWFycyByb3ZlciBuYW1lZCBTb2pvdXJuZXIsIHRoZSBmaXJzdCByb3ZlciB0byBvcGVyYXRlIG91dHNpZGUgdGhlIEVhcnRo4oCTTW9vbiBzeXN0ZW0uDQoxOTk3OltCb29rXSBNaXRjaCBBbGJvbSdzIFR1ZXNkYXlzIHdpdGggTW9ycmllLg0KMTk5NzpbR2FtaW5nXSBHcmFuZCBUaGVmdCBBdXRvIChHVEEpIHJlbGVhc2VkIGJ5IERNQSBEZXNpZ24gKGxhdGVyIFJvY2tzdGFyIE5vcnRoKSBmb3IgUFMxLCBXaW5kb3dzIGFuZCBNUy1ET1M7IEdyYW5kIFRoZWZ0IEF1dG86IFZpY2UgQ2l0eSAoMjAwMik7IEdyYW5kIFRoZWZ0IEF1dG86IFNhbiBBbmRyZWFzICgyMDA0KTsgR3JhbmQgVGhlZnQgQXV0byBJViAoMjAwOCk7IEdyYW5kIFRoZWZ0IEF1dG8gViAoMjAxMyk7IEdyYW5kIFRoZWZ0IEF1dG86IFRoZSBUcmlsb2d5IOKAkyBUaGUgRGVmaW5pdGl2ZSBFZGl0aW9uICgyMDIxKQ0KMTk5NzogVGVra2VuIDMgd2FzIGRlc2lnbmVkIGJ5IEthdHN1aGlybyBIYXJhZGEgKE9zYWthLCBPc2FrYSBQcmVmZWN0dXJlLCBKYXBhbikgb2YgQmFuZGFpIE5hbWNvIEVudGVydGFpbm1lbnQgaGVhZHF1YXJ0ZXJlZCBhdCDFjHRhLCBUb2t5by4NCjE5OTcgKE1hciA2KTogW0dlb1BvbGl0aWNzXSBUaGUgSW5kaWFuIE9jZWFuIFJpbSBBc3NvY2lhdGlvbiwgZm9ybWVybHkga25vd24gYXMgdGhlIEluZGlhbiBPY2VhbiBSaW0gSW5pdGlhdGl2ZSBhbmQgdGhlIEluZGlhbiBPY2VhbiBSaW0gQXNzb2NpYXRpb24gZm9yIFJlZ2lvbmFsIENvb3BlcmF0aW9uLCBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBjb25zaXN0aW5nIG9mIDIzIHN0YXRlcyBib3JkZXJpbmcgdGhlIEluZGlhbiBPY2Vhbi4gVGhlIElPUkEgaXMgYSByZWdpb25hbCBmb3J1bSwgdHJpcGFydGl0ZSBpbiBuYXR1cmUsIGJyaW5naW5nIHRvZ2V0aGVyIHJlcHJlc2VudGF0aXZlcyBvZiBHb3Zlcm5tZW50LCBCdXNpbmVzcyBhbmQgQWNhZGVtaWEsIGZvciBwcm9tb3RpbmcgY28tb3BlcmF0aW9uIGFuZCBjbG9zZXIgaW50ZXJhY3Rpb24gYW1vbmcgdGhlbS4gSXQgaXMgYmFzZWQgb24gdGhlIHByaW5jaXBsZXMgb2YgT3BlbiBSZWdpb25hbGlzbSBmb3Igc3RyZW5ndGhlbmluZyBFY29ub21pYyBDb29wZXJhdGlvbiBwYXJ0aWN1bGFybHkgb24gVHJhZGUgRmFjaWxpdGF0aW9uIGFuZCBJbnZlc3RtZW50LCBQcm9tb3Rpb24gYXMgd2VsbCBhcyBTb2NpYWwgRGV2ZWxvcG1lbnQgb2YgdGhlIHJlZ2lvbi4gVGhlIENvb3JkaW5hdGluZyBTZWNyZXRhcmlhdCBvZiBJT1JBIGlzIGxvY2F0ZWQgYXQgRWJlbmUsIE1hdXJpdGl1cy4NCjE5OTcgKEFwciAyMSk6IEguRC4gRGV2ZSBHb3dkYSByZXNpZ25zLiBJbmRlciBLdW1hciBHdWpyYWwgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NyAoSnVuIDYpOiBbR2VvUG9saXRpY3NdIEJJTVNURUMgZm91bmRlZC4gVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBvZiBzZXZlbiBTb3V0aCBBc2lhbiBhbmQgU291dGhlYXN0IEFzaWFuIG5hdGlvbnMsIGhvdXNpbmcgMS43MyBiaWxsaW9uIHBlb3BsZSBhbmQgaGF2aW5nIGEgY29tYmluZWQgZ3Jvc3MgZG9tZXN0aWMgcHJvZHVjdCBvZiAkMy44IHRyaWxsaW9uLiBUaGUgQklNU1RFQyBtZW1iZXIgc3RhdGVzIOKAkyBCYW5nbGFkZXNoLCBCaHV0YW4sIEluZGlhLCBNeWFubWFyLCBOZXBhbCwgU3JpIExhbmthLCBhbmQgVGhhaWxhbmQg4oCTIGFyZSBhbW9uZyB0aGUgY291bnRyaWVzIGRlcGVuZGVudCBvbiB0aGUgQmF5IG9mIEJlbmdhbC4NCjE5OTcgKEp1biA4KTogRGVzcGl0ZSBhZ2dyZXNzaXZlIGNoZWxhdGlvbiB0aGVyYXB5LCBoZXIgY29uZGl0aW9uIHJhcGlkbHkgZGV0ZXJpb3JhdGVkLiBUaHJlZSB3ZWVrcyBhZnRlciB0aGUgZmlyc3QgbmV1cm9sb2dpY2FsIHN5bXB0b21zIGFwcGVhcmVkLCBXZXR0ZXJoYWhuIGxhcHNlZCBpbnRvIHdoYXQgYXBwZWFyZWQgdG8gYmUgYSB2ZWdldGF0aXZlIHN0YXRlIHB1bmN0dWF0ZWQgYnkgcGVyaW9kcyBvZiBleHRyZW1lIGFnaXRhdGlvbi4gT25lIG9mIGhlciBmb3JtZXIgc3R1ZGVudHMgc2FpZCB0aGF0ICJIZXIgaHVzYmFuZCBzYXcgdGVhcnMgcm9sbGluZyBkb3duIGhlciBmYWNlLiBJIGFza2VkIGlmIHNoZSB3YXMgaW4gcGFpbi4gVGhlIGRvY3RvcnMgc2FpZCBpdCBkaWRuJ3QgYXBwZWFyIHRoYXQgaGVyIGJyYWluIGNvdWxkIGV2ZW4gcmVnaXN0ZXIgcGFpbi4iIFdldHRlcmhhaG4gd2FzIHJlbW92ZWQgZnJvbSBsaWZlIHN1cHBvcnQgYW5kIHByb25vdW5jZWQgZGVhZCBvbiBKdW5lIDgsIDE5OTcsIHRlbiBtb250aHMgYWZ0ZXIgaGVyIGluaXRpYWwgZXhwb3N1cmUuIEluIHJlc3BvbnNlLCB0aGUgT2NjdXBhdGlvbmFsIFNhZmV0eSBhbmQgSGVhbHRoIEFkbWluaXN0cmF0aW9uIHJlY29tbWVuZGVkIHRoYXQgdGhlIHVzZSBvZiBkaW1ldGh5bG1lcmN1cnkgYmUgYXZvaWRlZCB1bmxlc3MgYWJzb2x1dGVseSBuZWNlc3NhcnkgYW5kIG1hbmRhdGVkIHRoZSB1c2Ugb2YgcGxhc3RpYy1sYW1pbmF0ZSBnbG92ZXMgKFNpbHZlclNoaWVsZCkgd2hlbiBoYW5kbGluZyB0aGlzIGNvbXBvdW5kLg0KMTk5NyAoSnVuIDEzKTpbSmFja10gQm9yZGVyDQoxOTk3IChKdW4gMjYpOltCb29rXSAzMllPIEouIEsuIFJvd2xpbmcgcHVibGlzaGVzIGhlciBmaXJzdCBIYXJyeSBQb3R0ZXIgYm9vaywgVGhlIFBoaWxvc29waGVyJ3MgU3RvbmU7IA0KVGhlIENoYW1iZXIgb2YgU2VjcmV0cyAoMiBKdWx5IDE5OTgpLA0KVGhlIFByaXNvbmVyIG9mIEF6a2FiYW4gKDggSnVseSAxOTk5KSwNClRoZSBHb2JsZXQgb2YgRmlyZSAoOCBKdWx5IDIwMDApLA0KVGhlIE9yZGVyIG9mIHRoZSBQaG9lbml4ICgsIDI3IEp1bmUgMjAwMyksDQpUaGUgSGFsZi1CbG9vZCBQcmluY2UgKDE2IEp1bHkgMjAwNSksDQpUaGUgRGVhdGhseSBIYWxsb3dzICgyMSBKdWx5IDIwMDcpDQoxOTk3IChBdWcgMjUpOltTcGFjZV0gQWR2YW5jZWQgQ29tcG9zaXRpb24gRXhwbG9yZXIgaXMgYSBOQVNBIEV4cGxvcmVyIHByb2dyYW0gc2F0ZWxsaXRlIGFuZCBzcGFjZSBleHBsb3JhdGlvbiBtaXNzaW9uIHRvIHN0dWR5IG1hdHRlciBjb21wcmlzaW5nIGVuZXJnZXRpYyBwYXJ0aWNsZXMgZnJvbSB0aGUgc29sYXIgd2luZCwgdGhlIGludGVycGxhbmV0YXJ5IG1lZGl1bSwgYW5kIG90aGVyIHNvdXJjZXMuDQoxOTk3IChTZXAgMTMpOiB0aGUgaW50cm9kdWN0b3J5IGVwaXNvZGUgb2YgU2hha3RpbWFuIHdhcyBhaXJlZCBvbiBEb29yZGFyc2hhbiAoSW5kaWEncyBuYXRpb25hbCB0ZWxldmlzaW9uIG5ldHdvcmspIGZyb20gMjcgU2VwdGVtYmVyIDE5OTcgdG8gMjcgTWFyY2ggMjAwNSwgb24gU3VuZGF5cyBhdCAxMiBub29uIElTVC4gVGhlIHRlbGVjYXN0IHNsb3QsIGhvd2V2ZXIgd2FzIHNoaWZ0ZWQgdG8gOTozMCBhLm0uIGZvciB0aGUgbGFzdCBlcGlzb2Rlcy4gDQoxOTk3IChTZXAgMjcgMTA6MjMgVVRDKTpbU3BhY2VdW01hcnNdIExhc3QgY29udGFjdCB3aXRoIE1hcnMgUGF0aGZpbmRlci4gTWlzc2lvbiBkdXJhdGlvbiAoTGF1bmNoIHRvIGxhc3QgY29udGFjdCk6IDkgbW9udGhzLCAyMyBkYXlzLg0KMTk5NyAoT2N0IDMxKTpbQm9va10gRG9uYWxkIFRydW1wJ3MgVHJ1bXA6IFRoZSBBcnQgb2YgdGhlIENvbWViYWNrOyBUaGUgQW1lcmljYSBXZSBEZXNlcnZlICgyMDAwKTsgVHJ1bXA6IFRoaW5rIExpa2UgYSBCaWxsaW9uYWlyZTogRXZlcnl0aGluZyBZb3UgTmVlZCB0byBLbm93IEFib3V0IFN1Y2Nlc3MsIFJlYWwgRXN0YXRlLCBhbmQgTGlmZSAoMjAwNCk7IFdoeSBXZSBXYW50IFlvdSB0byBCZSBSaWNoICgyMDA2KTsgVHJ1bXA6IFRoZSBCZXN0IFJlYWwgRXN0YXRlIEFkdmljZSBJIEV2ZXIgUmVjZWl2ZWQ6IDEwMCBUb3AgRXhwZXJ0cyBTaGFyZSBUaGVpciBTdHJhdGVnaWVzICgyMDA2LCBOb3YgMSk7IFRoaW5rIEJJRyBhbmQgS2ljayBBc3MgaW4gQnVzaW5lc3MgYW5kIExpZmUgKDIwMDcpOyBUcnVtcCBOZXZlciBHaXZlIFVwOiBIb3cgSSBUdXJuZWQgTXkgQmlnZ2VzdCBDaGFsbGVuZ2VzIGludG8gU3VjY2VzcyAoMjAwOCk7IFRpbWUgdG8gR2V0IFRvdWdoOiBNYWtpbmcgQW1lcmljYSAjMSBBZ2FpbiAoMjAxMSk7IENyaXBwbGVkIEFtZXJpY2E6IEhvdyB0byBNYWtlIEFtZXJpY2EgR3JlYXQgQWdhaW4gKDIwMTUpDQoxOTk3OiBBcnVuZGhhdGkgUm95IGJlY2FtZSB0aGUgZmlyc3QgSW5kaWFuIHRvIHdpbiBNYW4gQm9va2VyIFByaXplIGZvciBoZXIgbm92ZWwgJ1RoZSBHb2Qgb2YgU21hbGwgVGhpbmdzJy4NCjE5OTc6IElJVC1KRUUgd2FzIGNvbmR1Y3RlZCB0d2ljZSBhZnRlciB0aGUgUS1QYXBlciB3YXMgbGVha2VkLg0KMTk5NzogTkFTQSBlc3RpbWF0ZWQgdGhlcmUgd2VyZSBhcHByb3guIDIsNjQ1IGFydGlmaWNpYWwgc2F0ZWxsaXRlIHBheWxvYWRzIG9yYml0dGluZyB0aGUgZWFydGggYW5kIDYsMjE2IHBpZWNlcyBvZiBzcGFjZSBkZWJyaXMgYXMgdHJhY2tlZCBieSB0aGUgR1NGQy4gT3ZlciAxNiwyOTEgcHJldmlvdXNseSBsYXVuY2hlZCBvYmplY3RzIGhhdmUgZGVjYXllZCBpbnRvIHRoZSBFYXJ0aCdzIGF0bW9zcGhlcmUuDQoxOTk3OiBCSEMgRmluYW5jaWFsLCBJbmMuIG9mIFBlbm5zeWx2YW5pYSBtZXJnZWQgaW50byBGSVNWIHRvIGZvcm0gU2VjdXJlZCBUcmFuc2FjdGlvbiBQcm9jZXNzaW5nIFNlcnZpY2VzLg0KMTk5NzpbQm9va10gVGhlIEZvdXIgQWdyZWVtZW50czogQSBQcmFjdGljYWwgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSBpcyBhIHNlbGYtaGVscCBib29rIGJ5IGJlc3RzZWxsaW5nIGF1dGhvciBEb24gTWlndWVsIFJ1aXogd2l0aCBKYW5ldCBNaWxsczsgVGhlIE1hc3Rlcnkgb2YgTG92ZTogQSBQcmFjdGljYWwgR3VpZGUgdG8gdGhlIEFydCBvZiBSZWxhdGlvbnNoaXAgLS1Ub2x0ZWMgV2lzZG9tIEJvb2sgKDE5OTksIE1hciAzMCk7IFRoZSBWb2ljZSBvZiBLbm93bGVkZ2U6IEEgUHJhY3RpY2FsIEd1aWRlIHRvIElubmVyIFBlYWNlICgyMDA0LCBNYXIgMTApOyBUaGUgRmlmdGggQWdyZWVtZW50OiBBIFByYWN0aWNhbCBHdWlkZSB0byBTZWxmLU1hc3RlcnkgKDIwMDkpOyBUaGUgQ2lyY2xlIG9mIEZpcmU6IEluc3BpcmF0aW9uIGFuZCBHdWlkZWQgTWVkaXRhdGlvbnMgZm9yIExpdmluZyBpbiBMb3ZlIGFuZCBIYXBwaW5lc3MgKDIwMTMsIEF1ZyAxKTsgVGhlIE1hc3Rlcnkgb2YgU2VsZjogQSBUb2x0ZWMgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSAoMjAxNiwgTWF5IDYpDQoxOTk3OltCb29rXSBKb24gS3Jha2F1ZXIncyBJbnRvIFRoaW4gQWlyOiBBIFBlcnNvbmFsIEFjY291bnQgb2YgdGhlIE10LiBFdmVyZXN0IERpc2FzdGVyOyBVbmRlciB0aGUgQmFubmVyIG9mIEhlYXZlbiAoMjAwMyBKdWwpDQoxOTk3IChEZWMgMTEpOltFbnZdIFRoZSBLeW90byBQcm90b2NvbCB3YXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgd2hpY2ggZXh0ZW5kZWQgdGhlIDE5OTIgVW5pdGVkIE5hdGlvbnMgRnJhbWV3b3JrIENvbnZlbnRpb24gb24gQ2xpbWF0ZSBDaGFuZ2UgKFVORkNDQykgdGhhdCBjb21taXRzIHN0YXRlIHBhcnRpZXMgdG8gcmVkdWNlIGdyZWVuaG91c2UgZ2FzIGVtaXNzaW9ucywgYmFzZWQgb24gdGhlIHNjaWVudGlmaWMgY29uc2Vuc3VzIHRoYXQgKHBhcnQgb25lKSBnbG9iYWwgd2FybWluZyBpcyBvY2N1cnJpbmcgYW5kIChwYXJ0IHR3bykgdGhhdCBodW1hbi1tYWRlIENPMiBlbWlzc2lvbnMgYXJlIGRyaXZpbmcgaXQuDQoxOTk3OltJbmRpYV1bRWR1Y2F0aW9uXVtDdWx0dXJlXSBFa2xhdnlhIE1vZGVsIFJlc2lkZW50aWFsIFNjaG9vbCBpcyBhIEdvdmVybm1lbnQgb2YgSW5kaWEgc2NoZW1lIGZvciBtb2RlbCByZXNpZGVudGlhbCBzY2hvb2wgZm9yIEluZGlhbiB0cmliYWxzIGFjcm9zcyBJbmRpYS4gSXQgaXMgb25lIG9mIHRoZSBmbGFnc2hpcCBpbnRlcnZlbnRpb25zIG9mIHRoZSBNaW5pc3RyeSBvZiBUcmliYWwgQWZmYWlycywgR292ZXJubWVudCBvZiBJbmRpYSBhbmQgd2FzIGludHJvZHVjZWQgaW4gdGhlIHllYXIgMTk5Ny05OCB0byBlbnN1cmUgdHJpYmFsIHN0dWRlbnRzIGdldCBhY2Nlc3MgdG8gcXVhbGl0eSBlZHVjYXRpb24gaW4gdGhlIHJlbW90ZSB0cmliYWwgYXJlYXMuIEVNUlNzIGFyZSBzZXQgdXAgaW4gU3RhdGVzL1VUcyB3aXRoIGdyYW50cyB1bmRlciBBcnRpY2xlIDI3NSgxKSBvZiB0aGUgQ29uc3RpdHV0aW9uIG9mIEluZGlhLiBBcyBwZXIgdGhlIGJ1ZGdldCAyMDE4LTE5LCBldmVyeSBibG9jayB3aXRoIG1vcmUgdGhhbiA1MCUgU1QgcG9wdWxhdGlvbiBhbmQgYXQgbGVhc3QgMjAsMDAwIHRyaWJhbCBwZXJzb25zLCB3aWxsIGhhdmUgYW4gRWtsYXZ5YSBNb2RlbCBSZXNpZGVudGlhbCBTY2hvb2wgYnkgdGhlIHllYXIgMjAyMi4NCjE5OTc6W1NwYWNlXSBIaXBwYXJjb3MgKDE5ODkgLTE5OTMpLiBJdCB0b29rIDQtOCB5ZWFycyB0byBvcmdhbml6ZSBhbmQgcHVibGlzaCB0aGUgNCB5ZWFycyBzdHVkeSBieSB0aGlzIGV4cGVyaW1lbnQsIHdoaWNoIHBlcm1pdHRlZCB0aGUgZmlyc3QgaGlnaC1wcmVjaXNpb24gbWVhc3VyZW1lbnRzIG9mIHRoZSBpbnRyaW5zaWMgYnJpZ2h0bmVzc2VzIChjb21wYXJlZCB0byB0aGUgbGVzcyBwcmVjaXNlIGFwcGFyZW50IGJyaWdodG5lc3MpLCBwcm9wZXIgbW90aW9ucywgYW5kIHBhcmFsbGF4ZXMgb2Ygc3RhcnMsIGVuYWJsaW5nIGJldHRlciBjYWxjdWxhdGlvbnMgb2YgdGhlaXIgZGlzdGFuY2UgYW5kIHRhbmdlbnRpYWwgdmVsb2NpdHkuIFdoZW4gY29tYmluZWQgd2l0aCByYWRpYWwgdmVsb2NpdHkgbWVhc3VyZW1lbnRzIGZyb20gc3BlY3Ryb3Njb3B5LCBhc3Ryb3BoeXNpY2lzdHMgd2VyZSBhYmxlIHRvIGZpbmFsbHkgbWVhc3VyZSBhbGwgc2l4IHF1YW50aXRpZXMgbmVlZGVkIHRvIGRldGVybWluZSB0aGUgbW90aW9uIG9mIHN0YXJzLiBUaGUgcmVzdWx0aW5nIEhpcHBhcmNvcyBDYXRhbG9ndWUsIGEgaGlnaC1wcmVjaXNpb24gY2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiAxMTgsMjAwIHN0YXJzLCB3YXMgcHVibGlzaGVkIGluIDE5OTcuIFRoZSBsb3dlci1wcmVjaXNpb24gVHljaG8gQ2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiBhIG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBhdCB0aGUgc2FtZSB0aW1lLCB3aGlsZSB0aGUgZW5oYW5jZWQgVHljaG8tMiBDYXRhbG9ndWUgb2YgMi41IG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBpbiAyMDAwLiBIaXBwYXJjb3MnIGZvbGxvdy11cCBtaXNzaW9uLCBHYWlhLCB3YXMgbGF1bmNoZWQgaW4gMjAxMy4NCjE5OTc6W1NwYWNlXVtSZXNlYXJjaF0gU2luY2UgdGhlIDE5OTcgcHJvcG9zYWwgb2YgdGhlIEFkUy9DRlQgKEFudGktZGUgU2l0dGVyL0NvbmZvcm1hbCBGaWVsZCBUaGVvcnkpIGNvcnJlc3BvbmRlbmNlLCB0aGUgcHJlZG9taW5hbnQgYmVsaWVmIGFtb25nIHBoeXNpY2lzdHMgaXMgdGhhdCBpbmZvcm1hdGlvbiBpcyBpbmRlZWQgcHJlc2VydmVkIGluIGJsYWNrIGhvbGUgZXZhcG9yYXRpb24uIA0KMTk5NzpbU3BhY2VdW1Jlc2VhcmNoXSBBIHdpZGVseSBwdWJsaWNpemVkIGJldCBtYWRlIGluIDE5OTcgYmV0d2VlbiBKb2huIFByZXNraWxsIG9uIHRoZSBvbmUgaGFuZCB3aXRoIEhhd2tpbmcgYW5kIEtpcCBUaG9ybmUgb24gdGhlIG90aGVyIHRoYXQgaW5mb3JtYXRpb24gd2FzIG5vdCBsb3N0IGluIGJsYWNrIGhvbGVzLiBUaGUgc2NpZW50aWZpYyBkZWJhdGUgb24gdGhlIHBhcmFkb3ggd2FzIGRlc2NyaWJlZCBpbiBhIHBvcHVsYXIgYm9vayBwdWJsaXNoZWQgaW4gMjAwOCBieSBMZW9uYXJkIFN1c3NraW5kIGNhbGxlZCBUaGUgQmxhY2sgSG9sZSBXYXIuIChUaGUgYm9vayBjYXJlZnVsbHkgbm90ZXMgdGhhdCB0aGUgJ3dhcicgd2FzIHB1cmVseSBhIHNjaWVudGlmaWMgb25lLCBhbmQgdGhhdCBhdCBhIHBlcnNvbmFsIGxldmVsLCB0aGUgcGFydGljaXBhbnRzIHJlbWFpbmVkIGZyaWVuZHMuKSBUaGUgYm9vayBzdGF0ZXMgdGhhdCBIYXdraW5nIHdhcyBldmVudHVhbGx5IHBlcnN1YWRlZCB0aGF0IGJsYWNrLWhvbGUgZXZhcG9yYXRpb24gd2FzIHVuaXRhcnkgYnkgdGhlIGhvbG9ncmFwaGljIHByaW5jaXBsZSwgd2hpY2ggd2FzIGZpcnN0IHByb3Bvc2VkIGJ5ICd0IEhvb2Z0LCBmdXJ0aGVyIGRldmVsb3BlZCBieSBTdXNza2luZCBhbmQgbGF0ZXIgZ2l2ZW4gYSBwcmVjaXNlIHN0cmluZyB0aGVvcnkgaW50ZXJwcmV0YXRpb24gYnkgdGhlIEFkUy9DRlQgY29ycmVzcG9uZGVuY2UuIEluIDIwMDQsIEhhd2tpbmcgYWxzbyBjb25jZWRlZCB0aGUgMTk5NyBiZXQsIHBheWluZyBQcmVza2lsbCB3aXRoIGEgYmFzZWJhbGwgZW5jeWNsb3BlZGlhICJmcm9tIHdoaWNoIGluZm9ybWF0aW9uIGNhbiBiZSByZXRyaWV2ZWQgYXQgd2lsbCIgYWx0aG91Z2ggVGhvcm5lIHJlZnVzZWQgdG8gY29uY2VkZS4NCjE5OTc6W0VhcnRoXVtQaHlzaWNzXVtSZXNlYXJjaF0gdGhlcmUgd2VyZSB0d28gbGFyZ2UgZWFydGhxdWFrZXMgb2ZmIHRoZSBjb2FzdCBvZiBDaGlsZS4gVGhlIG1hZ25pdHVkZSBvZiB0aGUgZmlyc3QsIGluIEp1bHksIHdhcyBlc3RpbWF0ZWQgYXQgTXfigK82LjksIGJ1dCB3YXMgYmFyZWx5IGZlbHQsIGFuZCBvbmx5IGluIHRocmVlIHBsYWNlcy4gSW4gT2N0b2JlciBhIE134oCvNy4xIHF1YWtlIGluIG5lYXJseSB0aGUgc2FtZSBsb2NhdGlvbiwgYnV0IHR3aWNlIGFzIGRlZXAgYW5kIG9uIGEgZGlmZmVyZW50IGtpbmQgb2YgZmF1bHQsIHdhcyBmZWx0IG92ZXIgYSBicm9hZCBhcmVhLCBpbmp1cmVkIG92ZXIgMzAwIHBlb3BsZSwgYW5kIGRlc3Ryb3llZCBvciBzZXJpb3VzbHkgZGFtYWdlZCBvdmVyIDEwLDAwMCBob3VzZXMuIEFzIGNhbiBiZSBzZWVuIGluIHRoZSB0YWJsZSBiZWxvdywgdGhpcyBkaXNwYXJpdHkgb2YgZGFtYWdlIGRvbmUgaXMgbm90IHJlZmxlY3RlZCBpbiBlaXRoZXIgdGhlIG1vbWVudCBtYWduaXR1ZGUgKE134oCvKSBub3IgdGhlIHN1cmZhY2Utd2F2ZSBtYWduaXR1ZGUgKE1z4oCvKS4gT25seSB3aGVuIHRoZSBtYWduaXR1ZGUgaXMgbWVhc3VyZWQgb24gdGhlIGJhc2lzIG9mIHRoZSBib2R5LXdhdmUgKG1i4oCvKSBvciB0aGUgc2Vpc21pYyBlbmVyZ3kgKE1l4oCvKSBpcyB0aGVyZSBhIGRpZmZlcmVuY2UgY29tcGFyYWJsZSB0byB0aGUgZGlmZmVyZW5jZSBpbiBkYW1hZ2UuIChhcyByZXNlYXJjaGVkIGJ5IENob3ksIEJvYXR3cmlnaHQgJiBLaXJieSAyMDAxLCBwLiAxMy4pLiBNdyA2Ljkgd2FzIGFjdHVhbGx5IE1lIDYuMSwgYW4gaW50ZXJwbGF0ZS10aHJ1c3QgdHlwZSBvZiBmYXVsdCwgd2hpbGUgTXcgNy4xIHdhcyBhY3R1YWxseSBhIDcuNSBNZSBpbnRyYXNsYWItbm9ybWFsIHR5cGUgb2YgZmF1bHQuDQoxOTk3OltSZXNlYXJjaF0gRHVyaW5nIHN1cnZleXMgY2FycmllZCBvdXQgYmV0d2VlbiAxOTk3IGFuZCAyMDAxLCBhIHNwb3Qgd2FzIGZvdW5kIGFsb25nIHRoZSBNYXJpYW5hIFRyZW5jaCB0aGF0IGhhZCBhIGRlcHRoIHNpbWlsYXIgdG8gdGhlIENoYWxsZW5nZXIgRGVlcCwgcG9zc2libHkgZXZlbiBkZWVwZXIuIEl0IHdhcyBkaXNjb3ZlcmVkIHdoaWxlIHNjaWVudGlzdHMgZnJvbSB0aGUgSGF3YWlpIEluc3RpdHV0ZSBvZiBHZW9waHlzaWNzIGFuZCBQbGFuZXRvbG9neSB3ZXJlIGNvbXBsZXRpbmcgYSBzdXJ2ZXkgYXJvdW5kIEd1YW07IHRoZXkgdXNlZCBhIHNvbmFyIG1hcHBpbmcgc3lzdGVtIHRvd2VkIGJlaGluZCB0aGUgcmVzZWFyY2ggc2hpcCB0byBjb25kdWN0IHRoZSBzdXJ2ZXkuIFRoaXMgbmV3IHNwb3Qgd2FzIG5hbWVkIHRoZSBITVJHIChIYXdhaWkgTWFwcGluZyBSZXNlYXJjaCBHcm91cCkgRGVlcCwgYWZ0ZXIgdGhlIGdyb3VwIG9mIHNjaWVudGlzdHMgd2hvIGRpc2NvdmVyZWQgaXQuDQoxOTk3OltTcGFjZVhdIEEgcmVzb2x2ZWQgY2lyY3Vtc3RlbGxhciBkaXNrIHdhcyBmaXJzdCBpZGVudGlmaWVkIGluIDE5OTcgd2l0aCB0aGUgT3dlbnMgVmFsbGV5IFJhZGlvIE9ic2VydmF0b3J5LiBUaGUgc2VtaS1tYWpvciBheGlzIHdhcyBpbml0aWFsbHkgZXN0aW1hdGVkIHRvIGJlIDExMCBBVS4gSEQgMTYzMjk2IGFuZCBzdXJyb3VuZGluZ3MgQ3JlZGl0OiBFU08vRGlnaXRpemVkIFNreSBTdXJ2ZXkgMjsgQWNrbm93bGVkZ2VtZW50OiBEYXZpZGUgRGUgTWFydGluIE9ic2VydmF0aW9uIGRhdGEgRXBvY2ggSjIwMDAgICAgICBFcXVpbm94IEoyMDAwIENvbnN0ZWxsYXRpb24JU2FnaXR0YXJpdXMgUmlnaHQgYXNjZW5zaW9uCTE3aCA1Nm0gMjEuMjlzIERlY2xpbmF0aW9uCeKIkjIxwrAgNTfigLIgMjEuODfigLMgQXBwYXJlbnQgbWFnbml0dWRlIChWKQk2Ljg1OyBDaGFyYWN0ZXJpc3RpY3MgRXZvbHV0aW9uYXJ5IHN0YWdlCUhlcmJpZyBBZSBzdGFyIFNwZWN0cmFsIHR5cGUJQTNWYWVrQTFtQTE7IEFzdHJvbWV0cnkgUmFkaWFsIHZlbG9jaXR5IChSdikJLTQuMDAgwrEzLjNbM10ga20vcyBQcm9wZXIgbW90aW9uICjOvCkJUkE6IC03LjU4NiDCsTAuMDQxIG1hcy95cjsgRGVjLjogLTM5LjQ1OCDCsTAuMDI5IG1hcy95cls0XSBQYXJhbGxheCAoz4ApCTkuOTA0M8KxMC4wNDA4IG1hc1s0XSBEaXN0YW5jZQkzMjkgwrEgMSBseSAoMTAxLjAgwrEgMC40IHBjKSBEZXRhaWxzOyBNYXNzCTEuOTXCsTAuMDcgTeKYiSBSYWRpdXMJMS44N8KxMC4wNSBS4piJIEx1bWlub3NpdHkJMjAuNCszLjYg4oiSMy4wIEzimIkgU3VyZmFjZSBncmF2aXR5IChsb2cgZykJNC4xMMKxMC4xMCBjZ3MgVGVtcGVyYXR1cmUJOTAwMMKxMjUwIEsgQWdlCTYuMDMrMC4yOCDiiJIwLjI3IE15ciBPdGhlciBkZXNpZ25hdGlvbnMgQkQtMjEgNDc3OSwgQ1BELTIxIDY1MDgsIEVNKiBNV0MgMjc1LCBISVAgODc4MTksIElSQVMgMTc1MzMtMjE1NiwgMk1BU1MgSjE3NTYyMTI4LTIxNTcyMTgsIFBEUyA0NzMsIFRZQyA2MjYyLTIxMzEtMSwgRGF0YWJhc2UgcmVmZXJlbmNlcyBTSU1CQUQNCjE5OTc6W1NwYWNlWF0gMTAxOTkgQ2hhcmlrbG8gaXMgYSByaW5nZWQgYXN0ZXJvaWQgb3IgY2VudGF1ciBpbiB0aGUgb3V0ZXIgU29sYXIgU3lzdGVtLiBJdCBpcyB0aGUgbGFyZ2VzdCBrbm93biBjZW50YXVyLCB3aXRoIGEgZGlhbWV0ZXIgb2YgYWJvdXQgMjUwIGttLiBJdCBvcmJpdHMgdGhlIFN1biBiZXR3ZWVuIFNhdHVybiBhbmQgVXJhbnVzIHdpdGggYW4gb3JiaXRhbCBwZXJpb2Qgb2YgNjIuNSB5ZWFycy4gV2lraXBlZGlhIE9yYml0YWwgcGVyaW9kOiA2MyB5ZWFycyBSYWRpdXM6IDE1MSBrbSBEaXNjb3ZlcmVkOiAxNSBGZWJydWFyeSAxOTk3IERpbWVuc2lvbnM6ICgyODcuNisyLjg7IOKIkjMuMCkgw5cgKDI3MC40KzIuODsg4oiSNS42KSDDlyAoMTk4LjIrMTAuODsg4oiSNS40KSBrbTogMTEgRGlzY292ZXJlcjogSmFtZXMgVi4gU2NvdHRpIFNwZWN0cmFsIHR5cGU6IEQtdHlwZSBhc3Rlcm9pZCBBcGhlbGlvbjogMTguNDIwIEFVDQoxOTk3OltTcGFjZVhdIFRoZSBHcmVhdCBEYXlsaWdodCBGaXJlYmFsbCAtIFRoZSBhdG1vc3BoZXJpYyBwYXNzIG1vZGlmaWVkIHRoZSBvYmplY3QncyBtYXNzIGFuZCBvcmJpdCBhcm91bmQgdGhlIFN1bi4gQSAxOTk0IHN0dWR5IGZvdW5kIHRoYXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgaW4gYW4gRWFydGgtY3Jvc3Npbmcgb3JiaXQgYW5kIHByZWRpY3RlZCB0aGF0IGl0IHdvdWxkIHBhc3MgY2xvc2UgdG8gRWFydGggYWdhaW4gaW4gQXVndXN0IDE5OTcuIEhvd2V2ZXIsIHRoZSBvYmplY3QgaGFzIG5vdCBiZWVuIG9ic2VydmVkIGFnYWluIGFuZCBzbyBpdHMgcG9zdC1lbmNvdW50ZXIgb3JiaXQgcmVtYWlucyB1bmtub3duLg0KMTk5NzpOYWZpc2EgSm9zZXBoIHdhcyB0aGUgeW91bmdlc3QgTWlzcyBJbmRpYSB3aW5uZXIgYXQgYWdlIDE5LCB3aW5uaW5nIHRoZSB0aXRsZSBpbiAxOTk3LiBTaGUgbGF0ZXIgYmVjYW1lIGEgbW9kZWwgYW5kIHRlbGV2aXNpb24gcGVyc29uYWxpdHkuIFdoaWxlIG90aGVyIHdpbm5lcnMgbGlrZSBNZWVuYWtzaGkgU2VzaGFkcmkgd2VyZSBhbHNvIDE3IHdoZW4gdGhleSB3b24gaW4gMTk4MSwgSm9zZXBoIGlzIG9mdGVuIGNpdGVkIGZvciBoZXIgZWFybHkgd2luIGF0IDE5LCB3aGljaCB3YXMgdGhlbiBhIHlvdW5nZXIgYWdlIHRoYW4gaXMgdHlwaWNhbGx5IHNlZW4gaW4gdGhlIGNvbXBldGl0aW9uLiANCjE5OTc6W3NwYWNlXVt0ZWNoXSBUaGUgZmluYWwgQmxvY2sgSUlBIHdhcyBpbiBOb3YgMTk5Nywgd2hpbGUgQmxvY2sgSUlScyBiZWdhbiByZXBsYWNpbmcgdGhlbSBzaG9ydGx5IGFmdGVyLCBsYXN0aW5nIHVudGlsIDIwMDQuIEJsb2NrIElJUiAoUmVwbGVuaXNobWVudCkgbGF1bmNoZXMgZm9sbG93ZWQgZnJvbSAxOTk3IHRvIDIwMDQsIHdpdGggdGhlIGZpcnN0IGxhdW5jaCBpbiBKYW51YXJ5IDE5OTcuIA0KDQoxOTk4OltTcGFjZVhdIFRoZSBwcmltYXJ5IGNvbnN0cnVjdGlvbiBwaGFzZSBvZiB0aGUgSW50ZXJuYXRpb25hbCBTcGFjZSBTdGF0aW9uIChJU1MpIHRvb2sgYXBwcm94aW1hdGVseSAxMyB5ZWFycywgZnJvbSAxOTk4IHRvIDIwMTEsIHdpdGggdGhlIGZpcnN0IG1vZHVsZSBsYXVuY2hpbmcgaW4gTm92ZW1iZXIgMTk5OCBhbmQgSVNTIEFzc2VtYmx5IENvbXBsZXRlIGRlY2xhcmVkIGluIE1heSAyMDExLiBIb3dldmVyLCBhc3NlbWJseSB3YXMgYSBjb250aW51b3VzLCBtdWx0aS1zdGFnZSBwcm9jZXNzIGludm9sdmluZyBtb3JlIHRoYW4gMzAgbWlzc2lvbnMsIG51bWVyb3VzIHNwYWNld2Fsa3MsIGFuZCByb2JvdGljIGFzc2lzdGFuY2UgdG8gYnVpbGQgdGhlIHN0YXRpb24gcGllY2UgYnkgcGllY2UgaW4gb3JiaXQuIEV2ZW4gYWZ0ZXIgMjAxMSwgdGhlIElTUyBjb250aW51ZWQgdG8gZXZvbHZlIHdpdGggb25nb2luZyBhZGRpdGlvbnMgYW5kIHVwZ3JhZGVzLg0KMTk5ODpbUmVzZWFyY2hdW1NwYWNlXSBTcHJpbmcsIDE5OTg6IGEgbWljcm9mb3NzaWwgdGhhdCB3YXMgZm91bmQgaW4gYSBtZXRlb3JpdGUgYW5kIHBob3RvZ3JhcGhlZCBpbiAxOTY2LCB3YXMgcmVjb2duaXplZCBieSBhIFJ1c3NpYW4gbWljcm9iaW9sb2dpc3QgYXMgYSBtYWduZXRvdGFjdGljIGJhY3Rlcml1bS4gQnkgRmFsbCwgMTk5ODogTkFTQSdzIHB1YmxpYyBwb3NpdGlvbiBvbiBsaWZlLWZyb20tc3BhY2Ugc2hpZnRlZCBkcmFtYXRpY2FsbHkuDQoxOTk4OiBBcyBhIHJlc2VhcmNoIHByb2plY3QgYXQgU3RhbmZvcmQgVW5pdmVyc2l0eSwgU2VyZ2V5IEJyaW4gYW5kIExhcnJ5IFBhZ2UgY3JlYXRlZCBhIHNlYXJjaCBlbmdpbmUgdGhhdCBsaXN0ZWQgcmVzdWx0cyBhY2NvcmRpbmcgdG8gdGhlIHBvcHVsYXJpdHkgb2YgdGhlIHBhZ2VzLCBhZnRlciBjb25jbHVkaW5nIHRoYXQgdGhlIG1vc3QgcG9wdWxhciByZXN1bHQgd291bGQgb2Z0ZW4gYmUgdGhlIG1vc3QgdXNlZnVsLiBBZnRlciByYWlzaW5nICQxIG1pbGxpb24gZnJvbSBmYW1pbHksIGZyaWVuZHMgYW5kIG90aGVyIGludmVzdG9ycywgdGhlIHBhaXIgbGF1bmNoZWQgdGhlIGNvbXBhbnkgaW4gMTk5OC4gR29vZ2xlIGhhcyBzaW5jZSBiZWNvbWUgdGhlIHdvcmxk4oCZcyBtb3N0IHBvcHVsYXIgc2VhcmNoIGVuZ2luZSwgcmVjZWl2aW5nIG1vcmUgdGhhbiAyMDAgbWlsbGlvbiBxdWVyaWVzIGVhY2ggZGF5Lg0KMTk5OCAoTm92IDIwKTogDQoxOTk4IChBcHIgMjcpOiBSUkIgZm91bmRlZCBhcyBSYWlsd2F5IFJlY3J1aXRtZW50IENvbnRyb2wgQm9hcmQgaXMgYSBnb3Zlcm5tZW50IG9yZ2FuaXNhdGlvbiBpbiBJbmRpYS4gSXQgd2FzIHNldCB1cCBpbiAxOTk4IGluIHRoZSBNaW5pc3RyeSBvZiBSYWlsd2F5cyAoUmFpbHdheSBCb2FyZCksIE5ldyBEZWxoaS5JbiAxOTQ1LCB0aGUgU2VydmljZXMgQ29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgYXQgQm9tYmF5LCBDYWxjdXR0YSwgTWFkcmFzIGFuZCBMdWNrbm93LiBJbiAxOTgzLCB0byBjYXRlciB0byB0aGUgbmVlZHMgb2YgYXJlYXMgd2hpY2ggd2VyZSBiZWluZyBuZWdsZWN0ZWQgZHVlIHRvIGxvY2F0aW9ucyBvZiB0aGUgZXhpc3RpbmcgY29tbWlzc2lvbnMsIHNldmVuIG1vcmUgY29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgdml6LCBhdCBBaG1lZGFiYWQsIEFqbWVyLCBCaG9wYWwsIEJodXZuZXNod2FyLCBDaGFuZGlnYXJoLCBKYW1tdSBhbmQgU3JpbmFnYXIgd2l0aCBzaXR0aW5nIGF0IExlaCBhbmQgVHJpdmVuZHJ1bS4gSW4gMTk4NCB0d28gbW9yZSBzZXJ2aWNlIGNvbW1pc3Npb25zIHdlcmUgc2V0IHVwIGF0IE1hbGRhIGFuZCBHb3Jha2hwdXIuDQoxOTk4IChNYXkgMTkpOiBBdGFsIEJpaGFyaSBWYWpwYXllZSBiZWNvbWVzIFBNIG9mIEluZGlhIGZvciB0aGUgc2Vjb25kIHRpbWUsIG5vdyBmb3IgNiB5ZWFycyB0aWxsIE1heSAyMiwgMjAwNC4gDQoxOTk4IChNYXkgMjggMTU6MTVQU1QpOiBDaGFnYWktSSBpcyB0aGUgY29kZSBuYW1lIG9mIGZpdmUgc2ltdWx0YW5lb3VzIHVuZGVyZ3JvdW5kIG51Y2xlYXIgdGVzdHMgY29uZHVjdGVkIGJ5IFBha2lzdGFuLiBUaGUgdGVzdHMgd2VyZSBwZXJmb3JtZWQgYXQgUmFzIEtvaCBIaWxscyBpbiB0aGUgQ2hhZ2FpIERpc3RyaWN0IG9mIEJhbG9jaGlzdGFuIFByb3ZpbmNlLiBDaGFnYWktSSB3YXMgUGFraXN0YW4ncyBmaXJzdCBwdWJsaWMgdGVzdCBvZiBudWNsZWFyIHdlYXBvbnMuIFBha2lzdGFuJ3MgZmlzc2lsZSBtYXRlcmlhbCBwcm9kdWN0aW9uIHRha2VzIHBsYWNlIGF0IE5pbG9yZSwgS2FodXRhLCBhbmQgS2h1c2hhYiBOdWNsZWFyIENvbXBsZXgsIHdoZXJlIHdlYXBvbnMtZ3JhZGUgcGx1dG9uaXVtIGlzIHJlZmluZWQuDQoxOTk4OiBBZnRlciBjb21wbGV0aW5nIGhpcyBYIHN0YW5kYXJkIGV4YW1pbmF0aW9ucywgUmFuYmlyIEthcG9vciwgYWdlZCAxNiwgd29ya2VkIGFzIGFuIGFzc2lzdGFudCBkaXJlY3RvciB0byBoaXMgZmF0aGVyIG9uIHRoZSBmaWxtIEFhIEFiIExhdXQgQ2hhbGVuICgxOTk5KSwgZHVyaW5nIHdoaWNoIGhlIGRldmVsb3BlZCBhIGNsb3NlciBib25kIHdpdGggaGltLg0KMTk4ODogTmV0d29ya2VkIERhdGEgUHJvY2Vzc2luZyBDb3IsIElvd2EgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBJbnN1cmFuY2UgZGl2aXNpb24uDQoxOTk4OltCb29rXSBSb2JlcnQgR3JlZW5lJ3MgVGhlIDQ4IExhd3Mgb2YgUG93ZXI7IFRoZSAzMyBTdHJhdGVnaWVzIG9mIFdhciAoMjAwNik7IE1hc3RlcnkgKDIwMTIsIE5vdiAxMyk7IFRoZSBMYXdzIG9mIEh1bWFuIE5hdHVyZSAoMjAxOCwgT2N0IDE2KQ0KMTk5ODpbU3BhY2VdW1Jlc2VhcmNoXVtFeHRyZW1lXSBUaGVuIGNhbWUgMTk5OCBhbmQgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgKEhTVCkgb2JzZXJ2YXRpb25zIG9mIHZlcnkgZGlzdGFudCBzdXBlcm5vdmFlIHRoYXQgc2hvd2VkIHRoYXQsIGEgbG9uZyB0aW1lIGFnbywgdGhlIHVuaXZlcnNlIHdhcyBhY3R1YWxseSBleHBhbmRpbmcgbW9yZSBzbG93bHkgdGhhbiBpdCBpcyB0b2RheS4gU28gdGhlIGV4cGFuc2lvbiBvZiB0aGUgdW5pdmVyc2UgaGFzIG5vdCBiZWVuIHNsb3dpbmcgZHVlIHRvIGdyYXZpdHksIGFzIGV2ZXJ5b25lIHRob3VnaHQsIGl0IGhhcyBiZWVuIGFjY2VsZXJhdGluZy4NCjE5OTg6W0NyaW1lXVtJbmRpYV0gQW5lZXMgYXJyZXN0ZWQgaW4gVUFFIG9uIGNoYXJnZXMgb2YgaGF2aW5nIG11cmRlcmVkIGEgZm9ybWVyIGFzc29jaWF0ZSBhbmQgdGhlbiByaXZhbCwgSXJmYW4gR29nYSwgaW4gRHViYWksIGJ1dCB3YXMgZnJlZWQgYWZ0ZXIgdHdvIGRheXMgZm9yICdsYWNrIG9mIGV2aWRlbmNlJy4NCjE5OTg6W0NvbXB1dGluZ11bUXVhbnR1bV0gUmVzZWFyY2hlcnMgYXQgSUJNLCBPeGZvcmQsIEJlcmtlbGV5LCBTdGFuZm9yZCwgYW5kIE1JVCBwcm9kdWNlZCBhIDItcXViaXQgY29tcHV0aW5nIHN5c3RlbS4NCjE5OTg6W3d3d10gV2lyZXNoYXJrIGlzIGEgZnJlZSBhbmQgb3Blbi1zb3VyY2UgcGFja2V0IGFuYWx5emVyLiBJdCBpcyB1c2VkIGZvciBuZXR3b3JrIHRyb3VibGVzaG9vdGluZywgYW5hbHlzaXMsIHNvZnR3YXJlIGFuZCBjb21tdW5pY2F0aW9ucyBwcm90b2NvbCBkZXZlbG9wbWVudCwgYW5kIGVkdWNhdGlvbi4gT3JpZ2luYWxseSBuYW1lZCBFdGhlcmVhbCwgdGhlIHByb2plY3Qgd2FzIHJlbmFtZWQgV2lyZXNoYXJrIGluIE1heSAyMDA2IGR1ZSB0byB0cmFkZW1hcmsgaXNzdWVzLg0KMTk5ODpbVVNdW0Vjb25vbXldRGF2aWQgUm9ja2VmZWxsZXIgU3IuIHdhcyBhd2FyZGVkIHRoZSBQcmVzaWRlbnRpYWwgTWVkYWwgb2YgRnJlZWRvbSBieSBQcmVzaWRlbnQgQmlsbCBDbGludG9uIGZvciBoaXMgd29yayBvbiBJbnRlcm5hdGlvbmFsIEV4ZWN1dGl2ZSBTZXJ2aWNlIENvcnBzLg0KMTk5ODpbRGVmXVtBdmlhdGlvbl0gVGhlIExvY2toZWVkIFNSLTcxIEJsYWNrYmlyZCBmbGV3IHNvIGhpZ2ggYW5kIHNvIGZhc3QgdGhhdCB0aGUgY3JldyBuZWVkZWQgcHJlc3N1cml6ZWQgc3BhY2Ugc3VpdHMgd2hlbiBmbHlpbmcgaXQuIEFuZCBpdCBpcyBzYWlkIHRoYXQgYXQgdGhlIG1heGltdW0gYWx0aXR1ZGUgb2YgaXQgaXQgd2FzIHBvc3NpYmxlIHRvIHNlZSB0aGUgY3VydmF0dXJlIG9mIHRoZSBlYXJ0aCwgd2hpY2ggcmVmZXJzIHRvIHRoaXMgcXVvdGUgYnkgQ29sb25lbCBBbGlzb246IOKAnE9uIGEgY2xlYXIgZGF5IHlvdSBjYW4gc2VlIGZvcmV2ZXLigKbigJ0uIFRoZSBzZXJ2aWNlIGNlaWxpbmcgb2YgODUsMDAwIGZlZXQgKDI1LDkwMG0pIG1lYW50IHRoYXQgaXQgd2FzIGFuIGV4Y2VsbGVudCBleHBlcmltZW50YWwgdW5pdCBmb3Igc3BhY2UgdHJhdmVscy4gVGhhdCwgY29tYmluZWQgd2l0aCB0aGUgZ3JlYXQgc3BlZWRzIG9mIGl0IHdhcyB0d28gb2YgdGhlIHJlYXNvbnMgd2h5IE5BU0EgZGVjaWRlZCB0byB0YWtlIG92ZXIgdGhlIGxhc3QgdHdvIEJsYWNrYmlyZHMgYWZ0ZXIgaXRzIHJldGlyZW1lbnQgZnJvbSB0aGUgQWlyIEZvcmNlIGluIDE5OTguIFRoaXMgbWVhbnMgdGhhdCB0aGUgd29ybGTigJlzIGZhc3Rlc3QgYWlyY3JhZnQgd2FzIGluIHNlcnZpY2UgZnJvbSAxOTY2IHVudGlsIE5BU0EgcmV0aXJlZCBpdHMgdHdvIHVuaXRzIGluIDE5OTksIGFuZCBtb3N0IG9mIHRoZSByZW1haW5pbmcgQmxhY2tiaXJkcyBhcmUgdG9kYXkgc3RhdGlvbmVkIGF0IG11c2V1bXMgb3IgbWlsaXRhcnkgYmFzZXMgYWNyb3NzIHRoZSBVUy4NCjE5OTg6SW4gMTk5OCwgR2F1dGFtIEFkYW5pLCBhbG9uZyB3aXRoIGhpcyBhc3NvY2lhdGUgU2hhbnRpbGFsIFBhdGVsLCB3YXMga2lkbmFwcGVkIGZvciByYW5zb20gaW4gQWhtZWRhYmFkLCBJbmRpYS4gVGhleSB3ZXJlIGFiZHVjdGVkIGF0IGd1bnBvaW50IGFmdGVyIGxlYXZpbmcgdGhlIEthcm5hdmF0aSBDbHViIGluIGEgY2FyLiBUaGUga2lkbmFwcGVycywgYWxsZWdlZGx5IGdhbmdzdGVycyBGYXpsdSBSZWhtYW4gYW5kIEJob2dpbGFsIERhcmppLCByZXBvcnRlZGx5IGRlbWFuZGVkIGEgcmFuc29tIG9mICQxLjUtMiBtaWxsaW9uLiBCb3RoIEFkYW5pIGFuZCBQYXRlbCB3ZXJlIHJlbGVhc2VkIGEgZGF5IGxhdGVyLCBidXQgaXQncyB1bmNsZWFyIGlmIHRoZSByYW5zb20gd2FzIHBhaWQuIA0KVGhlIGtpZG5hcHBpbmcgaW5jaWRlbnQgaGFwcGVuZWQgaW4gdGhlIG1pZC0xOTkwcywgYXJvdW5kIHRoZSB0aW1lIEFkYW5pJ3MgYnVzaW5lc3Mgc3VjY2Vzc2VzIHN0YXJ0ZWQgYXR0cmFjdGluZyB1bndhbnRlZCBhdHRlbnRpb24uIFRoZSBraWRuYXBwaW5nIHdhcyBhbGxlZ2VkbHkgY2FycmllZCBvdXQgYnkgRmF6bHUgUmVobWFuIGFuZCBCaG9naWxhbCBEYXJqaSwgYWxzbyBrbm93biBhcyAiTWFtYSIuIFRoZXkgd2VyZSBsYXRlciBhY3F1aXR0ZWQgZHVlIHRvIGxhY2sgb2YgZXZpZGVuY2UuIA0KVGhlIGFiZHVjdGlvbiBpcyBqdXN0IG9uZSBvZiB0aGUgY2hhbGxlbmdlcyBBZGFuaSBoYXMgZmFjZWQuIEhlIHdhcyBhbHNvIGNhdWdodCBpbiB0aGUgMjYvMTEgTXVtYmFpIHRlcnJvciBhdHRhY2tzIGF0IHRoZSBUYWogSG90ZWwuIE1vcmUgcmVjZW50bHksIGhlIGhhcyBmYWNlZCBhY2N1c2F0aW9ucyBvZiBicmliZXJ5IGFuZCBzZWN1cml0aWVzIGZyYXVkLiANCkFkYW5pIGFuZCBvdGhlcnMgd2VyZSBlc2NvcnRlZCBieSBzdGFmZiB0byB0aGUga2l0Y2hlbiBhbmQgdGhlbiB0aGUgYmFzZW1lbnQuIFRoZXkgc3BlbnQgdGhlIGVudGlyZSBuaWdodCBpbiBhIGhhbGwgd2FpdGluZyBmb3IgcmVzY3VlLiBBZGFuaSBsYXRlciB0b2xkIG5ld3MgY2hhbm5lbHMgdGhhdCBoZSBzYXcg4oCcZGVhdGggYXQgYSBkaXN0YW5jZSBvZiBqdXN0IDE1IGZlZXQu4oCdIEhlIHdhcyByZXNjdWVkIHRoZSBuZXh0IG1vcm5pbmcgYnkgc2VjdXJpdHkgZm9yY2VzLg0KMTk5ODpbRW52XVtEaXNhc3Rlcl0gRWFzdGVybiBJbmRpYSwgMTk5OCBCYW5nbGFkZXNoIGZsb29kOyA0ayBkZWF0aHMNCjE5OTg6W1dob11bUmVzZWFyY2hdW0NvbXB1dGluZ11bVGVjaF1bQ3VsdHVyZV0gSW50ZXJuZXQgRG93bmxvYWQgTWFuYWdlciAoSURNKSB3YXMgZGV2ZWxvcGVkIGJ5IFRvbmVjIEluYy4sIGFuIEFtZXJpY2FuIGNvbXBhbnkgdGhhdCBzdGFydGVkIHRoZSBwcm9qZWN0IGluIDE5OTggYW5kIHJlbGVhc2VkIHRoZSBzb2Z0d2FyZSBpbiAyMDAxLiBUb25lYyBJbmMuIGZvY3VzZXMgb24gbmV0d29yayBwcm9ncmFtbWluZyBhbmQgY3JlYXRlZCBJRE0gdG8gc3BlZWQgdXAgZG93bmxvYWRzIGJ5IHVzaW5nIGR5bmFtaWMgZmlsZSBzZWdtZW50YXRpb24sIGFjY2VsZXJhdGluZyBzcGVlZHMgYnkgdXAgdG8gOCB0aW1lcy4gDQoNCjE5OTk6NCBKYW51YXJ5IDE5OTk6IE5BU0Egb2ZmaWNpYWxseSByZWNvZ25pemVkIHRoZSBwb3NzaWJpbGl0eSB0aGF0IGxpZmUgb24gRWFydGggY29tZXMgZnJvbSBzcGFjZS4NCjE5IE1hcmNoIDE5OTk6IE5BU0Egc2NpZW50aXN0cyBhbm5vdW5jZWQgdGhhdCB0d28gbW9yZSBtZXRlb3JpdGVzIGhvbGQgZXZlbiBzdHJvbmdlciBmb3NzaWxpemVkIGV2aWRlbmNlIGZvciBwYXN0IGxpZmUgb24gTWFycy4NCjE5OTk6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEcyMCBvciBHcm91cCBvZiAyMCBpcyBhbiBpbnRlcmdvdmVybm1lbnRhbCBmb3J1bSBjb21wcmlzaW5nIDE5IHNvdmVyZWlnbiBjb3VudHJpZXMsIHRoZSBFdXJvcGVhbiBVbmlvbiwgYW5kIHRoZSBBZnJpY2FuIFVuaW9uLiBGb3VuZGVkOiAyNiBTZXB0ZW1iZXIgMTk5OTsgQ2hhaXJtYW4gKEluY3VtYmVudCk6IEN5cmlsIFJhbWFwaG9zYSwgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYQ0KMTk5OTogVGhlIHRlcm0gV2ktRmkgd2FzIGludmVudGVkIGJ5IEludGVyYnJhbmQgKGFuIGFtZXJpY2FuIGJyYW5kIGNvbnN1bHRhbmN5IGNvbXBhbnkpIGFzIGEgcHVuIHVwb24gdGhlIHdvcmQgaGktZmkuDQpXaS1GaSBBbGxpYW5jZSBmb3JtZWQgYXMgYSB0cmFkZSBhc3NvY2lhdGlvbiB0byBob2xkIHRoZSBXaS1GaSB0cmFkZW1hcmsgdW5kZXIgd2hpY2ggbW9zdCBwcm9kdWN0cyBhcmUgc29sZC4NCjE5OTk6IHRoZSB0ZXJtDQoxOTk5OiBJc2xhbWljIFN0YXRlIG9mIElyYXEgYW5kIHRoZSBMZXZhbnQgKGFsc28ga25vd24gYXMgdGhlIElzbGFtaWMgU3RhdGUgb2YgSXJhcSBhbmQgU3lyaWEsIElzbGFtaWMgU3RhdGUsIG9yIGNvbW1vbmx5LCBJU0lTKSBmb3VuZGVkIGFzIEphbWEnYXQgYWwtVGF3aGlkIHdhbC1KaWhhZCBieSBBYnUgTXVzYWIgYWwtWmFycWF3aSBIUSdkIGF0ICBBbC1SYXFxYWguDQoxOTk5IChBcHIgMTIpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBJIFdhbnQgSXQgVGhhdCBXYXkuDQoxOTk5IChBcHIgMTgpOiBDT05DRVJUIGJlY2FtZSBvcGVyYXRpb25hbC4gSXQgd2FzIGRldmVsb3BlZCB1c2luZyBjbGllbnQtc2VydmVyIG1vZGVsIGZvciBkaXN0cmlidXRlZCBjb21wdXRpbmcgaXMgYSB0b3RhbCBzb2x1dGlvbiB0byB0aGUgbmV0d29ya2luZyBvZiB0aGUgUFJTcy4gQWxsIHRoZSBmaXZlIHNpdGVzIGhhdmUgYmVlbiBpbnRlcm5ldC13b3JrZWQgb3ZlciBhIDY0IGticHMgbGluZSB1c2luZyByb3V0ZXJzLCBvbiBsZWFzZWQgY29tbXVuaWNhdGlvbiBsaW5lIGNvbm5lY3Rpb25zIGZyb20gRGVwYXJ0bWVudCBvZiBUZWxlY29tIChET1QpLg0KMTk5OTogQ3JlZGl0IGNhcmRzIGFjY2VwdGVkIGZvciBib29raW5nIHRpY2tldHMgYW5kIHJlc2VydmF0aW9ucyBpbiBzb21lIHN0YXRpb25zIChpbmNsdWRpbmcgTXVtYmFpIENTVCkuDQoxOTk5IChNYXkgMSk6W0Jvb2tdIFJvYmVydCBLaXlvc2FraSAmIFNoYXJvbiBMZWNodGVyJ3MgUmljaCBEYWQncyBDYXNoZmxvdyBRdWFkcmFudDogUmljaCBEYWQncyBHdWlkZSB0byBGaW5hbmNpYWwgRnJlZWRvbTsgUmljaCBEYWQncyBHdWlkZSB0byBJbnZlc3Rpbmc6IFdoYXQgdGhlIFJpY2ggSW52ZXN0IGluIFRoYXQgdGhlIFBvb3IgYW5kIE1pZGRsZSBDbGFzcyBEbyBOb3QhICgyMDAxLCBKYW4gMSk7IFRoZSBSZWFsIEJvb2sgb2YgUmVhbCBFc3RhdGU6IFJlYWwgRXhwZXJ0cy4gUmVhbCBTdG9yaWVzLiBSZWFsIExpZmUuICgyMDA5LCBNYXkgMTIpOyBSaWNoIEtpZCBTbWFydCBLaWQ6IEdpdmluZyBZb3VyIENoaWxkIGEgRmluYW5jaWFsIEhlYWQgU3RhcnQgKDIwMDEsIEphbiAxKTsgDQoxOTk5IChNYXkgMTgpOltNdXNpY10gTWlsbGVubml1bSBpcyB0aGUgdGhpcmQgc3R1ZGlvIGFsYnVtIChzZWNvbmQgaW4gdGhlIFVuaXRlZCBTdGF0ZXMpIGJ5IEFtZXJpY2FuIGJveSBiYW5kIEJhY2tzdHJlZXQgQm95cywgcmVsZWFzZWQgYnkgSml2ZSBSZWNvcmRzLg0KMTk5OSAoRnJpLCAyNCBEZWMpOiBJbmRpYW4gQWlybGluZXMgRmxpZ2h0IDgxNCBjb21tb25seSBrbm93biBhcyBJQyA4MTQgd2FzIGFuIEluZGlhbiBBaXJsaW5lcyBBaXJidXMgQTMwMCBlbiByb3V0ZSBmcm9tIFRyaWJodXZhbiBJbnRlcm5hdGlvbmFsIEFpcnBvcnQgaW4gS2F0aG1hbmR1LCBOZXBhbCB0byBJbmRpcmEgR2FuZGhpIEludGVybmF0aW9uYWwgQWlycG9ydCBpbiBEZWxoaSwgSW5kaWEgd2FzIGhpamFja2VkLiBIYXJrYXQtdWwtTXVqYWhpZGVlbiB3YXMgYWNjdXNlZCBvZiB0aGUgaGlqYWNraW5nLg0KMTk5OTogSVJDVEMNCjE5OTkgKEF1Zyk6IEJvb2tNeVNob3cNCjE5OTkgKFNlcCAxNCk6IFtHZW9Qb2xpdGljc10gVGhlIENvbmZlcmVuY2Ugb24gSW50ZXJhY3Rpb24gYW5kIENvbmZpZGVuY2UtQnVpbGRpbmcgTWVhc3VyZXMgaW4gQXNpYSAoQ0lDQSkgaXMgYW4gaW50ZXItZ292ZXJubWVudGFsIGZvcnVtIGZvciBlbmhhbmNpbmcgY29vcGVyYXRpb24gdG93YXJkcyBwcm9tb3RpbmcgcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYS4gSXQgaXMgYSBmb3J1bSBiYXNlZCBvbiB0aGUgcmVjb2duaXRpb24gdGhhdCB0aGVyZSBpcyBjbG9zZSBsaW5rIGJldHdlZW4gcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYSBhbmQgaW4gdGhlIHJlc3Qgb2YgdGhlIHdvcmxkLiBUaGUga2V5IGlkZWEgb2YgdGhlIENvbmZlcmVuY2UgaXMgYmFzZWQgb24gdGhlIHByaW9yaXR5IG9mIHRoZSBpbmRpdmlzaWJpbGl0eSBvZiBzZWN1cml0eSwgam9pbnQgaW5pdGlhdGl2ZSBhbmQgbXV0dWFsbHkgYmVuZWZpY2lhbCBpbnRlcmFjdGlvbiBvZiBzbWFsbCBhbmQgbGFyZ2Ugc3RhdGVzLg0KMTk5OTogTm9ibGUgRWR1Y2F0aW9uIFNvY2lldHkncyBOb2JsZSBQdWJsaWMgU2Nob29sIChOUFMpLCBHYWpyYXVsYSBmb3VuZGVkIHdpdGggMjEzMDYyNyBhcyBpdHMgQ0JTRSBBZmZpbGlhdGlvbiBuby4NCjE5OTk6IGZpcnN0IC53bWEgZmlsZSBjcmVhdGVkDQoxOTk5OiBOYXBzdGVyIGZvdW5kZWQuDQoxOTk5IChEZWMgMTQpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBTaG93IE1lIHRoZSBNZWFuaW5nIG9mIEJlaW5nIExvbmVseS4gDQoxOTk5OltNdXNpY10gRHIuIERyZSBmdC4gU25vb3AgRG9nZydzIFN0aWxsIEQuUi5FLg0KMTk5OTpbQ3VsdHVyZV0gVGhlIENpdHRhc2xvdyBvcmdhbml6YXRpb24gd2FzIGNyZWF0ZWQgYnkgUGFvbG8gU2F0dXJuaW5pLCB0aGUgZm9ybWVyIG1heW9yIG9mIEdyZXZlIGluIENoaWFudGksIEl0YWx5LiBTYXR1cm5pbmkgd2FzIGluc3BpcmVkIGJ5IENhcmxvIFBldHJpbmkgYW5kIGhpcyBTbG93IEZvb2QgbW92ZW1lbnQsIHN0YXJ0ZWQgaW4gdGhlIDE5ODBzIHRvIHByb3Rlc3QgdGhlIGZpcnN0IE1jRG9uYWxkJ3MgY2hhaW4gaW4gUm9tZS4gU2luY2UgdGhlbiwgdGhlIENpdHRhc2xvdyBtb3ZlbWVudCBoYXMgZ3Jvd24gYWNyb3NzIGZvdXIgY29udGluZW50cywgd2l0aCAyNjIgcGFydGljaXBhdGluZyB0b3ducyBhcyBvZiAyMDIwLiANCjE5OTk6W01hbmFnZW1lbnRdW0J1c2luZXNzXVtQc3ljaG9sb2d5XVtSZXNlYXJjaF0gRHVubmluZyBhbmQgS3J1Z2VyIEVmZmVjdDogRGF2aWQgRHVubmluZyBhbmQgSnVzdGluIEtydWdlciBwdWJsaXNoZWQgdGhlIGluaXRpYWwgc3R1ZHkgaW4gMTk5OSB1bmRlciB0aGUgdGl0bGUgIlVuc2tpbGxlZCBhbmQgVW5hd2FyZSBvZiBJdDogSG93IERpZmZpY3VsdGllcyBpbiBSZWNvZ25pemluZyBPbmUncyBPd24gSW5jb21wZXRlbmNlIExlYWQgdG8gSW5mbGF0ZWQgU2VsZi1Bc3Nlc3NtZW50cyIuDQoxOTk5OltSZXNlYXJjaF0gUmVzZWFyY2ggYnkgVVMgTmF0aW9uYWwgUmVzZWFyY2ggQ291bmNpbC4gV2F0ZXIgZnJvbSB1bmRlcmdyb3VuZCBzb3VyY2VzIG1heSBjb250YWluIHNpZ25pZmljYW50IGFtb3VudHMgb2YgcmFkb24gZGVwZW5kaW5nIG9uIHRoZSBzdXJyb3VuZGluZyByb2NrIGFuZCBzb2lsIGNvbmRpdGlvbnMsIHdoZXJlYXMgc3VyZmFjZSBzb3VyY2VzIGdlbmVyYWxseSBkbyBub3QuDQoxOTk5OltOU0VdIEluY29ycG9yYXRlZCBpbiAxOTk5LCBJUkNUQyBpcyBhIE1pbmkgUmF0bmEgKENhdGVnb3J5IDEsIENlbnRyYWwgUHVibGljIFNlY3RvciBFbnRlcnByaXNlcyApIGFuZCB0aGUgb25seSBjb21wYW55IGF1dGhvcml6ZWQgYnkgdGhlIEluZGlhbiBnb3Zlcm5tZW50IHRvIHByb3ZpZGUgb25saW5lIHJhaWx3YXkgdGlja2V0cywgY2F0ZXJpbmcgc2VydmljZXMsIGFuZCBwYWNrYWdlZCBkcmlua2luZyB3YXRlciBhdCByYWlsd2F5IHN0YXRpb25zIGFuZCB0cmFpbnMgaW4gSW5kaWEuDQoxOTk5OltNbnRuZ2ddW0Jvb2tdIFN0ZXZlIEhvdXNlIGlzIGEgd29ybGQtcmVub3duZWQgY2xpbWJlciwgbW91bnRhaW4gZ3VpZGUgYW5kIFBhdGFnb25pYSBhbWJhc3NhZG9yLCB3aWRlbHkgcmVnYXJkZWQgZm9yIGhpcyBjbGVhbiwgbGlnaHQtYW5kLWZhc3Qgc3R5bGUuIEhlIGhhcyBwdWJsaXNoZWQgYXJ0aWNsZXMgaW4gYSBudW1iZXIgb2YgcGVyaW9kaWNhbHMgaW5jbHVkaW5nOiBBbHBpbmlzdCwgUm9jayBhbmQgSWNlLCBDbGltYmluZywgVGhlIEFtZXJpY2FuIEFscGluZSBKb3VybmFsLCBHcmlwcGVkLCBDYW5hZGlhbiBBbHBpbmUgSm91cm5hbCwgQ2xpbWIsIFZlcnRpY2FsLCBNb250YWduZXMsIFJpc2ssIEFscCssIENhbXBvIEJhc2UsIERlc25pdmVsLCBhbmQgU3RpbGUgQWxwaW4uIEhpcyBlc3NheXMgaGF2ZSBiZWVuIHB1Ymxpc2hlZCBpbiBzZXZlcmFsIGJvb2tzIGluY2x1ZGluZzsgQ29udGFjdDogTW91bnRhaW4gQ2xpbWJpbmcgYW5kIEVudmlyb25tZW50YWwgVGhpbmtpbmc7IFNvbHRhcmksIGEgY29sbGVjdGlvbiBvZiBlc3NheXMgYWJvdXQgc29sbyBjbGltYmluZyBwdWJsaXNoZWQgaW4gSXRhbGlhbjsgQmVyZywgYSBHZXJtYW4gYm9vayBhYm91dCBjbGltYmluZyBpbiB0aGUgSGltYWxheWE7IGFuZCBhbiB1cGNvbWluZyBib29rIGFib3V0IE5hbmdhIFBhcmJhdCBlZGl0ZWQgYnkgUmVpbmhvbGQgTWVzc25lci4gSGUgaGFzIHdvcmtlZCBhcyBhIFBhdGFnb25pYSBhbHBpbmUgYW1iYXNzYWRvciBzaW5jZSAxOTk5LiBQdWJsaXNoZWQ6IFRyYWluaW5nIGZvciB0aGUgTmV3IEFscGluaXNtOiBBIE1hbnVhbCBmb3IgdGhlIENsaW1iZXIgYXMgQXRobGV0ZSBQYXBlcmJhY2sg4oCTIElsbHVzdHJhdGVkLCAzIEFwcmlsIDIwMTQNCjE5OTk6W01udG5nZ10gQ29ucmFkIEFua2VyIChib3JuIE5vdmVtYmVyIDI3LCAxOTYyKSBpcyBhbiBBbWVyaWNhbiByb2NrIGNsaW1iZXIsIG1vdW50YWluZWVyLCBhbmQgYXV0aG9yLiBIZSB3YXMgdGhlIHRlYW0gbGVhZGVyIG9mIFRoZSBOb3J0aCBGYWNlIGNsaW1iaW5nIHRlYW0gZm9yIDI2IHllYXJzIHVudGlsIDIwMTguWzJdIEluIDE5OTksIGhlIGxvY2F0ZWQgR2VvcmdlIE1hbGxvcnkncyBib2R5IG9uIEV2ZXJlc3QgYXMgYSBtZW1iZXIgb2YgYSBzZWFyY2ggdGVhbSBsb29raW5nIGZvciB0aGUgcmVtYWlucyBvZiB0aGUgQnJpdGlzaCBjbGltYmVyIHdobyB3YXMgbGFzdCBzZWVuIGluIDE5MjQuDQoxOTk5OlRoZSBQaXBpc3RyZWwgVmlydXMgZmxldyBmb3IgdGhlIGZpcnN0IHRpbWUgb24gQXVndXN0IDEwLCAxOTk5LiBQcm9kdWN0aW9uIGJlZ2FuIG9uIEphbnVhcnkgMjAsIDIwMDAuIFRoZSBkZXZlbG9wbWVudCBvZiB0aGUgc2hvcnQgd2luZyB2ZXJzaW9uIHN0YXJ0ZWQgaW4gMjAwNy4gVGhlIFZpcnVzIFNXIHByb2R1Y3Rpb24gc3RhcnRlZCBpbiAyMDA4LiBUaGUgVmlydXMgd29uIHRoZSBOQVNBIDIwMDcgUGVyc29uYWwgQWlyIFZlaGljbGUgKFBBVikgQ2hhbGxlbmdlIGFuZCB0aGUgMjAwOCBHZW5lcmFsIEF2aWF0aW9uIFRlY2hub2xvZ3kgKEdBVCkgQ2hhbGxlbmdlLg0KMTk5OTpbc2lsdmljc10gU3VzdGFpbmFibGUgUHJhY3RpY2VzOiBSZXNlYXJjaCBpbiB0aGUgMjB0aCBjZW50dXJ5IHZhbGlkYXRlZCB0aGF0IHNlY29uZC1ncm93dGggc3RhbmRzIGNvdWxkIGJlIHN1c3RhaW5hYmx5IG1hbmFnZWQgdGhyb3VnaCB0ZWNobmlxdWVzIGxpa2UgdGhlIHNlZWQgdHJlZSBtZXRob2QuIFRvZGF5LCBzaWx2aWN1bHR1cmUgZm9jdXNlcyBvbiBjb21wbGV4IHN0YW5kIHN0cnVjdHVyZXMsIGJhbGFuY2luZyBjb21tZXJjaWFsIGRlbWFuZCB3aXRoIGVudmlyb25tZW50YWwgc3Rld2FyZHNoaXAuIA0KDQoyMXN0IGNlbnR1cnkgQ0Ugc3RhcnRlZCBvbiAxc3QgSmFuIDIwMDEgQUQuDQoNCjIwMDBzOltSZXNlYXJjaF0gVGhlIGNsYWltIHRoYXQgIndlIGFyZSA2MCUgYmFuYW5hIiAob3Igc2hhcmUgNjAlIG9mIG91ciBETkEpIGlzIGEgcG9wdWxhciwgeWV0IG9mdGVuIG1pc2ludGVycHJldGVkLCBzdGF0aXN0aWMgdGhhdCBvcmlnaW5hdGVkIGZyb20gY29tcGFyaXNvbnMgb2YgcHJvdGVpbi1jb2RpbmcgZ2VuZXMsIGxpa2VseSBwb3B1bGFyaXplZCBpbiB0aGUgZWFybHkgMjAwMHMgZm9sbG93aW5nIHByZWxpbWluYXJ5IHN0dWRpZXMgb2YgdGhlIGJhbmFuYSBnZW5vbWUuIEl0IHJlZmVycyB0byBhYm91dCA2MCUgb2YgaHVtYW4gZ2VuZXMgaGF2aW5nIGEgcmVjb2duaXphYmxlIGNvdW50ZXJwYXJ0IGluIGJhbmFuYXMsIG5vdCA2MCUgb2Ygb3VyIHRvdGFsIEROQS4gDQpNYW55IG9mIHRoZSDigJxob3VzZWtlZXBpbmfigJ0gZ2VuZXMgdGhhdCBhcmUgbmVjZXNzYXJ5IGZvciBiYXNpYyBjZWxsdWxhciBmdW5jdGlvbiwgc3VjaCBhcyBmb3IgcmVwbGljYXRpbmcgRE5BLCBjb250cm9sbGluZyB0aGUgY2VsbCBjeWNsZSwgYW5kIGhlbHBpbmcgY2VsbHMgZGl2aWRlIGFyZSBzaGFyZWQgYmV0d2VlbiBtYW55IHBsYW50cyAoaW5jbHVkaW5nIGJhbmFuYXMpIGFuZCBhbmltYWxzLldoaWxlIDYwJSBvZiBnZW5lcyBoYXZlIGNvdW50ZXJwYXJ0cywgdGhlc2UgZXNzZW50aWFsIGdlbmVzIG1ha2UgdXAgb25seSBhIHNtYWxsIGZyYWN0aW9uIG9mIHRoZSB0b3RhbCBnZW5vbWU7IGh1bWFucyBhbmQgYmFuYW5hcyBhcmUgbm90IDYwJSBpZGVudGljYWwgb3ZlcmFsbC4gDQpUaGUgcGhyYXNlIGlzIGVzc2VudGlhbGx5IGEgc2ltcGxpZmllZCwgb2Z0ZW4tZXhhZ2dlcmF0ZWQsIHdheSBvZiBoaWdobGlnaHRpbmcgdGhhdCBhbGwgbGlmZSBzaGFyZXMgY29tbW9uIGFuY2VzdHJhbCBnZW5lcyBmb3IgYmFzaWMgY2VsbHVsYXIgcHJvY2Vzc2VzLiANCjIwMDBzOltNQkFdIFNob3VsZCBDb3N0IE1vZGVsaW5nOiBNb2Rlcm4gIlNob3VsZCBDb3N0IiBtb2RlbHMgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBpZGVhbCBjb3N0IG9mIGEgcHJvZHVjdCwgYWNjb3VudGluZyBmb3IgbGFib3IsIG1hdGVyaWFscywgYW5kIG92ZXJoZWFkLiBFbnZpcm9ubWVudGFsICYgU29jaWFsIEltcGFjdDogTW9kZXJuIENCQSBub3cgcm91dGluZWx5IGluY2x1ZGVzIGVudmlyb25tZW50YWwgYW5kIHNvY2lhbCBpbXBhY3RzIGluIGFkZGl0aW9uIHRvIGZpbmFuY2lhbCBvbmVzLiBTaGlmdCBmcm9tIExvY2FsIHRvIEdsb2JhbDogRWFybHksIGhpZ2hseSBsb2NhbCBhc3Nlc3NtZW50cyBldm9sdmVkIGludG8gbGFyZ2Utc2NhbGUsIG5hdGlvbmFsLCBhbmQgaW50ZXJuYXRpb25hbCBDQkEuIFJlZmluZW1lbnQgb2YgVGVjaG5pcXVlczogTW92aW5nIGZyb20gc2ltcGxlLCBzaW5nbGUtcGVyaW9kIG1vZGVscyB0byBjb21wbGV4LCBtdWx0aS1wZXJpb2Qgc2ltdWxhdGlvbnMuIEluY3JlYXNlZCBEYXRhIFVzZTogVGhlIGF2YWlsYWJpbGl0eSBvZiBsYXJnZSwgZ3JhbnVsYXIgZGF0YSBzZXRzIGhhcyBhbGxvd2VkIGZvciBtb3JlIHByZWNpc2UgYW5kIHJlbGlhYmxlIGFuYWx5c2lzLiANCjIwMDBzOltNbnRuZ2ddW0V4dHJlbWVdIEluIHRoZSBlYXJseSAyMDAwcywgRGlkaWVyIEJlcnRob2Qgd2FzIHRoZSBiZXN0IGNyYWNrIGNsaW1iZXIgaW4gdGhlIHdvcmxkLCB0aGVuIGhlIGRyb3BwZWQgb3V0IG9mIGNsaW1iaW5nIGFuZCBlc3NlbnRpYWxseSBkaXNhcHBlYXJlZCBmcm9tIHRoZSB3b3JsZC4NCjIwMDBzOltSZWFsdHldIEVhcmx5IDIwMDBzOiBSZWFsIGVzdGF0ZSB3YXMgaW4gaXRzIGVhcmx5IHN0YWdlcyBpbiBJbmRpYSwgd2l0aCBncmFkdWFsIGdyb3d0aCBhbmQgZGV2ZWxvcG1lbnQuIA0KMjAwMHM6VGVhbXdvcmsgaXMgbm93IGFuIGludGVncmFsIHBhcnQgb2Ygb3JnYW5pemF0aW9uYWwgc3RyYXRlZ3ksIHdpdGggYSBncmVhdGVyIGVtcGhhc2lzIG9uIGN1c3RvbWl6YXRpb24sIHBlcnNvbmFsaXphdGlvbiwgYW5kIHN0cmF0ZWdpYyBpbnRlZ3JhdGlvbiBvZiB0ZWFtLWJ1aWxkaW5nIHByYWN0aWNlcy4gVGhlIHJpc2Ugb2YgdGVjaG5vbG9neSBoYXMgYWxzbyBpbmZsdWVuY2VkIHRlYW13b3JrLCB3aXRoIHJlbW90ZSB3b3JrIGJlY29taW5nIG1vcmUgcHJldmFsZW50IGFuZCBuZXcgdG9vbHMgZW1lcmdpbmcgdG8gZmFjaWxpdGF0ZSBjb2xsYWJvcmF0aW9uLiANCg0KMjAwMDpbVVNdW0dlb1BvbGl0aWNzXSBvdmVydGhyb3cgb2YgU2xvYm9kYW4gTWlsb8WhZXZpxIcuIChVUydzIGludm9sdmVtZW50IGluIHJlZ2ltZSBjaGFuZ2UpDQoyMDAwOiBbR2VvUG9saXRpY3NdW01pbGl0YXJ5XVtFY29ub21pY3NdIFRoZSBVUyBEb2xsYXIgaG9sZHMgYSA3MiUgc2hhcmUgb2YgYWxsIGdsb2JhbCBjdXJyZW5jeSByZXNlcnZlcyBbWzE2OjQyXShodHRwOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dllKcmkxZU5SeWMmdD0xMDAyKV0uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdIDI2IEFwcmlsIDIwMDA6IHRoZSBHZXJtYW4gdGVhbSBvcGVyYXRpbmcgdGhlIG1hc3Mgc3BlY3Ryb21ldGVyIG9uIE5BU0EncyBTdGFyZHVzdCBtaXNzaW9uIGFubm91bmNlZCB0aGUgZGV0ZWN0aW9uIG9mIHZlcnkgbGFyZ2Ugb3JnYW5pYyBtb2xlY3VsZXMgaW4gaW50ZXJzdGVsbGFyIHNwYWNlLiBOb25iaW9sb2dpY2FsIHNvdXJjZXMgZm9yIG9yZ2FuaWMgbW9sZWN1bGVzIHNvIGxhcmdlIGFyZSBub3Qga25vd24uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdMTkgT2N0b2JlciAyMDAwLCBhIHRlYW0gb2YgYmlvbG9naXN0cyBhbmQgYSBnZW9sb2dpc3QgYW5ub3VuY2VkIHRoZSByZXZpdmFsIG9mIGJhY3RlcmlhIHRoYXQgYXJlIDI1MCBtaWxsaW9uIHllYXJzIG9sZCwgc3RyZW5ndGhlbmluZyB0aGF0IGNhc2UgdGhhdCBiYWN0ZXJpYWwgc3BvcmVzIGNhbiBiZSBpbW1vcnRhbC4NCjEzIERlY2VtYmVyIDIwMDA6IGEgTkFTQSB0ZWFtIGRlbW9uc3RyYXRlZCB0aGF0IHRoZSBtYWduZXRvc29tZXMgaW4gTWFycyBtZXRlb3JpdGUgQUxIIDg0MDAxIGFyZSBiaW9sb2dpY2FsLg0KMjAwMDpbUmVzZWFyY2hdW1NwYWNlXSBNaWxlaWtvd3NreSBDLCBDdWNpbm90dGEgRkEsIFdpbHNvbiBKVywgR2xhZG1hbiBCLCBIb3JuZWNrIEcsIExpbmRlZ3JlbiBMLCBNZWxvc2ggSiwgUmlja21hbiBILCBWYWx0b25lbiBNLCBaaGVuZyBKUS4gTmF0dXJhbCB0cmFuc2ZlciBvZiB2aWFibGUgbWljcm9iZXMgaW4gc3BhY2UuIEljYXJ1cyAyMDAwLCAxNDU6Mzkx4oCTNDI3LiBbRE9JXSBbUHViTWVkXSBbR29vZ2xlIFNjaG9sYXJdDQoyMDAwOltTcGFjZVhdIFMvMjAwMCAoOTApIDEgTW9vbiBEaXNjb3ZlcmVyOiBXaWxsaWFtIEouIE1lcmxpbmUgT3JiaXRzOiA5MCBBbnRpb3BlIEFic29sdXRlIG1hZ25pdHVkZTogOS4wMg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gZGVtb25zdHJhdGVkIFNob3LigJlzIGFsZ29yaXRobSBvbiBhIDUtcXViaXQgTk1SIHF1YW50dW0gY29tcHV0ZXIsIGZhY3RvcmluZyB0aGUgbnVtYmVyIDE1Lg0KMjAwMDogQXQgYWdlIDE0IGFuZCBpbiBjbGFzcyA4dGgsIEFhcm9uIFN3YXJ0eiBiZWNhbWUgYSBtZW1iZXIgb2YgdGhlIHdvcmtpbmcgZ3JvdXAgdGhhdCBhdXRob3JlZCB0aGUgUlNTIDEuMCB3ZWIgc3luZGljYXRpb24gc3BlY2lmaWNhdGlvbi4NCjIwMDA6IE1ha2VteVRyaXANCjIwMDAgKEphbiAxNCk6W0phY2tdIEthaG8gTmFhLi4uIFB5YWFyIEhhaQ0KMjAwMCAoRmViKTogSW5kaWFuIFJhaWx3YXlzIHdlYiBzaXRlIGkuZS4gaHR0cDovL2luZGlhbnJhaWx3YXlzLmdvdi5pbi8gd2FzIGRlcGxveWVkIGJ5IENSSVMuDQoyMDAwIChNYXIpOltCb29rXSBNYWxjb2xtIEdsYWR3ZWxsJ3MgZGVidXQgYm9vaywgVGhlIFRpcHBpbmcgUG9pbnQ6IEhvdyBMaXR0bGUgVGhpbmdzIENhbiBNYWtlIGEgQmlnIERpZmZlcmVuY2UuIA0KQmxpbms6IFRoZSBQb3dlciBvZiBUaGlua2luZyBXaXRob3V0IFRoaW5raW5nICgyMDA1LCBKYW4gMTEpOyANCk91dGxpZXJzOiBUaGUgU3Rvcnkgb2YgU3VjY2VzcyAoMjAwOCwgTm92IDE4KTsgDQpXaGF0IHRoZSBEb2cgU2F3OiBBbmQgT3RoZXIgQWR2ZW50dXJlcyAoMjAwOSwgT2N0IDIwKTsgDQpEYXZpZCBhbmQgR29saWF0aDogVW5kZXJkb2dzLCBNaXNmaXRzLCBhbmQgdGhlIEFydCBvZiBCYXR0bGluZyBHaWFudHMgKDIwMTMsIE9jdCAxKQ0KVGFsa2luZyB0byBTdHJhbmdlcnM6IFdoYXQgV2UgU2hvdWxkIEtub3cgYWJvdXQgdGhlIFBlb3BsZSBXZSBEb24ndCBLbm93ICgyMDE5KQ0KMjAwMCAoQXByIDEpOltCb29rXSBSb2JlcnQgS2l5b3Nha2kgJiBTaGFyb24gTGVjaHRlcidzIFJpY2ggRGFkIFBvb3IgRGFkLg0KMjAwMCAoQXByIDEpOltUZWNobm9sb2d5XVtSZXNlYXJjaF0gIldoeSBUaGUgRnV0dXJlIERvZXNuJ3QgTmVlZCBVcyIgaXMgYW4gYXJ0aWNsZSB3cml0dGVuIGJ5IEJpbGwgSm95IGluIHRoZSBBcHJpbCAyMDAwIGlzc3VlIG9mIFdpcmVkIG1hZ2F6aW5lLiBJbiB0aGUgYXJ0aWNsZSwgaGUgYXJndWVzIHRoYXQgIk91ciBtb3N0IHBvd2VyZnVsIDIxc3QtY2VudHVyeSB0ZWNobm9sb2dpZXPigJRyb2JvdGljcywgZ2VuZXRpYyBlbmdpbmVlcmluZywgYW5kIG5hbm90ZWNo4oCUYXJlIHRocmVhdGVuaW5nIHRvIG1ha2UgaHVtYW5zIGFuIGVuZGFuZ2VyZWQgc3BlY2llcy4iIA0KMjAwMCAoSnVuIDI2KTpbTXVzaWNdICJZZWxsb3ciIGlzIGEgc29uZyBieSB0aGUgQnJpdGlzaCByb2NrIGJhbmQgQ29sZHBsYXkuIFRoZSBiYW5kIHdyb3RlIHRoZSBzb25nIGFuZCBjby1wcm9kdWNlZCBpdCB3aXRoIEJyaXRpc2ggcmVjb3JkIHByb2R1Y2VyIEtlbiBOZWxzb24gZm9yIHRoZWlyIGRlYnV0IGFsYnVtLCBQYXJhY2h1dGVzICgyMDAwKS4gVGhlIHNvbmcgd2FzIHJlY29yZGVkIGluIE1hcmNoIDIwMDAgYW5kIHJlbGVhc2VkIG9uIDI2IEp1bmUgdGhhdCBzYW1lIHllYXIuDQoyMDAwIChTZXApOiBBbWF6b24ncyBKZWZmIEJlem9zIGZvdW5kZWQuDQoyMDAwIChTZXApOltDcmltZV1bSW5kaWFdIENoaG90YSBTaGFrZWVsJ3MgYXR0YWNrIG9uIFJhamFuIGluIGhpcyBCYW5na29rIGhvdGVsIHJvb20uDQoyMDAwIChTZXApOiBSYWlsVGVsIENvcnBvcmF0aW9uIG9mIEluZGlhIEx0ZC4gZm91bmRlZCBhbmQgSFEnZCBhdCAxNDMsIEluc3RpdHV0aW9uYWwgQXJlYSwgU2VjdG9yLTQ0LCBHdXJnYW9uLCBIYXJ5YW5hLCBJbmRpYS4gSXQgaXMgYSBNaW5pcmF0bmEgZW50ZXJwcmlzZSBvZiBHb3Zlcm5tZW50IG9mIEluZGlhIGZvY3VzaW5nIG9uIHByb3ZpZGluZyBicm9hZGJhbmQgYW5kIFZQTiBzZXJ2aWNlcy4NCjIwMDAgKFNlcCAxNyk6IFtHZW9Qb2xpdGljc10gVGhlIGlkZWEgb2YgYW4gQXNpYSBDb29wZXJhdGlvbiBEaWFsb2d1ZSAoQUNEKSB3YXMgcmFpc2VkIGF0IHRoZSBGaXJzdCBJbnRlcm5hdGlvbmFsIENvbmZlcmVuY2Ugb2YgQXNpYW4gUG9saXRpY2FsIFBhcnRpZXMgKGhlbGQgaW4gTWFuaWxhIGJldHdlZW4gMTfigJMyMCBTZXB0ZW1iZXIgMjAwMCkgYnkgU3VyYWtpYXJ0IFNhdGhpcmF0aGFpLCB0aGVuIGRlcHV0eSBsZWFkZXIgb2YgdGhlIG5vdyBkZWZ1bmN0IFRoYWkgUmFrIFRoYWkgUGFydHksIG9uIGJlaGFsZiBvZiBoaXMgcGFydHkgbGVhZGVyLCBUaGFrc2luIFNoaW5hd2F0cmEsIHRoZW4gUHJpbWUgTWluaXN0ZXIgb2YgVGhhaWxhbmQuIEl0IHdhcyBzdWdnZXN0ZWQgdGhhdCBBc2lhIGFzIGEgY29udGluZW50IHNob3VsZCBoYXZlIGl0cyBvd24gZm9ydW0gdG8gZGlzY3VzcyBBc2lhLXdpZGUgY29vcGVyYXRpb24uIEFmdGVyd2FyZHMsIHRoZSBpZGVhIG9mIHRoZSBBQ0Qgd2FzIGZvcm1hbGx5IHB1dCBmb3J3YXJkIGR1cmluZyB0aGUgMzR0aCBBU0VBTiBGb3JlaWduIE1pbmlzdGVycyBNZWV0aW5nIGluIEhhbm9pLCAyM+KAkzI0IEp1bHkgMjAwMSBhbmQgYXQgdGhlIEFTRUFOIEZvcmVpZ24gTWluaXN0ZXJzIFJldHJlYXQgaW4gUGh1a2V0LCAyMOKAkzIxIEZlYnJ1YXJ5IDIwMDIuDQoyMDAwIChPY3QgNCk6W011c2ljXSBGb3JtZWQgaW4gMTk5NiwgTGlua2luIFBhcmsgcm9zZSB0byBpbnRlcm5hdGlvbmFsIGZhbWUgd2l0aCB0aGVpciBkZWJ1dCBzdHVkaW8gYWxidW0sIEh5YnJpZCBUaGVvcnkuIEZvdXIgc2luZ2xlcyB3ZXJlIHJlbGVhc2VkIGZyb20gSHlicmlkIFRoZW9yeTogIk9uZSBTdGVwIENsb3NlciIsICJJbiB0aGUgRW5kIiwgIkNyYXdsaW5nIiBhbmQgIlBhcGVyY3V0IiwgYWxsIG9mIHRoZW0gYmVpbmcgcmVzcG9uc2libGUgZm9yIGxhdW5jaGluZyBMaW5raW4gUGFyayBpbnRvIG1haW5zdHJlYW0gcG9wdWxhcml0eS4gV2hpbGUgIkluIHRoZSBFbmQiIHdhcyB0aGUgbW9zdCBzdWNjZXNzZnVsIG9mIHRoZSBmb3VyLCBhbGwgb2YgdGhlIHNpbmdsZXMgaW4gdGhlIGFsYnVtIHJlbWFpbiBzb21lIG9mIHRoZSBiYW5kJ3MgbW9zdCBzdWNjZXNzZnVsIHNvbmdzIHRvIGRhdGUuDQoyMDAwIChOb3YgOSk6IGZvcm1hdGlvbiBvZiBVdHRhcmFraGFuZCBhcyBVdHRhcmFuY2hhbCAyMDAwIChKdW4gOSk6IEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQWN0LCAyMDAwLiBUaGUgYmlsbCB3YXMgcGFzc2VkIGluIHRoZSBidWRnZXQgc2Vzc2lvbiBvZiAyMDAwIGFuZCBzaWduZWQgYnkgUHJlc2lkZW50IEsuIFIuIE5hcmF5YW5hbiBvbiA5IE1heSAyMDAwLiBUaGUgYmlsbCB3YXMgZmluYWxpc2VkIGJ5IGdyb3VwIG9mIG9mZmljaWFscyBoZWFkZWQgYnkgdGhlbiBNaW5pc3RlciBvZiBJbmZvcm1hdGlvbiBUZWNobm9sb2d5LCBQcmFtb2QgTWFoYWphbi4NCjIwMDA6IGZvcm1hdGlvbiBvZg0KMjAwMDogSmFpc2gtZS1Nb2hhbW1lZCAobGl0ZXJhbGx5ICJUaGUgQXJteSBvZiBNdWhhbW1hZCIsIEplTSkgZm91bmRlZCBhdCBCYWhhd2FscHVyLCBQdW5qYWIsIFBha2lzdGFuLg0KMjAwMDogQ2hpbmEncyBCZWlEb3UgbmF2aWdhdGlvbiB0ZXN0IHN5c3RlbSBzdGFydHMuDQoyMDAwOiBGaXNlcnYgaGFkIGFjcXVpcmVkIG1vcmUgdGhhbiA5MCBidXNpbmVzc2VzLiBUaGUgbnVtYmVyIG9mIGVtcGxveWVlcyBncmV3IGZyb20gMjY0IHRvIDE0LDAwMC4gRmlzZXJ2IHdhcyBhbiBpbmR1c3RyeSBsZWFkZXIsIHdpdGggcmV2ZW51ZSB0aGF0IGluY3JlYXNlZCBmcm9tICQyMSBtaWxsaW9uIHRvICQxLjQgYmlsbGlvbiBpbiAxNSB5ZWFycy4NCjIwMDAgKERlYyA4KTpbR2FtaW5nXSBQcm9qZWN0IEkuRy5JLiBpcyBhIHRhY3RpY2FsIGZpcnN0LXBlcnNvbiBzaG9vdGVyIHZpZGVvIGdhbWUuIEl0IHdhcyBkZXZlbG9wZWQgYnkgSW5uZXJsb29wIFN0dWRpb3MgYW5kIHJlbGVhc2VkIGluIERlY2VtYmVyIDIwMDAgYnkgRWlkb3MgSW50ZXJhY3RpdmUuIFRoZSBnYW1lIHJlY2VpdmVkIG1peGVkIHJldmlld3MgZHVlIHRvIHNob3J0Y29taW5ncyBpbmNsdWRpbmcgYSBwb29ybHkgcHJvZ3JhbW1lZCBBLkkuLCBsYWNrIG9mIGEgbWlkLWdhbWUgc2F2ZSBvcHRpb24sIGFuZCB0aGUgbGFjayBvZiBtdWx0aXBsYXllciBmZWF0dXJlcy4gSG93ZXZlciBpdCB3YXMgcHJhaXNlZCBmb3IgaXRzIHNvdW5kIGRlc2lnbiBhbmQgZ3JhcGhpY3MsIHRoYW5rcyBpbiBwYXJ0IHRvIGl0cyB1c2Ugb2YgYSBwcm9wcmlldGFyeSBnYW1lIGVuZ2luZSB0aGF0IHdhcyBwcmV2aW91c2x5IHVzZWQgaW4gSW5uZXJsb29wJ3MgSm9pbnQgU3RyaWtlIEZpZ2h0ZXIuDQoyMDAwIChEZWMgMjEpOltKYWNrXSBSYWp1IENoYWNoYSByZWxlYXNlZC4NCjIwMDA6IFtCdXNpbmVzc11bRmluYW5jZV1bQ29ycG9yYXRlXVtJbmRpYV0gUklMIHBpbG90ZWQgd29ybGQncyBsYXJnZXN0IHBldHJvbGV1bSByZWZpbmVyeSBhdCBKYW1uYWdhciwgR3VqYXJhdCwgcmVmaW5pbmcgMS4yNE1uIGJhcnJlbHMvZGF5Lg0KMjAwMDpbQ3JpbWVdW0luZGlhXSBQb2xpY2UgZW5jb3VudGVycyBpbiBNdW1iYWkuIE1vc3QgY3JpbWluYWxzIGZsZWVpbmcgdG8gQ2FsY3VsdHRhLiBBZnRhYiBCaGF0a2kgZGVzdGFiaWxpc2UgdGhlIGVjb25vbXkgYnkgc3ByZWFkaW5nIGZha2UgY3VycmVuY3kgbm90ZXMgcHJpbnRlZCBieSBJU0kgZnVuY3Rpb25hcmllcywgYW5kIHR3bywgc2VuZCBtZXJjZW5hcmllcyB0byBjb25kdWN0IGFiZHVjdGlvbnMgYW5kIHRlcnJvcmlzdCBhdHRhY2tzLg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBUZWNobmljYWwgVW5pdmVyc2l0eSBvZiBNdW5pY2ggKDUgcXViaXQpOyBMb3MgQWxhbW9zIE5hdGlvbmFsIExhYiAoNyBxdWJpdHMpDQoyMDAwOkluIDIwMDAsIFRhdGEgVGVhIGFjcXVpcmVkIHRoZSBUZXRsZXkgVGVhIENvbXBhbnkgZm9yICQ0MDcgbWlsbGlvbi4gT3RoZXIgbm90YWJsZSBhY3F1aXNpdGlvbnMgaW5jbHVkZSBOYXRTdGVlbCAoMjAwNCksIEJydW5uZXIgTW9uZCAoMjAwNSksIGFuZCBFaWdodCBPJ0Nsb2NrIENvZmZlZSAoMjAwNikuIA0KMjAwMDogQmlybGEgYWNxdWlyZWQgSW5kaWFuIEFsdW1pbnVtIENvbXBhbnkgKElOREFMKS4gDQoyMDAwOiBTYXR5YSBOYXJheWFuYSBHb2Vua2Egd29ya2VkIGFzIGFuIGludGVybmF0aW9uYWwgYnVzaW5lc3NtYW4gYmFzZWQgaW4gTXlhbm1hciBhbmQgSW5kaWEgZm9yIGEgbGFyZ2UgcGFydCBvZiBoaXMgbGlmZS4gSGUgd2FzIGEga2V5bm90ZSBzcGVha2VyIG9uIHRoZSBzdWJqZWN0IG9mIFNwaXJpdHVhbGl0eSBpbiBCdXNpbmVzcyBhdCB0aGUgMzB0aCBXb3JsZCBFY29ub21pYyBGb3J1bSBpbiBEYXZvcywgU3dpdHplcmxhbmQgYmV0d2VlbiAyNiBKYW4gYW5kIDIgRmViIDIwMDAuIFR3byB5ZWFycyBsYXRlciBoZSBjb25kdWN0ZWQgdGhlIGZpcnN0IDEwLWRheSBjb3Vyc2UgaW4gVmlwYXNzYW5hIE1lZGl0YXRpb24gZXNwZWNpYWxseSBmb3IgYnVzaW5lc3MgZXhlY3V0aXZlcyBhbmQgZ292ZXJubWVudCBvZmZpY2lhbHMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAyMjUgeWVhcnMgb2YgSW5kZXBlbmRlbnQgVVNBIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIA0KDQoyMDAxOltVU11bR2VvUG9saXRpY3NdIGludmFzaW9uIG9mIEFmZ2hhbmlzdGFuLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMjAwMTpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgU2hhbmdoYWkgQ29vcGVyYXRpb24gT3JnYW5pc2F0aW9uIChTQ08pIGlzIGEgRXVyYXNpYW4gcG9saXRpY2FsLCBlY29ub21pYywgaW50ZXJuYXRpb25hbCBzZWN1cml0eSBhbmQgZGVmZW5jZSBvcmdhbml6YXRpb24gb2YgdGVuIG1lbWJlciBzdGF0ZXMuIEl0IHdhcyBlc3RhYmxpc2hlZCBpbiAyMDAxIGJ5IHRoZSBQZW9wbGUncyBSZXB1YmxpYyBvZiBDaGluYSwgS2F6YWtoc3RhbiwgS3lyZ3l6c3RhbiwgUnVzc2lhLCBhbmQgVGFqaWtpc3RhbiBhbmQgVXpiZWtpc3Rhbi4gSW4gSnVuZSAyMDE3LCBpdCBleHBhbmRlZCB0byBlaWdodCBzdGF0ZXMsIHdpdGggSW5kaWEgYW5kIFBha2lzdGFuLiBJcmFuIGpvaW5lZCB0aGUgZ3JvdXAgaW4gSnVseSAyMDIzLCBhbmQgQmVsYXJ1cyBpbiBKdWx5IDIwMjQuIFNldmVyYWwgY291bnRyaWVzIGFyZSBlbmdhZ2VkIGFzIG9ic2VydmVycyBvciBkaWFsb2d1ZSBwYXJ0bmVycy4gRm91bmRlcnM6IENoaW5hLCBSdXNzaWEsIEthemFraHN0YW4sIFV6YmVraXN0YW4sIEt5cmd5enN0YW4sIFRhamlraXN0YW47IEhlYWRxdWFydGVyczogQmVpamluZywgQ2hpbmE7IEZvdW5kZWQ6IDE1IEp1bmUgMjAwMQ0KMjAwMTpbQnVzaW5lc3NdIDIwMDHigJMyMDA1OiBIRlQgZXhlY3V0aW9uIHRpbWVzIGRlY3JlYXNlZCBmcm9tIHNldmVyYWwgc2Vjb25kcyB0byBtaWxsaXNlY29uZHMuIChIRlQpDQoyMDAxOltDb21wdXRpbmddW1F1YW50dW1dICBJQk0gaW1wbGVtZW50ZWQgR3JvdmVy4oCZcyBhbGdvcml0aG0gb24gYSA3LXF1Yml0IE5NUiBxdWFudHVtIGNvbXB1dGVyLCBmaW5kaW5nIGEgbWFya2VkIGl0ZW0gaW4gYSBkYXRhYmFzZSBvZiA0IGVudHJpZXMuDQoyMDAxOiBMaWZlIG9mIFBpIGlzIGEgQ2FuYWRpYW4gcGhpbG9zb3BoaWNhbCBub3ZlbCBieSBZYW5uIE1hcnRlbCBwdWJsaXNoZWQuIFRoZSBwcm90YWdvbmlzdCBpcyBQaXNjaW5lIE1vbGl0b3IgIlBpIiBQYXRlbCwgYW4gSW5kaWFuIGJveSBmcm9tIFBvbmRpY2hlcnJ5IHdobyBleHBsb3JlcyBpc3N1ZXMgb2Ygc3Bpcml0dWFsaXR5IGFuZCBtZXRhcGh5c2ljcyBmcm9tIGFuIGVhcmx5IGFnZS4gSGUgc3Vydml2ZXMgMjI3IGRheXMgYWZ0ZXIgYSBzaGlwd3JlY2sgd2hpbGUgc3RyYW5kZWQgb24gYSBsaWZlYm9hdCBpbiB0aGUgUGFjaWZpYyBPY2VhbiB3aXRoIGEgQmVuZ2FsIHRpZ2VyIHdoaWNoIHJhaXNlcyBxdWVzdGlvbnMgYWJvdXQgdGhlIG5hdHVyZSBvZiByZWFsaXR5IGFuZCBob3cgaXQgaXMgcGVyY2VpdmVkIGFuZCB0b2xkLjtTZXZlbiBTdG9yaWVzICgxOTkzKQ0KMjAwMTpbQ3JpbWVdW0luZGlhXSBDaGhvdGEgUmFqYW4ncyBhc3NvY2lhdGVzIHRyYWNrZWQgZG93biBhbmQgc2hvdCBkZWFkIGhvdGVsaWVyIFZpbm9kIGluIE11bWJhaSwgYXMgd2VsbCBhcyBTdW5pbCBTb2FucyDigJMgYW5vdGhlciBEYXdvb2QgYXNzb2NpYXRlLg0KMjAwMSAoSmFuIDEpOltCb29rXSBHcmVnIE1jS2Vvd24ncyBFc3NlbnRpYWxpc206IFRoZSBEaXNjaXBsaW5lZCBQdXJzdWl0IG9mIExlc3MNCjIwMDEgKEphbiAxKTpbQm9va10gQnJpYW4gVHJhY3kncyBFYXQgVGhhdCBGcm9nIQ0KMjAwMTogVGhlIEFyZHVpbm8gcHJvamVjdCBzdGFydGVkIGF0IHRoZSBJbnRlcmFjdGlvbiBEZXNpZ24gSW5zdGl0dXRlIEl2cmVhIChJRElJKSBpbiBJdnJlYSwgSXRhbHkuIEF0IHRoYXQgdGltZSwgdGhlIHN0dWRlbnRzIHVzZWQgYSBCQVNJQyBTdGFtcCBtaWNyb2NvbnRyb2xsZXIgYXQgYSBjb3N0IG9mICQxMDAsIGEgY29uc2lkZXJhYmxlIGV4cGVuc2UgZm9yIG1hbnkgc3R1ZGVudHMuDQoyMDAxIChBcHIgNHRoKTogQ2hhcmxlcyBNLiBWZXN0LCB0aGUgdGhlbiBQcmVzaWRlbnQgb2YgTUlUIGFubm91bmNlZCBPcGVuQ291cnNlV2FyZSAoT0NXKSBwdWJsaWNpemluZyBhbGwgb2YgaXRzIDIsMDAwIGNvdXJzZXMgIGF0IHRoZSBlc3RpbWF0ZWQgY29zdCBvZiAkMTAwIG1pbGxpb24gKG9uIGFuIGF2Zy4sIGEgTUlUIHN0dWRlbnRzIHBheXMgYXJvdW5kICQyNiwwMDAgYXMgb2ZmbGluZSB0dWl0aW9uIGZlZSkNCjIwMDE6IFVTIGludmFkZWQgQWZnaGFuaXN0YW4gaW4gcmVzcG9uc2UgdG8gOS8xMSBhdHRhY2tzLiBPZmZpY2lhbGx5LCBJdCBoYXMgYmVjb21lIHRoZSBsb25nZXN0IHdhciBpbiBBbWVyaWNhbiBoaXN0b3J5Lg0KMjAwMTogaVBvZCBieSBUb255IEZhZGVsbA0KMjAwMSAoSnVuIDE1KTpbSmFja10gR2FkYXI6IEVrIFByZW0gS2F0aGE7IExhZ2FhbjogT25jZSBVcG9uIGEgVGltZSBpbiBJbmRpYQ0KMjAwMSAoU2VwIDExKTogOS8xMSBUZXJyb3Jpc3QgYXR0YWNrcy4gVGhlIFNlcHRlbWJlciAxMSBvciA5LzExLCBhdHRhY2tzIHdlcmUgYSBzZXJpZXMgb2YgZm91ciBjb29yZGluYXRlZCB0ZXJyb3Jpc3QgYXR0YWNrcyBieSB0aGUgSXNsYW1pYyB0ZXJyb3Jpc3QgZ3JvdXAgYWwtUWFlZGEgb24gdGhlIFVuaXRlZCBTdGF0ZXMgb24gdGhlIG1vcm5pbmcgb2YgVHVlc2RheSwgU2VwIDExLiBUaGUgbG9zcyBvZiBsaWZlIHdhcyBlc3RpbWF0ZWQgYXQganVzdCB1bmRlciAzLDAwMC4gVGhlIGV2ZW50IGNoYW5nZWQgQW1lcmljYW4gZm9yZWlnbiBwb2xpY3kuIEl0IHdhcyBhIG1vdGl2YXRpbmcgZmFjdG9yIGJlaGluZCB0aGUgY29udHJvdmVyc2lhbCBpbnZhc2lvbiBvZiBJcmFxIGFuZCBsZWQgdG8gYSDigJh3YXIgb24gdGVycm9y4oCZIHN5bWJvbGlzZWQgYnkgR3VhbnRhbmFtbyBCYXkgYW5kIGEgZGViYXRlIG92ZXIgdGhlIGp1c3RpZmljYXRpb24gb2YgdG9ydHVyZS4NCjIwMDEgKE9jdCA3KTpbR2VvUG9saXRpY3NdIFVuaXRlZCBTdGF0ZXMgaW52YXNpb24gb2YgQWZnaGFuaXN0YW46IEluIGxhdGUgMjAwMSwgdGhlIFVuaXRlZCBTdGF0ZXMgYW5kIGl0cyBjbG9zZSBhbGxpZXMgaW52YWRlZCBBZmdoYW5pc3RhbiBhbmQgdG9wcGxlZCB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50LiBUaGUgaW52YXNpb24ncyBzdGF0ZWQgYWltcyB3ZXJlIHRvIGRpc21hbnRsZSBhbC1RYWVkYSwgd2hpY2ggaGFkIGV4ZWN1dGVkIHRoZSBTZXB0ZW1iZXIgMTEgYXR0YWNrcywgYW5kIHRvIGRlbnkgaXQgYSBzYWZlIGJhc2Ugb2Ygb3BlcmF0aW9ucyBpbiBBZmdoYW5pc3RhbiBieSByZW1vdmluZyB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50IGZyb20gcG93ZXIuIERlYyA3LCAyMDAxIG9ud2FyZCBzdGFydGVkIFdhciBpbiBBZmdoYW5pc3Rhbi4NCjIwMDEgKE9jdCAxNik6W0Jvb2tdIE1jS2luc2V5IFJlc2VhcmNoZXIgSmFtZXMgQy4gQ29sbGlucycgR29vZCBUbyBHcmVhdDogV2h5IFNvbWUgQ29tcGFuaWVzIE1ha2UgdGhlIExlYXAuLi5BbmQgT3RoZXJzIERvbid0OyANCjIwMDEgKE5vdik6W0NyaW1lXVtJbmRpYV0gQWJkdWwgR2FmZmFyIGFsaWFzIENoaWtuYSBHYWZmYXIgY2F1Z2h0IGJ5IHRoZSBkZXRlY3RpdmUgZGVwYXJ0bWVudCBpbiBDYWxjdXR0YSANCjIwMDEgKEphbiAyKTogVGhlIG5vcnRoZXJuIGVsZWN0cmljYWwgZ3JpZCBjb2xsYXBzZWQgaW4gSW5kaWEuIEEgZmF1bHQgaW4gdGhlIHRyYW5zbWlzc2lvbiBzeXN0ZW0gaW4gdGhlIHN0YXRlIG9mIFV0dGFyIFByYWRlc2ggbGVkIHRvIGNhc2NhZGluZyBmYWlsdXJlIHRocm91Z2hvdXQgbm9ydGhlcm4gSW5kaWEgYWZmZWN0aW5nIDIzIGNyb3JlIHJlc2lkZW50cy4NCjIwMDE6IElWUlMgKCdJbnRlcmFjdGl2ZSBWb2ljZSBSZXNwb25zZSBTeXN0ZW0nKSBmb3IgdGVsZXBob25pYyBlbnF1aXJpZXMgYWJvdXQgdHJhaW5zIGludHJvZHVjZWQgaW4gc29tZSBzdGF0aW9ucy4NCjIwMDE6IE1hZGVFYXN5IGluY29ycG9yYXRlZCBhdCA0NC1BLzEsIEthbHUgU2FyYWksIE5lYXIgSGF1eiBLaGFzIE1ldHJvIFN0YXRpb24sIE5ldyBEZWxoaS0xMTAwMTYNCjIwMDE6IEFjYyB0byAyMDAxIGNlbnN1cywgMzAgbGFraHMgd2VyZSBpbW1pZ3JhdGVkIHRvIEluZGlhIGZyb20gQmFuZ2xhZGVzaCBhbG9uZSwgZm9sbG93ZWQgYnkgMTAgbGFraHMgZnJvbSBQYWtpc3RhbiBhbmQgNiBsYWtocyBmcm9tIE5lcGFsLg0KMjAwMSAoRGVjIDEzKTpbQ3JpbWVdW0luZGlhXSBUZXJyb3Jpc3QgYXR0YWNrIG9uIEluZGlhJ3MgUGFybGlhbWVudC4NCjIwMDE6IHRoZSBjdXN0b21lciBiYXNlIG9mIG1vYmlsZSBwaG9uZSBjb21wYW5pZXMgd2FzIDQgbWlsbGlvbi4NCjIwMDE6IEJlbmVmaXQgbGFubmVycywgVGV4YXMgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBIZWFsdGggQmVuZWZpdCBkaXZpc2lvbi4NCjIwMDE6IE5ldyBIb3Jpem9ucyB3YXMgaW5pdGlhbGx5IHNlbGVjdGVkIGZvciBmdW5kaW5nIGluIDIwMDEgYnV0IHdhcyBleGNsdWRlZCBmcm9tIHRoZSBOQVNBIDIwMDMgYnVkZ2V0LiBGdW5kaW5nIGZvciB0aGUgbWlzc2lvbiB3YXMgcmVpbnN0YXRlZCBhZnRlciBOZXcgSG9yaXpvbnMgd2FzIGxpc3RlZCBhcyBhIHRvcCBwcmlvcml0eSBpbiB0aGUgUGxhbmV0YXJ5IFNjaWVuY2UgRGVjYWRhbCBTdXJ2ZXkgb2YgMjAwM+jjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlallkllklklklklklklklklklklklklklklklklklklklklklklklklklklklkjjajlkasjdlajdlkajdlaj
+KAkzIwMDEuDQoxOTkzOiBBc2hvayBIYWxsIEdpcmwncyBSZXNpZGVudGlhbCBTY2hvb2wsIE1hamtoYWxpLg0KMTk5MzogQnkgdGhpcyB5ZWFyIHRoZXJlIHdlcmUgYXJvdW5kIDEwMCB3ZWItc2VydmVycyBhY3Jvc3MgdGhlIHdvcmxkLiAoQSByZXBvcnQgcHVibGlzaGVkIGluIGZpcnN0IGlzc3VlIG9mIFRoZSBXb3JsZCBXaWRlIFdlYiBOZXdzbGV0dGVyLCAxOTkzKQ0KMTk5MzogQUMgMy10aWVyIGNvYWNoZXMgJiBTbGVlcGVyIGNsYXNzIGFyZSBpbnRyb2R1Y2VkIGFwYXJ0IGZyb20gc2Vjb25kIGNsYXNzLg0KMTk5MzogR29JJ3MgRGlzdHJpY3QgUHJpbWFyeSBFZHVjYXRpb24gUHJvZ3JhbW1lIChEUEVQKSB3YXMgbGF1bmNoZWQsIHdpdGggYW4gYWltIG9mIGFjaGlldmluZyB0aGUgb2JqZWN0aXZlIG9mIHVuaXZlcnNhbCBwcmltYXJ5IGVkdWNhdGlvbi4gVGhpcyBwcm9ncmFtbWVkIGxhaWQgdGhlIGZvdW5kYXRpb25zIGZvciDgpLjgpLDgpY3gpLUg4KS24KS/4KSV4KWN4KS34KS+IOCkheCkreCkv+Ckr+CkvuCkqChFZHVjYXRpb24gZm9yIEFsbCBNb3ZlbWVudCkgYWltZWQgYXQgdGhlIHVuaXZlcnNhbGlzYXRpb24gb2YgZWxlbWVudGFyeSBlZHVjYXRpb24gbWFraW5nIGZyZWUgYW5kIGNvbXB1bHNvcnkgZWR1Y2F0aW9uIHRvIGNoaWxkcmVuIGJldHdlZW4gdGhlIGFnZXMgb2YgNiB0byAxNC4NCjE5OTM6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIHNwbGl0IHdpdGggRGF3b29kIGFuZCBmb3JtZWQgYW4gaW5kZXBlbmRlbnQgZ2FuZyB0aGF0IGZyZXF1ZW50bHkgY2xhc2hlZCB3aXRoIERhd29vZCdzIEQtQ29tcGFueS4NCjE5OTMgKEphbiA3KTpbQ3JpbWVdIFJpb3RzIHJlLXN0YXJ0ZWQgaW4gTXVtYmFpIGFuZCBsYXN0ZWQgZm9yIDIwIGRheXMuIFRoZSBJU0ksIHdoaWNoIGNvbnRyb2xsZWQgc2hpcHBpbmcgcm91dGVzIGZyb20gdGhlIEd1bGYgdG8gSW5kaWEncyB3ZXN0IGNvYXN0LCBkZW1hbmRlZCB0aGF0IHRoZSBtYWZpYSB0cmFuc3BvcnQgd2VhcG9ucyBhbmQgZXhwbG9zaXZlcyBpbnRvIEluZGlhIGluIHJldHVybiBmb3IgdGhlIHVzZSBvZiBQYWtpc3RhbidzIHdhdGVycy4gRGF3b29kIG1ldCB0aGVpciBJU0kgaGFuZGxlcnMgaW4gYSA1IHN0YXIgaG90ZWwgb2YgRHViYWkgaW4gSmFuIG9yIEZlYiBvZiAxOTkzLCB0aGVuIGNhbWUgdGhlIFJEWCB0aHJvdWdoIHRoZSBzYW1lIHBvcm91cyBhbmQgdW5jaGVja2VkIHNlYSByb3V0ZSB0aGF0IDI2LzExIGF0dGFja2VycyBzbGlwcGVkIGFjcm9zcyBhbmQgd3JlY2tlZCBtYXloZW0gaW4gTXVtYmFpLiBUaGUg4oCZOTMgYXR0YWNrcyB3ZXJlIGZpbmFsbHkgZXhlY3V0ZWQgaW4gbWFyY2ggdGhhdCBjbGFpbWVkIHNvbWUgMzAwIGlubm9jZW50IGxpdmVzLg0KMTk5MyAoTWFyIDYpOltQb2xpdHldW0luZGlhXSBTaGFyYWQgUGF3YXIgcmUtZWxlY2V0ZCBhcyBDTSBvZiBNSCBmb3IgMiB5ZWFycy4NCjE5OTMgKE1hciAxMik6W0NyaW1lXSBUaGUgMTk5MyBCb21iYXkgYm9tYmluZ3Mgd2VyZSBhIHNlcmllcyBvZiAxMiB0ZXJyb3Jpc3QgYm9tYmluZ3MgdGhhdCB0b29rIHBsYWNlIGluIEJvbWJheS4gVGhlIHNpbmdsZS1kYXkgYXR0YWNrcyByZXN1bHRlZCBpbiAyNTcgZmF0YWxpdGllcyBhbmQgMSw0MDAgaW5qdXJpZXMuIFRoZXJlIHdhcyBhbm90aGVyIHJhaWQgbmVhciBNYW5pc2ggbWFya2V0IHdoZXJlIGhhbmQgZ3JlbmFkZXMgd2VyZSByZWNvdmVyZWQuIEFmdGVyIGFub3RoZXIgdGlwIG9mZiBsZWQgdG8gZGlzY292ZXJ5IG9mIGEgaHVnZSBxdWFudGl0eSBvZiBSRFggZnJvbSBOYWdsYSBCdW5kZXIgb2ZmIEdob2RidW5kZXIgUm9hZCBpbiBUaGFuZS4g4oCcSW4gYWxsLCA1LDAwMCBraWxvZ3JhbXMgb2YgUkRYIHdhcyBicm91Z2h0IGludG8gTXVtYmFpIGFuZCB3ZSByZWNvdmVyZWQgMywzMDAga2lsb2dyYW1zIG9mIGl0IGluIGFsbCB0aGUgcmFpZHMs4oCdIHNheXMgQ2hhdWd1bGUuIFJlZHVjZWQgU2hvY2sgU2Vuc2l0aXZpdHkgKFJTUykgZXhwbG9zaXZlcywgc3VjaCBhcyBSU1MtUkRYLCB3aGljaCBjb3N0cyBhYm91dCBScy4gMSw1MDAtMiwwMDAgcGVyIGtnLiBBbmVlcyBjb250aW51ZWQgb3BlcmF0aW9uIG9mIEQtQ29tcGFueSB3aGljaCBpbmNsdWRlIGNvbnRyYWN0IGtpbGxpbmcsIGV4dG9ydGlvbiwgdGhlIGNpcmN1bGF0aW9uIG9mIGNvdW50ZXJmZWl0IGN1cnJlbmN5LCBhbmQgdGhlIHByb3Zpc2lvbiBvZiBhIHJhbmdlIG9mIGZyZWUtbGFuY2Ugc2VydmljZXMgdG8gdGVycm9yaXN0IGdyb3VwcyBhdCB0aGUgaW5zdGFuY2Ugb2YgUGFraXN0YW4ncyBJbnRlciBTZXJ2aWNlcyBJbnRlbGxpZ2VuY2UgKElTSSkuIEludGVycG9sIFJlZCBDb3JuZXIgbm90aWNlIGZvciBELUNvbXBhbnkuDQoxOTkzIChOb3YgMSk6IFRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGZvdW5kZWQuIEl0IGlzIGFuIGVjb25vbWljIGFuZCBwb2xpdGljYWwgcGFydG5lcnNoaXAgaW52b2x2aW5nIDI4IEV1cm9wZWFuIGNvdW50cmllcy4gSXQgYmVnYW4gYWZ0ZXIgV1cyIHRvIGZvc3RlciBlY29ub21pYyBjby1vcGVyYXRpb24sIHdpdGggdGhlIGlkZWEgdGhhdCBjb3VudHJpZXMgd2hpY2ggdHJhZGUgdG9nZXRoZXIgYXJlIG1vcmUgbGlrZWx5IHRvIGF2b2lkIGdvaW5nIHRvIHdhciB3aXRoIGVhY2ggb3RoZXIuDQoxOTkzIChOb3YgMyk6IFtHZW9Qb2xpdGljc10gVGhlIENvbW1vbiBNYXJrZXQgZm9yIEVhc3Rlcm4gYW5kIFNvdXRoZXJuIEFmcmljYSAoQ09NRVNBKSBpcyBhIHJlZ2lvbmFsIGVjb25vbWljIGNvbW11bml0eSBpbiBBZnJpY2Egd2l0aCB0d2VudHktb25lIG1lbWJlciBzdGF0ZXMgc3RyZXRjaGluZyBmcm9tIFR1bmlzaWEgdG8gRXN3YXRpbmkuIENPTUVTQSB3YXMgZm9ybWVkIGluIERlY2VtYmVyIDE5OTQsIHJlcGxhY2luZyBhIFByZWZlcmVudGlhbCBUcmFkZSBBcmVhIHdoaWNoIGhhZCBleGlzdGVkIHNpbmNlIDE5ODEuIE5pbmUgb2YgdGhlIG1lbWJlciBzdGF0ZXMgZm9ybWVkIGEgZnJlZSB0cmFkZSBhcmVhIGluIDIwMDAgKERqaWJvdXRpLCBFZ3lwdCwgS2VueWEsIE1hZGFnYXNjYXIsIE1hbGF3aSwgTWF1cml0aXVzLCBTdWRhbiwgWmFtYmlhIGFuZCBaaW1iYWJ3ZSksIHdpdGggUndhbmRhIGFuZCBCdXJ1bmRpIGpvaW5pbmcgdGhlIEZUQSBpbiAyMDA0LCB0aGUgQ29tb3JvcyBhbmQgTGlieWEgaW4gMjAwNiwgU2V5Y2hlbGxlcyBpbiAyMDA5IGFuZCBUdW5pc2lhIGFuZCBTb21hbGlhIGluIDIwMTguDQoxOTkzIChEZWMgMjApOiBPSENIUiBmb3JtZWQuIFRoZSBPZmZpY2Ugb2YgdGhlIFVuaXRlZCBOYXRpb25zIEhpZ2ggQ29tbWlzc2lvbmVyIGZvciBIdW1hbiBSaWdodHMgKE9IQ0hSKSwgYSBVbml0ZWQgTmF0aW9ucyBhZ2VuY3kgdGhhdCB3b3JrcyB0byBwcm9tb3RlIGFuZCBwcm90ZWN0IHRoZSBodW1hbiByaWdodHMgdGhhdCBhcmUgZ3VhcmFudGVlZCB1bmRlciBpbnRlcm5hdGlvbmFsIGxhdyBhbmQgc3RpcHVsYXRlZCBpbiB0aGUgVW5pdmVyc2FsIERlY2xhcmF0aW9uIG9mIEh1bWFuIFJpZ2h0cyBvZiAxOTQ4Lg0KMTk5Mzp0aGUgMjR0aCBhbmQgbGFzdCBHTE9OQVNTIHNhdGVsbGl0ZSB3YXMgbGF1bmNoZWQgZm9ybWluZyB0aGUgd2hvbGUgbmF2aWdhdGlvbiBjb25zdGVsbGF0aW9uIHNpbWlsYXIgdG8gdGhhdCBvZiBVUydzIEdQUy4NCjE5OTM6IFNIQS0wIChhIGhhc2ggZnVuY3Rpb24pIHdhcyBwcm9wb3NlZCBieSBOSVNULCBNYXJ5bGFuZCwgVVNBIChGb3VuZGVkOiAxOTAxKS4gSXQgcHJvZHVjZXMgYSAxNjAtYml0IGhhc2ggdmFsdWUsIHRodXMgdGhlIGJydXRlLWZvcmNlIGNvbGxpc2lvbiBvciAgbmVhci1jb2xsaXNpb24gYXR0YWNrIHJlcXVpcmVzIE8oMl44MCkgY29tcHV0YXRpb24uIFdpdGhpbiA1IHllYXJzLCBpdCB3YXMgbWFkZSBjb2xsaXNpb24gYXR0YWNrZWQgYnkgQ2hhYmF1ZCBhbmQgSm91eCB3aXRoIHRoZSBhdHRhY2sgY29tcGxleGl0eSBvZiAyXjYxLg0KMTk5MzogW0NvYWxnYXRlIHNjYW1dIE9uIDIzcmQgQXByaWwgMjAxMywgdGhlIFN0YW5kaW5nIENvbW1pdHRlZSBvbiBDb2FsIGFuZCBTdGVlbCB0YWJsZWQgaW4gUGFybGlhbWVudCB0aGF0IGFsbCAxOTQgY29hbCBibG9ja3MgZGlzdHJpYnV0ZWQgYmV0d2VlbiAxOTkzIGFuZCAyMDA4IHdlcmUgYXVjdGlvbmVkIGluIGFuIHVuYXV0aG9yaXplZCBtYW5uZXIgYW5kIHRoZSBjb3VudHJ5IGxvc3QgUnMuMS44NiBsYWtoIGNyb3JlLi4gRm9ybWVyIFByaW1lIE1pbmlzdGVyIE1hbm1vaGFuIFNpbmdoLCBhbG9uZyB3aXRoIEt1bWFyIE1hbmdhbGFtIEJpcmxhIGFuZCBQLkMuIFBhcmFraCwgd2VyZSBhY2N1c2VkIGFuZCBzdW1tb25lZCBieSBhIHNwZWNpYWwgY291cnQuIFsyTCBDcm9yZV0uIENvbXB0cm9sbGVyIGFuZCBBdWRpdG9yIEdlbmVyYWwgb2YgSW5kaWEgdG9vayAyMCB5ZWFycyB0byBJRCBvbmUgb2YgdGhlIGJpZ2dlc3Qgc2NhbXMgaW4gSW5kaWFuIGhpc3RvcnkuDQoxOTkzOiBBZnRlciBQcmVzaWRlbnQgQmlsbCBDbGludG9uIHRvb2sgb2ZmaWNlIGluIDE5OTMsIGhvd2V2ZXIsIHRoZSBVLlMuIGVjb25vbXkgZW1iYXJrZWQgb24gYSBsb25nIGFuZCBzdHJvbmcgZXhwYW5zaW9uLCBtYWtpbmcgdGhlIDE5OTBzIGEgZ3JlYXQgZGVjYWRlIGZvciBBbWVyaWNhJ3MgbW9uZXksIG92ZXJhbGwuIA0KMTk5MzpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTW90aHJhKDE5OTIpDQoxOTkzOltTcGFjZV0gSGlwcGFyY29zLCBhIHNjaWVudGlmaWMgc2F0ZWxsaXRlIG9mIHRoZSBFdXJvcGVhbiBTcGFjZSBBZ2VuY3kgKEVTQSkgbGFzdGVkIGZvciA0IHllYXJzIGJlZm9yZSBnb2luZyBvdXQtb2Ytc2VydmljZS4NCjE5OTM6W1NwYWNlXVtSZXNlYXJjaF0gSW4gMTk5MywgRG9uIFBhZ2UgYXJndWVkIHRoYXQgaWYgYSBibGFjayBob2xlIHN0YXJ0cyBpbiBhIHB1cmUgcXVhbnR1bSBzdGF0ZSBhbmQgZXZhcG9yYXRlcyBjb21wbGV0ZWx5IGJ5IGEgdW5pdGFyeSBwcm9jZXNzLCB0aGUgdm9uIE5ldW1hbm4gZW50cm9weSBvZiB0aGUgSGF3a2luZyByYWRpYXRpb24gaW5pdGlhbGx5IGluY3JlYXNlcyBhbmQgdGhlbiBkZWNyZWFzZXMgYmFjayB0byB6ZXJvIHdoZW4gdGhlIGJsYWNrIGhvbGUgaGFzIGRpc2FwcGVhcmVkLiBUaGlzIGlzIGNhbGxlZCB0aGUgUGFnZSBjdXJ2ZS4NCjE5OTM6W0Jvb2tzXVtIaXN0b3J5XSBHcmVlbuKAmXMgRGljdGlvbmFyeSBvZiBTbGFuZyBpcyB0aGUgbGFyZ2VzdCBoaXN0b3JpY2FsIGRpY3Rpb25hcnkgb2YgRW5nbGlzaCBzbGFuZy4gV3JpdHRlbiBieSBKb25hdGhvbiBHcmVlbiBvdmVyIDE3IHllYXJzIGZyb20gMTk5MywgaXQgcmVhY2hlZCB0aGUgcHJpbnRlZCBwYWdlIGluIDIwMTAgaW4gYSB0aHJlZS12b2x1bWUgc2V0IGNvbnRhaW5pbmcgbmVhcmx5IDEwMCwwMDAgZW50cmllcyBzdXBwb3J0ZWQgYnkgb3ZlciA0MDAsMDAwIGNpdGF0aW9ucyBmcm9tIGMuIGFkIDEwMDAgdG8gdGhlIHByZXNlbnQgZGF5LiBUaGUgbWFpbiBmb2N1cyBvZiB0aGUgZGljdGlvbmFyeSBpcyB0aGUgY292ZXJhZ2Ugb2Ygb3ZlciA1MDAgeWVhcnMgb2Ygc2xhbmcgZnJvbSBjLiAxNTAwIG9ud2FyZHMuDQoxOTkzOltFbnZdW0Rpc2FzdGVyXSBTb3V0aCBBc2lhbiBtb25zb29uIGZsb29kcywgM2sgZGVhdGhzDQoxOTkzOltHZW9ncmFwaHldIFRoZSBsYXN0IG1ham9yIHNoaWZ0cyBpbiBFYXJ0aCdzIGF4aXMgd2VyZSBpbmZsdWVuY2VkIGJ5IGNsaW1hdGUgY2hhbmdlOiBhIDMxLjUtaW5jaCBzaGlmdCBiZXR3ZWVuIDE5OTMgYW5kIDIwMTAgd2FzIHByaW1hcmlseSBjYXVzZWQgYnkgZ3JvdW5kd2F0ZXIgcHVtcGluZywgYW5kIGEgY2hhbmdlIGluIHBvbGFyIGRyaWZ0IGRpcmVjdGlvbiBhcm91bmQgdGhlIDE5OTBzIHdhcyBsaW5rZWQgdG8gbWVsdGluZyBnbGFjaWVycyBhbmQgaWNlIHNoZWV0cyBkdWUgdG8gZ2xvYmFsIHdhcm1pbmcuIEVhcnRoJ3MgYXhpcyBhbHNvIHNoaWZ0ZWQgYnkgYWJvdXQgNi41IGluY2hlcyBpbiBNYXJjaCAyMDExIGFmdGVyIHRoZSBKYXBhbmVzZSBlYXJ0aHF1YWtlLCBjYXVzaW5nIHRoZSBwbGFuZXQgdG8gc3BpbiBzbGlnaHRseSBmYXN0ZXIuDQoxOTkzOltXaG9dIEluIDE5OTMsIEluZGlhIGNhbWUgaGVhcnRicmVha2luZ2x5IGNsb3NlIHRvIHdpbm5pbmcgaXRzIGZpcnN0IE1pc3MgVW5pdmVyc2UgY3Jvd24gd2l0aCB0aGUgc3R1bm5pbmcgYW5kIGdyYWNlZnVsIE5hbXJhdGEgU2hpcm9ka2FyLCB3aG8gaGFkIGVhcmxpZXIgd29uIHRoZSBGZW1pbmEgTWlzcyBJbmRpYSB0aXRsZS4gUmVwcmVzZW50aW5nIEluZGlhIGF0IHRoZSBNaXNzIFVuaXZlcnNlIHBhZ2VhbnQgaGVsZCBpbiBNZXhpY28gQ2l0eSwgTmFtcmF0YSB3YXMgYSBzdHJvbmcgY29udGVuZGVy4oCUZWxlZ2FudCBpbiBoZXIgZ293biwgcG9pc2VkIGluIGludGVydmlld3MsIGFuZCBhIGZhbiBmYXZvcml0ZS4gU2hlIGVhc2lseSBtYWRlIGl0IHRvIHRoZSBUb3AgNiwgYW5kIGhlciBjaGFuY2VzIG9mIHdpbm5pbmcgbG9va2VkIGluY3JlZGlibHkgaGlnaC4gQnV0IHRoZW4gY2FtZSB0aGUgZmluYWwgcXVlc3Rpb246IOKAnElmIHlvdSBjb3VsZCBiZSBib3JuIGFzIGFueSBoaXN0b3JpY2FsIGZpZ3VyZSwgd2hvIHdvdWxkIGl0IGJlIGFuZCB3aHk/4oCdIFdoaWxlIG90aGVyIGNvbnRlc3RhbnRzIG5hbWVkIGdsb2JhbCBpY29ucyBsaWtlIE1vdGhlciBUZXJlc2EgYW5kIFByaW5jZXNzIERpYW5hLCBOYW1yYXRhIGdhdmUgYW4gaG9uZXN0LCBwZXJzb25hbCBhbnN3ZXLigJRzaGUgc2FpZCBzaGUgd291bGQgYmUgYm9ybiBhcyBoZXJzZWxmIG9yIHNvbWVvbmUgY2xvc2UgdG8gaGVyLCBiZWNhdXNlIHNoZSBiZWxpZXZlZCBpbiBsaXZpbmcgbGlmZSB3aXRoIHRydXRoIGFuZCBpbmRpdmlkdWFsaXR5LiBJdCB3YXMgYSBiZWF1dGlmdWwsIGdyb3VuZGVkIGFuc3dlcuKAlGJ1dCBub3QgdGhlIGtpbmQgb2YgZ3JhbmQsIGlkZWFsaXN0aWMgcmVzcG9uc2UgdGhlIGp1ZGdlcyB3ZXJlIGV4cGVjdGluZy4gVGhhdCBvbmUgbW9tZW50IG9mIHRydXRoLCBtYW55IGJlbGlldmUsIGNvc3QgaGVyIHRoZSBjcm93biwgYW5kIEluZGlhIGhhZCB0byB3YWl0IGFub3RoZXIgeWVhciBiZWZvcmUgU3VzaG1pdGEgU2VuIGJyb3VnaHQgdGhlIE1pc3MgVW5pdmVyc2UgdGl0bGUgaG9tZSBpbiAxOTk0LiBTdGlsbCwgTmFtcmF0YeKAmXMgYW5zd2VyIGJlY2FtZSBpY29uaWPigJRub3QgYmVjYXVzZSBpdCB3b24sIGJ1dCBiZWNhdXNlIGl0IHdhcyByZWFsLCBtYXJraW5nIGEgcmFyZSBpbnN0YW5jZSB3aGVyZSBob25lc3R5IHN0b29kIHRhbGxlciB0aGFuIGRpcGxvbWFjeS4NCjE5OTM6W0F2aWF0aW9uXVtFeHRyZW1lXVtXaG9dIFRoZSBIZXJic3QgbWFuZXV2ZXIgd2FzIGZpcnN0IHN1Y2Nlc3NmdWxseSBwZXJmb3JtZWQgb24gQXByaWwgMjksIDE5OTMsIGJ5IGFuIFgtMzEgYWlyY3JhZnQuIE5hbWVkIGFmdGVyIFdvbGZnYW5nIEhlcmJzdCwgYSBkZXZlbG9wZXIgb2YgcG9zdC1zdGFsbCB0ZWNobm9sb2d5IGZvciBNZXNzZXJzY2htaXR0LULDtmxrb3ctQmxvaG0gKE1CQiksIHRoaXMsIHBvc3Qtc3RhbGwgbWFuZXV2ZXIgZW5hYmxlcyBhIGZpZ2h0ZXIgdG8gbWFrZSBhIHJhcGlkIDE4MMKwIHR1cm4gd2l0aGluIGEgbWluaW1hbCByYWRpdXMuIA0KDQoxOTk04oCTMTk5NTpbVVNdW0dlb1BvbGl0aWNzXSBvY2N1cGF0aW9uIG9mIEhhaXRpLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgRXVyb3BlYW4gRWNvbm9taWMgQXJlYSwgYWJicmV2aWF0ZWQgYXMgRUVBLCBjb25zaXN0cyBvZiB0aGUgTWVtYmVyIFN0YXRlcyBvZiB0aGUgRXVyb3BlYW4gVW5pb24gKEVVKSBhbmQgdGhyZWUgY291bnRyaWVzIG9mIHRoZSBFdXJvcGVhbiBGcmVlIFRyYWRlIEFzc29jaWF0aW9uIChFRlRBKSAoSWNlbGFuZCwgTGllY2h0ZW5zdGVpbiBhbmQgTm9yd2F5OyBleGNsdWRpbmcgU3dpdHplcmxhbmQpLiBUaGUgQWdyZWVtZW50IG9uIHRoZSBFRUEgZW50ZXJlZCBpbnRvIGZvcmNlIG9uIDEgSmFudWFyeSAxOTk0LiANCjE5OTQ6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEV1cm9wZWFuIEVjb25vbWljIEFyZWEgKEVFQSkgd2FzIGVzdGFibGlzaGVkIG9uIDEgSmFudWFyeSAxOTk0LiBUaGUgYWdyZWVtZW50IGxpbmtzIHRoZSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aHJlZSBFRlRBIHN0YXRlc+KAlEljZWxhbmQsIExpZWNodGVuc3RlaW4sIGFuZCBOb3J3YXnigJRpbnRvIGEgc2luZ2xlIGludGVybmFsIG1hcmtldCwgYWxsb3dpbmcgZm9yIHRoZSBmcmVlIG1vdmVtZW50IG9mIGdvb2RzLCBwZXJzb25zLCBzZXJ2aWNlcywgYW5kIGNhcGl0YWwuIA0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBOQUZUQSwgdGhlIE5vcnRoIEFtZXJpY2FuIEZyZWUgVHJhZGUgQWdyZWVtZW50LCB3YXMgYSAxOTk0IGFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzLCBDYW5hZGEsIGFuZCBNZXhpY28gdG8gZWxpbWluYXRlIHRyYWRlIGJhcnJpZXJzIGFuZCBwcm9tb3RlIGZyZWUgdHJhZGUgaW4gTm9ydGggQW1lcmljYS4gSXQgZmFjaWxpdGF0ZWQgdGhlIG1vdmVtZW50IG9mIGdvb2RzIGFuZCBzZXJ2aWNlcyBhbmQgZXN0YWJsaXNoZWQgYSBsYXJnZSB0cmFkZSBibG9jLiBJbiBKdWx5IDIwMjAsIE5BRlRBIHdhcyByZXBsYWNlZCBieSB0aGUgVW5pdGVkIFN0YXRlcy1NZXhpY28tQ2FuYWRhIEFncmVlbWVudCAoVVNNQ0EpLCB3aGljaCBtb2Rlcm5pemVkIGFuZCBlbmhhbmNlZCB0aGUgdHJlYXR5IGZvciBhIGNvbnRlbXBvcmFyeSBlY29ub215Lg0KMTk5NDpbUy5BZnJpY2FdW1NvY2lhbGlzbV0gRmlyc3QgZnJlZSBlbGVjdGlvbnMgaW4gU291dGggQWZyaWNhOyBOZWxzb24gTWFuZGVsYQ0KMTk5NDpbUmVzZWFyY2hdW3NwYWNlXSBDYXJsIFNhZ2FuIGNvbmNlZGVkIHRoYXQgdGhpcyBhcHByb2FjaCB3b3VsZCBub3Qgd29yayBiZWNhdXNlIHRoZSBhdG1vc3BoZXJlIG9mIFZlbnVzIGlzIGZhciBkZW5zZXIgKDkwIGJhcnMpIHRoYW4gd2hhdCB3YXMgdW5kZXJzdG9vZCBpbiAxOTYxIChhIGZldyBiYXJzKSwgbWVhbmluZyB0aGUgY2FyYm9uIHdvdWxkIGp1c3QgYmUgb3hpZGl6ZWQgYmFjayBpbnRvIENPMi4NCjE5OTQ6W0NvbXB1dGluZ11bUXVhbnR1bV0gUGV0ZXIgU2hvciBkaXNjb3ZlcmVkIGFuIGFsZ29yaXRobSAoU2hvcidzIGFsZ29yaXRobSkgdGhhdCBjb3VsZCBmYWN0b3IgbGFyZ2UgbnVtYmVycyBpbiBwb2x5bm9taWFsIHRpbWUgb24gYSBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCB3b3VsZCBicmVhayB0aGUgc2VjdXJpdHkgb2YgbWFueSBjcnlwdG9ncmFwaGljIHNjaGVtZXMuIA0KMTk5NDpbQ29tcHV0aW5nXVtRdWFudHVtXSBQZXRlciBTaG9yIGFuZCBEb24gQ29wcGVyc21pdGggZmlndXJlZCBvdXQgaG93IHRvIHRha2UgYSBRdWFudHVtIEZvdXJpZXIgVHJhbnNmb3JtLg0KMTk5NDpUaGUgcHJvYmxlbSB3aXRoIHRoZSBwYXBlciBwdWJsaXNoZWQgZWFybGllciB0aGlzIG1vbnRoIHdhcyBpdHMgcmVsaWFuY2Ugb24gU2Nobm9ycidzIGFsZ29yaXRobSAobm90IHRvIGJlIGNvbmZ1c2VkIHdpdGggU2hvcuKAmXMgYWxnb3JpdGhtKSwgd2hpY2ggd2FzIGRldmVsb3BlZCBpbiAxOTk0LiBTY2hub3Jy4oCZcyBhbGdvcml0aG0gaXMgYSBjbGFzc2ljYWwgY29tcHV0YXRpb24gYmFzZWQgb24gbGF0dGljZXMsIHdoaWNoIGFyZSBtYXRoZW1hdGljYWwgc3RydWN0dXJlcyB0aGF0IGhhdmUgbWFueSBhcHBsaWNhdGlvbnMgaW4gY29uc3RydWN0aXZlIGNyeXB0b2dyYXBoeSBhbmQgY3J5cHRhbmFseXNpcy4gVGhlIGF1dGhvcnMgd2hvIGRldmlzZWQgU2Nobm9ycuKAmXMgYWxnb3JpdGhtIHNhaWQgaXQgY291bGQgZW5oYW5jZSB0aGUgdXNlIG9mIHRoZSBoZXVyaXN0aWMgcXVhbnR1bSBvcHRpbWl6YXRpb24gbWV0aG9kIGNhbGxlZCBRQU9BLg0KMTk5NCAoSmFuIDEpOiBbR2VvUG9saXRpY3NdIFRoZSBOb3J0aCBBbWVyaWNhbiBGcmVlIFRyYWRlIEFncmVlbWVudCAoTkFGVEEpIHdhcyBhbiBhZ3JlZW1lbnQgc2lnbmVkIGJ5IENhbmFkYSwgTWV4aWNvLCBhbmQgdGhlIFVuaXRlZCBTdGF0ZXMgdGhhdCBjcmVhdGVkIGEgdHJpbGF0ZXJhbCB0cmFkZSBibG9jIGluIE5vcnRoIEFtZXJpY2EuIFRoZSBhZ3JlZW1lbnQgY2FtZSBpbnRvIGZvcmNlIG9uIEphbnVhcnkgMSwgMTk5NCwgYW5kIHN1cGVyc2VkZWQgdGhlIDE5ODggQ2FuYWRh4oCTVW5pdGVkIFN0YXRlcyBGcmVlIFRyYWRlIEFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzIGFuZCBDYW5hZGEuIFRoZSBOQUZUQSB0cmFkZSBibG9jIGZvcm1lZCBvbmUgb2YgdGhlIGxhcmdlc3QgdHJhZGUgYmxvY3MgaW4gdGhlIHdvcmxkIGJ5IGdyb3NzIGRvbWVzdGljIHByb2R1Y3QuDQoxOTk0OltUZWNobm9sb2d5XVtCdXNpbmVzc11bVVNdW0NvbXB1dGluZ10gVGhlIERlbGwgTGF0aXR1ZGUgc2VyaWVzIGlzIGEgbGluZSBvZiBsYXB0b3AgY29tcHV0ZXJzIG1hbnVmYWN0dXJlZCBhbmQgc29sZCBieSBBbWVyaWNhbiBjb21wYW55IERlbGwuIEl0IGlzIGEgYnVzaW5lc3Mtb3JpZW50ZWQgbGluZSwgYWltZWQgYXQgY29ycG9yYXRlIGVudGVycHJpc2VzLCBoZWFsdGhjYXJlLCBnb3Zlcm5tZW50LCBhbmQgZWR1Y2F0aW9uIG1hcmtldHM7IHVubGlrZSB0aGUgSW5zcGlyb24gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBpbmRpdmlkdWFsIGN1c3RvbWVycywgYW5kIHRoZSBWb3N0cm8gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBzbWFsbGVyIGJ1c2luZXNzZXMuIFRoZSBMYXRpdHVkZSBkaXJlY3RseSBjb21wZXRlcyB3aXRoIHRoZSBMZW5vdm8gVGhpbmtQYWQgYW5kIHRoZSBFbGl0ZUJvb2sgc2VyaWVzIGJ5IEhQLiBBZGRpdGlvbmFsbHksIHRoZSAiUnVnZ2VkIChFeHRyZW1lKSIsICJYRlIiIGFuZCAiQVRHIiBtb2RlbHMgY29tcGV0ZSBwcmltYXJpbHkgd2l0aCBQYW5hc29uaWMncyBUb3VnaGJvb2sgbGluZSBvZiAicnVnZ2VkIiBsYXB0b3BzLg0KMTk5NDogU3VzaG1pdGEgU2VuIGJlY2FtZSBNaXNzIFVuaXZlcnNlLg0KMTk5NDogVGhlIEFubmFscyBvZiBJbXByb2JhYmxlIFJlc2VhcmNoIGlzIGEgYmktbW9udGhseSBtYWdhemluZSBkZXZvdGVkIHRvIHNjaWVudGlmaWMgaHVtb3IsIGluIHRoZSBmb3JtIG9mIGEgc2F0aXJpY2FsIHRha2Ugb24gdGhlIHN0YW5kYXJkIGFjYWRlbWljIGpvdXJuYWwuDQoxOTk0OiBMaW5kb24gTGVhZGVyIG9mIExhbmRvciBBc3NvY2lhdGVzLCBvZiBTYW4gRnJhbmNpc2NvIGRlc2lnbmVkIHdvcmRtYXJrcyBmb3IgRmVkRXgncyB2YXJpb3VzIE9wLXVuaXQuIEZlZEV44oCZcyBwdWJsaWMtcmVsYXRpb25zIGZpcm0gd2FudGVkIHRvIGhpZ2hsaWdodCB0aGUgYXJyb3cgc28gaXQgd291bGQgYmUgb2J2aW91cy4gQnV0IGhlIGZvdWdodCB0aGVtIG9uIHRoYXQg4oCUIGhlIHRob3VnaHQgaXQgd291bGQgYmUgb3ZlcmtpbGwuIFRoZXJl4oCZcyBzb21ldGhpbmcgYWJvdXQgbWFraW5nIHBlb3BsZSBkaXNjb3ZlciBzb21ldGhpbmcgb24gdGhlaXIgb3duIHRoYXTigJlzIGEgbG90IG1vcmUgcG93ZXJmdWwgdGhhbiBpdGFsaWNpemluZyBpdCB0byBtYWtlIHlvdXIgcG9pbnQuDQoxOTk0OiBTY2lsYWIgMS4xLCB0aGUgZmlyc3QgcmVsZWFzZWQgdmVyc2lvbiBvZiBTY2lsYWIsIHdhcyBwdXQgb24gYW5vbnltb3VzIGZ0cCBzaXRlLg0KMTk5NDogVGhlIGNvbmNlcHQgb2YgYSBjYWbDqSB3aXRoIGZ1bGwgSW50ZXJuZXQgYWNjZXNzIChhbmQgdGhlIG5hbWUgQ3liZXJjYWbDqSkgd2FzIGludmVudGVkIGluIGVhcmx5IGJ5ICBhIEJyaXRpc2ggdGVjaG5vbG9neSBhcnRpc3QsIEl2YW4gUG9wZS4NCjE5OTQ6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIGx1cmVkIG9uZSBvZiBEYXdvb2QncyBmYXZvcml0ZSAibmFyY28tdGVycm9yaXN0IiBQaGlsbHUgS2hhbiBhbGlhcyBCYWtodGl5YXIgQWhtZWQgS2hhbiB0byBhIGhvdGVsIHJvb20gaW4gQmFuZ2tvaywgd2hlcmUgaGUgd2FzIHRvcnR1cmVkIHRvIGRlYXRoLCBoYXZpbmcgYmVlbiBiZXRyYXllZCBieSBoaXMgY2xvc2VzdCBhaWRlIGFuZCBzaWRla2ljayBNYW5nZXNoICJNYW5neWEiIFBhd2FyLiBELUNvbXBhbnkncyBTaGFyYWQsIHVzZWQgaGlzIGxpbmtzIHdpdGggTXVtYmFpLWJhc2VkIGhvdGVsaWVyIFZpbm9kIGFuZCBBLiBNaXNocmEgdG8gdHJhY2sgZG93biBSYWphbiBpbiBCYW5na29rLiBSYWphbidzIGhpdG1hbiBSb2hpdCBWYXJtYSBhbmQgaGlzIHdpZmUgc2hvdCBieSBELUNvbXBhbnkuDQoxOTk0KEp1bCAxNik6W1NwYWNlXSBGcm9tIEp1bHkgMTYgdG8gMjIsIDE5OTQsIGVub3Jtb3VzIHBpZWNlcyBvZiB0aGUgY29tZXQgU2hvZW1ha2VyLUxldnkgOSAoU0w5KSwgZGlzY292ZXJlZCBqdXN0IGEgeWVhciBwcmlvciwgY3Jhc2hlZCBpbnRvIEp1cGl0ZXIgb3ZlciBzZXZlcmFsIGRheXMsIGNyZWF0aW5nIGh1Z2UsIGRhcmsgc2NhcnMgaW4gdGhlIHBsYW5ldCdzIGF0bW9zcGhlcmUgYW5kIGxvZnRpbmcgc3VwZXJoZWF0ZWQgcGx1bWVzIGludG8gaXRzIHN0cmF0b3NwaGVyZS4NCjE5OTQgKE9jdCk6IElUUE8gYW5kIEdvSSdzIE5JQyBqb2ludGx5IHNldC11cCB0aGUgTmF0aW9uYWwgQ2VudHJlIGZvciBUcmFkZSBJbmZvcm1hdGlvbiAoTkNUSSkgYXQgUHJhZ2F0aSBNYWlkYW4uDQoxOTk0IChOb3YgMSwgMTU6MDEgSVNUKTpbU3BhY2VdW1N1bl0gVGhlIEdsb2JhbCBHZW9zcGFjZSBTY2llbmNlICdXaW5kJyBzYXRlbGxpdGUgaXMgYSBOQVNBIHNjaWVuY2Ugc3BhY2VjcmFmdCBkZXNpZ25lZCB0byBzdHVkeSByYWRpbyB3YXZlcyBhbmQgcGxhc21hIHRoYXQgb2NjdXIgaW4gdGhlIHNvbGFyIHdpbmQgYW5kIGluIHRoZSBFYXJ0aCdzIG1hZ25ldG9zcGhlcmUuIA0KMTk5NCAoRGVjIDMpOiBTb255J3MgUGxheVN0YXRpb24gKGEgdmlkZW8gZ2FtZSBjb25zb2xlKSB3YXMgaW50cm9kdWNlZCB0byB0aGUgd29ybGQgZnJvbSBNaW5hdG8sIFRva3lvIChKYXBhbikuDQoxOTk0OiBXWFlDLSBmaXJzdCBpbnRlcm5ldCByYWRpbyBzdGF0aW9uIGJyb2FkY2FzdC4NCjE5OTQ6IE1lbW9yeSBjYXJkcyB3ZXJlIGludHJvZHVjZWQgaW4gdGhlIGNvbnN1bWVyIGVsZWN0cm9uaWNzIG1hcmtldC4NCjE5OTQgKEF1Zyk6IElUUE8ncyAxc3QgRGVsaGkgQm9vayBGYWlyIGF0ICBIYWxsIDggdG8gMTIgb2YgUHJhZ2F0aSBNYWlkYW4sIE5ldyBEZWxoaS4gVGhlIHRpbWluZ3Mgb2YgZmFpciBhcmUgZnJvbSAxMC4wMCBhbSB0byA4LjAwIHBtIChlbnRyeSB0byBmYWlyIHdpbGwgY2xvc2UgYXQgNy4zMCBwbSkuDQoxOTk0IChTZXApOiBUaGUgQ09OQ0VSVCBzb2Z0d2FyZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgaW1wbGVtZW50ZWQgYXQgYWxsIG9mIHRoZSBmaXZlIFBSUycgc2l0ZXMgU2VjdW5kZXJhYmFkIGluIFNlcHQuIDE5OTQsIE5ldyBEZWxoaSBvbiBTZXB0LiAxOTk2LCBDYWxjdXR0YSBvbiAxNHRoIEp1bmUgMTk5OCwgTXVtYmFpIG9uIDExdGggSmFuIDE5OTkgYW5kIENoZW5uYWkgb24gMTJ0aCBBcHJpbCAxOTk5Lg0KMTk5NDogdGhlIDI0dGggYW5kIHRoZSBsYXN0IEdQUyBzYXRlbGxpdGUgd2FzIGxhdW5jaGVkIGluIFVTLg0KMTk5NDogVGhlIHdvcmQgVGFsaWJhbiBpcyBQYXNodG8sINi32KfZhNio2KfZhiDhua3EgWxpYsSBbiwgbWVhbmluZyAic3R1ZGVudHMiLCB0aGUgcGx1cmFsIG9mIOG5rcSBbGliLiBBZnRlciB0aGUgU292aWV0IFVuaW9uIGludGVydmVuZWQgYW5kIG9jY3VwaWVkIEFmZ2hhbmlzdGFuIGluIDE5NzksIElzbGFtaWMgbXVqYWhpZGVlbiBmaWdodGVycyBlbmdhZ2VkIGluIHdhciB3aXRoIHRob3NlIFNvdmlldCBmb3JjZXMsIHdoaWNoIGxhaWQgdGhlIGZvdW5kYXRpb24gb2YgcG9saXRpY2FsIG1vdmVtZW50IGFuZCBtaWxpdGFyeSBvcmdhbml6YXRpb24gbmFtZWQgVGFsaWJhbi4NCjE5OTQ6IEFiZHVsIEthcmVlbSBUZWxnaSBhY3F1aXJlZCB0aGUgbGljZW5zZSBmb3Igc2VsbGluZyBzdGFtcCBwYXBlciBhbmQgb3BlbmVkIGFuIG9mZmljZSBpbiBNdW1iYWkuIEFmdGVyIHRoYXQsIGhlIHN0YXJ0ZWQgcHJpbnRpbmcgc3RhbXAgcGFwZXIgaW4gTmFzaGlrLiBXaXRoIHNvbWUgYWdlbnRz4oCZIGhlbHAsIGhlIHN0YXJ0cyBzZWxsaW5nIGZha2Ugc3RhbXAgcGFwZXIgaW4gYnVsayB0byBiYW5rcywgaW5zdXJhbmNlIGNvbXBhbmllcywgc3RvY2sgYnJva2VyYWdlIGZpcm1zLCBhbmQgY29ycG9yYXRlcy4gSW4gMjAwMyB0aGUgVGVsZ2kgc2NhbSB3YXMgdW5mb2xkZWQ7IHRoZSBmaWd1cmUgaW4gdGhlIG1pbmQgb2Ygc2VjdXJpdHkgYW5kIGludGVsbGlnZW5jZSBhZ2VuY2llcyB3YXMgdXAgdG8gUnMuMjBrIENyb3JlDQoxOTk0OiBbR2VvUG9saXRpY3NdIEludGVybmF0aW9uYWwgQXNzb2NpYXRpb24gb2YgR2VuZGFybWVyaWVzIGFuZCBQb2xpY2UgRm9yY2VzIHdpdGggTWlsaXRhcnkgU3RhdHVzIChjb21tb25seSBrbm93biBhcyBGSUVQIGZvciBGcmFuY2UtSXRhbGlhLUVzcGHDsWEtUG9ydHVnYWwsIHRoZSBmaXJzdCBmb3VyIG1lbWJlcnMpIGlzIGFuIGFzc29jaWF0aW9uIG9mIG5hdGlvbmFsIGdlbmRhcm1lcmllcyBvciBtaWxpdGFyeSBwb2xpY2UgZm9yY2VzLg0KMTk5NDpbQm9va10gUGFsZSBCbHVlIERvdDogQSBWaXNpb24gb2YgdGhlIEh1bWFuIEZ1dHVyZSBpbiBTcGFjZSBpcyBhIDE5OTQgYm9vayBieSB0aGUgYXN0cm9ub21lciBDYXJsIFNhZ2FuLiBJdCBpcyB0aGUgc2VxdWVsIHRvIFNhZ2FuJ3MgMTk4MCBib29rIENvc21vcyBhbmQgd2FzIGluc3BpcmVkIGJ5IHRoZSBmYW1vdXMgMTk5MCBQYWxlIEJsdWUgRG90IHBob3RvZ3JhcGgsIGZvciB3aGljaCBTYWdhbiBwcm92aWRlcyBhIHBvaWduYW50IGRlc2NyaXB0aW9uLiBJbiB0aGUgYm9vaywgU2FnYW4gbWl4ZXMgcGhpbG9zb3BoeSBhYm91dCB0aGUgaHVtYW4gcGxhY2UgaW4gdGhlIHVuaXZlcnNlIHdpdGggYSBkZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCBrbm93bGVkZ2UgYWJvdXQgdGhlIFNvbGFyIFN5c3RlbS4gSGUgYWxzbyBkZXRhaWxzIGEgaHVtYW4gdmlzaW9uIGZvciB0aGUgZnV0dXJlLg0KMTk5NDpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTWVjaGFnb2R6aWxsYSBJSSgxOTkzKQ0KMTk5NDpbQ2luZW1hXSBUaGUgQXBwbGUoMTk4MCkNCjE5OTQ6W0NpbmVtYV0gVGhlIEF0bGFudGlzIEludGVyY2VwdG9ycygxOTgzKQ0KMTk5NDpbTW50bmdnXSBJbiAxOTk0LCBNYXJrIFdoZXR1IHN1bW1pdHRlZCBNdCBFdmVyZXN0IHdpdGggTWlrZSBSZWluYmVyZ2VyLiBCdXQgYWZ0ZXIgYSBmcmVlemluZyBuaWdodCwgV2hldHUgZmFjZWQgYSBoYXJyb3dpbmcgY2hvaWNlOiBsZWF2ZSBoaXMgZnJpZW5kIG9yIHJlbWFpbiBmb3JldmVyLiBUaGUgRmF0YWwgR2FtZSAoMTk5NykNCjE5OTQ6W1RvdXJpc21dIFRoZSBBZHZlbnR1cmUgVG91ciBPcGVyYXRvcnMgQXNzb2NpYXRpb24gb2YgSW5kaWEgKEFUT0FJKSB3YXMgZm91bmRlZCBpbiAxOTk0LiBJdCB3YXMgZXN0YWJsaXNoZWQgYnkgYSBncm91cCBvZiB0cmF2ZWwgdHJhZGUgYWR2ZW50dXJlcnMgd2hvIGFpbWVkIHRvIGNyZWF0ZSBhIHN0cm9uZyBzdXBwb3J0IG5ldHdvcmsgZm9yIEluZGlhbiBhZHZlbnR1cmUgdG91ciBvcGVyYXRvcnMuIA0KDQoxOTk1IChNYXkgMTkpOiBbUmVzZWFyY2hdW1NwYWNlXSB0d28gc2NpZW50aXN0cyBhdCBDYWwgUG9seSBzaG93ZWQgdGhhdCBiYWN0ZXJpYSBjYW4gc3Vydml2ZSB3aXRob3V0IGFueSBtZXRhYm9saXNtIGZvciBhdCBsZWFzdCAyNSBtaWxsaW9uIHllYXJzOyBwcm9iYWJseSB0aGV5IGFyZSBpbW1vcnRhbC4NCjI0IE5vdmVtYmVyIDE5OTU6IFRoZSBOZXcgWW9yayBUaW1lcyBkZXNjcmliZWQgYmFjdGVyaWEgdGhhdCBjYW4gc3Vydml2ZSByYWRpYXRpb24gbXVjaCBzdHJvbmdlciB0aGFuIGFueSB0aGF0IEVhcnRoIGhhcyBldmVyIGV4cGVyaWVuY2VkLg0KV2UgYXJlIGNhbGxpbmcgdGhlIHVuaW9uIG9mIExvdmVsb2NrJ3MgR2FpYSB3aXRoIEhveWxlIGFuZCBXaWNrcmFtYXNpbmdoZSdzIGV4cGFuZGVkIHRoZW9yeSBvZiBwYW5zcGVybWlhIENvc21pYyBBbmNlc3RyeS4gVGhpcyBhY2NvdW50IG9mIGV2b2x1dGlvbiBhbmQgdGhlIG9yaWdpbiBvZiBsaWZlIG9uIEVhcnRoIGlzIHByb2ZvdW5kbHkgZGlmZmVyZW50IGZyb20gdGhlIHByZXZhaWxpbmcgc2NpZW50aWZpYyBwYXJhZGlnbS4gSXQgY2hhbGxlbmdlcyBub3QgbWVyZWx5IHRoZSBhbnN3ZXJzIGJ1dCB0aGUgcXVlc3Rpb25zIHRoYXQgYXJlIHBvcHVsYXIgdG9kYXkuIENvc21pYyBBbmNlc3RyeSByZXF1aXJlcyB0aGF0IGxpZmUgY2FuIG9ubHkgZGVzY2VuZCBmcm9tIGFuY2VzdG9ycyBhdCBsZWFzdCBhcyBoaWdobHkgZXZvbHZlZCBhcyBpdHNlbGYsIGFuZCB0aGF0IHRoZXJlIGNhbiBiZSBubyBvcmlnaW4gb2YgbGlmZSBmcm9tIG5vbmJpb2xvZ2ljYWwgbWF0dGVyLiBXaXRob3V0IHN1cGVybmF0dXJhbCBpbnRlcnZlbnRpb24sIHRoZXJlZm9yZSwgd2UgY29uY2x1ZGUgdGhhdCBsaWZlIG11c3QgaGF2ZSBhbHdheXMgZXhpc3RlZC4gQWx0aG91Z2ggdGhlc2UgY29uY2x1c2lvbnMgY3V0IGFjcm9zcyB0aGUgYm91bmRhcmllcyBiZXR3ZWVuIHNjaWVuY2UsIHBoaWxvc29waHksIGFuZCByZWxpZ2lvbiwgd2UgYmVsaWV2ZSB0aGV5IGFyZSBncm91bmRlZCBpbiBnb29kIGV2aWRlbmNlLiBBbmQgbmV3IGRhdGEgdGhhdCBzdXBwb3J0IG1hbnkgYXNwZWN0cyBvZiBDb3NtaWMgQW5jZXN0cnkgYXJlIGNvbWluZyBpbiByYXBpZGx5LiBJbiB0aGUgZm9sbG93aW5nIHBhZ2VzIHdlIHdpbGwgZXhwbGFpbiBob3cgdGhlc2UgYW5kIG90aGVyIHJlY2VudCBkZXZlbG9wbWVudHMgc3VwcG9ydCBDb3NtaWMgQW5jZXN0cnk6DQoNCjE5OTU6IEFOU0VUIHNvbGQgdG8gQU9MLCB3aG8gIG5vdyBydW5zIGl0Lg0KMTk5NSAoTWFyKTogRGVwdC4gb2YgSW5kaWFuIE1lZGljaW5lIGFuZCBIb21lb3BhdGh5IGZvdW5kZWQuDQoxOTk1IChNYXIgMjQpOltSZXNlYXJjaF0gUmVtb3RlbHkgT3BlcmF0ZWQgVmVoaWNsZSBLQUlLTyByZWFjaGVkIHRoZSBkZWVwZXN0IGFyZWEgb2YgdGhlIE1hcmlhbmEgVHJlbmNoIGFuZCBtYWRlIHRoZSBkZWVwZXN0IGRpdmluZyByZWNvcmQgb2YgMTAsOTExIG0gKDM1LDc5NyBmdDsgNSw5NjYgZmF0aG9tcykgDQoxOTk1OiBwaG9uZSBjYWxsIGNvc3RpbmcgUnMuIDE2IHBlciBtaW4uDQoxOTk1OltHYW1pbmddIFZpcnR1YSBDb3AgMiBpcyBhIGxpZ2h0IGd1biBzaG9vdGVyIGFyY2FkZSBnYW1lLCByZWxlYXNlZCBpbiAxOTk1IGFuZCBkZXZlbG9wZWQgaW50ZXJuYWxseSBhdCBTZWdhIGJ5IHRoZWlyIEFNMiBzdHVkaW8gKFl1IFN1enVraSkuIEl0IHdhcyBwb3J0ZWQgdG8gdGhlIFNlZ2EgU2F0dXJuIGluIDE5OTYuIEl0IHdhcyByZWxlYXNlZCBvbiBQQyBpbiAxOTk3IGFuZCBTZWdhIERyZWFtY2FzdCBpbiAyMDAwLiBJdCB3YXMgbGF0ZXIgYnVuZGxlZCB3aXRoIFZpcnR1YSBDb3AgaW4gVmlydHVhIENvcDogRWxpdGUgRWRpdGlvbiBmb3IgUGxheVN0YXRpb24gMiBpbiAyMDAyLg0KMTk5NSAoQXByIDEpOltSZXNlYXJjaF0gUGlsbGFycyBvZiBDcmVhdGlvbiBpcyBhIHBob3RvZ3JhcGggdGFrZW4gYnkgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgb2YgZWxlcGhhbnQgdHJ1bmtzIG9mIGludGVyc3RlbGxhciBnYXMgYW5kIGR1c3QgaW4gdGhlIEVhZ2xlIE5lYnVsYSwgaW4gdGhlIFNlcnBlbnMgY29uc3RlbGxhdGlvbiwgc29tZSA2LDUwMOKAkzcsMDAwIGxpZ2h0LXllYXJzICgyLDAwMOKAkzIsMTAwIHBjOyA2MeKAkzY2IEVtKSBmcm9tIEVhcnRoLg0KMTk5NSAoQXByIDEpOiBJQUFJIGFuZCBOQUEgd2VyZSBtZXJnZWQgYnkgYW4gQWN0IG9mIFBhcmxpYW1lbnQgYW5kIHdhcyBuYW1lZCBhcyBBaXJwb3J0cyBBdXRob3JpdHkgb2YgSW5kaWEgKEFBSSkuIFRoaXMgbmV3IG9yZ2FuaXNhdGlvbiB3YXMgdG8gYmUgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nLCB1cGdyYWRpbmcsIG1haW50YWluaW5nIGFuZCBtYW5hZ2luZyBjaXZpbCBhdmlhdGlvbiBpbmZyYXN0cnVjdHVyZSBib3RoIG9uIHRoZSBncm91bmQgYW5kIGFpciBzcGFjZSBpbiB0aGUgY291bnRyeS4NCjE5OTUgKEFwciAyMSk6W0NyaW1lXVtJbmRpYV0gQmFibG9vIHBpY2tlZCB1cCBieSB0aGUgU2luZ2Fwb3JlIGFpcnBvcnQgcG9saWNlIGZvciB0cmF2ZWxsaW5nIG9uIGZha2UgcGFzc3BvcnQuIEhlIHdhcyBzdGF5aW5nIGluIER1YmFpLg0KMTk5NSAoU2VwIDMwKTpbQ3JpbWVdW0luZGlhXSBTaW5nYXBvcmUgZXh0cmFkaXRlcyBJbmRpYSdzICdtb3N0LXdhbnRlZCBpbnRlci1zdGF0ZSBjcmltaW5hbCcgQmFibG9vIFNyaXZhc3RhdmEgKDMzWU8pDQoxOTk1IChOb3YgMzApOiBPcGVyYXRpb24gRGVzZXJ0IFN0b3JtIChGaXJzdCBJcmFxIFdhcilvZmZpY2lhbGx5IGVuZGVkLg0KMTk5NSAoTWF5IDMxKTpbQm9va11bTWlsaXRhcnldIEFkbWlyYWwgV2lsbGlhbSBILiBNY1JhdmVuJ3MgU3BlYyBPcHM6IENhc2UgU3R1ZGllcyBpbiBTcGVjaWFsIE9wZXJhdGlvbnMgV2FyZmFyZTogVGhlb3J5IGFuZCBQcmFjdGljZTsgU2VhIFN0b3JpZXM6IE15IExpZmUgaW4gU3BlY2lhbCBPcGVyYXRpb25zICgyMDE5LCBNYXkgMSk7IFRoZSBIZXJvIENvZGU6IExlc3NvbnMgTGVhcm5lZCBmcm9tIExpdmVzIFdlbGwgTGl2ZWQgKDIwMjEsIEFwciAxMykNCjE5OTU6IERyLiBIYW5kZSBhZnRlciBncmFkdWF0aW5nIGZyb20gSUlUIEtoYXJhZ3B1ciBjb25jZXB0dWFsaXplZCBTRUxDTyBJbmRpYSBkdXJpbmcgaGlzIFBoRCBvbiBzdXN0YWluYWJsZSBlbmVyZ3kgYXQgdGhlIFVuaXZlcnNpdHkgb2YgTWFzc2FjaHVzZXR0cy4gRHVyaW5nIGEgZmllbGQgdmlzaXQgdG8gdGhlIERvbWluaWNhbiBSZXB1YmxpYywgaGUgd2FzIHN1cnByaXNlZCB0byBzZWUgdGhlIHBvb3IgdXNpbmcgc29sYXIgbGlnaHRzLg0KMTk5NTogVGhlIEdvdmVybm1lbnQgb2YgSW5kaWEgYW5kIHRoZSBHb3Zlcm5tZW50IG9mIERlbGhpIGpvaW50bHkgc2V0IHVwIGEgY29tcGFueSBjYWxsZWQgdGhlIERlbGhpIE1ldHJvIFJhaWwgQ29ycG9yYXRpb24gKERNUkMpIG9uIDMgTWF5IDE5OTUsIHdpdGggRHIuIEUuIFNyZWVkaGFyYW4gYXMgdGhlIG1hbmFnaW5nIGRpcmVjdG9yLg0KMTk5NTogSW50J2wgR2FuZGhpIFBlYWNlIFByaXplIGxhdW5jaGVkLg0KMTk5NTogU2FjaGluIFIuIFRlbmR1a2FyIGFuZCBBbmphbGkgVGVuZHVsa2FyIHdlZGRlZCB0b2dldGhlci4NCjE5OTU6IC5tcDMgaW52ZW50ZWQuDQoxOTk1OltHYW1pbmddIFdoaWxlIEZJRkEgOTUgZGlkIG5vdCBhZGQgbXVjaCBvdGhlciB0aGFuIHRoZSBhYmlsaXR5IHRvIHBsYXkgd2l0aCBjbHViIHRlYW1zLCBGSUZBIDk2IHB1c2hlZCB0aGUgYm91bmRhcmllcy4gRm9yIHRoZSBmaXJzdCB0aW1lIHdpdGggcmVhbCBwbGF5ZXIgbmFtZXMgYnkgb2J0YWluaW5nIHRoZSBGSUZQcm8gbGljZW5zZSwgdGhlIFBsYXlTdGF0aW9uLCBQQywgMzJYIGFuZCBTZWdhIFNhdHVybiB2ZXJzaW9ucyB1c2VkIEVBJ3MgIlZpcnR1YWwgU3RhZGl1bSIgZW5naW5lLCB3aXRoIDJEIHNwcml0ZSBwbGF5ZXJzIG1vdmluZyBhcm91bmQgYSByZWFsLXRpbWUgM0Qgc3RhZGl1bS4NCjE5OTUgKEp1bCAxOCk6W0Jvb2tdIEJhcmFjayBPYmFtYSdzIERyZWFtcyBmcm9tIE15IEZhdGhlcjogQSBTdG9yeSBvZiBSYWNlIGFuZCBJbmhlcml0YW5jZTsgRHJlYW1zIGZyb20gTXkgRmF0aGVyOiBBIFN0b3J5IG9mIFJhY2UgYW5kIEluaGVyaXRhbmNlICgyMDA2LCBPY3QgMTcpOyBPZiBUaGVlIEkgU2luZzogQSBMZXR0ZXIgdG8gTXkgRGF1Z2h0ZXJzICgyMDEwLCBOb3YgMTYpOyBBIFByb21pc2VkIExhbmQgKDIwMjAsIE5vdiAxNykNCjE5OTUoSmFuIDEpOltFbnZdIFRoZSBBZ3JlZW1lbnQgb24gQWdyaWN1bHR1cmUgKEFvQSkgaXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgb2YgdGhlIFdvcmxkIFRyYWRlIE9yZ2FuaXphdGlvbi4gSXQgd2FzIG5lZ290aWF0ZWQgZHVyaW5nIHRoZSBVcnVndWF5IFJvdW5kIG9mIHRoZSBHZW5lcmFsIEFncmVlbWVudCBvbiBUYXJpZmZzIGFuZCBUcmFkZSwgYW5kIGVudGVyZWQgaW50byBmb3JjZSB3aXRoIHRoZSBlc3RhYmxpc2htZW50IG9mIHRoZSBXVE8gb24gSmFudWFyeSAxLCAxOTk1LiBCbHVlLCBSZWQsIEFtYmVyIGFuZCBHcmVlbiBCb3ggb2Ygc3Vic2lkaWVzLg0KMTk5NTpbQ2luZW1hXSBOZWxzb24gTWFuZGVsYSwgaW4gaGlzIGZpcnN0IHRlcm0gYXMgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYSwgaW5pdGlhdGVzIGEgdW5pcXVlIHZlbnR1cmUgdG8gdW5pdGUgdGhlIEFwYXJ0aGVpZC10b3JuIGxhbmQ6IGVubGlzdCB0aGUgbmF0aW9uYWwgcnVnYnkgdGVhbSBvbiBhIG1pc3Npb24gdG8gd2luIHRoZSAxOTk1IFJ1Z2J5IFdvcmxkIEN1cC4gLSAgSW52aWN0dXMgKDIwMDkpDQoxOTk1OltDaW5lbWFdIEEgQ2xvY2t3b3JrIE9yYW5nZSgxOTcxKQ0KMTk5NTpbQ2luZW1hXSBEZWFkIEVuZCBEcml2ZS1JbigxOTg2KQ0KMTk5NTpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gU3BhY2Vnb2R6aWxsYSgxOTk0KQ0KMTk5NTpbQ2luZW1hXSBIZWFydGJlZXBzKDE5ODEpDQoxOTk1OltDaW5lbWFdIFRoZSBNdW1teSdzIEN1cnNlKDE5NDQpDQoxOTk1IChEZWMpOltTcGFjZV0gU29sYXIgYW5kIEhlbGlvc3BoZXJpYyBPYnNlcnZhdG9yeSAoU29ITykgd2FzIGxhdW5jaGVkIGluIERlY2VtYmVyIDE5OTUgYXMgYSBqb2ludCBtaXNzaW9uIGJldHdlZW4gdGhlIEV1cm9wZWFuIFNwYWNlIEFnZW5jeSAoRVNBKSBhbmQgTkFTQSwgU29ITyB3YXMgZGVzaWduZWQgdG8gb3JiaXQgdGhlIFN1biB0byBsZWFybiBhYm91dCB0aGUgc3RydWN0dXJlIG9mIHRoZSBzdGFy4oCZcyBpbnRlcmlvciBhbmQgaXRzIG91dGVyIGF0bW9zcGhlcmUsIGFzIHdlbGwgYXMgdG8gaW52ZXN0aWdhdGUgdGhlIGJlaGF2aW9yIG9mIHNvbGFyIHdpbmRzLiBJdCB3YXMgZXhwZWN0ZWQgdG8gY29tcGxldGUgaXRzIG1pc3Npb24gaW4gMTk5OC4gSW5zdGVhZCwgaXQgaXMgc3RpbGwgYWN0aXZlIHRvZGF5LCBhbmQgaXMgbm93IGxpa2VseSB0byBrZWVwIHdvcmtpbmcgdW50aWwgMjAyNSwgd2hlbiBpdCB3aWxsIGhhdmUgYmVlbiBpbiBzcGFjZSBmb3IgMzAgeWVhcnMuDQoxOTk1OltQaHlzaWNzXVtTcGFjZV1bUmVzZWFyY2hdIFByaW9yIHRvIDE5OTUsIHRoZW9yaXN0cyBiZWxpZXZlZCB0aGF0IHRoZXJlIHdlcmUgZml2ZSBjb25zaXN0ZW50IHZlcnNpb25zIG9mIHN1cGVyc3RyaW5nIHRoZW9yeSAodHlwZSBJLCB0eXBlIElJQSwgdHlwZSBJSUIsIGFuZCB0d28gdmVyc2lvbnMgb2YgaGV0ZXJvdGljIHN0cmluZyB0aGVvcnkpLiBUaGlzIHVuZGVyc3RhbmRpbmcgY2hhbmdlZCBpbiAxOTk1IHdoZW4gRWR3YXJkIFdpdHRlbiBzdWdnZXN0ZWQgdGhhdCB0aGUgZml2ZSB0aGVvcmllcyB3ZXJlIGp1c3Qgc3BlY2lhbCBsaW1pdGluZyBjYXNlcyBvZiBhbiBlbGV2ZW4tZGltZW5zaW9uYWwgdGhlb3J5IGNhbGxlZCBNLXRoZW9yeS4gV2l0dGVuJ3MgY29uamVjdHVyZSB3YXMgYmFzZWQgb24gdGhlIHdvcmsgb2YgYSBudW1iZXIgb2Ygb3RoZXIgcGh5c2ljaXN0cywgaW5jbHVkaW5nIEFzaG9rZSBTZW4sIENocmlzIEh1bGwsIFBhdWwgVG93bnNlbmQsIGFuZCBNaWNoYWVsIER1ZmYuIEhpcyBhbm5vdW5jZW1lbnQgbGVkIHRvIGEgZmx1cnJ5IG9mIHJlc2VhcmNoIGFjdGl2aXR5IG5vdyBrbm93biBhcyB0aGUgc2Vjb25kIHN1cGVyc3RyaW5nIHJldm9sdXRpb24uDQoxOTk1OltDcmltZV1bSW5kaWFdIE11cmRlciBvZiBNdW1iYWktYmFzZWQgYnVpbGRlciBQcmFkZWVwIEphaW4gYnkgQWJ1IFNhbGVtDQoxOTk1OiBGb3J0dW5lIEhvdGVscyBpbiBJbmRpYSBpcyBvd25lZCBieSBpdHMgcGFyZW50IGNvbXBhbnksIElUQyBMdGQuLCB3aGljaCBlc3RhYmxpc2hlZCBGb3J0dW5lIEhvdGVscyBpbiAxOTk1IGFzIGEgc3Vic2lkaWFyeSB0byBwcm92aWRlIG1pZC1tYXJrZXQgdG8gdXBzY2FsZSBob3NwaXRhbGl0eSBzZXJ2aWNlcy4gSG93ZXZlciwgYSBzZXBhcmF0ZSBncm91cCwgRm9ydHVuZSBHcm91cCBvZiBIb3RlbHMsIGJhc2VkIGluIHRoZSBVbml0ZWQgQXJhYiBFbWlyYXRlcyAoVUFFKSBhbmQgZm91bmRlZCBieSBQcmF2ZWVuIFNoZXR0eSwgYWxzbyBvcGVyYXRlcyBhIGRpZmZlcmVudCBzZXQgb2YgaG90ZWxzIGluIHRoYXQgcmVnaW9uLg0KMTk5NTpbVUtdIENhbWlsbGEgaXMgUXVlZW4gb2YgdGhlIFVuaXRlZCBLaW5nZG9tIGFuZCAxNCBvdGhlciBDb21tb253ZWFsdGggcmVhbG1zIGFzIHRoZSB3aWZlIG9mIEtpbmcgQ2hhcmxlcyBJSUkuIENhbWlsbGEgd2FzIHJhaXNlZCBpbiBFYXN0IFN1c3NleCBhbmQgU291dGggS2Vuc2luZ3RvbiBpbiBFbmdsYW5kIGFuZCBlZHVjYXRlZCBpbiBFbmdsYW5kLCBTd2l0emVybGFuZCBhbmQgRnJhbmNlLiBJbiAxOTczLCBzaGUgbWFycmllZCBCcml0aXNoIEFybXkgb2ZmaWNlciBBbmRyZXcgUGFya2VyIEJvd2xlczsgdGhleSBkaXZvcmNlZCBpbiAxOTk1Lg0KDQoxOTk2OltHZW9Qb2xpdGljc11bQnVzaW5lc3NdIE1vbmdvbGlhIHdhcyBncmFudGVkIG9ic2VydmVyIHN0YXR1cyB0byBUUkFDRUNBLg0KMTk5NiAoNyBBdWd1c3QpOltSZXNlYXJjaF1bU3BhY2VdIE5BU0EgYW5ub3VuY2VkIGZvc3NpbGl6ZWQgZXZpZGVuY2Ugb2YgYW5jaWVudCBsaWZlIGluIG1ldGVvcml0ZSBBTEggODQwMDEgZnJvbSBNYXJzLg0KMTk5NiAoT2N0IDI3KTpbUmVzZWFyY2hdW1NwYWNlXSBnZW5ldGljaXN0cyBzaG93ZWQgZXZpZGVuY2UgdGhhdCBtYW55IGdlbmVzIGFyZSBtdWNoIG9sZGVyIHRoYW4gdGhlIGZvc3NpbCByZWNvcmQgd291bGQgaW5kaWNhdGUuIFN1YnNlcXVlbnQgc3R1ZGllcyBoYXZlIHN0cmVuZ3RoZW5lZCB0aGlzIGZpbmRpbmcuDQoxOTk2OltCdXNpbmVzc11bR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2hlbiB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4gc2lnbmVkIHRoZSBUcmVhdHkgb24gRGVlcGVuaW5nIE1pbGl0YXJ5IFRydXN0IGluIEJvcmRlciBSZWdpb25zIGluIFNoYW5naGFpLiBPbiAyNCBBcHJpbCAxOTk3IHRoZSBzYW1lIGNvdW50cmllcyBzaWduZWQgdGhlIFRyZWF0eSBvbiBSZWR1Y3Rpb24gb2YgTWlsaXRhcnkgRm9yY2VzIGluIEJvcmRlciBSZWdpb25zIGluIGEgbWVldGluZyBpbiBNb3Njb3csIFJ1c3NpYS4gT24gMjAgTWF5IDE5OTcgUnVzc2lhbiBQcmVzaWRlbnQgQm9yaXMgWWVsdHNpbiBhbmQgQ2hpbmVzZSBQcmVzaWRlbnQgSmlhbmcgWmVtaW4gc2lnbmVkIGEgZGVjbGFyYXRpb24gb24gYSAibXVsdGlwb2xhciB3b3JsZCIuDQoxOTk2OiAxOTk2IE1vdW50IEV2ZXJlc3QgRGlzYXN0ZXIsIGluIHdoaWNoIGVpZ2h0IHBlb3BsZSBkaWVkIHdoaWxlIG9uIGFuIGV4cGVkaXRpb24gdG8gc2NhbGUgdGhlIGluZmFtb3VzIHN1bW1pdC4gT25lIG9mIHRoZSBjbGltYmVycyB3aG8gbG9zdCBoaXMgbGlmZSB3YXMgQW5keSBIYXJyaXMsIHBsYXllZCBpbiBFdmVyZXN0IGJ5IE1hcnRpbiBIZW5kZXJzb24uIEhhcnJpcyB3YXMgb25lIG9mIHRoZSBndWlkZXMgZm9yIHRoZSBBZHZlbnR1cmUgQ29uc3VsdGFudHMsIGFsb25nIHdpdGggUm9iIEhhbGwgYW5kIE1pa2UgR3Jvb20uIEluIHRoZSBmaWxtLCBoZSBhcHBlYXJzIHRvIGRpZSB3aGlsZSB3aXRoIEhhbGwsIGZhbGxpbmcgb2ZmIGEgY2xpZmYgYWZ0ZXIgYSBoYWxsdWNpbmF0aW9uLiBCdXQgUm9iIEhhbGwgbmV2ZXIgcmVwb3J0ZWQgdGhpcywgYW5kIHNpbmNlIGhlIGRpZWQgc2hvcnRseSB0aGVyZWFmdGVyLCB0aGVyZSBpcyBubyB3YXkgdG8gY29uZmlybSB0aGUgY2lyY3Vtc3RhbmNlcyBzdXJyb3VuZGluZyBIYXJyaXMnIGRlYXRoLg0KMTk5NjpbQ29tcHV0aW5nXVtRdWFudHVtXSAgTG92IEdyb3ZlciBkZXZpc2VkIGFuIGFsZ29yaXRobSAoR3JvdmVyJ3MgYWxnb3JpdGhtKSB0aGF0IGNvdWxkIHNlYXJjaCBhbiB1bnNvcnRlZCBkYXRhYmFzZSBpbiBzcXVhcmUgcm9vdCB0aW1lIG9uIGEgcXVhbnR1bSBjb21wdXRlciwgd2hpY2ggd291bGQgb3V0cGVyZm9ybSBhbnkgY2xhc3NpY2FsIGFsZ29yaXRobS4NCjE5OTY6W1VTXSBCYXJhY2sgT2JhbWEgd2FzIGVsZWN0ZWQgdG8gdGhlIElsbGlub2lzIFNlbmF0ZSwgc3VjY2VlZGluZyBEZW1vY3JhdGljIFN0YXRlIFNlbmF0b3IgQWxpY2UgUGFsbWVyIGZyb20gSWxsaW5vaXMncyAxM3RoIERpc3RyaWN0LCB3aGljaCwgYXQgdGhhdCB0aW1lLCBzcGFubmVkIENoaWNhZ28gU291dGggU2lkZSBuZWlnaGJvcmhvb2RzIGZyb20gSHlkZSBQYXJr4oCTS2Vud29vZCBzb3V0aCB0byBTb3V0aCBTaG9yZSBhbmQgd2VzdCB0byBDaGljYWdvIExhd24uDQoxOTk2OltVS10gQ2hhcmxlcyBJSUkgYW5kIERpYW5hIGdldHMgZGl2b3JjZWQuDQoxOTk2IChKYW4gMjUpOltCb29rXSBQZXRlciBMeW5jaCAmIEpvaG4gUm90aGNoaWxkJ3MgTGVhcm4gdG8gRWFybjogQSBCZWdpbm5lcidzIEd1aWRlIHRvIHRoZSBCYXNpY3Mgb2YgSW52ZXN0aW5nIGFuZCBCdXNpbmVzcy4NCjE5OTYgKEphbik6W0NyaW1lXVtJbmRpYV0gQW5lZXMgSWJyYWhpbSBhcnJlc3RlZCBpbiBCYWhyYWluLCBzaGlmdGVkIHRvIER1YmFpIGFsbGVnZWRseSBvbiB0aGUgaW50ZXJ2ZW50aW9uIG9mIHNvbWUgb2YgRHViYWkncyBydWxpbmcgbm90YWJsZXMsIGFuZCB3YXMgdGhlbiBhbGxvd2VkIHRvIHNsaXAgYXdheSB0byBLYXJhY2hpLCBQYWtpc3Rhbi4NCjE5OTY6IE5hdGlvbmFsIEFlcm9zcGFjZSBMYWJvcmF0b3JpZXMsIEluZGlhIGluZGlnZW5vdXNseSBidWlsdCBGTE9TT0xWRVIsIEluZGlhJ3MgZmlyc3Qgc3VwZXJjb21wdXRlci4gSXQgd2FzIHJlcGxpY2F0ZWQgYW5kIGluc3RhbGxlZCBhdCBJQ0FEIE1vc2NvdyBpbiAxOTkxIHVuZGVyIFJ1c3NpYW4gY29sbGFib3JhdGlvbi4NCjE5OTY6IEluZGlhL1Bha2lzdGFuL1NyaSBMYW5rYSAxOTk2Lg0KMTk5NjpbQ29tcHV0aW5nXVt3d3ddIE1hcmlvIDY0IGdhbWUgcmFuIDEwMCBtaWxsaW9uIGNhbGN1bGF0aW9ucyBwZXIgc2Vjb25kLCA1NDAgbWlsbGlvbiAoSGFsZi1MaWZlKSBpbiAxOTk4LCBNaW5lY3JhZnQgKDIwMTEpIHJ1bm5pbmcgMTAwIGJpbGxpb24gY2FsY3VsYXRpb25zLCBDeWJlcnB1bmsgMjA3NyAobW9zdCByZWFsaXN0aWMgdmlkZW8gZ2FtZSAyMDI0KSwgeW91IG5lZWQgYSBncmFwaGljcyBjYXJkIHRoYXQgY2FuIHBlcmZvcm0gYXJvdW5kIDM2IHRyaWxsaW9uIGNhbGMgcGVyIHNlY29uZC4NCjE5OTY6IFByb2YgTWFsY29sbSBIZWF0aC4gUHJvZmVzc29yIG9mIEdyZWVrIExhbmd1YWdlIGFuZCBMaXRlcmF0dXJlIEBsZWVkcy5hYy51aywgdHJhbnNsYXRlZCBBcmlzdG90bGUncyBQb2V0aWNzLg0KMTk5NjogVGhlIDU2SyBtb2RlbSB3YXMgaW52ZW50ZWQgYnkgRHIuIEJyZW50IFRvd25zaGVuZA0KMTk5NiAoRmViIDEzKTogTmVwYWxlc2UgQ2l2aWwgV2FyIHN0YXJ0ZWQuIFRoZSBNYW9pc3QgUmViZWxsaW9uIChsYWJlbGxlZCB0aGUgUGVvcGxlJ3MgV2FyIGJ5IHRoZW4gQ1BOKE1hb2lzdCkpIHdhcyBhbiBhcm1lZCBjb25mbGljdCBhZ2FpbnN0IEdvdmVybm1lbnQgb2YgTmVwYWwgKHRoZW4gSE1HIG9mIE5lcGFsKSBmb3VnaHQgZnJvbSAxOTk2IHRvIDIwMDYuIFRoZSByZWJlbGxpb24gd2FzIGxhdW5jaGVkIGJ5IHRoZSBDb21tdW5pc3QgUGFydHkgb2YgTmVwYWwgKE1hb2lzdCkgb24gMTMgRmVicnVhcnkgMTk5NiB3aXRoIHRoZSBtYWluIGFpbSBvZiBvdmVydGhyb3dpbmcgdGhlIE5lcGFsZXNlIG1vbmFyY2h5IGFuZCBlc3RhYmxpc2hpbmcgYSAnUGVvcGxlJ3MgUmVwdWJsaWMnLiBJdCBlbmRlZCB3aXRoIHRoZSBDb21wcmVoZW5zaXZlIFBlYWNlIEFjY29yZCBzaWduZWQgb24gMjEgTm92ZW1iZXIgMjAwNi4NCjE5OTYgKE1hciAxKTogW0dlb1BvbGl0aWNzXSBUaGUgQXNpYeKAk0V1cm9wZSBNZWV0aW5nIChBU0VNKSBpcyBhbiBBc2lhbuKAk0V1cm9wZWFuIHBvbGl0aWNhbCBkaWFsb2d1ZSBmb3J1bSB0byBlbmhhbmNlIHJlbGF0aW9ucyBhbmQgdmFyaW91cyBmb3JtcyBvZiBjb29wZXJhdGlvbiBiZXR3ZWVuIGl0cyBwYXJ0bmVycy4gSXQgd2FzIG9mZmljaWFsbHkgZXN0YWJsaXNoZWQgYXQgdGhlIDFzdCBBU0VNIFN1bW1pdCAoQVNFTTEpIGluIEJhbmdrb2ssIFRoYWlsYW5kLCBieSB0aGUgdGhlbiAxNSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aGUgRXVyb3BlYW4gQ29tbWlzc2lvbiwgdGhlIHRoZW4gNyBNZW1iZXIgU3RhdGVzIG9mIHRoZSBBc3NvY2lhdGlvbiBvZiBTb3V0aGVhc3QgQXNpYW4gTmF0aW9ucyAoQVNFQU4pLCBhbmQgdGhlIGluZGl2aWR1YWwgY291bnRyaWVzIG9mIENoaW5hLCBKYXBhbiwgYW5kIFNvdXRoIEtvcmVhLiBBIHNlcmllcyBvZiBlbmxhcmdlbWVudHMgc2F3IGFkZGl0aW9uYWwgRVUgTWVtYmVyIFN0YXRlcyBqb2luIGFzIHdlbGwgYXMgSW5kaWEsIE1vbmdvbGlhLCBQYWtpc3RhbiBhbmQgdGhlIEFTRUFOIFNlY3JldGFyaWF0IGluIDIwMDgsIEF1c3RyYWxpYSwgTmV3IFplYWxhbmQgYW5kIFJ1c3NpYSBpbiAyMDEwLCBCYW5nbGFkZXNoLCBOb3J3YXksIGFuZCBTd2l0emVybGFuZCBpbiAyMDEyLCBhcyB3ZWxsIGFzIENyb2F0aWEsIGFuZCBLYXpha2hzdGFuIGluIDIwMTQuDQoxOTk2IChBcHIgMjYpOiBbR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2l0aCB0aGUgc2lnbmluZyBvZiB0aGUgVHJlYXR5IG9uIERlZXBlbmluZyBNaWxpdGFyeSBUcnVzdCBpbiBCb3JkZXIgUmVnaW9ucyBpbiBTaGFuZ2hhaSBieSB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4uIExhdGVyIG9uIEp1biAxNSwgMjAwMSBpdCBnb3QgcmVuYW1lZCBhcyBTaGFuZ2hhaSBDb29wZXJhdGlvbiBPcmdhbmlzYXRpb24gKFNDTykgb3IgU2hhbmdoYWkgUGFjdCANCjE5OTYgKE1heSAxNik6IEF0YWwgQmloYXJpIFZhanBheWVlIGJlY29tZXMgUE0gb2YgSW5kaWEgZm9yIHRoZSB2ZXJ5IGZpcnN0IHRpbWUgZm9yIDE2IGRheXMuDQoxOTk2IChKdW4gMSk6IEF0YWwgQmloYXJpIFZhanBheWVlIHJlc2lnbnMuIEhEIERldmUgR293ZGEgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NiAoQXVnIDE0KTpbcmVzZWFyY2hdW2V4dHJlbWVdIEthcmVuIEVsaXphYmV0aCBXZXR0ZXJoYWhuIChPY3RvYmVyIDE2LCAxOTQ4IOKAkyBKdW5lIDgsIDE5OTcpLCBhbHNvIGtub3duIGFzIEthcmVuIFdldHRlcmhhaG4gSmVubmV0dGUsIHdhcyBhbiBBbWVyaWNhbiBwcm9mZXNzb3Igb2YgY2hlbWlzdHJ5IGF0IERhcnRtb3V0aCBDb2xsZWdlLCBOZXcgSGFtcHNoaXJlLCB3aG8gc3BlY2lhbGl6ZWQgaW4gdG94aWMgbWV0YWwgZXhwb3N1cmUuIFNoZSBkaWVkIG9mIG1lcmN1cnkgcG9pc29uaW5nIGF0IHRoZSBhZ2Ugb2YgNDggZHVlIHRvIGFjY2lkZW50YWwgZXhwb3N1cmUgdG8gdGhlIGV4dHJlbWVseSB0b3hpYyBvcmdhbmljIG1lcmN1cnkgY29tcG91bmQgZGltZXRoeWxtZXJjdXJ5IChIZyhDSDMpMikuIFByb3RlY3RpdmUgZ2xvdmVzIGluIHVzZSBhdCB0aGUgdGltZSBvZiB0aGUgaW5jaWRlbnQgcHJvdmlkZWQgaW5zdWZmaWNpZW50IHByb3RlY3Rpb24sIGFuZCBleHBvc3VyZSB0byBvbmx5IGEgc2luZ2xlIGRyb3Agb3IgdHdvIG9mIHRoZSBkaW1ldGh5bG1lcmN1cnkgYWJzb3JiZWQgdGhyb3VnaCB0aGUgZ2xvdmVzIHByb3ZlZCB0byBiZSBmYXRhbCBhZnRlciBsZXNzIHRoYW4gYSB5ZWFyLiBUZXN0cyBsYXRlciByZXZlYWxlZCB0aGF0IGRpbWV0aHlsbWVyY3VyeSBjYW4sIGluIGZhY3QsIHJhcGlkbHkgcGVybWVhdGUgc2V2ZXJhbCBraW5kcyBvZiBsYXRleCBnbG92ZXMgYW5kIGVudGVyIHRoZSBza2luIHdpdGhpbiBhYm91dCAxNSBzZWNvbmRzLiBIZXIgZXhwb3N1cmUgd2FzIGxhdGVyIGNvbmZpcm1lZCBieSBoYWlyIGFuYWx5c2lzLCB3aGljaCBzaG93ZWQgYSBkcmFtYXRpYyBqdW1wIGluIG1lcmN1cnkgbGV2ZWxzIDE3IGRheXMgYWZ0ZXIgdGhlIGluaXRpYWwgYWNjaWRlbnQsIHBlYWtpbmcgYXQgMzkgZGF5cywgZm9sbG93ZWQgYnkgYSBncmFkdWFsIGRlY2xpbmUuIEFwcHJveGltYXRlbHkgdGhyZWUgbW9udGhzIGFmdGVyIHRoZSBpbml0aWFsIGFjY2lkZW50IFdldHRlcmhhaG4gYmVnYW4gZXhwZXJpZW5jaW5nIGJyaWVmIGVwaXNvZGVzIG9mIGFiZG9taW5hbCBkaXNjb21mb3J0IGFuZCBub3RpY2VkIHNpZ25pZmljYW50IHdlaWdodCBsb3NzLiBUaGUgbW9yZSBkaXN0aW5jdGl2ZSBuZXVyb2xvZ2ljYWwgc3ltcHRvbXMgb2YgbWVyY3VyeSBwb2lzb25pbmcsIGluY2x1ZGluZyBsb3NzIG9mIGJhbGFuY2UgYW5kIHNsdXJyZWQgc3BlZWNoLCBhcHBlYXJlZCBpbiBKYW51YXJ5IDE5OTcsIGZpdmUgbW9udGhzIGFmdGVyIHRoZSBhY2NpZGVudC4gSGVyIGJsb29kIGFuZCB1cmluYXJ5IG1lcmN1cnkgY29udGVudCB3ZXJlIG1lYXN1cmVkIGF0IDQsMDAwIM68Zy9MIGFuZCAyMzQgzrxnL0wsIHJlc3BlY3RpdmVseeKAlGJvdGggbWFueSB0aW1lcyB0aGVpciByZXNwZWN0aXZlIHRveGljIHRocmVzaG9sZHMgb2YgMjAwIM68Zy9MIGFuZCA1MCDOvGcvTCAoYmxvb2QgYW5kIHVyaW5lIHJlZmVyZW5jZSByYW5nZXMgYXJlIDEgdG8gOCDOvGcvTCBhbmQgMSB0byA1IM68Zy9MKS4NCjE5OTYgKERlYyA0IDA2OjU4OjA3IFVUQyk6W1NwYWNlXVtNYXJzXVtFYXJ0aF0gTGF1bmNoIG9mIE1hcnMgUGF0aGZpbmRlciBvbiBEZWx0YSBJSSA3OTI1ICgjRDI0MCkNCnJvY2tldCBmcm9tIENhcGUgQ2FuYXZlcmFsIFNMQy0xNy4gVG8gcHJvdmUgdGhhdCB0aGUgZGV2ZWxvcG1lbnQgb2YgImZhc3RlciwgYmV0dGVyIGFuZCBjaGVhcGVyIiBzcGFjZWNyYWZ0IHdhcyBwb3NzaWJsZSAod2l0aCB0aHJlZSB5ZWFycyBmb3IgZGV2ZWxvcG1lbnQgYW5kIGEgY29zdCB1bmRlciAkMTUwIG1pbGxpb24gZm9yIHRoZSBsYW5kZXIsIGFuZCAkMjUgbWlsbGlvbiBmb3IgdGhlIHJvdmVyKS4gVG8gc2hvdyB0aGF0IGl0IHdhcyBwb3NzaWJsZSB0byBzZW5kIGEgbG9hZCBvZiBzY2llbnRpZmljIGluc3RydW1lbnRzIHRvIGFub3RoZXIgcGxhbmV0IHdpdGggYSBzaW1wbGUgc3lzdGVtIGFuZCBhdCBvbmUtZmlmdGVlbnRoIHRoZSBjb3N0IG9mIGEgVmlraW5nIG1pc3Npb24uIChGb3IgY29tcGFyaXNvbiwgdGhlIFZpa2luZyBtaXNzaW9ucyBjb3N0ICQ5MzUgbWlsbGlvbiBpbiAxOTc0IG9yICQzLjUgYmlsbGlvbiBpbiAxOTk3IGRvbGxhcnMuKS4gVG8gZGVtb25zdHJhdGUgTkFTQSdzIGNvbW1pdG1lbnQgdG8gbG93LWNvc3QgcGxhbmV0YXJ5IGV4cGxvcmF0aW9uIGJ5IGZpbmlzaGluZyB0aGUgbWlzc2lvbiB3aXRoIGEgdG90YWwgZXhwZW5kaXR1cmUgb2YgJDI4MCBtaWxsaW9uLCBpbmNsdWRpbmcgdGhlIGxhdW5jaCB2ZWhpY2xlIGFuZCBtaXNzaW9uIG9wZXJhdGlvbnMuDQoxOTk2OiBhIHJhaWQgb24gdGhlIEFuaW1hbCBIdXNiYW5kcnkgZGVwYXJ0bWVudOKAmXMgb2ZmaWNlcyBpbiBDaGFpYmFzYSwgQmloYXIgdW5mb2xkZWQgdGhlIFJzLjk1MCBjcm9yZSBmb2RkZXIgc2NhbSwgaW4gd2hpY2ggdGhlIEJpaGFyIGNoaWVmIG1pbmlzdGVyIExhbHUgUHJhc2FkIFlhZGF2IGNhdGNoIHVwIGluIGEgbGlmZWxvbmcgdHVzc2xlIHdpdGggdGhlIENCSS4NCjE5OTY6W0Jvb2tdW0FkdmVudHVyZV0gSm9uIEtyYWthdWVyJ3MgSW50byB0aGUgV2lsZC4NCjE5OTY6W0NvbXB1dGluZ10gVGhlIFZpZGVvTEFOIHNvZnR3YXJlIG9yaWdpbmF0ZWQgYXMgYSBGcmVuY2ggYWNhZGVtaWMgcHJvamVjdC4gVkxDIHVzZWQgdG8gc3RhbmQgZm9yICJWaWRlb0xBTiBDbGllbnQiIHdoZW4gVkxDIHdhcyBhIGNsaWVudCBvZiB0aGUgVmlkZW9MQU4gcHJvamVjdCwgb2ZmaWNpYWxseSByZWxlYXNlZCB1bmRlciBHTlUgR1BMIG9uIDIwMDEgKEZlYiAxKS4NCjE5OTY6W01lbWVdIERhbmNpbmcgQmFieSBTY3JlZW5zYXZlcg0KMTk5NjpbU3BhY2VYXSBUaGUgZW50aXJlIHByb2Nlc3MgZm9yIHRoZSBKYW1lcyBXZWJiIFNwYWNlIFRlbGVzY29wZSAoSldTVCkgZnJvbSBpbml0aWFsIGNvbmNlcHQgdG8gbGF1bmNoIHNwYW5uZWQgYXBwcm94aW1hdGVseSAyNSB5ZWFycywgd2l0aCBpbml0aWFsIGRlc2lnbnMgYmVnaW5uaW5nIGluIDE5OTYgYW5kIHRoZSB0ZWxlc2NvcGUgbGF1bmNoaW5nIGluIDIwMjEsIGJ1dCBhIHNpZ25pZmljYW50IHBvcnRpb24gb2YgdGhpcyB3YXMgc3BlbnQgaW4gZGVzaWduLCB0ZXN0aW5nLCBhbmQgb3ZlcmNvbWluZyBtYWpvciByZWRlc2lnbnMgYW5kIGRlbGF5cywgbm90IGp1c3QgYXNzZW1ibHkuIA0KMTk5NiAoRmViIDI4KTpbRGVsaGldIEluZGlyYXB1cmFtLCBHaGF6aWFiYWQgd2FzIGVzdGQgd2hlbiBpdHMgZm91bmRhdGlvbiBzdG9uZSAoS2FsYSBQYXRoYXIpIHdhcyBpbmF1Z3VyYXRlZCBieSBTaCBNb3RpbGFsIFZvcmEsIHRoZW4gR292ZXJub3Igb2YgVVAuICgyMDIxKSBJJ3B1cmFtIEV4dG4gdG8gYmUgYnVpbHQgb24gMTIgYWNyZXMgb25seSwgY29uY2VpdmVkIGluIDIwMDQuDQoxOTk2OltCb29rXVtNaWxpdGFyeV1bQ3VsdHVyZV1bRVVdW1VTQV0gR2VvcmdlIFIuUi4gTWFydGluIGlzIHRoZSBBbWVyaWNhbiBhdXRob3Igb2YgdGhlIGVwaWMgZmFudGFzeSBib29rIHNlcmllcyBBIFNvbmcgb2YgSWNlIGFuZCBGaXJlLCB3aGljaCBiZWdhbiB3aXRoIEEgR2FtZSBvZiBUaHJvbmVzICgxOTk2KSBhbmQgc2VydmVkIGFzIHRoZSBiYXNpcyBmb3IgSEJPJ3MgbWFzc2l2ZWx5IHBvcHVsYXIgR2FtZSBvZiBUaHJvbmVzIFRWIHNlcmllcy4gQSBTb25nIG9mIEljZSBhbmQgRmlyZSBpcyBhIHNlcmllcyBvZiBoaWdoIGZhbnRhc3kgbm92ZWxzIGJ5IHRoZSBBbWVyaWNhbiBhdXRob3IgR2VvcmdlIFIuIFIuIE1hcnRpbi4gTWFydGluIGJlZ2FuIHdyaXRpbmcgdGhlIGZpcnN0IHZvbHVtZSwgQSBHYW1lIG9mIFRocm9uZXMsIGluIDE5OTEsIGFuZCBwdWJsaXNoZWQgaXQgaW4gMTk5Ni4gTWFydGluLCB3aG8gb3JpZ2luYWxseSBlbnZpc2lvbmVkIHRoZSBzZXJpZXMgYXMgYSB0cmlsb2d5LCBoYXMgcmVsZWFzZWQgZml2ZSBvdXQgb2Ygc2V2ZW4gcGxhbm5lZCB2b2x1bWVzLiANCg0KW0dlbmVyYXRpb25dIE1pbGxlbm5pYWwgZ2VuZXJhdGlvbiAoMTk4MeKAkzE5OTYpIGVuZHM7IGxhc3RlZCBmb3IgMTUgeWVhcnMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICA1MCB5ZWFycyBvZiBJbmRlcGVuZGVudCBJbmRpYSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSANCg0KW0dlbmVyYXRpb25dIEdlbiBaICgxOTk34oCTMjAxMikgc3RhcnRzOyBhbmQgZXhpc3RzIGZvciBuZXh0IDE1IHllYXJzLg0KDQoxOTk3OltXaG9dW1Jlc2VhcmNoXVtDb21wdXRpbmddW1RlY2hdW0N1bHR1cmVdIFZMQyBNZWRpYSBQbGF5ZXIgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBzdHVkZW50cyBhdCB0aGUgRnJlbmNoIGVuZ2luZWVyaW5nIHNjaG9vbCDDiWNvbGUgQ2VudHJhbGUgUGFyaXMgaW4gMTk5Ni4gV2hpbGUgaXQgc3RhcnRlZCBhcyBhbiBhY2FkZW1pYyBwcm9qZWN0IChWaWRlb0xBTikgdG8gc3RyZWFtIHZpZGVvIG92ZXIgYSBjYW1wdXMgbmV0d29yaywgaXRzIGRldmVsb3BtZW50IGFuZCBtb2Rlcm5pemF0aW9uIHdlcmUgbGF0ZXIgbGVkIGJ5IEplYW4tQmFwdGlzdGUgS2VtcGYuIA0KMTk5NzpbUmVzZWFyY2hdW1NwYWNlXSAyOSBKdWx5IDE5OTc6IGEgTkFTQSBzY2llbnRpc3QgYW5ub3VuY2VkIGV2aWRlbmNlIG9mIGZvc3NpbGl6ZWQgbWljcm9zY29waWMgbGlmZSBmb3JtcyBpbiBhIG1ldGVvcml0ZSBub3QgZnJvbSBhbnkga25vd24gcGxhbmV0Lg0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgR3JvdXAgb2YgRWlnaHQgKEc4KSB3YXMgYW4gaW50ZXJnb3Zlcm5tZW50YWwgcG9saXRpY2FsIGZvcnVtIGZyb20gMTk5NyB0byAyMDE0LCBmb3JtZWQgYnkgaW5jb3Jwb3JhdGluZyBSdXNzaWEgaW50byB0aGUgRzcuIFRoZSBHOCBiZWNhbWUgdGhlIEc3IGFnYWluIGFmdGVyIFJ1c3NpYSB3YXMgZXhwZWxsZWQgaW4gMjAxNCBhZnRlciB0aGUgUnVzc2lhbiBhbm5leGF0aW9uIG9mIENyaW1lYS4gRm91bmRlZDogMTk5NywgRGVudmVyLCBDb2xvcmFkbywgVW5pdGVkIFN0YXRlcw0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBGb3VuZGVkOiA2IEp1bmUgMTk5NywgVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiAoQklNU1RFQykgaXMgYW4gaW50ZXJuYXRpb25hbCBvcmdhbml6YXRpb24gb2Ygc2V2ZW4gU291dGggQXNpYW4gYW5kIFNvdXRoZWFzdCBBc2lhbiBuYXRpb25zLCBob3VzaW5nIDEuNzMgYmlsbGlvbiBwZW9wbGUgYW5kIGhhdmluZyBhIGNvbWJpbmVkIGdyb3NzIGRvbWVzdGljIHByb2R1Y3Qgb2YgVVMkNS4yIHRyaWxsaW9uLg0KMTk5NzpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gYnVpbHQgdGhlIGZpcnN0IGV4cGVyaW1lbnRhbCBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCBjb3VsZCBtYW5pcHVsYXRlIDcgcXViaXRzIHVzaW5nIG51Y2xlYXIgbWFnbmV0aWMgcmVzb25hbmNlIChOTVIpIHRlY2huaXF1ZXMuDQoxOTk3IChKdWwgNCk6W1NwYWNlXVtNYXJzXSBUaGUgTWFycyBQYXRoZmluZGVyIGVuZHVyZWQgYSAzMC1zZWNvbmQgY29tbXVuaWNhdGlvbnMgYmxhY2tvdXQgYXMgaXQgZW50ZXJlZCBNYXJzJyBhdG1vc3BoZXJlLiBJdCBsYW5kZWQgYXQgQXJlcyBWYWxsaXMsIENocnlzZSBQbGFuaXRpYSwgTWFycyAxOcKwN+KAsjQ44oCzTiAzM8KwMTPigLIxMuKAs1cuIE1hcnMgUGF0aGZpbmRlciAoTUVTVVIgUGF0aGZpbmRlcikgaXMgYW4gQW1lcmljYW4gcm9ib3RpYyBzcGFjZWNyYWZ0IHRoYXQgbGFuZGVkIGEgYmFzZSBzdGF0aW9uIHdpdGggYSByb3ZpbmcgcHJvYmUgb24gTWFycyBpbiAxOTk3LiBJdCBjb25zaXN0ZWQgb2YgYSBsYW5kZXIsIHJlbmFtZWQgdGhlIENhcmwgU2FnYW4gTWVtb3JpYWwgU3RhdGlvbiwgYW5kIGEgbGlnaHR3ZWlnaHQsIDEwLjYga2cgKDIzIGxiKSB3aGVlbGVkIHJvYm90aWMgTWFycyByb3ZlciBuYW1lZCBTb2pvdXJuZXIsIHRoZSBmaXJzdCByb3ZlciB0byBvcGVyYXRlIG91dHNpZGUgdGhlIEVhcnRo4oCTTW9vbiBzeXN0ZW0uDQoxOTk3OltCb29rXSBNaXRjaCBBbGJvbSdzIFR1ZXNkYXlzIHdpdGggTW9ycmllLg0KMTk5NzpbR2FtaW5nXSBHcmFuZCBUaGVmdCBBdXRvIChHVEEpIHJlbGVhc2VkIGJ5IERNQSBEZXNpZ24gKGxhdGVyIFJvY2tzdGFyIE5vcnRoKSBmb3IgUFMxLCBXaW5kb3dzIGFuZCBNUy1ET1M7IEdyYW5kIFRoZWZ0IEF1dG86IFZpY2UgQ2l0eSAoMjAwMik7IEdyYW5kIFRoZWZ0IEF1dG86IFNhbiBBbmRyZWFzICgyMDA0KTsgR3JhbmQgVGhlZnQgQXV0byBJViAoMjAwOCk7IEdyYW5kIFRoZWZ0IEF1dG8gViAoMjAxMyk7IEdyYW5kIFRoZWZ0IEF1dG86IFRoZSBUcmlsb2d5IOKAkyBUaGUgRGVmaW5pdGl2ZSBFZGl0aW9uICgyMDIxKQ0KMTk5NzogVGVra2VuIDMgd2FzIGRlc2lnbmVkIGJ5IEthdHN1aGlybyBIYXJhZGEgKE9zYWthLCBPc2FrYSBQcmVmZWN0dXJlLCBKYXBhbikgb2YgQmFuZGFpIE5hbWNvIEVudGVydGFpbm1lbnQgaGVhZHF1YXJ0ZXJlZCBhdCDFjHRhLCBUb2t5by4NCjE5OTcgKE1hciA2KTogW0dlb1BvbGl0aWNzXSBUaGUgSW5kaWFuIE9jZWFuIFJpbSBBc3NvY2lhdGlvbiwgZm9ybWVybHkga25vd24gYXMgdGhlIEluZGlhbiBPY2VhbiBSaW0gSW5pdGlhdGl2ZSBhbmQgdGhlIEluZGlhbiBPY2VhbiBSaW0gQXNzb2NpYXRpb24gZm9yIFJlZ2lvbmFsIENvb3BlcmF0aW9uLCBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBjb25zaXN0aW5nIG9mIDIzIHN0YXRlcyBib3JkZXJpbmcgdGhlIEluZGlhbiBPY2Vhbi4gVGhlIElPUkEgaXMgYSByZWdpb25hbCBmb3J1bSwgdHJpcGFydGl0ZSBpbiBuYXR1cmUsIGJyaW5naW5nIHRvZ2V0aGVyIHJlcHJlc2VudGF0aXZlcyBvZiBHb3Zlcm5tZW50LCBCdXNpbmVzcyBhbmQgQWNhZGVtaWEsIGZvciBwcm9tb3RpbmcgY28tb3BlcmF0aW9uIGFuZCBjbG9zZXIgaW50ZXJhY3Rpb24gYW1vbmcgdGhlbS4gSXQgaXMgYmFzZWQgb24gdGhlIHByaW5jaXBsZXMgb2YgT3BlbiBSZWdpb25hbGlzbSBmb3Igc3RyZW5ndGhlbmluZyBFY29ub21pYyBDb29wZXJhdGlvbiBwYXJ0aWN1bGFybHkgb24gVHJhZGUgRmFjaWxpdGF0aW9uIGFuZCBJbnZlc3RtZW50LCBQcm9tb3Rpb24gYXMgd2VsbCBhcyBTb2NpYWwgRGV2ZWxvcG1lbnQgb2YgdGhlIHJlZ2lvbi4gVGhlIENvb3JkaW5hdGluZyBTZWNyZXRhcmlhdCBvZiBJT1JBIGlzIGxvY2F0ZWQgYXQgRWJlbmUsIE1hdXJpdGl1cy4NCjE5OTcgKEFwciAyMSk6IEguRC4gRGV2ZSBHb3dkYSByZXNpZ25zLiBJbmRlciBLdW1hciBHdWpyYWwgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NyAoSnVuIDYpOiBbR2VvUG9saXRpY3NdIEJJTVNURUMgZm91bmRlZC4gVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBvZiBzZXZlbiBTb3V0aCBBc2lhbiBhbmQgU291dGhlYXN0IEFzaWFuIG5hdGlvbnMsIGhvdXNpbmcgMS43MyBiaWxsaW9uIHBlb3BsZSBhbmQgaGF2aW5nIGEgY29tYmluZWQgZ3Jvc3MgZG9tZXN0aWMgcHJvZHVjdCBvZiAkMy44IHRyaWxsaW9uLiBUaGUgQklNU1RFQyBtZW1iZXIgc3RhdGVzIOKAkyBCYW5nbGFkZXNoLCBCaHV0YW4sIEluZGlhLCBNeWFubWFyLCBOZXBhbCwgU3JpIExhbmthLCBhbmQgVGhhaWxhbmQg4oCTIGFyZSBhbW9uZyB0aGUgY291bnRyaWVzIGRlcGVuZGVudCBvbiB0aGUgQmF5IG9mIEJlbmdhbC4NCjE5OTcgKEp1biA4KTogRGVzcGl0ZSBhZ2dyZXNzaXZlIGNoZWxhdGlvbiB0aGVyYXB5LCBoZXIgY29uZGl0aW9uIHJhcGlkbHkgZGV0ZXJpb3JhdGVkLiBUaHJlZSB3ZWVrcyBhZnRlciB0aGUgZmlyc3QgbmV1cm9sb2dpY2FsIHN5bXB0b21zIGFwcGVhcmVkLCBXZXR0ZXJoYWhuIGxhcHNlZCBpbnRvIHdoYXQgYXBwZWFyZWQgdG8gYmUgYSB2ZWdldGF0aXZlIHN0YXRlIHB1bmN0dWF0ZWQgYnkgcGVyaW9kcyBvZiBleHRyZW1lIGFnaXRhdGlvbi4gT25lIG9mIGhlciBmb3JtZXIgc3R1ZGVudHMgc2FpZCB0aGF0ICJIZXIgaHVzYmFuZCBzYXcgdGVhcnMgcm9sbGluZyBkb3duIGhlciBmYWNlLiBJIGFza2VkIGlmIHNoZSB3YXMgaW4gcGFpbi4gVGhlIGRvY3RvcnMgc2FpZCBpdCBkaWRuJ3QgYXBwZWFyIHRoYXQgaGVyIGJyYWluIGNvdWxkIGV2ZW4gcmVnaXN0ZXIgcGFpbi4iIFdldHRlcmhhaG4gd2FzIHJlbW92ZWQgZnJvbSBsaWZlIHN1cHBvcnQgYW5kIHByb25vdW5jZWQgZGVhZCBvbiBKdW5lIDgsIDE5OTcsIHRlbiBtb250aHMgYWZ0ZXIgaGVyIGluaXRpYWwgZXhwb3N1cmUuIEluIHJlc3BvbnNlLCB0aGUgT2NjdXBhdGlvbmFsIFNhZmV0eSBhbmQgSGVhbHRoIEFkbWluaXN0cmF0aW9uIHJlY29tbWVuZGVkIHRoYXQgdGhlIHVzZSBvZiBkaW1ldGh5bG1lcmN1cnkgYmUgYXZvaWRlZCB1bmxlc3MgYWJzb2x1dGVseSBuZWNlc3NhcnkgYW5kIG1hbmRhdGVkIHRoZSB1c2Ugb2YgcGxhc3RpYy1sYW1pbmF0ZSBnbG92ZXMgKFNpbHZlclNoaWVsZCkgd2hlbiBoYW5kbGluZyB0aGlzIGNvbXBvdW5kLg0KMTk5NyAoSnVuIDEzKTpbSmFja10gQm9yZGVyDQoxOTk3IChKdW4gMjYpOltCb29rXSAzMllPIEouIEsuIFJvd2xpbmcgcHVibGlzaGVzIGhlciBmaXJzdCBIYXJyeSBQb3R0ZXIgYm9vaywgVGhlIFBoaWxvc29waGVyJ3MgU3RvbmU7IA0KVGhlIENoYW1iZXIgb2YgU2VjcmV0cyAoMiBKdWx5IDE5OTgpLA0KVGhlIFByaXNvbmVyIG9mIEF6a2FiYW4gKDggSnVseSAxOTk5KSwNClRoZSBHb2JsZXQgb2YgRmlyZSAoOCBKdWx5IDIwMDApLA0KVGhlIE9yZGVyIG9mIHRoZSBQaG9lbml4ICgsIDI3IEp1bmUgMjAwMyksDQpUaGUgSGFsZi1CbG9vZCBQcmluY2UgKDE2IEp1bHkgMjAwNSksDQpUaGUgRGVhdGhseSBIYWxsb3dzICgyMSBKdWx5IDIwMDcpDQoxOTk3IChBdWcgMjUpOltTcGFjZV0gQWR2YW5jZWQgQ29tcG9zaXRpb24gRXhwbG9yZXIgaXMgYSBOQVNBIEV4cGxvcmVyIHByb2dyYW0gc2F0ZWxsaXRlIGFuZCBzcGFjZSBleHBsb3JhdGlvbiBtaXNzaW9uIHRvIHN0dWR5IG1hdHRlciBjb21wcmlzaW5nIGVuZXJnZXRpYyBwYXJ0aWNsZXMgZnJvbSB0aGUgc29sYXIgd2luZCwgdGhlIGludGVycGxhbmV0YXJ5IG1lZGl1bSwgYW5kIG90aGVyIHNvdXJjZXMuDQoxOTk3IChTZXAgMTMpOiB0aGUgaW50cm9kdWN0b3J5IGVwaXNvZGUgb2YgU2hha3RpbWFuIHdhcyBhaXJlZCBvbiBEb29yZGFyc2hhbiAoSW5kaWEncyBuYXRpb25hbCB0ZWxldmlzaW9uIG5ldHdvcmspIGZyb20gMjcgU2VwdGVtYmVyIDE5OTcgdG8gMjcgTWFyY2ggMjAwNSwgb24gU3VuZGF5cyBhdCAxMiBub29uIElTVC4gVGhlIHRlbGVjYXN0IHNsb3QsIGhvd2V2ZXIgd2FzIHNoaWZ0ZWQgdG8gOTozMCBhLm0uIGZvciB0aGUgbGFzdCBlcGlzb2Rlcy4gDQoxOTk3IChTZXAgMjcgMTA6MjMgVVRDKTpbU3BhY2VdW01hcnNdIExhc3QgY29udGFjdCB3aXRoIE1hcnMgUGF0aGZpbmRlci4gTWlzc2lvbiBkdXJhdGlvbiAoTGF1bmNoIHRvIGxhc3QgY29udGFjdCk6IDkgbW9udGhzLCAyMyBkYXlzLg0KMTk5NyAoT2N0IDMxKTpbQm9va10gRG9uYWxkIFRydW1wJ3MgVHJ1bXA6IFRoZSBBcnQgb2YgdGhlIENvbWViYWNrOyBUaGUgQW1lcmljYSBXZSBEZXNlcnZlICgyMDAwKTsgVHJ1bXA6IFRoaW5rIExpa2UgYSBCaWxsaW9uYWlyZTogRXZlcnl0aGluZyBZb3UgTmVlZCB0byBLbm93IEFib3V0IFN1Y2Nlc3MsIFJlYWwgRXN0YXRlLCBhbmQgTGlmZSAoMjAwNCk7IFdoeSBXZSBXYW50IFlvdSB0byBCZSBSaWNoICgyMDA2KTsgVHJ1bXA6IFRoZSBCZXN0IFJlYWwgRXN0YXRlIEFkdmljZSBJIEV2ZXIgUmVjZWl2ZWQ6IDEwMCBUb3AgRXhwZXJ0cyBTaGFyZSBUaGVpciBTdHJhdGVnaWVzICgyMDA2LCBOb3YgMSk7IFRoaW5rIEJJRyBhbmQgS2ljayBBc3MgaW4gQnVzaW5lc3MgYW5kIExpZmUgKDIwMDcpOyBUcnVtcCBOZXZlciBHaXZlIFVwOiBIb3cgSSBUdXJuZWQgTXkgQmlnZ2VzdCBDaGFsbGVuZ2VzIGludG8gU3VjY2VzcyAoMjAwOCk7IFRpbWUgdG8gR2V0IFRvdWdoOiBNYWtpbmcgQW1lcmljYSAjMSBBZ2FpbiAoMjAxMSk7IENyaXBwbGVkIEFtZXJpY2E6IEhvdyB0byBNYWtlIEFtZXJpY2EgR3JlYXQgQWdhaW4gKDIwMTUpDQoxOTk3OiBBcnVuZGhhdGkgUm95IGJlY2FtZSB0aGUgZmlyc3QgSW5kaWFuIHRvIHdpbiBNYW4gQm9va2VyIFByaXplIGZvciBoZXIgbm92ZWwgJ1RoZSBHb2Qgb2YgU21hbGwgVGhpbmdzJy4NCjE5OTc6IElJVC1KRUUgd2FzIGNvbmR1Y3RlZCB0d2ljZSBhZnRlciB0aGUgUS1QYXBlciB3YXMgbGVha2VkLg0KMTk5NzogTkFTQSBlc3RpbWF0ZWQgdGhlcmUgd2VyZSBhcHByb3guIDIsNjQ1IGFydGlmaWNpYWwgc2F0ZWxsaXRlIHBheWxvYWRzIG9yYml0dGluZyB0aGUgZWFydGggYW5kIDYsMjE2IHBpZWNlcyBvZiBzcGFjZSBkZWJyaXMgYXMgdHJhY2tlZCBieSB0aGUgR1NGQy4gT3ZlciAxNiwyOTEgcHJldmlvdXNseSBsYXVuY2hlZCBvYmplY3RzIGhhdmUgZGVjYXllZCBpbnRvIHRoZSBFYXJ0aCdzIGF0bW9zcGhlcmUuDQoxOTk3OiBCSEMgRmluYW5jaWFsLCBJbmMuIG9mIFBlbm5zeWx2YW5pYSBtZXJnZWQgaW50byBGSVNWIHRvIGZvcm0gU2VjdXJlZCBUcmFuc2FjdGlvbiBQcm9jZXNzaW5nIFNlcnZpY2VzLg0KMTk5NzpbQm9va10gVGhlIEZvdXIgQWdyZWVtZW50czogQSBQcmFjdGljYWwgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSBpcyBhIHNlbGYtaGVscCBib29rIGJ5IGJlc3RzZWxsaW5nIGF1dGhvciBEb24gTWlndWVsIFJ1aXogd2l0aCBKYW5ldCBNaWxsczsgVGhlIE1hc3Rlcnkgb2YgTG92ZTogQSBQcmFjdGljYWwgR3VpZGUgdG8gdGhlIEFydCBvZiBSZWxhdGlvbnNoaXAgLS1Ub2x0ZWMgV2lzZG9tIEJvb2sgKDE5OTksIE1hciAzMCk7IFRoZSBWb2ljZSBvZiBLbm93bGVkZ2U6IEEgUHJhY3RpY2FsIEd1aWRlIHRvIElubmVyIFBlYWNlICgyMDA0LCBNYXIgMTApOyBUaGUgRmlmdGggQWdyZWVtZW50OiBBIFByYWN0aWNhbCBHdWlkZSB0byBTZWxmLU1hc3RlcnkgKDIwMDkpOyBUaGUgQ2lyY2xlIG9mIEZpcmU6IEluc3BpcmF0aW9uIGFuZCBHdWlkZWQgTWVkaXRhdGlvbnMgZm9yIExpdmluZyBpbiBMb3ZlIGFuZCBIYXBwaW5lc3MgKDIwMTMsIEF1ZyAxKTsgVGhlIE1hc3Rlcnkgb2YgU2VsZjogQSBUb2x0ZWMgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSAoMjAxNiwgTWF5IDYpDQoxOTk3OltCb29rXSBKb24gS3Jha2F1ZXIncyBJbnRvIFRoaW4gQWlyOiBBIFBlcnNvbmFsIEFjY291bnQgb2YgdGhlIE10LiBFdmVyZXN0IERpc2FzdGVyOyBVbmRlciB0aGUgQmFubmVyIG9mIEhlYXZlbiAoMjAwMyBKdWwpDQoxOTk3IChEZWMgMTEpOltFbnZdIFRoZSBLeW90byBQcm90b2NvbCB3YXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgd2hpY2ggZXh0ZW5kZWQgdGhlIDE5OTIgVW5pdGVkIE5hdGlvbnMgRnJhbWV3b3JrIENvbnZlbnRpb24gb24gQ2xpbWF0ZSBDaGFuZ2UgKFVORkNDQykgdGhhdCBjb21taXRzIHN0YXRlIHBhcnRpZXMgdG8gcmVkdWNlIGdyZWVuaG91c2UgZ2FzIGVtaXNzaW9ucywgYmFzZWQgb24gdGhlIHNjaWVudGlmaWMgY29uc2Vuc3VzIHRoYXQgKHBhcnQgb25lKSBnbG9iYWwgd2FybWluZyBpcyBvY2N1cnJpbmcgYW5kIChwYXJ0IHR3bykgdGhhdCBodW1hbi1tYWRlIENPMiBlbWlzc2lvbnMgYXJlIGRyaXZpbmcgaXQuDQoxOTk3OltJbmRpYV1bRWR1Y2F0aW9uXVtDdWx0dXJlXSBFa2xhdnlhIE1vZGVsIFJlc2lkZW50aWFsIFNjaG9vbCBpcyBhIEdvdmVybm1lbnQgb2YgSW5kaWEgc2NoZW1lIGZvciBtb2RlbCByZXNpZGVudGlhbCBzY2hvb2wgZm9yIEluZGlhbiB0cmliYWxzIGFjcm9zcyBJbmRpYS4gSXQgaXMgb25lIG9mIHRoZSBmbGFnc2hpcCBpbnRlcnZlbnRpb25zIG9mIHRoZSBNaW5pc3RyeSBvZiBUcmliYWwgQWZmYWlycywgR292ZXJubWVudCBvZiBJbmRpYSBhbmQgd2FzIGludHJvZHVjZWQgaW4gdGhlIHllYXIgMTk5Ny05OCB0byBlbnN1cmUgdHJpYmFsIHN0dWRlbnRzIGdldCBhY2Nlc3MgdG8gcXVhbGl0eSBlZHVjYXRpb24gaW4gdGhlIHJlbW90ZSB0cmliYWwgYXJlYXMuIEVNUlNzIGFyZSBzZXQgdXAgaW4gU3RhdGVzL1VUcyB3aXRoIGdyYW50cyB1bmRlciBBcnRpY2xlIDI3NSgxKSBvZiB0aGUgQ29uc3RpdHV0aW9uIG9mIEluZGlhLiBBcyBwZXIgdGhlIGJ1ZGdldCAyMDE4LTE5LCBldmVyeSBibG9jayB3aXRoIG1vcmUgdGhhbiA1MCUgU1QgcG9wdWxhdGlvbiBhbmQgYXQgbGVhc3QgMjAsMDAwIHRyaWJhbCBwZXJzb25zLCB3aWxsIGhhdmUgYW4gRWtsYXZ5YSBNb2RlbCBSZXNpZGVudGlhbCBTY2hvb2wgYnkgdGhlIHllYXIgMjAyMi4NCjE5OTc6W1NwYWNlXSBIaXBwYXJjb3MgKDE5ODkgLTE5OTMpLiBJdCB0b29rIDQtOCB5ZWFycyB0byBvcmdhbml6ZSBhbmQgcHVibGlzaCB0aGUgNCB5ZWFycyBzdHVkeSBieSB0aGlzIGV4cGVyaW1lbnQsIHdoaWNoIHBlcm1pdHRlZCB0aGUgZmlyc3QgaGlnaC1wcmVjaXNpb24gbWVhc3VyZW1lbnRzIG9mIHRoZSBpbnRyaW5zaWMgYnJpZ2h0bmVzc2VzIChjb21wYXJlZCB0byB0aGUgbGVzcyBwcmVjaXNlIGFwcGFyZW50IGJyaWdodG5lc3MpLCBwcm9wZXIgbW90aW9ucywgYW5kIHBhcmFsbGF4ZXMgb2Ygc3RhcnMsIGVuYWJsaW5nIGJldHRlciBjYWxjdWxhdGlvbnMgb2YgdGhlaXIgZGlzdGFuY2UgYW5kIHRhbmdlbnRpYWwgdmVsb2NpdHkuIFdoZW4gY29tYmluZWQgd2l0aCByYWRpYWwgdmVsb2NpdHkgbWVhc3VyZW1lbnRzIGZyb20gc3BlY3Ryb3Njb3B5LCBhc3Ryb3BoeXNpY2lzdHMgd2VyZSBhYmxlIHRvIGZpbmFsbHkgbWVhc3VyZSBhbGwgc2l4IHF1YW50aXRpZXMgbmVlZGVkIHRvIGRldGVybWluZSB0aGUgbW90aW9uIG9mIHN0YXJzLiBUaGUgcmVzdWx0aW5nIEhpcHBhcmNvcyBDYXRhbG9ndWUsIGEgaGlnaC1wcmVjaXNpb24gY2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiAxMTgsMjAwIHN0YXJzLCB3YXMgcHVibGlzaGVkIGluIDE5OTcuIFRoZSBsb3dlci1wcmVjaXNpb24gVHljaG8gQ2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiBhIG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBhdCB0aGUgc2FtZSB0aW1lLCB3aGlsZSB0aGUgZW5oYW5jZWQgVHljaG8tMiBDYXRhbG9ndWUgb2YgMi41IG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBpbiAyMDAwLiBIaXBwYXJjb3MnIGZvbGxvdy11cCBtaXNzaW9uLCBHYWlhLCB3YXMgbGF1bmNoZWQgaW4gMjAxMy4NCjE5OTc6W1NwYWNlXVtSZXNlYXJjaF0gU2luY2UgdGhlIDE5OTcgcHJvcG9zYWwgb2YgdGhlIEFkUy9DRlQgKEFudGktZGUgU2l0dGVyL0NvbmZvcm1hbCBGaWVsZCBUaGVvcnkpIGNvcnJlc3BvbmRlbmNlLCB0aGUgcHJlZG9taW5hbnQgYmVsaWVmIGFtb25nIHBoeXNpY2lzdHMgaXMgdGhhdCBpbmZvcm1hdGlvbiBpcyBpbmRlZWQgcHJlc2VydmVkIGluIGJsYWNrIGhvbGUgZXZhcG9yYXRpb24uIA0KMTk5NzpbU3BhY2VdW1Jlc2VhcmNoXSBBIHdpZGVseSBwdWJsaWNpemVkIGJldCBtYWRlIGluIDE5OTcgYmV0d2VlbiBKb2huIFByZXNraWxsIG9uIHRoZSBvbmUgaGFuZCB3aXRoIEhhd2tpbmcgYW5kIEtpcCBUaG9ybmUgb24gdGhlIG90aGVyIHRoYXQgaW5mb3JtYXRpb24gd2FzIG5vdCBsb3N0IGluIGJsYWNrIGhvbGVzLiBUaGUgc2NpZW50aWZpYyBkZWJhdGUgb24gdGhlIHBhcmFkb3ggd2FzIGRlc2NyaWJlZCBpbiBhIHBvcHVsYXIgYm9vayBwdWJsaXNoZWQgaW4gMjAwOCBieSBMZW9uYXJkIFN1c3NraW5kIGNhbGxlZCBUaGUgQmxhY2sgSG9sZSBXYXIuIChUaGUgYm9vayBjYXJlZnVsbHkgbm90ZXMgdGhhdCB0aGUgJ3dhcicgd2FzIHB1cmVseSBhIHNjaWVudGlmaWMgb25lLCBhbmQgdGhhdCBhdCBhIHBlcnNvbmFsIGxldmVsLCB0aGUgcGFydGljaXBhbnRzIHJlbWFpbmVkIGZyaWVuZHMuKSBUaGUgYm9vayBzdGF0ZXMgdGhhdCBIYXdraW5nIHdhcyBldmVudHVhbGx5IHBlcnN1YWRlZCB0aGF0IGJsYWNrLWhvbGUgZXZhcG9yYXRpb24gd2FzIHVuaXRhcnkgYnkgdGhlIGhvbG9ncmFwaGljIHByaW5jaXBsZSwgd2hpY2ggd2FzIGZpcnN0IHByb3Bvc2VkIGJ5ICd0IEhvb2Z0LCBmdXJ0aGVyIGRldmVsb3BlZCBieSBTdXNza2luZCBhbmQgbGF0ZXIgZ2l2ZW4gYSBwcmVjaXNlIHN0cmluZyB0aGVvcnkgaW50ZXJwcmV0YXRpb24gYnkgdGhlIEFkUy9DRlQgY29ycmVzcG9uZGVuY2UuIEluIDIwMDQsIEhhd2tpbmcgYWxzbyBjb25jZWRlZCB0aGUgMTk5NyBiZXQsIHBheWluZyBQcmVza2lsbCB3aXRoIGEgYmFzZWJhbGwgZW5jeWNsb3BlZGlhICJmcm9tIHdoaWNoIGluZm9ybWF0aW9uIGNhbiBiZSByZXRyaWV2ZWQgYXQgd2lsbCIgYWx0aG91Z2ggVGhvcm5lIHJlZnVzZWQgdG8gY29uY2VkZS4NCjE5OTc6W0VhcnRoXVtQaHlzaWNzXVtSZXNlYXJjaF0gdGhlcmUgd2VyZSB0d28gbGFyZ2UgZWFydGhxdWFrZXMgb2ZmIHRoZSBjb2FzdCBvZiBDaGlsZS4gVGhlIG1hZ25pdHVkZSBvZiB0aGUgZmlyc3QsIGluIEp1bHksIHdhcyBlc3RpbWF0ZWQgYXQgTXfigK82LjksIGJ1dCB3YXMgYmFyZWx5IGZlbHQsIGFuZCBvbmx5IGluIHRocmVlIHBsYWNlcy4gSW4gT2N0b2JlciBhIE134oCvNy4xIHF1YWtlIGluIG5lYXJseSB0aGUgc2FtZSBsb2NhdGlvbiwgYnV0IHR3aWNlIGFzIGRlZXAgYW5kIG9uIGEgZGlmZmVyZW50IGtpbmQgb2YgZmF1bHQsIHdhcyBmZWx0IG92ZXIgYSBicm9hZCBhcmVhLCBpbmp1cmVkIG92ZXIgMzAwIHBlb3BsZSwgYW5kIGRlc3Ryb3llZCBvciBzZXJpb3VzbHkgZGFtYWdlZCBvdmVyIDEwLDAwMCBob3VzZXMuIEFzIGNhbiBiZSBzZWVuIGluIHRoZSB0YWJsZSBiZWxvdywgdGhpcyBkaXNwYXJpdHkgb2YgZGFtYWdlIGRvbmUgaXMgbm90IHJlZmxlY3RlZCBpbiBlaXRoZXIgdGhlIG1vbWVudCBtYWduaXR1ZGUgKE134oCvKSBub3IgdGhlIHN1cmZhY2Utd2F2ZSBtYWduaXR1ZGUgKE1z4oCvKS4gT25seSB3aGVuIHRoZSBtYWduaXR1ZGUgaXMgbWVhc3VyZWQgb24gdGhlIGJhc2lzIG9mIHRoZSBib2R5LXdhdmUgKG1i4oCvKSBvciB0aGUgc2Vpc21pYyBlbmVyZ3kgKE1l4oCvKSBpcyB0aGVyZSBhIGRpZmZlcmVuY2UgY29tcGFyYWJsZSB0byB0aGUgZGlmZmVyZW5jZSBpbiBkYW1hZ2UuIChhcyByZXNlYXJjaGVkIGJ5IENob3ksIEJvYXR3cmlnaHQgJiBLaXJieSAyMDAxLCBwLiAxMy4pLiBNdyA2Ljkgd2FzIGFjdHVhbGx5IE1lIDYuMSwgYW4gaW50ZXJwbGF0ZS10aHJ1c3QgdHlwZSBvZiBmYXVsdCwgd2hpbGUgTXcgNy4xIHdhcyBhY3R1YWxseSBhIDcuNSBNZSBpbnRyYXNsYWItbm9ybWFsIHR5cGUgb2YgZmF1bHQuDQoxOTk3OltSZXNlYXJjaF0gRHVyaW5nIHN1cnZleXMgY2FycmllZCBvdXQgYmV0d2VlbiAxOTk3IGFuZCAyMDAxLCBhIHNwb3Qgd2FzIGZvdW5kIGFsb25nIHRoZSBNYXJpYW5hIFRyZW5jaCB0aGF0IGhhZCBhIGRlcHRoIHNpbWlsYXIgdG8gdGhlIENoYWxsZW5nZXIgRGVlcCwgcG9zc2libHkgZXZlbiBkZWVwZXIuIEl0IHdhcyBkaXNjb3ZlcmVkIHdoaWxlIHNjaWVudGlzdHMgZnJvbSB0aGUgSGF3YWlpIEluc3RpdHV0ZSBvZiBHZW9waHlzaWNzIGFuZCBQbGFuZXRvbG9neSB3ZXJlIGNvbXBsZXRpbmcgYSBzdXJ2ZXkgYXJvdW5kIEd1YW07IHRoZXkgdXNlZCBhIHNvbmFyIG1hcHBpbmcgc3lzdGVtIHRvd2VkIGJlaGluZCB0aGUgcmVzZWFyY2ggc2hpcCB0byBjb25kdWN0IHRoZSBzdXJ2ZXkuIFRoaXMgbmV3IHNwb3Qgd2FzIG5hbWVkIHRoZSBITVJHIChIYXdhaWkgTWFwcGluZyBSZXNlYXJjaCBHcm91cCkgRGVlcCwgYWZ0ZXIgdGhlIGdyb3VwIG9mIHNjaWVudGlzdHMgd2hvIGRpc2NvdmVyZWQgaXQuDQoxOTk3OltTcGFjZVhdIEEgcmVzb2x2ZWQgY2lyY3Vtc3RlbGxhciBkaXNrIHdhcyBmaXJzdCBpZGVudGlmaWVkIGluIDE5OTcgd2l0aCB0aGUgT3dlbnMgVmFsbGV5IFJhZGlvIE9ic2VydmF0b3J5LiBUaGUgc2VtaS1tYWpvciBheGlzIHdhcyBpbml0aWFsbHkgZXN0aW1hdGVkIHRvIGJlIDExMCBBVS4gSEQgMTYzMjk2IGFuZCBzdXJyb3VuZGluZ3MgQ3JlZGl0OiBFU08vRGlnaXRpemVkIFNreSBTdXJ2ZXkgMjsgQWNrbm93bGVkZ2VtZW50OiBEYXZpZGUgRGUgTWFydGluIE9ic2VydmF0aW9uIGRhdGEgRXBvY2ggSjIwMDAgICAgICBFcXVpbm94IEoyMDAwIENvbnN0ZWxsYXRpb24JU2FnaXR0YXJpdXMgUmlnaHQgYXNjZW5zaW9uCTE3aCA1Nm0gMjEuMjlzIERlY2xpbmF0aW9uCeKIkjIxwrAgNTfigLIgMjEuODfigLMgQXBwYXJlbnQgbWFnbml0dWRlIChWKQk2Ljg1OyBDaGFyYWN0ZXJpc3RpY3MgRXZvbHV0aW9uYXJ5IHN0YWdlCUhlcmJpZyBBZSBzdGFyIFNwZWN0cmFsIHR5cGUJQTNWYWVrQTFtQTE7IEFzdHJvbWV0cnkgUmFkaWFsIHZlbG9jaXR5IChSdikJLTQuMDAgwrEzLjNbM10ga20vcyBQcm9wZXIgbW90aW9uICjOvCkJUkE6IC03LjU4NiDCsTAuMDQxIG1hcy95cjsgRGVjLjogLTM5LjQ1OCDCsTAuMDI5IG1hcy95cls0XSBQYXJhbGxheCAoz4ApCTkuOTA0M8KxMC4wNDA4IG1hc1s0XSBEaXN0YW5jZQkzMjkgwrEgMSBseSAoMTAxLjAgwrEgMC40IHBjKSBEZXRhaWxzOyBNYXNzCTEuOTXCsTAuMDcgTeKYiSBSYWRpdXMJMS44N8KxMC4wNSBS4piJIEx1bWlub3NpdHkJMjAuNCszLjYg4oiSMy4wIEzimIkgU3VyZmFjZSBncmF2aXR5IChsb2cgZykJNC4xMMKxMC4xMCBjZ3MgVGVtcGVyYXR1cmUJOTAwMMKxMjUwIEsgQWdlCTYuMDMrMC4yOCDiiJIwLjI3IE15ciBPdGhlciBkZXNpZ25hdGlvbnMgQkQtMjEgNDc3OSwgQ1BELTIxIDY1MDgsIEVNKiBNV0MgMjc1LCBISVAgODc4MTksIElSQVMgMTc1MzMtMjE1NiwgMk1BU1MgSjE3NTYyMTI4LTIxNTcyMTgsIFBEUyA0NzMsIFRZQyA2MjYyLTIxMzEtMSwgRGF0YWJhc2UgcmVmZXJlbmNlcyBTSU1CQUQNCjE5OTc6W1NwYWNlWF0gMTAxOTkgQ2hhcmlrbG8gaXMgYSByaW5nZWQgYXN0ZXJvaWQgb3IgY2VudGF1ciBpbiB0aGUgb3V0ZXIgU29sYXIgU3lzdGVtLiBJdCBpcyB0aGUgbGFyZ2VzdCBrbm93biBjZW50YXVyLCB3aXRoIGEgZGlhbWV0ZXIgb2YgYWJvdXQgMjUwIGttLiBJdCBvcmJpdHMgdGhlIFN1biBiZXR3ZWVuIFNhdHVybiBhbmQgVXJhbnVzIHdpdGggYW4gb3JiaXRhbCBwZXJpb2Qgb2YgNjIuNSB5ZWFycy4gV2lraXBlZGlhIE9yYml0YWwgcGVyaW9kOiA2MyB5ZWFycyBSYWRpdXM6IDE1MSBrbSBEaXNjb3ZlcmVkOiAxNSBGZWJydWFyeSAxOTk3IERpbWVuc2lvbnM6ICgyODcuNisyLjg7IOKIkjMuMCkgw5cgKDI3MC40KzIuODsg4oiSNS42KSDDlyAoMTk4LjIrMTAuODsg4oiSNS40KSBrbTogMTEgRGlzY292ZXJlcjogSmFtZXMgVi4gU2NvdHRpIFNwZWN0cmFsIHR5cGU6IEQtdHlwZSBhc3Rlcm9pZCBBcGhlbGlvbjogMTguNDIwIEFVDQoxOTk3OltTcGFjZVhdIFRoZSBHcmVhdCBEYXlsaWdodCBGaXJlYmFsbCAtIFRoZSBhdG1vc3BoZXJpYyBwYXNzIG1vZGlmaWVkIHRoZSBvYmplY3QncyBtYXNzIGFuZCBvcmJpdCBhcm91bmQgdGhlIFN1bi4gQSAxOTk0IHN0dWR5IGZvdW5kIHRoYXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgaW4gYW4gRWFydGgtY3Jvc3Npbmcgb3JiaXQgYW5kIHByZWRpY3RlZCB0aGF0IGl0IHdvdWxkIHBhc3MgY2xvc2UgdG8gRWFydGggYWdhaW4gaW4gQXVndXN0IDE5OTcuIEhvd2V2ZXIsIHRoZSBvYmplY3QgaGFzIG5vdCBiZWVuIG9ic2VydmVkIGFnYWluIGFuZCBzbyBpdHMgcG9zdC1lbmNvdW50ZXIgb3JiaXQgcmVtYWlucyB1bmtub3duLg0KMTk5NzpOYWZpc2EgSm9zZXBoIHdhcyB0aGUgeW91bmdlc3QgTWlzcyBJbmRpYSB3aW5uZXIgYXQgYWdlIDE5LCB3aW5uaW5nIHRoZSB0aXRsZSBpbiAxOTk3LiBTaGUgbGF0ZXIgYmVjYW1lIGEgbW9kZWwgYW5kIHRlbGV2aXNpb24gcGVyc29uYWxpdHkuIFdoaWxlIG90aGVyIHdpbm5lcnMgbGlrZSBNZWVuYWtzaGkgU2VzaGFkcmkgd2VyZSBhbHNvIDE3IHdoZW4gdGhleSB3b24gaW4gMTk4MSwgSm9zZXBoIGlzIG9mdGVuIGNpdGVkIGZvciBoZXIgZWFybHkgd2luIGF0IDE5LCB3aGljaCB3YXMgdGhlbiBhIHlvdW5nZXIgYWdlIHRoYW4gaXMgdHlwaWNhbGx5IHNlZW4gaW4gdGhlIGNvbXBldGl0aW9uLiANCjE5OTc6W3NwYWNlXVt0ZWNoXSBUaGUgZmluYWwgQmxvY2sgSUlBIHdhcyBpbiBOb3YgMTk5Nywgd2hpbGUgQmxvY2sgSUlScyBiZWdhbiByZXBsYWNpbmcgdGhlbSBzaG9ydGx5IGFmdGVyLCBsYXN0aW5nIHVudGlsIDIwMDQuIEJsb2NrIElJUiAoUmVwbGVuaXNobWVudCkgbGF1bmNoZXMgZm9sbG93ZWQgZnJvbSAxOTk3IHRvIDIwMDQsIHdpdGggdGhlIGZpcnN0IGxhdW5jaCBpbiBKYW51YXJ5IDE5OTcuIA0KDQoxOTk4OltTcGFjZVhdIFRoZSBwcmltYXJ5IGNvbnN0cnVjdGlvbiBwaGFzZSBvZiB0aGUgSW50ZXJuYXRpb25hbCBTcGFjZSBTdGF0aW9uIChJU1MpIHRvb2sgYXBwcm94aW1hdGVseSAxMyB5ZWFycywgZnJvbSAxOTk4IHRvIDIwMTEsIHdpdGggdGhlIGZpcnN0IG1vZHVsZSBsYXVuY2hpbmcgaW4gTm92ZW1iZXIgMTk5OCBhbmQgSVNTIEFzc2VtYmx5IENvbXBsZXRlIGRlY2xhcmVkIGluIE1heSAyMDExLiBIb3dldmVyLCBhc3NlbWJseSB3YXMgYSBjb250aW51b3VzLCBtdWx0aS1zdGFnZSBwcm9jZXNzIGludm9sdmluZyBtb3JlIHRoYW4gMzAgbWlzc2lvbnMsIG51bWVyb3VzIHNwYWNld2Fsa3MsIGFuZCByb2JvdGljIGFzc2lzdGFuY2UgdG8gYnVpbGQgdGhlIHN0YXRpb24gcGllY2UgYnkgcGllY2UgaW4gb3JiaXQuIEV2ZW4gYWZ0ZXIgMjAxMSwgdGhlIElTUyBjb250aW51ZWQgdG8gZXZvbHZlIHdpdGggb25nb2luZyBhZGRpdGlvbnMgYW5kIHVwZ3JhZGVzLg0KMTk5ODpbUmVzZWFyY2hdW1NwYWNlXSBTcHJpbmcsIDE5OTg6IGEgbWljcm9mb3NzaWwgdGhhdCB3YXMgZm91bmQgaW4gYSBtZXRlb3JpdGUgYW5kIHBob3RvZ3JhcGhlZCBpbiAxOTY2LCB3YXMgcmVjb2duaXplZCBieSBhIFJ1c3NpYW4gbWljcm9iaW9sb2dpc3QgYXMgYSBtYWduZXRvdGFjdGljIGJhY3Rlcml1bS4gQnkgRmFsbCwgMTk5ODogTkFTQSdzIHB1YmxpYyBwb3NpdGlvbiBvbiBsaWZlLWZyb20tc3BhY2Ugc2hpZnRlZCBkcmFtYXRpY2FsbHkuDQoxOTk4OiBBcyBhIHJlc2VhcmNoIHByb2plY3QgYXQgU3RhbmZvcmQgVW5pdmVyc2l0eSwgU2VyZ2V5IEJyaW4gYW5kIExhcnJ5IFBhZ2UgY3JlYXRlZCBhIHNlYXJjaCBlbmdpbmUgdGhhdCBsaXN0ZWQgcmVzdWx0cyBhY2NvcmRpbmcgdG8gdGhlIHBvcHVsYXJpdHkgb2YgdGhlIHBhZ2VzLCBhZnRlciBjb25jbHVkaW5nIHRoYXQgdGhlIG1vc3QgcG9wdWxhciByZXN1bHQgd291bGQgb2Z0ZW4gYmUgdGhlIG1vc3QgdXNlZnVsLiBBZnRlciByYWlzaW5nICQxIG1pbGxpb24gZnJvbSBmYW1pbHksIGZyaWVuZHMgYW5kIG90aGVyIGludmVzdG9ycywgdGhlIHBhaXIgbGF1bmNoZWQgdGhlIGNvbXBhbnkgaW4gMTk5OC4gR29vZ2xlIGhhcyBzaW5jZSBiZWNvbWUgdGhlIHdvcmxk4oCZcyBtb3N0IHBvcHVsYXIgc2VhcmNoIGVuZ2luZSwgcmVjZWl2aW5nIG1vcmUgdGhhbiAyMDAgbWlsbGlvbiBxdWVyaWVzIGVhY2ggZGF5Lg0KMTk5OCAoTm92IDIwKTogDQoxOTk4IChBcHIgMjcpOiBSUkIgZm91bmRlZCBhcyBSYWlsd2F5IFJlY3J1aXRtZW50IENvbnRyb2wgQm9hcmQgaXMgYSBnb3Zlcm5tZW50IG9yZ2FuaXNhdGlvbiBpbiBJbmRpYS4gSXQgd2FzIHNldCB1cCBpbiAxOTk4IGluIHRoZSBNaW5pc3RyeSBvZiBSYWlsd2F5cyAoUmFpbHdheSBCb2FyZCksIE5ldyBEZWxoaS5JbiAxOTQ1LCB0aGUgU2VydmljZXMgQ29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgYXQgQm9tYmF5LCBDYWxjdXR0YSwgTWFkcmFzIGFuZCBMdWNrbm93LiBJbiAxOTgzLCB0byBjYXRlciB0byB0aGUgbmVlZHMgb2YgYXJlYXMgd2hpY2ggd2VyZSBiZWluZyBuZWdsZWN0ZWQgZHVlIHRvIGxvY2F0aW9ucyBvZiB0aGUgZXhpc3RpbmcgY29tbWlzc2lvbnMsIHNldmVuIG1vcmUgY29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgdml6LCBhdCBBaG1lZGFiYWQsIEFqbWVyLCBCaG9wYWwsIEJodXZuZXNod2FyLCBDaGFuZGlnYXJoLCBKYW1tdSBhbmQgU3JpbmFnYXIgd2l0aCBzaXR0aW5nIGF0IExlaCBhbmQgVHJpdmVuZHJ1bS4gSW4gMTk4NCB0d28gbW9yZSBzZXJ2aWNlIGNvbW1pc3Npb25zIHdlcmUgc2V0IHVwIGF0IE1hbGRhIGFuZCBHb3Jha2hwdXIuDQoxOTk4IChNYXkgMTkpOiBBdGFsIEJpaGFyaSBWYWpwYXllZSBiZWNvbWVzIFBNIG9mIEluZGlhIGZvciB0aGUgc2Vjb25kIHRpbWUsIG5vdyBmb3IgNiB5ZWFycyB0aWxsIE1heSAyMiwgMjAwNC4gDQoxOTk4IChNYXkgMjggMTU6MTVQU1QpOiBDaGFnYWktSSBpcyB0aGUgY29kZSBuYW1lIG9mIGZpdmUgc2ltdWx0YW5lb3VzIHVuZGVyZ3JvdW5kIG51Y2xlYXIgdGVzdHMgY29uZHVjdGVkIGJ5IFBha2lzdGFuLiBUaGUgdGVzdHMgd2VyZSBwZXJmb3JtZWQgYXQgUmFzIEtvaCBIaWxscyBpbiB0aGUgQ2hhZ2FpIERpc3RyaWN0IG9mIEJhbG9jaGlzdGFuIFByb3ZpbmNlLiBDaGFnYWktSSB3YXMgUGFraXN0YW4ncyBmaXJzdCBwdWJsaWMgdGVzdCBvZiBudWNsZWFyIHdlYXBvbnMuIFBha2lzdGFuJ3MgZmlzc2lsZSBtYXRlcmlhbCBwcm9kdWN0aW9uIHRha2VzIHBsYWNlIGF0IE5pbG9yZSwgS2FodXRhLCBhbmQgS2h1c2hhYiBOdWNsZWFyIENvbXBsZXgsIHdoZXJlIHdlYXBvbnMtZ3JhZGUgcGx1dG9uaXVtIGlzIHJlZmluZWQuDQoxOTk4OiBBZnRlciBjb21wbGV0aW5nIGhpcyBYIHN0YW5kYXJkIGV4YW1pbmF0aW9ucywgUmFuYmlyIEthcG9vciwgYWdlZCAxNiwgd29ya2VkIGFzIGFuIGFzc2lzdGFudCBkaXJlY3RvciB0byBoaXMgZmF0aGVyIG9uIHRoZSBmaWxtIEFhIEFiIExhdXQgQ2hhbGVuICgxOTk5KSwgZHVyaW5nIHdoaWNoIGhlIGRldmVsb3BlZCBhIGNsb3NlciBib25kIHdpdGggaGltLg0KMTk4ODogTmV0d29ya2VkIERhdGEgUHJvY2Vzc2luZyBDb3IsIElvd2EgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBJbnN1cmFuY2UgZGl2aXNpb24uDQoxOTk4OltCb29rXSBSb2JlcnQgR3JlZW5lJ3MgVGhlIDQ4IExhd3Mgb2YgUG93ZXI7IFRoZSAzMyBTdHJhdGVnaWVzIG9mIFdhciAoMjAwNik7IE1hc3RlcnkgKDIwMTIsIE5vdiAxMyk7IFRoZSBMYXdzIG9mIEh1bWFuIE5hdHVyZSAoMjAxOCwgT2N0IDE2KQ0KMTk5ODpbU3BhY2VdW1Jlc2VhcmNoXVtFeHRyZW1lXSBUaGVuIGNhbWUgMTk5OCBhbmQgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgKEhTVCkgb2JzZXJ2YXRpb25zIG9mIHZlcnkgZGlzdGFudCBzdXBlcm5vdmFlIHRoYXQgc2hvd2VkIHRoYXQsIGEgbG9uZyB0aW1lIGFnbywgdGhlIHVuaXZlcnNlIHdhcyBhY3R1YWxseSBleHBhbmRpbmcgbW9yZSBzbG93bHkgdGhhbiBpdCBpcyB0b2RheS4gU28gdGhlIGV4cGFuc2lvbiBvZiB0aGUgdW5pdmVyc2UgaGFzIG5vdCBiZWVuIHNsb3dpbmcgZHVlIHRvIGdyYXZpdHksIGFzIGV2ZXJ5b25lIHRob3VnaHQsIGl0IGhhcyBiZWVuIGFjY2VsZXJhdGluZy4NCjE5OTg6W0NyaW1lXVtJbmRpYV0gQW5lZXMgYXJyZXN0ZWQgaW4gVUFFIG9uIGNoYXJnZXMgb2YgaGF2aW5nIG11cmRlcmVkIGEgZm9ybWVyIGFzc29jaWF0ZSBhbmQgdGhlbiByaXZhbCwgSXJmYW4gR29nYSwgaW4gRHViYWksIGJ1dCB3YXMgZnJlZWQgYWZ0ZXIgdHdvIGRheXMgZm9yICdsYWNrIG9mIGV2aWRlbmNlJy4NCjE5OTg6W0NvbXB1dGluZ11bUXVhbnR1bV0gUmVzZWFyY2hlcnMgYXQgSUJNLCBPeGZvcmQsIEJlcmtlbGV5LCBTdGFuZm9yZCwgYW5kIE1JVCBwcm9kdWNlZCBhIDItcXViaXQgY29tcHV0aW5nIHN5c3RlbS4NCjE5OTg6W3d3d10gV2lyZXNoYXJrIGlzIGEgZnJlZSBhbmQgb3Blbi1zb3VyY2UgcGFja2V0IGFuYWx5emVyLiBJdCBpcyB1c2VkIGZvciBuZXR3b3JrIHRyb3VibGVzaG9vdGluZywgYW5hbHlzaXMsIHNvZnR3YXJlIGFuZCBjb21tdW5pY2F0aW9ucyBwcm90b2NvbCBkZXZlbG9wbWVudCwgYW5kIGVkdWNhdGlvbi4gT3JpZ2luYWxseSBuYW1lZCBFdGhlcmVhbCwgdGhlIHByb2plY3Qgd2FzIHJlbmFtZWQgV2lyZXNoYXJrIGluIE1heSAyMDA2IGR1ZSB0byB0cmFkZW1hcmsgaXNzdWVzLg0KMTk5ODpbVVNdW0Vjb25vbXldRGF2aWQgUm9ja2VmZWxsZXIgU3IuIHdhcyBhd2FyZGVkIHRoZSBQcmVzaWRlbnRpYWwgTWVkYWwgb2YgRnJlZWRvbSBieSBQcmVzaWRlbnQgQmlsbCBDbGludG9uIGZvciBoaXMgd29yayBvbiBJbnRlcm5hdGlvbmFsIEV4ZWN1dGl2ZSBTZXJ2aWNlIENvcnBzLg0KMTk5ODpbRGVmXVtBdmlhdGlvbl0gVGhlIExvY2toZWVkIFNSLTcxIEJsYWNrYmlyZCBmbGV3IHNvIGhpZ2ggYW5kIHNvIGZhc3QgdGhhdCB0aGUgY3JldyBuZWVkZWQgcHJlc3N1cml6ZWQgc3BhY2Ugc3VpdHMgd2hlbiBmbHlpbmcgaXQuIEFuZCBpdCBpcyBzYWlkIHRoYXQgYXQgdGhlIG1heGltdW0gYWx0aXR1ZGUgb2YgaXQgaXQgd2FzIHBvc3NpYmxlIHRvIHNlZSB0aGUgY3VydmF0dXJlIG9mIHRoZSBlYXJ0aCwgd2hpY2ggcmVmZXJzIHRvIHRoaXMgcXVvdGUgYnkgQ29sb25lbCBBbGlzb246IOKAnE9uIGEgY2xlYXIgZGF5IHlvdSBjYW4gc2VlIGZvcmV2ZXLigKbigJ0uIFRoZSBzZXJ2aWNlIGNlaWxpbmcgb2YgODUsMDAwIGZlZXQgKDI1LDkwMG0pIG1lYW50IHRoYXQgaXQgd2FzIGFuIGV4Y2VsbGVudCBleHBlcmltZW50YWwgdW5pdCBmb3Igc3BhY2UgdHJhdmVscy4gVGhhdCwgY29tYmluZWQgd2l0aCB0aGUgZ3JlYXQgc3BlZWRzIG9mIGl0IHdhcyB0d28gb2YgdGhlIHJlYXNvbnMgd2h5IE5BU0EgZGVjaWRlZCB0byB0YWtlIG92ZXIgdGhlIGxhc3QgdHdvIEJsYWNrYmlyZHMgYWZ0ZXIgaXRzIHJldGlyZW1lbnQgZnJvbSB0aGUgQWlyIEZvcmNlIGluIDE5OTguIFRoaXMgbWVhbnMgdGhhdCB0aGUgd29ybGTigJlzIGZhc3Rlc3QgYWlyY3JhZnQgd2FzIGluIHNlcnZpY2UgZnJvbSAxOTY2IHVudGlsIE5BU0EgcmV0aXJlZCBpdHMgdHdvIHVuaXRzIGluIDE5OTksIGFuZCBtb3N0IG9mIHRoZSByZW1haW5pbmcgQmxhY2tiaXJkcyBhcmUgdG9kYXkgc3RhdGlvbmVkIGF0IG11c2V1bXMgb3IgbWlsaXRhcnkgYmFzZXMgYWNyb3NzIHRoZSBVUy4NCjE5OTg6SW4gMTk5OCwgR2F1dGFtIEFkYW5pLCBhbG9uZyB3aXRoIGhpcyBhc3NvY2lhdGUgU2hhbnRpbGFsIFBhdGVsLCB3YXMga2lkbmFwcGVkIGZvciByYW5zb20gaW4gQWhtZWRhYmFkLCBJbmRpYS4gVGhleSB3ZXJlIGFiZHVjdGVkIGF0IGd1bnBvaW50IGFmdGVyIGxlYXZpbmcgdGhlIEthcm5hdmF0aSBDbHViIGluIGEgY2FyLiBUaGUga2lkbmFwcGVycywgYWxsZWdlZGx5IGdhbmdzdGVycyBGYXpsdSBSZWhtYW4gYW5kIEJob2dpbGFsIERhcmppLCByZXBvcnRlZGx5IGRlbWFuZGVkIGEgcmFuc29tIG9mICQxLjUtMiBtaWxsaW9uLiBCb3RoIEFkYW5pIGFuZCBQYXRlbCB3ZXJlIHJlbGVhc2VkIGEgZGF5IGxhdGVyLCBidXQgaXQncyB1bmNsZWFyIGlmIHRoZSByYW5zb20gd2FzIHBhaWQuIA0KVGhlIGtpZG5hcHBpbmcgaW5jaWRlbnQgaGFwcGVuZWQgaW4gdGhlIG1pZC0xOTkwcywgYXJvdW5kIHRoZSB0aW1lIEFkYW5pJ3MgYnVzaW5lc3Mgc3VjY2Vzc2VzIHN0YXJ0ZWQgYXR0cmFjdGluZyB1bndhbnRlZCBhdHRlbnRpb24uIFRoZSBraWRuYXBwaW5nIHdhcyBhbGxlZ2VkbHkgY2FycmllZCBvdXQgYnkgRmF6bHUgUmVobWFuIGFuZCBCaG9naWxhbCBEYXJqaSwgYWxzbyBrbm93biBhcyAiTWFtYSIuIFRoZXkgd2VyZSBsYXRlciBhY3F1aXR0ZWQgZHVlIHRvIGxhY2sgb2YgZXZpZGVuY2UuIA0KVGhlIGFiZHVjdGlvbiBpcyBqdXN0IG9uZSBvZiB0aGUgY2hhbGxlbmdlcyBBZGFuaSBoYXMgZmFjZWQuIEhlIHdhcyBhbHNvIGNhdWdodCBpbiB0aGUgMjYvMTEgTXVtYmFpIHRlcnJvciBhdHRhY2tzIGF0IHRoZSBUYWogSG90ZWwuIE1vcmUgcmVjZW50bHksIGhlIGhhcyBmYWNlZCBhY2N1c2F0aW9ucyBvZiBicmliZXJ5IGFuZCBzZWN1cml0aWVzIGZyYXVkLiANCkFkYW5pIGFuZCBvdGhlcnMgd2VyZSBlc2NvcnRlZCBieSBzdGFmZiB0byB0aGUga2l0Y2hlbiBhbmQgdGhlbiB0aGUgYmFzZW1lbnQuIFRoZXkgc3BlbnQgdGhlIGVudGlyZSBuaWdodCBpbiBhIGhhbGwgd2FpdGluZyBmb3IgcmVzY3VlLiBBZGFuaSBsYXRlciB0b2xkIG5ld3MgY2hhbm5lbHMgdGhhdCBoZSBzYXcg4oCcZGVhdGggYXQgYSBkaXN0YW5jZSBvZiBqdXN0IDE1IGZlZXQu4oCdIEhlIHdhcyByZXNjdWVkIHRoZSBuZXh0IG1vcm5pbmcgYnkgc2VjdXJpdHkgZm9yY2VzLg0KMTk5ODpbRW52XVtEaXNhc3Rlcl0gRWFzdGVybiBJbmRpYSwgMTk5OCBCYW5nbGFkZXNoIGZsb29kOyA0ayBkZWF0aHMNCjE5OTg6W1dob11bUmVzZWFyY2hdW0NvbXB1dGluZ11bVGVjaF1bQ3VsdHVyZV0gSW50ZXJuZXQgRG93bmxvYWQgTWFuYWdlciAoSURNKSB3YXMgZGV2ZWxvcGVkIGJ5IFRvbmVjIEluYy4sIGFuIEFtZXJpY2FuIGNvbXBhbnkgdGhhdCBzdGFydGVkIHRoZSBwcm9qZWN0IGluIDE5OTggYW5kIHJlbGVhc2VkIHRoZSBzb2Z0d2FyZSBpbiAyMDAxLiBUb25lYyBJbmMuIGZvY3VzZXMgb24gbmV0d29yayBwcm9ncmFtbWluZyBhbmQgY3JlYXRlZCBJRE0gdG8gc3BlZWQgdXAgZG93bmxvYWRzIGJ5IHVzaW5nIGR5bmFtaWMgZmlsZSBzZWdtZW50YXRpb24sIGFjY2VsZXJhdGluZyBzcGVlZHMgYnkgdXAgdG8gOCB0aW1lcy4gDQoNCjE5OTk6NCBKYW51YXJ5IDE5OTk6IE5BU0Egb2ZmaWNpYWxseSByZWNvZ25pemVkIHRoZSBwb3NzaWJpbGl0eSB0aGF0IGxpZmUgb24gRWFydGggY29tZXMgZnJvbSBzcGFjZS4NCjE5IE1hcmNoIDE5OTk6IE5BU0Egc2NpZW50aXN0cyBhbm5vdW5jZWQgdGhhdCB0d28gbW9yZSBtZXRlb3JpdGVzIGhvbGQgZXZlbiBzdHJvbmdlciBmb3NzaWxpemVkIGV2aWRlbmNlIGZvciBwYXN0IGxpZmUgb24gTWFycy4NCjE5OTk6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEcyMCBvciBHcm91cCBvZiAyMCBpcyBhbiBpbnRlcmdvdmVybm1lbnRhbCBmb3J1bSBjb21wcmlzaW5nIDE5IHNvdmVyZWlnbiBjb3VudHJpZXMsIHRoZSBFdXJvcGVhbiBVbmlvbiwgYW5kIHRoZSBBZnJpY2FuIFVuaW9uLiBGb3VuZGVkOiAyNiBTZXB0ZW1iZXIgMTk5OTsgQ2hhaXJtYW4gKEluY3VtYmVudCk6IEN5cmlsIFJhbWFwaG9zYSwgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYQ0KMTk5OTogVGhlIHRlcm0gV2ktRmkgd2FzIGludmVudGVkIGJ5IEludGVyYnJhbmQgKGFuIGFtZXJpY2FuIGJyYW5kIGNvbnN1bHRhbmN5IGNvbXBhbnkpIGFzIGEgcHVuIHVwb24gdGhlIHdvcmQgaGktZmkuDQpXaS1GaSBBbGxpYW5jZSBmb3JtZWQgYXMgYSB0cmFkZSBhc3NvY2lhdGlvbiB0byBob2xkIHRoZSBXaS1GaSB0cmFkZW1hcmsgdW5kZXIgd2hpY2ggbW9zdCBwcm9kdWN0cyBhcmUgc29sZC4NCjE5OTk6IHRoZSB0ZXJtDQoxOTk5OiBJc2xhbWljIFN0YXRlIG9mIElyYXEgYW5kIHRoZSBMZXZhbnQgKGFsc28ga25vd24gYXMgdGhlIElzbGFtaWMgU3RhdGUgb2YgSXJhcSBhbmQgU3lyaWEsIElzbGFtaWMgU3RhdGUsIG9yIGNvbW1vbmx5LCBJU0lTKSBmb3VuZGVkIGFzIEphbWEnYXQgYWwtVGF3aGlkIHdhbC1KaWhhZCBieSBBYnUgTXVzYWIgYWwtWmFycWF3aSBIUSdkIGF0ICBBbC1SYXFxYWguDQoxOTk5IChBcHIgMTIpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBJIFdhbnQgSXQgVGhhdCBXYXkuDQoxOTk5IChBcHIgMTgpOiBDT05DRVJUIGJlY2FtZSBvcGVyYXRpb25hbC4gSXQgd2FzIGRldmVsb3BlZCB1c2luZyBjbGllbnQtc2VydmVyIG1vZGVsIGZvciBkaXN0cmlidXRlZCBjb21wdXRpbmcgaXMgYSB0b3RhbCBzb2x1dGlvbiB0byB0aGUgbmV0d29ya2luZyBvZiB0aGUgUFJTcy4gQWxsIHRoZSBmaXZlIHNpdGVzIGhhdmUgYmVlbiBpbnRlcm5ldC13b3JrZWQgb3ZlciBhIDY0IGticHMgbGluZSB1c2luZyByb3V0ZXJzLCBvbiBsZWFzZWQgY29tbXVuaWNhdGlvbiBsaW5lIGNvbm5lY3Rpb25zIGZyb20gRGVwYXJ0bWVudCBvZiBUZWxlY29tIChET1QpLg0KMTk5OTogQ3JlZGl0IGNhcmRzIGFjY2VwdGVkIGZvciBib29raW5nIHRpY2tldHMgYW5kIHJlc2VydmF0aW9ucyBpbiBzb21lIHN0YXRpb25zIChpbmNsdWRpbmcgTXVtYmFpIENTVCkuDQoxOTk5IChNYXkgMSk6W0Jvb2tdIFJvYmVydCBLaXlvc2FraSAmIFNoYXJvbiBMZWNodGVyJ3MgUmljaCBEYWQncyBDYXNoZmxvdyBRdWFkcmFudDogUmljaCBEYWQncyBHdWlkZSB0byBGaW5hbmNpYWwgRnJlZWRvbTsgUmljaCBEYWQncyBHdWlkZSB0byBJbnZlc3Rpbmc6IFdoYXQgdGhlIFJpY2ggSW52ZXN0IGluIFRoYXQgdGhlIFBvb3IgYW5kIE1pZGRsZSBDbGFzcyBEbyBOb3QhICgyMDAxLCBKYW4gMSk7IFRoZSBSZWFsIEJvb2sgb2YgUmVhbCBFc3RhdGU6IFJlYWwgRXhwZXJ0cy4gUmVhbCBTdG9yaWVzLiBSZWFsIExpZmUuICgyMDA5LCBNYXkgMTIpOyBSaWNoIEtpZCBTbWFydCBLaWQ6IEdpdmluZyBZb3VyIENoaWxkIGEgRmluYW5jaWFsIEhlYWQgU3RhcnQgKDIwMDEsIEphbiAxKTsgDQoxOTk5IChNYXkgMTgpOltNdXNpY10gTWlsbGVubml1bSBpcyB0aGUgdGhpcmQgc3R1ZGlvIGFsYnVtIChzZWNvbmQgaW4gdGhlIFVuaXRlZCBTdGF0ZXMpIGJ5IEFtZXJpY2FuIGJveSBiYW5kIEJhY2tzdHJlZXQgQm95cywgcmVsZWFzZWQgYnkgSml2ZSBSZWNvcmRzLg0KMTk5OSAoRnJpLCAyNCBEZWMpOiBJbmRpYW4gQWlybGluZXMgRmxpZ2h0IDgxNCBjb21tb25seSBrbm93biBhcyBJQyA4MTQgd2FzIGFuIEluZGlhbiBBaXJsaW5lcyBBaXJidXMgQTMwMCBlbiByb3V0ZSBmcm9tIFRyaWJodXZhbiBJbnRlcm5hdGlvbmFsIEFpcnBvcnQgaW4gS2F0aG1hbmR1LCBOZXBhbCB0byBJbmRpcmEgR2FuZGhpIEludGVybmF0aW9uYWwgQWlycG9ydCBpbiBEZWxoaSwgSW5kaWEgd2FzIGhpamFja2VkLiBIYXJrYXQtdWwtTXVqYWhpZGVlbiB3YXMgYWNjdXNlZCBvZiB0aGUgaGlqYWNraW5nLg0KMTk5OTogSVJDVEMNCjE5OTkgKEF1Zyk6IEJvb2tNeVNob3cNCjE5OTkgKFNlcCAxNCk6IFtHZW9Qb2xpdGljc10gVGhlIENvbmZlcmVuY2Ugb24gSW50ZXJhY3Rpb24gYW5kIENvbmZpZGVuY2UtQnVpbGRpbmcgTWVhc3VyZXMgaW4gQXNpYSAoQ0lDQSkgaXMgYW4gaW50ZXItZ292ZXJubWVudGFsIGZvcnVtIGZvciBlbmhhbmNpbmcgY29vcGVyYXRpb24gdG93YXJkcyBwcm9tb3RpbmcgcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYS4gSXQgaXMgYSBmb3J1bSBiYXNlZCBvbiB0aGUgcmVjb2duaXRpb24gdGhhdCB0aGVyZSBpcyBjbG9zZSBsaW5rIGJldHdlZW4gcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYSBhbmQgaW4gdGhlIHJlc3Qgb2YgdGhlIHdvcmxkLiBUaGUga2V5IGlkZWEgb2YgdGhlIENvbmZlcmVuY2UgaXMgYmFzZWQgb24gdGhlIHByaW9yaXR5IG9mIHRoZSBpbmRpdmlzaWJpbGl0eSBvZiBzZWN1cml0eSwgam9pbnQgaW5pdGlhdGl2ZSBhbmQgbXV0dWFsbHkgYmVuZWZpY2lhbCBpbnRlcmFjdGlvbiBvZiBzbWFsbCBhbmQgbGFyZ2Ugc3RhdGVzLg0KMTk5OTogTm9ibGUgRWR1Y2F0aW9uIFNvY2lldHkncyBOb2JsZSBQdWJsaWMgU2Nob29sIChOUFMpLCBHYWpyYXVsYSBmb3VuZGVkIHdpdGggMjEzMDYyNyBhcyBpdHMgQ0JTRSBBZmZpbGlhdGlvbiBuby4NCjE5OTk6IGZpcnN0IC53bWEgZmlsZSBjcmVhdGVkDQoxOTk5OiBOYXBzdGVyIGZvdW5kZWQuDQoxOTk5IChEZWMgMTQpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBTaG93IE1lIHRoZSBNZWFuaW5nIG9mIEJlaW5nIExvbmVseS4gDQoxOTk5OltNdXNpY10gRHIuIERyZSBmdC4gU25vb3AgRG9nZydzIFN0aWxsIEQuUi5FLg0KMTk5OTpbQ3VsdHVyZV0gVGhlIENpdHRhc2xvdyBvcmdhbml6YXRpb24gd2FzIGNyZWF0ZWQgYnkgUGFvbG8gU2F0dXJuaW5pLCB0aGUgZm9ybWVyIG1heW9yIG9mIEdyZXZlIGluIENoaWFudGksIEl0YWx5LiBTYXR1cm5pbmkgd2FzIGluc3BpcmVkIGJ5IENhcmxvIFBldHJpbmkgYW5kIGhpcyBTbG93IEZvb2QgbW92ZW1lbnQsIHN0YXJ0ZWQgaW4gdGhlIDE5ODBzIHRvIHByb3Rlc3QgdGhlIGZpcnN0IE1jRG9uYWxkJ3MgY2hhaW4gaW4gUm9tZS4gU2luY2UgdGhlbiwgdGhlIENpdHRhc2xvdyBtb3ZlbWVudCBoYXMgZ3Jvd24gYWNyb3NzIGZvdXIgY29udGluZW50cywgd2l0aCAyNjIgcGFydGljaXBhdGluZyB0b3ducyBhcyBvZiAyMDIwLiANCjE5OTk6W01hbmFnZW1lbnRdW0J1c2luZXNzXVtQc3ljaG9sb2d5XVtSZXNlYXJjaF0gRHVubmluZyBhbmQgS3J1Z2VyIEVmZmVjdDogRGF2aWQgRHVubmluZyBhbmQgSnVzdGluIEtydWdlciBwdWJsaXNoZWQgdGhlIGluaXRpYWwgc3R1ZHkgaW4gMTk5OSB1bmRlciB0aGUgdGl0bGUgIlVuc2tpbGxlZCBhbmQgVW5hd2FyZSBvZiBJdDogSG93IERpZmZpY3VsdGllcyBpbiBSZWNvZ25pemluZyBPbmUncyBPd24gSW5jb21wZXRlbmNlIExlYWQgdG8gSW5mbGF0ZWQgU2VsZi1Bc3Nlc3NtZW50cyIuDQoxOTk5OltSZXNlYXJjaF0gUmVzZWFyY2ggYnkgVVMgTmF0aW9uYWwgUmVzZWFyY2ggQ291bmNpbC4gV2F0ZXIgZnJvbSB1bmRlcmdyb3VuZCBzb3VyY2VzIG1heSBjb250YWluIHNpZ25pZmljYW50IGFtb3VudHMgb2YgcmFkb24gZGVwZW5kaW5nIG9uIHRoZSBzdXJyb3VuZGluZyByb2NrIGFuZCBzb2lsIGNvbmRpdGlvbnMsIHdoZXJlYXMgc3VyZmFjZSBzb3VyY2VzIGdlbmVyYWxseSBkbyBub3QuDQoxOTk5OltOU0VdIEluY29ycG9yYXRlZCBpbiAxOTk5LCBJUkNUQyBpcyBhIE1pbmkgUmF0bmEgKENhdGVnb3J5IDEsIENlbnRyYWwgUHVibGljIFNlY3RvciBFbnRlcnByaXNlcyApIGFuZCB0aGUgb25seSBjb21wYW55IGF1dGhvcml6ZWQgYnkgdGhlIEluZGlhbiBnb3Zlcm5tZW50IHRvIHByb3ZpZGUgb25saW5lIHJhaWx3YXkgdGlja2V0cywgY2F0ZXJpbmcgc2VydmljZXMsIGFuZCBwYWNrYWdlZCBkcmlua2luZyB3YXRlciBhdCByYWlsd2F5IHN0YXRpb25zIGFuZCB0cmFpbnMgaW4gSW5kaWEuDQoxOTk5OltNbnRuZ2ddW0Jvb2tdIFN0ZXZlIEhvdXNlIGlzIGEgd29ybGQtcmVub3duZWQgY2xpbWJlciwgbW91bnRhaW4gZ3VpZGUgYW5kIFBhdGFnb25pYSBhbWJhc3NhZG9yLCB3aWRlbHkgcmVnYXJkZWQgZm9yIGhpcyBjbGVhbiwgbGlnaHQtYW5kLWZhc3Qgc3R5bGUuIEhlIGhhcyBwdWJsaXNoZWQgYXJ0aWNsZXMgaW4gYSBudW1iZXIgb2YgcGVyaW9kaWNhbHMgaW5jbHVkaW5nOiBBbHBpbmlzdCwgUm9jayBhbmQgSWNlLCBDbGltYmluZywgVGhlIEFtZXJpY2FuIEFscGluZSBKb3VybmFsLCBHcmlwcGVkLCBDYW5hZGlhbiBBbHBpbmUgSm91cm5hbCwgQ2xpbWIsIFZlcnRpY2FsLCBNb250YWduZXMsIFJpc2ssIEFscCssIENhbXBvIEJhc2UsIERlc25pdmVsLCBhbmQgU3RpbGUgQWxwaW4uIEhpcyBlc3NheXMgaGF2ZSBiZWVuIHB1Ymxpc2hlZCBpbiBzZXZlcmFsIGJvb2tzIGluY2x1ZGluZzsgQ29udGFjdDogTW91bnRhaW4gQ2xpbWJpbmcgYW5kIEVudmlyb25tZW50YWwgVGhpbmtpbmc7IFNvbHRhcmksIGEgY29sbGVjdGlvbiBvZiBlc3NheXMgYWJvdXQgc29sbyBjbGltYmluZyBwdWJsaXNoZWQgaW4gSXRhbGlhbjsgQmVyZywgYSBHZXJtYW4gYm9vayBhYm91dCBjbGltYmluZyBpbiB0aGUgSGltYWxheWE7IGFuZCBhbiB1cGNvbWluZyBib29rIGFib3V0IE5hbmdhIFBhcmJhdCBlZGl0ZWQgYnkgUmVpbmhvbGQgTWVzc25lci4gSGUgaGFzIHdvcmtlZCBhcyBhIFBhdGFnb25pYSBhbHBpbmUgYW1iYXNzYWRvciBzaW5jZSAxOTk5LiBQdWJsaXNoZWQ6IFRyYWluaW5nIGZvciB0aGUgTmV3IEFscGluaXNtOiBBIE1hbnVhbCBmb3IgdGhlIENsaW1iZXIgYXMgQXRobGV0ZSBQYXBlcmJhY2sg4oCTIElsbHVzdHJhdGVkLCAzIEFwcmlsIDIwMTQNCjE5OTk6W01udG5nZ10gQ29ucmFkIEFua2VyIChib3JuIE5vdmVtYmVyIDI3LCAxOTYyKSBpcyBhbiBBbWVyaWNhbiByb2NrIGNsaW1iZXIsIG1vdW50YWluZWVyLCBhbmQgYXV0aG9yLiBIZSB3YXMgdGhlIHRlYW0gbGVhZGVyIG9mIFRoZSBOb3J0aCBGYWNlIGNsaW1iaW5nIHRlYW0gZm9yIDI2IHllYXJzIHVudGlsIDIwMTguWzJdIEluIDE5OTksIGhlIGxvY2F0ZWQgR2VvcmdlIE1hbGxvcnkncyBib2R5IG9uIEV2ZXJlc3QgYXMgYSBtZW1iZXIgb2YgYSBzZWFyY2ggdGVhbSBsb29raW5nIGZvciB0aGUgcmVtYWlucyBvZiB0aGUgQnJpdGlzaCBjbGltYmVyIHdobyB3YXMgbGFzdCBzZWVuIGluIDE5MjQuDQoxOTk5OlRoZSBQaXBpc3RyZWwgVmlydXMgZmxldyBmb3IgdGhlIGZpcnN0IHRpbWUgb24gQXVndXN0IDEwLCAxOTk5LiBQcm9kdWN0aW9uIGJlZ2FuIG9uIEphbnVhcnkgMjAsIDIwMDAuIFRoZSBkZXZlbG9wbWVudCBvZiB0aGUgc2hvcnQgd2luZyB2ZXJzaW9uIHN0YXJ0ZWQgaW4gMjAwNy4gVGhlIFZpcnVzIFNXIHByb2R1Y3Rpb24gc3RhcnRlZCBpbiAyMDA4LiBUaGUgVmlydXMgd29uIHRoZSBOQVNBIDIwMDcgUGVyc29uYWwgQWlyIFZlaGljbGUgKFBBVikgQ2hhbGxlbmdlIGFuZCB0aGUgMjAwOCBHZW5lcmFsIEF2aWF0aW9uIFRlY2hub2xvZ3kgKEdBVCkgQ2hhbGxlbmdlLg0KMTk5OTpbc2lsdmljc10gU3VzdGFpbmFibGUgUHJhY3RpY2VzOiBSZXNlYXJjaCBpbiB0aGUgMjB0aCBjZW50dXJ5IHZhbGlkYXRlZCB0aGF0IHNlY29uZC1ncm93dGggc3RhbmRzIGNvdWxkIGJlIHN1c3RhaW5hYmx5IG1hbmFnZWQgdGhyb3VnaCB0ZWNobmlxdWVzIGxpa2UgdGhlIHNlZWQgdHJlZSBtZXRob2QuIFRvZGF5LCBzaWx2aWN1bHR1cmUgZm9jdXNlcyBvbiBjb21wbGV4IHN0YW5kIHN0cnVjdHVyZXMsIGJhbGFuY2luZyBjb21tZXJjaWFsIGRlbWFuZCB3aXRoIGVudmlyb25tZW50YWwgc3Rld2FyZHNoaXAuIA0KDQoyMXN0IGNlbnR1cnkgQ0Ugc3RhcnRlZCBvbiAxc3QgSmFuIDIwMDEgQUQuDQoNCjIwMDBzOltSZXNlYXJjaF0gVGhlIGNsYWltIHRoYXQgIndlIGFyZSA2MCUgYmFuYW5hIiAob3Igc2hhcmUgNjAlIG9mIG91ciBETkEpIGlzIGEgcG9wdWxhciwgeWV0IG9mdGVuIG1pc2ludGVycHJldGVkLCBzdGF0aXN0aWMgdGhhdCBvcmlnaW5hdGVkIGZyb20gY29tcGFyaXNvbnMgb2YgcHJvdGVpbi1jb2RpbmcgZ2VuZXMsIGxpa2VseSBwb3B1bGFyaXplZCBpbiB0aGUgZWFybHkgMjAwMHMgZm9sbG93aW5nIHByZWxpbWluYXJ5IHN0dWRpZXMgb2YgdGhlIGJhbmFuYSBnZW5vbWUuIEl0IHJlZmVycyB0byBhYm91dCA2MCUgb2YgaHVtYW4gZ2VuZXMgaGF2aW5nIGEgcmVjb2duaXphYmxlIGNvdW50ZXJwYXJ0IGluIGJhbmFuYXMsIG5vdCA2MCUgb2Ygb3VyIHRvdGFsIEROQS4gDQpNYW55IG9mIHRoZSDigJxob3VzZWtlZXBpbmfigJ0gZ2VuZXMgdGhhdCBhcmUgbmVjZXNzYXJ5IGZvciBiYXNpYyBjZWxsdWxhciBmdW5jdGlvbiwgc3VjaCBhcyBmb3IgcmVwbGljYXRpbmcgRE5BLCBjb250cm9sbGluZyB0aGUgY2VsbCBjeWNsZSwgYW5kIGhlbHBpbmcgY2VsbHMgZGl2aWRlIGFyZSBzaGFyZWQgYmV0d2VlbiBtYW55IHBsYW50cyAoaW5jbHVkaW5nIGJhbmFuYXMpIGFuZCBhbmltYWxzLldoaWxlIDYwJSBvZiBnZW5lcyBoYXZlIGNvdW50ZXJwYXJ0cywgdGhlc2UgZXNzZW50aWFsIGdlbmVzIG1ha2UgdXAgb25seSBhIHNtYWxsIGZyYWN0aW9uIG9mIHRoZSB0b3RhbCBnZW5vbWU7IGh1bWFucyBhbmQgYmFuYW5hcyBhcmUgbm90IDYwJSBpZGVudGljYWwgb3ZlcmFsbC4gDQpUaGUgcGhyYXNlIGlzIGVzc2VudGlhbGx5IGEgc2ltcGxpZmllZCwgb2Z0ZW4tZXhhZ2dlcmF0ZWQsIHdheSBvZiBoaWdobGlnaHRpbmcgdGhhdCBhbGwgbGlmZSBzaGFyZXMgY29tbW9uIGFuY2VzdHJhbCBnZW5lcyBmb3IgYmFzaWMgY2VsbHVsYXIgcHJvY2Vzc2VzLiANCjIwMDBzOltNQkFdIFNob3VsZCBDb3N0IE1vZGVsaW5nOiBNb2Rlcm4gIlNob3VsZCBDb3N0IiBtb2RlbHMgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBpZGVhbCBjb3N0IG9mIGEgcHJvZHVjdCwgYWNjb3VudGluZyBmb3IgbGFib3IsIG1hdGVyaWFscywgYW5kIG92ZXJoZWFkLiBFbnZpcm9ubWVudGFsICYgU29jaWFsIEltcGFjdDogTW9kZXJuIENCQSBub3cgcm91dGluZWx5IGluY2x1ZGVzIGVudmlyb25tZW50YWwgYW5kIHNvY2lhbCBpbXBhY3RzIGluIGFkZGl0aW9uIHRvIGZpbmFuY2lhbCBvbmVzLiBTaGlmdCBmcm9tIExvY2FsIHRvIEdsb2JhbDogRWFybHksIGhpZ2hseSBsb2NhbCBhc3Nlc3NtZW50cyBldm9sdmVkIGludG8gbGFyZ2Utc2NhbGUsIG5hdGlvbmFsLCBhbmQgaW50ZXJuYXRpb25hbCBDQkEuIFJlZmluZW1lbnQgb2YgVGVjaG5pcXVlczogTW92aW5nIGZyb20gc2ltcGxlLCBzaW5nbGUtcGVyaW9kIG1vZGVscyB0byBjb21wbGV4LCBtdWx0aS1wZXJpb2Qgc2ltdWxhdGlvbnMuIEluY3JlYXNlZCBEYXRhIFVzZTogVGhlIGF2YWlsYWJpbGl0eSBvZiBsYXJnZSwgZ3JhbnVsYXIgZGF0YSBzZXRzIGhhcyBhbGxvd2VkIGZvciBtb3JlIHByZWNpc2UgYW5kIHJlbGlhYmxlIGFuYWx5c2lzLiANCjIwMDBzOltNbnRuZ2ddW0V4dHJlbWVdIEluIHRoZSBlYXJseSAyMDAwcywgRGlkaWVyIEJlcnRob2Qgd2FzIHRoZSBiZXN0IGNyYWNrIGNsaW1iZXIgaW4gdGhlIHdvcmxkLCB0aGVuIGhlIGRyb3BwZWQgb3V0IG9mIGNsaW1iaW5nIGFuZCBlc3NlbnRpYWxseSBkaXNhcHBlYXJlZCBmcm9tIHRoZSB3b3JsZC4NCjIwMDBzOltSZWFsdHldIEVhcmx5IDIwMDBzOiBSZWFsIGVzdGF0ZSB3YXMgaW4gaXRzIGVhcmx5IHN0YWdlcyBpbiBJbmRpYSwgd2l0aCBncmFkdWFsIGdyb3d0aCBhbmQgZGV2ZWxvcG1lbnQuIA0KMjAwMHM6VGVhbXdvcmsgaXMgbm93IGFuIGludGVncmFsIHBhcnQgb2Ygb3JnYW5pemF0aW9uYWwgc3RyYXRlZ3ksIHdpdGggYSBncmVhdGVyIGVtcGhhc2lzIG9uIGN1c3RvbWl6YXRpb24sIHBlcnNvbmFsaXphdGlvbiwgYW5kIHN0cmF0ZWdpYyBpbnRlZ3JhdGlvbiBvZiB0ZWFtLWJ1aWxkaW5nIHByYWN0aWNlcy4gVGhlIHJpc2Ugb2YgdGVjaG5vbG9neSBoYXMgYWxzbyBpbmZsdWVuY2VkIHRlYW13b3JrLCB3aXRoIHJlbW90ZSB3b3JrIGJlY29taW5nIG1vcmUgcHJldmFsZW50IGFuZCBuZXcgdG9vbHMgZW1lcmdpbmcgdG8gZmFjaWxpdGF0ZSBjb2xsYWJvcmF0aW9uLiANCg0KMjAwMDpbVVNdW0dlb1BvbGl0aWNzXSBvdmVydGhyb3cgb2YgU2xvYm9kYW4gTWlsb8WhZXZpxIcuIChVUydzIGludm9sdmVtZW50IGluIHJlZ2ltZSBjaGFuZ2UpDQoyMDAwOiBbR2VvUG9saXRpY3NdW01pbGl0YXJ5XVtFY29ub21pY3NdIFRoZSBVUyBEb2xsYXIgaG9sZHMgYSA3MiUgc2hhcmUgb2YgYWxsIGdsb2JhbCBjdXJyZW5jeSByZXNlcnZlcyBbWzE2OjQyXShodHRwOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dllKcmkxZU5SeWMmdD0xMDAyKV0uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdIDI2IEFwcmlsIDIwMDA6IHRoZSBHZXJtYW4gdGVhbSBvcGVyYXRpbmcgdGhlIG1hc3Mgc3BlY3Ryb21ldGVyIG9uIE5BU0EncyBTdGFyZHVzdCBtaXNzaW9uIGFubm91bmNlZCB0aGUgZGV0ZWN0aW9uIG9mIHZlcnkgbGFyZ2Ugb3JnYW5pYyBtb2xlY3VsZXMgaW4gaW50ZXJzdGVsbGFyIHNwYWNlLiBOb25iaW9sb2dpY2FsIHNvdXJjZXMgZm9yIG9yZ2FuaWMgbW9sZWN1bGVzIHNvIGxhcmdlIGFyZSBub3Qga25vd24uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdMTkgT2N0b2JlciAyMDAwLCBhIHRlYW0gb2YgYmlvbG9naXN0cyBhbmQgYSBnZW9sb2dpc3QgYW5ub3VuY2VkIHRoZSByZXZpdmFsIG9mIGJhY3RlcmlhIHRoYXQgYXJlIDI1MCBtaWxsaW9uIHllYXJzIG9sZCwgc3RyZW5ndGhlbmluZyB0aGF0IGNhc2UgdGhhdCBiYWN0ZXJpYWwgc3BvcmVzIGNhbiBiZSBpbW1vcnRhbC4NCjEzIERlY2VtYmVyIDIwMDA6IGEgTkFTQSB0ZWFtIGRlbW9uc3RyYXRlZCB0aGF0IHRoZSBtYWduZXRvc29tZXMgaW4gTWFycyBtZXRlb3JpdGUgQUxIIDg0MDAxIGFyZSBiaW9sb2dpY2FsLg0KMjAwMDpbUmVzZWFyY2hdW1NwYWNlXSBNaWxlaWtvd3NreSBDLCBDdWNpbm90dGEgRkEsIFdpbHNvbiBKVywgR2xhZG1hbiBCLCBIb3JuZWNrIEcsIExpbmRlZ3JlbiBMLCBNZWxvc2ggSiwgUmlja21hbiBILCBWYWx0b25lbiBNLCBaaGVuZyBKUS4gTmF0dXJhbCB0cmFuc2ZlciBvZiB2aWFibGUgbWljcm9iZXMgaW4gc3BhY2UuIEljYXJ1cyAyMDAwLCAxNDU6Mzkx4oCTNDI3LiBbRE9JXSBbUHViTWVkXSBbR29vZ2xlIFNjaG9sYXJdDQoyMDAwOltTcGFjZVhdIFMvMjAwMCAoOTApIDEgTW9vbiBEaXNjb3ZlcmVyOiBXaWxsaWFtIEouIE1lcmxpbmUgT3JiaXRzOiA5MCBBbnRpb3BlIEFic29sdXRlIG1hZ25pdHVkZTogOS4wMg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gZGVtb25zdHJhdGVkIFNob3LigJlzIGFsZ29yaXRobSBvbiBhIDUtcXViaXQgTk1SIHF1YW50dW0gY29tcHV0ZXIsIGZhY3RvcmluZyB0aGUgbnVtYmVyIDE1Lg0KMjAwMDogQXQgYWdlIDE0IGFuZCBpbiBjbGFzcyA4dGgsIEFhcm9uIFN3YXJ0eiBiZWNhbWUgYSBtZW1iZXIgb2YgdGhlIHdvcmtpbmcgZ3JvdXAgdGhhdCBhdXRob3JlZCB0aGUgUlNTIDEuMCB3ZWIgc3luZGljYXRpb24gc3BlY2lmaWNhdGlvbi4NCjIwMDA6IE1ha2VteVRyaXANCjIwMDAgKEphbiAxNCk6W0phY2tdIEthaG8gTmFhLi4uIFB5YWFyIEhhaQ0KMjAwMCAoRmViKTogSW5kaWFuIFJhaWx3YXlzIHdlYiBzaXRlIGkuZS4gaHR0cDovL2luZGlhbnJhaWx3YXlzLmdvdi5pbi8gd2FzIGRlcGxveWVkIGJ5IENSSVMuDQoyMDAwIChNYXIpOltCb29rXSBNYWxjb2xtIEdsYWR3ZWxsJ3MgZGVidXQgYm9vaywgVGhlIFRpcHBpbmcgUG9pbnQ6IEhvdyBMaXR0bGUgVGhpbmdzIENhbiBNYWtlIGEgQmlnIERpZmZlcmVuY2UuIA0KQmxpbms6IFRoZSBQb3dlciBvZiBUaGlua2luZyBXaXRob3V0IFRoaW5raW5nICgyMDA1LCBKYW4gMTEpOyANCk91dGxpZXJzOiBUaGUgU3Rvcnkgb2YgU3VjY2VzcyAoMjAwOCwgTm92IDE4KTsgDQpXaGF0IHRoZSBEb2cgU2F3OiBBbmQgT3RoZXIgQWR2ZW50dXJlcyAoMjAwOSwgT2N0IDIwKTsgDQpEYXZpZCBhbmQgR29saWF0aDogVW5kZXJkb2dzLCBNaXNmaXRzLCBhbmQgdGhlIEFydCBvZiBCYXR0bGluZyBHaWFudHMgKDIwMTMsIE9jdCAxKQ0KVGFsa2luZyB0byBTdHJhbmdlcnM6IFdoYXQgV2UgU2hvdWxkIEtub3cgYWJvdXQgdGhlIFBlb3BsZSBXZSBEb24ndCBLbm93ICgyMDE5KQ0KMjAwMCAoQXByIDEpOltCb29rXSBSb2JlcnQgS2l5b3Nha2kgJiBTaGFyb24gTGVjaHRlcidzIFJpY2ggRGFkIFBvb3IgRGFkLg0KMjAwMCAoQXByIDEpOltUZWNobm9sb2d5XVtSZXNlYXJjaF0gIldoeSBUaGUgRnV0dXJlIERvZXNuJ3QgTmVlZCBVcyIgaXMgYW4gYXJ0aWNsZSB3cml0dGVuIGJ5IEJpbGwgSm95IGluIHRoZSBBcHJpbCAyMDAwIGlzc3VlIG9mIFdpcmVkIG1hZ2F6aW5lLiBJbiB0aGUgYXJ0aWNsZSwgaGUgYXJndWVzIHRoYXQgIk91ciBtb3N0IHBvd2VyZnVsIDIxc3QtY2VudHVyeSB0ZWNobm9sb2dpZXPigJRyb2JvdGljcywgZ2VuZXRpYyBlbmdpbmVlcmluZywgYW5kIG5hbm90ZWNo4oCUYXJlIHRocmVhdGVuaW5nIHRvIG1ha2UgaHVtYW5zIGFuIGVuZGFuZ2VyZWQgc3BlY2llcy4iIA0KMjAwMCAoSnVuIDI2KTpbTXVzaWNdICJZZWxsb3ciIGlzIGEgc29uZyBieSB0aGUgQnJpdGlzaCByb2NrIGJhbmQgQ29sZHBsYXkuIFRoZSBiYW5kIHdyb3RlIHRoZSBzb25nIGFuZCBjby1wcm9kdWNlZCBpdCB3aXRoIEJyaXRpc2ggcmVjb3JkIHByb2R1Y2VyIEtlbiBOZWxzb24gZm9yIHRoZWlyIGRlYnV0IGFsYnVtLCBQYXJhY2h1dGVzICgyMDAwKS4gVGhlIHNvbmcgd2FzIHJlY29yZGVkIGluIE1hcmNoIDIwMDAgYW5kIHJlbGVhc2VkIG9uIDI2IEp1bmUgdGhhdCBzYW1lIHllYXIuDQoyMDAwIChTZXApOiBBbWF6b24ncyBKZWZmIEJlem9zIGZvdW5kZWQuDQoyMDAwIChTZXApOltDcmltZV1bSW5kaWFdIENoaG90YSBTaGFrZWVsJ3MgYXR0YWNrIG9uIFJhamFuIGluIGhpcyBCYW5na29rIGhvdGVsIHJvb20uDQoyMDAwIChTZXApOiBSYWlsVGVsIENvcnBvcmF0aW9uIG9mIEluZGlhIEx0ZC4gZm91bmRlZCBhbmQgSFEnZCBhdCAxNDMsIEluc3RpdHV0aW9uYWwgQXJlYSwgU2VjdG9yLTQ0LCBHdXJnYW9uLCBIYXJ5YW5hLCBJbmRpYS4gSXQgaXMgYSBNaW5pcmF0bmEgZW50ZXJwcmlzZSBvZiBHb3Zlcm5tZW50IG9mIEluZGlhIGZvY3VzaW5nIG9uIHByb3ZpZGluZyBicm9hZGJhbmQgYW5kIFZQTiBzZXJ2aWNlcy4NCjIwMDAgKFNlcCAxNyk6IFtHZW9Qb2xpdGljc10gVGhlIGlkZWEgb2YgYW4gQXNpYSBDb29wZXJhdGlvbiBEaWFsb2d1ZSAoQUNEKSB3YXMgcmFpc2VkIGF0IHRoZSBGaXJzdCBJbnRlcm5hdGlvbmFsIENvbmZlcmVuY2Ugb2YgQXNpYW4gUG9saXRpY2FsIFBhcnRpZXMgKGhlbGQgaW4gTWFuaWxhIGJldHdlZW4gMTfigJMyMCBTZXB0ZW1iZXIgMjAwMCkgYnkgU3VyYWtpYXJ0IFNhdGhpcmF0aGFpLCB0aGVuIGRlcHV0eSBsZWFkZXIgb2YgdGhlIG5vdyBkZWZ1bmN0IFRoYWkgUmFrIFRoYWkgUGFydHksIG9uIGJlaGFsZiBvZiBoaXMgcGFydHkgbGVhZGVyLCBUaGFrc2luIFNoaW5hd2F0cmEsIHRoZW4gUHJpbWUgTWluaXN0ZXIgb2YgVGhhaWxhbmQuIEl0IHdhcyBzdWdnZXN0ZWQgdGhhdCBBc2lhIGFzIGEgY29udGluZW50IHNob3VsZCBoYXZlIGl0cyBvd24gZm9ydW0gdG8gZGlzY3VzcyBBc2lhLXdpZGUgY29vcGVyYXRpb24uIEFmdGVyd2FyZHMsIHRoZSBpZGVhIG9mIHRoZSBBQ0Qgd2FzIGZvcm1hbGx5IHB1dCBmb3J3YXJkIGR1cmluZyB0aGUgMzR0aCBBU0VBTiBGb3JlaWduIE1pbmlzdGVycyBNZWV0aW5nIGluIEhhbm9pLCAyM+KAkzI0IEp1bHkgMjAwMSBhbmQgYXQgdGhlIEFTRUFOIEZvcmVpZ24gTWluaXN0ZXJzIFJldHJlYXQgaW4gUGh1a2V0LCAyMOKAkzIxIEZlYnJ1YXJ5IDIwMDIuDQoyMDAwIChPY3QgNCk6W011c2ljXSBGb3JtZWQgaW4gMTk5NiwgTGlua2luIFBhcmsgcm9zZSB0byBpbnRlcm5hdGlvbmFsIGZhbWUgd2l0aCB0aGVpciBkZWJ1dCBzdHVkaW8gYWxidW0sIEh5YnJpZCBUaGVvcnkuIEZvdXIgc2luZ2xlcyB3ZXJlIHJlbGVhc2VkIGZyb20gSHlicmlkIFRoZW9yeTogIk9uZSBTdGVwIENsb3NlciIsICJJbiB0aGUgRW5kIiwgIkNyYXdsaW5nIiBhbmQgIlBhcGVyY3V0IiwgYWxsIG9mIHRoZW0gYmVpbmcgcmVzcG9uc2libGUgZm9yIGxhdW5jaGluZyBMaW5raW4gUGFyayBpbnRvIG1haW5zdHJlYW0gcG9wdWxhcml0eS4gV2hpbGUgIkluIHRoZSBFbmQiIHdhcyB0aGUgbW9zdCBzdWNjZXNzZnVsIG9mIHRoZSBmb3VyLCBhbGwgb2YgdGhlIHNpbmdsZXMgaW4gdGhlIGFsYnVtIHJlbWFpbiBzb21lIG9mIHRoZSBiYW5kJ3MgbW9zdCBzdWNjZXNzZnVsIHNvbmdzIHRvIGRhdGUuDQoyMDAwIChOb3YgOSk6IGZvcm1hdGlvbiBvZiBVdHRhcmFraGFuZCBhcyBVdHRhcmFuY2hhbCAyMDAwIChKdW4gOSk6IEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQWN0LCAyMDAwLiBUaGUgYmlsbCB3YXMgcGFzc2VkIGluIHRoZSBidWRnZXQgc2Vzc2lvbiBvZiAyMDAwIGFuZCBzaWduZWQgYnkgUHJlc2lkZW50IEsuIFIuIE5hcmF5YW5hbiBvbiA5IE1heSAyMDAwLiBUaGUgYmlsbCB3YXMgZmluYWxpc2VkIGJ5IGdyb3VwIG9mIG9mZmljaWFscyBoZWFkZWQgYnkgdGhlbiBNaW5pc3RlciBvZiBJbmZvcm1hdGlvbiBUZWNobm9sb2d5LCBQcmFtb2QgTWFoYWphbi4NCjIwMDA6IGZvcm1hdGlvbiBvZg0KMjAwMDogSmFpc2gtZS1Nb2hhbW1lZCAobGl0ZXJhbGx5ICJUaGUgQXJteSBvZiBNdWhhbW1hZCIsIEplTSkgZm91bmRlZCBhdCBCYWhhd2FscHVyLCBQdW5qYWIsIFBha2lzdGFuLg0KMjAwMDogQ2hpbmEncyBCZWlEb3UgbmF2aWdhdGlvbiB0ZXN0IHN5c3RlbSBzdGFydHMuDQoyMDAwOiBGaXNlcnYgaGFkIGFjcXVpcmVkIG1vcmUgdGhhbiA5MCBidXNpbmVzc2VzLiBUaGUgbnVtYmVyIG9mIGVtcGxveWVlcyBncmV3IGZyb20gMjY0IHRvIDE0LDAwMC4gRmlzZXJ2IHdhcyBhbiBpbmR1c3RyeSBsZWFkZXIsIHdpdGggcmV2ZW51ZSB0aGF0IGluY3JlYXNlZCBmcm9tICQyMSBtaWxsaW9uIHRvICQxLjQgYmlsbGlvbiBpbiAxNSB5ZWFycy4NCjIwMDAgKERlYyA4KTpbR2FtaW5nXSBQcm9qZWN0IEkuRy5JLiBpcyBhIHRhY3RpY2FsIGZpcnN0LXBlcnNvbiBzaG9vdGVyIHZpZGVvIGdhbWUuIEl0IHdhcyBkZXZlbG9wZWQgYnkgSW5uZXJsb29wIFN0dWRpb3MgYW5kIHJlbGVhc2VkIGluIERlY2VtYmVyIDIwMDAgYnkgRWlkb3MgSW50ZXJhY3RpdmUuIFRoZSBnYW1lIHJlY2VpdmVkIG1peGVkIHJldmlld3MgZHVlIHRvIHNob3J0Y29taW5ncyBpbmNsdWRpbmcgYSBwb29ybHkgcHJvZ3JhbW1lZCBBLkkuLCBsYWNrIG9mIGEgbWlkLWdhbWUgc2F2ZSBvcHRpb24sIGFuZCB0aGUgbGFjayBvZiBtdWx0aXBsYXllciBmZWF0dXJlcy4gSG93ZXZlciBpdCB3YXMgcHJhaXNlZCBmb3IgaXRzIHNvdW5kIGRlc2lnbiBhbmQgZ3JhcGhpY3MsIHRoYW5rcyBpbiBwYXJ0IHRvIGl0cyB1c2Ugb2YgYSBwcm9wcmlldGFyeSBnYW1lIGVuZ2luZSB0aGF0IHdhcyBwcmV2aW91c2x5IHVzZWQgaW4gSW5uZXJsb29wJ3MgSm9pbnQgU3RyaWtlIEZpZ2h0ZXIuDQoyMDAwIChEZWMgMjEpOltKYWNrXSBSYWp1IENoYWNoYSByZWxlYXNlZC4NCjIwMDA6IFtCdXNpbmVzc11bRmluYW5jZV1bQ29ycG9yYXRlXVtJbmRpYV0gUklMIHBpbG90ZWQgd29ybGQncyBsYXJnZXN0IHBldHJvbGV1bSByZWZpbmVyeSBhdCBKYW1uYWdhciwgR3VqYXJhdCwgcmVmaW5pbmcgMS4yNE1uIGJhcnJlbHMvZGF5Lg0KMjAwMDpbQ3JpbWVdW0luZGlhXSBQb2xpY2UgZW5jb3VudGVycyBpbiBNdW1iYWkuIE1vc3QgY3JpbWluYWxzIGZsZWVpbmcgdG8gQ2FsY3VsdHRhLiBBZnRhYiBCaGF0a2kgZGVzdGFiaWxpc2UgdGhlIGVjb25vbXkgYnkgc3ByZWFkaW5nIGZha2UgY3VycmVuY3kgbm90ZXMgcHJpbnRlZCBieSBJU0kgZnVuY3Rpb25hcmllcywgYW5kIHR3bywgc2VuZCBtZXJjZW5hcmllcyB0byBjb25kdWN0IGFiZHVjdGlvbnMgYW5kIHRlcnJvcmlzdCBhdHRhY2tzLg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBUZWNobmljYWwgVW5pdmVyc2l0eSBvZiBNdW5pY2ggKDUgcXViaXQpOyBMb3MgQWxhbW9zIE5hdGlvbmFsIExhYiAoNyBxdWJpdHMpDQoyMDAwOkluIDIwMDAsIFRhdGEgVGVhIGFjcXVpcmVkIHRoZSBUZXRsZXkgVGVhIENvbXBhbnkgZm9yICQ0MDcgbWlsbGlvbi4gT3RoZXIgbm90YWJsZSBhY3F1aXNpdGlvbnMgaW5jbHVkZSBOYXRTdGVlbCAoMjAwNCksIEJydW5uZXIgTW9uZCAoMjAwNSksIGFuZCBFaWdodCBPJ0Nsb2NrIENvZmZlZSAoMjAwNikuIA0KMjAwMDogQmlybGEgYWNxdWlyZWQgSW5kaWFuIEFsdW1pbnVtIENvbXBhbnkgKElOREFMKS4gDQoyMDAwOiBTYXR5YSBOYXJheWFuYSBHb2Vua2Egd29ya2VkIGFzIGFuIGludGVybmF0aW9uYWwgYnVzaW5lc3NtYW4gYmFzZWQgaW4gTXlhbm1hciBhbmQgSW5kaWEgZm9yIGEgbGFyZ2UgcGFydCBvZiBoaXMgbGlmZS4gSGUgd2FzIGEga2V5bm90ZSBzcGVha2VyIG9uIHRoZSBzdWJqZWN0IG9mIFNwaXJpdHVhbGl0eSBpbiBCdXNpbmVzcyBhdCB0aGUgMzB0aCBXb3JsZCBFY29ub21pYyBGb3J1bSBpbiBEYXZvcywgU3dpdHplcmxhbmQgYmV0d2VlbiAyNiBKYW4gYW5kIDIgRmViIDIwMDAuIFR3byB5ZWFycyBsYXRlciBoZSBjb25kdWN0ZWQgdGhlIGZpcnN0IDEwLWRheSBjb3Vyc2UgaW4gVmlwYXNzYW5hIE1lZGl0YXRpb24gZXNwZWNpYWxseSBmb3IgYnVzaW5lc3MgZXhlY3V0aXZlcyBhbmQgZ292ZXJubWVudCBvZmZpY2lhbHMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAyMjUgeWVhcnMgb2YgSW5kZXBlbmRlbnQgVVNBIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIA0KDQoyMDAxOltVU11bR2VvUG9saXRpY3NdIGludmFzaW9uIG9mIEFmZ2hhbmlzdGFuLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMjAwMTpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgU2hhbmdoYWkgQ29vcGVyYXRpb24gT3JnYW5pc2F0aW9uIChTQ08pIGlzIGEgRXVyYXNpYW4gcG9saXRpY2FsLCBlY29ub21pYywgaW50ZXJuYXRpb25hbCBzZWN1cml0eSBhbmQgZGVmZW5jZSBvcmdhbml6YXRpb24gb2YgdGVuIG1lbWJlciBzdGF0ZXMuIEl0IHdhcyBlc3RhYmxpc2hlZCBpbiAyMDAxIGJ5IHRoZSBQZW9wbGUncyBSZXB1YmxpYyBvZiBDaGluYSwgS2F6YWtoc3RhbiwgS3lyZ3l6c3RhbiwgUnVzc2lhLCBhbmQgVGFqaWtpc3RhbiBhbmQgVXpiZWtpc3Rhbi4gSW4gSnVuZSAyMDE3LCBpdCBleHBhbmRlZCB0byBlaWdodCBzdGF0ZXMsIHdpdGggSW5kaWEgYW5kIFBha2lzdGFuLiBJcmFuIGpvaW5lZCB0aGUgZ3JvdXAgaW4gSnVseSAyMDIzLCBhbmQgQmVsYXJ1cyBpbiBKdWx5IDIwMjQuIFNldmVyYWwgY291bnRyaWVzIGFyZSBlbmdhZ2VkIGFzIG9ic2VydmVycyBvciBkaWFsb2d1ZSBwYXJ0bmVycy4gRm91bmRlcnM6IENoaW5hLCBSdXNzaWEsIEthemFraHN0YW4sIFV6YmVraXN0YW4sIEt5cmd5enN0YW4sIFRhamlraXN0YW47IEhlYWRxdWFydGVyczogQmVpamluZywgQ2hpbmE7IEZvdW5kZWQ6IDE1IEp1bmUgMjAwMQ0KMjAwMTpbQnVzaW5lc3NdIDIwMDHigJMyMDA1OiBIRlQgZXhlY3V0aW9uIHRpbWVzIGRlY3JlYXNlZCBmcm9tIHNldmVyYWwgc2Vjb25kcyB0byBtaWxsaXNlY29uZHMuIChIRlQpDQoyMDAxOltDb21wdXRpbmddW1F1YW50dW1dICBJQk0gaW1wbGVtZW50ZWQgR3JvdmVy4oCZcyBhbGdvcml0aG0gb24gYSA3LXF1Yml0IE5NUiBxdWFudHVtIGNvbXB1dGVyLCBmaW5kaW5nIGEgbWFya2VkIGl0ZW0gaW4gYSBkYXRhYmFzZSBvZiA0IGVudHJpZXMuDQoyMDAxOiBMaWZlIG9mIFBpIGlzIGEgQ2FuYWRpYW4gcGhpbG9zb3BoaWNhbCBub3ZlbCBieSBZYW5uIE1hcnRlbCBwdWJsaXNoZWQuIFRoZSBwcm90YWdvbmlzdCBpcyBQaXNjaW5lIE1vbGl0b3IgIlBpIiBQYXRlbCwgYW4gSW5kaWFuIGJveSBmcm9tIFBvbmRpY2hlcnJ5IHdobyBleHBsb3JlcyBpc3N1ZXMgb2Ygc3Bpcml0dWFsaXR5IGFuZCBtZXRhcGh5c2ljcyBmcm9tIGFuIGVhcmx5IGFnZS4gSGUgc3Vydml2ZXMgMjI3IGRheXMgYWZ0ZXIgYSBzaGlwd3JlY2sgd2hpbGUgc3RyYW5kZWQgb24gYSBsaWZlYm9hdCBpbiB0aGUgUGFjaWZpYyBPY2VhbiB3aXRoIGEgQmVuZ2FsIHRpZ2VyIHdoaWNoIHJhaXNlcyBxdWVzdGlvbnMgYWJvdXQgdGhlIG5hdHVyZSBvZiByZWFsaXR5IGFuZCBob3cgaXQgaXMgcGVyY2VpdmVkIGFuZCB0b2xkLjtTZXZlbiBTdG9yaWVzICgxOTkzKQ0KMjAwMTpbQ3JpbWVdW0luZGlhXSBDaGhvdGEgUmFqYW4ncyBhc3NvY2lhdGVzIHRyYWNrZWQgZG93biBhbmQgc2hvdCBkZWFkIGhvdGVsaWVyIFZpbm9kIGluIE11bWJhaSwgYXMgd2VsbCBhcyBTdW5pbCBTb2FucyDigJMgYW5vdGhlciBEYXdvb2QgYXNzb2NpYXRlLg0KMjAwMSAoSmFuIDEpOltCb29rXSBHcmVnIE1jS2Vvd24ncyBFc3NlbnRpYWxpc206IFRoZSBEaXNjaXBsaW5lZCBQdXJzdWl0IG9mIExlc3MNCjIwMDEgKEphbiAxKTpbQm9va10gQnJpYW4gVHJhY3kncyBFYXQgVGhhdCBGcm9nIQ0KMjAwMTogVGhlIEFyZHVpbm8gcHJvamVjdCBzdGFydGVkIGF0IHRoZSBJbnRlcmFjdGlvbiBEZXNpZ24gSW5zdGl0dXRlIEl2cmVhIChJRElJKSBpbiBJdnJlYSwgSXRhbHkuIEF0IHRoYXQgdGltZSwgdGhlIHN0dWRlbnRzIHVzZWQgYSBCQVNJQyBTdGFtcCBtaWNyb2NvbnRyb2xsZXIgYXQgYSBjb3N0IG9mICQxMDAsIGEgY29uc2lkZXJhYmxlIGV4cGVuc2UgZm9yIG1hbnkgc3R1ZGVudHMuDQoyMDAxIChBcHIgNHRoKTogQ2hhcmxlcyBNLiBWZXN0LCB0aGUgdGhlbiBQcmVzaWRlbnQgb2YgTUlUIGFubm91bmNlZCBPcGVuQ291cnNlV2FyZSAoT0NXKSBwdWJsaWNpemluZyBhbGwgb2YgaXRzIDIsMDAwIGNvdXJzZXMgIGF0IHRoZSBlc3RpbWF0ZWQgY29zdCBvZiAkMTAwIG1pbGxpb24gKG9uIGFuIGF2Zy4sIGEgTUlUIHN0dWRlbnRzIHBheXMgYXJvdW5kICQyNiwwMDAgYXMgb2ZmbGluZSB0dWl0aW9uIGZlZSkNCjIwMDE6IFVTIGludmFkZWQgQWZnaGFuaXN0YW4gaW4gcmVzcG9uc2UgdG8gOS8xMSBhdHRhY2tzLiBPZmZpY2lhbGx5LCBJdCBoYXMgYmVjb21lIHRoZSBsb25nZXN0IHdhciBpbiBBbWVyaWNhbiBoaXN0b3J5Lg0KMjAwMTogaVBvZCBieSBUb255IEZhZGVsbA0KMjAwMSAoSnVuIDE1KTpbSmFja10gR2FkYXI6IEVrIFByZW0gS2F0aGE7IExhZ2FhbjogT25jZSBVcG9uIGEgVGltZSBpbiBJbmRpYQ0KMjAwMSAoU2VwIDExKTogOS8xMSBUZXJyb3Jpc3QgYXR0YWNrcy4gVGhlIFNlcHRlbWJlciAxMSBvciA5LzExLCBhdHRhY2tzIHdlcmUgYSBzZXJpZXMgb2YgZm91ciBjb29yZGluYXRlZCB0ZXJyb3Jpc3QgYXR0YWNrcyBieSB0aGUgSXNsYW1pYyB0ZXJyb3Jpc3QgZ3JvdXAgYWwtUWFlZGEgb24gdGhlIFVuaXRlZCBTdGF0ZXMgb24gdGhlIG1vcm5pbmcgb2YgVHVlc2RheSwgU2VwIDExLiBUaGUgbG9zcyBvZiBsaWZlIHdhcyBlc3RpbWF0ZWQgYXQganVzdCB1bmRlciAzLDAwMC4gVGhlIGV2ZW50IGNoYW5nZWQgQW1lcmljYW4gZm9yZWlnbiBwb2xpY3kuIEl0IHdhcyBhIG1vdGl2YXRpbmcgZmFjdG9yIGJlaGluZCB0aGUgY29udHJvdmVyc2lhbCBpbnZhc2lvbiBvZiBJcmFxIGFuZCBsZWQgdG8gYSDigJh3YXIgb24gdGVycm9y4oCZIHN5bWJvbGlzZWQgYnkgR3VhbnRhbmFtbyBCYXkgYW5kIGEgZGViYXRlIG92ZXIgdGhlIGp1c3RpZmljYXRpb24gb2YgdG9ydHVyZS4NCjIwMDEgKE9jdCA3KTpbR2VvUG9saXRpY3NdIFVuaXRlZCBTdGF0ZXMgaW52YXNpb24gb2YgQWZnaGFuaXN0YW46IEluIGxhdGUgMjAwMSwgdGhlIFVuaXRlZCBTdGF0ZXMgYW5kIGl0cyBjbG9zZSBhbGxpZXMgaW52YWRlZCBBZmdoYW5pc3RhbiBhbmQgdG9wcGxlZCB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50LiBUaGUgaW52YXNpb24ncyBzdGF0ZWQgYWltcyB3ZXJlIHRvIGRpc21hbnRsZSBhbC1RYWVkYSwgd2hpY2ggaGFkIGV4ZWN1dGVkIHRoZSBTZXB0ZW1iZXIgMTEgYXR0YWNrcywgYW5kIHRvIGRlbnkgaXQgYSBzYWZlIGJhc2Ugb2Ygb3BlcmF0aW9ucyBpbiBBZmdoYW5pc3RhbiBieSByZW1vdmluZyB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50IGZyb20gcG93ZXIuIERlYyA3LCAyMDAxIG9ud2FyZCBzdGFydGVkIFdhciBpbiBBZmdoYW5pc3Rhbi4NCjIwMDEgKE9jdCAxNik6W0Jvb2tdIE1jS2luc2V5IFJlc2VhcmNoZXIgSmFtZXMgQy4gQ29sbGlucycgR29vZCBUbyBHcmVhdDogV2h5IFNvbWUgQ29tcGFuaWVzIE1ha2UgdGhlIExlYXAuLi5BbmQgT3RoZXJzIERvbid0OyANCjIwMDEgKE5vdik6W0NyaW1lXVtJbmRpYV0gQWJkdWwgR2FmZmFyIGFsaWFzIENoaWtuYSBHYWZmYXIgY2F1Z2h0IGJ5IHRoZSBkZXRlY3RpdmUgZGVwYXJ0bWVudCBpbiBDYWxjdXR0YSANCjIwMDEgKEphbiAyKTogVGhlIG5vcnRoZXJuIGVsZWN0cmljYWwgZ3JpZCBjb2xsYXBzZWQgaW4gSW5kaWEuIEEgZmF1bHQgaW4gdGhlIHRyYW5zbWlzc2lvbiBzeXN0ZW0gaW4gdGhlIHN0YXRlIG9mIFV0dGFyIFByYWRlc2ggbGVkIHRvIGNhc2NhZGluZyBmYWlsdXJlIHRocm91Z2hvdXQgbm9ydGhlcm4gSW5kaWEgYWZmZWN0aW5nIDIzIGNyb3JlIHJlc2lkZW50cy4NCjIwMDE6IElWUlMgKCdJbnRlcmFjdGl2ZSBWb2ljZSBSZXNwb25zZSBTeXN0ZW0nKSBmb3IgdGVsZXBob25pYyBlbnF1aXJpZXMgYWJvdXQgdHJhaW5zIGludHJvZHVjZWQgaW4gc29tZSBzdGF0aW9ucy4NCjIwMDE6IE1hZGVFYXN5IGluY29ycG9yYXRlZCBhdCA0NC1BLzEsIEthbHUgU2FyYWksIE5lYXIgSGF1eiBLaGFzIE1ldHJvIFN0YXRpb24sIE5ldyBEZWxoaS0xMTAwMTYNCjIwMDE6IEFjYyB0byAyMDAxIGNlbnN1cywgMzAgbGFraHMgd2VyZSBpbW1pZ3JhdGVkIHRvIEluZGlhIGZyb20gQmFuZ2xhZGVzaCBhbG9uZSwgZm9sbG93ZWQgYnkgMTAgbGFraHMgZnJvbSBQYWtpc3RhbiBhbmQgNiBsYWtocyBmcm9tIE5lcGFsLg0KMjAwMSAoRGVjIDEzKTpbQ3JpbWVdW0luZGlhXSBUZXJyb3Jpc3QgYXR0YWNrIG9uIEluZGlhJ3MgUGFybGlhbWVudC4NCjIwMDE6IHRoZSBjdXN0b21lciBiYXNlIG9mIG1vYmlsZSBwaG9uZSBjb21wYW5pZXMgd2FzIDQgbWlsbGlvbi4NCjIwMDE6IEJlbmVmaXQgbGFubmVycywgVGV4YXMgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBIZWFsdGggQmVuZWZpdCBkaXZpc2lvbi4NCjIwMDE6IE5ldyBIb3Jpem9ucyB3YXMgaW5pdGlhbGx5IHNlbGVjdGVkIGZvciBmdW5kaW5nIGluIDIwMDEgYnV0IHdhcyBleGNsdWRlZCBmcm9tIHRoZSBOQVNBIDIwMDMgYnVkZ2V0LiBGdW5kaW5nIGZvciB0aGUgbWlzc2lvbiB3YXMgcmVpbnN0YXRlZCBhZnRlciBOZXcgSG9yaXpvbnMgd2FzIGxpc3RlZCBhcyBhIHRvcCBwcmlvcml0eSBpbiB0aGUgUGxhbmV0YXJ5IFNjaWVuY2UgRGVjYWRhbCBTdXJ2ZXkgb2YgMjAwM+jjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlallkllklklklklklklklklklklklklklklklklklklklklklklklklklklklkjjajlkasjdlajdlkajdlaj
+KAkzIwMDEuDQoxOTkzOiBBc2hvayBIYWxsIEdpcmwncyBSZXNpZGVudGlhbCBTY2hvb2wsIE1hamtoYWxpLg0KMTk5MzogQnkgdGhpcyB5ZWFyIHRoZXJlIHdlcmUgYXJvdW5kIDEwMCB3ZWItc2VydmVycyBhY3Jvc3MgdGhlIHdvcmxkLiAoQSByZXBvcnQgcHVibGlzaGVkIGluIGZpcnN0IGlzc3VlIG9mIFRoZSBXb3JsZCBXaWRlIFdlYiBOZXdzbGV0dGVyLCAxOTkzKQ0KMTk5MzogQUMgMy10aWVyIGNvYWNoZXMgJiBTbGVlcGVyIGNsYXNzIGFyZSBpbnRyb2R1Y2VkIGFwYXJ0IGZyb20gc2Vjb25kIGNsYXNzLg0KMTk5MzogR29JJ3MgRGlzdHJpY3QgUHJpbWFyeSBFZHVjYXRpb24gUHJvZ3JhbW1lIChEUEVQKSB3YXMgbGF1bmNoZWQsIHdpdGggYW4gYWltIG9mIGFjaGlldmluZyB0aGUgb2JqZWN0aXZlIG9mIHVuaXZlcnNhbCBwcmltYXJ5IGVkdWNhdGlvbi4gVGhpcyBwcm9ncmFtbWVkIGxhaWQgdGhlIGZvdW5kYXRpb25zIGZvciDgpLjgpLDgpY3gpLUg4KS24KS/4KSV4KWN4KS34KS+IOCkheCkreCkv+Ckr+CkvuCkqChFZHVjYXRpb24gZm9yIEFsbCBNb3ZlbWVudCkgYWltZWQgYXQgdGhlIHVuaXZlcnNhbGlzYXRpb24gb2YgZWxlbWVudGFyeSBlZHVjYXRpb24gbWFraW5nIGZyZWUgYW5kIGNvbXB1bHNvcnkgZWR1Y2F0aW9uIHRvIGNoaWxkcmVuIGJldHdlZW4gdGhlIGFnZXMgb2YgNiB0byAxNC4NCjE5OTM6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIHNwbGl0IHdpdGggRGF3b29kIGFuZCBmb3JtZWQgYW4gaW5kZXBlbmRlbnQgZ2FuZyB0aGF0IGZyZXF1ZW50bHkgY2xhc2hlZCB3aXRoIERhd29vZCdzIEQtQ29tcGFueS4NCjE5OTMgKEphbiA3KTpbQ3JpbWVdIFJpb3RzIHJlLXN0YXJ0ZWQgaW4gTXVtYmFpIGFuZCBsYXN0ZWQgZm9yIDIwIGRheXMuIFRoZSBJU0ksIHdoaWNoIGNvbnRyb2xsZWQgc2hpcHBpbmcgcm91dGVzIGZyb20gdGhlIEd1bGYgdG8gSW5kaWEncyB3ZXN0IGNvYXN0LCBkZW1hbmRlZCB0aGF0IHRoZSBtYWZpYSB0cmFuc3BvcnQgd2VhcG9ucyBhbmQgZXhwbG9zaXZlcyBpbnRvIEluZGlhIGluIHJldHVybiBmb3IgdGhlIHVzZSBvZiBQYWtpc3RhbidzIHdhdGVycy4gRGF3b29kIG1ldCB0aGVpciBJU0kgaGFuZGxlcnMgaW4gYSA1IHN0YXIgaG90ZWwgb2YgRHViYWkgaW4gSmFuIG9yIEZlYiBvZiAxOTkzLCB0aGVuIGNhbWUgdGhlIFJEWCB0aHJvdWdoIHRoZSBzYW1lIHBvcm91cyBhbmQgdW5jaGVja2VkIHNlYSByb3V0ZSB0aGF0IDI2LzExIGF0dGFja2VycyBzbGlwcGVkIGFjcm9zcyBhbmQgd3JlY2tlZCBtYXloZW0gaW4gTXVtYmFpLiBUaGUg4oCZOTMgYXR0YWNrcyB3ZXJlIGZpbmFsbHkgZXhlY3V0ZWQgaW4gbWFyY2ggdGhhdCBjbGFpbWVkIHNvbWUgMzAwIGlubm9jZW50IGxpdmVzLg0KMTk5MyAoTWFyIDYpOltQb2xpdHldW0luZGlhXSBTaGFyYWQgUGF3YXIgcmUtZWxlY2V0ZCBhcyBDTSBvZiBNSCBmb3IgMiB5ZWFycy4NCjE5OTMgKE1hciAxMik6W0NyaW1lXSBUaGUgMTk5MyBCb21iYXkgYm9tYmluZ3Mgd2VyZSBhIHNlcmllcyBvZiAxMiB0ZXJyb3Jpc3QgYm9tYmluZ3MgdGhhdCB0b29rIHBsYWNlIGluIEJvbWJheS4gVGhlIHNpbmdsZS1kYXkgYXR0YWNrcyByZXN1bHRlZCBpbiAyNTcgZmF0YWxpdGllcyBhbmQgMSw0MDAgaW5qdXJpZXMuIFRoZXJlIHdhcyBhbm90aGVyIHJhaWQgbmVhciBNYW5pc2ggbWFya2V0IHdoZXJlIGhhbmQgZ3JlbmFkZXMgd2VyZSByZWNvdmVyZWQuIEFmdGVyIGFub3RoZXIgdGlwIG9mZiBsZWQgdG8gZGlzY292ZXJ5IG9mIGEgaHVnZSBxdWFudGl0eSBvZiBSRFggZnJvbSBOYWdsYSBCdW5kZXIgb2ZmIEdob2RidW5kZXIgUm9hZCBpbiBUaGFuZS4g4oCcSW4gYWxsLCA1LDAwMCBraWxvZ3JhbXMgb2YgUkRYIHdhcyBicm91Z2h0IGludG8gTXVtYmFpIGFuZCB3ZSByZWNvdmVyZWQgMywzMDAga2lsb2dyYW1zIG9mIGl0IGluIGFsbCB0aGUgcmFpZHMs4oCdIHNheXMgQ2hhdWd1bGUuIFJlZHVjZWQgU2hvY2sgU2Vuc2l0aXZpdHkgKFJTUykgZXhwbG9zaXZlcywgc3VjaCBhcyBSU1MtUkRYLCB3aGljaCBjb3N0cyBhYm91dCBScy4gMSw1MDAtMiwwMDAgcGVyIGtnLiBBbmVlcyBjb250aW51ZWQgb3BlcmF0aW9uIG9mIEQtQ29tcGFueSB3aGljaCBpbmNsdWRlIGNvbnRyYWN0IGtpbGxpbmcsIGV4dG9ydGlvbiwgdGhlIGNpcmN1bGF0aW9uIG9mIGNvdW50ZXJmZWl0IGN1cnJlbmN5LCBhbmQgdGhlIHByb3Zpc2lvbiBvZiBhIHJhbmdlIG9mIGZyZWUtbGFuY2Ugc2VydmljZXMgdG8gdGVycm9yaXN0IGdyb3VwcyBhdCB0aGUgaW5zdGFuY2Ugb2YgUGFraXN0YW4ncyBJbnRlciBTZXJ2aWNlcyBJbnRlbGxpZ2VuY2UgKElTSSkuIEludGVycG9sIFJlZCBDb3JuZXIgbm90aWNlIGZvciBELUNvbXBhbnkuDQoxOTkzIChOb3YgMSk6IFRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGZvdW5kZWQuIEl0IGlzIGFuIGVjb25vbWljIGFuZCBwb2xpdGljYWwgcGFydG5lcnNoaXAgaW52b2x2aW5nIDI4IEV1cm9wZWFuIGNvdW50cmllcy4gSXQgYmVnYW4gYWZ0ZXIgV1cyIHRvIGZvc3RlciBlY29ub21pYyBjby1vcGVyYXRpb24sIHdpdGggdGhlIGlkZWEgdGhhdCBjb3VudHJpZXMgd2hpY2ggdHJhZGUgdG9nZXRoZXIgYXJlIG1vcmUgbGlrZWx5IHRvIGF2b2lkIGdvaW5nIHRvIHdhciB3aXRoIGVhY2ggb3RoZXIuDQoxOTkzIChOb3YgMyk6IFtHZW9Qb2xpdGljc10gVGhlIENvbW1vbiBNYXJrZXQgZm9yIEVhc3Rlcm4gYW5kIFNvdXRoZXJuIEFmcmljYSAoQ09NRVNBKSBpcyBhIHJlZ2lvbmFsIGVjb25vbWljIGNvbW11bml0eSBpbiBBZnJpY2Egd2l0aCB0d2VudHktb25lIG1lbWJlciBzdGF0ZXMgc3RyZXRjaGluZyBmcm9tIFR1bmlzaWEgdG8gRXN3YXRpbmkuIENPTUVTQSB3YXMgZm9ybWVkIGluIERlY2VtYmVyIDE5OTQsIHJlcGxhY2luZyBhIFByZWZlcmVudGlhbCBUcmFkZSBBcmVhIHdoaWNoIGhhZCBleGlzdGVkIHNpbmNlIDE5ODEuIE5pbmUgb2YgdGhlIG1lbWJlciBzdGF0ZXMgZm9ybWVkIGEgZnJlZSB0cmFkZSBhcmVhIGluIDIwMDAgKERqaWJvdXRpLCBFZ3lwdCwgS2VueWEsIE1hZGFnYXNjYXIsIE1hbGF3aSwgTWF1cml0aXVzLCBTdWRhbiwgWmFtYmlhIGFuZCBaaW1iYWJ3ZSksIHdpdGggUndhbmRhIGFuZCBCdXJ1bmRpIGpvaW5pbmcgdGhlIEZUQSBpbiAyMDA0LCB0aGUgQ29tb3JvcyBhbmQgTGlieWEgaW4gMjAwNiwgU2V5Y2hlbGxlcyBpbiAyMDA5IGFuZCBUdW5pc2lhIGFuZCBTb21hbGlhIGluIDIwMTguDQoxOTkzIChEZWMgMjApOiBPSENIUiBmb3JtZWQuIFRoZSBPZmZpY2Ugb2YgdGhlIFVuaXRlZCBOYXRpb25zIEhpZ2ggQ29tbWlzc2lvbmVyIGZvciBIdW1hbiBSaWdodHMgKE9IQ0hSKSwgYSBVbml0ZWQgTmF0aW9ucyBhZ2VuY3kgdGhhdCB3b3JrcyB0byBwcm9tb3RlIGFuZCBwcm90ZWN0IHRoZSBodW1hbiByaWdodHMgdGhhdCBhcmUgZ3VhcmFudGVlZCB1bmRlciBpbnRlcm5hdGlvbmFsIGxhdyBhbmQgc3RpcHVsYXRlZCBpbiB0aGUgVW5pdmVyc2FsIERlY2xhcmF0aW9uIG9mIEh1bWFuIFJpZ2h0cyBvZiAxOTQ4Lg0KMTk5Mzp0aGUgMjR0aCBhbmQgbGFzdCBHTE9OQVNTIHNhdGVsbGl0ZSB3YXMgbGF1bmNoZWQgZm9ybWluZyB0aGUgd2hvbGUgbmF2aWdhdGlvbiBjb25zdGVsbGF0aW9uIHNpbWlsYXIgdG8gdGhhdCBvZiBVUydzIEdQUy4NCjE5OTM6IFNIQS0wIChhIGhhc2ggZnVuY3Rpb24pIHdhcyBwcm9wb3NlZCBieSBOSVNULCBNYXJ5bGFuZCwgVVNBIChGb3VuZGVkOiAxOTAxKS4gSXQgcHJvZHVjZXMgYSAxNjAtYml0IGhhc2ggdmFsdWUsIHRodXMgdGhlIGJydXRlLWZvcmNlIGNvbGxpc2lvbiBvciAgbmVhci1jb2xsaXNpb24gYXR0YWNrIHJlcXVpcmVzIE8oMl44MCkgY29tcHV0YXRpb24uIFdpdGhpbiA1IHllYXJzLCBpdCB3YXMgbWFkZSBjb2xsaXNpb24gYXR0YWNrZWQgYnkgQ2hhYmF1ZCBhbmQgSm91eCB3aXRoIHRoZSBhdHRhY2sgY29tcGxleGl0eSBvZiAyXjYxLg0KMTk5MzogW0NvYWxnYXRlIHNjYW1dIE9uIDIzcmQgQXByaWwgMjAxMywgdGhlIFN0YW5kaW5nIENvbW1pdHRlZSBvbiBDb2FsIGFuZCBTdGVlbCB0YWJsZWQgaW4gUGFybGlhbWVudCB0aGF0IGFsbCAxOTQgY29hbCBibG9ja3MgZGlzdHJpYnV0ZWQgYmV0d2VlbiAxOTkzIGFuZCAyMDA4IHdlcmUgYXVjdGlvbmVkIGluIGFuIHVuYXV0aG9yaXplZCBtYW5uZXIgYW5kIHRoZSBjb3VudHJ5IGxvc3QgUnMuMS44NiBsYWtoIGNyb3JlLi4gRm9ybWVyIFByaW1lIE1pbmlzdGVyIE1hbm1vaGFuIFNpbmdoLCBhbG9uZyB3aXRoIEt1bWFyIE1hbmdhbGFtIEJpcmxhIGFuZCBQLkMuIFBhcmFraCwgd2VyZSBhY2N1c2VkIGFuZCBzdW1tb25lZCBieSBhIHNwZWNpYWwgY291cnQuIFsyTCBDcm9yZV0uIENvbXB0cm9sbGVyIGFuZCBBdWRpdG9yIEdlbmVyYWwgb2YgSW5kaWEgdG9vayAyMCB5ZWFycyB0byBJRCBvbmUgb2YgdGhlIGJpZ2dlc3Qgc2NhbXMgaW4gSW5kaWFuIGhpc3RvcnkuDQoxOTkzOiBBZnRlciBQcmVzaWRlbnQgQmlsbCBDbGludG9uIHRvb2sgb2ZmaWNlIGluIDE5OTMsIGhvd2V2ZXIsIHRoZSBVLlMuIGVjb25vbXkgZW1iYXJrZWQgb24gYSBsb25nIGFuZCBzdHJvbmcgZXhwYW5zaW9uLCBtYWtpbmcgdGhlIDE5OTBzIGEgZ3JlYXQgZGVjYWRlIGZvciBBbWVyaWNhJ3MgbW9uZXksIG92ZXJhbGwuIA0KMTk5MzpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTW90aHJhKDE5OTIpDQoxOTkzOltTcGFjZV0gSGlwcGFyY29zLCBhIHNjaWVudGlmaWMgc2F0ZWxsaXRlIG9mIHRoZSBFdXJvcGVhbiBTcGFjZSBBZ2VuY3kgKEVTQSkgbGFzdGVkIGZvciA0IHllYXJzIGJlZm9yZSBnb2luZyBvdXQtb2Ytc2VydmljZS4NCjE5OTM6W1NwYWNlXVtSZXNlYXJjaF0gSW4gMTk5MywgRG9uIFBhZ2UgYXJndWVkIHRoYXQgaWYgYSBibGFjayBob2xlIHN0YXJ0cyBpbiBhIHB1cmUgcXVhbnR1bSBzdGF0ZSBhbmQgZXZhcG9yYXRlcyBjb21wbGV0ZWx5IGJ5IGEgdW5pdGFyeSBwcm9jZXNzLCB0aGUgdm9uIE5ldW1hbm4gZW50cm9weSBvZiB0aGUgSGF3a2luZyByYWRpYXRpb24gaW5pdGlhbGx5IGluY3JlYXNlcyBhbmQgdGhlbiBkZWNyZWFzZXMgYmFjayB0byB6ZXJvIHdoZW4gdGhlIGJsYWNrIGhvbGUgaGFzIGRpc2FwcGVhcmVkLiBUaGlzIGlzIGNhbGxlZCB0aGUgUGFnZSBjdXJ2ZS4NCjE5OTM6W0Jvb2tzXVtIaXN0b3J5XSBHcmVlbuKAmXMgRGljdGlvbmFyeSBvZiBTbGFuZyBpcyB0aGUgbGFyZ2VzdCBoaXN0b3JpY2FsIGRpY3Rpb25hcnkgb2YgRW5nbGlzaCBzbGFuZy4gV3JpdHRlbiBieSBKb25hdGhvbiBHcmVlbiBvdmVyIDE3IHllYXJzIGZyb20gMTk5MywgaXQgcmVhY2hlZCB0aGUgcHJpbnRlZCBwYWdlIGluIDIwMTAgaW4gYSB0aHJlZS12b2x1bWUgc2V0IGNvbnRhaW5pbmcgbmVhcmx5IDEwMCwwMDAgZW50cmllcyBzdXBwb3J0ZWQgYnkgb3ZlciA0MDAsMDAwIGNpdGF0aW9ucyBmcm9tIGMuIGFkIDEwMDAgdG8gdGhlIHByZXNlbnQgZGF5LiBUaGUgbWFpbiBmb2N1cyBvZiB0aGUgZGljdGlvbmFyeSBpcyB0aGUgY292ZXJhZ2Ugb2Ygb3ZlciA1MDAgeWVhcnMgb2Ygc2xhbmcgZnJvbSBjLiAxNTAwIG9ud2FyZHMuDQoxOTkzOltFbnZdW0Rpc2FzdGVyXSBTb3V0aCBBc2lhbiBtb25zb29uIGZsb29kcywgM2sgZGVhdGhzDQoxOTkzOltHZW9ncmFwaHldIFRoZSBsYXN0IG1ham9yIHNoaWZ0cyBpbiBFYXJ0aCdzIGF4aXMgd2VyZSBpbmZsdWVuY2VkIGJ5IGNsaW1hdGUgY2hhbmdlOiBhIDMxLjUtaW5jaCBzaGlmdCBiZXR3ZWVuIDE5OTMgYW5kIDIwMTAgd2FzIHByaW1hcmlseSBjYXVzZWQgYnkgZ3JvdW5kd2F0ZXIgcHVtcGluZywgYW5kIGEgY2hhbmdlIGluIHBvbGFyIGRyaWZ0IGRpcmVjdGlvbiBhcm91bmQgdGhlIDE5OTBzIHdhcyBsaW5rZWQgdG8gbWVsdGluZyBnbGFjaWVycyBhbmQgaWNlIHNoZWV0cyBkdWUgdG8gZ2xvYmFsIHdhcm1pbmcuIEVhcnRoJ3MgYXhpcyBhbHNvIHNoaWZ0ZWQgYnkgYWJvdXQgNi41IGluY2hlcyBpbiBNYXJjaCAyMDExIGFmdGVyIHRoZSBKYXBhbmVzZSBlYXJ0aHF1YWtlLCBjYXVzaW5nIHRoZSBwbGFuZXQgdG8gc3BpbiBzbGlnaHRseSBmYXN0ZXIuDQoxOTkzOltXaG9dIEluIDE5OTMsIEluZGlhIGNhbWUgaGVhcnRicmVha2luZ2x5IGNsb3NlIHRvIHdpbm5pbmcgaXRzIGZpcnN0IE1pc3MgVW5pdmVyc2UgY3Jvd24gd2l0aCB0aGUgc3R1bm5pbmcgYW5kIGdyYWNlZnVsIE5hbXJhdGEgU2hpcm9ka2FyLCB3aG8gaGFkIGVhcmxpZXIgd29uIHRoZSBGZW1pbmEgTWlzcyBJbmRpYSB0aXRsZS4gUmVwcmVzZW50aW5nIEluZGlhIGF0IHRoZSBNaXNzIFVuaXZlcnNlIHBhZ2VhbnQgaGVsZCBpbiBNZXhpY28gQ2l0eSwgTmFtcmF0YSB3YXMgYSBzdHJvbmcgY29udGVuZGVy4oCUZWxlZ2FudCBpbiBoZXIgZ293biwgcG9pc2VkIGluIGludGVydmlld3MsIGFuZCBhIGZhbiBmYXZvcml0ZS4gU2hlIGVhc2lseSBtYWRlIGl0IHRvIHRoZSBUb3AgNiwgYW5kIGhlciBjaGFuY2VzIG9mIHdpbm5pbmcgbG9va2VkIGluY3JlZGlibHkgaGlnaC4gQnV0IHRoZW4gY2FtZSB0aGUgZmluYWwgcXVlc3Rpb246IOKAnElmIHlvdSBjb3VsZCBiZSBib3JuIGFzIGFueSBoaXN0b3JpY2FsIGZpZ3VyZSwgd2hvIHdvdWxkIGl0IGJlIGFuZCB3aHk/4oCdIFdoaWxlIG90aGVyIGNvbnRlc3RhbnRzIG5hbWVkIGdsb2JhbCBpY29ucyBsaWtlIE1vdGhlciBUZXJlc2EgYW5kIFByaW5jZXNzIERpYW5hLCBOYW1yYXRhIGdhdmUgYW4gaG9uZXN0LCBwZXJzb25hbCBhbnN3ZXLigJRzaGUgc2FpZCBzaGUgd291bGQgYmUgYm9ybiBhcyBoZXJzZWxmIG9yIHNvbWVvbmUgY2xvc2UgdG8gaGVyLCBiZWNhdXNlIHNoZSBiZWxpZXZlZCBpbiBsaXZpbmcgbGlmZSB3aXRoIHRydXRoIGFuZCBpbmRpdmlkdWFsaXR5LiBJdCB3YXMgYSBiZWF1dGlmdWwsIGdyb3VuZGVkIGFuc3dlcuKAlGJ1dCBub3QgdGhlIGtpbmQgb2YgZ3JhbmQsIGlkZWFsaXN0aWMgcmVzcG9uc2UgdGhlIGp1ZGdlcyB3ZXJlIGV4cGVjdGluZy4gVGhhdCBvbmUgbW9tZW50IG9mIHRydXRoLCBtYW55IGJlbGlldmUsIGNvc3QgaGVyIHRoZSBjcm93biwgYW5kIEluZGlhIGhhZCB0byB3YWl0IGFub3RoZXIgeWVhciBiZWZvcmUgU3VzaG1pdGEgU2VuIGJyb3VnaHQgdGhlIE1pc3MgVW5pdmVyc2UgdGl0bGUgaG9tZSBpbiAxOTk0LiBTdGlsbCwgTmFtcmF0YeKAmXMgYW5zd2VyIGJlY2FtZSBpY29uaWPigJRub3QgYmVjYXVzZSBpdCB3b24sIGJ1dCBiZWNhdXNlIGl0IHdhcyByZWFsLCBtYXJraW5nIGEgcmFyZSBpbnN0YW5jZSB3aGVyZSBob25lc3R5IHN0b29kIHRhbGxlciB0aGFuIGRpcGxvbWFjeS4NCjE5OTM6W0F2aWF0aW9uXVtFeHRyZW1lXVtXaG9dIFRoZSBIZXJic3QgbWFuZXV2ZXIgd2FzIGZpcnN0IHN1Y2Nlc3NmdWxseSBwZXJmb3JtZWQgb24gQXByaWwgMjksIDE5OTMsIGJ5IGFuIFgtMzEgYWlyY3JhZnQuIE5hbWVkIGFmdGVyIFdvbGZnYW5nIEhlcmJzdCwgYSBkZXZlbG9wZXIgb2YgcG9zdC1zdGFsbCB0ZWNobm9sb2d5IGZvciBNZXNzZXJzY2htaXR0LULDtmxrb3ctQmxvaG0gKE1CQiksIHRoaXMsIHBvc3Qtc3RhbGwgbWFuZXV2ZXIgZW5hYmxlcyBhIGZpZ2h0ZXIgdG8gbWFrZSBhIHJhcGlkIDE4MMKwIHR1cm4gd2l0aGluIGEgbWluaW1hbCByYWRpdXMuIA0KDQoxOTk04oCTMTk5NTpbVVNdW0dlb1BvbGl0aWNzXSBvY2N1cGF0aW9uIG9mIEhhaXRpLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgRXVyb3BlYW4gRWNvbm9taWMgQXJlYSwgYWJicmV2aWF0ZWQgYXMgRUVBLCBjb25zaXN0cyBvZiB0aGUgTWVtYmVyIFN0YXRlcyBvZiB0aGUgRXVyb3BlYW4gVW5pb24gKEVVKSBhbmQgdGhyZWUgY291bnRyaWVzIG9mIHRoZSBFdXJvcGVhbiBGcmVlIFRyYWRlIEFzc29jaWF0aW9uIChFRlRBKSAoSWNlbGFuZCwgTGllY2h0ZW5zdGVpbiBhbmQgTm9yd2F5OyBleGNsdWRpbmcgU3dpdHplcmxhbmQpLiBUaGUgQWdyZWVtZW50IG9uIHRoZSBFRUEgZW50ZXJlZCBpbnRvIGZvcmNlIG9uIDEgSmFudWFyeSAxOTk0LiANCjE5OTQ6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEV1cm9wZWFuIEVjb25vbWljIEFyZWEgKEVFQSkgd2FzIGVzdGFibGlzaGVkIG9uIDEgSmFudWFyeSAxOTk0LiBUaGUgYWdyZWVtZW50IGxpbmtzIHRoZSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aHJlZSBFRlRBIHN0YXRlc+KAlEljZWxhbmQsIExpZWNodGVuc3RlaW4sIGFuZCBOb3J3YXnigJRpbnRvIGEgc2luZ2xlIGludGVybmFsIG1hcmtldCwgYWxsb3dpbmcgZm9yIHRoZSBmcmVlIG1vdmVtZW50IG9mIGdvb2RzLCBwZXJzb25zLCBzZXJ2aWNlcywgYW5kIGNhcGl0YWwuIA0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBOQUZUQSwgdGhlIE5vcnRoIEFtZXJpY2FuIEZyZWUgVHJhZGUgQWdyZWVtZW50LCB3YXMgYSAxOTk0IGFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzLCBDYW5hZGEsIGFuZCBNZXhpY28gdG8gZWxpbWluYXRlIHRyYWRlIGJhcnJpZXJzIGFuZCBwcm9tb3RlIGZyZWUgdHJhZGUgaW4gTm9ydGggQW1lcmljYS4gSXQgZmFjaWxpdGF0ZWQgdGhlIG1vdmVtZW50IG9mIGdvb2RzIGFuZCBzZXJ2aWNlcyBhbmQgZXN0YWJsaXNoZWQgYSBsYXJnZSB0cmFkZSBibG9jLiBJbiBKdWx5IDIwMjAsIE5BRlRBIHdhcyByZXBsYWNlZCBieSB0aGUgVW5pdGVkIFN0YXRlcy1NZXhpY28tQ2FuYWRhIEFncmVlbWVudCAoVVNNQ0EpLCB3aGljaCBtb2Rlcm5pemVkIGFuZCBlbmhhbmNlZCB0aGUgdHJlYXR5IGZvciBhIGNvbnRlbXBvcmFyeSBlY29ub215Lg0KMTk5NDpbUy5BZnJpY2FdW1NvY2lhbGlzbV0gRmlyc3QgZnJlZSBlbGVjdGlvbnMgaW4gU291dGggQWZyaWNhOyBOZWxzb24gTWFuZGVsYQ0KMTk5NDpbUmVzZWFyY2hdW3NwYWNlXSBDYXJsIFNhZ2FuIGNvbmNlZGVkIHRoYXQgdGhpcyBhcHByb2FjaCB3b3VsZCBub3Qgd29yayBiZWNhdXNlIHRoZSBhdG1vc3BoZXJlIG9mIFZlbnVzIGlzIGZhciBkZW5zZXIgKDkwIGJhcnMpIHRoYW4gd2hhdCB3YXMgdW5kZXJzdG9vZCBpbiAxOTYxIChhIGZldyBiYXJzKSwgbWVhbmluZyB0aGUgY2FyYm9uIHdvdWxkIGp1c3QgYmUgb3hpZGl6ZWQgYmFjayBpbnRvIENPMi4NCjE5OTQ6W0NvbXB1dGluZ11bUXVhbnR1bV0gUGV0ZXIgU2hvciBkaXNjb3ZlcmVkIGFuIGFsZ29yaXRobSAoU2hvcidzIGFsZ29yaXRobSkgdGhhdCBjb3VsZCBmYWN0b3IgbGFyZ2UgbnVtYmVycyBpbiBwb2x5bm9taWFsIHRpbWUgb24gYSBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCB3b3VsZCBicmVhayB0aGUgc2VjdXJpdHkgb2YgbWFueSBjcnlwdG9ncmFwaGljIHNjaGVtZXMuIA0KMTk5NDpbQ29tcHV0aW5nXVtRdWFudHVtXSBQZXRlciBTaG9yIGFuZCBEb24gQ29wcGVyc21pdGggZmlndXJlZCBvdXQgaG93IHRvIHRha2UgYSBRdWFudHVtIEZvdXJpZXIgVHJhbnNmb3JtLg0KMTk5NDpUaGUgcHJvYmxlbSB3aXRoIHRoZSBwYXBlciBwdWJsaXNoZWQgZWFybGllciB0aGlzIG1vbnRoIHdhcyBpdHMgcmVsaWFuY2Ugb24gU2Nobm9ycidzIGFsZ29yaXRobSAobm90IHRvIGJlIGNvbmZ1c2VkIHdpdGggU2hvcuKAmXMgYWxnb3JpdGhtKSwgd2hpY2ggd2FzIGRldmVsb3BlZCBpbiAxOTk0LiBTY2hub3Jy4oCZcyBhbGdvcml0aG0gaXMgYSBjbGFzc2ljYWwgY29tcHV0YXRpb24gYmFzZWQgb24gbGF0dGljZXMsIHdoaWNoIGFyZSBtYXRoZW1hdGljYWwgc3RydWN0dXJlcyB0aGF0IGhhdmUgbWFueSBhcHBsaWNhdGlvbnMgaW4gY29uc3RydWN0aXZlIGNyeXB0b2dyYXBoeSBhbmQgY3J5cHRhbmFseXNpcy4gVGhlIGF1dGhvcnMgd2hvIGRldmlzZWQgU2Nobm9ycuKAmXMgYWxnb3JpdGhtIHNhaWQgaXQgY291bGQgZW5oYW5jZSB0aGUgdXNlIG9mIHRoZSBoZXVyaXN0aWMgcXVhbnR1bSBvcHRpbWl6YXRpb24gbWV0aG9kIGNhbGxlZCBRQU9BLg0KMTk5NCAoSmFuIDEpOiBbR2VvUG9saXRpY3NdIFRoZSBOb3J0aCBBbWVyaWNhbiBGcmVlIFRyYWRlIEFncmVlbWVudCAoTkFGVEEpIHdhcyBhbiBhZ3JlZW1lbnQgc2lnbmVkIGJ5IENhbmFkYSwgTWV4aWNvLCBhbmQgdGhlIFVuaXRlZCBTdGF0ZXMgdGhhdCBjcmVhdGVkIGEgdHJpbGF0ZXJhbCB0cmFkZSBibG9jIGluIE5vcnRoIEFtZXJpY2EuIFRoZSBhZ3JlZW1lbnQgY2FtZSBpbnRvIGZvcmNlIG9uIEphbnVhcnkgMSwgMTk5NCwgYW5kIHN1cGVyc2VkZWQgdGhlIDE5ODggQ2FuYWRh4oCTVW5pdGVkIFN0YXRlcyBGcmVlIFRyYWRlIEFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzIGFuZCBDYW5hZGEuIFRoZSBOQUZUQSB0cmFkZSBibG9jIGZvcm1lZCBvbmUgb2YgdGhlIGxhcmdlc3QgdHJhZGUgYmxvY3MgaW4gdGhlIHdvcmxkIGJ5IGdyb3NzIGRvbWVzdGljIHByb2R1Y3QuDQoxOTk0OltUZWNobm9sb2d5XVtCdXNpbmVzc11bVVNdW0NvbXB1dGluZ10gVGhlIERlbGwgTGF0aXR1ZGUgc2VyaWVzIGlzIGEgbGluZSBvZiBsYXB0b3AgY29tcHV0ZXJzIG1hbnVmYWN0dXJlZCBhbmQgc29sZCBieSBBbWVyaWNhbiBjb21wYW55IERlbGwuIEl0IGlzIGEgYnVzaW5lc3Mtb3JpZW50ZWQgbGluZSwgYWltZWQgYXQgY29ycG9yYXRlIGVudGVycHJpc2VzLCBoZWFsdGhjYXJlLCBnb3Zlcm5tZW50LCBhbmQgZWR1Y2F0aW9uIG1hcmtldHM7IHVubGlrZSB0aGUgSW5zcGlyb24gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBpbmRpdmlkdWFsIGN1c3RvbWVycywgYW5kIHRoZSBWb3N0cm8gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBzbWFsbGVyIGJ1c2luZXNzZXMuIFRoZSBMYXRpdHVkZSBkaXJlY3RseSBjb21wZXRlcyB3aXRoIHRoZSBMZW5vdm8gVGhpbmtQYWQgYW5kIHRoZSBFbGl0ZUJvb2sgc2VyaWVzIGJ5IEhQLiBBZGRpdGlvbmFsbHksIHRoZSAiUnVnZ2VkIChFeHRyZW1lKSIsICJYRlIiIGFuZCAiQVRHIiBtb2RlbHMgY29tcGV0ZSBwcmltYXJpbHkgd2l0aCBQYW5hc29uaWMncyBUb3VnaGJvb2sgbGluZSBvZiAicnVnZ2VkIiBsYXB0b3BzLg0KMTk5NDogU3VzaG1pdGEgU2VuIGJlY2FtZSBNaXNzIFVuaXZlcnNlLg0KMTk5NDogVGhlIEFubmFscyBvZiBJbXByb2JhYmxlIFJlc2VhcmNoIGlzIGEgYmktbW9udGhseSBtYWdhemluZSBkZXZvdGVkIHRvIHNjaWVudGlmaWMgaHVtb3IsIGluIHRoZSBmb3JtIG9mIGEgc2F0aXJpY2FsIHRha2Ugb24gdGhlIHN0YW5kYXJkIGFjYWRlbWljIGpvdXJuYWwuDQoxOTk0OiBMaW5kb24gTGVhZGVyIG9mIExhbmRvciBBc3NvY2lhdGVzLCBvZiBTYW4gRnJhbmNpc2NvIGRlc2lnbmVkIHdvcmRtYXJrcyBmb3IgRmVkRXgncyB2YXJpb3VzIE9wLXVuaXQuIEZlZEV44oCZcyBwdWJsaWMtcmVsYXRpb25zIGZpcm0gd2FudGVkIHRvIGhpZ2hsaWdodCB0aGUgYXJyb3cgc28gaXQgd291bGQgYmUgb2J2aW91cy4gQnV0IGhlIGZvdWdodCB0aGVtIG9uIHRoYXQg4oCUIGhlIHRob3VnaHQgaXQgd291bGQgYmUgb3ZlcmtpbGwuIFRoZXJl4oCZcyBzb21ldGhpbmcgYWJvdXQgbWFraW5nIHBlb3BsZSBkaXNjb3ZlciBzb21ldGhpbmcgb24gdGhlaXIgb3duIHRoYXTigJlzIGEgbG90IG1vcmUgcG93ZXJmdWwgdGhhbiBpdGFsaWNpemluZyBpdCB0byBtYWtlIHlvdXIgcG9pbnQuDQoxOTk0OiBTY2lsYWIgMS4xLCB0aGUgZmlyc3QgcmVsZWFzZWQgdmVyc2lvbiBvZiBTY2lsYWIsIHdhcyBwdXQgb24gYW5vbnltb3VzIGZ0cCBzaXRlLg0KMTk5NDogVGhlIGNvbmNlcHQgb2YgYSBjYWbDqSB3aXRoIGZ1bGwgSW50ZXJuZXQgYWNjZXNzIChhbmQgdGhlIG5hbWUgQ3liZXJjYWbDqSkgd2FzIGludmVudGVkIGluIGVhcmx5IGJ5ICBhIEJyaXRpc2ggdGVjaG5vbG9neSBhcnRpc3QsIEl2YW4gUG9wZS4NCjE5OTQ6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIGx1cmVkIG9uZSBvZiBEYXdvb2QncyBmYXZvcml0ZSAibmFyY28tdGVycm9yaXN0IiBQaGlsbHUgS2hhbiBhbGlhcyBCYWtodGl5YXIgQWhtZWQgS2hhbiB0byBhIGhvdGVsIHJvb20gaW4gQmFuZ2tvaywgd2hlcmUgaGUgd2FzIHRvcnR1cmVkIHRvIGRlYXRoLCBoYXZpbmcgYmVlbiBiZXRyYXllZCBieSBoaXMgY2xvc2VzdCBhaWRlIGFuZCBzaWRla2ljayBNYW5nZXNoICJNYW5neWEiIFBhd2FyLiBELUNvbXBhbnkncyBTaGFyYWQsIHVzZWQgaGlzIGxpbmtzIHdpdGggTXVtYmFpLWJhc2VkIGhvdGVsaWVyIFZpbm9kIGFuZCBBLiBNaXNocmEgdG8gdHJhY2sgZG93biBSYWphbiBpbiBCYW5na29rLiBSYWphbidzIGhpdG1hbiBSb2hpdCBWYXJtYSBhbmQgaGlzIHdpZmUgc2hvdCBieSBELUNvbXBhbnkuDQoxOTk0KEp1bCAxNik6W1NwYWNlXSBGcm9tIEp1bHkgMTYgdG8gMjIsIDE5OTQsIGVub3Jtb3VzIHBpZWNlcyBvZiB0aGUgY29tZXQgU2hvZW1ha2VyLUxldnkgOSAoU0w5KSwgZGlzY292ZXJlZCBqdXN0IGEgeWVhciBwcmlvciwgY3Jhc2hlZCBpbnRvIEp1cGl0ZXIgb3ZlciBzZXZlcmFsIGRheXMsIGNyZWF0aW5nIGh1Z2UsIGRhcmsgc2NhcnMgaW4gdGhlIHBsYW5ldCdzIGF0bW9zcGhlcmUgYW5kIGxvZnRpbmcgc3VwZXJoZWF0ZWQgcGx1bWVzIGludG8gaXRzIHN0cmF0b3NwaGVyZS4NCjE5OTQgKE9jdCk6IElUUE8gYW5kIEdvSSdzIE5JQyBqb2ludGx5IHNldC11cCB0aGUgTmF0aW9uYWwgQ2VudHJlIGZvciBUcmFkZSBJbmZvcm1hdGlvbiAoTkNUSSkgYXQgUHJhZ2F0aSBNYWlkYW4uDQoxOTk0IChOb3YgMSwgMTU6MDEgSVNUKTpbU3BhY2VdW1N1bl0gVGhlIEdsb2JhbCBHZW9zcGFjZSBTY2llbmNlICdXaW5kJyBzYXRlbGxpdGUgaXMgYSBOQVNBIHNjaWVuY2Ugc3BhY2VjcmFmdCBkZXNpZ25lZCB0byBzdHVkeSByYWRpbyB3YXZlcyBhbmQgcGxhc21hIHRoYXQgb2NjdXIgaW4gdGhlIHNvbGFyIHdpbmQgYW5kIGluIHRoZSBFYXJ0aCdzIG1hZ25ldG9zcGhlcmUuIA0KMTk5NCAoRGVjIDMpOiBTb255J3MgUGxheVN0YXRpb24gKGEgdmlkZW8gZ2FtZSBjb25zb2xlKSB3YXMgaW50cm9kdWNlZCB0byB0aGUgd29ybGQgZnJvbSBNaW5hdG8sIFRva3lvIChKYXBhbikuDQoxOTk0OiBXWFlDLSBmaXJzdCBpbnRlcm5ldCByYWRpbyBzdGF0aW9uIGJyb2FkY2FzdC4NCjE5OTQ6IE1lbW9yeSBjYXJkcyB3ZXJlIGludHJvZHVjZWQgaW4gdGhlIGNvbnN1bWVyIGVsZWN0cm9uaWNzIG1hcmtldC4NCjE5OTQgKEF1Zyk6IElUUE8ncyAxc3QgRGVsaGkgQm9vayBGYWlyIGF0ICBIYWxsIDggdG8gMTIgb2YgUHJhZ2F0aSBNYWlkYW4sIE5ldyBEZWxoaS4gVGhlIHRpbWluZ3Mgb2YgZmFpciBhcmUgZnJvbSAxMC4wMCBhbSB0byA4LjAwIHBtIChlbnRyeSB0byBmYWlyIHdpbGwgY2xvc2UgYXQgNy4zMCBwbSkuDQoxOTk0IChTZXApOiBUaGUgQ09OQ0VSVCBzb2Z0d2FyZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgaW1wbGVtZW50ZWQgYXQgYWxsIG9mIHRoZSBmaXZlIFBSUycgc2l0ZXMgU2VjdW5kZXJhYmFkIGluIFNlcHQuIDE5OTQsIE5ldyBEZWxoaSBvbiBTZXB0LiAxOTk2LCBDYWxjdXR0YSBvbiAxNHRoIEp1bmUgMTk5OCwgTXVtYmFpIG9uIDExdGggSmFuIDE5OTkgYW5kIENoZW5uYWkgb24gMTJ0aCBBcHJpbCAxOTk5Lg0KMTk5NDogdGhlIDI0dGggYW5kIHRoZSBsYXN0IEdQUyBzYXRlbGxpdGUgd2FzIGxhdW5jaGVkIGluIFVTLg0KMTk5NDogVGhlIHdvcmQgVGFsaWJhbiBpcyBQYXNodG8sINi32KfZhNio2KfZhiDhua3EgWxpYsSBbiwgbWVhbmluZyAic3R1ZGVudHMiLCB0aGUgcGx1cmFsIG9mIOG5rcSBbGliLiBBZnRlciB0aGUgU292aWV0IFVuaW9uIGludGVydmVuZWQgYW5kIG9jY3VwaWVkIEFmZ2hhbmlzdGFuIGluIDE5NzksIElzbGFtaWMgbXVqYWhpZGVlbiBmaWdodGVycyBlbmdhZ2VkIGluIHdhciB3aXRoIHRob3NlIFNvdmlldCBmb3JjZXMsIHdoaWNoIGxhaWQgdGhlIGZvdW5kYXRpb24gb2YgcG9saXRpY2FsIG1vdmVtZW50IGFuZCBtaWxpdGFyeSBvcmdhbml6YXRpb24gbmFtZWQgVGFsaWJhbi4NCjE5OTQ6IEFiZHVsIEthcmVlbSBUZWxnaSBhY3F1aXJlZCB0aGUgbGljZW5zZSBmb3Igc2VsbGluZyBzdGFtcCBwYXBlciBhbmQgb3BlbmVkIGFuIG9mZmljZSBpbiBNdW1iYWkuIEFmdGVyIHRoYXQsIGhlIHN0YXJ0ZWQgcHJpbnRpbmcgc3RhbXAgcGFwZXIgaW4gTmFzaGlrLiBXaXRoIHNvbWUgYWdlbnRz4oCZIGhlbHAsIGhlIHN0YXJ0cyBzZWxsaW5nIGZha2Ugc3RhbXAgcGFwZXIgaW4gYnVsayB0byBiYW5rcywgaW5zdXJhbmNlIGNvbXBhbmllcywgc3RvY2sgYnJva2VyYWdlIGZpcm1zLCBhbmQgY29ycG9yYXRlcy4gSW4gMjAwMyB0aGUgVGVsZ2kgc2NhbSB3YXMgdW5mb2xkZWQ7IHRoZSBmaWd1cmUgaW4gdGhlIG1pbmQgb2Ygc2VjdXJpdHkgYW5kIGludGVsbGlnZW5jZSBhZ2VuY2llcyB3YXMgdXAgdG8gUnMuMjBrIENyb3JlDQoxOTk0OiBbR2VvUG9saXRpY3NdIEludGVybmF0aW9uYWwgQXNzb2NpYXRpb24gb2YgR2VuZGFybWVyaWVzIGFuZCBQb2xpY2UgRm9yY2VzIHdpdGggTWlsaXRhcnkgU3RhdHVzIChjb21tb25seSBrbm93biBhcyBGSUVQIGZvciBGcmFuY2UtSXRhbGlhLUVzcGHDsWEtUG9ydHVnYWwsIHRoZSBmaXJzdCBmb3VyIG1lbWJlcnMpIGlzIGFuIGFzc29jaWF0aW9uIG9mIG5hdGlvbmFsIGdlbmRhcm1lcmllcyBvciBtaWxpdGFyeSBwb2xpY2UgZm9yY2VzLg0KMTk5NDpbQm9va10gUGFsZSBCbHVlIERvdDogQSBWaXNpb24gb2YgdGhlIEh1bWFuIEZ1dHVyZSBpbiBTcGFjZSBpcyBhIDE5OTQgYm9vayBieSB0aGUgYXN0cm9ub21lciBDYXJsIFNhZ2FuLiBJdCBpcyB0aGUgc2VxdWVsIHRvIFNhZ2FuJ3MgMTk4MCBib29rIENvc21vcyBhbmQgd2FzIGluc3BpcmVkIGJ5IHRoZSBmYW1vdXMgMTk5MCBQYWxlIEJsdWUgRG90IHBob3RvZ3JhcGgsIGZvciB3aGljaCBTYWdhbiBwcm92aWRlcyBhIHBvaWduYW50IGRlc2NyaXB0aW9uLiBJbiB0aGUgYm9vaywgU2FnYW4gbWl4ZXMgcGhpbG9zb3BoeSBhYm91dCB0aGUgaHVtYW4gcGxhY2UgaW4gdGhlIHVuaXZlcnNlIHdpdGggYSBkZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCBrbm93bGVkZ2UgYWJvdXQgdGhlIFNvbGFyIFN5c3RlbS4gSGUgYWxzbyBkZXRhaWxzIGEgaHVtYW4gdmlzaW9uIGZvciB0aGUgZnV0dXJlLg0KMTk5NDpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTWVjaGFnb2R6aWxsYSBJSSgxOTkzKQ0KMTk5NDpbQ2luZW1hXSBUaGUgQXBwbGUoMTk4MCkNCjE5OTQ6W0NpbmVtYV0gVGhlIEF0bGFudGlzIEludGVyY2VwdG9ycygxOTgzKQ0KMTk5NDpbTW50bmdnXSBJbiAxOTk0LCBNYXJrIFdoZXR1IHN1bW1pdHRlZCBNdCBFdmVyZXN0IHdpdGggTWlrZSBSZWluYmVyZ2VyLiBCdXQgYWZ0ZXIgYSBmcmVlemluZyBuaWdodCwgV2hldHUgZmFjZWQgYSBoYXJyb3dpbmcgY2hvaWNlOiBsZWF2ZSBoaXMgZnJpZW5kIG9yIHJlbWFpbiBmb3JldmVyLiBUaGUgRmF0YWwgR2FtZSAoMTk5NykNCjE5OTQ6W1RvdXJpc21dIFRoZSBBZHZlbnR1cmUgVG91ciBPcGVyYXRvcnMgQXNzb2NpYXRpb24gb2YgSW5kaWEgKEFUT0FJKSB3YXMgZm91bmRlZCBpbiAxOTk0LiBJdCB3YXMgZXN0YWJsaXNoZWQgYnkgYSBncm91cCBvZiB0cmF2ZWwgdHJhZGUgYWR2ZW50dXJlcnMgd2hvIGFpbWVkIHRvIGNyZWF0ZSBhIHN0cm9uZyBzdXBwb3J0IG5ldHdvcmsgZm9yIEluZGlhbiBhZHZlbnR1cmUgdG91ciBvcGVyYXRvcnMuIA0KDQoxOTk1IChNYXkgMTkpOiBbUmVzZWFyY2hdW1NwYWNlXSB0d28gc2NpZW50aXN0cyBhdCBDYWwgUG9seSBzaG93ZWQgdGhhdCBiYWN0ZXJpYSBjYW4gc3Vydml2ZSB3aXRob3V0IGFueSBtZXRhYm9saXNtIGZvciBhdCBsZWFzdCAyNSBtaWxsaW9uIHllYXJzOyBwcm9iYWJseSB0aGV5IGFyZSBpbW1vcnRhbC4NCjI0IE5vdmVtYmVyIDE5OTU6IFRoZSBOZXcgWW9yayBUaW1lcyBkZXNjcmliZWQgYmFjdGVyaWEgdGhhdCBjYW4gc3Vydml2ZSByYWRpYXRpb24gbXVjaCBzdHJvbmdlciB0aGFuIGFueSB0aGF0IEVhcnRoIGhhcyBldmVyIGV4cGVyaWVuY2VkLg0KV2UgYXJlIGNhbGxpbmcgdGhlIHVuaW9uIG9mIExvdmVsb2NrJ3MgR2FpYSB3aXRoIEhveWxlIGFuZCBXaWNrcmFtYXNpbmdoZSdzIGV4cGFuZGVkIHRoZW9yeSBvZiBwYW5zcGVybWlhIENvc21pYyBBbmNlc3RyeS4gVGhpcyBhY2NvdW50IG9mIGV2b2x1dGlvbiBhbmQgdGhlIG9yaWdpbiBvZiBsaWZlIG9uIEVhcnRoIGlzIHByb2ZvdW5kbHkgZGlmZmVyZW50IGZyb20gdGhlIHByZXZhaWxpbmcgc2NpZW50aWZpYyBwYXJhZGlnbS4gSXQgY2hhbGxlbmdlcyBub3QgbWVyZWx5IHRoZSBhbnN3ZXJzIGJ1dCB0aGUgcXVlc3Rpb25zIHRoYXQgYXJlIHBvcHVsYXIgdG9kYXkuIENvc21pYyBBbmNlc3RyeSByZXF1aXJlcyB0aGF0IGxpZmUgY2FuIG9ubHkgZGVzY2VuZCBmcm9tIGFuY2VzdG9ycyBhdCBsZWFzdCBhcyBoaWdobHkgZXZvbHZlZCBhcyBpdHNlbGYsIGFuZCB0aGF0IHRoZXJlIGNhbiBiZSBubyBvcmlnaW4gb2YgbGlmZSBmcm9tIG5vbmJpb2xvZ2ljYWwgbWF0dGVyLiBXaXRob3V0IHN1cGVybmF0dXJhbCBpbnRlcnZlbnRpb24sIHRoZXJlZm9yZSwgd2UgY29uY2x1ZGUgdGhhdCBsaWZlIG11c3QgaGF2ZSBhbHdheXMgZXhpc3RlZC4gQWx0aG91Z2ggdGhlc2UgY29uY2x1c2lvbnMgY3V0IGFjcm9zcyB0aGUgYm91bmRhcmllcyBiZXR3ZWVuIHNjaWVuY2UsIHBoaWxvc29waHksIGFuZCByZWxpZ2lvbiwgd2UgYmVsaWV2ZSB0aGV5IGFyZSBncm91bmRlZCBpbiBnb29kIGV2aWRlbmNlLiBBbmQgbmV3IGRhdGEgdGhhdCBzdXBwb3J0IG1hbnkgYXNwZWN0cyBvZiBDb3NtaWMgQW5jZXN0cnkgYXJlIGNvbWluZyBpbiByYXBpZGx5LiBJbiB0aGUgZm9sbG93aW5nIHBhZ2VzIHdlIHdpbGwgZXhwbGFpbiBob3cgdGhlc2UgYW5kIG90aGVyIHJlY2VudCBkZXZlbG9wbWVudHMgc3VwcG9ydCBDb3NtaWMgQW5jZXN0cnk6DQoNCjE5OTU6IEFOU0VUIHNvbGQgdG8gQU9MLCB3aG8gIG5vdyBydW5zIGl0Lg0KMTk5NSAoTWFyKTogRGVwdC4gb2YgSW5kaWFuIE1lZGljaW5lIGFuZCBIb21lb3BhdGh5IGZvdW5kZWQuDQoxOTk1IChNYXIgMjQpOltSZXNlYXJjaF0gUmVtb3RlbHkgT3BlcmF0ZWQgVmVoaWNsZSBLQUlLTyByZWFjaGVkIHRoZSBkZWVwZXN0IGFyZWEgb2YgdGhlIE1hcmlhbmEgVHJlbmNoIGFuZCBtYWRlIHRoZSBkZWVwZXN0IGRpdmluZyByZWNvcmQgb2YgMTAsOTExIG0gKDM1LDc5NyBmdDsgNSw5NjYgZmF0aG9tcykgDQoxOTk1OiBwaG9uZSBjYWxsIGNvc3RpbmcgUnMuIDE2IHBlciBtaW4uDQoxOTk1OltHYW1pbmddIFZpcnR1YSBDb3AgMiBpcyBhIGxpZ2h0IGd1biBzaG9vdGVyIGFyY2FkZSBnYW1lLCByZWxlYXNlZCBpbiAxOTk1IGFuZCBkZXZlbG9wZWQgaW50ZXJuYWxseSBhdCBTZWdhIGJ5IHRoZWlyIEFNMiBzdHVkaW8gKFl1IFN1enVraSkuIEl0IHdhcyBwb3J0ZWQgdG8gdGhlIFNlZ2EgU2F0dXJuIGluIDE5OTYuIEl0IHdhcyByZWxlYXNlZCBvbiBQQyBpbiAxOTk3IGFuZCBTZWdhIERyZWFtY2FzdCBpbiAyMDAwLiBJdCB3YXMgbGF0ZXIgYnVuZGxlZCB3aXRoIFZpcnR1YSBDb3AgaW4gVmlydHVhIENvcDogRWxpdGUgRWRpdGlvbiBmb3IgUGxheVN0YXRpb24gMiBpbiAyMDAyLg0KMTk5NSAoQXByIDEpOltSZXNlYXJjaF0gUGlsbGFycyBvZiBDcmVhdGlvbiBpcyBhIHBob3RvZ3JhcGggdGFrZW4gYnkgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgb2YgZWxlcGhhbnQgdHJ1bmtzIG9mIGludGVyc3RlbGxhciBnYXMgYW5kIGR1c3QgaW4gdGhlIEVhZ2xlIE5lYnVsYSwgaW4gdGhlIFNlcnBlbnMgY29uc3RlbGxhdGlvbiwgc29tZSA2LDUwMOKAkzcsMDAwIGxpZ2h0LXllYXJzICgyLDAwMOKAkzIsMTAwIHBjOyA2MeKAkzY2IEVtKSBmcm9tIEVhcnRoLg0KMTk5NSAoQXByIDEpOiBJQUFJIGFuZCBOQUEgd2VyZSBtZXJnZWQgYnkgYW4gQWN0IG9mIFBhcmxpYW1lbnQgYW5kIHdhcyBuYW1lZCBhcyBBaXJwb3J0cyBBdXRob3JpdHkgb2YgSW5kaWEgKEFBSSkuIFRoaXMgbmV3IG9yZ2FuaXNhdGlvbiB3YXMgdG8gYmUgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nLCB1cGdyYWRpbmcsIG1haW50YWluaW5nIGFuZCBtYW5hZ2luZyBjaXZpbCBhdmlhdGlvbiBpbmZyYXN0cnVjdHVyZSBib3RoIG9uIHRoZSBncm91bmQgYW5kIGFpciBzcGFjZSBpbiB0aGUgY291bnRyeS4NCjE5OTUgKEFwciAyMSk6W0NyaW1lXVtJbmRpYV0gQmFibG9vIHBpY2tlZCB1cCBieSB0aGUgU2luZ2Fwb3JlIGFpcnBvcnQgcG9saWNlIGZvciB0cmF2ZWxsaW5nIG9uIGZha2UgcGFzc3BvcnQuIEhlIHdhcyBzdGF5aW5nIGluIER1YmFpLg0KMTk5NSAoU2VwIDMwKTpbQ3JpbWVdW0luZGlhXSBTaW5nYXBvcmUgZXh0cmFkaXRlcyBJbmRpYSdzICdtb3N0LXdhbnRlZCBpbnRlci1zdGF0ZSBjcmltaW5hbCcgQmFibG9vIFNyaXZhc3RhdmEgKDMzWU8pDQoxOTk1IChOb3YgMzApOiBPcGVyYXRpb24gRGVzZXJ0IFN0b3JtIChGaXJzdCBJcmFxIFdhcilvZmZpY2lhbGx5IGVuZGVkLg0KMTk5NSAoTWF5IDMxKTpbQm9va11bTWlsaXRhcnldIEFkbWlyYWwgV2lsbGlhbSBILiBNY1JhdmVuJ3MgU3BlYyBPcHM6IENhc2UgU3R1ZGllcyBpbiBTcGVjaWFsIE9wZXJhdGlvbnMgV2FyZmFyZTogVGhlb3J5IGFuZCBQcmFjdGljZTsgU2VhIFN0b3JpZXM6IE15IExpZmUgaW4gU3BlY2lhbCBPcGVyYXRpb25zICgyMDE5LCBNYXkgMSk7IFRoZSBIZXJvIENvZGU6IExlc3NvbnMgTGVhcm5lZCBmcm9tIExpdmVzIFdlbGwgTGl2ZWQgKDIwMjEsIEFwciAxMykNCjE5OTU6IERyLiBIYW5kZSBhZnRlciBncmFkdWF0aW5nIGZyb20gSUlUIEtoYXJhZ3B1ciBjb25jZXB0dWFsaXplZCBTRUxDTyBJbmRpYSBkdXJpbmcgaGlzIFBoRCBvbiBzdXN0YWluYWJsZSBlbmVyZ3kgYXQgdGhlIFVuaXZlcnNpdHkgb2YgTWFzc2FjaHVzZXR0cy4gRHVyaW5nIGEgZmllbGQgdmlzaXQgdG8gdGhlIERvbWluaWNhbiBSZXB1YmxpYywgaGUgd2FzIHN1cnByaXNlZCB0byBzZWUgdGhlIHBvb3IgdXNpbmcgc29sYXIgbGlnaHRzLg0KMTk5NTogVGhlIEdvdmVybm1lbnQgb2YgSW5kaWEgYW5kIHRoZSBHb3Zlcm5tZW50IG9mIERlbGhpIGpvaW50bHkgc2V0IHVwIGEgY29tcGFueSBjYWxsZWQgdGhlIERlbGhpIE1ldHJvIFJhaWwgQ29ycG9yYXRpb24gKERNUkMpIG9uIDMgTWF5IDE5OTUsIHdpdGggRHIuIEUuIFNyZWVkaGFyYW4gYXMgdGhlIG1hbmFnaW5nIGRpcmVjdG9yLg0KMTk5NTogSW50J2wgR2FuZGhpIFBlYWNlIFByaXplIGxhdW5jaGVkLg0KMTk5NTogU2FjaGluIFIuIFRlbmR1a2FyIGFuZCBBbmphbGkgVGVuZHVsa2FyIHdlZGRlZCB0b2dldGhlci4NCjE5OTU6IC5tcDMgaW52ZW50ZWQuDQoxOTk1OltHYW1pbmddIFdoaWxlIEZJRkEgOTUgZGlkIG5vdCBhZGQgbXVjaCBvdGhlciB0aGFuIHRoZSBhYmlsaXR5IHRvIHBsYXkgd2l0aCBjbHViIHRlYW1zLCBGSUZBIDk2IHB1c2hlZCB0aGUgYm91bmRhcmllcy4gRm9yIHRoZSBmaXJzdCB0aW1lIHdpdGggcmVhbCBwbGF5ZXIgbmFtZXMgYnkgb2J0YWluaW5nIHRoZSBGSUZQcm8gbGljZW5zZSwgdGhlIFBsYXlTdGF0aW9uLCBQQywgMzJYIGFuZCBTZWdhIFNhdHVybiB2ZXJzaW9ucyB1c2VkIEVBJ3MgIlZpcnR1YWwgU3RhZGl1bSIgZW5naW5lLCB3aXRoIDJEIHNwcml0ZSBwbGF5ZXJzIG1vdmluZyBhcm91bmQgYSByZWFsLXRpbWUgM0Qgc3RhZGl1bS4NCjE5OTUgKEp1bCAxOCk6W0Jvb2tdIEJhcmFjayBPYmFtYSdzIERyZWFtcyBmcm9tIE15IEZhdGhlcjogQSBTdG9yeSBvZiBSYWNlIGFuZCBJbmhlcml0YW5jZTsgRHJlYW1zIGZyb20gTXkgRmF0aGVyOiBBIFN0b3J5IG9mIFJhY2UgYW5kIEluaGVyaXRhbmNlICgyMDA2LCBPY3QgMTcpOyBPZiBUaGVlIEkgU2luZzogQSBMZXR0ZXIgdG8gTXkgRGF1Z2h0ZXJzICgyMDEwLCBOb3YgMTYpOyBBIFByb21pc2VkIExhbmQgKDIwMjAsIE5vdiAxNykNCjE5OTUoSmFuIDEpOltFbnZdIFRoZSBBZ3JlZW1lbnQgb24gQWdyaWN1bHR1cmUgKEFvQSkgaXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgb2YgdGhlIFdvcmxkIFRyYWRlIE9yZ2FuaXphdGlvbi4gSXQgd2FzIG5lZ290aWF0ZWQgZHVyaW5nIHRoZSBVcnVndWF5IFJvdW5kIG9mIHRoZSBHZW5lcmFsIEFncmVlbWVudCBvbiBUYXJpZmZzIGFuZCBUcmFkZSwgYW5kIGVudGVyZWQgaW50byBmb3JjZSB3aXRoIHRoZSBlc3RhYmxpc2htZW50IG9mIHRoZSBXVE8gb24gSmFudWFyeSAxLCAxOTk1LiBCbHVlLCBSZWQsIEFtYmVyIGFuZCBHcmVlbiBCb3ggb2Ygc3Vic2lkaWVzLg0KMTk5NTpbQ2luZW1hXSBOZWxzb24gTWFuZGVsYSwgaW4gaGlzIGZpcnN0IHRlcm0gYXMgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYSwgaW5pdGlhdGVzIGEgdW5pcXVlIHZlbnR1cmUgdG8gdW5pdGUgdGhlIEFwYXJ0aGVpZC10b3JuIGxhbmQ6IGVubGlzdCB0aGUgbmF0aW9uYWwgcnVnYnkgdGVhbSBvbiBhIG1pc3Npb24gdG8gd2luIHRoZSAxOTk1IFJ1Z2J5IFdvcmxkIEN1cC4gLSAgSW52aWN0dXMgKDIwMDkpDQoxOTk1OltDaW5lbWFdIEEgQ2xvY2t3b3JrIE9yYW5nZSgxOTcxKQ0KMTk5NTpbQ2luZW1hXSBEZWFkIEVuZCBEcml2ZS1JbigxOTg2KQ0KMTk5NTpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gU3BhY2Vnb2R6aWxsYSgxOTk0KQ0KMTk5NTpbQ2luZW1hXSBIZWFydGJlZXBzKDE5ODEpDQoxOTk1OltDaW5lbWFdIFRoZSBNdW1teSdzIEN1cnNlKDE5NDQpDQoxOTk1IChEZWMpOltTcGFjZV0gU29sYXIgYW5kIEhlbGlvc3BoZXJpYyBPYnNlcnZhdG9yeSAoU29ITykgd2FzIGxhdW5jaGVkIGluIERlY2VtYmVyIDE5OTUgYXMgYSBqb2ludCBtaXNzaW9uIGJldHdlZW4gdGhlIEV1cm9wZWFuIFNwYWNlIEFnZW5jeSAoRVNBKSBhbmQgTkFTQSwgU29ITyB3YXMgZGVzaWduZWQgdG8gb3JiaXQgdGhlIFN1biB0byBsZWFybiBhYm91dCB0aGUgc3RydWN0dXJlIG9mIHRoZSBzdGFy4oCZcyBpbnRlcmlvciBhbmQgaXRzIG91dGVyIGF0bW9zcGhlcmUsIGFzIHdlbGwgYXMgdG8gaW52ZXN0aWdhdGUgdGhlIGJlaGF2aW9yIG9mIHNvbGFyIHdpbmRzLiBJdCB3YXMgZXhwZWN0ZWQgdG8gY29tcGxldGUgaXRzIG1pc3Npb24gaW4gMTk5OC4gSW5zdGVhZCwgaXQgaXMgc3RpbGwgYWN0aXZlIHRvZGF5LCBhbmQgaXMgbm93IGxpa2VseSB0byBrZWVwIHdvcmtpbmcgdW50aWwgMjAyNSwgd2hlbiBpdCB3aWxsIGhhdmUgYmVlbiBpbiBzcGFjZSBmb3IgMzAgeWVhcnMuDQoxOTk1OltQaHlzaWNzXVtTcGFjZV1bUmVzZWFyY2hdIFByaW9yIHRvIDE5OTUsIHRoZW9yaXN0cyBiZWxpZXZlZCB0aGF0IHRoZXJlIHdlcmUgZml2ZSBjb25zaXN0ZW50IHZlcnNpb25zIG9mIHN1cGVyc3RyaW5nIHRoZW9yeSAodHlwZSBJLCB0eXBlIElJQSwgdHlwZSBJSUIsIGFuZCB0d28gdmVyc2lvbnMgb2YgaGV0ZXJvdGljIHN0cmluZyB0aGVvcnkpLiBUaGlzIHVuZGVyc3RhbmRpbmcgY2hhbmdlZCBpbiAxOTk1IHdoZW4gRWR3YXJkIFdpdHRlbiBzdWdnZXN0ZWQgdGhhdCB0aGUgZml2ZSB0aGVvcmllcyB3ZXJlIGp1c3Qgc3BlY2lhbCBsaW1pdGluZyBjYXNlcyBvZiBhbiBlbGV2ZW4tZGltZW5zaW9uYWwgdGhlb3J5IGNhbGxlZCBNLXRoZW9yeS4gV2l0dGVuJ3MgY29uamVjdHVyZSB3YXMgYmFzZWQgb24gdGhlIHdvcmsgb2YgYSBudW1iZXIgb2Ygb3RoZXIgcGh5c2ljaXN0cywgaW5jbHVkaW5nIEFzaG9rZSBTZW4sIENocmlzIEh1bGwsIFBhdWwgVG93bnNlbmQsIGFuZCBNaWNoYWVsIER1ZmYuIEhpcyBhbm5vdW5jZW1lbnQgbGVkIHRvIGEgZmx1cnJ5IG9mIHJlc2VhcmNoIGFjdGl2aXR5IG5vdyBrbm93biBhcyB0aGUgc2Vjb25kIHN1cGVyc3RyaW5nIHJldm9sdXRpb24uDQoxOTk1OltDcmltZV1bSW5kaWFdIE11cmRlciBvZiBNdW1iYWktYmFzZWQgYnVpbGRlciBQcmFkZWVwIEphaW4gYnkgQWJ1IFNhbGVtDQoxOTk1OiBGb3J0dW5lIEhvdGVscyBpbiBJbmRpYSBpcyBvd25lZCBieSBpdHMgcGFyZW50IGNvbXBhbnksIElUQyBMdGQuLCB3aGljaCBlc3RhYmxpc2hlZCBGb3J0dW5lIEhvdGVscyBpbiAxOTk1IGFzIGEgc3Vic2lkaWFyeSB0byBwcm92aWRlIG1pZC1tYXJrZXQgdG8gdXBzY2FsZSBob3NwaXRhbGl0eSBzZXJ2aWNlcy4gSG93ZXZlciwgYSBzZXBhcmF0ZSBncm91cCwgRm9ydHVuZSBHcm91cCBvZiBIb3RlbHMsIGJhc2VkIGluIHRoZSBVbml0ZWQgQXJhYiBFbWlyYXRlcyAoVUFFKSBhbmQgZm91bmRlZCBieSBQcmF2ZWVuIFNoZXR0eSwgYWxzbyBvcGVyYXRlcyBhIGRpZmZlcmVudCBzZXQgb2YgaG90ZWxzIGluIHRoYXQgcmVnaW9uLg0KMTk5NTpbVUtdIENhbWlsbGEgaXMgUXVlZW4gb2YgdGhlIFVuaXRlZCBLaW5nZG9tIGFuZCAxNCBvdGhlciBDb21tb253ZWFsdGggcmVhbG1zIGFzIHRoZSB3aWZlIG9mIEtpbmcgQ2hhcmxlcyBJSUkuIENhbWlsbGEgd2FzIHJhaXNlZCBpbiBFYXN0IFN1c3NleCBhbmQgU291dGggS2Vuc2luZ3RvbiBpbiBFbmdsYW5kIGFuZCBlZHVjYXRlZCBpbiBFbmdsYW5kLCBTd2l0emVybGFuZCBhbmQgRnJhbmNlLiBJbiAxOTczLCBzaGUgbWFycmllZCBCcml0aXNoIEFybXkgb2ZmaWNlciBBbmRyZXcgUGFya2VyIEJvd2xlczsgdGhleSBkaXZvcmNlZCBpbiAxOTk1Lg0KDQoxOTk2OltHZW9Qb2xpdGljc11bQnVzaW5lc3NdIE1vbmdvbGlhIHdhcyBncmFudGVkIG9ic2VydmVyIHN0YXR1cyB0byBUUkFDRUNBLg0KMTk5NiAoNyBBdWd1c3QpOltSZXNlYXJjaF1bU3BhY2VdIE5BU0EgYW5ub3VuY2VkIGZvc3NpbGl6ZWQgZXZpZGVuY2Ugb2YgYW5jaWVudCBsaWZlIGluIG1ldGVvcml0ZSBBTEggODQwMDEgZnJvbSBNYXJzLg0KMTk5NiAoT2N0IDI3KTpbUmVzZWFyY2hdW1NwYWNlXSBnZW5ldGljaXN0cyBzaG93ZWQgZXZpZGVuY2UgdGhhdCBtYW55IGdlbmVzIGFyZSBtdWNoIG9sZGVyIHRoYW4gdGhlIGZvc3NpbCByZWNvcmQgd291bGQgaW5kaWNhdGUuIFN1YnNlcXVlbnQgc3R1ZGllcyBoYXZlIHN0cmVuZ3RoZW5lZCB0aGlzIGZpbmRpbmcuDQoxOTk2OltCdXNpbmVzc11bR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2hlbiB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4gc2lnbmVkIHRoZSBUcmVhdHkgb24gRGVlcGVuaW5nIE1pbGl0YXJ5IFRydXN0IGluIEJvcmRlciBSZWdpb25zIGluIFNoYW5naGFpLiBPbiAyNCBBcHJpbCAxOTk3IHRoZSBzYW1lIGNvdW50cmllcyBzaWduZWQgdGhlIFRyZWF0eSBvbiBSZWR1Y3Rpb24gb2YgTWlsaXRhcnkgRm9yY2VzIGluIEJvcmRlciBSZWdpb25zIGluIGEgbWVldGluZyBpbiBNb3Njb3csIFJ1c3NpYS4gT24gMjAgTWF5IDE5OTcgUnVzc2lhbiBQcmVzaWRlbnQgQm9yaXMgWWVsdHNpbiBhbmQgQ2hpbmVzZSBQcmVzaWRlbnQgSmlhbmcgWmVtaW4gc2lnbmVkIGEgZGVjbGFyYXRpb24gb24gYSAibXVsdGlwb2xhciB3b3JsZCIuDQoxOTk2OiAxOTk2IE1vdW50IEV2ZXJlc3QgRGlzYXN0ZXIsIGluIHdoaWNoIGVpZ2h0IHBlb3BsZSBkaWVkIHdoaWxlIG9uIGFuIGV4cGVkaXRpb24gdG8gc2NhbGUgdGhlIGluZmFtb3VzIHN1bW1pdC4gT25lIG9mIHRoZSBjbGltYmVycyB3aG8gbG9zdCBoaXMgbGlmZSB3YXMgQW5keSBIYXJyaXMsIHBsYXllZCBpbiBFdmVyZXN0IGJ5IE1hcnRpbiBIZW5kZXJzb24uIEhhcnJpcyB3YXMgb25lIG9mIHRoZSBndWlkZXMgZm9yIHRoZSBBZHZlbnR1cmUgQ29uc3VsdGFudHMsIGFsb25nIHdpdGggUm9iIEhhbGwgYW5kIE1pa2UgR3Jvb20uIEluIHRoZSBmaWxtLCBoZSBhcHBlYXJzIHRvIGRpZSB3aGlsZSB3aXRoIEhhbGwsIGZhbGxpbmcgb2ZmIGEgY2xpZmYgYWZ0ZXIgYSBoYWxsdWNpbmF0aW9uLiBCdXQgUm9iIEhhbGwgbmV2ZXIgcmVwb3J0ZWQgdGhpcywgYW5kIHNpbmNlIGhlIGRpZWQgc2hvcnRseSB0aGVyZWFmdGVyLCB0aGVyZSBpcyBubyB3YXkgdG8gY29uZmlybSB0aGUgY2lyY3Vtc3RhbmNlcyBzdXJyb3VuZGluZyBIYXJyaXMnIGRlYXRoLg0KMTk5NjpbQ29tcHV0aW5nXVtRdWFudHVtXSAgTG92IEdyb3ZlciBkZXZpc2VkIGFuIGFsZ29yaXRobSAoR3JvdmVyJ3MgYWxnb3JpdGhtKSB0aGF0IGNvdWxkIHNlYXJjaCBhbiB1bnNvcnRlZCBkYXRhYmFzZSBpbiBzcXVhcmUgcm9vdCB0aW1lIG9uIGEgcXVhbnR1bSBjb21wdXRlciwgd2hpY2ggd291bGQgb3V0cGVyZm9ybSBhbnkgY2xhc3NpY2FsIGFsZ29yaXRobS4NCjE5OTY6W1VTXSBCYXJhY2sgT2JhbWEgd2FzIGVsZWN0ZWQgdG8gdGhlIElsbGlub2lzIFNlbmF0ZSwgc3VjY2VlZGluZyBEZW1vY3JhdGljIFN0YXRlIFNlbmF0b3IgQWxpY2UgUGFsbWVyIGZyb20gSWxsaW5vaXMncyAxM3RoIERpc3RyaWN0LCB3aGljaCwgYXQgdGhhdCB0aW1lLCBzcGFubmVkIENoaWNhZ28gU291dGggU2lkZSBuZWlnaGJvcmhvb2RzIGZyb20gSHlkZSBQYXJr4oCTS2Vud29vZCBzb3V0aCB0byBTb3V0aCBTaG9yZSBhbmQgd2VzdCB0byBDaGljYWdvIExhd24uDQoxOTk2OltVS10gQ2hhcmxlcyBJSUkgYW5kIERpYW5hIGdldHMgZGl2b3JjZWQuDQoxOTk2IChKYW4gMjUpOltCb29rXSBQZXRlciBMeW5jaCAmIEpvaG4gUm90aGNoaWxkJ3MgTGVhcm4gdG8gRWFybjogQSBCZWdpbm5lcidzIEd1aWRlIHRvIHRoZSBCYXNpY3Mgb2YgSW52ZXN0aW5nIGFuZCBCdXNpbmVzcy4NCjE5OTYgKEphbik6W0NyaW1lXVtJbmRpYV0gQW5lZXMgSWJyYWhpbSBhcnJlc3RlZCBpbiBCYWhyYWluLCBzaGlmdGVkIHRvIER1YmFpIGFsbGVnZWRseSBvbiB0aGUgaW50ZXJ2ZW50aW9uIG9mIHNvbWUgb2YgRHViYWkncyBydWxpbmcgbm90YWJsZXMsIGFuZCB3YXMgdGhlbiBhbGxvd2VkIHRvIHNsaXAgYXdheSB0byBLYXJhY2hpLCBQYWtpc3Rhbi4NCjE5OTY6IE5hdGlvbmFsIEFlcm9zcGFjZSBMYWJvcmF0b3JpZXMsIEluZGlhIGluZGlnZW5vdXNseSBidWlsdCBGTE9TT0xWRVIsIEluZGlhJ3MgZmlyc3Qgc3VwZXJjb21wdXRlci4gSXQgd2FzIHJlcGxpY2F0ZWQgYW5kIGluc3RhbGxlZCBhdCBJQ0FEIE1vc2NvdyBpbiAxOTkxIHVuZGVyIFJ1c3NpYW4gY29sbGFib3JhdGlvbi4NCjE5OTY6IEluZGlhL1Bha2lzdGFuL1NyaSBMYW5rYSAxOTk2Lg0KMTk5NjpbQ29tcHV0aW5nXVt3d3ddIE1hcmlvIDY0IGdhbWUgcmFuIDEwMCBtaWxsaW9uIGNhbGN1bGF0aW9ucyBwZXIgc2Vjb25kLCA1NDAgbWlsbGlvbiAoSGFsZi1MaWZlKSBpbiAxOTk4LCBNaW5lY3JhZnQgKDIwMTEpIHJ1bm5pbmcgMTAwIGJpbGxpb24gY2FsY3VsYXRpb25zLCBDeWJlcnB1bmsgMjA3NyAobW9zdCByZWFsaXN0aWMgdmlkZW8gZ2FtZSAyMDI0KSwgeW91IG5lZWQgYSBncmFwaGljcyBjYXJkIHRoYXQgY2FuIHBlcmZvcm0gYXJvdW5kIDM2IHRyaWxsaW9uIGNhbGMgcGVyIHNlY29uZC4NCjE5OTY6IFByb2YgTWFsY29sbSBIZWF0aC4gUHJvZmVzc29yIG9mIEdyZWVrIExhbmd1YWdlIGFuZCBMaXRlcmF0dXJlIEBsZWVkcy5hYy51aywgdHJhbnNsYXRlZCBBcmlzdG90bGUncyBQb2V0aWNzLg0KMTk5NjogVGhlIDU2SyBtb2RlbSB3YXMgaW52ZW50ZWQgYnkgRHIuIEJyZW50IFRvd25zaGVuZA0KMTk5NiAoRmViIDEzKTogTmVwYWxlc2UgQ2l2aWwgV2FyIHN0YXJ0ZWQuIFRoZSBNYW9pc3QgUmViZWxsaW9uIChsYWJlbGxlZCB0aGUgUGVvcGxlJ3MgV2FyIGJ5IHRoZW4gQ1BOKE1hb2lzdCkpIHdhcyBhbiBhcm1lZCBjb25mbGljdCBhZ2FpbnN0IEdvdmVybm1lbnQgb2YgTmVwYWwgKHRoZW4gSE1HIG9mIE5lcGFsKSBmb3VnaHQgZnJvbSAxOTk2IHRvIDIwMDYuIFRoZSByZWJlbGxpb24gd2FzIGxhdW5jaGVkIGJ5IHRoZSBDb21tdW5pc3QgUGFydHkgb2YgTmVwYWwgKE1hb2lzdCkgb24gMTMgRmVicnVhcnkgMTk5NiB3aXRoIHRoZSBtYWluIGFpbSBvZiBvdmVydGhyb3dpbmcgdGhlIE5lcGFsZXNlIG1vbmFyY2h5IGFuZCBlc3RhYmxpc2hpbmcgYSAnUGVvcGxlJ3MgUmVwdWJsaWMnLiBJdCBlbmRlZCB3aXRoIHRoZSBDb21wcmVoZW5zaXZlIFBlYWNlIEFjY29yZCBzaWduZWQgb24gMjEgTm92ZW1iZXIgMjAwNi4NCjE5OTYgKE1hciAxKTogW0dlb1BvbGl0aWNzXSBUaGUgQXNpYeKAk0V1cm9wZSBNZWV0aW5nIChBU0VNKSBpcyBhbiBBc2lhbuKAk0V1cm9wZWFuIHBvbGl0aWNhbCBkaWFsb2d1ZSBmb3J1bSB0byBlbmhhbmNlIHJlbGF0aW9ucyBhbmQgdmFyaW91cyBmb3JtcyBvZiBjb29wZXJhdGlvbiBiZXR3ZWVuIGl0cyBwYXJ0bmVycy4gSXQgd2FzIG9mZmljaWFsbHkgZXN0YWJsaXNoZWQgYXQgdGhlIDFzdCBBU0VNIFN1bW1pdCAoQVNFTTEpIGluIEJhbmdrb2ssIFRoYWlsYW5kLCBieSB0aGUgdGhlbiAxNSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aGUgRXVyb3BlYW4gQ29tbWlzc2lvbiwgdGhlIHRoZW4gNyBNZW1iZXIgU3RhdGVzIG9mIHRoZSBBc3NvY2lhdGlvbiBvZiBTb3V0aGVhc3QgQXNpYW4gTmF0aW9ucyAoQVNFQU4pLCBhbmQgdGhlIGluZGl2aWR1YWwgY291bnRyaWVzIG9mIENoaW5hLCBKYXBhbiwgYW5kIFNvdXRoIEtvcmVhLiBBIHNlcmllcyBvZiBlbmxhcmdlbWVudHMgc2F3IGFkZGl0aW9uYWwgRVUgTWVtYmVyIFN0YXRlcyBqb2luIGFzIHdlbGwgYXMgSW5kaWEsIE1vbmdvbGlhLCBQYWtpc3RhbiBhbmQgdGhlIEFTRUFOIFNlY3JldGFyaWF0IGluIDIwMDgsIEF1c3RyYWxpYSwgTmV3IFplYWxhbmQgYW5kIFJ1c3NpYSBpbiAyMDEwLCBCYW5nbGFkZXNoLCBOb3J3YXksIGFuZCBTd2l0emVybGFuZCBpbiAyMDEyLCBhcyB3ZWxsIGFzIENyb2F0aWEsIGFuZCBLYXpha2hzdGFuIGluIDIwMTQuDQoxOTk2IChBcHIgMjYpOiBbR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2l0aCB0aGUgc2lnbmluZyBvZiB0aGUgVHJlYXR5IG9uIERlZXBlbmluZyBNaWxpdGFyeSBUcnVzdCBpbiBCb3JkZXIgUmVnaW9ucyBpbiBTaGFuZ2hhaSBieSB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4uIExhdGVyIG9uIEp1biAxNSwgMjAwMSBpdCBnb3QgcmVuYW1lZCBhcyBTaGFuZ2hhaSBDb29wZXJhdGlvbiBPcmdhbmlzYXRpb24gKFNDTykgb3IgU2hhbmdoYWkgUGFjdCANCjE5OTYgKE1heSAxNik6IEF0YWwgQmloYXJpIFZhanBheWVlIGJlY29tZXMgUE0gb2YgSW5kaWEgZm9yIHRoZSB2ZXJ5IGZpcnN0IHRpbWUgZm9yIDE2IGRheXMuDQoxOTk2IChKdW4gMSk6IEF0YWwgQmloYXJpIFZhanBheWVlIHJlc2lnbnMuIEhEIERldmUgR293ZGEgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NiAoQXVnIDE0KTpbcmVzZWFyY2hdW2V4dHJlbWVdIEthcmVuIEVsaXphYmV0aCBXZXR0ZXJoYWhuIChPY3RvYmVyIDE2LCAxOTQ4IOKAkyBKdW5lIDgsIDE5OTcpLCBhbHNvIGtub3duIGFzIEthcmVuIFdldHRlcmhhaG4gSmVubmV0dGUsIHdhcyBhbiBBbWVyaWNhbiBwcm9mZXNzb3Igb2YgY2hlbWlzdHJ5IGF0IERhcnRtb3V0aCBDb2xsZWdlLCBOZXcgSGFtcHNoaXJlLCB3aG8gc3BlY2lhbGl6ZWQgaW4gdG94aWMgbWV0YWwgZXhwb3N1cmUuIFNoZSBkaWVkIG9mIG1lcmN1cnkgcG9pc29uaW5nIGF0IHRoZSBhZ2Ugb2YgNDggZHVlIHRvIGFjY2lkZW50YWwgZXhwb3N1cmUgdG8gdGhlIGV4dHJlbWVseSB0b3hpYyBvcmdhbmljIG1lcmN1cnkgY29tcG91bmQgZGltZXRoeWxtZXJjdXJ5IChIZyhDSDMpMikuIFByb3RlY3RpdmUgZ2xvdmVzIGluIHVzZSBhdCB0aGUgdGltZSBvZiB0aGUgaW5jaWRlbnQgcHJvdmlkZWQgaW5zdWZmaWNpZW50IHByb3RlY3Rpb24sIGFuZCBleHBvc3VyZSB0byBvbmx5IGEgc2luZ2xlIGRyb3Agb3IgdHdvIG9mIHRoZSBkaW1ldGh5bG1lcmN1cnkgYWJzb3JiZWQgdGhyb3VnaCB0aGUgZ2xvdmVzIHByb3ZlZCB0byBiZSBmYXRhbCBhZnRlciBsZXNzIHRoYW4gYSB5ZWFyLiBUZXN0cyBsYXRlciByZXZlYWxlZCB0aGF0IGRpbWV0aHlsbWVyY3VyeSBjYW4sIGluIGZhY3QsIHJhcGlkbHkgcGVybWVhdGUgc2V2ZXJhbCBraW5kcyBvZiBsYXRleCBnbG92ZXMgYW5kIGVudGVyIHRoZSBza2luIHdpdGhpbiBhYm91dCAxNSBzZWNvbmRzLiBIZXIgZXhwb3N1cmUgd2FzIGxhdGVyIGNvbmZpcm1lZCBieSBoYWlyIGFuYWx5c2lzLCB3aGljaCBzaG93ZWQgYSBkcmFtYXRpYyBqdW1wIGluIG1lcmN1cnkgbGV2ZWxzIDE3IGRheXMgYWZ0ZXIgdGhlIGluaXRpYWwgYWNjaWRlbnQsIHBlYWtpbmcgYXQgMzkgZGF5cywgZm9sbG93ZWQgYnkgYSBncmFkdWFsIGRlY2xpbmUuIEFwcHJveGltYXRlbHkgdGhyZWUgbW9udGhzIGFmdGVyIHRoZSBpbml0aWFsIGFjY2lkZW50IFdldHRlcmhhaG4gYmVnYW4gZXhwZXJpZW5jaW5nIGJyaWVmIGVwaXNvZGVzIG9mIGFiZG9taW5hbCBkaXNjb21mb3J0IGFuZCBub3RpY2VkIHNpZ25pZmljYW50IHdlaWdodCBsb3NzLiBUaGUgbW9yZSBkaXN0aW5jdGl2ZSBuZXVyb2xvZ2ljYWwgc3ltcHRvbXMgb2YgbWVyY3VyeSBwb2lzb25pbmcsIGluY2x1ZGluZyBsb3NzIG9mIGJhbGFuY2UgYW5kIHNsdXJyZWQgc3BlZWNoLCBhcHBlYXJlZCBpbiBKYW51YXJ5IDE5OTcsIGZpdmUgbW9udGhzIGFmdGVyIHRoZSBhY2NpZGVudC4gSGVyIGJsb29kIGFuZCB1cmluYXJ5IG1lcmN1cnkgY29udGVudCB3ZXJlIG1lYXN1cmVkIGF0IDQsMDAwIM68Zy9MIGFuZCAyMzQgzrxnL0wsIHJlc3BlY3RpdmVseeKAlGJvdGggbWFueSB0aW1lcyB0aGVpciByZXNwZWN0aXZlIHRveGljIHRocmVzaG9sZHMgb2YgMjAwIM68Zy9MIGFuZCA1MCDOvGcvTCAoYmxvb2QgYW5kIHVyaW5lIHJlZmVyZW5jZSByYW5nZXMgYXJlIDEgdG8gOCDOvGcvTCBhbmQgMSB0byA1IM68Zy9MKS4NCjE5OTYgKERlYyA0IDA2OjU4OjA3IFVUQyk6W1NwYWNlXVtNYXJzXVtFYXJ0aF0gTGF1bmNoIG9mIE1hcnMgUGF0aGZpbmRlciBvbiBEZWx0YSBJSSA3OTI1ICgjRDI0MCkNCnJvY2tldCBmcm9tIENhcGUgQ2FuYXZlcmFsIFNMQy0xNy4gVG8gcHJvdmUgdGhhdCB0aGUgZGV2ZWxvcG1lbnQgb2YgImZhc3RlciwgYmV0dGVyIGFuZCBjaGVhcGVyIiBzcGFjZWNyYWZ0IHdhcyBwb3NzaWJsZSAod2l0aCB0aHJlZSB5ZWFycyBmb3IgZGV2ZWxvcG1lbnQgYW5kIGEgY29zdCB1bmRlciAkMTUwIG1pbGxpb24gZm9yIHRoZSBsYW5kZXIsIGFuZCAkMjUgbWlsbGlvbiBmb3IgdGhlIHJvdmVyKS4gVG8gc2hvdyB0aGF0IGl0IHdhcyBwb3NzaWJsZSB0byBzZW5kIGEgbG9hZCBvZiBzY2llbnRpZmljIGluc3RydW1lbnRzIHRvIGFub3RoZXIgcGxhbmV0IHdpdGggYSBzaW1wbGUgc3lzdGVtIGFuZCBhdCBvbmUtZmlmdGVlbnRoIHRoZSBjb3N0IG9mIGEgVmlraW5nIG1pc3Npb24uIChGb3IgY29tcGFyaXNvbiwgdGhlIFZpa2luZyBtaXNzaW9ucyBjb3N0ICQ5MzUgbWlsbGlvbiBpbiAxOTc0IG9yICQzLjUgYmlsbGlvbiBpbiAxOTk3IGRvbGxhcnMuKS4gVG8gZGVtb25zdHJhdGUgTkFTQSdzIGNvbW1pdG1lbnQgdG8gbG93LWNvc3QgcGxhbmV0YXJ5IGV4cGxvcmF0aW9uIGJ5IGZpbmlzaGluZyB0aGUgbWlzc2lvbiB3aXRoIGEgdG90YWwgZXhwZW5kaXR1cmUgb2YgJDI4MCBtaWxsaW9uLCBpbmNsdWRpbmcgdGhlIGxhdW5jaCB2ZWhpY2xlIGFuZCBtaXNzaW9uIG9wZXJhdGlvbnMuDQoxOTk2OiBhIHJhaWQgb24gdGhlIEFuaW1hbCBIdXNiYW5kcnkgZGVwYXJ0bWVudOKAmXMgb2ZmaWNlcyBpbiBDaGFpYmFzYSwgQmloYXIgdW5mb2xkZWQgdGhlIFJzLjk1MCBjcm9yZSBmb2RkZXIgc2NhbSwgaW4gd2hpY2ggdGhlIEJpaGFyIGNoaWVmIG1pbmlzdGVyIExhbHUgUHJhc2FkIFlhZGF2IGNhdGNoIHVwIGluIGEgbGlmZWxvbmcgdHVzc2xlIHdpdGggdGhlIENCSS4NCjE5OTY6W0Jvb2tdW0FkdmVudHVyZV0gSm9uIEtyYWthdWVyJ3MgSW50byB0aGUgV2lsZC4NCjE5OTY6W0NvbXB1dGluZ10gVGhlIFZpZGVvTEFOIHNvZnR3YXJlIG9yaWdpbmF0ZWQgYXMgYSBGcmVuY2ggYWNhZGVtaWMgcHJvamVjdC4gVkxDIHVzZWQgdG8gc3RhbmQgZm9yICJWaWRlb0xBTiBDbGllbnQiIHdoZW4gVkxDIHdhcyBhIGNsaWVudCBvZiB0aGUgVmlkZW9MQU4gcHJvamVjdCwgb2ZmaWNpYWxseSByZWxlYXNlZCB1bmRlciBHTlUgR1BMIG9uIDIwMDEgKEZlYiAxKS4NCjE5OTY6W01lbWVdIERhbmNpbmcgQmFieSBTY3JlZW5zYXZlcg0KMTk5NjpbU3BhY2VYXSBUaGUgZW50aXJlIHByb2Nlc3MgZm9yIHRoZSBKYW1lcyBXZWJiIFNwYWNlIFRlbGVzY29wZSAoSldTVCkgZnJvbSBpbml0aWFsIGNvbmNlcHQgdG8gbGF1bmNoIHNwYW5uZWQgYXBwcm94aW1hdGVseSAyNSB5ZWFycywgd2l0aCBpbml0aWFsIGRlc2lnbnMgYmVnaW5uaW5nIGluIDE5OTYgYW5kIHRoZSB0ZWxlc2NvcGUgbGF1bmNoaW5nIGluIDIwMjEsIGJ1dCBhIHNpZ25pZmljYW50IHBvcnRpb24gb2YgdGhpcyB3YXMgc3BlbnQgaW4gZGVzaWduLCB0ZXN0aW5nLCBhbmQgb3ZlcmNvbWluZyBtYWpvciByZWRlc2lnbnMgYW5kIGRlbGF5cywgbm90IGp1c3QgYXNzZW1ibHkuIA0KMTk5NiAoRmViIDI4KTpbRGVsaGldIEluZGlyYXB1cmFtLCBHaGF6aWFiYWQgd2FzIGVzdGQgd2hlbiBpdHMgZm91bmRhdGlvbiBzdG9uZSAoS2FsYSBQYXRoYXIpIHdhcyBpbmF1Z3VyYXRlZCBieSBTaCBNb3RpbGFsIFZvcmEsIHRoZW4gR292ZXJub3Igb2YgVVAuICgyMDIxKSBJJ3B1cmFtIEV4dG4gdG8gYmUgYnVpbHQgb24gMTIgYWNyZXMgb25seSwgY29uY2VpdmVkIGluIDIwMDQuDQoxOTk2OltCb29rXVtNaWxpdGFyeV1bQ3VsdHVyZV1bRVVdW1VTQV0gR2VvcmdlIFIuUi4gTWFydGluIGlzIHRoZSBBbWVyaWNhbiBhdXRob3Igb2YgdGhlIGVwaWMgZmFudGFzeSBib29rIHNlcmllcyBBIFNvbmcgb2YgSWNlIGFuZCBGaXJlLCB3aGljaCBiZWdhbiB3aXRoIEEgR2FtZSBvZiBUaHJvbmVzICgxOTk2KSBhbmQgc2VydmVkIGFzIHRoZSBiYXNpcyBmb3IgSEJPJ3MgbWFzc2l2ZWx5IHBvcHVsYXIgR2FtZSBvZiBUaHJvbmVzIFRWIHNlcmllcy4gQSBTb25nIG9mIEljZSBhbmQgRmlyZSBpcyBhIHNlcmllcyBvZiBoaWdoIGZhbnRhc3kgbm92ZWxzIGJ5IHRoZSBBbWVyaWNhbiBhdXRob3IgR2VvcmdlIFIuIFIuIE1hcnRpbi4gTWFydGluIGJlZ2FuIHdyaXRpbmcgdGhlIGZpcnN0IHZvbHVtZSwgQSBHYW1lIG9mIFRocm9uZXMsIGluIDE5OTEsIGFuZCBwdWJsaXNoZWQgaXQgaW4gMTk5Ni4gTWFydGluLCB3aG8gb3JpZ2luYWxseSBlbnZpc2lvbmVkIHRoZSBzZXJpZXMgYXMgYSB0cmlsb2d5LCBoYXMgcmVsZWFzZWQgZml2ZSBvdXQgb2Ygc2V2ZW4gcGxhbm5lZCB2b2x1bWVzLiANCg0KW0dlbmVyYXRpb25dIE1pbGxlbm5pYWwgZ2VuZXJhdGlvbiAoMTk4MeKAkzE5OTYpIGVuZHM7IGxhc3RlZCBmb3IgMTUgeWVhcnMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICA1MCB5ZWFycyBvZiBJbmRlcGVuZGVudCBJbmRpYSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSANCg0KW0dlbmVyYXRpb25dIEdlbiBaICgxOTk34oCTMjAxMikgc3RhcnRzOyBhbmQgZXhpc3RzIGZvciBuZXh0IDE1IHllYXJzLg0KDQoxOTk3OltXaG9dW1Jlc2VhcmNoXVtDb21wdXRpbmddW1RlY2hdW0N1bHR1cmVdIFZMQyBNZWRpYSBQbGF5ZXIgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBzdHVkZW50cyBhdCB0aGUgRnJlbmNoIGVuZ2luZWVyaW5nIHNjaG9vbCDDiWNvbGUgQ2VudHJhbGUgUGFyaXMgaW4gMTk5Ni4gV2hpbGUgaXQgc3RhcnRlZCBhcyBhbiBhY2FkZW1pYyBwcm9qZWN0IChWaWRlb0xBTikgdG8gc3RyZWFtIHZpZGVvIG92ZXIgYSBjYW1wdXMgbmV0d29yaywgaXRzIGRldmVsb3BtZW50IGFuZCBtb2Rlcm5pemF0aW9uIHdlcmUgbGF0ZXIgbGVkIGJ5IEplYW4tQmFwdGlzdGUgS2VtcGYuIA0KMTk5NzpbUmVzZWFyY2hdW1NwYWNlXSAyOSBKdWx5IDE5OTc6IGEgTkFTQSBzY2llbnRpc3QgYW5ub3VuY2VkIGV2aWRlbmNlIG9mIGZvc3NpbGl6ZWQgbWljcm9zY29waWMgbGlmZSBmb3JtcyBpbiBhIG1ldGVvcml0ZSBub3QgZnJvbSBhbnkga25vd24gcGxhbmV0Lg0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgR3JvdXAgb2YgRWlnaHQgKEc4KSB3YXMgYW4gaW50ZXJnb3Zlcm5tZW50YWwgcG9saXRpY2FsIGZvcnVtIGZyb20gMTk5NyB0byAyMDE0LCBmb3JtZWQgYnkgaW5jb3Jwb3JhdGluZyBSdXNzaWEgaW50byB0aGUgRzcuIFRoZSBHOCBiZWNhbWUgdGhlIEc3IGFnYWluIGFmdGVyIFJ1c3NpYSB3YXMgZXhwZWxsZWQgaW4gMjAxNCBhZnRlciB0aGUgUnVzc2lhbiBhbm5leGF0aW9uIG9mIENyaW1lYS4gRm91bmRlZDogMTk5NywgRGVudmVyLCBDb2xvcmFkbywgVW5pdGVkIFN0YXRlcw0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBGb3VuZGVkOiA2IEp1bmUgMTk5NywgVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiAoQklNU1RFQykgaXMgYW4gaW50ZXJuYXRpb25hbCBvcmdhbml6YXRpb24gb2Ygc2V2ZW4gU291dGggQXNpYW4gYW5kIFNvdXRoZWFzdCBBc2lhbiBuYXRpb25zLCBob3VzaW5nIDEuNzMgYmlsbGlvbiBwZW9wbGUgYW5kIGhhdmluZyBhIGNvbWJpbmVkIGdyb3NzIGRvbWVzdGljIHByb2R1Y3Qgb2YgVVMkNS4yIHRyaWxsaW9uLg0KMTk5NzpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gYnVpbHQgdGhlIGZpcnN0IGV4cGVyaW1lbnRhbCBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCBjb3VsZCBtYW5pcHVsYXRlIDcgcXViaXRzIHVzaW5nIG51Y2xlYXIgbWFnbmV0aWMgcmVzb25hbmNlIChOTVIpIHRlY2huaXF1ZXMuDQoxOTk3IChKdWwgNCk6W1NwYWNlXVtNYXJzXSBUaGUgTWFycyBQYXRoZmluZGVyIGVuZHVyZWQgYSAzMC1zZWNvbmQgY29tbXVuaWNhdGlvbnMgYmxhY2tvdXQgYXMgaXQgZW50ZXJlZCBNYXJzJyBhdG1vc3BoZXJlLiBJdCBsYW5kZWQgYXQgQXJlcyBWYWxsaXMsIENocnlzZSBQbGFuaXRpYSwgTWFycyAxOcKwN+KAsjQ44oCzTiAzM8KwMTPigLIxMuKAs1cuIE1hcnMgUGF0aGZpbmRlciAoTUVTVVIgUGF0aGZpbmRlcikgaXMgYW4gQW1lcmljYW4gcm9ib3RpYyBzcGFjZWNyYWZ0IHRoYXQgbGFuZGVkIGEgYmFzZSBzdGF0aW9uIHdpdGggYSByb3ZpbmcgcHJvYmUgb24gTWFycyBpbiAxOTk3LiBJdCBjb25zaXN0ZWQgb2YgYSBsYW5kZXIsIHJlbmFtZWQgdGhlIENhcmwgU2FnYW4gTWVtb3JpYWwgU3RhdGlvbiwgYW5kIGEgbGlnaHR3ZWlnaHQsIDEwLjYga2cgKDIzIGxiKSB3aGVlbGVkIHJvYm90aWMgTWFycyByb3ZlciBuYW1lZCBTb2pvdXJuZXIsIHRoZSBmaXJzdCByb3ZlciB0byBvcGVyYXRlIG91dHNpZGUgdGhlIEVhcnRo4oCTTW9vbiBzeXN0ZW0uDQoxOTk3OltCb29rXSBNaXRjaCBBbGJvbSdzIFR1ZXNkYXlzIHdpdGggTW9ycmllLg0KMTk5NzpbR2FtaW5nXSBHcmFuZCBUaGVmdCBBdXRvIChHVEEpIHJlbGVhc2VkIGJ5IERNQSBEZXNpZ24gKGxhdGVyIFJvY2tzdGFyIE5vcnRoKSBmb3IgUFMxLCBXaW5kb3dzIGFuZCBNUy1ET1M7IEdyYW5kIFRoZWZ0IEF1dG86IFZpY2UgQ2l0eSAoMjAwMik7IEdyYW5kIFRoZWZ0IEF1dG86IFNhbiBBbmRyZWFzICgyMDA0KTsgR3JhbmQgVGhlZnQgQXV0byBJViAoMjAwOCk7IEdyYW5kIFRoZWZ0IEF1dG8gViAoMjAxMyk7IEdyYW5kIFRoZWZ0IEF1dG86IFRoZSBUcmlsb2d5IOKAkyBUaGUgRGVmaW5pdGl2ZSBFZGl0aW9uICgyMDIxKQ0KMTk5NzogVGVra2VuIDMgd2FzIGRlc2lnbmVkIGJ5IEthdHN1aGlybyBIYXJhZGEgKE9zYWthLCBPc2FrYSBQcmVmZWN0dXJlLCBKYXBhbikgb2YgQmFuZGFpIE5hbWNvIEVudGVydGFpbm1lbnQgaGVhZHF1YXJ0ZXJlZCBhdCDFjHRhLCBUb2t5by4NCjE5OTcgKE1hciA2KTogW0dlb1BvbGl0aWNzXSBUaGUgSW5kaWFuIE9jZWFuIFJpbSBBc3NvY2lhdGlvbiwgZm9ybWVybHkga25vd24gYXMgdGhlIEluZGlhbiBPY2VhbiBSaW0gSW5pdGlhdGl2ZSBhbmQgdGhlIEluZGlhbiBPY2VhbiBSaW0gQXNzb2NpYXRpb24gZm9yIFJlZ2lvbmFsIENvb3BlcmF0aW9uLCBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBjb25zaXN0aW5nIG9mIDIzIHN0YXRlcyBib3JkZXJpbmcgdGhlIEluZGlhbiBPY2Vhbi4gVGhlIElPUkEgaXMgYSByZWdpb25hbCBmb3J1bSwgdHJpcGFydGl0ZSBpbiBuYXR1cmUsIGJyaW5naW5nIHRvZ2V0aGVyIHJlcHJlc2VudGF0aXZlcyBvZiBHb3Zlcm5tZW50LCBCdXNpbmVzcyBhbmQgQWNhZGVtaWEsIGZvciBwcm9tb3RpbmcgY28tb3BlcmF0aW9uIGFuZCBjbG9zZXIgaW50ZXJhY3Rpb24gYW1vbmcgdGhlbS4gSXQgaXMgYmFzZWQgb24gdGhlIHByaW5jaXBsZXMgb2YgT3BlbiBSZWdpb25hbGlzbSBmb3Igc3RyZW5ndGhlbmluZyBFY29ub21pYyBDb29wZXJhdGlvbiBwYXJ0aWN1bGFybHkgb24gVHJhZGUgRmFjaWxpdGF0aW9uIGFuZCBJbnZlc3RtZW50LCBQcm9tb3Rpb24gYXMgd2VsbCBhcyBTb2NpYWwgRGV2ZWxvcG1lbnQgb2YgdGhlIHJlZ2lvbi4gVGhlIENvb3JkaW5hdGluZyBTZWNyZXRhcmlhdCBvZiBJT1JBIGlzIGxvY2F0ZWQgYXQgRWJlbmUsIE1hdXJpdGl1cy4NCjE5OTcgKEFwciAyMSk6IEguRC4gRGV2ZSBHb3dkYSByZXNpZ25zLiBJbmRlciBLdW1hciBHdWpyYWwgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NyAoSnVuIDYpOiBbR2VvUG9saXRpY3NdIEJJTVNURUMgZm91bmRlZC4gVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBvZiBzZXZlbiBTb3V0aCBBc2lhbiBhbmQgU291dGhlYXN0IEFzaWFuIG5hdGlvbnMsIGhvdXNpbmcgMS43MyBiaWxsaW9uIHBlb3BsZSBhbmQgaGF2aW5nIGEgY29tYmluZWQgZ3Jvc3MgZG9tZXN0aWMgcHJvZHVjdCBvZiAkMy44IHRyaWxsaW9uLiBUaGUgQklNU1RFQyBtZW1iZXIgc3RhdGVzIOKAkyBCYW5nbGFkZXNoLCBCaHV0YW4sIEluZGlhLCBNeWFubWFyLCBOZXBhbCwgU3JpIExhbmthLCBhbmQgVGhhaWxhbmQg4oCTIGFyZSBhbW9uZyB0aGUgY291bnRyaWVzIGRlcGVuZGVudCBvbiB0aGUgQmF5IG9mIEJlbmdhbC4NCjE5OTcgKEp1biA4KTogRGVzcGl0ZSBhZ2dyZXNzaXZlIGNoZWxhdGlvbiB0aGVyYXB5LCBoZXIgY29uZGl0aW9uIHJhcGlkbHkgZGV0ZXJpb3JhdGVkLiBUaHJlZSB3ZWVrcyBhZnRlciB0aGUgZmlyc3QgbmV1cm9sb2dpY2FsIHN5bXB0b21zIGFwcGVhcmVkLCBXZXR0ZXJoYWhuIGxhcHNlZCBpbnRvIHdoYXQgYXBwZWFyZWQgdG8gYmUgYSB2ZWdldGF0aXZlIHN0YXRlIHB1bmN0dWF0ZWQgYnkgcGVyaW9kcyBvZiBleHRyZW1lIGFnaXRhdGlvbi4gT25lIG9mIGhlciBmb3JtZXIgc3R1ZGVudHMgc2FpZCB0aGF0ICJIZXIgaHVzYmFuZCBzYXcgdGVhcnMgcm9sbGluZyBkb3duIGhlciBmYWNlLiBJIGFza2VkIGlmIHNoZSB3YXMgaW4gcGFpbi4gVGhlIGRvY3RvcnMgc2FpZCBpdCBkaWRuJ3QgYXBwZWFyIHRoYXQgaGVyIGJyYWluIGNvdWxkIGV2ZW4gcmVnaXN0ZXIgcGFpbi4iIFdldHRlcmhhaG4gd2FzIHJlbW92ZWQgZnJvbSBsaWZlIHN1cHBvcnQgYW5kIHByb25vdW5jZWQgZGVhZCBvbiBKdW5lIDgsIDE5OTcsIHRlbiBtb250aHMgYWZ0ZXIgaGVyIGluaXRpYWwgZXhwb3N1cmUuIEluIHJlc3BvbnNlLCB0aGUgT2NjdXBhdGlvbmFsIFNhZmV0eSBhbmQgSGVhbHRoIEFkbWluaXN0cmF0aW9uIHJlY29tbWVuZGVkIHRoYXQgdGhlIHVzZSBvZiBkaW1ldGh5bG1lcmN1cnkgYmUgYXZvaWRlZCB1bmxlc3MgYWJzb2x1dGVseSBuZWNlc3NhcnkgYW5kIG1hbmRhdGVkIHRoZSB1c2Ugb2YgcGxhc3RpYy1sYW1pbmF0ZSBnbG92ZXMgKFNpbHZlclNoaWVsZCkgd2hlbiBoYW5kbGluZyB0aGlzIGNvbXBvdW5kLg0KMTk5NyAoSnVuIDEzKTpbSmFja10gQm9yZGVyDQoxOTk3IChKdW4gMjYpOltCb29rXSAzMllPIEouIEsuIFJvd2xpbmcgcHVibGlzaGVzIGhlciBmaXJzdCBIYXJyeSBQb3R0ZXIgYm9vaywgVGhlIFBoaWxvc29waGVyJ3MgU3RvbmU7IA0KVGhlIENoYW1iZXIgb2YgU2VjcmV0cyAoMiBKdWx5IDE5OTgpLA0KVGhlIFByaXNvbmVyIG9mIEF6a2FiYW4gKDggSnVseSAxOTk5KSwNClRoZSBHb2JsZXQgb2YgRmlyZSAoOCBKdWx5IDIwMDApLA0KVGhlIE9yZGVyIG9mIHRoZSBQaG9lbml4ICgsIDI3IEp1bmUgMjAwMyksDQpUaGUgSGFsZi1CbG9vZCBQcmluY2UgKDE2IEp1bHkgMjAwNSksDQpUaGUgRGVhdGhseSBIYWxsb3dzICgyMSBKdWx5IDIwMDcpDQoxOTk3IChBdWcgMjUpOltTcGFjZV0gQWR2YW5jZWQgQ29tcG9zaXRpb24gRXhwbG9yZXIgaXMgYSBOQVNBIEV4cGxvcmVyIHByb2dyYW0gc2F0ZWxsaXRlIGFuZCBzcGFjZSBleHBsb3JhdGlvbiBtaXNzaW9uIHRvIHN0dWR5IG1hdHRlciBjb21wcmlzaW5nIGVuZXJnZXRpYyBwYXJ0aWNsZXMgZnJvbSB0aGUgc29sYXIgd2luZCwgdGhlIGludGVycGxhbmV0YXJ5IG1lZGl1bSwgYW5kIG90aGVyIHNvdXJjZXMuDQoxOTk3IChTZXAgMTMpOiB0aGUgaW50cm9kdWN0b3J5IGVwaXNvZGUgb2YgU2hha3RpbWFuIHdhcyBhaXJlZCBvbiBEb29yZGFyc2hhbiAoSW5kaWEncyBuYXRpb25hbCB0ZWxldmlzaW9uIG5ldHdvcmspIGZyb20gMjcgU2VwdGVtYmVyIDE5OTcgdG8gMjcgTWFyY2ggMjAwNSwgb24gU3VuZGF5cyBhdCAxMiBub29uIElTVC4gVGhlIHRlbGVjYXN0IHNsb3QsIGhvd2V2ZXIgd2FzIHNoaWZ0ZWQgdG8gOTozMCBhLm0uIGZvciB0aGUgbGFzdCBlcGlzb2Rlcy4gDQoxOTk3IChTZXAgMjcgMTA6MjMgVVRDKTpbU3BhY2VdW01hcnNdIExhc3QgY29udGFjdCB3aXRoIE1hcnMgUGF0aGZpbmRlci4gTWlzc2lvbiBkdXJhdGlvbiAoTGF1bmNoIHRvIGxhc3QgY29udGFjdCk6IDkgbW9udGhzLCAyMyBkYXlzLg0KMTk5NyAoT2N0IDMxKTpbQm9va10gRG9uYWxkIFRydW1wJ3MgVHJ1bXA6IFRoZSBBcnQgb2YgdGhlIENvbWViYWNrOyBUaGUgQW1lcmljYSBXZSBEZXNlcnZlICgyMDAwKTsgVHJ1bXA6IFRoaW5rIExpa2UgYSBCaWxsaW9uYWlyZTogRXZlcnl0aGluZyBZb3UgTmVlZCB0byBLbm93IEFib3V0IFN1Y2Nlc3MsIFJlYWwgRXN0YXRlLCBhbmQgTGlmZSAoMjAwNCk7IFdoeSBXZSBXYW50IFlvdSB0byBCZSBSaWNoICgyMDA2KTsgVHJ1bXA6IFRoZSBCZXN0IFJlYWwgRXN0YXRlIEFkdmljZSBJIEV2ZXIgUmVjZWl2ZWQ6IDEwMCBUb3AgRXhwZXJ0cyBTaGFyZSBUaGVpciBTdHJhdGVnaWVzICgyMDA2LCBOb3YgMSk7IFRoaW5rIEJJRyBhbmQgS2ljayBBc3MgaW4gQnVzaW5lc3MgYW5kIExpZmUgKDIwMDcpOyBUcnVtcCBOZXZlciBHaXZlIFVwOiBIb3cgSSBUdXJuZWQgTXkgQmlnZ2VzdCBDaGFsbGVuZ2VzIGludG8gU3VjY2VzcyAoMjAwOCk7IFRpbWUgdG8gR2V0IFRvdWdoOiBNYWtpbmcgQW1lcmljYSAjMSBBZ2FpbiAoMjAxMSk7IENyaXBwbGVkIEFtZXJpY2E6IEhvdyB0byBNYWtlIEFtZXJpY2EgR3JlYXQgQWdhaW4gKDIwMTUpDQoxOTk3OiBBcnVuZGhhdGkgUm95IGJlY2FtZSB0aGUgZmlyc3QgSW5kaWFuIHRvIHdpbiBNYW4gQm9va2VyIFByaXplIGZvciBoZXIgbm92ZWwgJ1RoZSBHb2Qgb2YgU21hbGwgVGhpbmdzJy4NCjE5OTc6IElJVC1KRUUgd2FzIGNvbmR1Y3RlZCB0d2ljZSBhZnRlciB0aGUgUS1QYXBlciB3YXMgbGVha2VkLg0KMTk5NzogTkFTQSBlc3RpbWF0ZWQgdGhlcmUgd2VyZSBhcHByb3guIDIsNjQ1IGFydGlmaWNpYWwgc2F0ZWxsaXRlIHBheWxvYWRzIG9yYml0dGluZyB0aGUgZWFydGggYW5kIDYsMjE2IHBpZWNlcyBvZiBzcGFjZSBkZWJyaXMgYXMgdHJhY2tlZCBieSB0aGUgR1NGQy4gT3ZlciAxNiwyOTEgcHJldmlvdXNseSBsYXVuY2hlZCBvYmplY3RzIGhhdmUgZGVjYXllZCBpbnRvIHRoZSBFYXJ0aCdzIGF0bW9zcGhlcmUuDQoxOTk3OiBCSEMgRmluYW5jaWFsLCBJbmMuIG9mIFBlbm5zeWx2YW5pYSBtZXJnZWQgaW50byBGSVNWIHRvIGZvcm0gU2VjdXJlZCBUcmFuc2FjdGlvbiBQcm9jZXNzaW5nIFNlcnZpY2VzLg0KMTk5NzpbQm9va10gVGhlIEZvdXIgQWdyZWVtZW50czogQSBQcmFjdGljYWwgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSBpcyBhIHNlbGYtaGVscCBib29rIGJ5IGJlc3RzZWxsaW5nIGF1dGhvciBEb24gTWlndWVsIFJ1aXogd2l0aCBKYW5ldCBNaWxsczsgVGhlIE1hc3Rlcnkgb2YgTG92ZTogQSBQcmFjdGljYWwgR3VpZGUgdG8gdGhlIEFydCBvZiBSZWxhdGlvbnNoaXAgLS1Ub2x0ZWMgV2lzZG9tIEJvb2sgKDE5OTksIE1hciAzMCk7IFRoZSBWb2ljZSBvZiBLbm93bGVkZ2U6IEEgUHJhY3RpY2FsIEd1aWRlIHRvIElubmVyIFBlYWNlICgyMDA0LCBNYXIgMTApOyBUaGUgRmlmdGggQWdyZWVtZW50OiBBIFByYWN0aWNhbCBHdWlkZSB0byBTZWxmLU1hc3RlcnkgKDIwMDkpOyBUaGUgQ2lyY2xlIG9mIEZpcmU6IEluc3BpcmF0aW9uIGFuZCBHdWlkZWQgTWVkaXRhdGlvbnMgZm9yIExpdmluZyBpbiBMb3ZlIGFuZCBIYXBwaW5lc3MgKDIwMTMsIEF1ZyAxKTsgVGhlIE1hc3Rlcnkgb2YgU2VsZjogQSBUb2x0ZWMgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSAoMjAxNiwgTWF5IDYpDQoxOTk3OltCb29rXSBKb24gS3Jha2F1ZXIncyBJbnRvIFRoaW4gQWlyOiBBIFBlcnNvbmFsIEFjY291bnQgb2YgdGhlIE10LiBFdmVyZXN0IERpc2FzdGVyOyBVbmRlciB0aGUgQmFubmVyIG9mIEhlYXZlbiAoMjAwMyBKdWwpDQoxOTk3IChEZWMgMTEpOltFbnZdIFRoZSBLeW90byBQcm90b2NvbCB3YXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgd2hpY2ggZXh0ZW5kZWQgdGhlIDE5OTIgVW5pdGVkIE5hdGlvbnMgRnJhbWV3b3JrIENvbnZlbnRpb24gb24gQ2xpbWF0ZSBDaGFuZ2UgKFVORkNDQykgdGhhdCBjb21taXRzIHN0YXRlIHBhcnRpZXMgdG8gcmVkdWNlIGdyZWVuaG91c2UgZ2FzIGVtaXNzaW9ucywgYmFzZWQgb24gdGhlIHNjaWVudGlmaWMgY29uc2Vuc3VzIHRoYXQgKHBhcnQgb25lKSBnbG9iYWwgd2FybWluZyBpcyBvY2N1cnJpbmcgYW5kIChwYXJ0IHR3bykgdGhhdCBodW1hbi1tYWRlIENPMiBlbWlzc2lvbnMgYXJlIGRyaXZpbmcgaXQuDQoxOTk3OltJbmRpYV1bRWR1Y2F0aW9uXVtDdWx0dXJlXSBFa2xhdnlhIE1vZGVsIFJlc2lkZW50aWFsIFNjaG9vbCBpcyBhIEdvdmVybm1lbnQgb2YgSW5kaWEgc2NoZW1lIGZvciBtb2RlbCByZXNpZGVudGlhbCBzY2hvb2wgZm9yIEluZGlhbiB0cmliYWxzIGFjcm9zcyBJbmRpYS4gSXQgaXMgb25lIG9mIHRoZSBmbGFnc2hpcCBpbnRlcnZlbnRpb25zIG9mIHRoZSBNaW5pc3RyeSBvZiBUcmliYWwgQWZmYWlycywgR292ZXJubWVudCBvZiBJbmRpYSBhbmQgd2FzIGludHJvZHVjZWQgaW4gdGhlIHllYXIgMTk5Ny05OCB0byBlbnN1cmUgdHJpYmFsIHN0dWRlbnRzIGdldCBhY2Nlc3MgdG8gcXVhbGl0eSBlZHVjYXRpb24gaW4gdGhlIHJlbW90ZSB0cmliYWwgYXJlYXMuIEVNUlNzIGFyZSBzZXQgdXAgaW4gU3RhdGVzL1VUcyB3aXRoIGdyYW50cyB1bmRlciBBcnRpY2xlIDI3NSgxKSBvZiB0aGUgQ29uc3RpdHV0aW9uIG9mIEluZGlhLiBBcyBwZXIgdGhlIGJ1ZGdldCAyMDE4LTE5LCBldmVyeSBibG9jayB3aXRoIG1vcmUgdGhhbiA1MCUgU1QgcG9wdWxhdGlvbiBhbmQgYXQgbGVhc3QgMjAsMDAwIHRyaWJhbCBwZXJzb25zLCB3aWxsIGhhdmUgYW4gRWtsYXZ5YSBNb2RlbCBSZXNpZGVudGlhbCBTY2hvb2wgYnkgdGhlIHllYXIgMjAyMi4NCjE5OTc6W1NwYWNlXSBIaXBwYXJjb3MgKDE5ODkgLTE5OTMpLiBJdCB0b29rIDQtOCB5ZWFycyB0byBvcmdhbml6ZSBhbmQgcHVibGlzaCB0aGUgNCB5ZWFycyBzdHVkeSBieSB0aGlzIGV4cGVyaW1lbnQsIHdoaWNoIHBlcm1pdHRlZCB0aGUgZmlyc3QgaGlnaC1wcmVjaXNpb24gbWVhc3VyZW1lbnRzIG9mIHRoZSBpbnRyaW5zaWMgYnJpZ2h0bmVzc2VzIChjb21wYXJlZCB0byB0aGUgbGVzcyBwcmVjaXNlIGFwcGFyZW50IGJyaWdodG5lc3MpLCBwcm9wZXIgbW90aW9ucywgYW5kIHBhcmFsbGF4ZXMgb2Ygc3RhcnMsIGVuYWJsaW5nIGJldHRlciBjYWxjdWxhdGlvbnMgb2YgdGhlaXIgZGlzdGFuY2UgYW5kIHRhbmdlbnRpYWwgdmVsb2NpdHkuIFdoZW4gY29tYmluZWQgd2l0aCByYWRpYWwgdmVsb2NpdHkgbWVhc3VyZW1lbnRzIGZyb20gc3BlY3Ryb3Njb3B5LCBhc3Ryb3BoeXNpY2lzdHMgd2VyZSBhYmxlIHRvIGZpbmFsbHkgbWVhc3VyZSBhbGwgc2l4IHF1YW50aXRpZXMgbmVlZGVkIHRvIGRldGVybWluZSB0aGUgbW90aW9uIG9mIHN0YXJzLiBUaGUgcmVzdWx0aW5nIEhpcHBhcmNvcyBDYXRhbG9ndWUsIGEgaGlnaC1wcmVjaXNpb24gY2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiAxMTgsMjAwIHN0YXJzLCB3YXMgcHVibGlzaGVkIGluIDE5OTcuIFRoZSBsb3dlci1wcmVjaXNpb24gVHljaG8gQ2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiBhIG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBhdCB0aGUgc2FtZSB0aW1lLCB3aGlsZSB0aGUgZW5oYW5jZWQgVHljaG8tMiBDYXRhbG9ndWUgb2YgMi41IG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBpbiAyMDAwLiBIaXBwYXJjb3MnIGZvbGxvdy11cCBtaXNzaW9uLCBHYWlhLCB3YXMgbGF1bmNoZWQgaW4gMjAxMy4NCjE5OTc6W1NwYWNlXVtSZXNlYXJjaF0gU2luY2UgdGhlIDE5OTcgcHJvcG9zYWwgb2YgdGhlIEFkUy9DRlQgKEFudGktZGUgU2l0dGVyL0NvbmZvcm1hbCBGaWVsZCBUaGVvcnkpIGNvcnJlc3BvbmRlbmNlLCB0aGUgcHJlZG9taW5hbnQgYmVsaWVmIGFtb25nIHBoeXNpY2lzdHMgaXMgdGhhdCBpbmZvcm1hdGlvbiBpcyBpbmRlZWQgcHJlc2VydmVkIGluIGJsYWNrIGhvbGUgZXZhcG9yYXRpb24uIA0KMTk5NzpbU3BhY2VdW1Jlc2VhcmNoXSBBIHdpZGVseSBwdWJsaWNpemVkIGJldCBtYWRlIGluIDE5OTcgYmV0d2VlbiBKb2huIFByZXNraWxsIG9uIHRoZSBvbmUgaGFuZCB3aXRoIEhhd2tpbmcgYW5kIEtpcCBUaG9ybmUgb24gdGhlIG90aGVyIHRoYXQgaW5mb3JtYXRpb24gd2FzIG5vdCBsb3N0IGluIGJsYWNrIGhvbGVzLiBUaGUgc2NpZW50aWZpYyBkZWJhdGUgb24gdGhlIHBhcmFkb3ggd2FzIGRlc2NyaWJlZCBpbiBhIHBvcHVsYXIgYm9vayBwdWJsaXNoZWQgaW4gMjAwOCBieSBMZW9uYXJkIFN1c3NraW5kIGNhbGxlZCBUaGUgQmxhY2sgSG9sZSBXYXIuIChUaGUgYm9vayBjYXJlZnVsbHkgbm90ZXMgdGhhdCB0aGUgJ3dhcicgd2FzIHB1cmVseSBhIHNjaWVudGlmaWMgb25lLCBhbmQgdGhhdCBhdCBhIHBlcnNvbmFsIGxldmVsLCB0aGUgcGFydGljaXBhbnRzIHJlbWFpbmVkIGZyaWVuZHMuKSBUaGUgYm9vayBzdGF0ZXMgdGhhdCBIYXdraW5nIHdhcyBldmVudHVhbGx5IHBlcnN1YWRlZCB0aGF0IGJsYWNrLWhvbGUgZXZhcG9yYXRpb24gd2FzIHVuaXRhcnkgYnkgdGhlIGhvbG9ncmFwaGljIHByaW5jaXBsZSwgd2hpY2ggd2FzIGZpcnN0IHByb3Bvc2VkIGJ5ICd0IEhvb2Z0LCBmdXJ0aGVyIGRldmVsb3BlZCBieSBTdXNza2luZCBhbmQgbGF0ZXIgZ2l2ZW4gYSBwcmVjaXNlIHN0cmluZyB0aGVvcnkgaW50ZXJwcmV0YXRpb24gYnkgdGhlIEFkUy9DRlQgY29ycmVzcG9uZGVuY2UuIEluIDIwMDQsIEhhd2tpbmcgYWxzbyBjb25jZWRlZCB0aGUgMTk5NyBiZXQsIHBheWluZyBQcmVza2lsbCB3aXRoIGEgYmFzZWJhbGwgZW5jeWNsb3BlZGlhICJmcm9tIHdoaWNoIGluZm9ybWF0aW9uIGNhbiBiZSByZXRyaWV2ZWQgYXQgd2lsbCIgYWx0aG91Z2ggVGhvcm5lIHJlZnVzZWQgdG8gY29uY2VkZS4NCjE5OTc6W0VhcnRoXVtQaHlzaWNzXVtSZXNlYXJjaF0gdGhlcmUgd2VyZSB0d28gbGFyZ2UgZWFydGhxdWFrZXMgb2ZmIHRoZSBjb2FzdCBvZiBDaGlsZS4gVGhlIG1hZ25pdHVkZSBvZiB0aGUgZmlyc3QsIGluIEp1bHksIHdhcyBlc3RpbWF0ZWQgYXQgTXfigK82LjksIGJ1dCB3YXMgYmFyZWx5IGZlbHQsIGFuZCBvbmx5IGluIHRocmVlIHBsYWNlcy4gSW4gT2N0b2JlciBhIE134oCvNy4xIHF1YWtlIGluIG5lYXJseSB0aGUgc2FtZSBsb2NhdGlvbiwgYnV0IHR3aWNlIGFzIGRlZXAgYW5kIG9uIGEgZGlmZmVyZW50IGtpbmQgb2YgZmF1bHQsIHdhcyBmZWx0IG92ZXIgYSBicm9hZCBhcmVhLCBpbmp1cmVkIG92ZXIgMzAwIHBlb3BsZSwgYW5kIGRlc3Ryb3llZCBvciBzZXJpb3VzbHkgZGFtYWdlZCBvdmVyIDEwLDAwMCBob3VzZXMuIEFzIGNhbiBiZSBzZWVuIGluIHRoZSB0YWJsZSBiZWxvdywgdGhpcyBkaXNwYXJpdHkgb2YgZGFtYWdlIGRvbmUgaXMgbm90IHJlZmxlY3RlZCBpbiBlaXRoZXIgdGhlIG1vbWVudCBtYWduaXR1ZGUgKE134oCvKSBub3IgdGhlIHN1cmZhY2Utd2F2ZSBtYWduaXR1ZGUgKE1z4oCvKS4gT25seSB3aGVuIHRoZSBtYWduaXR1ZGUgaXMgbWVhc3VyZWQgb24gdGhlIGJhc2lzIG9mIHRoZSBib2R5LXdhdmUgKG1i4oCvKSBvciB0aGUgc2Vpc21pYyBlbmVyZ3kgKE1l4oCvKSBpcyB0aGVyZSBhIGRpZmZlcmVuY2UgY29tcGFyYWJsZSB0byB0aGUgZGlmZmVyZW5jZSBpbiBkYW1hZ2UuIChhcyByZXNlYXJjaGVkIGJ5IENob3ksIEJvYXR3cmlnaHQgJiBLaXJieSAyMDAxLCBwLiAxMy4pLiBNdyA2Ljkgd2FzIGFjdHVhbGx5IE1lIDYuMSwgYW4gaW50ZXJwbGF0ZS10aHJ1c3QgdHlwZSBvZiBmYXVsdCwgd2hpbGUgTXcgNy4xIHdhcyBhY3R1YWxseSBhIDcuNSBNZSBpbnRyYXNsYWItbm9ybWFsIHR5cGUgb2YgZmF1bHQuDQoxOTk3OltSZXNlYXJjaF0gRHVyaW5nIHN1cnZleXMgY2FycmllZCBvdXQgYmV0d2VlbiAxOTk3IGFuZCAyMDAxLCBhIHNwb3Qgd2FzIGZvdW5kIGFsb25nIHRoZSBNYXJpYW5hIFRyZW5jaCB0aGF0IGhhZCBhIGRlcHRoIHNpbWlsYXIgdG8gdGhlIENoYWxsZW5nZXIgRGVlcCwgcG9zc2libHkgZXZlbiBkZWVwZXIuIEl0IHdhcyBkaXNjb3ZlcmVkIHdoaWxlIHNjaWVudGlzdHMgZnJvbSB0aGUgSGF3YWlpIEluc3RpdHV0ZSBvZiBHZW9waHlzaWNzIGFuZCBQbGFuZXRvbG9neSB3ZXJlIGNvbXBsZXRpbmcgYSBzdXJ2ZXkgYXJvdW5kIEd1YW07IHRoZXkgdXNlZCBhIHNvbmFyIG1hcHBpbmcgc3lzdGVtIHRvd2VkIGJlaGluZCB0aGUgcmVzZWFyY2ggc2hpcCB0byBjb25kdWN0IHRoZSBzdXJ2ZXkuIFRoaXMgbmV3IHNwb3Qgd2FzIG5hbWVkIHRoZSBITVJHIChIYXdhaWkgTWFwcGluZyBSZXNlYXJjaCBHcm91cCkgRGVlcCwgYWZ0ZXIgdGhlIGdyb3VwIG9mIHNjaWVudGlzdHMgd2hvIGRpc2NvdmVyZWQgaXQuDQoxOTk3OltTcGFjZVhdIEEgcmVzb2x2ZWQgY2lyY3Vtc3RlbGxhciBkaXNrIHdhcyBmaXJzdCBpZGVudGlmaWVkIGluIDE5OTcgd2l0aCB0aGUgT3dlbnMgVmFsbGV5IFJhZGlvIE9ic2VydmF0b3J5LiBUaGUgc2VtaS1tYWpvciBheGlzIHdhcyBpbml0aWFsbHkgZXN0aW1hdGVkIHRvIGJlIDExMCBBVS4gSEQgMTYzMjk2IGFuZCBzdXJyb3VuZGluZ3MgQ3JlZGl0OiBFU08vRGlnaXRpemVkIFNreSBTdXJ2ZXkgMjsgQWNrbm93bGVkZ2VtZW50OiBEYXZpZGUgRGUgTWFydGluIE9ic2VydmF0aW9uIGRhdGEgRXBvY2ggSjIwMDAgICAgICBFcXVpbm94IEoyMDAwIENvbnN0ZWxsYXRpb24JU2FnaXR0YXJpdXMgUmlnaHQgYXNjZW5zaW9uCTE3aCA1Nm0gMjEuMjlzIERlY2xpbmF0aW9uCeKIkjIxwrAgNTfigLIgMjEuODfigLMgQXBwYXJlbnQgbWFnbml0dWRlIChWKQk2Ljg1OyBDaGFyYWN0ZXJpc3RpY3MgRXZvbHV0aW9uYXJ5IHN0YWdlCUhlcmJpZyBBZSBzdGFyIFNwZWN0cmFsIHR5cGUJQTNWYWVrQTFtQTE7IEFzdHJvbWV0cnkgUmFkaWFsIHZlbG9jaXR5IChSdikJLTQuMDAgwrEzLjNbM10ga20vcyBQcm9wZXIgbW90aW9uICjOvCkJUkE6IC03LjU4NiDCsTAuMDQxIG1hcy95cjsgRGVjLjogLTM5LjQ1OCDCsTAuMDI5IG1hcy95cls0XSBQYXJhbGxheCAoz4ApCTkuOTA0M8KxMC4wNDA4IG1hc1s0XSBEaXN0YW5jZQkzMjkgwrEgMSBseSAoMTAxLjAgwrEgMC40IHBjKSBEZXRhaWxzOyBNYXNzCTEuOTXCsTAuMDcgTeKYiSBSYWRpdXMJMS44N8KxMC4wNSBS4piJIEx1bWlub3NpdHkJMjAuNCszLjYg4oiSMy4wIEzimIkgU3VyZmFjZSBncmF2aXR5IChsb2cgZykJNC4xMMKxMC4xMCBjZ3MgVGVtcGVyYXR1cmUJOTAwMMKxMjUwIEsgQWdlCTYuMDMrMC4yOCDiiJIwLjI3IE15ciBPdGhlciBkZXNpZ25hdGlvbnMgQkQtMjEgNDc3OSwgQ1BELTIxIDY1MDgsIEVNKiBNV0MgMjc1LCBISVAgODc4MTksIElSQVMgMTc1MzMtMjE1NiwgMk1BU1MgSjE3NTYyMTI4LTIxNTcyMTgsIFBEUyA0NzMsIFRZQyA2MjYyLTIxMzEtMSwgRGF0YWJhc2UgcmVmZXJlbmNlcyBTSU1CQUQNCjE5OTc6W1NwYWNlWF0gMTAxOTkgQ2hhcmlrbG8gaXMgYSByaW5nZWQgYXN0ZXJvaWQgb3IgY2VudGF1ciBpbiB0aGUgb3V0ZXIgU29sYXIgU3lzdGVtLiBJdCBpcyB0aGUgbGFyZ2VzdCBrbm93biBjZW50YXVyLCB3aXRoIGEgZGlhbWV0ZXIgb2YgYWJvdXQgMjUwIGttLiBJdCBvcmJpdHMgdGhlIFN1biBiZXR3ZWVuIFNhdHVybiBhbmQgVXJhbnVzIHdpdGggYW4gb3JiaXRhbCBwZXJpb2Qgb2YgNjIuNSB5ZWFycy4gV2lraXBlZGlhIE9yYml0YWwgcGVyaW9kOiA2MyB5ZWFycyBSYWRpdXM6IDE1MSBrbSBEaXNjb3ZlcmVkOiAxNSBGZWJydWFyeSAxOTk3IERpbWVuc2lvbnM6ICgyODcuNisyLjg7IOKIkjMuMCkgw5cgKDI3MC40KzIuODsg4oiSNS42KSDDlyAoMTk4LjIrMTAuODsg4oiSNS40KSBrbTogMTEgRGlzY292ZXJlcjogSmFtZXMgVi4gU2NvdHRpIFNwZWN0cmFsIHR5cGU6IEQtdHlwZSBhc3Rlcm9pZCBBcGhlbGlvbjogMTguNDIwIEFVDQoxOTk3OltTcGFjZVhdIFRoZSBHcmVhdCBEYXlsaWdodCBGaXJlYmFsbCAtIFRoZSBhdG1vc3BoZXJpYyBwYXNzIG1vZGlmaWVkIHRoZSBvYmplY3QncyBtYXNzIGFuZCBvcmJpdCBhcm91bmQgdGhlIFN1bi4gQSAxOTk0IHN0dWR5IGZvdW5kIHRoYXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgaW4gYW4gRWFydGgtY3Jvc3Npbmcgb3JiaXQgYW5kIHByZWRpY3RlZCB0aGF0IGl0IHdvdWxkIHBhc3MgY2xvc2UgdG8gRWFydGggYWdhaW4gaW4gQXVndXN0IDE5OTcuIEhvd2V2ZXIsIHRoZSBvYmplY3QgaGFzIG5vdCBiZWVuIG9ic2VydmVkIGFnYWluIGFuZCBzbyBpdHMgcG9zdC1lbmNvdW50ZXIgb3JiaXQgcmVtYWlucyB1bmtub3duLg0KMTk5NzpOYWZpc2EgSm9zZXBoIHdhcyB0aGUgeW91bmdlc3QgTWlzcyBJbmRpYSB3aW5uZXIgYXQgYWdlIDE5LCB3aW5uaW5nIHRoZSB0aXRsZSBpbiAxOTk3LiBTaGUgbGF0ZXIgYmVjYW1lIGEgbW9kZWwgYW5kIHRlbGV2aXNpb24gcGVyc29uYWxpdHkuIFdoaWxlIG90aGVyIHdpbm5lcnMgbGlrZSBNZWVuYWtzaGkgU2VzaGFkcmkgd2VyZSBhbHNvIDE3IHdoZW4gdGhleSB3b24gaW4gMTk4MSwgSm9zZXBoIGlzIG9mdGVuIGNpdGVkIGZvciBoZXIgZWFybHkgd2luIGF0IDE5LCB3aGljaCB3YXMgdGhlbiBhIHlvdW5nZXIgYWdlIHRoYW4gaXMgdHlwaWNhbGx5IHNlZW4gaW4gdGhlIGNvbXBldGl0aW9uLiANCjE5OTc6W3NwYWNlXVt0ZWNoXSBUaGUgZmluYWwgQmxvY2sgSUlBIHdhcyBpbiBOb3YgMTk5Nywgd2hpbGUgQmxvY2sgSUlScyBiZWdhbiByZXBsYWNpbmcgdGhlbSBzaG9ydGx5IGFmdGVyLCBsYXN0aW5nIHVudGlsIDIwMDQuIEJsb2NrIElJUiAoUmVwbGVuaXNobWVudCkgbGF1bmNoZXMgZm9sbG93ZWQgZnJvbSAxOTk3IHRvIDIwMDQsIHdpdGggdGhlIGZpcnN0IGxhdW5jaCBpbiBKYW51YXJ5IDE5OTcuIA0KDQoxOTk4OltTcGFjZVhdIFRoZSBwcmltYXJ5IGNvbnN0cnVjdGlvbiBwaGFzZSBvZiB0aGUgSW50ZXJuYXRpb25hbCBTcGFjZSBTdGF0aW9uIChJU1MpIHRvb2sgYXBwcm94aW1hdGVseSAxMyB5ZWFycywgZnJvbSAxOTk4IHRvIDIwMTEsIHdpdGggdGhlIGZpcnN0IG1vZHVsZSBsYXVuY2hpbmcgaW4gTm92ZW1iZXIgMTk5OCBhbmQgSVNTIEFzc2VtYmx5IENvbXBsZXRlIGRlY2xhcmVkIGluIE1heSAyMDExLiBIb3dldmVyLCBhc3NlbWJseSB3YXMgYSBjb250aW51b3VzLCBtdWx0aS1zdGFnZSBwcm9jZXNzIGludm9sdmluZyBtb3JlIHRoYW4gMzAgbWlzc2lvbnMsIG51bWVyb3VzIHNwYWNld2Fsa3MsIGFuZCByb2JvdGljIGFzc2lzdGFuY2UgdG8gYnVpbGQgdGhlIHN0YXRpb24gcGllY2UgYnkgcGllY2UgaW4gb3JiaXQuIEV2ZW4gYWZ0ZXIgMjAxMSwgdGhlIElTUyBjb250aW51ZWQgdG8gZXZvbHZlIHdpdGggb25nb2luZyBhZGRpdGlvbnMgYW5kIHVwZ3JhZGVzLg0KMTk5ODpbUmVzZWFyY2hdW1NwYWNlXSBTcHJpbmcsIDE5OTg6IGEgbWljcm9mb3NzaWwgdGhhdCB3YXMgZm91bmQgaW4gYSBtZXRlb3JpdGUgYW5kIHBob3RvZ3JhcGhlZCBpbiAxOTY2LCB3YXMgcmVjb2duaXplZCBieSBhIFJ1c3NpYW4gbWljcm9iaW9sb2dpc3QgYXMgYSBtYWduZXRvdGFjdGljIGJhY3Rlcml1bS4gQnkgRmFsbCwgMTk5ODogTkFTQSdzIHB1YmxpYyBwb3NpdGlvbiBvbiBsaWZlLWZyb20tc3BhY2Ugc2hpZnRlZCBkcmFtYXRpY2FsbHkuDQoxOTk4OiBBcyBhIHJlc2VhcmNoIHByb2plY3QgYXQgU3RhbmZvcmQgVW5pdmVyc2l0eSwgU2VyZ2V5IEJyaW4gYW5kIExhcnJ5IFBhZ2UgY3JlYXRlZCBhIHNlYXJjaCBlbmdpbmUgdGhhdCBsaXN0ZWQgcmVzdWx0cyBhY2NvcmRpbmcgdG8gdGhlIHBvcHVsYXJpdHkgb2YgdGhlIHBhZ2VzLCBhZnRlciBjb25jbHVkaW5nIHRoYXQgdGhlIG1vc3QgcG9wdWxhciByZXN1bHQgd291bGQgb2Z0ZW4gYmUgdGhlIG1vc3QgdXNlZnVsLiBBZnRlciByYWlzaW5nICQxIG1pbGxpb24gZnJvbSBmYW1pbHksIGZyaWVuZHMgYW5kIG90aGVyIGludmVzdG9ycywgdGhlIHBhaXIgbGF1bmNoZWQgdGhlIGNvbXBhbnkgaW4gMTk5OC4gR29vZ2xlIGhhcyBzaW5jZSBiZWNvbWUgdGhlIHdvcmxk4oCZcyBtb3N0IHBvcHVsYXIgc2VhcmNoIGVuZ2luZSwgcmVjZWl2aW5nIG1vcmUgdGhhbiAyMDAgbWlsbGlvbiBxdWVyaWVzIGVhY2ggZGF5Lg0KMTk5OCAoTm92IDIwKTogDQoxOTk4IChBcHIgMjcpOiBSUkIgZm91bmRlZCBhcyBSYWlsd2F5IFJlY3J1aXRtZW50IENvbnRyb2wgQm9hcmQgaXMgYSBnb3Zlcm5tZW50IG9yZ2FuaXNhdGlvbiBpbiBJbmRpYS4gSXQgd2FzIHNldCB1cCBpbiAxOTk4IGluIHRoZSBNaW5pc3RyeSBvZiBSYWlsd2F5cyAoUmFpbHdheSBCb2FyZCksIE5ldyBEZWxoaS5JbiAxOTQ1LCB0aGUgU2VydmljZXMgQ29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgYXQgQm9tYmF5LCBDYWxjdXR0YSwgTWFkcmFzIGFuZCBMdWNrbm93LiBJbiAxOTgzLCB0byBjYXRlciB0byB0aGUgbmVlZHMgb2YgYXJlYXMgd2hpY2ggd2VyZSBiZWluZyBuZWdsZWN0ZWQgZHVlIHRvIGxvY2F0aW9ucyBvZiB0aGUgZXhpc3RpbmcgY29tbWlzc2lvbnMsIHNldmVuIG1vcmUgY29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgdml6LCBhdCBBaG1lZGFiYWQsIEFqbWVyLCBCaG9wYWwsIEJodXZuZXNod2FyLCBDaGFuZGlnYXJoLCBKYW1tdSBhbmQgU3JpbmFnYXIgd2l0aCBzaXR0aW5nIGF0IExlaCBhbmQgVHJpdmVuZHJ1bS4gSW4gMTk4NCB0d28gbW9yZSBzZXJ2aWNlIGNvbW1pc3Npb25zIHdlcmUgc2V0IHVwIGF0IE1hbGRhIGFuZCBHb3Jha2hwdXIuDQoxOTk4IChNYXkgMTkpOiBBdGFsIEJpaGFyaSBWYWpwYXllZSBiZWNvbWVzIFBNIG9mIEluZGlhIGZvciB0aGUgc2Vjb25kIHRpbWUsIG5vdyBmb3IgNiB5ZWFycyB0aWxsIE1heSAyMiwgMjAwNC4gDQoxOTk4IChNYXkgMjggMTU6MTVQU1QpOiBDaGFnYWktSSBpcyB0aGUgY29kZSBuYW1lIG9mIGZpdmUgc2ltdWx0YW5lb3VzIHVuZGVyZ3JvdW5kIG51Y2xlYXIgdGVzdHMgY29uZHVjdGVkIGJ5IFBha2lzdGFuLiBUaGUgdGVzdHMgd2VyZSBwZXJmb3JtZWQgYXQgUmFzIEtvaCBIaWxscyBpbiB0aGUgQ2hhZ2FpIERpc3RyaWN0IG9mIEJhbG9jaGlzdGFuIFByb3ZpbmNlLiBDaGFnYWktSSB3YXMgUGFraXN0YW4ncyBmaXJzdCBwdWJsaWMgdGVzdCBvZiBudWNsZWFyIHdlYXBvbnMuIFBha2lzdGFuJ3MgZmlzc2lsZSBtYXRlcmlhbCBwcm9kdWN0aW9uIHRha2VzIHBsYWNlIGF0IE5pbG9yZSwgS2FodXRhLCBhbmQgS2h1c2hhYiBOdWNsZWFyIENvbXBsZXgsIHdoZXJlIHdlYXBvbnMtZ3JhZGUgcGx1dG9uaXVtIGlzIHJlZmluZWQuDQoxOTk4OiBBZnRlciBjb21wbGV0aW5nIGhpcyBYIHN0YW5kYXJkIGV4YW1pbmF0aW9ucywgUmFuYmlyIEthcG9vciwgYWdlZCAxNiwgd29ya2VkIGFzIGFuIGFzc2lzdGFudCBkaXJlY3RvciB0byBoaXMgZmF0aGVyIG9uIHRoZSBmaWxtIEFhIEFiIExhdXQgQ2hhbGVuICgxOTk5KSwgZHVyaW5nIHdoaWNoIGhlIGRldmVsb3BlZCBhIGNsb3NlciBib25kIHdpdGggaGltLg0KMTk4ODogTmV0d29ya2VkIERhdGEgUHJvY2Vzc2luZyBDb3IsIElvd2EgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBJbnN1cmFuY2UgZGl2aXNpb24uDQoxOTk4OltCb29rXSBSb2JlcnQgR3JlZW5lJ3MgVGhlIDQ4IExhd3Mgb2YgUG93ZXI7IFRoZSAzMyBTdHJhdGVnaWVzIG9mIFdhciAoMjAwNik7IE1hc3RlcnkgKDIwMTIsIE5vdiAxMyk7IFRoZSBMYXdzIG9mIEh1bWFuIE5hdHVyZSAoMjAxOCwgT2N0IDE2KQ0KMTk5ODpbU3BhY2VdW1Jlc2VhcmNoXVtFeHRyZW1lXSBUaGVuIGNhbWUgMTk5OCBhbmQgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgKEhTVCkgb2JzZXJ2YXRpb25zIG9mIHZlcnkgZGlzdGFudCBzdXBlcm5vdmFlIHRoYXQgc2hvd2VkIHRoYXQsIGEgbG9uZyB0aW1lIGFnbywgdGhlIHVuaXZlcnNlIHdhcyBhY3R1YWxseSBleHBhbmRpbmcgbW9yZSBzbG93bHkgdGhhbiBpdCBpcyB0b2RheS4gU28gdGhlIGV4cGFuc2lvbiBvZiB0aGUgdW5pdmVyc2UgaGFzIG5vdCBiZWVuIHNsb3dpbmcgZHVlIHRvIGdyYXZpdHksIGFzIGV2ZXJ5b25lIHRob3VnaHQsIGl0IGhhcyBiZWVuIGFjY2VsZXJhdGluZy4NCjE5OTg6W0NyaW1lXVtJbmRpYV0gQW5lZXMgYXJyZXN0ZWQgaW4gVUFFIG9uIGNoYXJnZXMgb2YgaGF2aW5nIG11cmRlcmVkIGEgZm9ybWVyIGFzc29jaWF0ZSBhbmQgdGhlbiByaXZhbCwgSXJmYW4gR29nYSwgaW4gRHViYWksIGJ1dCB3YXMgZnJlZWQgYWZ0ZXIgdHdvIGRheXMgZm9yICdsYWNrIG9mIGV2aWRlbmNlJy4NCjE5OTg6W0NvbXB1dGluZ11bUXVhbnR1bV0gUmVzZWFyY2hlcnMgYXQgSUJNLCBPeGZvcmQsIEJlcmtlbGV5LCBTdGFuZm9yZCwgYW5kIE1JVCBwcm9kdWNlZCBhIDItcXViaXQgY29tcHV0aW5nIHN5c3RlbS4NCjE5OTg6W3d3d10gV2lyZXNoYXJrIGlzIGEgZnJlZSBhbmQgb3Blbi1zb3VyY2UgcGFja2V0IGFuYWx5emVyLiBJdCBpcyB1c2VkIGZvciBuZXR3b3JrIHRyb3VibGVzaG9vdGluZywgYW5hbHlzaXMsIHNvZnR3YXJlIGFuZCBjb21tdW5pY2F0aW9ucyBwcm90b2NvbCBkZXZlbG9wbWVudCwgYW5kIGVkdWNhdGlvbi4gT3JpZ2luYWxseSBuYW1lZCBFdGhlcmVhbCwgdGhlIHByb2plY3Qgd2FzIHJlbmFtZWQgV2lyZXNoYXJrIGluIE1heSAyMDA2IGR1ZSB0byB0cmFkZW1hcmsgaXNzdWVzLg0KMTk5ODpbVVNdW0Vjb25vbXldRGF2aWQgUm9ja2VmZWxsZXIgU3IuIHdhcyBhd2FyZGVkIHRoZSBQcmVzaWRlbnRpYWwgTWVkYWwgb2YgRnJlZWRvbSBieSBQcmVzaWRlbnQgQmlsbCBDbGludG9uIGZvciBoaXMgd29yayBvbiBJbnRlcm5hdGlvbmFsIEV4ZWN1dGl2ZSBTZXJ2aWNlIENvcnBzLg0KMTk5ODpbRGVmXVtBdmlhdGlvbl0gVGhlIExvY2toZWVkIFNSLTcxIEJsYWNrYmlyZCBmbGV3IHNvIGhpZ2ggYW5kIHNvIGZhc3QgdGhhdCB0aGUgY3JldyBuZWVkZWQgcHJlc3N1cml6ZWQgc3BhY2Ugc3VpdHMgd2hlbiBmbHlpbmcgaXQuIEFuZCBpdCBpcyBzYWlkIHRoYXQgYXQgdGhlIG1heGltdW0gYWx0aXR1ZGUgb2YgaXQgaXQgd2FzIHBvc3NpYmxlIHRvIHNlZSB0aGUgY3VydmF0dXJlIG9mIHRoZSBlYXJ0aCwgd2hpY2ggcmVmZXJzIHRvIHRoaXMgcXVvdGUgYnkgQ29sb25lbCBBbGlzb246IOKAnE9uIGEgY2xlYXIgZGF5IHlvdSBjYW4gc2VlIGZvcmV2ZXLigKbigJ0uIFRoZSBzZXJ2aWNlIGNlaWxpbmcgb2YgODUsMDAwIGZlZXQgKDI1LDkwMG0pIG1lYW50IHRoYXQgaXQgd2FzIGFuIGV4Y2VsbGVudCBleHBlcmltZW50YWwgdW5pdCBmb3Igc3BhY2UgdHJhdmVscy4gVGhhdCwgY29tYmluZWQgd2l0aCB0aGUgZ3JlYXQgc3BlZWRzIG9mIGl0IHdhcyB0d28gb2YgdGhlIHJlYXNvbnMgd2h5IE5BU0EgZGVjaWRlZCB0byB0YWtlIG92ZXIgdGhlIGxhc3QgdHdvIEJsYWNrYmlyZHMgYWZ0ZXIgaXRzIHJldGlyZW1lbnQgZnJvbSB0aGUgQWlyIEZvcmNlIGluIDE5OTguIFRoaXMgbWVhbnMgdGhhdCB0aGUgd29ybGTigJlzIGZhc3Rlc3QgYWlyY3JhZnQgd2FzIGluIHNlcnZpY2UgZnJvbSAxOTY2IHVudGlsIE5BU0EgcmV0aXJlZCBpdHMgdHdvIHVuaXRzIGluIDE5OTksIGFuZCBtb3N0IG9mIHRoZSByZW1haW5pbmcgQmxhY2tiaXJkcyBhcmUgdG9kYXkgc3RhdGlvbmVkIGF0IG11c2V1bXMgb3IgbWlsaXRhcnkgYmFzZXMgYWNyb3NzIHRoZSBVUy4NCjE5OTg6SW4gMTk5OCwgR2F1dGFtIEFkYW5pLCBhbG9uZyB3aXRoIGhpcyBhc3NvY2lhdGUgU2hhbnRpbGFsIFBhdGVsLCB3YXMga2lkbmFwcGVkIGZvciByYW5zb20gaW4gQWhtZWRhYmFkLCBJbmRpYS4gVGhleSB3ZXJlIGFiZHVjdGVkIGF0IGd1bnBvaW50IGFmdGVyIGxlYXZpbmcgdGhlIEthcm5hdmF0aSBDbHViIGluIGEgY2FyLiBUaGUga2lkbmFwcGVycywgYWxsZWdlZGx5IGdhbmdzdGVycyBGYXpsdSBSZWhtYW4gYW5kIEJob2dpbGFsIERhcmppLCByZXBvcnRlZGx5IGRlbWFuZGVkIGEgcmFuc29tIG9mICQxLjUtMiBtaWxsaW9uLiBCb3RoIEFkYW5pIGFuZCBQYXRlbCB3ZXJlIHJlbGVhc2VkIGEgZGF5IGxhdGVyLCBidXQgaXQncyB1bmNsZWFyIGlmIHRoZSByYW5zb20gd2FzIHBhaWQuIA0KVGhlIGtpZG5hcHBpbmcgaW5jaWRlbnQgaGFwcGVuZWQgaW4gdGhlIG1pZC0xOTkwcywgYXJvdW5kIHRoZSB0aW1lIEFkYW5pJ3MgYnVzaW5lc3Mgc3VjY2Vzc2VzIHN0YXJ0ZWQgYXR0cmFjdGluZyB1bndhbnRlZCBhdHRlbnRpb24uIFRoZSBraWRuYXBwaW5nIHdhcyBhbGxlZ2VkbHkgY2FycmllZCBvdXQgYnkgRmF6bHUgUmVobWFuIGFuZCBCaG9naWxhbCBEYXJqaSwgYWxzbyBrbm93biBhcyAiTWFtYSIuIFRoZXkgd2VyZSBsYXRlciBhY3F1aXR0ZWQgZHVlIHRvIGxhY2sgb2YgZXZpZGVuY2UuIA0KVGhlIGFiZHVjdGlvbiBpcyBqdXN0IG9uZSBvZiB0aGUgY2hhbGxlbmdlcyBBZGFuaSBoYXMgZmFjZWQuIEhlIHdhcyBhbHNvIGNhdWdodCBpbiB0aGUgMjYvMTEgTXVtYmFpIHRlcnJvciBhdHRhY2tzIGF0IHRoZSBUYWogSG90ZWwuIE1vcmUgcmVjZW50bHksIGhlIGhhcyBmYWNlZCBhY2N1c2F0aW9ucyBvZiBicmliZXJ5IGFuZCBzZWN1cml0aWVzIGZyYXVkLiANCkFkYW5pIGFuZCBvdGhlcnMgd2VyZSBlc2NvcnRlZCBieSBzdGFmZiB0byB0aGUga2l0Y2hlbiBhbmQgdGhlbiB0aGUgYmFzZW1lbnQuIFRoZXkgc3BlbnQgdGhlIGVudGlyZSBuaWdodCBpbiBhIGhhbGwgd2FpdGluZyBmb3IgcmVzY3VlLiBBZGFuaSBsYXRlciB0b2xkIG5ld3MgY2hhbm5lbHMgdGhhdCBoZSBzYXcg4oCcZGVhdGggYXQgYSBkaXN0YW5jZSBvZiBqdXN0IDE1IGZlZXQu4oCdIEhlIHdhcyByZXNjdWVkIHRoZSBuZXh0IG1vcm5pbmcgYnkgc2VjdXJpdHkgZm9yY2VzLg0KMTk5ODpbRW52XVtEaXNhc3Rlcl0gRWFzdGVybiBJbmRpYSwgMTk5OCBCYW5nbGFkZXNoIGZsb29kOyA0ayBkZWF0aHMNCjE5OTg6W1dob11bUmVzZWFyY2hdW0NvbXB1dGluZ11bVGVjaF1bQ3VsdHVyZV0gSW50ZXJuZXQgRG93bmxvYWQgTWFuYWdlciAoSURNKSB3YXMgZGV2ZWxvcGVkIGJ5IFRvbmVjIEluYy4sIGFuIEFtZXJpY2FuIGNvbXBhbnkgdGhhdCBzdGFydGVkIHRoZSBwcm9qZWN0IGluIDE5OTggYW5kIHJlbGVhc2VkIHRoZSBzb2Z0d2FyZSBpbiAyMDAxLiBUb25lYyBJbmMuIGZvY3VzZXMgb24gbmV0d29yayBwcm9ncmFtbWluZyBhbmQgY3JlYXRlZCBJRE0gdG8gc3BlZWQgdXAgZG93bmxvYWRzIGJ5IHVzaW5nIGR5bmFtaWMgZmlsZSBzZWdtZW50YXRpb24sIGFjY2VsZXJhdGluZyBzcGVlZHMgYnkgdXAgdG8gOCB0aW1lcy4gDQoNCjE5OTk6NCBKYW51YXJ5IDE5OTk6IE5BU0Egb2ZmaWNpYWxseSByZWNvZ25pemVkIHRoZSBwb3NzaWJpbGl0eSB0aGF0IGxpZmUgb24gRWFydGggY29tZXMgZnJvbSBzcGFjZS4NCjE5IE1hcmNoIDE5OTk6IE5BU0Egc2NpZW50aXN0cyBhbm5vdW5jZWQgdGhhdCB0d28gbW9yZSBtZXRlb3JpdGVzIGhvbGQgZXZlbiBzdHJvbmdlciBmb3NzaWxpemVkIGV2aWRlbmNlIGZvciBwYXN0IGxpZmUgb24gTWFycy4NCjE5OTk6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEcyMCBvciBHcm91cCBvZiAyMCBpcyBhbiBpbnRlcmdvdmVybm1lbnRhbCBmb3J1bSBjb21wcmlzaW5nIDE5IHNvdmVyZWlnbiBjb3VudHJpZXMsIHRoZSBFdXJvcGVhbiBVbmlvbiwgYW5kIHRoZSBBZnJpY2FuIFVuaW9uLiBGb3VuZGVkOiAyNiBTZXB0ZW1iZXIgMTk5OTsgQ2hhaXJtYW4gKEluY3VtYmVudCk6IEN5cmlsIFJhbWFwaG9zYSwgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYQ0KMTk5OTogVGhlIHRlcm0gV2ktRmkgd2FzIGludmVudGVkIGJ5IEludGVyYnJhbmQgKGFuIGFtZXJpY2FuIGJyYW5kIGNvbnN1bHRhbmN5IGNvbXBhbnkpIGFzIGEgcHVuIHVwb24gdGhlIHdvcmQgaGktZmkuDQpXaS1GaSBBbGxpYW5jZSBmb3JtZWQgYXMgYSB0cmFkZSBhc3NvY2lhdGlvbiB0byBob2xkIHRoZSBXaS1GaSB0cmFkZW1hcmsgdW5kZXIgd2hpY2ggbW9zdCBwcm9kdWN0cyBhcmUgc29sZC4NCjE5OTk6IHRoZSB0ZXJtDQoxOTk5OiBJc2xhbWljIFN0YXRlIG9mIElyYXEgYW5kIHRoZSBMZXZhbnQgKGFsc28ga25vd24gYXMgdGhlIElzbGFtaWMgU3RhdGUgb2YgSXJhcSBhbmQgU3lyaWEsIElzbGFtaWMgU3RhdGUsIG9yIGNvbW1vbmx5LCBJU0lTKSBmb3VuZGVkIGFzIEphbWEnYXQgYWwtVGF3aGlkIHdhbC1KaWhhZCBieSBBYnUgTXVzYWIgYWwtWmFycWF3aSBIUSdkIGF0ICBBbC1SYXFxYWguDQoxOTk5IChBcHIgMTIpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBJIFdhbnQgSXQgVGhhdCBXYXkuDQoxOTk5IChBcHIgMTgpOiBDT05DRVJUIGJlY2FtZSBvcGVyYXRpb25hbC4gSXQgd2FzIGRldmVsb3BlZCB1c2luZyBjbGllbnQtc2VydmVyIG1vZGVsIGZvciBkaXN0cmlidXRlZCBjb21wdXRpbmcgaXMgYSB0b3RhbCBzb2x1dGlvbiB0byB0aGUgbmV0d29ya2luZyBvZiB0aGUgUFJTcy4gQWxsIHRoZSBmaXZlIHNpdGVzIGhhdmUgYmVlbiBpbnRlcm5ldC13b3JrZWQgb3ZlciBhIDY0IGticHMgbGluZSB1c2luZyByb3V0ZXJzLCBvbiBsZWFzZWQgY29tbXVuaWNhdGlvbiBsaW5lIGNvbm5lY3Rpb25zIGZyb20gRGVwYXJ0bWVudCBvZiBUZWxlY29tIChET1QpLg0KMTk5OTogQ3JlZGl0IGNhcmRzIGFjY2VwdGVkIGZvciBib29raW5nIHRpY2tldHMgYW5kIHJlc2VydmF0aW9ucyBpbiBzb21lIHN0YXRpb25zIChpbmNsdWRpbmcgTXVtYmFpIENTVCkuDQoxOTk5IChNYXkgMSk6W0Jvb2tdIFJvYmVydCBLaXlvc2FraSAmIFNoYXJvbiBMZWNodGVyJ3MgUmljaCBEYWQncyBDYXNoZmxvdyBRdWFkcmFudDogUmljaCBEYWQncyBHdWlkZSB0byBGaW5hbmNpYWwgRnJlZWRvbTsgUmljaCBEYWQncyBHdWlkZSB0byBJbnZlc3Rpbmc6IFdoYXQgdGhlIFJpY2ggSW52ZXN0IGluIFRoYXQgdGhlIFBvb3IgYW5kIE1pZGRsZSBDbGFzcyBEbyBOb3QhICgyMDAxLCBKYW4gMSk7IFRoZSBSZWFsIEJvb2sgb2YgUmVhbCBFc3RhdGU6IFJlYWwgRXhwZXJ0cy4gUmVhbCBTdG9yaWVzLiBSZWFsIExpZmUuICgyMDA5LCBNYXkgMTIpOyBSaWNoIEtpZCBTbWFydCBLaWQ6IEdpdmluZyBZb3VyIENoaWxkIGEgRmluYW5jaWFsIEhlYWQgU3RhcnQgKDIwMDEsIEphbiAxKTsgDQoxOTk5IChNYXkgMTgpOltNdXNpY10gTWlsbGVubml1bSBpcyB0aGUgdGhpcmQgc3R1ZGlvIGFsYnVtIChzZWNvbmQgaW4gdGhlIFVuaXRlZCBTdGF0ZXMpIGJ5IEFtZXJpY2FuIGJveSBiYW5kIEJhY2tzdHJlZXQgQm95cywgcmVsZWFzZWQgYnkgSml2ZSBSZWNvcmRzLg0KMTk5OSAoRnJpLCAyNCBEZWMpOiBJbmRpYW4gQWlybGluZXMgRmxpZ2h0IDgxNCBjb21tb25seSBrbm93biBhcyBJQyA4MTQgd2FzIGFuIEluZGlhbiBBaXJsaW5lcyBBaXJidXMgQTMwMCBlbiByb3V0ZSBmcm9tIFRyaWJodXZhbiBJbnRlcm5hdGlvbmFsIEFpcnBvcnQgaW4gS2F0aG1hbmR1LCBOZXBhbCB0byBJbmRpcmEgR2FuZGhpIEludGVybmF0aW9uYWwgQWlycG9ydCBpbiBEZWxoaSwgSW5kaWEgd2FzIGhpamFja2VkLiBIYXJrYXQtdWwtTXVqYWhpZGVlbiB3YXMgYWNjdXNlZCBvZiB0aGUgaGlqYWNraW5nLg0KMTk5OTogSVJDVEMNCjE5OTkgKEF1Zyk6IEJvb2tNeVNob3cNCjE5OTkgKFNlcCAxNCk6IFtHZW9Qb2xpdGljc10gVGhlIENvbmZlcmVuY2Ugb24gSW50ZXJhY3Rpb24gYW5kIENvbmZpZGVuY2UtQnVpbGRpbmcgTWVhc3VyZXMgaW4gQXNpYSAoQ0lDQSkgaXMgYW4gaW50ZXItZ292ZXJubWVudGFsIGZvcnVtIGZvciBlbmhhbmNpbmcgY29vcGVyYXRpb24gdG93YXJkcyBwcm9tb3RpbmcgcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYS4gSXQgaXMgYSBmb3J1bSBiYXNlZCBvbiB0aGUgcmVjb2duaXRpb24gdGhhdCB0aGVyZSBpcyBjbG9zZSBsaW5rIGJldHdlZW4gcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYSBhbmQgaW4gdGhlIHJlc3Qgb2YgdGhlIHdvcmxkLiBUaGUga2V5IGlkZWEgb2YgdGhlIENvbmZlcmVuY2UgaXMgYmFzZWQgb24gdGhlIHByaW9yaXR5IG9mIHRoZSBpbmRpdmlzaWJpbGl0eSBvZiBzZWN1cml0eSwgam9pbnQgaW5pdGlhdGl2ZSBhbmQgbXV0dWFsbHkgYmVuZWZpY2lhbCBpbnRlcmFjdGlvbiBvZiBzbWFsbCBhbmQgbGFyZ2Ugc3RhdGVzLg0KMTk5OTogTm9ibGUgRWR1Y2F0aW9uIFNvY2lldHkncyBOb2JsZSBQdWJsaWMgU2Nob29sIChOUFMpLCBHYWpyYXVsYSBmb3VuZGVkIHdpdGggMjEzMDYyNyBhcyBpdHMgQ0JTRSBBZmZpbGlhdGlvbiBuby4NCjE5OTk6IGZpcnN0IC53bWEgZmlsZSBjcmVhdGVkDQoxOTk5OiBOYXBzdGVyIGZvdW5kZWQuDQoxOTk5IChEZWMgMTQpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBTaG93IE1lIHRoZSBNZWFuaW5nIG9mIEJlaW5nIExvbmVseS4gDQoxOTk5OltNdXNpY10gRHIuIERyZSBmdC4gU25vb3AgRG9nZydzIFN0aWxsIEQuUi5FLg0KMTk5OTpbQ3VsdHVyZV0gVGhlIENpdHRhc2xvdyBvcmdhbml6YXRpb24gd2FzIGNyZWF0ZWQgYnkgUGFvbG8gU2F0dXJuaW5pLCB0aGUgZm9ybWVyIG1heW9yIG9mIEdyZXZlIGluIENoaWFudGksIEl0YWx5LiBTYXR1cm5pbmkgd2FzIGluc3BpcmVkIGJ5IENhcmxvIFBldHJpbmkgYW5kIGhpcyBTbG93IEZvb2QgbW92ZW1lbnQsIHN0YXJ0ZWQgaW4gdGhlIDE5ODBzIHRvIHByb3Rlc3QgdGhlIGZpcnN0IE1jRG9uYWxkJ3MgY2hhaW4gaW4gUm9tZS4gU2luY2UgdGhlbiwgdGhlIENpdHRhc2xvdyBtb3ZlbWVudCBoYXMgZ3Jvd24gYWNyb3NzIGZvdXIgY29udGluZW50cywgd2l0aCAyNjIgcGFydGljaXBhdGluZyB0b3ducyBhcyBvZiAyMDIwLiANCjE5OTk6W01hbmFnZW1lbnRdW0J1c2luZXNzXVtQc3ljaG9sb2d5XVtSZXNlYXJjaF0gRHVubmluZyBhbmQgS3J1Z2VyIEVmZmVjdDogRGF2aWQgRHVubmluZyBhbmQgSnVzdGluIEtydWdlciBwdWJsaXNoZWQgdGhlIGluaXRpYWwgc3R1ZHkgaW4gMTk5OSB1bmRlciB0aGUgdGl0bGUgIlVuc2tpbGxlZCBhbmQgVW5hd2FyZSBvZiBJdDogSG93IERpZmZpY3VsdGllcyBpbiBSZWNvZ25pemluZyBPbmUncyBPd24gSW5jb21wZXRlbmNlIExlYWQgdG8gSW5mbGF0ZWQgU2VsZi1Bc3Nlc3NtZW50cyIuDQoxOTk5OltSZXNlYXJjaF0gUmVzZWFyY2ggYnkgVVMgTmF0aW9uYWwgUmVzZWFyY2ggQ291bmNpbC4gV2F0ZXIgZnJvbSB1bmRlcmdyb3VuZCBzb3VyY2VzIG1heSBjb250YWluIHNpZ25pZmljYW50IGFtb3VudHMgb2YgcmFkb24gZGVwZW5kaW5nIG9uIHRoZSBzdXJyb3VuZGluZyByb2NrIGFuZCBzb2lsIGNvbmRpdGlvbnMsIHdoZXJlYXMgc3VyZmFjZSBzb3VyY2VzIGdlbmVyYWxseSBkbyBub3QuDQoxOTk5OltOU0VdIEluY29ycG9yYXRlZCBpbiAxOTk5LCBJUkNUQyBpcyBhIE1pbmkgUmF0bmEgKENhdGVnb3J5IDEsIENlbnRyYWwgUHVibGljIFNlY3RvciBFbnRlcnByaXNlcyApIGFuZCB0aGUgb25seSBjb21wYW55IGF1dGhvcml6ZWQgYnkgdGhlIEluZGlhbiBnb3Zlcm5tZW50IHRvIHByb3ZpZGUgb25saW5lIHJhaWx3YXkgdGlja2V0cywgY2F0ZXJpbmcgc2VydmljZXMsIGFuZCBwYWNrYWdlZCBkcmlua2luZyB3YXRlciBhdCByYWlsd2F5IHN0YXRpb25zIGFuZCB0cmFpbnMgaW4gSW5kaWEuDQoxOTk5OltNbnRuZ2ddW0Jvb2tdIFN0ZXZlIEhvdXNlIGlzIGEgd29ybGQtcmVub3duZWQgY2xpbWJlciwgbW91bnRhaW4gZ3VpZGUgYW5kIFBhdGFnb25pYSBhbWJhc3NhZG9yLCB3aWRlbHkgcmVnYXJkZWQgZm9yIGhpcyBjbGVhbiwgbGlnaHQtYW5kLWZhc3Qgc3R5bGUuIEhlIGhhcyBwdWJsaXNoZWQgYXJ0aWNsZXMgaW4gYSBudW1iZXIgb2YgcGVyaW9kaWNhbHMgaW5jbHVkaW5nOiBBbHBpbmlzdCwgUm9jayBhbmQgSWNlLCBDbGltYmluZywgVGhlIEFtZXJpY2FuIEFscGluZSBKb3VybmFsLCBHcmlwcGVkLCBDYW5hZGlhbiBBbHBpbmUgSm91cm5hbCwgQ2xpbWIsIFZlcnRpY2FsLCBNb250YWduZXMsIFJpc2ssIEFscCssIENhbXBvIEJhc2UsIERlc25pdmVsLCBhbmQgU3RpbGUgQWxwaW4uIEhpcyBlc3NheXMgaGF2ZSBiZWVuIHB1Ymxpc2hlZCBpbiBzZXZlcmFsIGJvb2tzIGluY2x1ZGluZzsgQ29udGFjdDogTW91bnRhaW4gQ2xpbWJpbmcgYW5kIEVudmlyb25tZW50YWwgVGhpbmtpbmc7IFNvbHRhcmksIGEgY29sbGVjdGlvbiBvZiBlc3NheXMgYWJvdXQgc29sbyBjbGltYmluZyBwdWJsaXNoZWQgaW4gSXRhbGlhbjsgQmVyZywgYSBHZXJtYW4gYm9vayBhYm91dCBjbGltYmluZyBpbiB0aGUgSGltYWxheWE7IGFuZCBhbiB1cGNvbWluZyBib29rIGFib3V0IE5hbmdhIFBhcmJhdCBlZGl0ZWQgYnkgUmVpbmhvbGQgTWVzc25lci4gSGUgaGFzIHdvcmtlZCBhcyBhIFBhdGFnb25pYSBhbHBpbmUgYW1iYXNzYWRvciBzaW5jZSAxOTk5LiBQdWJsaXNoZWQ6IFRyYWluaW5nIGZvciB0aGUgTmV3IEFscGluaXNtOiBBIE1hbnVhbCBmb3IgdGhlIENsaW1iZXIgYXMgQXRobGV0ZSBQYXBlcmJhY2sg4oCTIElsbHVzdHJhdGVkLCAzIEFwcmlsIDIwMTQNCjE5OTk6W01udG5nZ10gQ29ucmFkIEFua2VyIChib3JuIE5vdmVtYmVyIDI3LCAxOTYyKSBpcyBhbiBBbWVyaWNhbiByb2NrIGNsaW1iZXIsIG1vdW50YWluZWVyLCBhbmQgYXV0aG9yLiBIZSB3YXMgdGhlIHRlYW0gbGVhZGVyIG9mIFRoZSBOb3J0aCBGYWNlIGNsaW1iaW5nIHRlYW0gZm9yIDI2IHllYXJzIHVudGlsIDIwMTguWzJdIEluIDE5OTksIGhlIGxvY2F0ZWQgR2VvcmdlIE1hbGxvcnkncyBib2R5IG9uIEV2ZXJlc3QgYXMgYSBtZW1iZXIgb2YgYSBzZWFyY2ggdGVhbSBsb29raW5nIGZvciB0aGUgcmVtYWlucyBvZiB0aGUgQnJpdGlzaCBjbGltYmVyIHdobyB3YXMgbGFzdCBzZWVuIGluIDE5MjQuDQoxOTk5OlRoZSBQaXBpc3RyZWwgVmlydXMgZmxldyBmb3IgdGhlIGZpcnN0IHRpbWUgb24gQXVndXN0IDEwLCAxOTk5LiBQcm9kdWN0aW9uIGJlZ2FuIG9uIEphbnVhcnkgMjAsIDIwMDAuIFRoZSBkZXZlbG9wbWVudCBvZiB0aGUgc2hvcnQgd2luZyB2ZXJzaW9uIHN0YXJ0ZWQgaW4gMjAwNy4gVGhlIFZpcnVzIFNXIHByb2R1Y3Rpb24gc3RhcnRlZCBpbiAyMDA4LiBUaGUgVmlydXMgd29uIHRoZSBOQVNBIDIwMDcgUGVyc29uYWwgQWlyIFZlaGljbGUgKFBBVikgQ2hhbGxlbmdlIGFuZCB0aGUgMjAwOCBHZW5lcmFsIEF2aWF0aW9uIFRlY2hub2xvZ3kgKEdBVCkgQ2hhbGxlbmdlLg0KMTk5OTpbc2lsdmljc10gU3VzdGFpbmFibGUgUHJhY3RpY2VzOiBSZXNlYXJjaCBpbiB0aGUgMjB0aCBjZW50dXJ5IHZhbGlkYXRlZCB0aGF0IHNlY29uZC1ncm93dGggc3RhbmRzIGNvdWxkIGJlIHN1c3RhaW5hYmx5IG1hbmFnZWQgdGhyb3VnaCB0ZWNobmlxdWVzIGxpa2UgdGhlIHNlZWQgdHJlZSBtZXRob2QuIFRvZGF5LCBzaWx2aWN1bHR1cmUgZm9jdXNlcyBvbiBjb21wbGV4IHN0YW5kIHN0cnVjdHVyZXMsIGJhbGFuY2luZyBjb21tZXJjaWFsIGRlbWFuZCB3aXRoIGVudmlyb25tZW50YWwgc3Rld2FyZHNoaXAuIA0KDQoyMXN0IGNlbnR1cnkgQ0Ugc3RhcnRlZCBvbiAxc3QgSmFuIDIwMDEgQUQuDQoNCjIwMDBzOltSZXNlYXJjaF0gVGhlIGNsYWltIHRoYXQgIndlIGFyZSA2MCUgYmFuYW5hIiAob3Igc2hhcmUgNjAlIG9mIG91ciBETkEpIGlzIGEgcG9wdWxhciwgeWV0IG9mdGVuIG1pc2ludGVycHJldGVkLCBzdGF0aXN0aWMgdGhhdCBvcmlnaW5hdGVkIGZyb20gY29tcGFyaXNvbnMgb2YgcHJvdGVpbi1jb2RpbmcgZ2VuZXMsIGxpa2VseSBwb3B1bGFyaXplZCBpbiB0aGUgZWFybHkgMjAwMHMgZm9sbG93aW5nIHByZWxpbWluYXJ5IHN0dWRpZXMgb2YgdGhlIGJhbmFuYSBnZW5vbWUuIEl0IHJlZmVycyB0byBhYm91dCA2MCUgb2YgaHVtYW4gZ2VuZXMgaGF2aW5nIGEgcmVjb2duaXphYmxlIGNvdW50ZXJwYXJ0IGluIGJhbmFuYXMsIG5vdCA2MCUgb2Ygb3VyIHRvdGFsIEROQS4gDQpNYW55IG9mIHRoZSDigJxob3VzZWtlZXBpbmfigJ0gZ2VuZXMgdGhhdCBhcmUgbmVjZXNzYXJ5IGZvciBiYXNpYyBjZWxsdWxhciBmdW5jdGlvbiwgc3VjaCBhcyBmb3IgcmVwbGljYXRpbmcgRE5BLCBjb250cm9sbGluZyB0aGUgY2VsbCBjeWNsZSwgYW5kIGhlbHBpbmcgY2VsbHMgZGl2aWRlIGFyZSBzaGFyZWQgYmV0d2VlbiBtYW55IHBsYW50cyAoaW5jbHVkaW5nIGJhbmFuYXMpIGFuZCBhbmltYWxzLldoaWxlIDYwJSBvZiBnZW5lcyBoYXZlIGNvdW50ZXJwYXJ0cywgdGhlc2UgZXNzZW50aWFsIGdlbmVzIG1ha2UgdXAgb25seSBhIHNtYWxsIGZyYWN0aW9uIG9mIHRoZSB0b3RhbCBnZW5vbWU7IGh1bWFucyBhbmQgYmFuYW5hcyBhcmUgbm90IDYwJSBpZGVudGljYWwgb3ZlcmFsbC4gDQpUaGUgcGhyYXNlIGlzIGVzc2VudGlhbGx5IGEgc2ltcGxpZmllZCwgb2Z0ZW4tZXhhZ2dlcmF0ZWQsIHdheSBvZiBoaWdobGlnaHRpbmcgdGhhdCBhbGwgbGlmZSBzaGFyZXMgY29tbW9uIGFuY2VzdHJhbCBnZW5lcyBmb3IgYmFzaWMgY2VsbHVsYXIgcHJvY2Vzc2VzLiANCjIwMDBzOltNQkFdIFNob3VsZCBDb3N0IE1vZGVsaW5nOiBNb2Rlcm4gIlNob3VsZCBDb3N0IiBtb2RlbHMgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBpZGVhbCBjb3N0IG9mIGEgcHJvZHVjdCwgYWNjb3VudGluZyBmb3IgbGFib3IsIG1hdGVyaWFscywgYW5kIG92ZXJoZWFkLiBFbnZpcm9ubWVudGFsICYgU29jaWFsIEltcGFjdDogTW9kZXJuIENCQSBub3cgcm91dGluZWx5IGluY2x1ZGVzIGVudmlyb25tZW50YWwgYW5kIHNvY2lhbCBpbXBhY3RzIGluIGFkZGl0aW9uIHRvIGZpbmFuY2lhbCBvbmVzLiBTaGlmdCBmcm9tIExvY2FsIHRvIEdsb2JhbDogRWFybHksIGhpZ2hseSBsb2NhbCBhc3Nlc3NtZW50cyBldm9sdmVkIGludG8gbGFyZ2Utc2NhbGUsIG5hdGlvbmFsLCBhbmQgaW50ZXJuYXRpb25hbCBDQkEuIFJlZmluZW1lbnQgb2YgVGVjaG5pcXVlczogTW92aW5nIGZyb20gc2ltcGxlLCBzaW5nbGUtcGVyaW9kIG1vZGVscyB0byBjb21wbGV4LCBtdWx0aS1wZXJpb2Qgc2ltdWxhdGlvbnMuIEluY3JlYXNlZCBEYXRhIFVzZTogVGhlIGF2YWlsYWJpbGl0eSBvZiBsYXJnZSwgZ3JhbnVsYXIgZGF0YSBzZXRzIGhhcyBhbGxvd2VkIGZvciBtb3JlIHByZWNpc2UgYW5kIHJlbGlhYmxlIGFuYWx5c2lzLiANCjIwMDBzOltNbnRuZ2ddW0V4dHJlbWVdIEluIHRoZSBlYXJseSAyMDAwcywgRGlkaWVyIEJlcnRob2Qgd2FzIHRoZSBiZXN0IGNyYWNrIGNsaW1iZXIgaW4gdGhlIHdvcmxkLCB0aGVuIGhlIGRyb3BwZWQgb3V0IG9mIGNsaW1iaW5nIGFuZCBlc3NlbnRpYWxseSBkaXNhcHBlYXJlZCBmcm9tIHRoZSB3b3JsZC4NCjIwMDBzOltSZWFsdHldIEVhcmx5IDIwMDBzOiBSZWFsIGVzdGF0ZSB3YXMgaW4gaXRzIGVhcmx5IHN0YWdlcyBpbiBJbmRpYSwgd2l0aCBncmFkdWFsIGdyb3d0aCBhbmQgZGV2ZWxvcG1lbnQuIA0KMjAwMHM6VGVhbXdvcmsgaXMgbm93IGFuIGludGVncmFsIHBhcnQgb2Ygb3JnYW5pemF0aW9uYWwgc3RyYXRlZ3ksIHdpdGggYSBncmVhdGVyIGVtcGhhc2lzIG9uIGN1c3RvbWl6YXRpb24sIHBlcnNvbmFsaXphdGlvbiwgYW5kIHN0cmF0ZWdpYyBpbnRlZ3JhdGlvbiBvZiB0ZWFtLWJ1aWxkaW5nIHByYWN0aWNlcy4gVGhlIHJpc2Ugb2YgdGVjaG5vbG9neSBoYXMgYWxzbyBpbmZsdWVuY2VkIHRlYW13b3JrLCB3aXRoIHJlbW90ZSB3b3JrIGJlY29taW5nIG1vcmUgcHJldmFsZW50IGFuZCBuZXcgdG9vbHMgZW1lcmdpbmcgdG8gZmFjaWxpdGF0ZSBjb2xsYWJvcmF0aW9uLiANCg0KMjAwMDpbVVNdW0dlb1BvbGl0aWNzXSBvdmVydGhyb3cgb2YgU2xvYm9kYW4gTWlsb8WhZXZpxIcuIChVUydzIGludm9sdmVtZW50IGluIHJlZ2ltZSBjaGFuZ2UpDQoyMDAwOiBbR2VvUG9saXRpY3NdW01pbGl0YXJ5XVtFY29ub21pY3NdIFRoZSBVUyBEb2xsYXIgaG9sZHMgYSA3MiUgc2hhcmUgb2YgYWxsIGdsb2JhbCBjdXJyZW5jeSByZXNlcnZlcyBbWzE2OjQyXShodHRwOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dllKcmkxZU5SeWMmdD0xMDAyKV0uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdIDI2IEFwcmlsIDIwMDA6IHRoZSBHZXJtYW4gdGVhbSBvcGVyYXRpbmcgdGhlIG1hc3Mgc3BlY3Ryb21ldGVyIG9uIE5BU0EncyBTdGFyZHVzdCBtaXNzaW9uIGFubm91bmNlZCB0aGUgZGV0ZWN0aW9uIG9mIHZlcnkgbGFyZ2Ugb3JnYW5pYyBtb2xlY3VsZXMgaW4gaW50ZXJzdGVsbGFyIHNwYWNlLiBOb25iaW9sb2dpY2FsIHNvdXJjZXMgZm9yIG9yZ2FuaWMgbW9sZWN1bGVzIHNvIGxhcmdlIGFyZSBub3Qga25vd24uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdMTkgT2N0b2JlciAyMDAwLCBhIHRlYW0gb2YgYmlvbG9naXN0cyBhbmQgYSBnZW9sb2dpc3QgYW5ub3VuY2VkIHRoZSByZXZpdmFsIG9mIGJhY3RlcmlhIHRoYXQgYXJlIDI1MCBtaWxsaW9uIHllYXJzIG9sZCwgc3RyZW5ndGhlbmluZyB0aGF0IGNhc2UgdGhhdCBiYWN0ZXJpYWwgc3BvcmVzIGNhbiBiZSBpbW1vcnRhbC4NCjEzIERlY2VtYmVyIDIwMDA6IGEgTkFTQSB0ZWFtIGRlbW9uc3RyYXRlZCB0aGF0IHRoZSBtYWduZXRvc29tZXMgaW4gTWFycyBtZXRlb3JpdGUgQUxIIDg0MDAxIGFyZSBiaW9sb2dpY2FsLg0KMjAwMDpbUmVzZWFyY2hdW1NwYWNlXSBNaWxlaWtvd3NreSBDLCBDdWNpbm90dGEgRkEsIFdpbHNvbiBKVywgR2xhZG1hbiBCLCBIb3JuZWNrIEcsIExpbmRlZ3JlbiBMLCBNZWxvc2ggSiwgUmlja21hbiBILCBWYWx0b25lbiBNLCBaaGVuZyBKUS4gTmF0dXJhbCB0cmFuc2ZlciBvZiB2aWFibGUgbWljcm9iZXMgaW4gc3BhY2UuIEljYXJ1cyAyMDAwLCAxNDU6Mzkx4oCTNDI3LiBbRE9JXSBbUHViTWVkXSBbR29vZ2xlIFNjaG9sYXJdDQoyMDAwOltTcGFjZVhdIFMvMjAwMCAoOTApIDEgTW9vbiBEaXNjb3ZlcmVyOiBXaWxsaWFtIEouIE1lcmxpbmUgT3JiaXRzOiA5MCBBbnRpb3BlIEFic29sdXRlIG1hZ25pdHVkZTogOS4wMg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gZGVtb25zdHJhdGVkIFNob3LigJlzIGFsZ29yaXRobSBvbiBhIDUtcXViaXQgTk1SIHF1YW50dW0gY29tcHV0ZXIsIGZhY3RvcmluZyB0aGUgbnVtYmVyIDE1Lg0KMjAwMDogQXQgYWdlIDE0IGFuZCBpbiBjbGFzcyA4dGgsIEFhcm9uIFN3YXJ0eiBiZWNhbWUgYSBtZW1iZXIgb2YgdGhlIHdvcmtpbmcgZ3JvdXAgdGhhdCBhdXRob3JlZCB0aGUgUlNTIDEuMCB3ZWIgc3luZGljYXRpb24gc3BlY2lmaWNhdGlvbi4NCjIwMDA6IE1ha2VteVRyaXANCjIwMDAgKEphbiAxNCk6W0phY2tdIEthaG8gTmFhLi4uIFB5YWFyIEhhaQ0KMjAwMCAoRmViKTogSW5kaWFuIFJhaWx3YXlzIHdlYiBzaXRlIGkuZS4gaHR0cDovL2luZGlhbnJhaWx3YXlzLmdvdi5pbi8gd2FzIGRlcGxveWVkIGJ5IENSSVMuDQoyMDAwIChNYXIpOltCb29rXSBNYWxjb2xtIEdsYWR3ZWxsJ3MgZGVidXQgYm9vaywgVGhlIFRpcHBpbmcgUG9pbnQ6IEhvdyBMaXR0bGUgVGhpbmdzIENhbiBNYWtlIGEgQmlnIERpZmZlcmVuY2UuIA0KQmxpbms6IFRoZSBQb3dlciBvZiBUaGlua2luZyBXaXRob3V0IFRoaW5raW5nICgyMDA1LCBKYW4gMTEpOyANCk91dGxpZXJzOiBUaGUgU3Rvcnkgb2YgU3VjY2VzcyAoMjAwOCwgTm92IDE4KTsgDQpXaGF0IHRoZSBEb2cgU2F3OiBBbmQgT3RoZXIgQWR2ZW50dXJlcyAoMjAwOSwgT2N0IDIwKTsgDQpEYXZpZCBhbmQgR29saWF0aDogVW5kZXJkb2dzLCBNaXNmaXRzLCBhbmQgdGhlIEFydCBvZiBCYXR0bGluZyBHaWFudHMgKDIwMTMsIE9jdCAxKQ0KVGFsa2luZyB0byBTdHJhbmdlcnM6IFdoYXQgV2UgU2hvdWxkIEtub3cgYWJvdXQgdGhlIFBlb3BsZSBXZSBEb24ndCBLbm93ICgyMDE5KQ0KMjAwMCAoQXByIDEpOltCb29rXSBSb2JlcnQgS2l5b3Nha2kgJiBTaGFyb24gTGVjaHRlcidzIFJpY2ggRGFkIFBvb3IgRGFkLg0KMjAwMCAoQXByIDEpOltUZWNobm9sb2d5XVtSZXNlYXJjaF0gIldoeSBUaGUgRnV0dXJlIERvZXNuJ3QgTmVlZCBVcyIgaXMgYW4gYXJ0aWNsZSB3cml0dGVuIGJ5IEJpbGwgSm95IGluIHRoZSBBcHJpbCAyMDAwIGlzc3VlIG9mIFdpcmVkIG1hZ2F6aW5lLiBJbiB0aGUgYXJ0aWNsZSwgaGUgYXJndWVzIHRoYXQgIk91ciBtb3N0IHBvd2VyZnVsIDIxc3QtY2VudHVyeSB0ZWNobm9sb2dpZXPigJRyb2JvdGljcywgZ2VuZXRpYyBlbmdpbmVlcmluZywgYW5kIG5hbm90ZWNo4oCUYXJlIHRocmVhdGVuaW5nIHRvIG1ha2UgaHVtYW5zIGFuIGVuZGFuZ2VyZWQgc3BlY2llcy4iIA0KMjAwMCAoSnVuIDI2KTpbTXVzaWNdICJZZWxsb3ciIGlzIGEgc29uZyBieSB0aGUgQnJpdGlzaCByb2NrIGJhbmQgQ29sZHBsYXkuIFRoZSBiYW5kIHdyb3RlIHRoZSBzb25nIGFuZCBjby1wcm9kdWNlZCBpdCB3aXRoIEJyaXRpc2ggcmVjb3JkIHByb2R1Y2VyIEtlbiBOZWxzb24gZm9yIHRoZWlyIGRlYnV0IGFsYnVtLCBQYXJhY2h1dGVzICgyMDAwKS4gVGhlIHNvbmcgd2FzIHJlY29yZGVkIGluIE1hcmNoIDIwMDAgYW5kIHJlbGVhc2VkIG9uIDI2IEp1bmUgdGhhdCBzYW1lIHllYXIuDQoyMDAwIChTZXApOiBBbWF6b24ncyBKZWZmIEJlem9zIGZvdW5kZWQuDQoyMDAwIChTZXApOltDcmltZV1bSW5kaWFdIENoaG90YSBTaGFrZWVsJ3MgYXR0YWNrIG9uIFJhamFuIGluIGhpcyBCYW5na29rIGhvdGVsIHJvb20uDQoyMDAwIChTZXApOiBSYWlsVGVsIENvcnBvcmF0aW9uIG9mIEluZGlhIEx0ZC4gZm91bmRlZCBhbmQgSFEnZCBhdCAxNDMsIEluc3RpdHV0aW9uYWwgQXJlYSwgU2VjdG9yLTQ0LCBHdXJnYW9uLCBIYXJ5YW5hLCBJbmRpYS4gSXQgaXMgYSBNaW5pcmF0bmEgZW50ZXJwcmlzZSBvZiBHb3Zlcm5tZW50IG9mIEluZGlhIGZvY3VzaW5nIG9uIHByb3ZpZGluZyBicm9hZGJhbmQgYW5kIFZQTiBzZXJ2aWNlcy4NCjIwMDAgKFNlcCAxNyk6IFtHZW9Qb2xpdGljc10gVGhlIGlkZWEgb2YgYW4gQXNpYSBDb29wZXJhdGlvbiBEaWFsb2d1ZSAoQUNEKSB3YXMgcmFpc2VkIGF0IHRoZSBGaXJzdCBJbnRlcm5hdGlvbmFsIENvbmZlcmVuY2Ugb2YgQXNpYW4gUG9saXRpY2FsIFBhcnRpZXMgKGhlbGQgaW4gTWFuaWxhIGJldHdlZW4gMTfigJMyMCBTZXB0ZW1iZXIgMjAwMCkgYnkgU3VyYWtpYXJ0IFNhdGhpcmF0aGFpLCB0aGVuIGRlcHV0eSBsZWFkZXIgb2YgdGhlIG5vdyBkZWZ1bmN0IFRoYWkgUmFrIFRoYWkgUGFydHksIG9uIGJlaGFsZiBvZiBoaXMgcGFydHkgbGVhZGVyLCBUaGFrc2luIFNoaW5hd2F0cmEsIHRoZW4gUHJpbWUgTWluaXN0ZXIgb2YgVGhhaWxhbmQuIEl0IHdhcyBzdWdnZXN0ZWQgdGhhdCBBc2lhIGFzIGEgY29udGluZW50IHNob3VsZCBoYXZlIGl0cyBvd24gZm9ydW0gdG8gZGlzY3VzcyBBc2lhLXdpZGUgY29vcGVyYXRpb24uIEFmdGVyd2FyZHMsIHRoZSBpZGVhIG9mIHRoZSBBQ0Qgd2FzIGZvcm1hbGx5IHB1dCBmb3J3YXJkIGR1cmluZyB0aGUgMzR0aCBBU0VBTiBGb3JlaWduIE1pbmlzdGVycyBNZWV0aW5nIGluIEhhbm9pLCAyM+KAkzI0IEp1bHkgMjAwMSBhbmQgYXQgdGhlIEFTRUFOIEZvcmVpZ24gTWluaXN0ZXJzIFJldHJlYXQgaW4gUGh1a2V0LCAyMOKAkzIxIEZlYnJ1YXJ5IDIwMDIuDQoyMDAwIChPY3QgNCk6W011c2ljXSBGb3JtZWQgaW4gMTk5NiwgTGlua2luIFBhcmsgcm9zZSB0byBpbnRlcm5hdGlvbmFsIGZhbWUgd2l0aCB0aGVpciBkZWJ1dCBzdHVkaW8gYWxidW0sIEh5YnJpZCBUaGVvcnkuIEZvdXIgc2luZ2xlcyB3ZXJlIHJlbGVhc2VkIGZyb20gSHlicmlkIFRoZW9yeTogIk9uZSBTdGVwIENsb3NlciIsICJJbiB0aGUgRW5kIiwgIkNyYXdsaW5nIiBhbmQgIlBhcGVyY3V0IiwgYWxsIG9mIHRoZW0gYmVpbmcgcmVzcG9uc2libGUgZm9yIGxhdW5jaGluZyBMaW5raW4gUGFyayBpbnRvIG1haW5zdHJlYW0gcG9wdWxhcml0eS4gV2hpbGUgIkluIHRoZSBFbmQiIHdhcyB0aGUgbW9zdCBzdWNjZXNzZnVsIG9mIHRoZSBmb3VyLCBhbGwgb2YgdGhlIHNpbmdsZXMgaW4gdGhlIGFsYnVtIHJlbWFpbiBzb21lIG9mIHRoZSBiYW5kJ3MgbW9zdCBzdWNjZXNzZnVsIHNvbmdzIHRvIGRhdGUuDQoyMDAwIChOb3YgOSk6IGZvcm1hdGlvbiBvZiBVdHRhcmFraGFuZCBhcyBVdHRhcmFuY2hhbCAyMDAwIChKdW4gOSk6IEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQWN0LCAyMDAwLiBUaGUgYmlsbCB3YXMgcGFzc2VkIGluIHRoZSBidWRnZXQgc2Vzc2lvbiBvZiAyMDAwIGFuZCBzaWduZWQgYnkgUHJlc2lkZW50IEsuIFIuIE5hcmF5YW5hbiBvbiA5IE1heSAyMDAwLiBUaGUgYmlsbCB3YXMgZmluYWxpc2VkIGJ5IGdyb3VwIG9mIG9mZmljaWFscyBoZWFkZWQgYnkgdGhlbiBNaW5pc3RlciBvZiBJbmZvcm1hdGlvbiBUZWNobm9sb2d5LCBQcmFtb2QgTWFoYWphbi4NCjIwMDA6IGZvcm1hdGlvbiBvZg0KMjAwMDogSmFpc2gtZS1Nb2hhbW1lZCAobGl0ZXJhbGx5ICJUaGUgQXJteSBvZiBNdWhhbW1hZCIsIEplTSkgZm91bmRlZCBhdCBCYWhhd2FscHVyLCBQdW5qYWIsIFBha2lzdGFuLg0KMjAwMDogQ2hpbmEncyBCZWlEb3UgbmF2aWdhdGlvbiB0ZXN0IHN5c3RlbSBzdGFydHMuDQoyMDAwOiBGaXNlcnYgaGFkIGFjcXVpcmVkIG1vcmUgdGhhbiA5MCBidXNpbmVzc2VzLiBUaGUgbnVtYmVyIG9mIGVtcGxveWVlcyBncmV3IGZyb20gMjY0IHRvIDE0LDAwMC4gRmlzZXJ2IHdhcyBhbiBpbmR1c3RyeSBsZWFkZXIsIHdpdGggcmV2ZW51ZSB0aGF0IGluY3JlYXNlZCBmcm9tICQyMSBtaWxsaW9uIHRvICQxLjQgYmlsbGlvbiBpbiAxNSB5ZWFycy4NCjIwMDAgKERlYyA4KTpbR2FtaW5nXSBQcm9qZWN0IEkuRy5JLiBpcyBhIHRhY3RpY2FsIGZpcnN0LXBlcnNvbiBzaG9vdGVyIHZpZGVvIGdhbWUuIEl0IHdhcyBkZXZlbG9wZWQgYnkgSW5uZXJsb29wIFN0dWRpb3MgYW5kIHJlbGVhc2VkIGluIERlY2VtYmVyIDIwMDAgYnkgRWlkb3MgSW50ZXJhY3RpdmUuIFRoZSBnYW1lIHJlY2VpdmVkIG1peGVkIHJldmlld3MgZHVlIHRvIHNob3J0Y29taW5ncyBpbmNsdWRpbmcgYSBwb29ybHkgcHJvZ3JhbW1lZCBBLkkuLCBsYWNrIG9mIGEgbWlkLWdhbWUgc2F2ZSBvcHRpb24sIGFuZCB0aGUgbGFjayBvZiBtdWx0aXBsYXllciBmZWF0dXJlcy4gSG93ZXZlciBpdCB3YXMgcHJhaXNlZCBmb3IgaXRzIHNvdW5kIGRlc2lnbiBhbmQgZ3JhcGhpY3MsIHRoYW5rcyBpbiBwYXJ0IHRvIGl0cyB1c2Ugb2YgYSBwcm9wcmlldGFyeSBnYW1lIGVuZ2luZSB0aGF0IHdhcyBwcmV2aW91c2x5IHVzZWQgaW4gSW5uZXJsb29wJ3MgSm9pbnQgU3RyaWtlIEZpZ2h0ZXIuDQoyMDAwIChEZWMgMjEpOltKYWNrXSBSYWp1IENoYWNoYSByZWxlYXNlZC4NCjIwMDA6IFtCdXNpbmVzc11bRmluYW5jZV1bQ29ycG9yYXRlXVtJbmRpYV0gUklMIHBpbG90ZWQgd29ybGQncyBsYXJnZXN0IHBldHJvbGV1bSByZWZpbmVyeSBhdCBKYW1uYWdhciwgR3VqYXJhdCwgcmVmaW5pbmcgMS4yNE1uIGJhcnJlbHMvZGF5Lg0KMjAwMDpbQ3JpbWVdW0luZGlhXSBQb2xpY2UgZW5jb3VudGVycyBpbiBNdW1iYWkuIE1vc3QgY3JpbWluYWxzIGZsZWVpbmcgdG8gQ2FsY3VsdHRhLiBBZnRhYiBCaGF0a2kgZGVzdGFiaWxpc2UgdGhlIGVjb25vbXkgYnkgc3ByZWFkaW5nIGZha2UgY3VycmVuY3kgbm90ZXMgcHJpbnRlZCBieSBJU0kgZnVuY3Rpb25hcmllcywgYW5kIHR3bywgc2VuZCBtZXJjZW5hcmllcyB0byBjb25kdWN0IGFiZHVjdGlvbnMgYW5kIHRlcnJvcmlzdCBhdHRhY2tzLg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBUZWNobmljYWwgVW5pdmVyc2l0eSBvZiBNdW5pY2ggKDUgcXViaXQpOyBMb3MgQWxhbW9zIE5hdGlvbmFsIExhYiAoNyBxdWJpdHMpDQoyMDAwOkluIDIwMDAsIFRhdGEgVGVhIGFjcXVpcmVkIHRoZSBUZXRsZXkgVGVhIENvbXBhbnkgZm9yICQ0MDcgbWlsbGlvbi4gT3RoZXIgbm90YWJsZSBhY3F1aXNpdGlvbnMgaW5jbHVkZSBOYXRTdGVlbCAoMjAwNCksIEJydW5uZXIgTW9uZCAoMjAwNSksIGFuZCBFaWdodCBPJ0Nsb2NrIENvZmZlZSAoMjAwNikuIA0KMjAwMDogQmlybGEgYWNxdWlyZWQgSW5kaWFuIEFsdW1pbnVtIENvbXBhbnkgKElOREFMKS4gDQoyMDAwOiBTYXR5YSBOYXJheWFuYSBHb2Vua2Egd29ya2VkIGFzIGFuIGludGVybmF0aW9uYWwgYnVzaW5lc3NtYW4gYmFzZWQgaW4gTXlhbm1hciBhbmQgSW5kaWEgZm9yIGEgbGFyZ2UgcGFydCBvZiBoaXMgbGlmZS4gSGUgd2FzIGEga2V5bm90ZSBzcGVha2VyIG9uIHRoZSBzdWJqZWN0IG9mIFNwaXJpdHVhbGl0eSBpbiBCdXNpbmVzcyBhdCB0aGUgMzB0aCBXb3JsZCBFY29ub21pYyBGb3J1bSBpbiBEYXZvcywgU3dpdHplcmxhbmQgYmV0d2VlbiAyNiBKYW4gYW5kIDIgRmViIDIwMDAuIFR3byB5ZWFycyBsYXRlciBoZSBjb25kdWN0ZWQgdGhlIGZpcnN0IDEwLWRheSBjb3Vyc2UgaW4gVmlwYXNzYW5hIE1lZGl0YXRpb24gZXNwZWNpYWxseSBmb3IgYnVzaW5lc3MgZXhlY3V0aXZlcyBhbmQgZ292ZXJubWVudCBvZmZpY2lhbHMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAyMjUgeWVhcnMgb2YgSW5kZXBlbmRlbnQgVVNBIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIA0KDQoyMDAxOltVU11bR2VvUG9saXRpY3NdIGludmFzaW9uIG9mIEFmZ2hhbmlzdGFuLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMjAwMTpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgU2hhbmdoYWkgQ29vcGVyYXRpb24gT3JnYW5pc2F0aW9uIChTQ08pIGlzIGEgRXVyYXNpYW4gcG9saXRpY2FsLCBlY29ub21pYywgaW50ZXJuYXRpb25hbCBzZWN1cml0eSBhbmQgZGVmZW5jZSBvcmdhbml6YXRpb24gb2YgdGVuIG1lbWJlciBzdGF0ZXMuIEl0IHdhcyBlc3RhYmxpc2hlZCBpbiAyMDAxIGJ5IHRoZSBQZW9wbGUncyBSZXB1YmxpYyBvZiBDaGluYSwgS2F6YWtoc3RhbiwgS3lyZ3l6c3RhbiwgUnVzc2lhLCBhbmQgVGFqaWtpc3RhbiBhbmQgVXpiZWtpc3Rhbi4gSW4gSnVuZSAyMDE3LCBpdCBleHBhbmRlZCB0byBlaWdodCBzdGF0ZXMsIHdpdGggSW5kaWEgYW5kIFBha2lzdGFuLiBJcmFuIGpvaW5lZCB0aGUgZ3JvdXAgaW4gSnVseSAyMDIzLCBhbmQgQmVsYXJ1cyBpbiBKdWx5IDIwMjQuIFNldmVyYWwgY291bnRyaWVzIGFyZSBlbmdhZ2VkIGFzIG9ic2VydmVycyBvciBkaWFsb2d1ZSBwYXJ0bmVycy4gRm91bmRlcnM6IENoaW5hLCBSdXNzaWEsIEthemFraHN0YW4sIFV6YmVraXN0YW4sIEt5cmd5enN0YW4sIFRhamlraXN0YW47IEhlYWRxdWFydGVyczogQmVpamluZywgQ2hpbmE7IEZvdW5kZWQ6IDE1IEp1bmUgMjAwMQ0KMjAwMTpbQnVzaW5lc3NdIDIwMDHigJMyMDA1OiBIRlQgZXhlY3V0aW9uIHRpbWVzIGRlY3JlYXNlZCBmcm9tIHNldmVyYWwgc2Vjb25kcyB0byBtaWxsaXNlY29uZHMuIChIRlQpDQoyMDAxOltDb21wdXRpbmddW1F1YW50dW1dICBJQk0gaW1wbGVtZW50ZWQgR3JvdmVy4oCZcyBhbGdvcml0aG0gb24gYSA3LXF1Yml0IE5NUiBxdWFudHVtIGNvbXB1dGVyLCBmaW5kaW5nIGEgbWFya2VkIGl0ZW0gaW4gYSBkYXRhYmFzZSBvZiA0IGVudHJpZXMuDQoyMDAxOiBMaWZlIG9mIFBpIGlzIGEgQ2FuYWRpYW4gcGhpbG9zb3BoaWNhbCBub3ZlbCBieSBZYW5uIE1hcnRlbCBwdWJsaXNoZWQuIFRoZSBwcm90YWdvbmlzdCBpcyBQaXNjaW5lIE1vbGl0b3IgIlBpIiBQYXRlbCwgYW4gSW5kaWFuIGJveSBmcm9tIFBvbmRpY2hlcnJ5IHdobyBleHBsb3JlcyBpc3N1ZXMgb2Ygc3Bpcml0dWFsaXR5IGFuZCBtZXRhcGh5c2ljcyBmcm9tIGFuIGVhcmx5IGFnZS4gSGUgc3Vydml2ZXMgMjI3IGRheXMgYWZ0ZXIgYSBzaGlwd3JlY2sgd2hpbGUgc3RyYW5kZWQgb24gYSBsaWZlYm9hdCBpbiB0aGUgUGFjaWZpYyBPY2VhbiB3aXRoIGEgQmVuZ2FsIHRpZ2VyIHdoaWNoIHJhaXNlcyBxdWVzdGlvbnMgYWJvdXQgdGhlIG5hdHVyZSBvZiByZWFsaXR5IGFuZCBob3cgaXQgaXMgcGVyY2VpdmVkIGFuZCB0b2xkLjtTZXZlbiBTdG9yaWVzICgxOTkzKQ0KMjAwMTpbQ3JpbWVdW0luZGlhXSBDaGhvdGEgUmFqYW4ncyBhc3NvY2lhdGVzIHRyYWNrZWQgZG93biBhbmQgc2hvdCBkZWFkIGhvdGVsaWVyIFZpbm9kIGluIE11bWJhaSwgYXMgd2VsbCBhcyBTdW5pbCBTb2FucyDigJMgYW5vdGhlciBEYXdvb2QgYXNzb2NpYXRlLg0KMjAwMSAoSmFuIDEpOltCb29rXSBHcmVnIE1jS2Vvd24ncyBFc3NlbnRpYWxpc206IFRoZSBEaXNjaXBsaW5lZCBQdXJzdWl0IG9mIExlc3MNCjIwMDEgKEphbiAxKTpbQm9va10gQnJpYW4gVHJhY3kncyBFYXQgVGhhdCBGcm9nIQ0KMjAwMTogVGhlIEFyZHVpbm8gcHJvamVjdCBzdGFydGVkIGF0IHRoZSBJbnRlcmFjdGlvbiBEZXNpZ24gSW5zdGl0dXRlIEl2cmVhIChJRElJKSBpbiBJdnJlYSwgSXRhbHkuIEF0IHRoYXQgdGltZSwgdGhlIHN0dWRlbnRzIHVzZWQgYSBCQVNJQyBTdGFtcCBtaWNyb2NvbnRyb2xsZXIgYXQgYSBjb3N0IG9mICQxMDAsIGEgY29uc2lkZXJhYmxlIGV4cGVuc2UgZm9yIG1hbnkgc3R1ZGVudHMuDQoyMDAxIChBcHIgNHRoKTogQ2hhcmxlcyBNLiBWZXN0LCB0aGUgdGhlbiBQcmVzaWRlbnQgb2YgTUlUIGFubm91bmNlZCBPcGVuQ291cnNlV2FyZSAoT0NXKSBwdWJsaWNpemluZyBhbGwgb2YgaXRzIDIsMDAwIGNvdXJzZXMgIGF0IHRoZSBlc3RpbWF0ZWQgY29zdCBvZiAkMTAwIG1pbGxpb24gKG9uIGFuIGF2Zy4sIGEgTUlUIHN0dWRlbnRzIHBheXMgYXJvdW5kICQyNiwwMDAgYXMgb2ZmbGluZSB0dWl0aW9uIGZlZSkNCjIwMDE6IFVTIGludmFkZWQgQWZnaGFuaXN0YW4gaW4gcmVzcG9uc2UgdG8gOS8xMSBhdHRhY2tzLiBPZmZpY2lhbGx5LCBJdCBoYXMgYmVjb21lIHRoZSBsb25nZXN0IHdhciBpbiBBbWVyaWNhbiBoaXN0b3J5Lg0KMjAwMTogaVBvZCBieSBUb255IEZhZGVsbA0KMjAwMSAoSnVuIDE1KTpbSmFja10gR2FkYXI6IEVrIFByZW0gS2F0aGE7IExhZ2FhbjogT25jZSBVcG9uIGEgVGltZSBpbiBJbmRpYQ0KMjAwMSAoU2VwIDExKTogOS8xMSBUZXJyb3Jpc3QgYXR0YWNrcy4gVGhlIFNlcHRlbWJlciAxMSBvciA5LzExLCBhdHRhY2tzIHdlcmUgYSBzZXJpZXMgb2YgZm91ciBjb29yZGluYXRlZCB0ZXJyb3Jpc3QgYXR0YWNrcyBieSB0aGUgSXNsYW1pYyB0ZXJyb3Jpc3QgZ3JvdXAgYWwtUWFlZGEgb24gdGhlIFVuaXRlZCBTdGF0ZXMgb24gdGhlIG1vcm5pbmcgb2YgVHVlc2RheSwgU2VwIDExLiBUaGUgbG9zcyBvZiBsaWZlIHdhcyBlc3RpbWF0ZWQgYXQganVzdCB1bmRlciAzLDAwMC4gVGhlIGV2ZW50IGNoYW5nZWQgQW1lcmljYW4gZm9yZWlnbiBwb2xpY3kuIEl0IHdhcyBhIG1vdGl2YXRpbmcgZmFjdG9yIGJlaGluZCB0aGUgY29udHJvdmVyc2lhbCBpbnZhc2lvbiBvZiBJcmFxIGFuZCBsZWQgdG8gYSDigJh3YXIgb24gdGVycm9y4oCZIHN5bWJvbGlzZWQgYnkgR3VhbnRhbmFtbyBCYXkgYW5kIGEgZGViYXRlIG92ZXIgdGhlIGp1c3RpZmljYXRpb24gb2YgdG9ydHVyZS4NCjIwMDEgKE9jdCA3KTpbR2VvUG9saXRpY3NdIFVuaXRlZCBTdGF0ZXMgaW52YXNpb24gb2YgQWZnaGFuaXN0YW46IEluIGxhdGUgMjAwMSwgdGhlIFVuaXRlZCBTdGF0ZXMgYW5kIGl0cyBjbG9zZSBhbGxpZXMgaW52YWRlZCBBZmdoYW5pc3RhbiBhbmQgdG9wcGxlZCB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50LiBUaGUgaW52YXNpb24ncyBzdGF0ZWQgYWltcyB3ZXJlIHRvIGRpc21hbnRsZSBhbC1RYWVkYSwgd2hpY2ggaGFkIGV4ZWN1dGVkIHRoZSBTZXB0ZW1iZXIgMTEgYXR0YWNrcywgYW5kIHRvIGRlbnkgaXQgYSBzYWZlIGJhc2Ugb2Ygb3BlcmF0aW9ucyBpbiBBZmdoYW5pc3RhbiBieSByZW1vdmluZyB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50IGZyb20gcG93ZXIuIERlYyA3LCAyMDAxIG9ud2FyZCBzdGFydGVkIFdhciBpbiBBZmdoYW5pc3Rhbi4NCjIwMDEgKE9jdCAxNik6W0Jvb2tdIE1jS2luc2V5IFJlc2VhcmNoZXIgSmFtZXMgQy4gQ29sbGlucycgR29vZCBUbyBHcmVhdDogV2h5IFNvbWUgQ29tcGFuaWVzIE1ha2UgdGhlIExlYXAuLi5BbmQgT3RoZXJzIERvbid0OyANCjIwMDEgKE5vdik6W0NyaW1lXVtJbmRpYV0gQWJkdWwgR2FmZmFyIGFsaWFzIENoaWtuYSBHYWZmYXIgY2F1Z2h0IGJ5IHRoZSBkZXRlY3RpdmUgZGVwYXJ0bWVudCBpbiBDYWxjdXR0YSANCjIwMDEgKEphbiAyKTogVGhlIG5vcnRoZXJuIGVsZWN0cmljYWwgZ3JpZCBjb2xsYXBzZWQgaW4gSW5kaWEuIEEgZmF1bHQgaW4gdGhlIHRyYW5zbWlzc2lvbiBzeXN0ZW0gaW4gdGhlIHN0YXRlIG9mIFV0dGFyIFByYWRlc2ggbGVkIHRvIGNhc2NhZGluZyBmYWlsdXJlIHRocm91Z2hvdXQgbm9ydGhlcm4gSW5kaWEgYWZmZWN0aW5nIDIzIGNyb3JlIHJlc2lkZW50cy4NCjIwMDE6IElWUlMgKCdJbnRlcmFjdGl2ZSBWb2ljZSBSZXNwb25zZSBTeXN0ZW0nKSBmb3IgdGVsZXBob25pYyBlbnF1aXJpZXMgYWJvdXQgdHJhaW5zIGludHJvZHVjZWQgaW4gc29tZSBzdGF0aW9ucy4NCjIwMDE6IE1hZGVFYXN5IGluY29ycG9yYXRlZCBhdCA0NC1BLzEsIEthbHUgU2FyYWksIE5lYXIgSGF1eiBLaGFzIE1ldHJvIFN0YXRpb24sIE5ldyBEZWxoaS0xMTAwMTYNCjIwMDE6IEFjYyB0byAyMDAxIGNlbnN1cywgMzAgbGFraHMgd2VyZSBpbW1pZ3JhdGVkIHRvIEluZGlhIGZyb20gQmFuZ2xhZGVzaCBhbG9uZSwgZm9sbG93ZWQgYnkgMTAgbGFraHMgZnJvbSBQYWtpc3RhbiBhbmQgNiBsYWtocyBmcm9tIE5lcGFsLg0KMjAwMSAoRGVjIDEzKTpbQ3JpbWVdW0luZGlhXSBUZXJyb3Jpc3QgYXR0YWNrIG9uIEluZGlhJ3MgUGFybGlhbWVudC4NCjIwMDE6IHRoZSBjdXN0b21lciBiYXNlIG9mIG1vYmlsZSBwaG9uZSBjb21wYW5pZXMgd2FzIDQgbWlsbGlvbi4NCjIwMDE6IEJlbmVmaXQgbGFubmVycywgVGV4YXMgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBIZWFsdGggQmVuZWZpdCBkaXZpc2lvbi4NCjIwMDE6IE5ldyBIb3Jpem9ucyB3YXMgaW5pdGlhbGx5IHNlbGVjdGVkIGZvciBmdW5kaW5nIGluIDIwMDEgYnV0IHdhcyBleGNsdWRlZCBmcm9tIHRoZSBOQVNBIDIwMDMgYnVkZ2V0LiBGdW5kaW5nIGZvciB0aGUgbWlzc2lvbiB3YXMgcmVpbnN0YXRlZCBhZnRlciBOZXcgSG9yaXpvbnMgd2FzIGxpc3RlZCBhcyBhIHRvcCBwcmlvcml0eSBpbiB0aGUgUGxhbmV0YXJ5IFNjaWVuY2UgRGVjYWRhbCBTdXJ2ZXkgb2YgMjAwM+jjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlallkllklklklklklklklklklklklklklklklklklklklklklklklklklklklkjjajlkasjdlajdlkajdlaj
+KAkzIwMDEuDQoxOTkzOiBBc2hvayBIYWxsIEdpcmwncyBSZXNpZGVudGlhbCBTY2hvb2wsIE1hamtoYWxpLg0KMTk5MzogQnkgdGhpcyB5ZWFyIHRoZXJlIHdlcmUgYXJvdW5kIDEwMCB3ZWItc2VydmVycyBhY3Jvc3MgdGhlIHdvcmxkLiAoQSByZXBvcnQgcHVibGlzaGVkIGluIGZpcnN0IGlzc3VlIG9mIFRoZSBXb3JsZCBXaWRlIFdlYiBOZXdzbGV0dGVyLCAxOTkzKQ0KMTk5MzogQUMgMy10aWVyIGNvYWNoZXMgJiBTbGVlcGVyIGNsYXNzIGFyZSBpbnRyb2R1Y2VkIGFwYXJ0IGZyb20gc2Vjb25kIGNsYXNzLg0KMTk5MzogR29JJ3MgRGlzdHJpY3QgUHJpbWFyeSBFZHVjYXRpb24gUHJvZ3JhbW1lIChEUEVQKSB3YXMgbGF1bmNoZWQsIHdpdGggYW4gYWltIG9mIGFjaGlldmluZyB0aGUgb2JqZWN0aXZlIG9mIHVuaXZlcnNhbCBwcmltYXJ5IGVkdWNhdGlvbi4gVGhpcyBwcm9ncmFtbWVkIGxhaWQgdGhlIGZvdW5kYXRpb25zIGZvciDgpLjgpLDgpY3gpLUg4KS24KS/4KSV4KWN4KS34KS+IOCkheCkreCkv+Ckr+CkvuCkqChFZHVjYXRpb24gZm9yIEFsbCBNb3ZlbWVudCkgYWltZWQgYXQgdGhlIHVuaXZlcnNhbGlzYXRpb24gb2YgZWxlbWVudGFyeSBlZHVjYXRpb24gbWFraW5nIGZyZWUgYW5kIGNvbXB1bHNvcnkgZWR1Y2F0aW9uIHRvIGNoaWxkcmVuIGJldHdlZW4gdGhlIGFnZXMgb2YgNiB0byAxNC4NCjE5OTM6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIHNwbGl0IHdpdGggRGF3b29kIGFuZCBmb3JtZWQgYW4gaW5kZXBlbmRlbnQgZ2FuZyB0aGF0IGZyZXF1ZW50bHkgY2xhc2hlZCB3aXRoIERhd29vZCdzIEQtQ29tcGFueS4NCjE5OTMgKEphbiA3KTpbQ3JpbWVdIFJpb3RzIHJlLXN0YXJ0ZWQgaW4gTXVtYmFpIGFuZCBsYXN0ZWQgZm9yIDIwIGRheXMuIFRoZSBJU0ksIHdoaWNoIGNvbnRyb2xsZWQgc2hpcHBpbmcgcm91dGVzIGZyb20gdGhlIEd1bGYgdG8gSW5kaWEncyB3ZXN0IGNvYXN0LCBkZW1hbmRlZCB0aGF0IHRoZSBtYWZpYSB0cmFuc3BvcnQgd2VhcG9ucyBhbmQgZXhwbG9zaXZlcyBpbnRvIEluZGlhIGluIHJldHVybiBmb3IgdGhlIHVzZSBvZiBQYWtpc3RhbidzIHdhdGVycy4gRGF3b29kIG1ldCB0aGVpciBJU0kgaGFuZGxlcnMgaW4gYSA1IHN0YXIgaG90ZWwgb2YgRHViYWkgaW4gSmFuIG9yIEZlYiBvZiAxOTkzLCB0aGVuIGNhbWUgdGhlIFJEWCB0aHJvdWdoIHRoZSBzYW1lIHBvcm91cyBhbmQgdW5jaGVja2VkIHNlYSByb3V0ZSB0aGF0IDI2LzExIGF0dGFja2VycyBzbGlwcGVkIGFjcm9zcyBhbmQgd3JlY2tlZCBtYXloZW0gaW4gTXVtYmFpLiBUaGUg4oCZOTMgYXR0YWNrcyB3ZXJlIGZpbmFsbHkgZXhlY3V0ZWQgaW4gbWFyY2ggdGhhdCBjbGFpbWVkIHNvbWUgMzAwIGlubm9jZW50IGxpdmVzLg0KMTk5MyAoTWFyIDYpOltQb2xpdHldW0luZGlhXSBTaGFyYWQgUGF3YXIgcmUtZWxlY2V0ZCBhcyBDTSBvZiBNSCBmb3IgMiB5ZWFycy4NCjE5OTMgKE1hciAxMik6W0NyaW1lXSBUaGUgMTk5MyBCb21iYXkgYm9tYmluZ3Mgd2VyZSBhIHNlcmllcyBvZiAxMiB0ZXJyb3Jpc3QgYm9tYmluZ3MgdGhhdCB0b29rIHBsYWNlIGluIEJvbWJheS4gVGhlIHNpbmdsZS1kYXkgYXR0YWNrcyByZXN1bHRlZCBpbiAyNTcgZmF0YWxpdGllcyBhbmQgMSw0MDAgaW5qdXJpZXMuIFRoZXJlIHdhcyBhbm90aGVyIHJhaWQgbmVhciBNYW5pc2ggbWFya2V0IHdoZXJlIGhhbmQgZ3JlbmFkZXMgd2VyZSByZWNvdmVyZWQuIEFmdGVyIGFub3RoZXIgdGlwIG9mZiBsZWQgdG8gZGlzY292ZXJ5IG9mIGEgaHVnZSBxdWFudGl0eSBvZiBSRFggZnJvbSBOYWdsYSBCdW5kZXIgb2ZmIEdob2RidW5kZXIgUm9hZCBpbiBUaGFuZS4g4oCcSW4gYWxsLCA1LDAwMCBraWxvZ3JhbXMgb2YgUkRYIHdhcyBicm91Z2h0IGludG8gTXVtYmFpIGFuZCB3ZSByZWNvdmVyZWQgMywzMDAga2lsb2dyYW1zIG9mIGl0IGluIGFsbCB0aGUgcmFpZHMs4oCdIHNheXMgQ2hhdWd1bGUuIFJlZHVjZWQgU2hvY2sgU2Vuc2l0aXZpdHkgKFJTUykgZXhwbG9zaXZlcywgc3VjaCBhcyBSU1MtUkRYLCB3aGljaCBjb3N0cyBhYm91dCBScy4gMSw1MDAtMiwwMDAgcGVyIGtnLiBBbmVlcyBjb250aW51ZWQgb3BlcmF0aW9uIG9mIEQtQ29tcGFueSB3aGljaCBpbmNsdWRlIGNvbnRyYWN0IGtpbGxpbmcsIGV4dG9ydGlvbiwgdGhlIGNpcmN1bGF0aW9uIG9mIGNvdW50ZXJmZWl0IGN1cnJlbmN5LCBhbmQgdGhlIHByb3Zpc2lvbiBvZiBhIHJhbmdlIG9mIGZyZWUtbGFuY2Ugc2VydmljZXMgdG8gdGVycm9yaXN0IGdyb3VwcyBhdCB0aGUgaW5zdGFuY2Ugb2YgUGFraXN0YW4ncyBJbnRlciBTZXJ2aWNlcyBJbnRlbGxpZ2VuY2UgKElTSSkuIEludGVycG9sIFJlZCBDb3JuZXIgbm90aWNlIGZvciBELUNvbXBhbnkuDQoxOTkzIChOb3YgMSk6IFRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGZvdW5kZWQuIEl0IGlzIGFuIGVjb25vbWljIGFuZCBwb2xpdGljYWwgcGFydG5lcnNoaXAgaW52b2x2aW5nIDI4IEV1cm9wZWFuIGNvdW50cmllcy4gSXQgYmVnYW4gYWZ0ZXIgV1cyIHRvIGZvc3RlciBlY29ub21pYyBjby1vcGVyYXRpb24sIHdpdGggdGhlIGlkZWEgdGhhdCBjb3VudHJpZXMgd2hpY2ggdHJhZGUgdG9nZXRoZXIgYXJlIG1vcmUgbGlrZWx5IHRvIGF2b2lkIGdvaW5nIHRvIHdhciB3aXRoIGVhY2ggb3RoZXIuDQoxOTkzIChOb3YgMyk6IFtHZW9Qb2xpdGljc10gVGhlIENvbW1vbiBNYXJrZXQgZm9yIEVhc3Rlcm4gYW5kIFNvdXRoZXJuIEFmcmljYSAoQ09NRVNBKSBpcyBhIHJlZ2lvbmFsIGVjb25vbWljIGNvbW11bml0eSBpbiBBZnJpY2Egd2l0aCB0d2VudHktb25lIG1lbWJlciBzdGF0ZXMgc3RyZXRjaGluZyBmcm9tIFR1bmlzaWEgdG8gRXN3YXRpbmkuIENPTUVTQSB3YXMgZm9ybWVkIGluIERlY2VtYmVyIDE5OTQsIHJlcGxhY2luZyBhIFByZWZlcmVudGlhbCBUcmFkZSBBcmVhIHdoaWNoIGhhZCBleGlzdGVkIHNpbmNlIDE5ODEuIE5pbmUgb2YgdGhlIG1lbWJlciBzdGF0ZXMgZm9ybWVkIGEgZnJlZSB0cmFkZSBhcmVhIGluIDIwMDAgKERqaWJvdXRpLCBFZ3lwdCwgS2VueWEsIE1hZGFnYXNjYXIsIE1hbGF3aSwgTWF1cml0aXVzLCBTdWRhbiwgWmFtYmlhIGFuZCBaaW1iYWJ3ZSksIHdpdGggUndhbmRhIGFuZCBCdXJ1bmRpIGpvaW5pbmcgdGhlIEZUQSBpbiAyMDA0LCB0aGUgQ29tb3JvcyBhbmQgTGlieWEgaW4gMjAwNiwgU2V5Y2hlbGxlcyBpbiAyMDA5IGFuZCBUdW5pc2lhIGFuZCBTb21hbGlhIGluIDIwMTguDQoxOTkzIChEZWMgMjApOiBPSENIUiBmb3JtZWQuIFRoZSBPZmZpY2Ugb2YgdGhlIFVuaXRlZCBOYXRpb25zIEhpZ2ggQ29tbWlzc2lvbmVyIGZvciBIdW1hbiBSaWdodHMgKE9IQ0hSKSwgYSBVbml0ZWQgTmF0aW9ucyBhZ2VuY3kgdGhhdCB3b3JrcyB0byBwcm9tb3RlIGFuZCBwcm90ZWN0IHRoZSBodW1hbiByaWdodHMgdGhhdCBhcmUgZ3VhcmFudGVlZCB1bmRlciBpbnRlcm5hdGlvbmFsIGxhdyBhbmQgc3RpcHVsYXRlZCBpbiB0aGUgVW5pdmVyc2FsIERlY2xhcmF0aW9uIG9mIEh1bWFuIFJpZ2h0cyBvZiAxOTQ4Lg0KMTk5Mzp0aGUgMjR0aCBhbmQgbGFzdCBHTE9OQVNTIHNhdGVsbGl0ZSB3YXMgbGF1bmNoZWQgZm9ybWluZyB0aGUgd2hvbGUgbmF2aWdhdGlvbiBjb25zdGVsbGF0aW9uIHNpbWlsYXIgdG8gdGhhdCBvZiBVUydzIEdQUy4NCjE5OTM6IFNIQS0wIChhIGhhc2ggZnVuY3Rpb24pIHdhcyBwcm9wb3NlZCBieSBOSVNULCBNYXJ5bGFuZCwgVVNBIChGb3VuZGVkOiAxOTAxKS4gSXQgcHJvZHVjZXMgYSAxNjAtYml0IGhhc2ggdmFsdWUsIHRodXMgdGhlIGJydXRlLWZvcmNlIGNvbGxpc2lvbiBvciAgbmVhci1jb2xsaXNpb24gYXR0YWNrIHJlcXVpcmVzIE8oMl44MCkgY29tcHV0YXRpb24uIFdpdGhpbiA1IHllYXJzLCBpdCB3YXMgbWFkZSBjb2xsaXNpb24gYXR0YWNrZWQgYnkgQ2hhYmF1ZCBhbmQgSm91eCB3aXRoIHRoZSBhdHRhY2sgY29tcGxleGl0eSBvZiAyXjYxLg0KMTk5MzogW0NvYWxnYXRlIHNjYW1dIE9uIDIzcmQgQXByaWwgMjAxMywgdGhlIFN0YW5kaW5nIENvbW1pdHRlZSBvbiBDb2FsIGFuZCBTdGVlbCB0YWJsZWQgaW4gUGFybGlhbWVudCB0aGF0IGFsbCAxOTQgY29hbCBibG9ja3MgZGlzdHJpYnV0ZWQgYmV0d2VlbiAxOTkzIGFuZCAyMDA4IHdlcmUgYXVjdGlvbmVkIGluIGFuIHVuYXV0aG9yaXplZCBtYW5uZXIgYW5kIHRoZSBjb3VudHJ5IGxvc3QgUnMuMS44NiBsYWtoIGNyb3JlLi4gRm9ybWVyIFByaW1lIE1pbmlzdGVyIE1hbm1vaGFuIFNpbmdoLCBhbG9uZyB3aXRoIEt1bWFyIE1hbmdhbGFtIEJpcmxhIGFuZCBQLkMuIFBhcmFraCwgd2VyZSBhY2N1c2VkIGFuZCBzdW1tb25lZCBieSBhIHNwZWNpYWwgY291cnQuIFsyTCBDcm9yZV0uIENvbXB0cm9sbGVyIGFuZCBBdWRpdG9yIEdlbmVyYWwgb2YgSW5kaWEgdG9vayAyMCB5ZWFycyB0byBJRCBvbmUgb2YgdGhlIGJpZ2dlc3Qgc2NhbXMgaW4gSW5kaWFuIGhpc3RvcnkuDQoxOTkzOiBBZnRlciBQcmVzaWRlbnQgQmlsbCBDbGludG9uIHRvb2sgb2ZmaWNlIGluIDE5OTMsIGhvd2V2ZXIsIHRoZSBVLlMuIGVjb25vbXkgZW1iYXJrZWQgb24gYSBsb25nIGFuZCBzdHJvbmcgZXhwYW5zaW9uLCBtYWtpbmcgdGhlIDE5OTBzIGEgZ3JlYXQgZGVjYWRlIGZvciBBbWVyaWNhJ3MgbW9uZXksIG92ZXJhbGwuIA0KMTk5MzpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTW90aHJhKDE5OTIpDQoxOTkzOltTcGFjZV0gSGlwcGFyY29zLCBhIHNjaWVudGlmaWMgc2F0ZWxsaXRlIG9mIHRoZSBFdXJvcGVhbiBTcGFjZSBBZ2VuY3kgKEVTQSkgbGFzdGVkIGZvciA0IHllYXJzIGJlZm9yZSBnb2luZyBvdXQtb2Ytc2VydmljZS4NCjE5OTM6W1NwYWNlXVtSZXNlYXJjaF0gSW4gMTk5MywgRG9uIFBhZ2UgYXJndWVkIHRoYXQgaWYgYSBibGFjayBob2xlIHN0YXJ0cyBpbiBhIHB1cmUgcXVhbnR1bSBzdGF0ZSBhbmQgZXZhcG9yYXRlcyBjb21wbGV0ZWx5IGJ5IGEgdW5pdGFyeSBwcm9jZXNzLCB0aGUgdm9uIE5ldW1hbm4gZW50cm9weSBvZiB0aGUgSGF3a2luZyByYWRpYXRpb24gaW5pdGlhbGx5IGluY3JlYXNlcyBhbmQgdGhlbiBkZWNyZWFzZXMgYmFjayB0byB6ZXJvIHdoZW4gdGhlIGJsYWNrIGhvbGUgaGFzIGRpc2FwcGVhcmVkLiBUaGlzIGlzIGNhbGxlZCB0aGUgUGFnZSBjdXJ2ZS4NCjE5OTM6W0Jvb2tzXVtIaXN0b3J5XSBHcmVlbuKAmXMgRGljdGlvbmFyeSBvZiBTbGFuZyBpcyB0aGUgbGFyZ2VzdCBoaXN0b3JpY2FsIGRpY3Rpb25hcnkgb2YgRW5nbGlzaCBzbGFuZy4gV3JpdHRlbiBieSBKb25hdGhvbiBHcmVlbiBvdmVyIDE3IHllYXJzIGZyb20gMTk5MywgaXQgcmVhY2hlZCB0aGUgcHJpbnRlZCBwYWdlIGluIDIwMTAgaW4gYSB0aHJlZS12b2x1bWUgc2V0IGNvbnRhaW5pbmcgbmVhcmx5IDEwMCwwMDAgZW50cmllcyBzdXBwb3J0ZWQgYnkgb3ZlciA0MDAsMDAwIGNpdGF0aW9ucyBmcm9tIGMuIGFkIDEwMDAgdG8gdGhlIHByZXNlbnQgZGF5LiBUaGUgbWFpbiBmb2N1cyBvZiB0aGUgZGljdGlvbmFyeSBpcyB0aGUgY292ZXJhZ2Ugb2Ygb3ZlciA1MDAgeWVhcnMgb2Ygc2xhbmcgZnJvbSBjLiAxNTAwIG9ud2FyZHMuDQoxOTkzOltFbnZdW0Rpc2FzdGVyXSBTb3V0aCBBc2lhbiBtb25zb29uIGZsb29kcywgM2sgZGVhdGhzDQoxOTkzOltHZW9ncmFwaHldIFRoZSBsYXN0IG1ham9yIHNoaWZ0cyBpbiBFYXJ0aCdzIGF4aXMgd2VyZSBpbmZsdWVuY2VkIGJ5IGNsaW1hdGUgY2hhbmdlOiBhIDMxLjUtaW5jaCBzaGlmdCBiZXR3ZWVuIDE5OTMgYW5kIDIwMTAgd2FzIHByaW1hcmlseSBjYXVzZWQgYnkgZ3JvdW5kd2F0ZXIgcHVtcGluZywgYW5kIGEgY2hhbmdlIGluIHBvbGFyIGRyaWZ0IGRpcmVjdGlvbiBhcm91bmQgdGhlIDE5OTBzIHdhcyBsaW5rZWQgdG8gbWVsdGluZyBnbGFjaWVycyBhbmQgaWNlIHNoZWV0cyBkdWUgdG8gZ2xvYmFsIHdhcm1pbmcuIEVhcnRoJ3MgYXhpcyBhbHNvIHNoaWZ0ZWQgYnkgYWJvdXQgNi41IGluY2hlcyBpbiBNYXJjaCAyMDExIGFmdGVyIHRoZSBKYXBhbmVzZSBlYXJ0aHF1YWtlLCBjYXVzaW5nIHRoZSBwbGFuZXQgdG8gc3BpbiBzbGlnaHRseSBmYXN0ZXIuDQoxOTkzOltXaG9dIEluIDE5OTMsIEluZGlhIGNhbWUgaGVhcnRicmVha2luZ2x5IGNsb3NlIHRvIHdpbm5pbmcgaXRzIGZpcnN0IE1pc3MgVW5pdmVyc2UgY3Jvd24gd2l0aCB0aGUgc3R1bm5pbmcgYW5kIGdyYWNlZnVsIE5hbXJhdGEgU2hpcm9ka2FyLCB3aG8gaGFkIGVhcmxpZXIgd29uIHRoZSBGZW1pbmEgTWlzcyBJbmRpYSB0aXRsZS4gUmVwcmVzZW50aW5nIEluZGlhIGF0IHRoZSBNaXNzIFVuaXZlcnNlIHBhZ2VhbnQgaGVsZCBpbiBNZXhpY28gQ2l0eSwgTmFtcmF0YSB3YXMgYSBzdHJvbmcgY29udGVuZGVy4oCUZWxlZ2FudCBpbiBoZXIgZ293biwgcG9pc2VkIGluIGludGVydmlld3MsIGFuZCBhIGZhbiBmYXZvcml0ZS4gU2hlIGVhc2lseSBtYWRlIGl0IHRvIHRoZSBUb3AgNiwgYW5kIGhlciBjaGFuY2VzIG9mIHdpbm5pbmcgbG9va2VkIGluY3JlZGlibHkgaGlnaC4gQnV0IHRoZW4gY2FtZSB0aGUgZmluYWwgcXVlc3Rpb246IOKAnElmIHlvdSBjb3VsZCBiZSBib3JuIGFzIGFueSBoaXN0b3JpY2FsIGZpZ3VyZSwgd2hvIHdvdWxkIGl0IGJlIGFuZCB3aHk/4oCdIFdoaWxlIG90aGVyIGNvbnRlc3RhbnRzIG5hbWVkIGdsb2JhbCBpY29ucyBsaWtlIE1vdGhlciBUZXJlc2EgYW5kIFByaW5jZXNzIERpYW5hLCBOYW1yYXRhIGdhdmUgYW4gaG9uZXN0LCBwZXJzb25hbCBhbnN3ZXLigJRzaGUgc2FpZCBzaGUgd291bGQgYmUgYm9ybiBhcyBoZXJzZWxmIG9yIHNvbWVvbmUgY2xvc2UgdG8gaGVyLCBiZWNhdXNlIHNoZSBiZWxpZXZlZCBpbiBsaXZpbmcgbGlmZSB3aXRoIHRydXRoIGFuZCBpbmRpdmlkdWFsaXR5LiBJdCB3YXMgYSBiZWF1dGlmdWwsIGdyb3VuZGVkIGFuc3dlcuKAlGJ1dCBub3QgdGhlIGtpbmQgb2YgZ3JhbmQsIGlkZWFsaXN0aWMgcmVzcG9uc2UgdGhlIGp1ZGdlcyB3ZXJlIGV4cGVjdGluZy4gVGhhdCBvbmUgbW9tZW50IG9mIHRydXRoLCBtYW55IGJlbGlldmUsIGNvc3QgaGVyIHRoZSBjcm93biwgYW5kIEluZGlhIGhhZCB0byB3YWl0IGFub3RoZXIgeWVhciBiZWZvcmUgU3VzaG1pdGEgU2VuIGJyb3VnaHQgdGhlIE1pc3MgVW5pdmVyc2UgdGl0bGUgaG9tZSBpbiAxOTk0LiBTdGlsbCwgTmFtcmF0YeKAmXMgYW5zd2VyIGJlY2FtZSBpY29uaWPigJRub3QgYmVjYXVzZSBpdCB3b24sIGJ1dCBiZWNhdXNlIGl0IHdhcyByZWFsLCBtYXJraW5nIGEgcmFyZSBpbnN0YW5jZSB3aGVyZSBob25lc3R5IHN0b29kIHRhbGxlciB0aGFuIGRpcGxvbWFjeS4NCjE5OTM6W0F2aWF0aW9uXVtFeHRyZW1lXVtXaG9dIFRoZSBIZXJic3QgbWFuZXV2ZXIgd2FzIGZpcnN0IHN1Y2Nlc3NmdWxseSBwZXJmb3JtZWQgb24gQXByaWwgMjksIDE5OTMsIGJ5IGFuIFgtMzEgYWlyY3JhZnQuIE5hbWVkIGFmdGVyIFdvbGZnYW5nIEhlcmJzdCwgYSBkZXZlbG9wZXIgb2YgcG9zdC1zdGFsbCB0ZWNobm9sb2d5IGZvciBNZXNzZXJzY2htaXR0LULDtmxrb3ctQmxvaG0gKE1CQiksIHRoaXMsIHBvc3Qtc3RhbGwgbWFuZXV2ZXIgZW5hYmxlcyBhIGZpZ2h0ZXIgdG8gbWFrZSBhIHJhcGlkIDE4MMKwIHR1cm4gd2l0aGluIGEgbWluaW1hbCByYWRpdXMuIA0KDQoxOTk04oCTMTk5NTpbVVNdW0dlb1BvbGl0aWNzXSBvY2N1cGF0aW9uIG9mIEhhaXRpLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgRXVyb3BlYW4gRWNvbm9taWMgQXJlYSwgYWJicmV2aWF0ZWQgYXMgRUVBLCBjb25zaXN0cyBvZiB0aGUgTWVtYmVyIFN0YXRlcyBvZiB0aGUgRXVyb3BlYW4gVW5pb24gKEVVKSBhbmQgdGhyZWUgY291bnRyaWVzIG9mIHRoZSBFdXJvcGVhbiBGcmVlIFRyYWRlIEFzc29jaWF0aW9uIChFRlRBKSAoSWNlbGFuZCwgTGllY2h0ZW5zdGVpbiBhbmQgTm9yd2F5OyBleGNsdWRpbmcgU3dpdHplcmxhbmQpLiBUaGUgQWdyZWVtZW50IG9uIHRoZSBFRUEgZW50ZXJlZCBpbnRvIGZvcmNlIG9uIDEgSmFudWFyeSAxOTk0LiANCjE5OTQ6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEV1cm9wZWFuIEVjb25vbWljIEFyZWEgKEVFQSkgd2FzIGVzdGFibGlzaGVkIG9uIDEgSmFudWFyeSAxOTk0LiBUaGUgYWdyZWVtZW50IGxpbmtzIHRoZSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aHJlZSBFRlRBIHN0YXRlc+KAlEljZWxhbmQsIExpZWNodGVuc3RlaW4sIGFuZCBOb3J3YXnigJRpbnRvIGEgc2luZ2xlIGludGVybmFsIG1hcmtldCwgYWxsb3dpbmcgZm9yIHRoZSBmcmVlIG1vdmVtZW50IG9mIGdvb2RzLCBwZXJzb25zLCBzZXJ2aWNlcywgYW5kIGNhcGl0YWwuIA0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBOQUZUQSwgdGhlIE5vcnRoIEFtZXJpY2FuIEZyZWUgVHJhZGUgQWdyZWVtZW50LCB3YXMgYSAxOTk0IGFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzLCBDYW5hZGEsIGFuZCBNZXhpY28gdG8gZWxpbWluYXRlIHRyYWRlIGJhcnJpZXJzIGFuZCBwcm9tb3RlIGZyZWUgdHJhZGUgaW4gTm9ydGggQW1lcmljYS4gSXQgZmFjaWxpdGF0ZWQgdGhlIG1vdmVtZW50IG9mIGdvb2RzIGFuZCBzZXJ2aWNlcyBhbmQgZXN0YWJsaXNoZWQgYSBsYXJnZSB0cmFkZSBibG9jLiBJbiBKdWx5IDIwMjAsIE5BRlRBIHdhcyByZXBsYWNlZCBieSB0aGUgVW5pdGVkIFN0YXRlcy1NZXhpY28tQ2FuYWRhIEFncmVlbWVudCAoVVNNQ0EpLCB3aGljaCBtb2Rlcm5pemVkIGFuZCBlbmhhbmNlZCB0aGUgdHJlYXR5IGZvciBhIGNvbnRlbXBvcmFyeSBlY29ub215Lg0KMTk5NDpbUy5BZnJpY2FdW1NvY2lhbGlzbV0gRmlyc3QgZnJlZSBlbGVjdGlvbnMgaW4gU291dGggQWZyaWNhOyBOZWxzb24gTWFuZGVsYQ0KMTk5NDpbUmVzZWFyY2hdW3NwYWNlXSBDYXJsIFNhZ2FuIGNvbmNlZGVkIHRoYXQgdGhpcyBhcHByb2FjaCB3b3VsZCBub3Qgd29yayBiZWNhdXNlIHRoZSBhdG1vc3BoZXJlIG9mIFZlbnVzIGlzIGZhciBkZW5zZXIgKDkwIGJhcnMpIHRoYW4gd2hhdCB3YXMgdW5kZXJzdG9vZCBpbiAxOTYxIChhIGZldyBiYXJzKSwgbWVhbmluZyB0aGUgY2FyYm9uIHdvdWxkIGp1c3QgYmUgb3hpZGl6ZWQgYmFjayBpbnRvIENPMi4NCjE5OTQ6W0NvbXB1dGluZ11bUXVhbnR1bV0gUGV0ZXIgU2hvciBkaXNjb3ZlcmVkIGFuIGFsZ29yaXRobSAoU2hvcidzIGFsZ29yaXRobSkgdGhhdCBjb3VsZCBmYWN0b3IgbGFyZ2UgbnVtYmVycyBpbiBwb2x5bm9taWFsIHRpbWUgb24gYSBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCB3b3VsZCBicmVhayB0aGUgc2VjdXJpdHkgb2YgbWFueSBjcnlwdG9ncmFwaGljIHNjaGVtZXMuIA0KMTk5NDpbQ29tcHV0aW5nXVtRdWFudHVtXSBQZXRlciBTaG9yIGFuZCBEb24gQ29wcGVyc21pdGggZmlndXJlZCBvdXQgaG93IHRvIHRha2UgYSBRdWFudHVtIEZvdXJpZXIgVHJhbnNmb3JtLg0KMTk5NDpUaGUgcHJvYmxlbSB3aXRoIHRoZSBwYXBlciBwdWJsaXNoZWQgZWFybGllciB0aGlzIG1vbnRoIHdhcyBpdHMgcmVsaWFuY2Ugb24gU2Nobm9ycidzIGFsZ29yaXRobSAobm90IHRvIGJlIGNvbmZ1c2VkIHdpdGggU2hvcuKAmXMgYWxnb3JpdGhtKSwgd2hpY2ggd2FzIGRldmVsb3BlZCBpbiAxOTk0LiBTY2hub3Jy4oCZcyBhbGdvcml0aG0gaXMgYSBjbGFzc2ljYWwgY29tcHV0YXRpb24gYmFzZWQgb24gbGF0dGljZXMsIHdoaWNoIGFyZSBtYXRoZW1hdGljYWwgc3RydWN0dXJlcyB0aGF0IGhhdmUgbWFueSBhcHBsaWNhdGlvbnMgaW4gY29uc3RydWN0aXZlIGNyeXB0b2dyYXBoeSBhbmQgY3J5cHRhbmFseXNpcy4gVGhlIGF1dGhvcnMgd2hvIGRldmlzZWQgU2Nobm9ycuKAmXMgYWxnb3JpdGhtIHNhaWQgaXQgY291bGQgZW5oYW5jZSB0aGUgdXNlIG9mIHRoZSBoZXVyaXN0aWMgcXVhbnR1bSBvcHRpbWl6YXRpb24gbWV0aG9kIGNhbGxlZCBRQU9BLg0KMTk5NCAoSmFuIDEpOiBbR2VvUG9saXRpY3NdIFRoZSBOb3J0aCBBbWVyaWNhbiBGcmVlIFRyYWRlIEFncmVlbWVudCAoTkFGVEEpIHdhcyBhbiBhZ3JlZW1lbnQgc2lnbmVkIGJ5IENhbmFkYSwgTWV4aWNvLCBhbmQgdGhlIFVuaXRlZCBTdGF0ZXMgdGhhdCBjcmVhdGVkIGEgdHJpbGF0ZXJhbCB0cmFkZSBibG9jIGluIE5vcnRoIEFtZXJpY2EuIFRoZSBhZ3JlZW1lbnQgY2FtZSBpbnRvIGZvcmNlIG9uIEphbnVhcnkgMSwgMTk5NCwgYW5kIHN1cGVyc2VkZWQgdGhlIDE5ODggQ2FuYWRh4oCTVW5pdGVkIFN0YXRlcyBGcmVlIFRyYWRlIEFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzIGFuZCBDYW5hZGEuIFRoZSBOQUZUQSB0cmFkZSBibG9jIGZvcm1lZCBvbmUgb2YgdGhlIGxhcmdlc3QgdHJhZGUgYmxvY3MgaW4gdGhlIHdvcmxkIGJ5IGdyb3NzIGRvbWVzdGljIHByb2R1Y3QuDQoxOTk0OltUZWNobm9sb2d5XVtCdXNpbmVzc11bVVNdW0NvbXB1dGluZ10gVGhlIERlbGwgTGF0aXR1ZGUgc2VyaWVzIGlzIGEgbGluZSBvZiBsYXB0b3AgY29tcHV0ZXJzIG1hbnVmYWN0dXJlZCBhbmQgc29sZCBieSBBbWVyaWNhbiBjb21wYW55IERlbGwuIEl0IGlzIGEgYnVzaW5lc3Mtb3JpZW50ZWQgbGluZSwgYWltZWQgYXQgY29ycG9yYXRlIGVudGVycHJpc2VzLCBoZWFsdGhjYXJlLCBnb3Zlcm5tZW50LCBhbmQgZWR1Y2F0aW9uIG1hcmtldHM7IHVubGlrZSB0aGUgSW5zcGlyb24gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBpbmRpdmlkdWFsIGN1c3RvbWVycywgYW5kIHRoZSBWb3N0cm8gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBzbWFsbGVyIGJ1c2luZXNzZXMuIFRoZSBMYXRpdHVkZSBkaXJlY3RseSBjb21wZXRlcyB3aXRoIHRoZSBMZW5vdm8gVGhpbmtQYWQgYW5kIHRoZSBFbGl0ZUJvb2sgc2VyaWVzIGJ5IEhQLiBBZGRpdGlvbmFsbHksIHRoZSAiUnVnZ2VkIChFeHRyZW1lKSIsICJYRlIiIGFuZCAiQVRHIiBtb2RlbHMgY29tcGV0ZSBwcmltYXJpbHkgd2l0aCBQYW5hc29uaWMncyBUb3VnaGJvb2sgbGluZSBvZiAicnVnZ2VkIiBsYXB0b3BzLg0KMTk5NDogU3VzaG1pdGEgU2VuIGJlY2FtZSBNaXNzIFVuaXZlcnNlLg0KMTk5NDogVGhlIEFubmFscyBvZiBJbXByb2JhYmxlIFJlc2VhcmNoIGlzIGEgYmktbW9udGhseSBtYWdhemluZSBkZXZvdGVkIHRvIHNjaWVudGlmaWMgaHVtb3IsIGluIHRoZSBmb3JtIG9mIGEgc2F0aXJpY2FsIHRha2Ugb24gdGhlIHN0YW5kYXJkIGFjYWRlbWljIGpvdXJuYWwuDQoxOTk0OiBMaW5kb24gTGVhZGVyIG9mIExhbmRvciBBc3NvY2lhdGVzLCBvZiBTYW4gRnJhbmNpc2NvIGRlc2lnbmVkIHdvcmRtYXJrcyBmb3IgRmVkRXgncyB2YXJpb3VzIE9wLXVuaXQuIEZlZEV44oCZcyBwdWJsaWMtcmVsYXRpb25zIGZpcm0gd2FudGVkIHRvIGhpZ2hsaWdodCB0aGUgYXJyb3cgc28gaXQgd291bGQgYmUgb2J2aW91cy4gQnV0IGhlIGZvdWdodCB0aGVtIG9uIHRoYXQg4oCUIGhlIHRob3VnaHQgaXQgd291bGQgYmUgb3ZlcmtpbGwuIFRoZXJl4oCZcyBzb21ldGhpbmcgYWJvdXQgbWFraW5nIHBlb3BsZSBkaXNjb3ZlciBzb21ldGhpbmcgb24gdGhlaXIgb3duIHRoYXTigJlzIGEgbG90IG1vcmUgcG93ZXJmdWwgdGhhbiBpdGFsaWNpemluZyBpdCB0byBtYWtlIHlvdXIgcG9pbnQuDQoxOTk0OiBTY2lsYWIgMS4xLCB0aGUgZmlyc3QgcmVsZWFzZWQgdmVyc2lvbiBvZiBTY2lsYWIsIHdhcyBwdXQgb24gYW5vbnltb3VzIGZ0cCBzaXRlLg0KMTk5NDogVGhlIGNvbmNlcHQgb2YgYSBjYWbDqSB3aXRoIGZ1bGwgSW50ZXJuZXQgYWNjZXNzIChhbmQgdGhlIG5hbWUgQ3liZXJjYWbDqSkgd2FzIGludmVudGVkIGluIGVhcmx5IGJ5ICBhIEJyaXRpc2ggdGVjaG5vbG9neSBhcnRpc3QsIEl2YW4gUG9wZS4NCjE5OTQ6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIGx1cmVkIG9uZSBvZiBEYXdvb2QncyBmYXZvcml0ZSAibmFyY28tdGVycm9yaXN0IiBQaGlsbHUgS2hhbiBhbGlhcyBCYWtodGl5YXIgQWhtZWQgS2hhbiB0byBhIGhvdGVsIHJvb20gaW4gQmFuZ2tvaywgd2hlcmUgaGUgd2FzIHRvcnR1cmVkIHRvIGRlYXRoLCBoYXZpbmcgYmVlbiBiZXRyYXllZCBieSBoaXMgY2xvc2VzdCBhaWRlIGFuZCBzaWRla2ljayBNYW5nZXNoICJNYW5neWEiIFBhd2FyLiBELUNvbXBhbnkncyBTaGFyYWQsIHVzZWQgaGlzIGxpbmtzIHdpdGggTXVtYmFpLWJhc2VkIGhvdGVsaWVyIFZpbm9kIGFuZCBBLiBNaXNocmEgdG8gdHJhY2sgZG93biBSYWphbiBpbiBCYW5na29rLiBSYWphbidzIGhpdG1hbiBSb2hpdCBWYXJtYSBhbmQgaGlzIHdpZmUgc2hvdCBieSBELUNvbXBhbnkuDQoxOTk0KEp1bCAxNik6W1NwYWNlXSBGcm9tIEp1bHkgMTYgdG8gMjIsIDE5OTQsIGVub3Jtb3VzIHBpZWNlcyBvZiB0aGUgY29tZXQgU2hvZW1ha2VyLUxldnkgOSAoU0w5KSwgZGlzY292ZXJlZCBqdXN0IGEgeWVhciBwcmlvciwgY3Jhc2hlZCBpbnRvIEp1cGl0ZXIgb3ZlciBzZXZlcmFsIGRheXMsIGNyZWF0aW5nIGh1Z2UsIGRhcmsgc2NhcnMgaW4gdGhlIHBsYW5ldCdzIGF0bW9zcGhlcmUgYW5kIGxvZnRpbmcgc3VwZXJoZWF0ZWQgcGx1bWVzIGludG8gaXRzIHN0cmF0b3NwaGVyZS4NCjE5OTQgKE9jdCk6IElUUE8gYW5kIEdvSSdzIE5JQyBqb2ludGx5IHNldC11cCB0aGUgTmF0aW9uYWwgQ2VudHJlIGZvciBUcmFkZSBJbmZvcm1hdGlvbiAoTkNUSSkgYXQgUHJhZ2F0aSBNYWlkYW4uDQoxOTk0IChOb3YgMSwgMTU6MDEgSVNUKTpbU3BhY2VdW1N1bl0gVGhlIEdsb2JhbCBHZW9zcGFjZSBTY2llbmNlICdXaW5kJyBzYXRlbGxpdGUgaXMgYSBOQVNBIHNjaWVuY2Ugc3BhY2VjcmFmdCBkZXNpZ25lZCB0byBzdHVkeSByYWRpbyB3YXZlcyBhbmQgcGxhc21hIHRoYXQgb2NjdXIgaW4gdGhlIHNvbGFyIHdpbmQgYW5kIGluIHRoZSBFYXJ0aCdzIG1hZ25ldG9zcGhlcmUuIA0KMTk5NCAoRGVjIDMpOiBTb255J3MgUGxheVN0YXRpb24gKGEgdmlkZW8gZ2FtZSBjb25zb2xlKSB3YXMgaW50cm9kdWNlZCB0byB0aGUgd29ybGQgZnJvbSBNaW5hdG8sIFRva3lvIChKYXBhbikuDQoxOTk0OiBXWFlDLSBmaXJzdCBpbnRlcm5ldCByYWRpbyBzdGF0aW9uIGJyb2FkY2FzdC4NCjE5OTQ6IE1lbW9yeSBjYXJkcyB3ZXJlIGludHJvZHVjZWQgaW4gdGhlIGNvbnN1bWVyIGVsZWN0cm9uaWNzIG1hcmtldC4NCjE5OTQgKEF1Zyk6IElUUE8ncyAxc3QgRGVsaGkgQm9vayBGYWlyIGF0ICBIYWxsIDggdG8gMTIgb2YgUHJhZ2F0aSBNYWlkYW4sIE5ldyBEZWxoaS4gVGhlIHRpbWluZ3Mgb2YgZmFpciBhcmUgZnJvbSAxMC4wMCBhbSB0byA4LjAwIHBtIChlbnRyeSB0byBmYWlyIHdpbGwgY2xvc2UgYXQgNy4zMCBwbSkuDQoxOTk0IChTZXApOiBUaGUgQ09OQ0VSVCBzb2Z0d2FyZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgaW1wbGVtZW50ZWQgYXQgYWxsIG9mIHRoZSBmaXZlIFBSUycgc2l0ZXMgU2VjdW5kZXJhYmFkIGluIFNlcHQuIDE5OTQsIE5ldyBEZWxoaSBvbiBTZXB0LiAxOTk2LCBDYWxjdXR0YSBvbiAxNHRoIEp1bmUgMTk5OCwgTXVtYmFpIG9uIDExdGggSmFuIDE5OTkgYW5kIENoZW5uYWkgb24gMTJ0aCBBcHJpbCAxOTk5Lg0KMTk5NDogdGhlIDI0dGggYW5kIHRoZSBsYXN0IEdQUyBzYXRlbGxpdGUgd2FzIGxhdW5jaGVkIGluIFVTLg0KMTk5NDogVGhlIHdvcmQgVGFsaWJhbiBpcyBQYXNodG8sINi32KfZhNio2KfZhiDhua3EgWxpYsSBbiwgbWVhbmluZyAic3R1ZGVudHMiLCB0aGUgcGx1cmFsIG9mIOG5rcSBbGliLiBBZnRlciB0aGUgU292aWV0IFVuaW9uIGludGVydmVuZWQgYW5kIG9jY3VwaWVkIEFmZ2hhbmlzdGFuIGluIDE5NzksIElzbGFtaWMgbXVqYWhpZGVlbiBmaWdodGVycyBlbmdhZ2VkIGluIHdhciB3aXRoIHRob3NlIFNvdmlldCBmb3JjZXMsIHdoaWNoIGxhaWQgdGhlIGZvdW5kYXRpb24gb2YgcG9saXRpY2FsIG1vdmVtZW50IGFuZCBtaWxpdGFyeSBvcmdhbml6YXRpb24gbmFtZWQgVGFsaWJhbi4NCjE5OTQ6IEFiZHVsIEthcmVlbSBUZWxnaSBhY3F1aXJlZCB0aGUgbGljZW5zZSBmb3Igc2VsbGluZyBzdGFtcCBwYXBlciBhbmQgb3BlbmVkIGFuIG9mZmljZSBpbiBNdW1iYWkuIEFmdGVyIHRoYXQsIGhlIHN0YXJ0ZWQgcHJpbnRpbmcgc3RhbXAgcGFwZXIgaW4gTmFzaGlrLiBXaXRoIHNvbWUgYWdlbnRz4oCZIGhlbHAsIGhlIHN0YXJ0cyBzZWxsaW5nIGZha2Ugc3RhbXAgcGFwZXIgaW4gYnVsayB0byBiYW5rcywgaW5zdXJhbmNlIGNvbXBhbmllcywgc3RvY2sgYnJva2VyYWdlIGZpcm1zLCBhbmQgY29ycG9yYXRlcy4gSW4gMjAwMyB0aGUgVGVsZ2kgc2NhbSB3YXMgdW5mb2xkZWQ7IHRoZSBmaWd1cmUgaW4gdGhlIG1pbmQgb2Ygc2VjdXJpdHkgYW5kIGludGVsbGlnZW5jZSBhZ2VuY2llcyB3YXMgdXAgdG8gUnMuMjBrIENyb3JlDQoxOTk0OiBbR2VvUG9saXRpY3NdIEludGVybmF0aW9uYWwgQXNzb2NpYXRpb24gb2YgR2VuZGFybWVyaWVzIGFuZCBQb2xpY2UgRm9yY2VzIHdpdGggTWlsaXRhcnkgU3RhdHVzIChjb21tb25seSBrbm93biBhcyBGSUVQIGZvciBGcmFuY2UtSXRhbGlhLUVzcGHDsWEtUG9ydHVnYWwsIHRoZSBmaXJzdCBmb3VyIG1lbWJlcnMpIGlzIGFuIGFzc29jaWF0aW9uIG9mIG5hdGlvbmFsIGdlbmRhcm1lcmllcyBvciBtaWxpdGFyeSBwb2xpY2UgZm9yY2VzLg0KMTk5NDpbQm9va10gUGFsZSBCbHVlIERvdDogQSBWaXNpb24gb2YgdGhlIEh1bWFuIEZ1dHVyZSBpbiBTcGFjZSBpcyBhIDE5OTQgYm9vayBieSB0aGUgYXN0cm9ub21lciBDYXJsIFNhZ2FuLiBJdCBpcyB0aGUgc2VxdWVsIHRvIFNhZ2FuJ3MgMTk4MCBib29rIENvc21vcyBhbmQgd2FzIGluc3BpcmVkIGJ5IHRoZSBmYW1vdXMgMTk5MCBQYWxlIEJsdWUgRG90IHBob3RvZ3JhcGgsIGZvciB3aGljaCBTYWdhbiBwcm92aWRlcyBhIHBvaWduYW50IGRlc2NyaXB0aW9uLiBJbiB0aGUgYm9vaywgU2FnYW4gbWl4ZXMgcGhpbG9zb3BoeSBhYm91dCB0aGUgaHVtYW4gcGxhY2UgaW4gdGhlIHVuaXZlcnNlIHdpdGggYSBkZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCBrbm93bGVkZ2UgYWJvdXQgdGhlIFNvbGFyIFN5c3RlbS4gSGUgYWxzbyBkZXRhaWxzIGEgaHVtYW4gdmlzaW9uIGZvciB0aGUgZnV0dXJlLg0KMTk5NDpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTWVjaGFnb2R6aWxsYSBJSSgxOTkzKQ0KMTk5NDpbQ2luZW1hXSBUaGUgQXBwbGUoMTk4MCkNCjE5OTQ6W0NpbmVtYV0gVGhlIEF0bGFudGlzIEludGVyY2VwdG9ycygxOTgzKQ0KMTk5NDpbTW50bmdnXSBJbiAxOTk0LCBNYXJrIFdoZXR1IHN1bW1pdHRlZCBNdCBFdmVyZXN0IHdpdGggTWlrZSBSZWluYmVyZ2VyLiBCdXQgYWZ0ZXIgYSBmcmVlemluZyBuaWdodCwgV2hldHUgZmFjZWQgYSBoYXJyb3dpbmcgY2hvaWNlOiBsZWF2ZSBoaXMgZnJpZW5kIG9yIHJlbWFpbiBmb3JldmVyLiBUaGUgRmF0YWwgR2FtZSAoMTk5NykNCjE5OTQ6W1RvdXJpc21dIFRoZSBBZHZlbnR1cmUgVG91ciBPcGVyYXRvcnMgQXNzb2NpYXRpb24gb2YgSW5kaWEgKEFUT0FJKSB3YXMgZm91bmRlZCBpbiAxOTk0LiBJdCB3YXMgZXN0YWJsaXNoZWQgYnkgYSBncm91cCBvZiB0cmF2ZWwgdHJhZGUgYWR2ZW50dXJlcnMgd2hvIGFpbWVkIHRvIGNyZWF0ZSBhIHN0cm9uZyBzdXBwb3J0IG5ldHdvcmsgZm9yIEluZGlhbiBhZHZlbnR1cmUgdG91ciBvcGVyYXRvcnMuIA0KDQoxOTk1IChNYXkgMTkpOiBbUmVzZWFyY2hdW1NwYWNlXSB0d28gc2NpZW50aXN0cyBhdCBDYWwgUG9seSBzaG93ZWQgdGhhdCBiYWN0ZXJpYSBjYW4gc3Vydml2ZSB3aXRob3V0IGFueSBtZXRhYm9saXNtIGZvciBhdCBsZWFzdCAyNSBtaWxsaW9uIHllYXJzOyBwcm9iYWJseSB0aGV5IGFyZSBpbW1vcnRhbC4NCjI0IE5vdmVtYmVyIDE5OTU6IFRoZSBOZXcgWW9yayBUaW1lcyBkZXNjcmliZWQgYmFjdGVyaWEgdGhhdCBjYW4gc3Vydml2ZSByYWRpYXRpb24gbXVjaCBzdHJvbmdlciB0aGFuIGFueSB0aGF0IEVhcnRoIGhhcyBldmVyIGV4cGVyaWVuY2VkLg0KV2UgYXJlIGNhbGxpbmcgdGhlIHVuaW9uIG9mIExvdmVsb2NrJ3MgR2FpYSB3aXRoIEhveWxlIGFuZCBXaWNrcmFtYXNpbmdoZSdzIGV4cGFuZGVkIHRoZW9yeSBvZiBwYW5zcGVybWlhIENvc21pYyBBbmNlc3RyeS4gVGhpcyBhY2NvdW50IG9mIGV2b2x1dGlvbiBhbmQgdGhlIG9yaWdpbiBvZiBsaWZlIG9uIEVhcnRoIGlzIHByb2ZvdW5kbHkgZGlmZmVyZW50IGZyb20gdGhlIHByZXZhaWxpbmcgc2NpZW50aWZpYyBwYXJhZGlnbS4gSXQgY2hhbGxlbmdlcyBub3QgbWVyZWx5IHRoZSBhbnN3ZXJzIGJ1dCB0aGUgcXVlc3Rpb25zIHRoYXQgYXJlIHBvcHVsYXIgdG9kYXkuIENvc21pYyBBbmNlc3RyeSByZXF1aXJlcyB0aGF0IGxpZmUgY2FuIG9ubHkgZGVzY2VuZCBmcm9tIGFuY2VzdG9ycyBhdCBsZWFzdCBhcyBoaWdobHkgZXZvbHZlZCBhcyBpdHNlbGYsIGFuZCB0aGF0IHRoZXJlIGNhbiBiZSBubyBvcmlnaW4gb2YgbGlmZSBmcm9tIG5vbmJpb2xvZ2ljYWwgbWF0dGVyLiBXaXRob3V0IHN1cGVybmF0dXJhbCBpbnRlcnZlbnRpb24sIHRoZXJlZm9yZSwgd2UgY29uY2x1ZGUgdGhhdCBsaWZlIG11c3QgaGF2ZSBhbHdheXMgZXhpc3RlZC4gQWx0aG91Z2ggdGhlc2UgY29uY2x1c2lvbnMgY3V0IGFjcm9zcyB0aGUgYm91bmRhcmllcyBiZXR3ZWVuIHNjaWVuY2UsIHBoaWxvc29waHksIGFuZCByZWxpZ2lvbiwgd2UgYmVsaWV2ZSB0aGV5IGFyZSBncm91bmRlZCBpbiBnb29kIGV2aWRlbmNlLiBBbmQgbmV3IGRhdGEgdGhhdCBzdXBwb3J0IG1hbnkgYXNwZWN0cyBvZiBDb3NtaWMgQW5jZXN0cnkgYXJlIGNvbWluZyBpbiByYXBpZGx5LiBJbiB0aGUgZm9sbG93aW5nIHBhZ2VzIHdlIHdpbGwgZXhwbGFpbiBob3cgdGhlc2UgYW5kIG90aGVyIHJlY2VudCBkZXZlbG9wbWVudHMgc3VwcG9ydCBDb3NtaWMgQW5jZXN0cnk6DQoNCjE5OTU6IEFOU0VUIHNvbGQgdG8gQU9MLCB3aG8gIG5vdyBydW5zIGl0Lg0KMTk5NSAoTWFyKTogRGVwdC4gb2YgSW5kaWFuIE1lZGljaW5lIGFuZCBIb21lb3BhdGh5IGZvdW5kZWQuDQoxOTk1IChNYXIgMjQpOltSZXNlYXJjaF0gUmVtb3RlbHkgT3BlcmF0ZWQgVmVoaWNsZSBLQUlLTyByZWFjaGVkIHRoZSBkZWVwZXN0IGFyZWEgb2YgdGhlIE1hcmlhbmEgVHJlbmNoIGFuZCBtYWRlIHRoZSBkZWVwZXN0IGRpdmluZyByZWNvcmQgb2YgMTAsOTExIG0gKDM1LDc5NyBmdDsgNSw5NjYgZmF0aG9tcykgDQoxOTk1OiBwaG9uZSBjYWxsIGNvc3RpbmcgUnMuIDE2IHBlciBtaW4uDQoxOTk1OltHYW1pbmddIFZpcnR1YSBDb3AgMiBpcyBhIGxpZ2h0IGd1biBzaG9vdGVyIGFyY2FkZSBnYW1lLCByZWxlYXNlZCBpbiAxOTk1IGFuZCBkZXZlbG9wZWQgaW50ZXJuYWxseSBhdCBTZWdhIGJ5IHRoZWlyIEFNMiBzdHVkaW8gKFl1IFN1enVraSkuIEl0IHdhcyBwb3J0ZWQgdG8gdGhlIFNlZ2EgU2F0dXJuIGluIDE5OTYuIEl0IHdhcyByZWxlYXNlZCBvbiBQQyBpbiAxOTk3IGFuZCBTZWdhIERyZWFtY2FzdCBpbiAyMDAwLiBJdCB3YXMgbGF0ZXIgYnVuZGxlZCB3aXRoIFZpcnR1YSBDb3AgaW4gVmlydHVhIENvcDogRWxpdGUgRWRpdGlvbiBmb3IgUGxheVN0YXRpb24gMiBpbiAyMDAyLg0KMTk5NSAoQXByIDEpOltSZXNlYXJjaF0gUGlsbGFycyBvZiBDcmVhdGlvbiBpcyBhIHBob3RvZ3JhcGggdGFrZW4gYnkgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgb2YgZWxlcGhhbnQgdHJ1bmtzIG9mIGludGVyc3RlbGxhciBnYXMgYW5kIGR1c3QgaW4gdGhlIEVhZ2xlIE5lYnVsYSwgaW4gdGhlIFNlcnBlbnMgY29uc3RlbGxhdGlvbiwgc29tZSA2LDUwMOKAkzcsMDAwIGxpZ2h0LXllYXJzICgyLDAwMOKAkzIsMTAwIHBjOyA2MeKAkzY2IEVtKSBmcm9tIEVhcnRoLg0KMTk5NSAoQXByIDEpOiBJQUFJIGFuZCBOQUEgd2VyZSBtZXJnZWQgYnkgYW4gQWN0IG9mIFBhcmxpYW1lbnQgYW5kIHdhcyBuYW1lZCBhcyBBaXJwb3J0cyBBdXRob3JpdHkgb2YgSW5kaWEgKEFBSSkuIFRoaXMgbmV3IG9yZ2FuaXNhdGlvbiB3YXMgdG8gYmUgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nLCB1cGdyYWRpbmcsIG1haW50YWluaW5nIGFuZCBtYW5hZ2luZyBjaXZpbCBhdmlhdGlvbiBpbmZyYXN0cnVjdHVyZSBib3RoIG9uIHRoZSBncm91bmQgYW5kIGFpciBzcGFjZSBpbiB0aGUgY291bnRyeS4NCjE5OTUgKEFwciAyMSk6W0NyaW1lXVtJbmRpYV0gQmFibG9vIHBpY2tlZCB1cCBieSB0aGUgU2luZ2Fwb3JlIGFpcnBvcnQgcG9saWNlIGZvciB0cmF2ZWxsaW5nIG9uIGZha2UgcGFzc3BvcnQuIEhlIHdhcyBzdGF5aW5nIGluIER1YmFpLg0KMTk5NSAoU2VwIDMwKTpbQ3JpbWVdW0luZGlhXSBTaW5nYXBvcmUgZXh0cmFkaXRlcyBJbmRpYSdzICdtb3N0LXdhbnRlZCBpbnRlci1zdGF0ZSBjcmltaW5hbCcgQmFibG9vIFNyaXZhc3RhdmEgKDMzWU8pDQoxOTk1IChOb3YgMzApOiBPcGVyYXRpb24gRGVzZXJ0IFN0b3JtIChGaXJzdCBJcmFxIFdhcilvZmZpY2lhbGx5IGVuZGVkLg0KMTk5NSAoTWF5IDMxKTpbQm9va11bTWlsaXRhcnldIEFkbWlyYWwgV2lsbGlhbSBILiBNY1JhdmVuJ3MgU3BlYyBPcHM6IENhc2UgU3R1ZGllcyBpbiBTcGVjaWFsIE9wZXJhdGlvbnMgV2FyZmFyZTogVGhlb3J5IGFuZCBQcmFjdGljZTsgU2VhIFN0b3JpZXM6IE15IExpZmUgaW4gU3BlY2lhbCBPcGVyYXRpb25zICgyMDE5LCBNYXkgMSk7IFRoZSBIZXJvIENvZGU6IExlc3NvbnMgTGVhcm5lZCBmcm9tIExpdmVzIFdlbGwgTGl2ZWQgKDIwMjEsIEFwciAxMykNCjE5OTU6IERyLiBIYW5kZSBhZnRlciBncmFkdWF0aW5nIGZyb20gSUlUIEtoYXJhZ3B1ciBjb25jZXB0dWFsaXplZCBTRUxDTyBJbmRpYSBkdXJpbmcgaGlzIFBoRCBvbiBzdXN0YWluYWJsZSBlbmVyZ3kgYXQgdGhlIFVuaXZlcnNpdHkgb2YgTWFzc2FjaHVzZXR0cy4gRHVyaW5nIGEgZmllbGQgdmlzaXQgdG8gdGhlIERvbWluaWNhbiBSZXB1YmxpYywgaGUgd2FzIHN1cnByaXNlZCB0byBzZWUgdGhlIHBvb3IgdXNpbmcgc29sYXIgbGlnaHRzLg0KMTk5NTogVGhlIEdvdmVybm1lbnQgb2YgSW5kaWEgYW5kIHRoZSBHb3Zlcm5tZW50IG9mIERlbGhpIGpvaW50bHkgc2V0IHVwIGEgY29tcGFueSBjYWxsZWQgdGhlIERlbGhpIE1ldHJvIFJhaWwgQ29ycG9yYXRpb24gKERNUkMpIG9uIDMgTWF5IDE5OTUsIHdpdGggRHIuIEUuIFNyZWVkaGFyYW4gYXMgdGhlIG1hbmFnaW5nIGRpcmVjdG9yLg0KMTk5NTogSW50J2wgR2FuZGhpIFBlYWNlIFByaXplIGxhdW5jaGVkLg0KMTk5NTogU2FjaGluIFIuIFRlbmR1a2FyIGFuZCBBbmphbGkgVGVuZHVsa2FyIHdlZGRlZCB0b2dldGhlci4NCjE5OTU6IC5tcDMgaW52ZW50ZWQuDQoxOTk1OltHYW1pbmddIFdoaWxlIEZJRkEgOTUgZGlkIG5vdCBhZGQgbXVjaCBvdGhlciB0aGFuIHRoZSBhYmlsaXR5IHRvIHBsYXkgd2l0aCBjbHViIHRlYW1zLCBGSUZBIDk2IHB1c2hlZCB0aGUgYm91bmRhcmllcy4gRm9yIHRoZSBmaXJzdCB0aW1lIHdpdGggcmVhbCBwbGF5ZXIgbmFtZXMgYnkgb2J0YWluaW5nIHRoZSBGSUZQcm8gbGljZW5zZSwgdGhlIFBsYXlTdGF0aW9uLCBQQywgMzJYIGFuZCBTZWdhIFNhdHVybiB2ZXJzaW9ucyB1c2VkIEVBJ3MgIlZpcnR1YWwgU3RhZGl1bSIgZW5naW5lLCB3aXRoIDJEIHNwcml0ZSBwbGF5ZXJzIG1vdmluZyBhcm91bmQgYSByZWFsLXRpbWUgM0Qgc3RhZGl1bS4NCjE5OTUgKEp1bCAxOCk6W0Jvb2tdIEJhcmFjayBPYmFtYSdzIERyZWFtcyBmcm9tIE15IEZhdGhlcjogQSBTdG9yeSBvZiBSYWNlIGFuZCBJbmhlcml0YW5jZTsgRHJlYW1zIGZyb20gTXkgRmF0aGVyOiBBIFN0b3J5IG9mIFJhY2UgYW5kIEluaGVyaXRhbmNlICgyMDA2LCBPY3QgMTcpOyBPZiBUaGVlIEkgU2luZzogQSBMZXR0ZXIgdG8gTXkgRGF1Z2h0ZXJzICgyMDEwLCBOb3YgMTYpOyBBIFByb21pc2VkIExhbmQgKDIwMjAsIE5vdiAxNykNCjE5OTUoSmFuIDEpOltFbnZdIFRoZSBBZ3JlZW1lbnQgb24gQWdyaWN1bHR1cmUgKEFvQSkgaXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgb2YgdGhlIFdvcmxkIFRyYWRlIE9yZ2FuaXphdGlvbi4gSXQgd2FzIG5lZ290aWF0ZWQgZHVyaW5nIHRoZSBVcnVndWF5IFJvdW5kIG9mIHRoZSBHZW5lcmFsIEFncmVlbWVudCBvbiBUYXJpZmZzIGFuZCBUcmFkZSwgYW5kIGVudGVyZWQgaW50byBmb3JjZSB3aXRoIHRoZSBlc3RhYmxpc2htZW50IG9mIHRoZSBXVE8gb24gSmFudWFyeSAxLCAxOTk1LiBCbHVlLCBSZWQsIEFtYmVyIGFuZCBHcmVlbiBCb3ggb2Ygc3Vic2lkaWVzLg0KMTk5NTpbQ2luZW1hXSBOZWxzb24gTWFuZGVsYSwgaW4gaGlzIGZpcnN0IHRlcm0gYXMgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYSwgaW5pdGlhdGVzIGEgdW5pcXVlIHZlbnR1cmUgdG8gdW5pdGUgdGhlIEFwYXJ0aGVpZC10b3JuIGxhbmQ6IGVubGlzdCB0aGUgbmF0aW9uYWwgcnVnYnkgdGVhbSBvbiBhIG1pc3Npb24gdG8gd2luIHRoZSAxOTk1IFJ1Z2J5IFdvcmxkIEN1cC4gLSAgSW52aWN0dXMgKDIwMDkpDQoxOTk1OltDaW5lbWFdIEEgQ2xvY2t3b3JrIE9yYW5nZSgxOTcxKQ0KMTk5NTpbQ2luZW1hXSBEZWFkIEVuZCBEcml2ZS1JbigxOTg2KQ0KMTk5NTpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gU3BhY2Vnb2R6aWxsYSgxOTk0KQ0KMTk5NTpbQ2luZW1hXSBIZWFydGJlZXBzKDE5ODEpDQoxOTk1OltDaW5lbWFdIFRoZSBNdW1teSdzIEN1cnNlKDE5NDQpDQoxOTk1IChEZWMpOltTcGFjZV0gU29sYXIgYW5kIEhlbGlvc3BoZXJpYyBPYnNlcnZhdG9yeSAoU29ITykgd2FzIGxhdW5jaGVkIGluIERlY2VtYmVyIDE5OTUgYXMgYSBqb2ludCBtaXNzaW9uIGJldHdlZW4gdGhlIEV1cm9wZWFuIFNwYWNlIEFnZW5jeSAoRVNBKSBhbmQgTkFTQSwgU29ITyB3YXMgZGVzaWduZWQgdG8gb3JiaXQgdGhlIFN1biB0byBsZWFybiBhYm91dCB0aGUgc3RydWN0dXJlIG9mIHRoZSBzdGFy4oCZcyBpbnRlcmlvciBhbmQgaXRzIG91dGVyIGF0bW9zcGhlcmUsIGFzIHdlbGwgYXMgdG8gaW52ZXN0aWdhdGUgdGhlIGJlaGF2aW9yIG9mIHNvbGFyIHdpbmRzLiBJdCB3YXMgZXhwZWN0ZWQgdG8gY29tcGxldGUgaXRzIG1pc3Npb24gaW4gMTk5OC4gSW5zdGVhZCwgaXQgaXMgc3RpbGwgYWN0aXZlIHRvZGF5LCBhbmQgaXMgbm93IGxpa2VseSB0byBrZWVwIHdvcmtpbmcgdW50aWwgMjAyNSwgd2hlbiBpdCB3aWxsIGhhdmUgYmVlbiBpbiBzcGFjZSBmb3IgMzAgeWVhcnMuDQoxOTk1OltQaHlzaWNzXVtTcGFjZV1bUmVzZWFyY2hdIFByaW9yIHRvIDE5OTUsIHRoZW9yaXN0cyBiZWxpZXZlZCB0aGF0IHRoZXJlIHdlcmUgZml2ZSBjb25zaXN0ZW50IHZlcnNpb25zIG9mIHN1cGVyc3RyaW5nIHRoZW9yeSAodHlwZSBJLCB0eXBlIElJQSwgdHlwZSBJSUIsIGFuZCB0d28gdmVyc2lvbnMgb2YgaGV0ZXJvdGljIHN0cmluZyB0aGVvcnkpLiBUaGlzIHVuZGVyc3RhbmRpbmcgY2hhbmdlZCBpbiAxOTk1IHdoZW4gRWR3YXJkIFdpdHRlbiBzdWdnZXN0ZWQgdGhhdCB0aGUgZml2ZSB0aGVvcmllcyB3ZXJlIGp1c3Qgc3BlY2lhbCBsaW1pdGluZyBjYXNlcyBvZiBhbiBlbGV2ZW4tZGltZW5zaW9uYWwgdGhlb3J5IGNhbGxlZCBNLXRoZW9yeS4gV2l0dGVuJ3MgY29uamVjdHVyZSB3YXMgYmFzZWQgb24gdGhlIHdvcmsgb2YgYSBudW1iZXIgb2Ygb3RoZXIgcGh5c2ljaXN0cywgaW5jbHVkaW5nIEFzaG9rZSBTZW4sIENocmlzIEh1bGwsIFBhdWwgVG93bnNlbmQsIGFuZCBNaWNoYWVsIER1ZmYuIEhpcyBhbm5vdW5jZW1lbnQgbGVkIHRvIGEgZmx1cnJ5IG9mIHJlc2VhcmNoIGFjdGl2aXR5IG5vdyBrbm93biBhcyB0aGUgc2Vjb25kIHN1cGVyc3RyaW5nIHJldm9sdXRpb24uDQoxOTk1OltDcmltZV1bSW5kaWFdIE11cmRlciBvZiBNdW1iYWktYmFzZWQgYnVpbGRlciBQcmFkZWVwIEphaW4gYnkgQWJ1IFNhbGVtDQoxOTk1OiBGb3J0dW5lIEhvdGVscyBpbiBJbmRpYSBpcyBvd25lZCBieSBpdHMgcGFyZW50IGNvbXBhbnksIElUQyBMdGQuLCB3aGljaCBlc3RhYmxpc2hlZCBGb3J0dW5lIEhvdGVscyBpbiAxOTk1IGFzIGEgc3Vic2lkaWFyeSB0byBwcm92aWRlIG1pZC1tYXJrZXQgdG8gdXBzY2FsZSBob3NwaXRhbGl0eSBzZXJ2aWNlcy4gSG93ZXZlciwgYSBzZXBhcmF0ZSBncm91cCwgRm9ydHVuZSBHcm91cCBvZiBIb3RlbHMsIGJhc2VkIGluIHRoZSBVbml0ZWQgQXJhYiBFbWlyYXRlcyAoVUFFKSBhbmQgZm91bmRlZCBieSBQcmF2ZWVuIFNoZXR0eSwgYWxzbyBvcGVyYXRlcyBhIGRpZmZlcmVudCBzZXQgb2YgaG90ZWxzIGluIHRoYXQgcmVnaW9uLg0KMTk5NTpbVUtdIENhbWlsbGEgaXMgUXVlZW4gb2YgdGhlIFVuaXRlZCBLaW5nZG9tIGFuZCAxNCBvdGhlciBDb21tb253ZWFsdGggcmVhbG1zIGFzIHRoZSB3aWZlIG9mIEtpbmcgQ2hhcmxlcyBJSUkuIENhbWlsbGEgd2FzIHJhaXNlZCBpbiBFYXN0IFN1c3NleCBhbmQgU291dGggS2Vuc2luZ3RvbiBpbiBFbmdsYW5kIGFuZCBlZHVjYXRlZCBpbiBFbmdsYW5kLCBTd2l0emVybGFuZCBhbmQgRnJhbmNlLiBJbiAxOTczLCBzaGUgbWFycmllZCBCcml0aXNoIEFybXkgb2ZmaWNlciBBbmRyZXcgUGFya2VyIEJvd2xlczsgdGhleSBkaXZvcmNlZCBpbiAxOTk1Lg0KDQoxOTk2OltHZW9Qb2xpdGljc11bQnVzaW5lc3NdIE1vbmdvbGlhIHdhcyBncmFudGVkIG9ic2VydmVyIHN0YXR1cyB0byBUUkFDRUNBLg0KMTk5NiAoNyBBdWd1c3QpOltSZXNlYXJjaF1bU3BhY2VdIE5BU0EgYW5ub3VuY2VkIGZvc3NpbGl6ZWQgZXZpZGVuY2Ugb2YgYW5jaWVudCBsaWZlIGluIG1ldGVvcml0ZSBBTEggODQwMDEgZnJvbSBNYXJzLg0KMTk5NiAoT2N0IDI3KTpbUmVzZWFyY2hdW1NwYWNlXSBnZW5ldGljaXN0cyBzaG93ZWQgZXZpZGVuY2UgdGhhdCBtYW55IGdlbmVzIGFyZSBtdWNoIG9sZGVyIHRoYW4gdGhlIGZvc3NpbCByZWNvcmQgd291bGQgaW5kaWNhdGUuIFN1YnNlcXVlbnQgc3R1ZGllcyBoYXZlIHN0cmVuZ3RoZW5lZCB0aGlzIGZpbmRpbmcuDQoxOTk2OltCdXNpbmVzc11bR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2hlbiB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4gc2lnbmVkIHRoZSBUcmVhdHkgb24gRGVlcGVuaW5nIE1pbGl0YXJ5IFRydXN0IGluIEJvcmRlciBSZWdpb25zIGluIFNoYW5naGFpLiBPbiAyNCBBcHJpbCAxOTk3IHRoZSBzYW1lIGNvdW50cmllcyBzaWduZWQgdGhlIFRyZWF0eSBvbiBSZWR1Y3Rpb24gb2YgTWlsaXRhcnkgRm9yY2VzIGluIEJvcmRlciBSZWdpb25zIGluIGEgbWVldGluZyBpbiBNb3Njb3csIFJ1c3NpYS4gT24gMjAgTWF5IDE5OTcgUnVzc2lhbiBQcmVzaWRlbnQgQm9yaXMgWWVsdHNpbiBhbmQgQ2hpbmVzZSBQcmVzaWRlbnQgSmlhbmcgWmVtaW4gc2lnbmVkIGEgZGVjbGFyYXRpb24gb24gYSAibXVsdGlwb2xhciB3b3JsZCIuDQoxOTk2OiAxOTk2IE1vdW50IEV2ZXJlc3QgRGlzYXN0ZXIsIGluIHdoaWNoIGVpZ2h0IHBlb3BsZSBkaWVkIHdoaWxlIG9uIGFuIGV4cGVkaXRpb24gdG8gc2NhbGUgdGhlIGluZmFtb3VzIHN1bW1pdC4gT25lIG9mIHRoZSBjbGltYmVycyB3aG8gbG9zdCBoaXMgbGlmZSB3YXMgQW5keSBIYXJyaXMsIHBsYXllZCBpbiBFdmVyZXN0IGJ5IE1hcnRpbiBIZW5kZXJzb24uIEhhcnJpcyB3YXMgb25lIG9mIHRoZSBndWlkZXMgZm9yIHRoZSBBZHZlbnR1cmUgQ29uc3VsdGFudHMsIGFsb25nIHdpdGggUm9iIEhhbGwgYW5kIE1pa2UgR3Jvb20uIEluIHRoZSBmaWxtLCBoZSBhcHBlYXJzIHRvIGRpZSB3aGlsZSB3aXRoIEhhbGwsIGZhbGxpbmcgb2ZmIGEgY2xpZmYgYWZ0ZXIgYSBoYWxsdWNpbmF0aW9uLiBCdXQgUm9iIEhhbGwgbmV2ZXIgcmVwb3J0ZWQgdGhpcywgYW5kIHNpbmNlIGhlIGRpZWQgc2hvcnRseSB0aGVyZWFmdGVyLCB0aGVyZSBpcyBubyB3YXkgdG8gY29uZmlybSB0aGUgY2lyY3Vtc3RhbmNlcyBzdXJyb3VuZGluZyBIYXJyaXMnIGRlYXRoLg0KMTk5NjpbQ29tcHV0aW5nXVtRdWFudHVtXSAgTG92IEdyb3ZlciBkZXZpc2VkIGFuIGFsZ29yaXRobSAoR3JvdmVyJ3MgYWxnb3JpdGhtKSB0aGF0IGNvdWxkIHNlYXJjaCBhbiB1bnNvcnRlZCBkYXRhYmFzZSBpbiBzcXVhcmUgcm9vdCB0aW1lIG9uIGEgcXVhbnR1bSBjb21wdXRlciwgd2hpY2ggd291bGQgb3V0cGVyZm9ybSBhbnkgY2xhc3NpY2FsIGFsZ29yaXRobS4NCjE5OTY6W1VTXSBCYXJhY2sgT2JhbWEgd2FzIGVsZWN0ZWQgdG8gdGhlIElsbGlub2lzIFNlbmF0ZSwgc3VjY2VlZGluZyBEZW1vY3JhdGljIFN0YXRlIFNlbmF0b3IgQWxpY2UgUGFsbWVyIGZyb20gSWxsaW5vaXMncyAxM3RoIERpc3RyaWN0LCB3aGljaCwgYXQgdGhhdCB0aW1lLCBzcGFubmVkIENoaWNhZ28gU291dGggU2lkZSBuZWlnaGJvcmhvb2RzIGZyb20gSHlkZSBQYXJr4oCTS2Vud29vZCBzb3V0aCB0byBTb3V0aCBTaG9yZSBhbmQgd2VzdCB0byBDaGljYWdvIExhd24uDQoxOTk2OltVS10gQ2hhcmxlcyBJSUkgYW5kIERpYW5hIGdldHMgZGl2b3JjZWQuDQoxOTk2IChKYW4gMjUpOltCb29rXSBQZXRlciBMeW5jaCAmIEpvaG4gUm90aGNoaWxkJ3MgTGVhcm4gdG8gRWFybjogQSBCZWdpbm5lcidzIEd1aWRlIHRvIHRoZSBCYXNpY3Mgb2YgSW52ZXN0aW5nIGFuZCBCdXNpbmVzcy4NCjE5OTYgKEphbik6W0NyaW1lXVtJbmRpYV0gQW5lZXMgSWJyYWhpbSBhcnJlc3RlZCBpbiBCYWhyYWluLCBzaGlmdGVkIHRvIER1YmFpIGFsbGVnZWRseSBvbiB0aGUgaW50ZXJ2ZW50aW9uIG9mIHNvbWUgb2YgRHViYWkncyBydWxpbmcgbm90YWJsZXMsIGFuZCB3YXMgdGhlbiBhbGxvd2VkIHRvIHNsaXAgYXdheSB0byBLYXJhY2hpLCBQYWtpc3Rhbi4NCjE5OTY6IE5hdGlvbmFsIEFlcm9zcGFjZSBMYWJvcmF0b3JpZXMsIEluZGlhIGluZGlnZW5vdXNseSBidWlsdCBGTE9TT0xWRVIsIEluZGlhJ3MgZmlyc3Qgc3VwZXJjb21wdXRlci4gSXQgd2FzIHJlcGxpY2F0ZWQgYW5kIGluc3RhbGxlZCBhdCBJQ0FEIE1vc2NvdyBpbiAxOTkxIHVuZGVyIFJ1c3NpYW4gY29sbGFib3JhdGlvbi4NCjE5OTY6IEluZGlhL1Bha2lzdGFuL1NyaSBMYW5rYSAxOTk2Lg0KMTk5NjpbQ29tcHV0aW5nXVt3d3ddIE1hcmlvIDY0IGdhbWUgcmFuIDEwMCBtaWxsaW9uIGNhbGN1bGF0aW9ucyBwZXIgc2Vjb25kLCA1NDAgbWlsbGlvbiAoSGFsZi1MaWZlKSBpbiAxOTk4LCBNaW5lY3JhZnQgKDIwMTEpIHJ1bm5pbmcgMTAwIGJpbGxpb24gY2FsY3VsYXRpb25zLCBDeWJlcnB1bmsgMjA3NyAobW9zdCByZWFsaXN0aWMgdmlkZW8gZ2FtZSAyMDI0KSwgeW91IG5lZWQgYSBncmFwaGljcyBjYXJkIHRoYXQgY2FuIHBlcmZvcm0gYXJvdW5kIDM2IHRyaWxsaW9uIGNhbGMgcGVyIHNlY29uZC4NCjE5OTY6IFByb2YgTWFsY29sbSBIZWF0aC4gUHJvZmVzc29yIG9mIEdyZWVrIExhbmd1YWdlIGFuZCBMaXRlcmF0dXJlIEBsZWVkcy5hYy51aywgdHJhbnNsYXRlZCBBcmlzdG90bGUncyBQb2V0aWNzLg0KMTk5NjogVGhlIDU2SyBtb2RlbSB3YXMgaW52ZW50ZWQgYnkgRHIuIEJyZW50IFRvd25zaGVuZA0KMTk5NiAoRmViIDEzKTogTmVwYWxlc2UgQ2l2aWwgV2FyIHN0YXJ0ZWQuIFRoZSBNYW9pc3QgUmViZWxsaW9uIChsYWJlbGxlZCB0aGUgUGVvcGxlJ3MgV2FyIGJ5IHRoZW4gQ1BOKE1hb2lzdCkpIHdhcyBhbiBhcm1lZCBjb25mbGljdCBhZ2FpbnN0IEdvdmVybm1lbnQgb2YgTmVwYWwgKHRoZW4gSE1HIG9mIE5lcGFsKSBmb3VnaHQgZnJvbSAxOTk2IHRvIDIwMDYuIFRoZSByZWJlbGxpb24gd2FzIGxhdW5jaGVkIGJ5IHRoZSBDb21tdW5pc3QgUGFydHkgb2YgTmVwYWwgKE1hb2lzdCkgb24gMTMgRmVicnVhcnkgMTk5NiB3aXRoIHRoZSBtYWluIGFpbSBvZiBvdmVydGhyb3dpbmcgdGhlIE5lcGFsZXNlIG1vbmFyY2h5IGFuZCBlc3RhYmxpc2hpbmcgYSAnUGVvcGxlJ3MgUmVwdWJsaWMnLiBJdCBlbmRlZCB3aXRoIHRoZSBDb21wcmVoZW5zaXZlIFBlYWNlIEFjY29yZCBzaWduZWQgb24gMjEgTm92ZW1iZXIgMjAwNi4NCjE5OTYgKE1hciAxKTogW0dlb1BvbGl0aWNzXSBUaGUgQXNpYeKAk0V1cm9wZSBNZWV0aW5nIChBU0VNKSBpcyBhbiBBc2lhbuKAk0V1cm9wZWFuIHBvbGl0aWNhbCBkaWFsb2d1ZSBmb3J1bSB0byBlbmhhbmNlIHJlbGF0aW9ucyBhbmQgdmFyaW91cyBmb3JtcyBvZiBjb29wZXJhdGlvbiBiZXR3ZWVuIGl0cyBwYXJ0bmVycy4gSXQgd2FzIG9mZmljaWFsbHkgZXN0YWJsaXNoZWQgYXQgdGhlIDFzdCBBU0VNIFN1bW1pdCAoQVNFTTEpIGluIEJhbmdrb2ssIFRoYWlsYW5kLCBieSB0aGUgdGhlbiAxNSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aGUgRXVyb3BlYW4gQ29tbWlzc2lvbiwgdGhlIHRoZW4gNyBNZW1iZXIgU3RhdGVzIG9mIHRoZSBBc3NvY2lhdGlvbiBvZiBTb3V0aGVhc3QgQXNpYW4gTmF0aW9ucyAoQVNFQU4pLCBhbmQgdGhlIGluZGl2aWR1YWwgY291bnRyaWVzIG9mIENoaW5hLCBKYXBhbiwgYW5kIFNvdXRoIEtvcmVhLiBBIHNlcmllcyBvZiBlbmxhcmdlbWVudHMgc2F3IGFkZGl0aW9uYWwgRVUgTWVtYmVyIFN0YXRlcyBqb2luIGFzIHdlbGwgYXMgSW5kaWEsIE1vbmdvbGlhLCBQYWtpc3RhbiBhbmQgdGhlIEFTRUFOIFNlY3JldGFyaWF0IGluIDIwMDgsIEF1c3RyYWxpYSwgTmV3IFplYWxhbmQgYW5kIFJ1c3NpYSBpbiAyMDEwLCBCYW5nbGFkZXNoLCBOb3J3YXksIGFuZCBTd2l0emVybGFuZCBpbiAyMDEyLCBhcyB3ZWxsIGFzIENyb2F0aWEsIGFuZCBLYXpha2hzdGFuIGluIDIwMTQuDQoxOTk2IChBcHIgMjYpOiBbR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2l0aCB0aGUgc2lnbmluZyBvZiB0aGUgVHJlYXR5IG9uIERlZXBlbmluZyBNaWxpdGFyeSBUcnVzdCBpbiBCb3JkZXIgUmVnaW9ucyBpbiBTaGFuZ2hhaSBieSB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4uIExhdGVyIG9uIEp1biAxNSwgMjAwMSBpdCBnb3QgcmVuYW1lZCBhcyBTaGFuZ2hhaSBDb29wZXJhdGlvbiBPcmdhbmlzYXRpb24gKFNDTykgb3IgU2hhbmdoYWkgUGFjdCANCjE5OTYgKE1heSAxNik6IEF0YWwgQmloYXJpIFZhanBheWVlIGJlY29tZXMgUE0gb2YgSW5kaWEgZm9yIHRoZSB2ZXJ5IGZpcnN0IHRpbWUgZm9yIDE2IGRheXMuDQoxOTk2IChKdW4gMSk6IEF0YWwgQmloYXJpIFZhanBheWVlIHJlc2lnbnMuIEhEIERldmUgR293ZGEgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NiAoQXVnIDE0KTpbcmVzZWFyY2hdW2V4dHJlbWVdIEthcmVuIEVsaXphYmV0aCBXZXR0ZXJoYWhuIChPY3RvYmVyIDE2LCAxOTQ4IOKAkyBKdW5lIDgsIDE5OTcpLCBhbHNvIGtub3duIGFzIEthcmVuIFdldHRlcmhhaG4gSmVubmV0dGUsIHdhcyBhbiBBbWVyaWNhbiBwcm9mZXNzb3Igb2YgY2hlbWlzdHJ5IGF0IERhcnRtb3V0aCBDb2xsZWdlLCBOZXcgSGFtcHNoaXJlLCB3aG8gc3BlY2lhbGl6ZWQgaW4gdG94aWMgbWV0YWwgZXhwb3N1cmUuIFNoZSBkaWVkIG9mIG1lcmN1cnkgcG9pc29uaW5nIGF0IHRoZSBhZ2Ugb2YgNDggZHVlIHRvIGFjY2lkZW50YWwgZXhwb3N1cmUgdG8gdGhlIGV4dHJlbWVseSB0b3hpYyBvcmdhbmljIG1lcmN1cnkgY29tcG91bmQgZGltZXRoeWxtZXJjdXJ5IChIZyhDSDMpMikuIFByb3RlY3RpdmUgZ2xvdmVzIGluIHVzZSBhdCB0aGUgdGltZSBvZiB0aGUgaW5jaWRlbnQgcHJvdmlkZWQgaW5zdWZmaWNpZW50IHByb3RlY3Rpb24sIGFuZCBleHBvc3VyZSB0byBvbmx5IGEgc2luZ2xlIGRyb3Agb3IgdHdvIG9mIHRoZSBkaW1ldGh5bG1lcmN1cnkgYWJzb3JiZWQgdGhyb3VnaCB0aGUgZ2xvdmVzIHByb3ZlZCB0byBiZSBmYXRhbCBhZnRlciBsZXNzIHRoYW4gYSB5ZWFyLiBUZXN0cyBsYXRlciByZXZlYWxlZCB0aGF0IGRpbWV0aHlsbWVyY3VyeSBjYW4sIGluIGZhY3QsIHJhcGlkbHkgcGVybWVhdGUgc2V2ZXJhbCBraW5kcyBvZiBsYXRleCBnbG92ZXMgYW5kIGVudGVyIHRoZSBza2luIHdpdGhpbiBhYm91dCAxNSBzZWNvbmRzLiBIZXIgZXhwb3N1cmUgd2FzIGxhdGVyIGNvbmZpcm1lZCBieSBoYWlyIGFuYWx5c2lzLCB3aGljaCBzaG93ZWQgYSBkcmFtYXRpYyBqdW1wIGluIG1lcmN1cnkgbGV2ZWxzIDE3IGRheXMgYWZ0ZXIgdGhlIGluaXRpYWwgYWNjaWRlbnQsIHBlYWtpbmcgYXQgMzkgZGF5cywgZm9sbG93ZWQgYnkgYSBncmFkdWFsIGRlY2xpbmUuIEFwcHJveGltYXRlbHkgdGhyZWUgbW9udGhzIGFmdGVyIHRoZSBpbml0aWFsIGFjY2lkZW50IFdldHRlcmhhaG4gYmVnYW4gZXhwZXJpZW5jaW5nIGJyaWVmIGVwaXNvZGVzIG9mIGFiZG9taW5hbCBkaXNjb21mb3J0IGFuZCBub3RpY2VkIHNpZ25pZmljYW50IHdlaWdodCBsb3NzLiBUaGUgbW9yZSBkaXN0aW5jdGl2ZSBuZXVyb2xvZ2ljYWwgc3ltcHRvbXMgb2YgbWVyY3VyeSBwb2lzb25pbmcsIGluY2x1ZGluZyBsb3NzIG9mIGJhbGFuY2UgYW5kIHNsdXJyZWQgc3BlZWNoLCBhcHBlYXJlZCBpbiBKYW51YXJ5IDE5OTcsIGZpdmUgbW9udGhzIGFmdGVyIHRoZSBhY2NpZGVudC4gSGVyIGJsb29kIGFuZCB1cmluYXJ5IG1lcmN1cnkgY29udGVudCB3ZXJlIG1lYXN1cmVkIGF0IDQsMDAwIM68Zy9MIGFuZCAyMzQgzrxnL0wsIHJlc3BlY3RpdmVseeKAlGJvdGggbWFueSB0aW1lcyB0aGVpciByZXNwZWN0aXZlIHRveGljIHRocmVzaG9sZHMgb2YgMjAwIM68Zy9MIGFuZCA1MCDOvGcvTCAoYmxvb2QgYW5kIHVyaW5lIHJlZmVyZW5jZSByYW5nZXMgYXJlIDEgdG8gOCDOvGcvTCBhbmQgMSB0byA1IM68Zy9MKS4NCjE5OTYgKERlYyA0IDA2OjU4OjA3IFVUQyk6W1NwYWNlXVtNYXJzXVtFYXJ0aF0gTGF1bmNoIG9mIE1hcnMgUGF0aGZpbmRlciBvbiBEZWx0YSBJSSA3OTI1ICgjRDI0MCkNCnJvY2tldCBmcm9tIENhcGUgQ2FuYXZlcmFsIFNMQy0xNy4gVG8gcHJvdmUgdGhhdCB0aGUgZGV2ZWxvcG1lbnQgb2YgImZhc3RlciwgYmV0dGVyIGFuZCBjaGVhcGVyIiBzcGFjZWNyYWZ0IHdhcyBwb3NzaWJsZSAod2l0aCB0aHJlZSB5ZWFycyBmb3IgZGV2ZWxvcG1lbnQgYW5kIGEgY29zdCB1bmRlciAkMTUwIG1pbGxpb24gZm9yIHRoZSBsYW5kZXIsIGFuZCAkMjUgbWlsbGlvbiBmb3IgdGhlIHJvdmVyKS4gVG8gc2hvdyB0aGF0IGl0IHdhcyBwb3NzaWJsZSB0byBzZW5kIGEgbG9hZCBvZiBzY2llbnRpZmljIGluc3RydW1lbnRzIHRvIGFub3RoZXIgcGxhbmV0IHdpdGggYSBzaW1wbGUgc3lzdGVtIGFuZCBhdCBvbmUtZmlmdGVlbnRoIHRoZSBjb3N0IG9mIGEgVmlraW5nIG1pc3Npb24uIChGb3IgY29tcGFyaXNvbiwgdGhlIFZpa2luZyBtaXNzaW9ucyBjb3N0ICQ5MzUgbWlsbGlvbiBpbiAxOTc0IG9yICQzLjUgYmlsbGlvbiBpbiAxOTk3IGRvbGxhcnMuKS4gVG8gZGVtb25zdHJhdGUgTkFTQSdzIGNvbW1pdG1lbnQgdG8gbG93LWNvc3QgcGxhbmV0YXJ5IGV4cGxvcmF0aW9uIGJ5IGZpbmlzaGluZyB0aGUgbWlzc2lvbiB3aXRoIGEgdG90YWwgZXhwZW5kaXR1cmUgb2YgJDI4MCBtaWxsaW9uLCBpbmNsdWRpbmcgdGhlIGxhdW5jaCB2ZWhpY2xlIGFuZCBtaXNzaW9uIG9wZXJhdGlvbnMuDQoxOTk2OiBhIHJhaWQgb24gdGhlIEFuaW1hbCBIdXNiYW5kcnkgZGVwYXJ0bWVudOKAmXMgb2ZmaWNlcyBpbiBDaGFpYmFzYSwgQmloYXIgdW5mb2xkZWQgdGhlIFJzLjk1MCBjcm9yZSBmb2RkZXIgc2NhbSwgaW4gd2hpY2ggdGhlIEJpaGFyIGNoaWVmIG1pbmlzdGVyIExhbHUgUHJhc2FkIFlhZGF2IGNhdGNoIHVwIGluIGEgbGlmZWxvbmcgdHVzc2xlIHdpdGggdGhlIENCSS4NCjE5OTY6W0Jvb2tdW0FkdmVudHVyZV0gSm9uIEtyYWthdWVyJ3MgSW50byB0aGUgV2lsZC4NCjE5OTY6W0NvbXB1dGluZ10gVGhlIFZpZGVvTEFOIHNvZnR3YXJlIG9yaWdpbmF0ZWQgYXMgYSBGcmVuY2ggYWNhZGVtaWMgcHJvamVjdC4gVkxDIHVzZWQgdG8gc3RhbmQgZm9yICJWaWRlb0xBTiBDbGllbnQiIHdoZW4gVkxDIHdhcyBhIGNsaWVudCBvZiB0aGUgVmlkZW9MQU4gcHJvamVjdCwgb2ZmaWNpYWxseSByZWxlYXNlZCB1bmRlciBHTlUgR1BMIG9uIDIwMDEgKEZlYiAxKS4NCjE5OTY6W01lbWVdIERhbmNpbmcgQmFieSBTY3JlZW5zYXZlcg0KMTk5NjpbU3BhY2VYXSBUaGUgZW50aXJlIHByb2Nlc3MgZm9yIHRoZSBKYW1lcyBXZWJiIFNwYWNlIFRlbGVzY29wZSAoSldTVCkgZnJvbSBpbml0aWFsIGNvbmNlcHQgdG8gbGF1bmNoIHNwYW5uZWQgYXBwcm94aW1hdGVseSAyNSB5ZWFycywgd2l0aCBpbml0aWFsIGRlc2lnbnMgYmVnaW5uaW5nIGluIDE5OTYgYW5kIHRoZSB0ZWxlc2NvcGUgbGF1bmNoaW5nIGluIDIwMjEsIGJ1dCBhIHNpZ25pZmljYW50IHBvcnRpb24gb2YgdGhpcyB3YXMgc3BlbnQgaW4gZGVzaWduLCB0ZXN0aW5nLCBhbmQgb3ZlcmNvbWluZyBtYWpvciByZWRlc2lnbnMgYW5kIGRlbGF5cywgbm90IGp1c3QgYXNzZW1ibHkuIA0KMTk5NiAoRmViIDI4KTpbRGVsaGldIEluZGlyYXB1cmFtLCBHaGF6aWFiYWQgd2FzIGVzdGQgd2hlbiBpdHMgZm91bmRhdGlvbiBzdG9uZSAoS2FsYSBQYXRoYXIpIHdhcyBpbmF1Z3VyYXRlZCBieSBTaCBNb3RpbGFsIFZvcmEsIHRoZW4gR292ZXJub3Igb2YgVVAuICgyMDIxKSBJJ3B1cmFtIEV4dG4gdG8gYmUgYnVpbHQgb24gMTIgYWNyZXMgb25seSwgY29uY2VpdmVkIGluIDIwMDQuDQoxOTk2OltCb29rXVtNaWxpdGFyeV1bQ3VsdHVyZV1bRVVdW1VTQV0gR2VvcmdlIFIuUi4gTWFydGluIGlzIHRoZSBBbWVyaWNhbiBhdXRob3Igb2YgdGhlIGVwaWMgZmFudGFzeSBib29rIHNlcmllcyBBIFNvbmcgb2YgSWNlIGFuZCBGaXJlLCB3aGljaCBiZWdhbiB3aXRoIEEgR2FtZSBvZiBUaHJvbmVzICgxOTk2KSBhbmQgc2VydmVkIGFzIHRoZSBiYXNpcyBmb3IgSEJPJ3MgbWFzc2l2ZWx5IHBvcHVsYXIgR2FtZSBvZiBUaHJvbmVzIFRWIHNlcmllcy4gQSBTb25nIG9mIEljZSBhbmQgRmlyZSBpcyBhIHNlcmllcyBvZiBoaWdoIGZhbnRhc3kgbm92ZWxzIGJ5IHRoZSBBbWVyaWNhbiBhdXRob3IgR2VvcmdlIFIuIFIuIE1hcnRpbi4gTWFydGluIGJlZ2FuIHdyaXRpbmcgdGhlIGZpcnN0IHZvbHVtZSwgQSBHYW1lIG9mIFRocm9uZXMsIGluIDE5OTEsIGFuZCBwdWJsaXNoZWQgaXQgaW4gMTk5Ni4gTWFydGluLCB3aG8gb3JpZ2luYWxseSBlbnZpc2lvbmVkIHRoZSBzZXJpZXMgYXMgYSB0cmlsb2d5LCBoYXMgcmVsZWFzZWQgZml2ZSBvdXQgb2Ygc2V2ZW4gcGxhbm5lZCB2b2x1bWVzLiANCg0KW0dlbmVyYXRpb25dIE1pbGxlbm5pYWwgZ2VuZXJhdGlvbiAoMTk4MeKAkzE5OTYpIGVuZHM7IGxhc3RlZCBmb3IgMTUgeWVhcnMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICA1MCB5ZWFycyBvZiBJbmRlcGVuZGVudCBJbmRpYSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSANCg0KW0dlbmVyYXRpb25dIEdlbiBaICgxOTk34oCTMjAxMikgc3RhcnRzOyBhbmQgZXhpc3RzIGZvciBuZXh0IDE1IHllYXJzLg0KDQoxOTk3OltXaG9dW1Jlc2VhcmNoXVtDb21wdXRpbmddW1RlY2hdW0N1bHR1cmVdIFZMQyBNZWRpYSBQbGF5ZXIgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBzdHVkZW50cyBhdCB0aGUgRnJlbmNoIGVuZ2luZWVyaW5nIHNjaG9vbCDDiWNvbGUgQ2VudHJhbGUgUGFyaXMgaW4gMTk5Ni4gV2hpbGUgaXQgc3RhcnRlZCBhcyBhbiBhY2FkZW1pYyBwcm9qZWN0IChWaWRlb0xBTikgdG8gc3RyZWFtIHZpZGVvIG92ZXIgYSBjYW1wdXMgbmV0d29yaywgaXRzIGRldmVsb3BtZW50IGFuZCBtb2Rlcm5pemF0aW9uIHdlcmUgbGF0ZXIgbGVkIGJ5IEplYW4tQmFwdGlzdGUgS2VtcGYuIA0KMTk5NzpbUmVzZWFyY2hdW1NwYWNlXSAyOSBKdWx5IDE5OTc6IGEgTkFTQSBzY2llbnRpc3QgYW5ub3VuY2VkIGV2aWRlbmNlIG9mIGZvc3NpbGl6ZWQgbWljcm9zY29waWMgbGlmZSBmb3JtcyBpbiBhIG1ldGVvcml0ZSBub3QgZnJvbSBhbnkga25vd24gcGxhbmV0Lg0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgR3JvdXAgb2YgRWlnaHQgKEc4KSB3YXMgYW4gaW50ZXJnb3Zlcm5tZW50YWwgcG9saXRpY2FsIGZvcnVtIGZyb20gMTk5NyB0byAyMDE0LCBmb3JtZWQgYnkgaW5jb3Jwb3JhdGluZyBSdXNzaWEgaW50byB0aGUgRzcuIFRoZSBHOCBiZWNhbWUgdGhlIEc3IGFnYWluIGFmdGVyIFJ1c3NpYSB3YXMgZXhwZWxsZWQgaW4gMjAxNCBhZnRlciB0aGUgUnVzc2lhbiBhbm5leGF0aW9uIG9mIENyaW1lYS4gRm91bmRlZDogMTk5NywgRGVudmVyLCBDb2xvcmFkbywgVW5pdGVkIFN0YXRlcw0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBGb3VuZGVkOiA2IEp1bmUgMTk5NywgVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiAoQklNU1RFQykgaXMgYW4gaW50ZXJuYXRpb25hbCBvcmdhbml6YXRpb24gb2Ygc2V2ZW4gU291dGggQXNpYW4gYW5kIFNvdXRoZWFzdCBBc2lhbiBuYXRpb25zLCBob3VzaW5nIDEuNzMgYmlsbGlvbiBwZW9wbGUgYW5kIGhhdmluZyBhIGNvbWJpbmVkIGdyb3NzIGRvbWVzdGljIHByb2R1Y3Qgb2YgVVMkNS4yIHRyaWxsaW9uLg0KMTk5NzpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gYnVpbHQgdGhlIGZpcnN0IGV4cGVyaW1lbnRhbCBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCBjb3VsZCBtYW5pcHVsYXRlIDcgcXViaXRzIHVzaW5nIG51Y2xlYXIgbWFnbmV0aWMgcmVzb25hbmNlIChOTVIpIHRlY2huaXF1ZXMuDQoxOTk3IChKdWwgNCk6W1NwYWNlXVtNYXJzXSBUaGUgTWFycyBQYXRoZmluZGVyIGVuZHVyZWQgYSAzMC1zZWNvbmQgY29tbXVuaWNhdGlvbnMgYmxhY2tvdXQgYXMgaXQgZW50ZXJlZCBNYXJzJyBhdG1vc3BoZXJlLiBJdCBsYW5kZWQgYXQgQXJlcyBWYWxsaXMsIENocnlzZSBQbGFuaXRpYSwgTWFycyAxOcKwN+KAsjQ44oCzTiAzM8KwMTPigLIxMuKAs1cuIE1hcnMgUGF0aGZpbmRlciAoTUVTVVIgUGF0aGZpbmRlcikgaXMgYW4gQW1lcmljYW4gcm9ib3RpYyBzcGFjZWNyYWZ0IHRoYXQgbGFuZGVkIGEgYmFzZSBzdGF0aW9uIHdpdGggYSByb3ZpbmcgcHJvYmUgb24gTWFycyBpbiAxOTk3LiBJdCBjb25zaXN0ZWQgb2YgYSBsYW5kZXIsIHJlbmFtZWQgdGhlIENhcmwgU2FnYW4gTWVtb3JpYWwgU3RhdGlvbiwgYW5kIGEgbGlnaHR3ZWlnaHQsIDEwLjYga2cgKDIzIGxiKSB3aGVlbGVkIHJvYm90aWMgTWFycyByb3ZlciBuYW1lZCBTb2pvdXJuZXIsIHRoZSBmaXJzdCByb3ZlciB0byBvcGVyYXRlIG91dHNpZGUgdGhlIEVhcnRo4oCTTW9vbiBzeXN0ZW0uDQoxOTk3OltCb29rXSBNaXRjaCBBbGJvbSdzIFR1ZXNkYXlzIHdpdGggTW9ycmllLg0KMTk5NzpbR2FtaW5nXSBHcmFuZCBUaGVmdCBBdXRvIChHVEEpIHJlbGVhc2VkIGJ5IERNQSBEZXNpZ24gKGxhdGVyIFJvY2tzdGFyIE5vcnRoKSBmb3IgUFMxLCBXaW5kb3dzIGFuZCBNUy1ET1M7IEdyYW5kIFRoZWZ0IEF1dG86IFZpY2UgQ2l0eSAoMjAwMik7IEdyYW5kIFRoZWZ0IEF1dG86IFNhbiBBbmRyZWFzICgyMDA0KTsgR3JhbmQgVGhlZnQgQXV0byBJViAoMjAwOCk7IEdyYW5kIFRoZWZ0IEF1dG8gViAoMjAxMyk7IEdyYW5kIFRoZWZ0IEF1dG86IFRoZSBUcmlsb2d5IOKAkyBUaGUgRGVmaW5pdGl2ZSBFZGl0aW9uICgyMDIxKQ0KMTk5NzogVGVra2VuIDMgd2FzIGRlc2lnbmVkIGJ5IEthdHN1aGlybyBIYXJhZGEgKE9zYWthLCBPc2FrYSBQcmVmZWN0dXJlLCBKYXBhbikgb2YgQmFuZGFpIE5hbWNvIEVudGVydGFpbm1lbnQgaGVhZHF1YXJ0ZXJlZCBhdCDFjHRhLCBUb2t5by4NCjE5OTcgKE1hciA2KTogW0dlb1BvbGl0aWNzXSBUaGUgSW5kaWFuIE9jZWFuIFJpbSBBc3NvY2lhdGlvbiwgZm9ybWVybHkga25vd24gYXMgdGhlIEluZGlhbiBPY2VhbiBSaW0gSW5pdGlhdGl2ZSBhbmQgdGhlIEluZGlhbiBPY2VhbiBSaW0gQXNzb2NpYXRpb24gZm9yIFJlZ2lvbmFsIENvb3BlcmF0aW9uLCBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBjb25zaXN0aW5nIG9mIDIzIHN0YXRlcyBib3JkZXJpbmcgdGhlIEluZGlhbiBPY2Vhbi4gVGhlIElPUkEgaXMgYSByZWdpb25hbCBmb3J1bSwgdHJpcGFydGl0ZSBpbiBuYXR1cmUsIGJyaW5naW5nIHRvZ2V0aGVyIHJlcHJlc2VudGF0aXZlcyBvZiBHb3Zlcm5tZW50LCBCdXNpbmVzcyBhbmQgQWNhZGVtaWEsIGZvciBwcm9tb3RpbmcgY28tb3BlcmF0aW9uIGFuZCBjbG9zZXIgaW50ZXJhY3Rpb24gYW1vbmcgdGhlbS4gSXQgaXMgYmFzZWQgb24gdGhlIHByaW5jaXBsZXMgb2YgT3BlbiBSZWdpb25hbGlzbSBmb3Igc3RyZW5ndGhlbmluZyBFY29ub21pYyBDb29wZXJhdGlvbiBwYXJ0aWN1bGFybHkgb24gVHJhZGUgRmFjaWxpdGF0aW9uIGFuZCBJbnZlc3RtZW50LCBQcm9tb3Rpb24gYXMgd2VsbCBhcyBTb2NpYWwgRGV2ZWxvcG1lbnQgb2YgdGhlIHJlZ2lvbi4gVGhlIENvb3JkaW5hdGluZyBTZWNyZXRhcmlhdCBvZiBJT1JBIGlzIGxvY2F0ZWQgYXQgRWJlbmUsIE1hdXJpdGl1cy4NCjE5OTcgKEFwciAyMSk6IEguRC4gRGV2ZSBHb3dkYSByZXNpZ25zLiBJbmRlciBLdW1hciBHdWpyYWwgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NyAoSnVuIDYpOiBbR2VvUG9saXRpY3NdIEJJTVNURUMgZm91bmRlZC4gVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBvZiBzZXZlbiBTb3V0aCBBc2lhbiBhbmQgU291dGhlYXN0IEFzaWFuIG5hdGlvbnMsIGhvdXNpbmcgMS43MyBiaWxsaW9uIHBlb3BsZSBhbmQgaGF2aW5nIGEgY29tYmluZWQgZ3Jvc3MgZG9tZXN0aWMgcHJvZHVjdCBvZiAkMy44IHRyaWxsaW9uLiBUaGUgQklNU1RFQyBtZW1iZXIgc3RhdGVzIOKAkyBCYW5nbGFkZXNoLCBCaHV0YW4sIEluZGlhLCBNeWFubWFyLCBOZXBhbCwgU3JpIExhbmthLCBhbmQgVGhhaWxhbmQg4oCTIGFyZSBhbW9uZyB0aGUgY291bnRyaWVzIGRlcGVuZGVudCBvbiB0aGUgQmF5IG9mIEJlbmdhbC4NCjE5OTcgKEp1biA4KTogRGVzcGl0ZSBhZ2dyZXNzaXZlIGNoZWxhdGlvbiB0aGVyYXB5LCBoZXIgY29uZGl0aW9uIHJhcGlkbHkgZGV0ZXJpb3JhdGVkLiBUaHJlZSB3ZWVrcyBhZnRlciB0aGUgZmlyc3QgbmV1cm9sb2dpY2FsIHN5bXB0b21zIGFwcGVhcmVkLCBXZXR0ZXJoYWhuIGxhcHNlZCBpbnRvIHdoYXQgYXBwZWFyZWQgdG8gYmUgYSB2ZWdldGF0aXZlIHN0YXRlIHB1bmN0dWF0ZWQgYnkgcGVyaW9kcyBvZiBleHRyZW1lIGFnaXRhdGlvbi4gT25lIG9mIGhlciBmb3JtZXIgc3R1ZGVudHMgc2FpZCB0aGF0ICJIZXIgaHVzYmFuZCBzYXcgdGVhcnMgcm9sbGluZyBkb3duIGhlciBmYWNlLiBJIGFza2VkIGlmIHNoZSB3YXMgaW4gcGFpbi4gVGhlIGRvY3RvcnMgc2FpZCBpdCBkaWRuJ3QgYXBwZWFyIHRoYXQgaGVyIGJyYWluIGNvdWxkIGV2ZW4gcmVnaXN0ZXIgcGFpbi4iIFdldHRlcmhhaG4gd2FzIHJlbW92ZWQgZnJvbSBsaWZlIHN1cHBvcnQgYW5kIHByb25vdW5jZWQgZGVhZCBvbiBKdW5lIDgsIDE5OTcsIHRlbiBtb250aHMgYWZ0ZXIgaGVyIGluaXRpYWwgZXhwb3N1cmUuIEluIHJlc3BvbnNlLCB0aGUgT2NjdXBhdGlvbmFsIFNhZmV0eSBhbmQgSGVhbHRoIEFkbWluaXN0cmF0aW9uIHJlY29tbWVuZGVkIHRoYXQgdGhlIHVzZSBvZiBkaW1ldGh5bG1lcmN1cnkgYmUgYXZvaWRlZCB1bmxlc3MgYWJzb2x1dGVseSBuZWNlc3NhcnkgYW5kIG1hbmRhdGVkIHRoZSB1c2Ugb2YgcGxhc3RpYy1sYW1pbmF0ZSBnbG92ZXMgKFNpbHZlclNoaWVsZCkgd2hlbiBoYW5kbGluZyB0aGlzIGNvbXBvdW5kLg0KMTk5NyAoSnVuIDEzKTpbSmFja10gQm9yZGVyDQoxOTk3IChKdW4gMjYpOltCb29rXSAzMllPIEouIEsuIFJvd2xpbmcgcHVibGlzaGVzIGhlciBmaXJzdCBIYXJyeSBQb3R0ZXIgYm9vaywgVGhlIFBoaWxvc29waGVyJ3MgU3RvbmU7IA0KVGhlIENoYW1iZXIgb2YgU2VjcmV0cyAoMiBKdWx5IDE5OTgpLA0KVGhlIFByaXNvbmVyIG9mIEF6a2FiYW4gKDggSnVseSAxOTk5KSwNClRoZSBHb2JsZXQgb2YgRmlyZSAoOCBKdWx5IDIwMDApLA0KVGhlIE9yZGVyIG9mIHRoZSBQaG9lbml4ICgsIDI3IEp1bmUgMjAwMyksDQpUaGUgSGFsZi1CbG9vZCBQcmluY2UgKDE2IEp1bHkgMjAwNSksDQpUaGUgRGVhdGhseSBIYWxsb3dzICgyMSBKdWx5IDIwMDcpDQoxOTk3IChBdWcgMjUpOltTcGFjZV0gQWR2YW5jZWQgQ29tcG9zaXRpb24gRXhwbG9yZXIgaXMgYSBOQVNBIEV4cGxvcmVyIHByb2dyYW0gc2F0ZWxsaXRlIGFuZCBzcGFjZSBleHBsb3JhdGlvbiBtaXNzaW9uIHRvIHN0dWR5IG1hdHRlciBjb21wcmlzaW5nIGVuZXJnZXRpYyBwYXJ0aWNsZXMgZnJvbSB0aGUgc29sYXIgd2luZCwgdGhlIGludGVycGxhbmV0YXJ5IG1lZGl1bSwgYW5kIG90aGVyIHNvdXJjZXMuDQoxOTk3IChTZXAgMTMpOiB0aGUgaW50cm9kdWN0b3J5IGVwaXNvZGUgb2YgU2hha3RpbWFuIHdhcyBhaXJlZCBvbiBEb29yZGFyc2hhbiAoSW5kaWEncyBuYXRpb25hbCB0ZWxldmlzaW9uIG5ldHdvcmspIGZyb20gMjcgU2VwdGVtYmVyIDE5OTcgdG8gMjcgTWFyY2ggMjAwNSwgb24gU3VuZGF5cyBhdCAxMiBub29uIElTVC4gVGhlIHRlbGVjYXN0IHNsb3QsIGhvd2V2ZXIgd2FzIHNoaWZ0ZWQgdG8gOTozMCBhLm0uIGZvciB0aGUgbGFzdCBlcGlzb2Rlcy4gDQoxOTk3IChTZXAgMjcgMTA6MjMgVVRDKTpbU3BhY2VdW01hcnNdIExhc3QgY29udGFjdCB3aXRoIE1hcnMgUGF0aGZpbmRlci4gTWlzc2lvbiBkdXJhdGlvbiAoTGF1bmNoIHRvIGxhc3QgY29udGFjdCk6IDkgbW9udGhzLCAyMyBkYXlzLg0KMTk5NyAoT2N0IDMxKTpbQm9va10gRG9uYWxkIFRydW1wJ3MgVHJ1bXA6IFRoZSBBcnQgb2YgdGhlIENvbWViYWNrOyBUaGUgQW1lcmljYSBXZSBEZXNlcnZlICgyMDAwKTsgVHJ1bXA6IFRoaW5rIExpa2UgYSBCaWxsaW9uYWlyZTogRXZlcnl0aGluZyBZb3UgTmVlZCB0byBLbm93IEFib3V0IFN1Y2Nlc3MsIFJlYWwgRXN0YXRlLCBhbmQgTGlmZSAoMjAwNCk7IFdoeSBXZSBXYW50IFlvdSB0byBCZSBSaWNoICgyMDA2KTsgVHJ1bXA6IFRoZSBCZXN0IFJlYWwgRXN0YXRlIEFkdmljZSBJIEV2ZXIgUmVjZWl2ZWQ6IDEwMCBUb3AgRXhwZXJ0cyBTaGFyZSBUaGVpciBTdHJhdGVnaWVzICgyMDA2LCBOb3YgMSk7IFRoaW5rIEJJRyBhbmQgS2ljayBBc3MgaW4gQnVzaW5lc3MgYW5kIExpZmUgKDIwMDcpOyBUcnVtcCBOZXZlciBHaXZlIFVwOiBIb3cgSSBUdXJuZWQgTXkgQmlnZ2VzdCBDaGFsbGVuZ2VzIGludG8gU3VjY2VzcyAoMjAwOCk7IFRpbWUgdG8gR2V0IFRvdWdoOiBNYWtpbmcgQW1lcmljYSAjMSBBZ2FpbiAoMjAxMSk7IENyaXBwbGVkIEFtZXJpY2E6IEhvdyB0byBNYWtlIEFtZXJpY2EgR3JlYXQgQWdhaW4gKDIwMTUpDQoxOTk3OiBBcnVuZGhhdGkgUm95IGJlY2FtZSB0aGUgZmlyc3QgSW5kaWFuIHRvIHdpbiBNYW4gQm9va2VyIFByaXplIGZvciBoZXIgbm92ZWwgJ1RoZSBHb2Qgb2YgU21hbGwgVGhpbmdzJy4NCjE5OTc6IElJVC1KRUUgd2FzIGNvbmR1Y3RlZCB0d2ljZSBhZnRlciB0aGUgUS1QYXBlciB3YXMgbGVha2VkLg0KMTk5NzogTkFTQSBlc3RpbWF0ZWQgdGhlcmUgd2VyZSBhcHByb3guIDIsNjQ1IGFydGlmaWNpYWwgc2F0ZWxsaXRlIHBheWxvYWRzIG9yYml0dGluZyB0aGUgZWFydGggYW5kIDYsMjE2IHBpZWNlcyBvZiBzcGFjZSBkZWJyaXMgYXMgdHJhY2tlZCBieSB0aGUgR1NGQy4gT3ZlciAxNiwyOTEgcHJldmlvdXNseSBsYXVuY2hlZCBvYmplY3RzIGhhdmUgZGVjYXllZCBpbnRvIHRoZSBFYXJ0aCdzIGF0bW9zcGhlcmUuDQoxOTk3OiBCSEMgRmluYW5jaWFsLCBJbmMuIG9mIFBlbm5zeWx2YW5pYSBtZXJnZWQgaW50byBGSVNWIHRvIGZvcm0gU2VjdXJlZCBUcmFuc2FjdGlvbiBQcm9jZXNzaW5nIFNlcnZpY2VzLg0KMTk5NzpbQm9va10gVGhlIEZvdXIgQWdyZWVtZW50czogQSBQcmFjdGljYWwgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSBpcyBhIHNlbGYtaGVscCBib29rIGJ5IGJlc3RzZWxsaW5nIGF1dGhvciBEb24gTWlndWVsIFJ1aXogd2l0aCBKYW5ldCBNaWxsczsgVGhlIE1hc3Rlcnkgb2YgTG92ZTogQSBQcmFjdGljYWwgR3VpZGUgdG8gdGhlIEFydCBvZiBSZWxhdGlvbnNoaXAgLS1Ub2x0ZWMgV2lzZG9tIEJvb2sgKDE5OTksIE1hciAzMCk7IFRoZSBWb2ljZSBvZiBLbm93bGVkZ2U6IEEgUHJhY3RpY2FsIEd1aWRlIHRvIElubmVyIFBlYWNlICgyMDA0LCBNYXIgMTApOyBUaGUgRmlmdGggQWdyZWVtZW50OiBBIFByYWN0aWNhbCBHdWlkZSB0byBTZWxmLU1hc3RlcnkgKDIwMDkpOyBUaGUgQ2lyY2xlIG9mIEZpcmU6IEluc3BpcmF0aW9uIGFuZCBHdWlkZWQgTWVkaXRhdGlvbnMgZm9yIExpdmluZyBpbiBMb3ZlIGFuZCBIYXBwaW5lc3MgKDIwMTMsIEF1ZyAxKTsgVGhlIE1hc3Rlcnkgb2YgU2VsZjogQSBUb2x0ZWMgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSAoMjAxNiwgTWF5IDYpDQoxOTk3OltCb29rXSBKb24gS3Jha2F1ZXIncyBJbnRvIFRoaW4gQWlyOiBBIFBlcnNvbmFsIEFjY291bnQgb2YgdGhlIE10LiBFdmVyZXN0IERpc2FzdGVyOyBVbmRlciB0aGUgQmFubmVyIG9mIEhlYXZlbiAoMjAwMyBKdWwpDQoxOTk3IChEZWMgMTEpOltFbnZdIFRoZSBLeW90byBQcm90b2NvbCB3YXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgd2hpY2ggZXh0ZW5kZWQgdGhlIDE5OTIgVW5pdGVkIE5hdGlvbnMgRnJhbWV3b3JrIENvbnZlbnRpb24gb24gQ2xpbWF0ZSBDaGFuZ2UgKFVORkNDQykgdGhhdCBjb21taXRzIHN0YXRlIHBhcnRpZXMgdG8gcmVkdWNlIGdyZWVuaG91c2UgZ2FzIGVtaXNzaW9ucywgYmFzZWQgb24gdGhlIHNjaWVudGlmaWMgY29uc2Vuc3VzIHRoYXQgKHBhcnQgb25lKSBnbG9iYWwgd2FybWluZyBpcyBvY2N1cnJpbmcgYW5kIChwYXJ0IHR3bykgdGhhdCBodW1hbi1tYWRlIENPMiBlbWlzc2lvbnMgYXJlIGRyaXZpbmcgaXQuDQoxOTk3OltJbmRpYV1bRWR1Y2F0aW9uXVtDdWx0dXJlXSBFa2xhdnlhIE1vZGVsIFJlc2lkZW50aWFsIFNjaG9vbCBpcyBhIEdvdmVybm1lbnQgb2YgSW5kaWEgc2NoZW1lIGZvciBtb2RlbCByZXNpZGVudGlhbCBzY2hvb2wgZm9yIEluZGlhbiB0cmliYWxzIGFjcm9zcyBJbmRpYS4gSXQgaXMgb25lIG9mIHRoZSBmbGFnc2hpcCBpbnRlcnZlbnRpb25zIG9mIHRoZSBNaW5pc3RyeSBvZiBUcmliYWwgQWZmYWlycywgR292ZXJubWVudCBvZiBJbmRpYSBhbmQgd2FzIGludHJvZHVjZWQgaW4gdGhlIHllYXIgMTk5Ny05OCB0byBlbnN1cmUgdHJpYmFsIHN0dWRlbnRzIGdldCBhY2Nlc3MgdG8gcXVhbGl0eSBlZHVjYXRpb24gaW4gdGhlIHJlbW90ZSB0cmliYWwgYXJlYXMuIEVNUlNzIGFyZSBzZXQgdXAgaW4gU3RhdGVzL1VUcyB3aXRoIGdyYW50cyB1bmRlciBBcnRpY2xlIDI3NSgxKSBvZiB0aGUgQ29uc3RpdHV0aW9uIG9mIEluZGlhLiBBcyBwZXIgdGhlIGJ1ZGdldCAyMDE4LTE5LCBldmVyeSBibG9jayB3aXRoIG1vcmUgdGhhbiA1MCUgU1QgcG9wdWxhdGlvbiBhbmQgYXQgbGVhc3QgMjAsMDAwIHRyaWJhbCBwZXJzb25zLCB3aWxsIGhhdmUgYW4gRWtsYXZ5YSBNb2RlbCBSZXNpZGVudGlhbCBTY2hvb2wgYnkgdGhlIHllYXIgMjAyMi4NCjE5OTc6W1NwYWNlXSBIaXBwYXJjb3MgKDE5ODkgLTE5OTMpLiBJdCB0b29rIDQtOCB5ZWFycyB0byBvcmdhbml6ZSBhbmQgcHVibGlzaCB0aGUgNCB5ZWFycyBzdHVkeSBieSB0aGlzIGV4cGVyaW1lbnQsIHdoaWNoIHBlcm1pdHRlZCB0aGUgZmlyc3QgaGlnaC1wcmVjaXNpb24gbWVhc3VyZW1lbnRzIG9mIHRoZSBpbnRyaW5zaWMgYnJpZ2h0bmVzc2VzIChjb21wYXJlZCB0byB0aGUgbGVzcyBwcmVjaXNlIGFwcGFyZW50IGJyaWdodG5lc3MpLCBwcm9wZXIgbW90aW9ucywgYW5kIHBhcmFsbGF4ZXMgb2Ygc3RhcnMsIGVuYWJsaW5nIGJldHRlciBjYWxjdWxhdGlvbnMgb2YgdGhlaXIgZGlzdGFuY2UgYW5kIHRhbmdlbnRpYWwgdmVsb2NpdHkuIFdoZW4gY29tYmluZWQgd2l0aCByYWRpYWwgdmVsb2NpdHkgbWVhc3VyZW1lbnRzIGZyb20gc3BlY3Ryb3Njb3B5LCBhc3Ryb3BoeXNpY2lzdHMgd2VyZSBhYmxlIHRvIGZpbmFsbHkgbWVhc3VyZSBhbGwgc2l4IHF1YW50aXRpZXMgbmVlZGVkIHRvIGRldGVybWluZSB0aGUgbW90aW9uIG9mIHN0YXJzLiBUaGUgcmVzdWx0aW5nIEhpcHBhcmNvcyBDYXRhbG9ndWUsIGEgaGlnaC1wcmVjaXNpb24gY2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiAxMTgsMjAwIHN0YXJzLCB3YXMgcHVibGlzaGVkIGluIDE5OTcuIFRoZSBsb3dlci1wcmVjaXNpb24gVHljaG8gQ2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiBhIG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBhdCB0aGUgc2FtZSB0aW1lLCB3aGlsZSB0aGUgZW5oYW5jZWQgVHljaG8tMiBDYXRhbG9ndWUgb2YgMi41IG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBpbiAyMDAwLiBIaXBwYXJjb3MnIGZvbGxvdy11cCBtaXNzaW9uLCBHYWlhLCB3YXMgbGF1bmNoZWQgaW4gMjAxMy4NCjE5OTc6W1NwYWNlXVtSZXNlYXJjaF0gU2luY2UgdGhlIDE5OTcgcHJvcG9zYWwgb2YgdGhlIEFkUy9DRlQgKEFudGktZGUgU2l0dGVyL0NvbmZvcm1hbCBGaWVsZCBUaGVvcnkpIGNvcnJlc3BvbmRlbmNlLCB0aGUgcHJlZG9taW5hbnQgYmVsaWVmIGFtb25nIHBoeXNpY2lzdHMgaXMgdGhhdCBpbmZvcm1hdGlvbiBpcyBpbmRlZWQgcHJlc2VydmVkIGluIGJsYWNrIGhvbGUgZXZhcG9yYXRpb24uIA0KMTk5NzpbU3BhY2VdW1Jlc2VhcmNoXSBBIHdpZGVseSBwdWJsaWNpemVkIGJldCBtYWRlIGluIDE5OTcgYmV0d2VlbiBKb2huIFByZXNraWxsIG9uIHRoZSBvbmUgaGFuZCB3aXRoIEhhd2tpbmcgYW5kIEtpcCBUaG9ybmUgb24gdGhlIG90aGVyIHRoYXQgaW5mb3JtYXRpb24gd2FzIG5vdCBsb3N0IGluIGJsYWNrIGhvbGVzLiBUaGUgc2NpZW50aWZpYyBkZWJhdGUgb24gdGhlIHBhcmFkb3ggd2FzIGRlc2NyaWJlZCBpbiBhIHBvcHVsYXIgYm9vayBwdWJsaXNoZWQgaW4gMjAwOCBieSBMZW9uYXJkIFN1c3NraW5kIGNhbGxlZCBUaGUgQmxhY2sgSG9sZSBXYXIuIChUaGUgYm9vayBjYXJlZnVsbHkgbm90ZXMgdGhhdCB0aGUgJ3dhcicgd2FzIHB1cmVseSBhIHNjaWVudGlmaWMgb25lLCBhbmQgdGhhdCBhdCBhIHBlcnNvbmFsIGxldmVsLCB0aGUgcGFydGljaXBhbnRzIHJlbWFpbmVkIGZyaWVuZHMuKSBUaGUgYm9vayBzdGF0ZXMgdGhhdCBIYXdraW5nIHdhcyBldmVudHVhbGx5IHBlcnN1YWRlZCB0aGF0IGJsYWNrLWhvbGUgZXZhcG9yYXRpb24gd2FzIHVuaXRhcnkgYnkgdGhlIGhvbG9ncmFwaGljIHByaW5jaXBsZSwgd2hpY2ggd2FzIGZpcnN0IHByb3Bvc2VkIGJ5ICd0IEhvb2Z0LCBmdXJ0aGVyIGRldmVsb3BlZCBieSBTdXNza2luZCBhbmQgbGF0ZXIgZ2l2ZW4gYSBwcmVjaXNlIHN0cmluZyB0aGVvcnkgaW50ZXJwcmV0YXRpb24gYnkgdGhlIEFkUy9DRlQgY29ycmVzcG9uZGVuY2UuIEluIDIwMDQsIEhhd2tpbmcgYWxzbyBjb25jZWRlZCB0aGUgMTk5NyBiZXQsIHBheWluZyBQcmVza2lsbCB3aXRoIGEgYmFzZWJhbGwgZW5jeWNsb3BlZGlhICJmcm9tIHdoaWNoIGluZm9ybWF0aW9uIGNhbiBiZSByZXRyaWV2ZWQgYXQgd2lsbCIgYWx0aG91Z2ggVGhvcm5lIHJlZnVzZWQgdG8gY29uY2VkZS4NCjE5OTc6W0VhcnRoXVtQaHlzaWNzXVtSZXNlYXJjaF0gdGhlcmUgd2VyZSB0d28gbGFyZ2UgZWFydGhxdWFrZXMgb2ZmIHRoZSBjb2FzdCBvZiBDaGlsZS4gVGhlIG1hZ25pdHVkZSBvZiB0aGUgZmlyc3QsIGluIEp1bHksIHdhcyBlc3RpbWF0ZWQgYXQgTXfigK82LjksIGJ1dCB3YXMgYmFyZWx5IGZlbHQsIGFuZCBvbmx5IGluIHRocmVlIHBsYWNlcy4gSW4gT2N0b2JlciBhIE134oCvNy4xIHF1YWtlIGluIG5lYXJseSB0aGUgc2FtZSBsb2NhdGlvbiwgYnV0IHR3aWNlIGFzIGRlZXAgYW5kIG9uIGEgZGlmZmVyZW50IGtpbmQgb2YgZmF1bHQsIHdhcyBmZWx0IG92ZXIgYSBicm9hZCBhcmVhLCBpbmp1cmVkIG92ZXIgMzAwIHBlb3BsZSwgYW5kIGRlc3Ryb3llZCBvciBzZXJpb3VzbHkgZGFtYWdlZCBvdmVyIDEwLDAwMCBob3VzZXMuIEFzIGNhbiBiZSBzZWVuIGluIHRoZSB0YWJsZSBiZWxvdywgdGhpcyBkaXNwYXJpdHkgb2YgZGFtYWdlIGRvbmUgaXMgbm90IHJlZmxlY3RlZCBpbiBlaXRoZXIgdGhlIG1vbWVudCBtYWduaXR1ZGUgKE134oCvKSBub3IgdGhlIHN1cmZhY2Utd2F2ZSBtYWduaXR1ZGUgKE1z4oCvKS4gT25seSB3aGVuIHRoZSBtYWduaXR1ZGUgaXMgbWVhc3VyZWQgb24gdGhlIGJhc2lzIG9mIHRoZSBib2R5LXdhdmUgKG1i4oCvKSBvciB0aGUgc2Vpc21pYyBlbmVyZ3kgKE1l4oCvKSBpcyB0aGVyZSBhIGRpZmZlcmVuY2UgY29tcGFyYWJsZSB0byB0aGUgZGlmZmVyZW5jZSBpbiBkYW1hZ2UuIChhcyByZXNlYXJjaGVkIGJ5IENob3ksIEJvYXR3cmlnaHQgJiBLaXJieSAyMDAxLCBwLiAxMy4pLiBNdyA2Ljkgd2FzIGFjdHVhbGx5IE1lIDYuMSwgYW4gaW50ZXJwbGF0ZS10aHJ1c3QgdHlwZSBvZiBmYXVsdCwgd2hpbGUgTXcgNy4xIHdhcyBhY3R1YWxseSBhIDcuNSBNZSBpbnRyYXNsYWItbm9ybWFsIHR5cGUgb2YgZmF1bHQuDQoxOTk3OltSZXNlYXJjaF0gRHVyaW5nIHN1cnZleXMgY2FycmllZCBvdXQgYmV0d2VlbiAxOTk3IGFuZCAyMDAxLCBhIHNwb3Qgd2FzIGZvdW5kIGFsb25nIHRoZSBNYXJpYW5hIFRyZW5jaCB0aGF0IGhhZCBhIGRlcHRoIHNpbWlsYXIgdG8gdGhlIENoYWxsZW5nZXIgRGVlcCwgcG9zc2libHkgZXZlbiBkZWVwZXIuIEl0IHdhcyBkaXNjb3ZlcmVkIHdoaWxlIHNjaWVudGlzdHMgZnJvbSB0aGUgSGF3YWlpIEluc3RpdHV0ZSBvZiBHZW9waHlzaWNzIGFuZCBQbGFuZXRvbG9neSB3ZXJlIGNvbXBsZXRpbmcgYSBzdXJ2ZXkgYXJvdW5kIEd1YW07IHRoZXkgdXNlZCBhIHNvbmFyIG1hcHBpbmcgc3lzdGVtIHRvd2VkIGJlaGluZCB0aGUgcmVzZWFyY2ggc2hpcCB0byBjb25kdWN0IHRoZSBzdXJ2ZXkuIFRoaXMgbmV3IHNwb3Qgd2FzIG5hbWVkIHRoZSBITVJHIChIYXdhaWkgTWFwcGluZyBSZXNlYXJjaCBHcm91cCkgRGVlcCwgYWZ0ZXIgdGhlIGdyb3VwIG9mIHNjaWVudGlzdHMgd2hvIGRpc2NvdmVyZWQgaXQuDQoxOTk3OltTcGFjZVhdIEEgcmVzb2x2ZWQgY2lyY3Vtc3RlbGxhciBkaXNrIHdhcyBmaXJzdCBpZGVudGlmaWVkIGluIDE5OTcgd2l0aCB0aGUgT3dlbnMgVmFsbGV5IFJhZGlvIE9ic2VydmF0b3J5LiBUaGUgc2VtaS1tYWpvciBheGlzIHdhcyBpbml0aWFsbHkgZXN0aW1hdGVkIHRvIGJlIDExMCBBVS4gSEQgMTYzMjk2IGFuZCBzdXJyb3VuZGluZ3MgQ3JlZGl0OiBFU08vRGlnaXRpemVkIFNreSBTdXJ2ZXkgMjsgQWNrbm93bGVkZ2VtZW50OiBEYXZpZGUgRGUgTWFydGluIE9ic2VydmF0aW9uIGRhdGEgRXBvY2ggSjIwMDAgICAgICBFcXVpbm94IEoyMDAwIENvbnN0ZWxsYXRpb24JU2FnaXR0YXJpdXMgUmlnaHQgYXNjZW5zaW9uCTE3aCA1Nm0gMjEuMjlzIERlY2xpbmF0aW9uCeKIkjIxwrAgNTfigLIgMjEuODfigLMgQXBwYXJlbnQgbWFnbml0dWRlIChWKQk2Ljg1OyBDaGFyYWN0ZXJpc3RpY3MgRXZvbHV0aW9uYXJ5IHN0YWdlCUhlcmJpZyBBZSBzdGFyIFNwZWN0cmFsIHR5cGUJQTNWYWVrQTFtQTE7IEFzdHJvbWV0cnkgUmFkaWFsIHZlbG9jaXR5IChSdikJLTQuMDAgwrEzLjNbM10ga20vcyBQcm9wZXIgbW90aW9uICjOvCkJUkE6IC03LjU4NiDCsTAuMDQxIG1hcy95cjsgRGVjLjogLTM5LjQ1OCDCsTAuMDI5IG1hcy95cls0XSBQYXJhbGxheCAoz4ApCTkuOTA0M8KxMC4wNDA4IG1hc1s0XSBEaXN0YW5jZQkzMjkgwrEgMSBseSAoMTAxLjAgwrEgMC40IHBjKSBEZXRhaWxzOyBNYXNzCTEuOTXCsTAuMDcgTeKYiSBSYWRpdXMJMS44N8KxMC4wNSBS4piJIEx1bWlub3NpdHkJMjAuNCszLjYg4oiSMy4wIEzimIkgU3VyZmFjZSBncmF2aXR5IChsb2cgZykJNC4xMMKxMC4xMCBjZ3MgVGVtcGVyYXR1cmUJOTAwMMKxMjUwIEsgQWdlCTYuMDMrMC4yOCDiiJIwLjI3IE15ciBPdGhlciBkZXNpZ25hdGlvbnMgQkQtMjEgNDc3OSwgQ1BELTIxIDY1MDgsIEVNKiBNV0MgMjc1LCBISVAgODc4MTksIElSQVMgMTc1MzMtMjE1NiwgMk1BU1MgSjE3NTYyMTI4LTIxNTcyMTgsIFBEUyA0NzMsIFRZQyA2MjYyLTIxMzEtMSwgRGF0YWJhc2UgcmVmZXJlbmNlcyBTSU1CQUQNCjE5OTc6W1NwYWNlWF0gMTAxOTkgQ2hhcmlrbG8gaXMgYSByaW5nZWQgYXN0ZXJvaWQgb3IgY2VudGF1ciBpbiB0aGUgb3V0ZXIgU29sYXIgU3lzdGVtLiBJdCBpcyB0aGUgbGFyZ2VzdCBrbm93biBjZW50YXVyLCB3aXRoIGEgZGlhbWV0ZXIgb2YgYWJvdXQgMjUwIGttLiBJdCBvcmJpdHMgdGhlIFN1biBiZXR3ZWVuIFNhdHVybiBhbmQgVXJhbnVzIHdpdGggYW4gb3JiaXRhbCBwZXJpb2Qgb2YgNjIuNSB5ZWFycy4gV2lraXBlZGlhIE9yYml0YWwgcGVyaW9kOiA2MyB5ZWFycyBSYWRpdXM6IDE1MSBrbSBEaXNjb3ZlcmVkOiAxNSBGZWJydWFyeSAxOTk3IERpbWVuc2lvbnM6ICgyODcuNisyLjg7IOKIkjMuMCkgw5cgKDI3MC40KzIuODsg4oiSNS42KSDDlyAoMTk4LjIrMTAuODsg4oiSNS40KSBrbTogMTEgRGlzY292ZXJlcjogSmFtZXMgVi4gU2NvdHRpIFNwZWN0cmFsIHR5cGU6IEQtdHlwZSBhc3Rlcm9pZCBBcGhlbGlvbjogMTguNDIwIEFVDQoxOTk3OltTcGFjZVhdIFRoZSBHcmVhdCBEYXlsaWdodCBGaXJlYmFsbCAtIFRoZSBhdG1vc3BoZXJpYyBwYXNzIG1vZGlmaWVkIHRoZSBvYmplY3QncyBtYXNzIGFuZCBvcmJpdCBhcm91bmQgdGhlIFN1bi4gQSAxOTk0IHN0dWR5IGZvdW5kIHRoYXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgaW4gYW4gRWFydGgtY3Jvc3Npbmcgb3JiaXQgYW5kIHByZWRpY3RlZCB0aGF0IGl0IHdvdWxkIHBhc3MgY2xvc2UgdG8gRWFydGggYWdhaW4gaW4gQXVndXN0IDE5OTcuIEhvd2V2ZXIsIHRoZSBvYmplY3QgaGFzIG5vdCBiZWVuIG9ic2VydmVkIGFnYWluIGFuZCBzbyBpdHMgcG9zdC1lbmNvdW50ZXIgb3JiaXQgcmVtYWlucyB1bmtub3duLg0KMTk5NzpOYWZpc2EgSm9zZXBoIHdhcyB0aGUgeW91bmdlc3QgTWlzcyBJbmRpYSB3aW5uZXIgYXQgYWdlIDE5LCB3aW5uaW5nIHRoZSB0aXRsZSBpbiAxOTk3LiBTaGUgbGF0ZXIgYmVjYW1lIGEgbW9kZWwgYW5kIHRlbGV2aXNpb24gcGVyc29uYWxpdHkuIFdoaWxlIG90aGVyIHdpbm5lcnMgbGlrZSBNZWVuYWtzaGkgU2VzaGFkcmkgd2VyZSBhbHNvIDE3IHdoZW4gdGhleSB3b24gaW4gMTk4MSwgSm9zZXBoIGlzIG9mdGVuIGNpdGVkIGZvciBoZXIgZWFybHkgd2luIGF0IDE5LCB3aGljaCB3YXMgdGhlbiBhIHlvdW5nZXIgYWdlIHRoYW4gaXMgdHlwaWNhbGx5IHNlZW4gaW4gdGhlIGNvbXBldGl0aW9uLiANCjE5OTc6W3NwYWNlXVt0ZWNoXSBUaGUgZmluYWwgQmxvY2sgSUlBIHdhcyBpbiBOb3YgMTk5Nywgd2hpbGUgQmxvY2sgSUlScyBiZWdhbiByZXBsYWNpbmcgdGhlbSBzaG9ydGx5IGFmdGVyLCBsYXN0aW5nIHVudGlsIDIwMDQuIEJsb2NrIElJUiAoUmVwbGVuaXNobWVudCkgbGF1bmNoZXMgZm9sbG93ZWQgZnJvbSAxOTk3IHRvIDIwMDQsIHdpdGggdGhlIGZpcnN0IGxhdW5jaCBpbiBKYW51YXJ5IDE5OTcuIA0KDQoxOTk4OltTcGFjZVhdIFRoZSBwcmltYXJ5IGNvbnN0cnVjdGlvbiBwaGFzZSBvZiB0aGUgSW50ZXJuYXRpb25hbCBTcGFjZSBTdGF0aW9uIChJU1MpIHRvb2sgYXBwcm94aW1hdGVseSAxMyB5ZWFycywgZnJvbSAxOTk4IHRvIDIwMTEsIHdpdGggdGhlIGZpcnN0IG1vZHVsZSBsYXVuY2hpbmcgaW4gTm92ZW1iZXIgMTk5OCBhbmQgSVNTIEFzc2VtYmx5IENvbXBsZXRlIGRlY2xhcmVkIGluIE1heSAyMDExLiBIb3dldmVyLCBhc3NlbWJseSB3YXMgYSBjb250aW51b3VzLCBtdWx0aS1zdGFnZSBwcm9jZXNzIGludm9sdmluZyBtb3JlIHRoYW4gMzAgbWlzc2lvbnMsIG51bWVyb3VzIHNwYWNld2Fsa3MsIGFuZCByb2JvdGljIGFzc2lzdGFuY2UgdG8gYnVpbGQgdGhlIHN0YXRpb24gcGllY2UgYnkgcGllY2UgaW4gb3JiaXQuIEV2ZW4gYWZ0ZXIgMjAxMSwgdGhlIElTUyBjb250aW51ZWQgdG8gZXZvbHZlIHdpdGggb25nb2luZyBhZGRpdGlvbnMgYW5kIHVwZ3JhZGVzLg0KMTk5ODpbUmVzZWFyY2hdW1NwYWNlXSBTcHJpbmcsIDE5OTg6IGEgbWljcm9mb3NzaWwgdGhhdCB3YXMgZm91bmQgaW4gYSBtZXRlb3JpdGUgYW5kIHBob3RvZ3JhcGhlZCBpbiAxOTY2LCB3YXMgcmVjb2duaXplZCBieSBhIFJ1c3NpYW4gbWljcm9iaW9sb2dpc3QgYXMgYSBtYWduZXRvdGFjdGljIGJhY3Rlcml1bS4gQnkgRmFsbCwgMTk5ODogTkFTQSdzIHB1YmxpYyBwb3NpdGlvbiBvbiBsaWZlLWZyb20tc3BhY2Ugc2hpZnRlZCBkcmFtYXRpY2FsbHkuDQoxOTk4OiBBcyBhIHJlc2VhcmNoIHByb2plY3QgYXQgU3RhbmZvcmQgVW5pdmVyc2l0eSwgU2VyZ2V5IEJyaW4gYW5kIExhcnJ5IFBhZ2UgY3JlYXRlZCBhIHNlYXJjaCBlbmdpbmUgdGhhdCBsaXN0ZWQgcmVzdWx0cyBhY2NvcmRpbmcgdG8gdGhlIHBvcHVsYXJpdHkgb2YgdGhlIHBhZ2VzLCBhZnRlciBjb25jbHVkaW5nIHRoYXQgdGhlIG1vc3QgcG9wdWxhciByZXN1bHQgd291bGQgb2Z0ZW4gYmUgdGhlIG1vc3QgdXNlZnVsLiBBZnRlciByYWlzaW5nICQxIG1pbGxpb24gZnJvbSBmYW1pbHksIGZyaWVuZHMgYW5kIG90aGVyIGludmVzdG9ycywgdGhlIHBhaXIgbGF1bmNoZWQgdGhlIGNvbXBhbnkgaW4gMTk5OC4gR29vZ2xlIGhhcyBzaW5jZSBiZWNvbWUgdGhlIHdvcmxk4oCZcyBtb3N0IHBvcHVsYXIgc2VhcmNoIGVuZ2luZSwgcmVjZWl2aW5nIG1vcmUgdGhhbiAyMDAgbWlsbGlvbiBxdWVyaWVzIGVhY2ggZGF5Lg0KMTk5OCAoTm92IDIwKTogDQoxOTk4IChBcHIgMjcpOiBSUkIgZm91bmRlZCBhcyBSYWlsd2F5IFJlY3J1aXRtZW50IENvbnRyb2wgQm9hcmQgaXMgYSBnb3Zlcm5tZW50IG9yZ2FuaXNhdGlvbiBpbiBJbmRpYS4gSXQgd2FzIHNldCB1cCBpbiAxOTk4IGluIHRoZSBNaW5pc3RyeSBvZiBSYWlsd2F5cyAoUmFpbHdheSBCb2FyZCksIE5ldyBEZWxoaS5JbiAxOTQ1LCB0aGUgU2VydmljZXMgQ29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgYXQgQm9tYmF5LCBDYWxjdXR0YSwgTWFkcmFzIGFuZCBMdWNrbm93LiBJbiAxOTgzLCB0byBjYXRlciB0byB0aGUgbmVlZHMgb2YgYXJlYXMgd2hpY2ggd2VyZSBiZWluZyBuZWdsZWN0ZWQgZHVlIHRvIGxvY2F0aW9ucyBvZiB0aGUgZXhpc3RpbmcgY29tbWlzc2lvbnMsIHNldmVuIG1vcmUgY29tbWlzc2lvbnMgd2VyZSBzZXQgdXAgdml6LCBhdCBBaG1lZGFiYWQsIEFqbWVyLCBCaG9wYWwsIEJodXZuZXNod2FyLCBDaGFuZGlnYXJoLCBKYW1tdSBhbmQgU3JpbmFnYXIgd2l0aCBzaXR0aW5nIGF0IExlaCBhbmQgVHJpdmVuZHJ1bS4gSW4gMTk4NCB0d28gbW9yZSBzZXJ2aWNlIGNvbW1pc3Npb25zIHdlcmUgc2V0IHVwIGF0IE1hbGRhIGFuZCBHb3Jha2hwdXIuDQoxOTk4IChNYXkgMTkpOiBBdGFsIEJpaGFyaSBWYWpwYXllZSBiZWNvbWVzIFBNIG9mIEluZGlhIGZvciB0aGUgc2Vjb25kIHRpbWUsIG5vdyBmb3IgNiB5ZWFycyB0aWxsIE1heSAyMiwgMjAwNC4gDQoxOTk4IChNYXkgMjggMTU6MTVQU1QpOiBDaGFnYWktSSBpcyB0aGUgY29kZSBuYW1lIG9mIGZpdmUgc2ltdWx0YW5lb3VzIHVuZGVyZ3JvdW5kIG51Y2xlYXIgdGVzdHMgY29uZHVjdGVkIGJ5IFBha2lzdGFuLiBUaGUgdGVzdHMgd2VyZSBwZXJmb3JtZWQgYXQgUmFzIEtvaCBIaWxscyBpbiB0aGUgQ2hhZ2FpIERpc3RyaWN0IG9mIEJhbG9jaGlzdGFuIFByb3ZpbmNlLiBDaGFnYWktSSB3YXMgUGFraXN0YW4ncyBmaXJzdCBwdWJsaWMgdGVzdCBvZiBudWNsZWFyIHdlYXBvbnMuIFBha2lzdGFuJ3MgZmlzc2lsZSBtYXRlcmlhbCBwcm9kdWN0aW9uIHRha2VzIHBsYWNlIGF0IE5pbG9yZSwgS2FodXRhLCBhbmQgS2h1c2hhYiBOdWNsZWFyIENvbXBsZXgsIHdoZXJlIHdlYXBvbnMtZ3JhZGUgcGx1dG9uaXVtIGlzIHJlZmluZWQuDQoxOTk4OiBBZnRlciBjb21wbGV0aW5nIGhpcyBYIHN0YW5kYXJkIGV4YW1pbmF0aW9ucywgUmFuYmlyIEthcG9vciwgYWdlZCAxNiwgd29ya2VkIGFzIGFuIGFzc2lzdGFudCBkaXJlY3RvciB0byBoaXMgZmF0aGVyIG9uIHRoZSBmaWxtIEFhIEFiIExhdXQgQ2hhbGVuICgxOTk5KSwgZHVyaW5nIHdoaWNoIGhlIGRldmVsb3BlZCBhIGNsb3NlciBib25kIHdpdGggaGltLg0KMTk4ODogTmV0d29ya2VkIERhdGEgUHJvY2Vzc2luZyBDb3IsIElvd2EgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBJbnN1cmFuY2UgZGl2aXNpb24uDQoxOTk4OltCb29rXSBSb2JlcnQgR3JlZW5lJ3MgVGhlIDQ4IExhd3Mgb2YgUG93ZXI7IFRoZSAzMyBTdHJhdGVnaWVzIG9mIFdhciAoMjAwNik7IE1hc3RlcnkgKDIwMTIsIE5vdiAxMyk7IFRoZSBMYXdzIG9mIEh1bWFuIE5hdHVyZSAoMjAxOCwgT2N0IDE2KQ0KMTk5ODpbU3BhY2VdW1Jlc2VhcmNoXVtFeHRyZW1lXSBUaGVuIGNhbWUgMTk5OCBhbmQgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgKEhTVCkgb2JzZXJ2YXRpb25zIG9mIHZlcnkgZGlzdGFudCBzdXBlcm5vdmFlIHRoYXQgc2hvd2VkIHRoYXQsIGEgbG9uZyB0aW1lIGFnbywgdGhlIHVuaXZlcnNlIHdhcyBhY3R1YWxseSBleHBhbmRpbmcgbW9yZSBzbG93bHkgdGhhbiBpdCBpcyB0b2RheS4gU28gdGhlIGV4cGFuc2lvbiBvZiB0aGUgdW5pdmVyc2UgaGFzIG5vdCBiZWVuIHNsb3dpbmcgZHVlIHRvIGdyYXZpdHksIGFzIGV2ZXJ5b25lIHRob3VnaHQsIGl0IGhhcyBiZWVuIGFjY2VsZXJhdGluZy4NCjE5OTg6W0NyaW1lXVtJbmRpYV0gQW5lZXMgYXJyZXN0ZWQgaW4gVUFFIG9uIGNoYXJnZXMgb2YgaGF2aW5nIG11cmRlcmVkIGEgZm9ybWVyIGFzc29jaWF0ZSBhbmQgdGhlbiByaXZhbCwgSXJmYW4gR29nYSwgaW4gRHViYWksIGJ1dCB3YXMgZnJlZWQgYWZ0ZXIgdHdvIGRheXMgZm9yICdsYWNrIG9mIGV2aWRlbmNlJy4NCjE5OTg6W0NvbXB1dGluZ11bUXVhbnR1bV0gUmVzZWFyY2hlcnMgYXQgSUJNLCBPeGZvcmQsIEJlcmtlbGV5LCBTdGFuZm9yZCwgYW5kIE1JVCBwcm9kdWNlZCBhIDItcXViaXQgY29tcHV0aW5nIHN5c3RlbS4NCjE5OTg6W3d3d10gV2lyZXNoYXJrIGlzIGEgZnJlZSBhbmQgb3Blbi1zb3VyY2UgcGFja2V0IGFuYWx5emVyLiBJdCBpcyB1c2VkIGZvciBuZXR3b3JrIHRyb3VibGVzaG9vdGluZywgYW5hbHlzaXMsIHNvZnR3YXJlIGFuZCBjb21tdW5pY2F0aW9ucyBwcm90b2NvbCBkZXZlbG9wbWVudCwgYW5kIGVkdWNhdGlvbi4gT3JpZ2luYWxseSBuYW1lZCBFdGhlcmVhbCwgdGhlIHByb2plY3Qgd2FzIHJlbmFtZWQgV2lyZXNoYXJrIGluIE1heSAyMDA2IGR1ZSB0byB0cmFkZW1hcmsgaXNzdWVzLg0KMTk5ODpbVVNdW0Vjb25vbXldRGF2aWQgUm9ja2VmZWxsZXIgU3IuIHdhcyBhd2FyZGVkIHRoZSBQcmVzaWRlbnRpYWwgTWVkYWwgb2YgRnJlZWRvbSBieSBQcmVzaWRlbnQgQmlsbCBDbGludG9uIGZvciBoaXMgd29yayBvbiBJbnRlcm5hdGlvbmFsIEV4ZWN1dGl2ZSBTZXJ2aWNlIENvcnBzLg0KMTk5ODpbRGVmXVtBdmlhdGlvbl0gVGhlIExvY2toZWVkIFNSLTcxIEJsYWNrYmlyZCBmbGV3IHNvIGhpZ2ggYW5kIHNvIGZhc3QgdGhhdCB0aGUgY3JldyBuZWVkZWQgcHJlc3N1cml6ZWQgc3BhY2Ugc3VpdHMgd2hlbiBmbHlpbmcgaXQuIEFuZCBpdCBpcyBzYWlkIHRoYXQgYXQgdGhlIG1heGltdW0gYWx0aXR1ZGUgb2YgaXQgaXQgd2FzIHBvc3NpYmxlIHRvIHNlZSB0aGUgY3VydmF0dXJlIG9mIHRoZSBlYXJ0aCwgd2hpY2ggcmVmZXJzIHRvIHRoaXMgcXVvdGUgYnkgQ29sb25lbCBBbGlzb246IOKAnE9uIGEgY2xlYXIgZGF5IHlvdSBjYW4gc2VlIGZvcmV2ZXLigKbigJ0uIFRoZSBzZXJ2aWNlIGNlaWxpbmcgb2YgODUsMDAwIGZlZXQgKDI1LDkwMG0pIG1lYW50IHRoYXQgaXQgd2FzIGFuIGV4Y2VsbGVudCBleHBlcmltZW50YWwgdW5pdCBmb3Igc3BhY2UgdHJhdmVscy4gVGhhdCwgY29tYmluZWQgd2l0aCB0aGUgZ3JlYXQgc3BlZWRzIG9mIGl0IHdhcyB0d28gb2YgdGhlIHJlYXNvbnMgd2h5IE5BU0EgZGVjaWRlZCB0byB0YWtlIG92ZXIgdGhlIGxhc3QgdHdvIEJsYWNrYmlyZHMgYWZ0ZXIgaXRzIHJldGlyZW1lbnQgZnJvbSB0aGUgQWlyIEZvcmNlIGluIDE5OTguIFRoaXMgbWVhbnMgdGhhdCB0aGUgd29ybGTigJlzIGZhc3Rlc3QgYWlyY3JhZnQgd2FzIGluIHNlcnZpY2UgZnJvbSAxOTY2IHVudGlsIE5BU0EgcmV0aXJlZCBpdHMgdHdvIHVuaXRzIGluIDE5OTksIGFuZCBtb3N0IG9mIHRoZSByZW1haW5pbmcgQmxhY2tiaXJkcyBhcmUgdG9kYXkgc3RhdGlvbmVkIGF0IG11c2V1bXMgb3IgbWlsaXRhcnkgYmFzZXMgYWNyb3NzIHRoZSBVUy4NCjE5OTg6SW4gMTk5OCwgR2F1dGFtIEFkYW5pLCBhbG9uZyB3aXRoIGhpcyBhc3NvY2lhdGUgU2hhbnRpbGFsIFBhdGVsLCB3YXMga2lkbmFwcGVkIGZvciByYW5zb20gaW4gQWhtZWRhYmFkLCBJbmRpYS4gVGhleSB3ZXJlIGFiZHVjdGVkIGF0IGd1bnBvaW50IGFmdGVyIGxlYXZpbmcgdGhlIEthcm5hdmF0aSBDbHViIGluIGEgY2FyLiBUaGUga2lkbmFwcGVycywgYWxsZWdlZGx5IGdhbmdzdGVycyBGYXpsdSBSZWhtYW4gYW5kIEJob2dpbGFsIERhcmppLCByZXBvcnRlZGx5IGRlbWFuZGVkIGEgcmFuc29tIG9mICQxLjUtMiBtaWxsaW9uLiBCb3RoIEFkYW5pIGFuZCBQYXRlbCB3ZXJlIHJlbGVhc2VkIGEgZGF5IGxhdGVyLCBidXQgaXQncyB1bmNsZWFyIGlmIHRoZSByYW5zb20gd2FzIHBhaWQuIA0KVGhlIGtpZG5hcHBpbmcgaW5jaWRlbnQgaGFwcGVuZWQgaW4gdGhlIG1pZC0xOTkwcywgYXJvdW5kIHRoZSB0aW1lIEFkYW5pJ3MgYnVzaW5lc3Mgc3VjY2Vzc2VzIHN0YXJ0ZWQgYXR0cmFjdGluZyB1bndhbnRlZCBhdHRlbnRpb24uIFRoZSBraWRuYXBwaW5nIHdhcyBhbGxlZ2VkbHkgY2FycmllZCBvdXQgYnkgRmF6bHUgUmVobWFuIGFuZCBCaG9naWxhbCBEYXJqaSwgYWxzbyBrbm93biBhcyAiTWFtYSIuIFRoZXkgd2VyZSBsYXRlciBhY3F1aXR0ZWQgZHVlIHRvIGxhY2sgb2YgZXZpZGVuY2UuIA0KVGhlIGFiZHVjdGlvbiBpcyBqdXN0IG9uZSBvZiB0aGUgY2hhbGxlbmdlcyBBZGFuaSBoYXMgZmFjZWQuIEhlIHdhcyBhbHNvIGNhdWdodCBpbiB0aGUgMjYvMTEgTXVtYmFpIHRlcnJvciBhdHRhY2tzIGF0IHRoZSBUYWogSG90ZWwuIE1vcmUgcmVjZW50bHksIGhlIGhhcyBmYWNlZCBhY2N1c2F0aW9ucyBvZiBicmliZXJ5IGFuZCBzZWN1cml0aWVzIGZyYXVkLiANCkFkYW5pIGFuZCBvdGhlcnMgd2VyZSBlc2NvcnRlZCBieSBzdGFmZiB0byB0aGUga2l0Y2hlbiBhbmQgdGhlbiB0aGUgYmFzZW1lbnQuIFRoZXkgc3BlbnQgdGhlIGVudGlyZSBuaWdodCBpbiBhIGhhbGwgd2FpdGluZyBmb3IgcmVzY3VlLiBBZGFuaSBsYXRlciB0b2xkIG5ld3MgY2hhbm5lbHMgdGhhdCBoZSBzYXcg4oCcZGVhdGggYXQgYSBkaXN0YW5jZSBvZiBqdXN0IDE1IGZlZXQu4oCdIEhlIHdhcyByZXNjdWVkIHRoZSBuZXh0IG1vcm5pbmcgYnkgc2VjdXJpdHkgZm9yY2VzLg0KMTk5ODpbRW52XVtEaXNhc3Rlcl0gRWFzdGVybiBJbmRpYSwgMTk5OCBCYW5nbGFkZXNoIGZsb29kOyA0ayBkZWF0aHMNCjE5OTg6W1dob11bUmVzZWFyY2hdW0NvbXB1dGluZ11bVGVjaF1bQ3VsdHVyZV0gSW50ZXJuZXQgRG93bmxvYWQgTWFuYWdlciAoSURNKSB3YXMgZGV2ZWxvcGVkIGJ5IFRvbmVjIEluYy4sIGFuIEFtZXJpY2FuIGNvbXBhbnkgdGhhdCBzdGFydGVkIHRoZSBwcm9qZWN0IGluIDE5OTggYW5kIHJlbGVhc2VkIHRoZSBzb2Z0d2FyZSBpbiAyMDAxLiBUb25lYyBJbmMuIGZvY3VzZXMgb24gbmV0d29yayBwcm9ncmFtbWluZyBhbmQgY3JlYXRlZCBJRE0gdG8gc3BlZWQgdXAgZG93bmxvYWRzIGJ5IHVzaW5nIGR5bmFtaWMgZmlsZSBzZWdtZW50YXRpb24sIGFjY2VsZXJhdGluZyBzcGVlZHMgYnkgdXAgdG8gOCB0aW1lcy4gDQoNCjE5OTk6NCBKYW51YXJ5IDE5OTk6IE5BU0Egb2ZmaWNpYWxseSByZWNvZ25pemVkIHRoZSBwb3NzaWJpbGl0eSB0aGF0IGxpZmUgb24gRWFydGggY29tZXMgZnJvbSBzcGFjZS4NCjE5IE1hcmNoIDE5OTk6IE5BU0Egc2NpZW50aXN0cyBhbm5vdW5jZWQgdGhhdCB0d28gbW9yZSBtZXRlb3JpdGVzIGhvbGQgZXZlbiBzdHJvbmdlciBmb3NzaWxpemVkIGV2aWRlbmNlIGZvciBwYXN0IGxpZmUgb24gTWFycy4NCjE5OTk6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEcyMCBvciBHcm91cCBvZiAyMCBpcyBhbiBpbnRlcmdvdmVybm1lbnRhbCBmb3J1bSBjb21wcmlzaW5nIDE5IHNvdmVyZWlnbiBjb3VudHJpZXMsIHRoZSBFdXJvcGVhbiBVbmlvbiwgYW5kIHRoZSBBZnJpY2FuIFVuaW9uLiBGb3VuZGVkOiAyNiBTZXB0ZW1iZXIgMTk5OTsgQ2hhaXJtYW4gKEluY3VtYmVudCk6IEN5cmlsIFJhbWFwaG9zYSwgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYQ0KMTk5OTogVGhlIHRlcm0gV2ktRmkgd2FzIGludmVudGVkIGJ5IEludGVyYnJhbmQgKGFuIGFtZXJpY2FuIGJyYW5kIGNvbnN1bHRhbmN5IGNvbXBhbnkpIGFzIGEgcHVuIHVwb24gdGhlIHdvcmQgaGktZmkuDQpXaS1GaSBBbGxpYW5jZSBmb3JtZWQgYXMgYSB0cmFkZSBhc3NvY2lhdGlvbiB0byBob2xkIHRoZSBXaS1GaSB0cmFkZW1hcmsgdW5kZXIgd2hpY2ggbW9zdCBwcm9kdWN0cyBhcmUgc29sZC4NCjE5OTk6IHRoZSB0ZXJtDQoxOTk5OiBJc2xhbWljIFN0YXRlIG9mIElyYXEgYW5kIHRoZSBMZXZhbnQgKGFsc28ga25vd24gYXMgdGhlIElzbGFtaWMgU3RhdGUgb2YgSXJhcSBhbmQgU3lyaWEsIElzbGFtaWMgU3RhdGUsIG9yIGNvbW1vbmx5LCBJU0lTKSBmb3VuZGVkIGFzIEphbWEnYXQgYWwtVGF3aGlkIHdhbC1KaWhhZCBieSBBYnUgTXVzYWIgYWwtWmFycWF3aSBIUSdkIGF0ICBBbC1SYXFxYWguDQoxOTk5IChBcHIgMTIpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBJIFdhbnQgSXQgVGhhdCBXYXkuDQoxOTk5IChBcHIgMTgpOiBDT05DRVJUIGJlY2FtZSBvcGVyYXRpb25hbC4gSXQgd2FzIGRldmVsb3BlZCB1c2luZyBjbGllbnQtc2VydmVyIG1vZGVsIGZvciBkaXN0cmlidXRlZCBjb21wdXRpbmcgaXMgYSB0b3RhbCBzb2x1dGlvbiB0byB0aGUgbmV0d29ya2luZyBvZiB0aGUgUFJTcy4gQWxsIHRoZSBmaXZlIHNpdGVzIGhhdmUgYmVlbiBpbnRlcm5ldC13b3JrZWQgb3ZlciBhIDY0IGticHMgbGluZSB1c2luZyByb3V0ZXJzLCBvbiBsZWFzZWQgY29tbXVuaWNhdGlvbiBsaW5lIGNvbm5lY3Rpb25zIGZyb20gRGVwYXJ0bWVudCBvZiBUZWxlY29tIChET1QpLg0KMTk5OTogQ3JlZGl0IGNhcmRzIGFjY2VwdGVkIGZvciBib29raW5nIHRpY2tldHMgYW5kIHJlc2VydmF0aW9ucyBpbiBzb21lIHN0YXRpb25zIChpbmNsdWRpbmcgTXVtYmFpIENTVCkuDQoxOTk5IChNYXkgMSk6W0Jvb2tdIFJvYmVydCBLaXlvc2FraSAmIFNoYXJvbiBMZWNodGVyJ3MgUmljaCBEYWQncyBDYXNoZmxvdyBRdWFkcmFudDogUmljaCBEYWQncyBHdWlkZSB0byBGaW5hbmNpYWwgRnJlZWRvbTsgUmljaCBEYWQncyBHdWlkZSB0byBJbnZlc3Rpbmc6IFdoYXQgdGhlIFJpY2ggSW52ZXN0IGluIFRoYXQgdGhlIFBvb3IgYW5kIE1pZGRsZSBDbGFzcyBEbyBOb3QhICgyMDAxLCBKYW4gMSk7IFRoZSBSZWFsIEJvb2sgb2YgUmVhbCBFc3RhdGU6IFJlYWwgRXhwZXJ0cy4gUmVhbCBTdG9yaWVzLiBSZWFsIExpZmUuICgyMDA5LCBNYXkgMTIpOyBSaWNoIEtpZCBTbWFydCBLaWQ6IEdpdmluZyBZb3VyIENoaWxkIGEgRmluYW5jaWFsIEhlYWQgU3RhcnQgKDIwMDEsIEphbiAxKTsgDQoxOTk5IChNYXkgMTgpOltNdXNpY10gTWlsbGVubml1bSBpcyB0aGUgdGhpcmQgc3R1ZGlvIGFsYnVtIChzZWNvbmQgaW4gdGhlIFVuaXRlZCBTdGF0ZXMpIGJ5IEFtZXJpY2FuIGJveSBiYW5kIEJhY2tzdHJlZXQgQm95cywgcmVsZWFzZWQgYnkgSml2ZSBSZWNvcmRzLg0KMTk5OSAoRnJpLCAyNCBEZWMpOiBJbmRpYW4gQWlybGluZXMgRmxpZ2h0IDgxNCBjb21tb25seSBrbm93biBhcyBJQyA4MTQgd2FzIGFuIEluZGlhbiBBaXJsaW5lcyBBaXJidXMgQTMwMCBlbiByb3V0ZSBmcm9tIFRyaWJodXZhbiBJbnRlcm5hdGlvbmFsIEFpcnBvcnQgaW4gS2F0aG1hbmR1LCBOZXBhbCB0byBJbmRpcmEgR2FuZGhpIEludGVybmF0aW9uYWwgQWlycG9ydCBpbiBEZWxoaSwgSW5kaWEgd2FzIGhpamFja2VkLiBIYXJrYXQtdWwtTXVqYWhpZGVlbiB3YXMgYWNjdXNlZCBvZiB0aGUgaGlqYWNraW5nLg0KMTk5OTogSVJDVEMNCjE5OTkgKEF1Zyk6IEJvb2tNeVNob3cNCjE5OTkgKFNlcCAxNCk6IFtHZW9Qb2xpdGljc10gVGhlIENvbmZlcmVuY2Ugb24gSW50ZXJhY3Rpb24gYW5kIENvbmZpZGVuY2UtQnVpbGRpbmcgTWVhc3VyZXMgaW4gQXNpYSAoQ0lDQSkgaXMgYW4gaW50ZXItZ292ZXJubWVudGFsIGZvcnVtIGZvciBlbmhhbmNpbmcgY29vcGVyYXRpb24gdG93YXJkcyBwcm9tb3RpbmcgcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYS4gSXQgaXMgYSBmb3J1bSBiYXNlZCBvbiB0aGUgcmVjb2duaXRpb24gdGhhdCB0aGVyZSBpcyBjbG9zZSBsaW5rIGJldHdlZW4gcGVhY2UsIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgaW4gQXNpYSBhbmQgaW4gdGhlIHJlc3Qgb2YgdGhlIHdvcmxkLiBUaGUga2V5IGlkZWEgb2YgdGhlIENvbmZlcmVuY2UgaXMgYmFzZWQgb24gdGhlIHByaW9yaXR5IG9mIHRoZSBpbmRpdmlzaWJpbGl0eSBvZiBzZWN1cml0eSwgam9pbnQgaW5pdGlhdGl2ZSBhbmQgbXV0dWFsbHkgYmVuZWZpY2lhbCBpbnRlcmFjdGlvbiBvZiBzbWFsbCBhbmQgbGFyZ2Ugc3RhdGVzLg0KMTk5OTogTm9ibGUgRWR1Y2F0aW9uIFNvY2lldHkncyBOb2JsZSBQdWJsaWMgU2Nob29sIChOUFMpLCBHYWpyYXVsYSBmb3VuZGVkIHdpdGggMjEzMDYyNyBhcyBpdHMgQ0JTRSBBZmZpbGlhdGlvbiBuby4NCjE5OTk6IGZpcnN0IC53bWEgZmlsZSBjcmVhdGVkDQoxOTk5OiBOYXBzdGVyIGZvdW5kZWQuDQoxOTk5IChEZWMgMTQpOltNdXNpY10gQmFja3N0cmVldCBCb3lzJyBTaG93IE1lIHRoZSBNZWFuaW5nIG9mIEJlaW5nIExvbmVseS4gDQoxOTk5OltNdXNpY10gRHIuIERyZSBmdC4gU25vb3AgRG9nZydzIFN0aWxsIEQuUi5FLg0KMTk5OTpbQ3VsdHVyZV0gVGhlIENpdHRhc2xvdyBvcmdhbml6YXRpb24gd2FzIGNyZWF0ZWQgYnkgUGFvbG8gU2F0dXJuaW5pLCB0aGUgZm9ybWVyIG1heW9yIG9mIEdyZXZlIGluIENoaWFudGksIEl0YWx5LiBTYXR1cm5pbmkgd2FzIGluc3BpcmVkIGJ5IENhcmxvIFBldHJpbmkgYW5kIGhpcyBTbG93IEZvb2QgbW92ZW1lbnQsIHN0YXJ0ZWQgaW4gdGhlIDE5ODBzIHRvIHByb3Rlc3QgdGhlIGZpcnN0IE1jRG9uYWxkJ3MgY2hhaW4gaW4gUm9tZS4gU2luY2UgdGhlbiwgdGhlIENpdHRhc2xvdyBtb3ZlbWVudCBoYXMgZ3Jvd24gYWNyb3NzIGZvdXIgY29udGluZW50cywgd2l0aCAyNjIgcGFydGljaXBhdGluZyB0b3ducyBhcyBvZiAyMDIwLiANCjE5OTk6W01hbmFnZW1lbnRdW0J1c2luZXNzXVtQc3ljaG9sb2d5XVtSZXNlYXJjaF0gRHVubmluZyBhbmQgS3J1Z2VyIEVmZmVjdDogRGF2aWQgRHVubmluZyBhbmQgSnVzdGluIEtydWdlciBwdWJsaXNoZWQgdGhlIGluaXRpYWwgc3R1ZHkgaW4gMTk5OSB1bmRlciB0aGUgdGl0bGUgIlVuc2tpbGxlZCBhbmQgVW5hd2FyZSBvZiBJdDogSG93IERpZmZpY3VsdGllcyBpbiBSZWNvZ25pemluZyBPbmUncyBPd24gSW5jb21wZXRlbmNlIExlYWQgdG8gSW5mbGF0ZWQgU2VsZi1Bc3Nlc3NtZW50cyIuDQoxOTk5OltSZXNlYXJjaF0gUmVzZWFyY2ggYnkgVVMgTmF0aW9uYWwgUmVzZWFyY2ggQ291bmNpbC4gV2F0ZXIgZnJvbSB1bmRlcmdyb3VuZCBzb3VyY2VzIG1heSBjb250YWluIHNpZ25pZmljYW50IGFtb3VudHMgb2YgcmFkb24gZGVwZW5kaW5nIG9uIHRoZSBzdXJyb3VuZGluZyByb2NrIGFuZCBzb2lsIGNvbmRpdGlvbnMsIHdoZXJlYXMgc3VyZmFjZSBzb3VyY2VzIGdlbmVyYWxseSBkbyBub3QuDQoxOTk5OltOU0VdIEluY29ycG9yYXRlZCBpbiAxOTk5LCBJUkNUQyBpcyBhIE1pbmkgUmF0bmEgKENhdGVnb3J5IDEsIENlbnRyYWwgUHVibGljIFNlY3RvciBFbnRlcnByaXNlcyApIGFuZCB0aGUgb25seSBjb21wYW55IGF1dGhvcml6ZWQgYnkgdGhlIEluZGlhbiBnb3Zlcm5tZW50IHRvIHByb3ZpZGUgb25saW5lIHJhaWx3YXkgdGlja2V0cywgY2F0ZXJpbmcgc2VydmljZXMsIGFuZCBwYWNrYWdlZCBkcmlua2luZyB3YXRlciBhdCByYWlsd2F5IHN0YXRpb25zIGFuZCB0cmFpbnMgaW4gSW5kaWEuDQoxOTk5OltNbnRuZ2ddW0Jvb2tdIFN0ZXZlIEhvdXNlIGlzIGEgd29ybGQtcmVub3duZWQgY2xpbWJlciwgbW91bnRhaW4gZ3VpZGUgYW5kIFBhdGFnb25pYSBhbWJhc3NhZG9yLCB3aWRlbHkgcmVnYXJkZWQgZm9yIGhpcyBjbGVhbiwgbGlnaHQtYW5kLWZhc3Qgc3R5bGUuIEhlIGhhcyBwdWJsaXNoZWQgYXJ0aWNsZXMgaW4gYSBudW1iZXIgb2YgcGVyaW9kaWNhbHMgaW5jbHVkaW5nOiBBbHBpbmlzdCwgUm9jayBhbmQgSWNlLCBDbGltYmluZywgVGhlIEFtZXJpY2FuIEFscGluZSBKb3VybmFsLCBHcmlwcGVkLCBDYW5hZGlhbiBBbHBpbmUgSm91cm5hbCwgQ2xpbWIsIFZlcnRpY2FsLCBNb250YWduZXMsIFJpc2ssIEFscCssIENhbXBvIEJhc2UsIERlc25pdmVsLCBhbmQgU3RpbGUgQWxwaW4uIEhpcyBlc3NheXMgaGF2ZSBiZWVuIHB1Ymxpc2hlZCBpbiBzZXZlcmFsIGJvb2tzIGluY2x1ZGluZzsgQ29udGFjdDogTW91bnRhaW4gQ2xpbWJpbmcgYW5kIEVudmlyb25tZW50YWwgVGhpbmtpbmc7IFNvbHRhcmksIGEgY29sbGVjdGlvbiBvZiBlc3NheXMgYWJvdXQgc29sbyBjbGltYmluZyBwdWJsaXNoZWQgaW4gSXRhbGlhbjsgQmVyZywgYSBHZXJtYW4gYm9vayBhYm91dCBjbGltYmluZyBpbiB0aGUgSGltYWxheWE7IGFuZCBhbiB1cGNvbWluZyBib29rIGFib3V0IE5hbmdhIFBhcmJhdCBlZGl0ZWQgYnkgUmVpbmhvbGQgTWVzc25lci4gSGUgaGFzIHdvcmtlZCBhcyBhIFBhdGFnb25pYSBhbHBpbmUgYW1iYXNzYWRvciBzaW5jZSAxOTk5LiBQdWJsaXNoZWQ6IFRyYWluaW5nIGZvciB0aGUgTmV3IEFscGluaXNtOiBBIE1hbnVhbCBmb3IgdGhlIENsaW1iZXIgYXMgQXRobGV0ZSBQYXBlcmJhY2sg4oCTIElsbHVzdHJhdGVkLCAzIEFwcmlsIDIwMTQNCjE5OTk6W01udG5nZ10gQ29ucmFkIEFua2VyIChib3JuIE5vdmVtYmVyIDI3LCAxOTYyKSBpcyBhbiBBbWVyaWNhbiByb2NrIGNsaW1iZXIsIG1vdW50YWluZWVyLCBhbmQgYXV0aG9yLiBIZSB3YXMgdGhlIHRlYW0gbGVhZGVyIG9mIFRoZSBOb3J0aCBGYWNlIGNsaW1iaW5nIHRlYW0gZm9yIDI2IHllYXJzIHVudGlsIDIwMTguWzJdIEluIDE5OTksIGhlIGxvY2F0ZWQgR2VvcmdlIE1hbGxvcnkncyBib2R5IG9uIEV2ZXJlc3QgYXMgYSBtZW1iZXIgb2YgYSBzZWFyY2ggdGVhbSBsb29raW5nIGZvciB0aGUgcmVtYWlucyBvZiB0aGUgQnJpdGlzaCBjbGltYmVyIHdobyB3YXMgbGFzdCBzZWVuIGluIDE5MjQuDQoxOTk5OlRoZSBQaXBpc3RyZWwgVmlydXMgZmxldyBmb3IgdGhlIGZpcnN0IHRpbWUgb24gQXVndXN0IDEwLCAxOTk5LiBQcm9kdWN0aW9uIGJlZ2FuIG9uIEphbnVhcnkgMjAsIDIwMDAuIFRoZSBkZXZlbG9wbWVudCBvZiB0aGUgc2hvcnQgd2luZyB2ZXJzaW9uIHN0YXJ0ZWQgaW4gMjAwNy4gVGhlIFZpcnVzIFNXIHByb2R1Y3Rpb24gc3RhcnRlZCBpbiAyMDA4LiBUaGUgVmlydXMgd29uIHRoZSBOQVNBIDIwMDcgUGVyc29uYWwgQWlyIFZlaGljbGUgKFBBVikgQ2hhbGxlbmdlIGFuZCB0aGUgMjAwOCBHZW5lcmFsIEF2aWF0aW9uIFRlY2hub2xvZ3kgKEdBVCkgQ2hhbGxlbmdlLg0KMTk5OTpbc2lsdmljc10gU3VzdGFpbmFibGUgUHJhY3RpY2VzOiBSZXNlYXJjaCBpbiB0aGUgMjB0aCBjZW50dXJ5IHZhbGlkYXRlZCB0aGF0IHNlY29uZC1ncm93dGggc3RhbmRzIGNvdWxkIGJlIHN1c3RhaW5hYmx5IG1hbmFnZWQgdGhyb3VnaCB0ZWNobmlxdWVzIGxpa2UgdGhlIHNlZWQgdHJlZSBtZXRob2QuIFRvZGF5LCBzaWx2aWN1bHR1cmUgZm9jdXNlcyBvbiBjb21wbGV4IHN0YW5kIHN0cnVjdHVyZXMsIGJhbGFuY2luZyBjb21tZXJjaWFsIGRlbWFuZCB3aXRoIGVudmlyb25tZW50YWwgc3Rld2FyZHNoaXAuIA0KDQoyMXN0IGNlbnR1cnkgQ0Ugc3RhcnRlZCBvbiAxc3QgSmFuIDIwMDEgQUQuDQoNCjIwMDBzOltSZXNlYXJjaF0gVGhlIGNsYWltIHRoYXQgIndlIGFyZSA2MCUgYmFuYW5hIiAob3Igc2hhcmUgNjAlIG9mIG91ciBETkEpIGlzIGEgcG9wdWxhciwgeWV0IG9mdGVuIG1pc2ludGVycHJldGVkLCBzdGF0aXN0aWMgdGhhdCBvcmlnaW5hdGVkIGZyb20gY29tcGFyaXNvbnMgb2YgcHJvdGVpbi1jb2RpbmcgZ2VuZXMsIGxpa2VseSBwb3B1bGFyaXplZCBpbiB0aGUgZWFybHkgMjAwMHMgZm9sbG93aW5nIHByZWxpbWluYXJ5IHN0dWRpZXMgb2YgdGhlIGJhbmFuYSBnZW5vbWUuIEl0IHJlZmVycyB0byBhYm91dCA2MCUgb2YgaHVtYW4gZ2VuZXMgaGF2aW5nIGEgcmVjb2duaXphYmxlIGNvdW50ZXJwYXJ0IGluIGJhbmFuYXMsIG5vdCA2MCUgb2Ygb3VyIHRvdGFsIEROQS4gDQpNYW55IG9mIHRoZSDigJxob3VzZWtlZXBpbmfigJ0gZ2VuZXMgdGhhdCBhcmUgbmVjZXNzYXJ5IGZvciBiYXNpYyBjZWxsdWxhciBmdW5jdGlvbiwgc3VjaCBhcyBmb3IgcmVwbGljYXRpbmcgRE5BLCBjb250cm9sbGluZyB0aGUgY2VsbCBjeWNsZSwgYW5kIGhlbHBpbmcgY2VsbHMgZGl2aWRlIGFyZSBzaGFyZWQgYmV0d2VlbiBtYW55IHBsYW50cyAoaW5jbHVkaW5nIGJhbmFuYXMpIGFuZCBhbmltYWxzLldoaWxlIDYwJSBvZiBnZW5lcyBoYXZlIGNvdW50ZXJwYXJ0cywgdGhlc2UgZXNzZW50aWFsIGdlbmVzIG1ha2UgdXAgb25seSBhIHNtYWxsIGZyYWN0aW9uIG9mIHRoZSB0b3RhbCBnZW5vbWU7IGh1bWFucyBhbmQgYmFuYW5hcyBhcmUgbm90IDYwJSBpZGVudGljYWwgb3ZlcmFsbC4gDQpUaGUgcGhyYXNlIGlzIGVzc2VudGlhbGx5IGEgc2ltcGxpZmllZCwgb2Z0ZW4tZXhhZ2dlcmF0ZWQsIHdheSBvZiBoaWdobGlnaHRpbmcgdGhhdCBhbGwgbGlmZSBzaGFyZXMgY29tbW9uIGFuY2VzdHJhbCBnZW5lcyBmb3IgYmFzaWMgY2VsbHVsYXIgcHJvY2Vzc2VzLiANCjIwMDBzOltNQkFdIFNob3VsZCBDb3N0IE1vZGVsaW5nOiBNb2Rlcm4gIlNob3VsZCBDb3N0IiBtb2RlbHMgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBpZGVhbCBjb3N0IG9mIGEgcHJvZHVjdCwgYWNjb3VudGluZyBmb3IgbGFib3IsIG1hdGVyaWFscywgYW5kIG92ZXJoZWFkLiBFbnZpcm9ubWVudGFsICYgU29jaWFsIEltcGFjdDogTW9kZXJuIENCQSBub3cgcm91dGluZWx5IGluY2x1ZGVzIGVudmlyb25tZW50YWwgYW5kIHNvY2lhbCBpbXBhY3RzIGluIGFkZGl0aW9uIHRvIGZpbmFuY2lhbCBvbmVzLiBTaGlmdCBmcm9tIExvY2FsIHRvIEdsb2JhbDogRWFybHksIGhpZ2hseSBsb2NhbCBhc3Nlc3NtZW50cyBldm9sdmVkIGludG8gbGFyZ2Utc2NhbGUsIG5hdGlvbmFsLCBhbmQgaW50ZXJuYXRpb25hbCBDQkEuIFJlZmluZW1lbnQgb2YgVGVjaG5pcXVlczogTW92aW5nIGZyb20gc2ltcGxlLCBzaW5nbGUtcGVyaW9kIG1vZGVscyB0byBjb21wbGV4LCBtdWx0aS1wZXJpb2Qgc2ltdWxhdGlvbnMuIEluY3JlYXNlZCBEYXRhIFVzZTogVGhlIGF2YWlsYWJpbGl0eSBvZiBsYXJnZSwgZ3JhbnVsYXIgZGF0YSBzZXRzIGhhcyBhbGxvd2VkIGZvciBtb3JlIHByZWNpc2UgYW5kIHJlbGlhYmxlIGFuYWx5c2lzLiANCjIwMDBzOltNbnRuZ2ddW0V4dHJlbWVdIEluIHRoZSBlYXJseSAyMDAwcywgRGlkaWVyIEJlcnRob2Qgd2FzIHRoZSBiZXN0IGNyYWNrIGNsaW1iZXIgaW4gdGhlIHdvcmxkLCB0aGVuIGhlIGRyb3BwZWQgb3V0IG9mIGNsaW1iaW5nIGFuZCBlc3NlbnRpYWxseSBkaXNhcHBlYXJlZCBmcm9tIHRoZSB3b3JsZC4NCjIwMDBzOltSZWFsdHldIEVhcmx5IDIwMDBzOiBSZWFsIGVzdGF0ZSB3YXMgaW4gaXRzIGVhcmx5IHN0YWdlcyBpbiBJbmRpYSwgd2l0aCBncmFkdWFsIGdyb3d0aCBhbmQgZGV2ZWxvcG1lbnQuIA0KMjAwMHM6VGVhbXdvcmsgaXMgbm93IGFuIGludGVncmFsIHBhcnQgb2Ygb3JnYW5pemF0aW9uYWwgc3RyYXRlZ3ksIHdpdGggYSBncmVhdGVyIGVtcGhhc2lzIG9uIGN1c3RvbWl6YXRpb24sIHBlcnNvbmFsaXphdGlvbiwgYW5kIHN0cmF0ZWdpYyBpbnRlZ3JhdGlvbiBvZiB0ZWFtLWJ1aWxkaW5nIHByYWN0aWNlcy4gVGhlIHJpc2Ugb2YgdGVjaG5vbG9neSBoYXMgYWxzbyBpbmZsdWVuY2VkIHRlYW13b3JrLCB3aXRoIHJlbW90ZSB3b3JrIGJlY29taW5nIG1vcmUgcHJldmFsZW50IGFuZCBuZXcgdG9vbHMgZW1lcmdpbmcgdG8gZmFjaWxpdGF0ZSBjb2xsYWJvcmF0aW9uLiANCg0KMjAwMDpbVVNdW0dlb1BvbGl0aWNzXSBvdmVydGhyb3cgb2YgU2xvYm9kYW4gTWlsb8WhZXZpxIcuIChVUydzIGludm9sdmVtZW50IGluIHJlZ2ltZSBjaGFuZ2UpDQoyMDAwOiBbR2VvUG9saXRpY3NdW01pbGl0YXJ5XVtFY29ub21pY3NdIFRoZSBVUyBEb2xsYXIgaG9sZHMgYSA3MiUgc2hhcmUgb2YgYWxsIGdsb2JhbCBjdXJyZW5jeSByZXNlcnZlcyBbWzE2OjQyXShodHRwOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dllKcmkxZU5SeWMmdD0xMDAyKV0uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdIDI2IEFwcmlsIDIwMDA6IHRoZSBHZXJtYW4gdGVhbSBvcGVyYXRpbmcgdGhlIG1hc3Mgc3BlY3Ryb21ldGVyIG9uIE5BU0EncyBTdGFyZHVzdCBtaXNzaW9uIGFubm91bmNlZCB0aGUgZGV0ZWN0aW9uIG9mIHZlcnkgbGFyZ2Ugb3JnYW5pYyBtb2xlY3VsZXMgaW4gaW50ZXJzdGVsbGFyIHNwYWNlLiBOb25iaW9sb2dpY2FsIHNvdXJjZXMgZm9yIG9yZ2FuaWMgbW9sZWN1bGVzIHNvIGxhcmdlIGFyZSBub3Qga25vd24uDQoyMDAwOltSZXNlYXJjaF1bU3BhY2VdMTkgT2N0b2JlciAyMDAwLCBhIHRlYW0gb2YgYmlvbG9naXN0cyBhbmQgYSBnZW9sb2dpc3QgYW5ub3VuY2VkIHRoZSByZXZpdmFsIG9mIGJhY3RlcmlhIHRoYXQgYXJlIDI1MCBtaWxsaW9uIHllYXJzIG9sZCwgc3RyZW5ndGhlbmluZyB0aGF0IGNhc2UgdGhhdCBiYWN0ZXJpYWwgc3BvcmVzIGNhbiBiZSBpbW1vcnRhbC4NCjEzIERlY2VtYmVyIDIwMDA6IGEgTkFTQSB0ZWFtIGRlbW9uc3RyYXRlZCB0aGF0IHRoZSBtYWduZXRvc29tZXMgaW4gTWFycyBtZXRlb3JpdGUgQUxIIDg0MDAxIGFyZSBiaW9sb2dpY2FsLg0KMjAwMDpbUmVzZWFyY2hdW1NwYWNlXSBNaWxlaWtvd3NreSBDLCBDdWNpbm90dGEgRkEsIFdpbHNvbiBKVywgR2xhZG1hbiBCLCBIb3JuZWNrIEcsIExpbmRlZ3JlbiBMLCBNZWxvc2ggSiwgUmlja21hbiBILCBWYWx0b25lbiBNLCBaaGVuZyBKUS4gTmF0dXJhbCB0cmFuc2ZlciBvZiB2aWFibGUgbWljcm9iZXMgaW4gc3BhY2UuIEljYXJ1cyAyMDAwLCAxNDU6Mzkx4oCTNDI3LiBbRE9JXSBbUHViTWVkXSBbR29vZ2xlIFNjaG9sYXJdDQoyMDAwOltTcGFjZVhdIFMvMjAwMCAoOTApIDEgTW9vbiBEaXNjb3ZlcmVyOiBXaWxsaWFtIEouIE1lcmxpbmUgT3JiaXRzOiA5MCBBbnRpb3BlIEFic29sdXRlIG1hZ25pdHVkZTogOS4wMg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gZGVtb25zdHJhdGVkIFNob3LigJlzIGFsZ29yaXRobSBvbiBhIDUtcXViaXQgTk1SIHF1YW50dW0gY29tcHV0ZXIsIGZhY3RvcmluZyB0aGUgbnVtYmVyIDE1Lg0KMjAwMDogQXQgYWdlIDE0IGFuZCBpbiBjbGFzcyA4dGgsIEFhcm9uIFN3YXJ0eiBiZWNhbWUgYSBtZW1iZXIgb2YgdGhlIHdvcmtpbmcgZ3JvdXAgdGhhdCBhdXRob3JlZCB0aGUgUlNTIDEuMCB3ZWIgc3luZGljYXRpb24gc3BlY2lmaWNhdGlvbi4NCjIwMDA6IE1ha2VteVRyaXANCjIwMDAgKEphbiAxNCk6W0phY2tdIEthaG8gTmFhLi4uIFB5YWFyIEhhaQ0KMjAwMCAoRmViKTogSW5kaWFuIFJhaWx3YXlzIHdlYiBzaXRlIGkuZS4gaHR0cDovL2luZGlhbnJhaWx3YXlzLmdvdi5pbi8gd2FzIGRlcGxveWVkIGJ5IENSSVMuDQoyMDAwIChNYXIpOltCb29rXSBNYWxjb2xtIEdsYWR3ZWxsJ3MgZGVidXQgYm9vaywgVGhlIFRpcHBpbmcgUG9pbnQ6IEhvdyBMaXR0bGUgVGhpbmdzIENhbiBNYWtlIGEgQmlnIERpZmZlcmVuY2UuIA0KQmxpbms6IFRoZSBQb3dlciBvZiBUaGlua2luZyBXaXRob3V0IFRoaW5raW5nICgyMDA1LCBKYW4gMTEpOyANCk91dGxpZXJzOiBUaGUgU3Rvcnkgb2YgU3VjY2VzcyAoMjAwOCwgTm92IDE4KTsgDQpXaGF0IHRoZSBEb2cgU2F3OiBBbmQgT3RoZXIgQWR2ZW50dXJlcyAoMjAwOSwgT2N0IDIwKTsgDQpEYXZpZCBhbmQgR29saWF0aDogVW5kZXJkb2dzLCBNaXNmaXRzLCBhbmQgdGhlIEFydCBvZiBCYXR0bGluZyBHaWFudHMgKDIwMTMsIE9jdCAxKQ0KVGFsa2luZyB0byBTdHJhbmdlcnM6IFdoYXQgV2UgU2hvdWxkIEtub3cgYWJvdXQgdGhlIFBlb3BsZSBXZSBEb24ndCBLbm93ICgyMDE5KQ0KMjAwMCAoQXByIDEpOltCb29rXSBSb2JlcnQgS2l5b3Nha2kgJiBTaGFyb24gTGVjaHRlcidzIFJpY2ggRGFkIFBvb3IgRGFkLg0KMjAwMCAoQXByIDEpOltUZWNobm9sb2d5XVtSZXNlYXJjaF0gIldoeSBUaGUgRnV0dXJlIERvZXNuJ3QgTmVlZCBVcyIgaXMgYW4gYXJ0aWNsZSB3cml0dGVuIGJ5IEJpbGwgSm95IGluIHRoZSBBcHJpbCAyMDAwIGlzc3VlIG9mIFdpcmVkIG1hZ2F6aW5lLiBJbiB0aGUgYXJ0aWNsZSwgaGUgYXJndWVzIHRoYXQgIk91ciBtb3N0IHBvd2VyZnVsIDIxc3QtY2VudHVyeSB0ZWNobm9sb2dpZXPigJRyb2JvdGljcywgZ2VuZXRpYyBlbmdpbmVlcmluZywgYW5kIG5hbm90ZWNo4oCUYXJlIHRocmVhdGVuaW5nIHRvIG1ha2UgaHVtYW5zIGFuIGVuZGFuZ2VyZWQgc3BlY2llcy4iIA0KMjAwMCAoSnVuIDI2KTpbTXVzaWNdICJZZWxsb3ciIGlzIGEgc29uZyBieSB0aGUgQnJpdGlzaCByb2NrIGJhbmQgQ29sZHBsYXkuIFRoZSBiYW5kIHdyb3RlIHRoZSBzb25nIGFuZCBjby1wcm9kdWNlZCBpdCB3aXRoIEJyaXRpc2ggcmVjb3JkIHByb2R1Y2VyIEtlbiBOZWxzb24gZm9yIHRoZWlyIGRlYnV0IGFsYnVtLCBQYXJhY2h1dGVzICgyMDAwKS4gVGhlIHNvbmcgd2FzIHJlY29yZGVkIGluIE1hcmNoIDIwMDAgYW5kIHJlbGVhc2VkIG9uIDI2IEp1bmUgdGhhdCBzYW1lIHllYXIuDQoyMDAwIChTZXApOiBBbWF6b24ncyBKZWZmIEJlem9zIGZvdW5kZWQuDQoyMDAwIChTZXApOltDcmltZV1bSW5kaWFdIENoaG90YSBTaGFrZWVsJ3MgYXR0YWNrIG9uIFJhamFuIGluIGhpcyBCYW5na29rIGhvdGVsIHJvb20uDQoyMDAwIChTZXApOiBSYWlsVGVsIENvcnBvcmF0aW9uIG9mIEluZGlhIEx0ZC4gZm91bmRlZCBhbmQgSFEnZCBhdCAxNDMsIEluc3RpdHV0aW9uYWwgQXJlYSwgU2VjdG9yLTQ0LCBHdXJnYW9uLCBIYXJ5YW5hLCBJbmRpYS4gSXQgaXMgYSBNaW5pcmF0bmEgZW50ZXJwcmlzZSBvZiBHb3Zlcm5tZW50IG9mIEluZGlhIGZvY3VzaW5nIG9uIHByb3ZpZGluZyBicm9hZGJhbmQgYW5kIFZQTiBzZXJ2aWNlcy4NCjIwMDAgKFNlcCAxNyk6IFtHZW9Qb2xpdGljc10gVGhlIGlkZWEgb2YgYW4gQXNpYSBDb29wZXJhdGlvbiBEaWFsb2d1ZSAoQUNEKSB3YXMgcmFpc2VkIGF0IHRoZSBGaXJzdCBJbnRlcm5hdGlvbmFsIENvbmZlcmVuY2Ugb2YgQXNpYW4gUG9saXRpY2FsIFBhcnRpZXMgKGhlbGQgaW4gTWFuaWxhIGJldHdlZW4gMTfigJMyMCBTZXB0ZW1iZXIgMjAwMCkgYnkgU3VyYWtpYXJ0IFNhdGhpcmF0aGFpLCB0aGVuIGRlcHV0eSBsZWFkZXIgb2YgdGhlIG5vdyBkZWZ1bmN0IFRoYWkgUmFrIFRoYWkgUGFydHksIG9uIGJlaGFsZiBvZiBoaXMgcGFydHkgbGVhZGVyLCBUaGFrc2luIFNoaW5hd2F0cmEsIHRoZW4gUHJpbWUgTWluaXN0ZXIgb2YgVGhhaWxhbmQuIEl0IHdhcyBzdWdnZXN0ZWQgdGhhdCBBc2lhIGFzIGEgY29udGluZW50IHNob3VsZCBoYXZlIGl0cyBvd24gZm9ydW0gdG8gZGlzY3VzcyBBc2lhLXdpZGUgY29vcGVyYXRpb24uIEFmdGVyd2FyZHMsIHRoZSBpZGVhIG9mIHRoZSBBQ0Qgd2FzIGZvcm1hbGx5IHB1dCBmb3J3YXJkIGR1cmluZyB0aGUgMzR0aCBBU0VBTiBGb3JlaWduIE1pbmlzdGVycyBNZWV0aW5nIGluIEhhbm9pLCAyM+KAkzI0IEp1bHkgMjAwMSBhbmQgYXQgdGhlIEFTRUFOIEZvcmVpZ24gTWluaXN0ZXJzIFJldHJlYXQgaW4gUGh1a2V0LCAyMOKAkzIxIEZlYnJ1YXJ5IDIwMDIuDQoyMDAwIChPY3QgNCk6W011c2ljXSBGb3JtZWQgaW4gMTk5NiwgTGlua2luIFBhcmsgcm9zZSB0byBpbnRlcm5hdGlvbmFsIGZhbWUgd2l0aCB0aGVpciBkZWJ1dCBzdHVkaW8gYWxidW0sIEh5YnJpZCBUaGVvcnkuIEZvdXIgc2luZ2xlcyB3ZXJlIHJlbGVhc2VkIGZyb20gSHlicmlkIFRoZW9yeTogIk9uZSBTdGVwIENsb3NlciIsICJJbiB0aGUgRW5kIiwgIkNyYXdsaW5nIiBhbmQgIlBhcGVyY3V0IiwgYWxsIG9mIHRoZW0gYmVpbmcgcmVzcG9uc2libGUgZm9yIGxhdW5jaGluZyBMaW5raW4gUGFyayBpbnRvIG1haW5zdHJlYW0gcG9wdWxhcml0eS4gV2hpbGUgIkluIHRoZSBFbmQiIHdhcyB0aGUgbW9zdCBzdWNjZXNzZnVsIG9mIHRoZSBmb3VyLCBhbGwgb2YgdGhlIHNpbmdsZXMgaW4gdGhlIGFsYnVtIHJlbWFpbiBzb21lIG9mIHRoZSBiYW5kJ3MgbW9zdCBzdWNjZXNzZnVsIHNvbmdzIHRvIGRhdGUuDQoyMDAwIChOb3YgOSk6IGZvcm1hdGlvbiBvZiBVdHRhcmFraGFuZCBhcyBVdHRhcmFuY2hhbCAyMDAwIChKdW4gOSk6IEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQWN0LCAyMDAwLiBUaGUgYmlsbCB3YXMgcGFzc2VkIGluIHRoZSBidWRnZXQgc2Vzc2lvbiBvZiAyMDAwIGFuZCBzaWduZWQgYnkgUHJlc2lkZW50IEsuIFIuIE5hcmF5YW5hbiBvbiA5IE1heSAyMDAwLiBUaGUgYmlsbCB3YXMgZmluYWxpc2VkIGJ5IGdyb3VwIG9mIG9mZmljaWFscyBoZWFkZWQgYnkgdGhlbiBNaW5pc3RlciBvZiBJbmZvcm1hdGlvbiBUZWNobm9sb2d5LCBQcmFtb2QgTWFoYWphbi4NCjIwMDA6IGZvcm1hdGlvbiBvZg0KMjAwMDogSmFpc2gtZS1Nb2hhbW1lZCAobGl0ZXJhbGx5ICJUaGUgQXJteSBvZiBNdWhhbW1hZCIsIEplTSkgZm91bmRlZCBhdCBCYWhhd2FscHVyLCBQdW5qYWIsIFBha2lzdGFuLg0KMjAwMDogQ2hpbmEncyBCZWlEb3UgbmF2aWdhdGlvbiB0ZXN0IHN5c3RlbSBzdGFydHMuDQoyMDAwOiBGaXNlcnYgaGFkIGFjcXVpcmVkIG1vcmUgdGhhbiA5MCBidXNpbmVzc2VzLiBUaGUgbnVtYmVyIG9mIGVtcGxveWVlcyBncmV3IGZyb20gMjY0IHRvIDE0LDAwMC4gRmlzZXJ2IHdhcyBhbiBpbmR1c3RyeSBsZWFkZXIsIHdpdGggcmV2ZW51ZSB0aGF0IGluY3JlYXNlZCBmcm9tICQyMSBtaWxsaW9uIHRvICQxLjQgYmlsbGlvbiBpbiAxNSB5ZWFycy4NCjIwMDAgKERlYyA4KTpbR2FtaW5nXSBQcm9qZWN0IEkuRy5JLiBpcyBhIHRhY3RpY2FsIGZpcnN0LXBlcnNvbiBzaG9vdGVyIHZpZGVvIGdhbWUuIEl0IHdhcyBkZXZlbG9wZWQgYnkgSW5uZXJsb29wIFN0dWRpb3MgYW5kIHJlbGVhc2VkIGluIERlY2VtYmVyIDIwMDAgYnkgRWlkb3MgSW50ZXJhY3RpdmUuIFRoZSBnYW1lIHJlY2VpdmVkIG1peGVkIHJldmlld3MgZHVlIHRvIHNob3J0Y29taW5ncyBpbmNsdWRpbmcgYSBwb29ybHkgcHJvZ3JhbW1lZCBBLkkuLCBsYWNrIG9mIGEgbWlkLWdhbWUgc2F2ZSBvcHRpb24sIGFuZCB0aGUgbGFjayBvZiBtdWx0aXBsYXllciBmZWF0dXJlcy4gSG93ZXZlciBpdCB3YXMgcHJhaXNlZCBmb3IgaXRzIHNvdW5kIGRlc2lnbiBhbmQgZ3JhcGhpY3MsIHRoYW5rcyBpbiBwYXJ0IHRvIGl0cyB1c2Ugb2YgYSBwcm9wcmlldGFyeSBnYW1lIGVuZ2luZSB0aGF0IHdhcyBwcmV2aW91c2x5IHVzZWQgaW4gSW5uZXJsb29wJ3MgSm9pbnQgU3RyaWtlIEZpZ2h0ZXIuDQoyMDAwIChEZWMgMjEpOltKYWNrXSBSYWp1IENoYWNoYSByZWxlYXNlZC4NCjIwMDA6IFtCdXNpbmVzc11bRmluYW5jZV1bQ29ycG9yYXRlXVtJbmRpYV0gUklMIHBpbG90ZWQgd29ybGQncyBsYXJnZXN0IHBldHJvbGV1bSByZWZpbmVyeSBhdCBKYW1uYWdhciwgR3VqYXJhdCwgcmVmaW5pbmcgMS4yNE1uIGJhcnJlbHMvZGF5Lg0KMjAwMDpbQ3JpbWVdW0luZGlhXSBQb2xpY2UgZW5jb3VudGVycyBpbiBNdW1iYWkuIE1vc3QgY3JpbWluYWxzIGZsZWVpbmcgdG8gQ2FsY3VsdHRhLiBBZnRhYiBCaGF0a2kgZGVzdGFiaWxpc2UgdGhlIGVjb25vbXkgYnkgc3ByZWFkaW5nIGZha2UgY3VycmVuY3kgbm90ZXMgcHJpbnRlZCBieSBJU0kgZnVuY3Rpb25hcmllcywgYW5kIHR3bywgc2VuZCBtZXJjZW5hcmllcyB0byBjb25kdWN0IGFiZHVjdGlvbnMgYW5kIHRlcnJvcmlzdCBhdHRhY2tzLg0KMjAwMDpbQ29tcHV0aW5nXVtRdWFudHVtXSBUZWNobmljYWwgVW5pdmVyc2l0eSBvZiBNdW5pY2ggKDUgcXViaXQpOyBMb3MgQWxhbW9zIE5hdGlvbmFsIExhYiAoNyBxdWJpdHMpDQoyMDAwOkluIDIwMDAsIFRhdGEgVGVhIGFjcXVpcmVkIHRoZSBUZXRsZXkgVGVhIENvbXBhbnkgZm9yICQ0MDcgbWlsbGlvbi4gT3RoZXIgbm90YWJsZSBhY3F1aXNpdGlvbnMgaW5jbHVkZSBOYXRTdGVlbCAoMjAwNCksIEJydW5uZXIgTW9uZCAoMjAwNSksIGFuZCBFaWdodCBPJ0Nsb2NrIENvZmZlZSAoMjAwNikuIA0KMjAwMDogQmlybGEgYWNxdWlyZWQgSW5kaWFuIEFsdW1pbnVtIENvbXBhbnkgKElOREFMKS4gDQoyMDAwOiBTYXR5YSBOYXJheWFuYSBHb2Vua2Egd29ya2VkIGFzIGFuIGludGVybmF0aW9uYWwgYnVzaW5lc3NtYW4gYmFzZWQgaW4gTXlhbm1hciBhbmQgSW5kaWEgZm9yIGEgbGFyZ2UgcGFydCBvZiBoaXMgbGlmZS4gSGUgd2FzIGEga2V5bm90ZSBzcGVha2VyIG9uIHRoZSBzdWJqZWN0IG9mIFNwaXJpdHVhbGl0eSBpbiBCdXNpbmVzcyBhdCB0aGUgMzB0aCBXb3JsZCBFY29ub21pYyBGb3J1bSBpbiBEYXZvcywgU3dpdHplcmxhbmQgYmV0d2VlbiAyNiBKYW4gYW5kIDIgRmViIDIwMDAuIFR3byB5ZWFycyBsYXRlciBoZSBjb25kdWN0ZWQgdGhlIGZpcnN0IDEwLWRheSBjb3Vyc2UgaW4gVmlwYXNzYW5hIE1lZGl0YXRpb24gZXNwZWNpYWxseSBmb3IgYnVzaW5lc3MgZXhlY3V0aXZlcyBhbmQgZ292ZXJubWVudCBvZmZpY2lhbHMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAyMjUgeWVhcnMgb2YgSW5kZXBlbmRlbnQgVVNBIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIA0KDQoyMDAxOltVU11bR2VvUG9saXRpY3NdIGludmFzaW9uIG9mIEFmZ2hhbmlzdGFuLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMjAwMTpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgU2hhbmdoYWkgQ29vcGVyYXRpb24gT3JnYW5pc2F0aW9uIChTQ08pIGlzIGEgRXVyYXNpYW4gcG9saXRpY2FsLCBlY29ub21pYywgaW50ZXJuYXRpb25hbCBzZWN1cml0eSBhbmQgZGVmZW5jZSBvcmdhbml6YXRpb24gb2YgdGVuIG1lbWJlciBzdGF0ZXMuIEl0IHdhcyBlc3RhYmxpc2hlZCBpbiAyMDAxIGJ5IHRoZSBQZW9wbGUncyBSZXB1YmxpYyBvZiBDaGluYSwgS2F6YWtoc3RhbiwgS3lyZ3l6c3RhbiwgUnVzc2lhLCBhbmQgVGFqaWtpc3RhbiBhbmQgVXpiZWtpc3Rhbi4gSW4gSnVuZSAyMDE3LCBpdCBleHBhbmRlZCB0byBlaWdodCBzdGF0ZXMsIHdpdGggSW5kaWEgYW5kIFBha2lzdGFuLiBJcmFuIGpvaW5lZCB0aGUgZ3JvdXAgaW4gSnVseSAyMDIzLCBhbmQgQmVsYXJ1cyBpbiBKdWx5IDIwMjQuIFNldmVyYWwgY291bnRyaWVzIGFyZSBlbmdhZ2VkIGFzIG9ic2VydmVycyBvciBkaWFsb2d1ZSBwYXJ0bmVycy4gRm91bmRlcnM6IENoaW5hLCBSdXNzaWEsIEthemFraHN0YW4sIFV6YmVraXN0YW4sIEt5cmd5enN0YW4sIFRhamlraXN0YW47IEhlYWRxdWFydGVyczogQmVpamluZywgQ2hpbmE7IEZvdW5kZWQ6IDE1IEp1bmUgMjAwMQ0KMjAwMTpbQnVzaW5lc3NdIDIwMDHigJMyMDA1OiBIRlQgZXhlY3V0aW9uIHRpbWVzIGRlY3JlYXNlZCBmcm9tIHNldmVyYWwgc2Vjb25kcyB0byBtaWxsaXNlY29uZHMuIChIRlQpDQoyMDAxOltDb21wdXRpbmddW1F1YW50dW1dICBJQk0gaW1wbGVtZW50ZWQgR3JvdmVy4oCZcyBhbGdvcml0aG0gb24gYSA3LXF1Yml0IE5NUiBxdWFudHVtIGNvbXB1dGVyLCBmaW5kaW5nIGEgbWFya2VkIGl0ZW0gaW4gYSBkYXRhYmFzZSBvZiA0IGVudHJpZXMuDQoyMDAxOiBMaWZlIG9mIFBpIGlzIGEgQ2FuYWRpYW4gcGhpbG9zb3BoaWNhbCBub3ZlbCBieSBZYW5uIE1hcnRlbCBwdWJsaXNoZWQuIFRoZSBwcm90YWdvbmlzdCBpcyBQaXNjaW5lIE1vbGl0b3IgIlBpIiBQYXRlbCwgYW4gSW5kaWFuIGJveSBmcm9tIFBvbmRpY2hlcnJ5IHdobyBleHBsb3JlcyBpc3N1ZXMgb2Ygc3Bpcml0dWFsaXR5IGFuZCBtZXRhcGh5c2ljcyBmcm9tIGFuIGVhcmx5IGFnZS4gSGUgc3Vydml2ZXMgMjI3IGRheXMgYWZ0ZXIgYSBzaGlwd3JlY2sgd2hpbGUgc3RyYW5kZWQgb24gYSBsaWZlYm9hdCBpbiB0aGUgUGFjaWZpYyBPY2VhbiB3aXRoIGEgQmVuZ2FsIHRpZ2VyIHdoaWNoIHJhaXNlcyBxdWVzdGlvbnMgYWJvdXQgdGhlIG5hdHVyZSBvZiByZWFsaXR5IGFuZCBob3cgaXQgaXMgcGVyY2VpdmVkIGFuZCB0b2xkLjtTZXZlbiBTdG9yaWVzICgxOTkzKQ0KMjAwMTpbQ3JpbWVdW0luZGlhXSBDaGhvdGEgUmFqYW4ncyBhc3NvY2lhdGVzIHRyYWNrZWQgZG93biBhbmQgc2hvdCBkZWFkIGhvdGVsaWVyIFZpbm9kIGluIE11bWJhaSwgYXMgd2VsbCBhcyBTdW5pbCBTb2FucyDigJMgYW5vdGhlciBEYXdvb2QgYXNzb2NpYXRlLg0KMjAwMSAoSmFuIDEpOltCb29rXSBHcmVnIE1jS2Vvd24ncyBFc3NlbnRpYWxpc206IFRoZSBEaXNjaXBsaW5lZCBQdXJzdWl0IG9mIExlc3MNCjIwMDEgKEphbiAxKTpbQm9va10gQnJpYW4gVHJhY3kncyBFYXQgVGhhdCBGcm9nIQ0KMjAwMTogVGhlIEFyZHVpbm8gcHJvamVjdCBzdGFydGVkIGF0IHRoZSBJbnRlcmFjdGlvbiBEZXNpZ24gSW5zdGl0dXRlIEl2cmVhIChJRElJKSBpbiBJdnJlYSwgSXRhbHkuIEF0IHRoYXQgdGltZSwgdGhlIHN0dWRlbnRzIHVzZWQgYSBCQVNJQyBTdGFtcCBtaWNyb2NvbnRyb2xsZXIgYXQgYSBjb3N0IG9mICQxMDAsIGEgY29uc2lkZXJhYmxlIGV4cGVuc2UgZm9yIG1hbnkgc3R1ZGVudHMuDQoyMDAxIChBcHIgNHRoKTogQ2hhcmxlcyBNLiBWZXN0LCB0aGUgdGhlbiBQcmVzaWRlbnQgb2YgTUlUIGFubm91bmNlZCBPcGVuQ291cnNlV2FyZSAoT0NXKSBwdWJsaWNpemluZyBhbGwgb2YgaXRzIDIsMDAwIGNvdXJzZXMgIGF0IHRoZSBlc3RpbWF0ZWQgY29zdCBvZiAkMTAwIG1pbGxpb24gKG9uIGFuIGF2Zy4sIGEgTUlUIHN0dWRlbnRzIHBheXMgYXJvdW5kICQyNiwwMDAgYXMgb2ZmbGluZSB0dWl0aW9uIGZlZSkNCjIwMDE6IFVTIGludmFkZWQgQWZnaGFuaXN0YW4gaW4gcmVzcG9uc2UgdG8gOS8xMSBhdHRhY2tzLiBPZmZpY2lhbGx5LCBJdCBoYXMgYmVjb21lIHRoZSBsb25nZXN0IHdhciBpbiBBbWVyaWNhbiBoaXN0b3J5Lg0KMjAwMTogaVBvZCBieSBUb255IEZhZGVsbA0KMjAwMSAoSnVuIDE1KTpbSmFja10gR2FkYXI6IEVrIFByZW0gS2F0aGE7IExhZ2FhbjogT25jZSBVcG9uIGEgVGltZSBpbiBJbmRpYQ0KMjAwMSAoU2VwIDExKTogOS8xMSBUZXJyb3Jpc3QgYXR0YWNrcy4gVGhlIFNlcHRlbWJlciAxMSBvciA5LzExLCBhdHRhY2tzIHdlcmUgYSBzZXJpZXMgb2YgZm91ciBjb29yZGluYXRlZCB0ZXJyb3Jpc3QgYXR0YWNrcyBieSB0aGUgSXNsYW1pYyB0ZXJyb3Jpc3QgZ3JvdXAgYWwtUWFlZGEgb24gdGhlIFVuaXRlZCBTdGF0ZXMgb24gdGhlIG1vcm5pbmcgb2YgVHVlc2RheSwgU2VwIDExLiBUaGUgbG9zcyBvZiBsaWZlIHdhcyBlc3RpbWF0ZWQgYXQganVzdCB1bmRlciAzLDAwMC4gVGhlIGV2ZW50IGNoYW5nZWQgQW1lcmljYW4gZm9yZWlnbiBwb2xpY3kuIEl0IHdhcyBhIG1vdGl2YXRpbmcgZmFjdG9yIGJlaGluZCB0aGUgY29udHJvdmVyc2lhbCBpbnZhc2lvbiBvZiBJcmFxIGFuZCBsZWQgdG8gYSDigJh3YXIgb24gdGVycm9y4oCZIHN5bWJvbGlzZWQgYnkgR3VhbnRhbmFtbyBCYXkgYW5kIGEgZGViYXRlIG92ZXIgdGhlIGp1c3RpZmljYXRpb24gb2YgdG9ydHVyZS4NCjIwMDEgKE9jdCA3KTpbR2VvUG9saXRpY3NdIFVuaXRlZCBTdGF0ZXMgaW52YXNpb24gb2YgQWZnaGFuaXN0YW46IEluIGxhdGUgMjAwMSwgdGhlIFVuaXRlZCBTdGF0ZXMgYW5kIGl0cyBjbG9zZSBhbGxpZXMgaW52YWRlZCBBZmdoYW5pc3RhbiBhbmQgdG9wcGxlZCB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50LiBUaGUgaW52YXNpb24ncyBzdGF0ZWQgYWltcyB3ZXJlIHRvIGRpc21hbnRsZSBhbC1RYWVkYSwgd2hpY2ggaGFkIGV4ZWN1dGVkIHRoZSBTZXB0ZW1iZXIgMTEgYXR0YWNrcywgYW5kIHRvIGRlbnkgaXQgYSBzYWZlIGJhc2Ugb2Ygb3BlcmF0aW9ucyBpbiBBZmdoYW5pc3RhbiBieSByZW1vdmluZyB0aGUgVGFsaWJhbiBnb3Zlcm5tZW50IGZyb20gcG93ZXIuIERlYyA3LCAyMDAxIG9ud2FyZCBzdGFydGVkIFdhciBpbiBBZmdoYW5pc3Rhbi4NCjIwMDEgKE9jdCAxNik6W0Jvb2tdIE1jS2luc2V5IFJlc2VhcmNoZXIgSmFtZXMgQy4gQ29sbGlucycgR29vZCBUbyBHcmVhdDogV2h5IFNvbWUgQ29tcGFuaWVzIE1ha2UgdGhlIExlYXAuLi5BbmQgT3RoZXJzIERvbid0OyANCjIwMDEgKE5vdik6W0NyaW1lXVtJbmRpYV0gQWJkdWwgR2FmZmFyIGFsaWFzIENoaWtuYSBHYWZmYXIgY2F1Z2h0IGJ5IHRoZSBkZXRlY3RpdmUgZGVwYXJ0bWVudCBpbiBDYWxjdXR0YSANCjIwMDEgKEphbiAyKTogVGhlIG5vcnRoZXJuIGVsZWN0cmljYWwgZ3JpZCBjb2xsYXBzZWQgaW4gSW5kaWEuIEEgZmF1bHQgaW4gdGhlIHRyYW5zbWlzc2lvbiBzeXN0ZW0gaW4gdGhlIHN0YXRlIG9mIFV0dGFyIFByYWRlc2ggbGVkIHRvIGNhc2NhZGluZyBmYWlsdXJlIHRocm91Z2hvdXQgbm9ydGhlcm4gSW5kaWEgYWZmZWN0aW5nIDIzIGNyb3JlIHJlc2lkZW50cy4NCjIwMDE6IElWUlMgKCdJbnRlcmFjdGl2ZSBWb2ljZSBSZXNwb25zZSBTeXN0ZW0nKSBmb3IgdGVsZXBob25pYyBlbnF1aXJpZXMgYWJvdXQgdHJhaW5zIGludHJvZHVjZWQgaW4gc29tZSBzdGF0aW9ucy4NCjIwMDE6IE1hZGVFYXN5IGluY29ycG9yYXRlZCBhdCA0NC1BLzEsIEthbHUgU2FyYWksIE5lYXIgSGF1eiBLaGFzIE1ldHJvIFN0YXRpb24sIE5ldyBEZWxoaS0xMTAwMTYNCjIwMDE6IEFjYyB0byAyMDAxIGNlbnN1cywgMzAgbGFraHMgd2VyZSBpbW1pZ3JhdGVkIHRvIEluZGlhIGZyb20gQmFuZ2xhZGVzaCBhbG9uZSwgZm9sbG93ZWQgYnkgMTAgbGFraHMgZnJvbSBQYWtpc3RhbiBhbmQgNiBsYWtocyBmcm9tIE5lcGFsLg0KMjAwMSAoRGVjIDEzKTpbQ3JpbWVdW0luZGlhXSBUZXJyb3Jpc3QgYXR0YWNrIG9uIEluZGlhJ3MgUGFybGlhbWVudC4NCjIwMDE6IHRoZSBjdXN0b21lciBiYXNlIG9mIG1vYmlsZSBwaG9uZSBjb21wYW5pZXMgd2FzIDQgbWlsbGlvbi4NCjIwMDE6IEJlbmVmaXQgbGFubmVycywgVGV4YXMgbWVyZ2VkIGludG8gRklTViB0byBmb3JtIGl0cyBIZWFsdGggQmVuZWZpdCBkaXZpc2lvbi4NCjIwMDE6IE5ldyBIb3Jpem9ucyB3YXMgaW5pdGlhbGx5IHNlbGVjdGVkIGZvciBmdW5kaW5nIGluIDIwMDEgYnV0IHdhcyBleGNsdWRlZCBmcm9tIHRoZSBOQVNBIDIwMDMgYnVkZ2V0LiBGdW5kaW5nIGZvciB0aGUgbWlzc2lvbiB3YXMgcmVpbnN0YXRlZCBhZnRlciBOZXcgSG9yaXpvbnMgd2FzIGxpc3RlZCBhcyBhIHRvcCBwcmlvcml0eSBpbiB0aGUgUGxhbmV0YXJ5IFNjaWVuY2UgRGVjYWRhbCBTdXJ2ZXkgb2YgMjAwM+jjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlajjajlkasjdlajdlkajdlajdlajdajdasjdljaldkjaskdjaskdjsasdjaksdjkasjdalksjdaksjdaklsjdalkjsdaksjdlakjsdlkajsdlkasjdlallkllklklklklklklklklklklklklklklklklklklklklklklklklklklklkjjaj
+KAkzIwMDEuDQoxOTkzOiBBc2hvayBIYWxsIEdpcmwncyBSZXNpZGVudGlhbCBTY2hvb2wsIE1hamtoYWxpLg0KMTk5MzogQnkgdGhpcyB5ZWFyIHRoZXJlIHdlcmUgYXJvdW5kIDEwMCB3ZWItc2VydmVycyBhY3Jvc3MgdGhlIHdvcmxkLiAoQSByZXBvcnQgcHVibGlzaGVkIGluIGZpcnN0IGlzc3VlIG9mIFRoZSBXb3JsZCBXaWRlIFdlYiBOZXdzbGV0dGVyLCAxOTkzKQ0KMTk5MzogQUMgMy10aWVyIGNvYWNoZXMgJiBTbGVlcGVyIGNsYXNzIGFyZSBpbnRyb2R1Y2VkIGFwYXJ0IGZyb20gc2Vjb25kIGNsYXNzLg0KMTk5MzogR29JJ3MgRGlzdHJpY3QgUHJpbWFyeSBFZHVjYXRpb24gUHJvZ3JhbW1lIChEUEVQKSB3YXMgbGF1bmNoZWQsIHdpdGggYW4gYWltIG9mIGFjaGlldmluZyB0aGUgb2JqZWN0aXZlIG9mIHVuaXZlcnNhbCBwcmltYXJ5IGVkdWNhdGlvbi4gVGhpcyBwcm9ncmFtbWVkIGxhaWQgdGhlIGZvdW5kYXRpb25zIGZvciDgpLjgpLDgpY3gpLUg4KS24KS/4KSV4KWN4KS34KS+IOCkheCkreCkv+Ckr+CkvuCkqChFZHVjYXRpb24gZm9yIEFsbCBNb3ZlbWVudCkgYWltZWQgYXQgdGhlIHVuaXZlcnNhbGlzYXRpb24gb2YgZWxlbWVudGFyeSBlZHVjYXRpb24gbWFraW5nIGZyZWUgYW5kIGNvbXB1bHNvcnkgZWR1Y2F0aW9uIHRvIGNoaWxkcmVuIGJldHdlZW4gdGhlIGFnZXMgb2YgNiB0byAxNC4NCjE5OTM6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIHNwbGl0IHdpdGggRGF3b29kIGFuZCBmb3JtZWQgYW4gaW5kZXBlbmRlbnQgZ2FuZyB0aGF0IGZyZXF1ZW50bHkgY2xhc2hlZCB3aXRoIERhd29vZCdzIEQtQ29tcGFueS4NCjE5OTMgKEphbiA3KTpbQ3JpbWVdIFJpb3RzIHJlLXN0YXJ0ZWQgaW4gTXVtYmFpIGFuZCBsYXN0ZWQgZm9yIDIwIGRheXMuIFRoZSBJU0ksIHdoaWNoIGNvbnRyb2xsZWQgc2hpcHBpbmcgcm91dGVzIGZyb20gdGhlIEd1bGYgdG8gSW5kaWEncyB3ZXN0IGNvYXN0LCBkZW1hbmRlZCB0aGF0IHRoZSBtYWZpYSB0cmFuc3BvcnQgd2VhcG9ucyBhbmQgZXhwbG9zaXZlcyBpbnRvIEluZGlhIGluIHJldHVybiBmb3IgdGhlIHVzZSBvZiBQYWtpc3RhbidzIHdhdGVycy4gRGF3b29kIG1ldCB0aGVpciBJU0kgaGFuZGxlcnMgaW4gYSA1IHN0YXIgaG90ZWwgb2YgRHViYWkgaW4gSmFuIG9yIEZlYiBvZiAxOTkzLCB0aGVuIGNhbWUgdGhlIFJEWCB0aHJvdWdoIHRoZSBzYW1lIHBvcm91cyBhbmQgdW5jaGVja2VkIHNlYSByb3V0ZSB0aGF0IDI2LzExIGF0dGFja2VycyBzbGlwcGVkIGFjcm9zcyBhbmQgd3JlY2tlZCBtYXloZW0gaW4gTXVtYmFpLiBUaGUg4oCZOTMgYXR0YWNrcyB3ZXJlIGZpbmFsbHkgZXhlY3V0ZWQgaW4gbWFyY2ggdGhhdCBjbGFpbWVkIHNvbWUgMzAwIGlubm9jZW50IGxpdmVzLg0KMTk5MyAoTWFyIDYpOltQb2xpdHldW0luZGlhXSBTaGFyYWQgUGF3YXIgcmUtZWxlY2V0ZCBhcyBDTSBvZiBNSCBmb3IgMiB5ZWFycy4NCjE5OTMgKE1hciAxMik6W0NyaW1lXSBUaGUgMTk5MyBCb21iYXkgYm9tYmluZ3Mgd2VyZSBhIHNlcmllcyBvZiAxMiB0ZXJyb3Jpc3QgYm9tYmluZ3MgdGhhdCB0b29rIHBsYWNlIGluIEJvbWJheS4gVGhlIHNpbmdsZS1kYXkgYXR0YWNrcyByZXN1bHRlZCBpbiAyNTcgZmF0YWxpdGllcyBhbmQgMSw0MDAgaW5qdXJpZXMuIFRoZXJlIHdhcyBhbm90aGVyIHJhaWQgbmVhciBNYW5pc2ggbWFya2V0IHdoZXJlIGhhbmQgZ3JlbmFkZXMgd2VyZSByZWNvdmVyZWQuIEFmdGVyIGFub3RoZXIgdGlwIG9mZiBsZWQgdG8gZGlzY292ZXJ5IG9mIGEgaHVnZSBxdWFudGl0eSBvZiBSRFggZnJvbSBOYWdsYSBCdW5kZXIgb2ZmIEdob2RidW5kZXIgUm9hZCBpbiBUaGFuZS4g4oCcSW4gYWxsLCA1LDAwMCBraWxvZ3JhbXMgb2YgUkRYIHdhcyBicm91Z2h0IGludG8gTXVtYmFpIGFuZCB3ZSByZWNvdmVyZWQgMywzMDAga2lsb2dyYW1zIG9mIGl0IGluIGFsbCB0aGUgcmFpZHMs4oCdIHNheXMgQ2hhdWd1bGUuIFJlZHVjZWQgU2hvY2sgU2Vuc2l0aXZpdHkgKFJTUykgZXhwbG9zaXZlcywgc3VjaCBhcyBSU1MtUkRYLCB3aGljaCBjb3N0cyBhYm91dCBScy4gMSw1MDAtMiwwMDAgcGVyIGtnLiBBbmVlcyBjb250aW51ZWQgb3BlcmF0aW9uIG9mIEQtQ29tcGFueSB3aGljaCBpbmNsdWRlIGNvbnRyYWN0IGtpbGxpbmcsIGV4dG9ydGlvbiwgdGhlIGNpcmN1bGF0aW9uIG9mIGNvdW50ZXJmZWl0IGN1cnJlbmN5LCBhbmQgdGhlIHByb3Zpc2lvbiBvZiBhIHJhbmdlIG9mIGZyZWUtbGFuY2Ugc2VydmljZXMgdG8gdGVycm9yaXN0IGdyb3VwcyBhdCB0aGUgaW5zdGFuY2Ugb2YgUGFraXN0YW4ncyBJbnRlciBTZXJ2aWNlcyBJbnRlbGxpZ2VuY2UgKElTSSkuIEludGVycG9sIFJlZCBDb3JuZXIgbm90aWNlIGZvciBELUNvbXBhbnkuDQoxOTkzIChOb3YgMSk6IFRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGZvdW5kZWQuIEl0IGlzIGFuIGVjb25vbWljIGFuZCBwb2xpdGljYWwgcGFydG5lcnNoaXAgaW52b2x2aW5nIDI4IEV1cm9wZWFuIGNvdW50cmllcy4gSXQgYmVnYW4gYWZ0ZXIgV1cyIHRvIGZvc3RlciBlY29ub21pYyBjby1vcGVyYXRpb24sIHdpdGggdGhlIGlkZWEgdGhhdCBjb3VudHJpZXMgd2hpY2ggdHJhZGUgdG9nZXRoZXIgYXJlIG1vcmUgbGlrZWx5IHRvIGF2b2lkIGdvaW5nIHRvIHdhciB3aXRoIGVhY2ggb3RoZXIuDQoxOTkzIChOb3YgMyk6IFtHZW9Qb2xpdGljc10gVGhlIENvbW1vbiBNYXJrZXQgZm9yIEVhc3Rlcm4gYW5kIFNvdXRoZXJuIEFmcmljYSAoQ09NRVNBKSBpcyBhIHJlZ2lvbmFsIGVjb25vbWljIGNvbW11bml0eSBpbiBBZnJpY2Egd2l0aCB0d2VudHktb25lIG1lbWJlciBzdGF0ZXMgc3RyZXRjaGluZyBmcm9tIFR1bmlzaWEgdG8gRXN3YXRpbmkuIENPTUVTQSB3YXMgZm9ybWVkIGluIERlY2VtYmVyIDE5OTQsIHJlcGxhY2luZyBhIFByZWZlcmVudGlhbCBUcmFkZSBBcmVhIHdoaWNoIGhhZCBleGlzdGVkIHNpbmNlIDE5ODEuIE5pbmUgb2YgdGhlIG1lbWJlciBzdGF0ZXMgZm9ybWVkIGEgZnJlZSB0cmFkZSBhcmVhIGluIDIwMDAgKERqaWJvdXRpLCBFZ3lwdCwgS2VueWEsIE1hZGFnYXNjYXIsIE1hbGF3aSwgTWF1cml0aXVzLCBTdWRhbiwgWmFtYmlhIGFuZCBaaW1iYWJ3ZSksIHdpdGggUndhbmRhIGFuZCBCdXJ1bmRpIGpvaW5pbmcgdGhlIEZUQSBpbiAyMDA0LCB0aGUgQ29tb3JvcyBhbmQgTGlieWEgaW4gMjAwNiwgU2V5Y2hlbGxlcyBpbiAyMDA5IGFuZCBUdW5pc2lhIGFuZCBTb21hbGlhIGluIDIwMTguDQoxOTkzIChEZWMgMjApOiBPSENIUiBmb3JtZWQuIFRoZSBPZmZpY2Ugb2YgdGhlIFVuaXRlZCBOYXRpb25zIEhpZ2ggQ29tbWlzc2lvbmVyIGZvciBIdW1hbiBSaWdodHMgKE9IQ0hSKSwgYSBVbml0ZWQgTmF0aW9ucyBhZ2VuY3kgdGhhdCB3b3JrcyB0byBwcm9tb3RlIGFuZCBwcm90ZWN0IHRoZSBodW1hbiByaWdodHMgdGhhdCBhcmUgZ3VhcmFudGVlZCB1bmRlciBpbnRlcm5hdGlvbmFsIGxhdyBhbmQgc3RpcHVsYXRlZCBpbiB0aGUgVW5pdmVyc2FsIERlY2xhcmF0aW9uIG9mIEh1bWFuIFJpZ2h0cyBvZiAxOTQ4Lg0KMTk5Mzp0aGUgMjR0aCBhbmQgbGFzdCBHTE9OQVNTIHNhdGVsbGl0ZSB3YXMgbGF1bmNoZWQgZm9ybWluZyB0aGUgd2hvbGUgbmF2aWdhdGlvbiBjb25zdGVsbGF0aW9uIHNpbWlsYXIgdG8gdGhhdCBvZiBVUydzIEdQUy4NCjE5OTM6IFNIQS0wIChhIGhhc2ggZnVuY3Rpb24pIHdhcyBwcm9wb3NlZCBieSBOSVNULCBNYXJ5bGFuZCwgVVNBIChGb3VuZGVkOiAxOTAxKS4gSXQgcHJvZHVjZXMgYSAxNjAtYml0IGhhc2ggdmFsdWUsIHRodXMgdGhlIGJydXRlLWZvcmNlIGNvbGxpc2lvbiBvciAgbmVhci1jb2xsaXNpb24gYXR0YWNrIHJlcXVpcmVzIE8oMl44MCkgY29tcHV0YXRpb24uIFdpdGhpbiA1IHllYXJzLCBpdCB3YXMgbWFkZSBjb2xsaXNpb24gYXR0YWNrZWQgYnkgQ2hhYmF1ZCBhbmQgSm91eCB3aXRoIHRoZSBhdHRhY2sgY29tcGxleGl0eSBvZiAyXjYxLg0KMTk5MzogW0NvYWxnYXRlIHNjYW1dIE9uIDIzcmQgQXByaWwgMjAxMywgdGhlIFN0YW5kaW5nIENvbW1pdHRlZSBvbiBDb2FsIGFuZCBTdGVlbCB0YWJsZWQgaW4gUGFybGlhbWVudCB0aGF0IGFsbCAxOTQgY29hbCBibG9ja3MgZGlzdHJpYnV0ZWQgYmV0d2VlbiAxOTkzIGFuZCAyMDA4IHdlcmUgYXVjdGlvbmVkIGluIGFuIHVuYXV0aG9yaXplZCBtYW5uZXIgYW5kIHRoZSBjb3VudHJ5IGxvc3QgUnMuMS44NiBsYWtoIGNyb3JlLi4gRm9ybWVyIFByaW1lIE1pbmlzdGVyIE1hbm1vaGFuIFNpbmdoLCBhbG9uZyB3aXRoIEt1bWFyIE1hbmdhbGFtIEJpcmxhIGFuZCBQLkMuIFBhcmFraCwgd2VyZSBhY2N1c2VkIGFuZCBzdW1tb25lZCBieSBhIHNwZWNpYWwgY291cnQuIFsyTCBDcm9yZV0uIENvbXB0cm9sbGVyIGFuZCBBdWRpdG9yIEdlbmVyYWwgb2YgSW5kaWEgdG9vayAyMCB5ZWFycyB0byBJRCBvbmUgb2YgdGhlIGJpZ2dlc3Qgc2NhbXMgaW4gSW5kaWFuIGhpc3RvcnkuDQoxOTkzOiBBZnRlciBQcmVzaWRlbnQgQmlsbCBDbGludG9uIHRvb2sgb2ZmaWNlIGluIDE5OTMsIGhvd2V2ZXIsIHRoZSBVLlMuIGVjb25vbXkgZW1iYXJrZWQgb24gYSBsb25nIGFuZCBzdHJvbmcgZXhwYW5zaW9uLCBtYWtpbmcgdGhlIDE5OTBzIGEgZ3JlYXQgZGVjYWRlIGZvciBBbWVyaWNhJ3MgbW9uZXksIG92ZXJhbGwuIA0KMTk5MzpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTW90aHJhKDE5OTIpDQoxOTkzOltTcGFjZV0gSGlwcGFyY29zLCBhIHNjaWVudGlmaWMgc2F0ZWxsaXRlIG9mIHRoZSBFdXJvcGVhbiBTcGFjZSBBZ2VuY3kgKEVTQSkgbGFzdGVkIGZvciA0IHllYXJzIGJlZm9yZSBnb2luZyBvdXQtb2Ytc2VydmljZS4NCjE5OTM6W1NwYWNlXVtSZXNlYXJjaF0gSW4gMTk5MywgRG9uIFBhZ2UgYXJndWVkIHRoYXQgaWYgYSBibGFjayBob2xlIHN0YXJ0cyBpbiBhIHB1cmUgcXVhbnR1bSBzdGF0ZSBhbmQgZXZhcG9yYXRlcyBjb21wbGV0ZWx5IGJ5IGEgdW5pdGFyeSBwcm9jZXNzLCB0aGUgdm9uIE5ldW1hbm4gZW50cm9weSBvZiB0aGUgSGF3a2luZyByYWRpYXRpb24gaW5pdGlhbGx5IGluY3JlYXNlcyBhbmQgdGhlbiBkZWNyZWFzZXMgYmFjayB0byB6ZXJvIHdoZW4gdGhlIGJsYWNrIGhvbGUgaGFzIGRpc2FwcGVhcmVkLiBUaGlzIGlzIGNhbGxlZCB0aGUgUGFnZSBjdXJ2ZS4NCjE5OTM6W0Jvb2tzXVtIaXN0b3J5XSBHcmVlbuKAmXMgRGljdGlvbmFyeSBvZiBTbGFuZyBpcyB0aGUgbGFyZ2VzdCBoaXN0b3JpY2FsIGRpY3Rpb25hcnkgb2YgRW5nbGlzaCBzbGFuZy4gV3JpdHRlbiBieSBKb25hdGhvbiBHcmVlbiBvdmVyIDE3IHllYXJzIGZyb20gMTk5MywgaXQgcmVhY2hlZCB0aGUgcHJpbnRlZCBwYWdlIGluIDIwMTAgaW4gYSB0aHJlZS12b2x1bWUgc2V0IGNvbnRhaW5pbmcgbmVhcmx5IDEwMCwwMDAgZW50cmllcyBzdXBwb3J0ZWQgYnkgb3ZlciA0MDAsMDAwIGNpdGF0aW9ucyBmcm9tIGMuIGFkIDEwMDAgdG8gdGhlIHByZXNlbnQgZGF5LiBUaGUgbWFpbiBmb2N1cyBvZiB0aGUgZGljdGlvbmFyeSBpcyB0aGUgY292ZXJhZ2Ugb2Ygb3ZlciA1MDAgeWVhcnMgb2Ygc2xhbmcgZnJvbSBjLiAxNTAwIG9ud2FyZHMuDQoxOTkzOltFbnZdW0Rpc2FzdGVyXSBTb3V0aCBBc2lhbiBtb25zb29uIGZsb29kcywgM2sgZGVhdGhzDQoxOTkzOltHZW9ncmFwaHldIFRoZSBsYXN0IG1ham9yIHNoaWZ0cyBpbiBFYXJ0aCdzIGF4aXMgd2VyZSBpbmZsdWVuY2VkIGJ5IGNsaW1hdGUgY2hhbmdlOiBhIDMxLjUtaW5jaCBzaGlmdCBiZXR3ZWVuIDE5OTMgYW5kIDIwMTAgd2FzIHByaW1hcmlseSBjYXVzZWQgYnkgZ3JvdW5kd2F0ZXIgcHVtcGluZywgYW5kIGEgY2hhbmdlIGluIHBvbGFyIGRyaWZ0IGRpcmVjdGlvbiBhcm91bmQgdGhlIDE5OTBzIHdhcyBsaW5rZWQgdG8gbWVsdGluZyBnbGFjaWVycyBhbmQgaWNlIHNoZWV0cyBkdWUgdG8gZ2xvYmFsIHdhcm1pbmcuIEVhcnRoJ3MgYXhpcyBhbHNvIHNoaWZ0ZWQgYnkgYWJvdXQgNi41IGluY2hlcyBpbiBNYXJjaCAyMDExIGFmdGVyIHRoZSBKYXBhbmVzZSBlYXJ0aHF1YWtlLCBjYXVzaW5nIHRoZSBwbGFuZXQgdG8gc3BpbiBzbGlnaHRseSBmYXN0ZXIuDQoxOTkzOltXaG9dIEluIDE5OTMsIEluZGlhIGNhbWUgaGVhcnRicmVha2luZ2x5IGNsb3NlIHRvIHdpbm5pbmcgaXRzIGZpcnN0IE1pc3MgVW5pdmVyc2UgY3Jvd24gd2l0aCB0aGUgc3R1bm5pbmcgYW5kIGdyYWNlZnVsIE5hbXJhdGEgU2hpcm9ka2FyLCB3aG8gaGFkIGVhcmxpZXIgd29uIHRoZSBGZW1pbmEgTWlzcyBJbmRpYSB0aXRsZS4gUmVwcmVzZW50aW5nIEluZGlhIGF0IHRoZSBNaXNzIFVuaXZlcnNlIHBhZ2VhbnQgaGVsZCBpbiBNZXhpY28gQ2l0eSwgTmFtcmF0YSB3YXMgYSBzdHJvbmcgY29udGVuZGVy4oCUZWxlZ2FudCBpbiBoZXIgZ293biwgcG9pc2VkIGluIGludGVydmlld3MsIGFuZCBhIGZhbiBmYXZvcml0ZS4gU2hlIGVhc2lseSBtYWRlIGl0IHRvIHRoZSBUb3AgNiwgYW5kIGhlciBjaGFuY2VzIG9mIHdpbm5pbmcgbG9va2VkIGluY3JlZGlibHkgaGlnaC4gQnV0IHRoZW4gY2FtZSB0aGUgZmluYWwgcXVlc3Rpb246IOKAnElmIHlvdSBjb3VsZCBiZSBib3JuIGFzIGFueSBoaXN0b3JpY2FsIGZpZ3VyZSwgd2hvIHdvdWxkIGl0IGJlIGFuZCB3aHk/4oCdIFdoaWxlIG90aGVyIGNvbnRlc3RhbnRzIG5hbWVkIGdsb2JhbCBpY29ucyBsaWtlIE1vdGhlciBUZXJlc2EgYW5kIFByaW5jZXNzIERpYW5hLCBOYW1yYXRhIGdhdmUgYW4gaG9uZXN0LCBwZXJzb25hbCBhbnN3ZXLigJRzaGUgc2FpZCBzaGUgd291bGQgYmUgYm9ybiBhcyBoZXJzZWxmIG9yIHNvbWVvbmUgY2xvc2UgdG8gaGVyLCBiZWNhdXNlIHNoZSBiZWxpZXZlZCBpbiBsaXZpbmcgbGlmZSB3aXRoIHRydXRoIGFuZCBpbmRpdmlkdWFsaXR5LiBJdCB3YXMgYSBiZWF1dGlmdWwsIGdyb3VuZGVkIGFuc3dlcuKAlGJ1dCBub3QgdGhlIGtpbmQgb2YgZ3JhbmQsIGlkZWFsaXN0aWMgcmVzcG9uc2UgdGhlIGp1ZGdlcyB3ZXJlIGV4cGVjdGluZy4gVGhhdCBvbmUgbW9tZW50IG9mIHRydXRoLCBtYW55IGJlbGlldmUsIGNvc3QgaGVyIHRoZSBjcm93biwgYW5kIEluZGlhIGhhZCB0byB3YWl0IGFub3RoZXIgeWVhciBiZWZvcmUgU3VzaG1pdGEgU2VuIGJyb3VnaHQgdGhlIE1pc3MgVW5pdmVyc2UgdGl0bGUgaG9tZSBpbiAxOTk0LiBTdGlsbCwgTmFtcmF0YeKAmXMgYW5zd2VyIGJlY2FtZSBpY29uaWPigJRub3QgYmVjYXVzZSBpdCB3b24sIGJ1dCBiZWNhdXNlIGl0IHdhcyByZWFsLCBtYXJraW5nIGEgcmFyZSBpbnN0YW5jZSB3aGVyZSBob25lc3R5IHN0b29kIHRhbGxlciB0aGFuIGRpcGxvbWFjeS4NCjE5OTM6W0F2aWF0aW9uXVtFeHRyZW1lXVtXaG9dIFRoZSBIZXJic3QgbWFuZXV2ZXIgd2FzIGZpcnN0IHN1Y2Nlc3NmdWxseSBwZXJmb3JtZWQgb24gQXByaWwgMjksIDE5OTMsIGJ5IGFuIFgtMzEgYWlyY3JhZnQuIE5hbWVkIGFmdGVyIFdvbGZnYW5nIEhlcmJzdCwgYSBkZXZlbG9wZXIgb2YgcG9zdC1zdGFsbCB0ZWNobm9sb2d5IGZvciBNZXNzZXJzY2htaXR0LULDtmxrb3ctQmxvaG0gKE1CQiksIHRoaXMsIHBvc3Qtc3RhbGwgbWFuZXV2ZXIgZW5hYmxlcyBhIGZpZ2h0ZXIgdG8gbWFrZSBhIHJhcGlkIDE4MMKwIHR1cm4gd2l0aGluIGEgbWluaW1hbCByYWRpdXMuIA0KDQoxOTk04oCTMTk5NTpbVVNdW0dlb1BvbGl0aWNzXSBvY2N1cGF0aW9uIG9mIEhhaXRpLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgRXVyb3BlYW4gRWNvbm9taWMgQXJlYSwgYWJicmV2aWF0ZWQgYXMgRUVBLCBjb25zaXN0cyBvZiB0aGUgTWVtYmVyIFN0YXRlcyBvZiB0aGUgRXVyb3BlYW4gVW5pb24gKEVVKSBhbmQgdGhyZWUgY291bnRyaWVzIG9mIHRoZSBFdXJvcGVhbiBGcmVlIFRyYWRlIEFzc29jaWF0aW9uIChFRlRBKSAoSWNlbGFuZCwgTGllY2h0ZW5zdGVpbiBhbmQgTm9yd2F5OyBleGNsdWRpbmcgU3dpdHplcmxhbmQpLiBUaGUgQWdyZWVtZW50IG9uIHRoZSBFRUEgZW50ZXJlZCBpbnRvIGZvcmNlIG9uIDEgSmFudWFyeSAxOTk0LiANCjE5OTQ6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEV1cm9wZWFuIEVjb25vbWljIEFyZWEgKEVFQSkgd2FzIGVzdGFibGlzaGVkIG9uIDEgSmFudWFyeSAxOTk0LiBUaGUgYWdyZWVtZW50IGxpbmtzIHRoZSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aHJlZSBFRlRBIHN0YXRlc+KAlEljZWxhbmQsIExpZWNodGVuc3RlaW4sIGFuZCBOb3J3YXnigJRpbnRvIGEgc2luZ2xlIGludGVybmFsIG1hcmtldCwgYWxsb3dpbmcgZm9yIHRoZSBmcmVlIG1vdmVtZW50IG9mIGdvb2RzLCBwZXJzb25zLCBzZXJ2aWNlcywgYW5kIGNhcGl0YWwuIA0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBOQUZUQSwgdGhlIE5vcnRoIEFtZXJpY2FuIEZyZWUgVHJhZGUgQWdyZWVtZW50LCB3YXMgYSAxOTk0IGFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzLCBDYW5hZGEsIGFuZCBNZXhpY28gdG8gZWxpbWluYXRlIHRyYWRlIGJhcnJpZXJzIGFuZCBwcm9tb3RlIGZyZWUgdHJhZGUgaW4gTm9ydGggQW1lcmljYS4gSXQgZmFjaWxpdGF0ZWQgdGhlIG1vdmVtZW50IG9mIGdvb2RzIGFuZCBzZXJ2aWNlcyBhbmQgZXN0YWJsaXNoZWQgYSBsYXJnZSB0cmFkZSBibG9jLiBJbiBKdWx5IDIwMjAsIE5BRlRBIHdhcyByZXBsYWNlZCBieSB0aGUgVW5pdGVkIFN0YXRlcy1NZXhpY28tQ2FuYWRhIEFncmVlbWVudCAoVVNNQ0EpLCB3aGljaCBtb2Rlcm5pemVkIGFuZCBlbmhhbmNlZCB0aGUgdHJlYXR5IGZvciBhIGNvbnRlbXBvcmFyeSBlY29ub215Lg0KMTk5NDpbUy5BZnJpY2FdW1NvY2lhbGlzbV0gRmlyc3QgZnJlZSBlbGVjdGlvbnMgaW4gU291dGggQWZyaWNhOyBOZWxzb24gTWFuZGVsYQ0KMTk5NDpbUmVzZWFyY2hdW3NwYWNlXSBDYXJsIFNhZ2FuIGNvbmNlZGVkIHRoYXQgdGhpcyBhcHByb2FjaCB3b3VsZCBub3Qgd29yayBiZWNhdXNlIHRoZSBhdG1vc3BoZXJlIG9mIFZlbnVzIGlzIGZhciBkZW5zZXIgKDkwIGJhcnMpIHRoYW4gd2hhdCB3YXMgdW5kZXJzdG9vZCBpbiAxOTYxIChhIGZldyBiYXJzKSwgbWVhbmluZyB0aGUgY2FyYm9uIHdvdWxkIGp1c3QgYmUgb3hpZGl6ZWQgYmFjayBpbnRvIENPMi4NCjE5OTQ6W0NvbXB1dGluZ11bUXVhbnR1bV0gUGV0ZXIgU2hvciBkaXNjb3ZlcmVkIGFuIGFsZ29yaXRobSAoU2hvcidzIGFsZ29yaXRobSkgdGhhdCBjb3VsZCBmYWN0b3IgbGFyZ2UgbnVtYmVycyBpbiBwb2x5bm9taWFsIHRpbWUgb24gYSBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCB3b3VsZCBicmVhayB0aGUgc2VjdXJpdHkgb2YgbWFueSBjcnlwdG9ncmFwaGljIHNjaGVtZXMuIA0KMTk5NDpbQ29tcHV0aW5nXVtRdWFudHVtXSBQZXRlciBTaG9yIGFuZCBEb24gQ29wcGVyc21pdGggZmlndXJlZCBvdXQgaG93IHRvIHRha2UgYSBRdWFudHVtIEZvdXJpZXIgVHJhbnNmb3JtLg0KMTk5NDpUaGUgcHJvYmxlbSB3aXRoIHRoZSBwYXBlciBwdWJsaXNoZWQgZWFybGllciB0aGlzIG1vbnRoIHdhcyBpdHMgcmVsaWFuY2Ugb24gU2Nobm9ycidzIGFsZ29yaXRobSAobm90IHRvIGJlIGNvbmZ1c2VkIHdpdGggU2hvcuKAmXMgYWxnb3JpdGhtKSwgd2hpY2ggd2FzIGRldmVsb3BlZCBpbiAxOTk0LiBTY2hub3Jy4oCZcyBhbGdvcml0aG0gaXMgYSBjbGFzc2ljYWwgY29tcHV0YXRpb24gYmFzZWQgb24gbGF0dGljZXMsIHdoaWNoIGFyZSBtYXRoZW1hdGljYWwgc3RydWN0dXJlcyB0aGF0IGhhdmUgbWFueSBhcHBsaWNhdGlvbnMgaW4gY29uc3RydWN0aXZlIGNyeXB0b2dyYXBoeSBhbmQgY3J5cHRhbmFseXNpcy4gVGhlIGF1dGhvcnMgd2hvIGRldmlzZWQgU2Nobm9ycuKAmXMgYWxnb3JpdGhtIHNhaWQgaXQgY291bGQgZW5oYW5jZSB0aGUgdXNlIG9mIHRoZSBoZXVyaXN0aWMgcXVhbnR1bSBvcHRpbWl6YXRpb24gbWV0aG9kIGNhbGxlZCBRQU9BLg0KMTk5NCAoSmFuIDEpOiBbR2VvUG9saXRpY3NdIFRoZSBOb3J0aCBBbWVyaWNhbiBGcmVlIFRyYWRlIEFncmVlbWVudCAoTkFGVEEpIHdhcyBhbiBhZ3JlZW1lbnQgc2lnbmVkIGJ5IENhbmFkYSwgTWV4aWNvLCBhbmQgdGhlIFVuaXRlZCBTdGF0ZXMgdGhhdCBjcmVhdGVkIGEgdHJpbGF0ZXJhbCB0cmFkZSBibG9jIGluIE5vcnRoIEFtZXJpY2EuIFRoZSBhZ3JlZW1lbnQgY2FtZSBpbnRvIGZvcmNlIG9uIEphbnVhcnkgMSwgMTk5NCwgYW5kIHN1cGVyc2VkZWQgdGhlIDE5ODggQ2FuYWRh4oCTVW5pdGVkIFN0YXRlcyBGcmVlIFRyYWRlIEFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzIGFuZCBDYW5hZGEuIFRoZSBOQUZUQSB0cmFkZSBibG9jIGZvcm1lZCBvbmUgb2YgdGhlIGxhcmdlc3QgdHJhZGUgYmxvY3MgaW4gdGhlIHdvcmxkIGJ5IGdyb3NzIGRvbWVzdGljIHByb2R1Y3QuDQoxOTk0OltUZWNobm9sb2d5XVtCdXNpbmVzc11bVVNdW0NvbXB1dGluZ10gVGhlIERlbGwgTGF0aXR1ZGUgc2VyaWVzIGlzIGEgbGluZSBvZiBsYXB0b3AgY29tcHV0ZXJzIG1hbnVmYWN0dXJlZCBhbmQgc29sZCBieSBBbWVyaWNhbiBjb21wYW55IERlbGwuIEl0IGlzIGEgYnVzaW5lc3Mtb3JpZW50ZWQgbGluZSwgYWltZWQgYXQgY29ycG9yYXRlIGVudGVycHJpc2VzLCBoZWFsdGhjYXJlLCBnb3Zlcm5tZW50LCBhbmQgZWR1Y2F0aW9uIG1hcmtldHM7IHVubGlrZSB0aGUgSW5zcGlyb24gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBpbmRpdmlkdWFsIGN1c3RvbWVycywgYW5kIHRoZSBWb3N0cm8gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBzbWFsbGVyIGJ1c2luZXNzZXMuIFRoZSBMYXRpdHVkZSBkaXJlY3RseSBjb21wZXRlcyB3aXRoIHRoZSBMZW5vdm8gVGhpbmtQYWQgYW5kIHRoZSBFbGl0ZUJvb2sgc2VyaWVzIGJ5IEhQLiBBZGRpdGlvbmFsbHksIHRoZSAiUnVnZ2VkIChFeHRyZW1lKSIsICJYRlIiIGFuZCAiQVRHIiBtb2RlbHMgY29tcGV0ZSBwcmltYXJpbHkgd2l0aCBQYW5hc29uaWMncyBUb3VnaGJvb2sgbGluZSBvZiAicnVnZ2VkIiBsYXB0b3BzLg0KMTk5NDogU3VzaG1pdGEgU2VuIGJlY2FtZSBNaXNzIFVuaXZlcnNlLg0KMTk5NDogVGhlIEFubmFscyBvZiBJbXByb2JhYmxlIFJlc2VhcmNoIGlzIGEgYmktbW9udGhseSBtYWdhemluZSBkZXZvdGVkIHRvIHNjaWVudGlmaWMgaHVtb3IsIGluIHRoZSBmb3JtIG9mIGEgc2F0aXJpY2FsIHRha2Ugb24gdGhlIHN0YW5kYXJkIGFjYWRlbWljIGpvdXJuYWwuDQoxOTk0OiBMaW5kb24gTGVhZGVyIG9mIExhbmRvciBBc3NvY2lhdGVzLCBvZiBTYW4gRnJhbmNpc2NvIGRlc2lnbmVkIHdvcmRtYXJrcyBmb3IgRmVkRXgncyB2YXJpb3VzIE9wLXVuaXQuIEZlZEV44oCZcyBwdWJsaWMtcmVsYXRpb25zIGZpcm0gd2FudGVkIHRvIGhpZ2hsaWdodCB0aGUgYXJyb3cgc28gaXQgd291bGQgYmUgb2J2aW91cy4gQnV0IGhlIGZvdWdodCB0aGVtIG9uIHRoYXQg4oCUIGhlIHRob3VnaHQgaXQgd291bGQgYmUgb3ZlcmtpbGwuIFRoZXJl4oCZcyBzb21ldGhpbmcgYWJvdXQgbWFraW5nIHBlb3BsZSBkaXNjb3ZlciBzb21ldGhpbmcgb24gdGhlaXIgb3duIHRoYXTigJlzIGEgbG90IG1vcmUgcG93ZXJmdWwgdGhhbiBpdGFsaWNpemluZyBpdCB0byBtYWtlIHlvdXIgcG9pbnQuDQoxOTk0OiBTY2lsYWIgMS4xLCB0aGUgZmlyc3QgcmVsZWFzZWQgdmVyc2lvbiBvZiBTY2lsYWIsIHdhcyBwdXQgb24gYW5vbnltb3VzIGZ0cCBzaXRlLg0KMTk5NDogVGhlIGNvbmNlcHQgb2YgYSBjYWbDqSB3aXRoIGZ1bGwgSW50ZXJuZXQgYWNjZXNzIChhbmQgdGhlIG5hbWUgQ3liZXJjYWbDqSkgd2FzIGludmVudGVkIGluIGVhcmx5IGJ5ICBhIEJyaXRpc2ggdGVjaG5vbG9neSBhcnRpc3QsIEl2YW4gUG9wZS4NCjE5OTQ6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIGx1cmVkIG9uZSBvZiBEYXdvb2QncyBmYXZvcml0ZSAibmFyY28tdGVycm9yaXN0IiBQaGlsbHUgS2hhbiBhbGlhcyBCYWtodGl5YXIgQWhtZWQgS2hhbiB0byBhIGhvdGVsIHJvb20gaW4gQmFuZ2tvaywgd2hlcmUgaGUgd2FzIHRvcnR1cmVkIHRvIGRlYXRoLCBoYXZpbmcgYmVlbiBiZXRyYXllZCBieSBoaXMgY2xvc2VzdCBhaWRlIGFuZCBzaWRla2ljayBNYW5nZXNoICJNYW5neWEiIFBhd2FyLiBELUNvbXBhbnkncyBTaGFyYWQsIHVzZWQgaGlzIGxpbmtzIHdpdGggTXVtYmFpLWJhc2VkIGhvdGVsaWVyIFZpbm9kIGFuZCBBLiBNaXNocmEgdG8gdHJhY2sgZG93biBSYWphbiBpbiBCYW5na29rLiBSYWphbidzIGhpdG1hbiBSb2hpdCBWYXJtYSBhbmQgaGlzIHdpZmUgc2hvdCBieSBELUNvbXBhbnkuDQoxOTk0KEp1bCAxNik6W1NwYWNlXSBGcm9tIEp1bHkgMTYgdG8gMjIsIDE5OTQsIGVub3Jtb3VzIHBpZWNlcyBvZiB0aGUgY29tZXQgU2hvZW1ha2VyLUxldnkgOSAoU0w5KSwgZGlzY292ZXJlZCBqdXN0IGEgeWVhciBwcmlvciwgY3Jhc2hlZCBpbnRvIEp1cGl0ZXIgb3ZlciBzZXZlcmFsIGRheXMsIGNyZWF0aW5nIGh1Z2UsIGRhcmsgc2NhcnMgaW4gdGhlIHBsYW5ldCdzIGF0bW9zcGhlcmUgYW5kIGxvZnRpbmcgc3VwZXJoZWF0ZWQgcGx1bWVzIGludG8gaXRzIHN0cmF0b3NwaGVyZS4NCjE5OTQgKE9jdCk6IElUUE8gYW5kIEdvSSdzIE5JQyBqb2ludGx5IHNldC11cCB0aGUgTmF0aW9uYWwgQ2VudHJlIGZvciBUcmFkZSBJbmZvcm1hdGlvbiAoTkNUSSkgYXQgUHJhZ2F0aSBNYWlkYW4uDQoxOTk0IChOb3YgMSwgMTU6MDEgSVNUKTpbU3BhY2VdW1N1bl0gVGhlIEdsb2JhbCBHZW9zcGFjZSBTY2llbmNlICdXaW5kJyBzYXRlbGxpdGUgaXMgYSBOQVNBIHNjaWVuY2Ugc3BhY2VjcmFmdCBkZXNpZ25lZCB0byBzdHVkeSByYWRpbyB3YXZlcyBhbmQgcGxhc21hIHRoYXQgb2NjdXIgaW4gdGhlIHNvbGFyIHdpbmQgYW5kIGluIHRoZSBFYXJ0aCdzIG1hZ25ldG9zcGhlcmUuIA0KMTk5NCAoRGVjIDMpOiBTb255J3MgUGxheVN0YXRpb24gKGEgdmlkZW8gZ2FtZSBjb25zb2xlKSB3YXMgaW50cm9kdWNlZCB0byB0aGUgd29ybGQgZnJvbSBNaW5hdG8sIFRva3lvIChKYXBhbikuDQoxOTk0OiBXWFlDLSBmaXJzdCBpbnRlcm5ldCByYWRpbyBzdGF0aW9uIGJyb2FkY2FzdC4NCjE5OTQ6IE1lbW9yeSBjYXJkcyB3ZXJlIGludHJvZHVjZWQgaW4gdGhlIGNvbnN1bWVyIGVsZWN0cm9uaWNzIG1hcmtldC4NCjE5OTQgKEF1Zyk6IElUUE8ncyAxc3QgRGVsaGkgQm9vayBGYWlyIGF0ICBIYWxsIDggdG8gMTIgb2YgUHJhZ2F0aSBNYWlkYW4sIE5ldyBEZWxoaS4gVGhlIHRpbWluZ3Mgb2YgZmFpciBhcmUgZnJvbSAxMC4wMCBhbSB0byA4LjAwIHBtIChlbnRyeSB0byBmYWlyIHdpbGwgY2xvc2UgYXQgNy4zMCBwbSkuDQoxOTk0IChTZXApOiBUaGUgQ09OQ0VSVCBzb2Z0d2FyZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgaW1wbGVtZW50ZWQgYXQgYWxsIG9mIHRoZSBmaXZlIFBSUycgc2l0ZXMgU2VjdW5kZXJhYmFkIGluIFNlcHQuIDE5OTQsIE5ldyBEZWxoaSBvbiBTZXB0LiAxOTk2LCBDYWxjdXR0YSBvbiAxNHRoIEp1bmUgMTk5OCwgTXVtYmFpIG9uIDExdGggSmFuIDE5OTkgYW5kIENoZW5uYWkgb24gMTJ0aCBBcHJpbCAxOTk5Lg0KMTk5NDogdGhlIDI0dGggYW5kIHRoZSBsYXN0IEdQUyBzYXRlbGxpdGUgd2FzIGxhdW5jaGVkIGluIFVTLg0KMTk5NDogVGhlIHdvcmQgVGFsaWJhbiBpcyBQYXNodG8sINi32KfZhNio2KfZhiDhua3EgWxpYsSBbiwgbWVhbmluZyAic3R1ZGVudHMiLCB0aGUgcGx1cmFsIG9mIOG5rcSBbGliLiBBZnRlciB0aGUgU292aWV0IFVuaW9uIGludGVydmVuZWQgYW5kIG9jY3VwaWVkIEFmZ2hhbmlzdGFuIGluIDE5NzksIElzbGFtaWMgbXVqYWhpZGVlbiBmaWdodGVycyBlbmdhZ2VkIGluIHdhciB3aXRoIHRob3NlIFNvdmlldCBmb3JjZXMsIHdoaWNoIGxhaWQgdGhlIGZvdW5kYXRpb24gb2YgcG9saXRpY2FsIG1vdmVtZW50IGFuZCBtaWxpdGFyeSBvcmdhbml6YXRpb24gbmFtZWQgVGFsaWJhbi4NCjE5OTQ6IEFiZHVsIEthcmVlbSBUZWxnaSBhY3F1aXJlZCB0aGUgbGljZW5zZSBmb3Igc2VsbGluZyBzdGFtcCBwYXBlciBhbmQgb3BlbmVkIGFuIG9mZmljZSBpbiBNdW1iYWkuIEFmdGVyIHRoYXQsIGhlIHN0YXJ0ZWQgcHJpbnRpbmcgc3RhbXAgcGFwZXIgaW4gTmFzaGlrLiBXaXRoIHNvbWUgYWdlbnRz4oCZIGhlbHAsIGhlIHN0YXJ0cyBzZWxsaW5nIGZha2Ugc3RhbXAgcGFwZXIgaW4gYnVsayB0byBiYW5rcywgaW5zdXJhbmNlIGNvbXBhbmllcywgc3RvY2sgYnJva2VyYWdlIGZpcm1zLCBhbmQgY29ycG9yYXRlcy4gSW4gMjAwMyB0aGUgVGVsZ2kgc2NhbSB3YXMgdW5mb2xkZWQ7IHRoZSBmaWd1cmUgaW4gdGhlIG1pbmQgb2Ygc2VjdXJpdHkgYW5kIGludGVsbGlnZW5jZSBhZ2VuY2llcyB3YXMgdXAgdG8gUnMuMjBrIENyb3JlDQoxOTk0OiBbR2VvUG9saXRpY3NdIEludGVybmF0aW9uYWwgQXNzb2NpYXRpb24gb2YgR2VuZGFybWVyaWVzIGFuZCBQb2xpY2UgRm9yY2VzIHdpdGggTWlsaXRhcnkgU3RhdHVzIChjb21tb25seSBrbm93biBhcyBGSUVQIGZvciBGcmFuY2UtSXRhbGlhLUVzcGHDsWEtUG9ydHVnYWwsIHRoZSBmaXJzdCBmb3VyIG1lbWJlcnMpIGlzIGFuIGFzc29jaWF0aW9uIG9mIG5hdGlvbmFsIGdlbmRhcm1lcmllcyBvciBtaWxpdGFyeSBwb2xpY2UgZm9yY2VzLg0KMTk5NDpbQm9va10gUGFsZSBCbHVlIERvdDogQSBWaXNpb24gb2YgdGhlIEh1bWFuIEZ1dHVyZSBpbiBTcGFjZSBpcyBhIDE5OTQgYm9vayBieSB0aGUgYXN0cm9ub21lciBDYXJsIFNhZ2FuLiBJdCBpcyB0aGUgc2VxdWVsIHRvIFNhZ2FuJ3MgMTk4MCBib29rIENvc21vcyBhbmQgd2FzIGluc3BpcmVkIGJ5IHRoZSBmYW1vdXMgMTk5MCBQYWxlIEJsdWUgRG90IHBob3RvZ3JhcGgsIGZvciB3aGljaCBTYWdhbiBwcm92aWRlcyBhIHBvaWduYW50IGRlc2NyaXB0aW9uLiBJbiB0aGUgYm9vaywgU2FnYW4gbWl4ZXMgcGhpbG9zb3BoeSBhYm91dCB0aGUgaHVtYW4gcGxhY2UgaW4gdGhlIHVuaXZlcnNlIHdpdGggYSBkZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCBrbm93bGVkZ2UgYWJvdXQgdGhlIFNvbGFyIFN5c3RlbS4gSGUgYWxzbyBkZXRhaWxzIGEgaHVtYW4gdmlzaW9uIGZvciB0aGUgZnV0dXJlLg0KMTk5NDpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTWVjaGFnb2R6aWxsYSBJSSgxOTkzKQ0KMTk5NDpbQ2luZW1hXSBUaGUgQXBwbGUoMTk4MCkNCjE5OTQ6W0NpbmVtYV0gVGhlIEF0bGFudGlzIEludGVyY2VwdG9ycygxOTgzKQ0KMTk5NDpbTW50bmdnXSBJbiAxOTk0LCBNYXJrIFdoZXR1IHN1bW1pdHRlZCBNdCBFdmVyZXN0IHdpdGggTWlrZSBSZWluYmVyZ2VyLiBCdXQgYWZ0ZXIgYSBmcmVlemluZyBuaWdodCwgV2hldHUgZmFjZWQgYSBoYXJyb3dpbmcgY2hvaWNlOiBsZWF2ZSBoaXMgZnJpZW5kIG9yIHJlbWFpbiBmb3JldmVyLiBUaGUgRmF0YWwgR2FtZSAoMTk5NykNCjE5OTQ6W1RvdXJpc21dIFRoZSBBZHZlbnR1cmUgVG91ciBPcGVyYXRvcnMgQXNzb2NpYXRpb24gb2YgSW5kaWEgKEFUT0FJKSB3YXMgZm91bmRlZCBpbiAxOTk0LiBJdCB3YXMgZXN0YWJsaXNoZWQgYnkgYSBncm91cCBvZiB0cmF2ZWwgdHJhZGUgYWR2ZW50dXJlcnMgd2hvIGFpbWVkIHRvIGNyZWF0ZSBhIHN0cm9uZyBzdXBwb3J0IG5ldHdvcmsgZm9yIEluZGlhbiBhZHZlbnR1cmUgdG91ciBvcGVyYXRvcnMuIA0KDQoxOTk1IChNYXkgMTkpOiBbUmVzZWFyY2hdW1NwYWNlXSB0d28gc2NpZW50aXN0cyBhdCBDYWwgUG9seSBzaG93ZWQgdGhhdCBiYWN0ZXJpYSBjYW4gc3Vydml2ZSB3aXRob3V0IGFueSBtZXRhYm9saXNtIGZvciBhdCBsZWFzdCAyNSBtaWxsaW9uIHllYXJzOyBwcm9iYWJseSB0aGV5IGFyZSBpbW1vcnRhbC4NCjI0IE5vdmVtYmVyIDE5OTU6IFRoZSBOZXcgWW9yayBUaW1lcyBkZXNjcmliZWQgYmFjdGVyaWEgdGhhdCBjYW4gc3Vydml2ZSByYWRpYXRpb24gbXVjaCBzdHJvbmdlciB0aGFuIGFueSB0aGF0IEVhcnRoIGhhcyBldmVyIGV4cGVyaWVuY2VkLg0KV2UgYXJlIGNhbGxpbmcgdGhlIHVuaW9uIG9mIExvdmVsb2NrJ3MgR2FpYSB3aXRoIEhveWxlIGFuZCBXaWNrcmFtYXNpbmdoZSdzIGV4cGFuZGVkIHRoZW9yeSBvZiBwYW5zcGVybWlhIENvc21pYyBBbmNlc3RyeS4gVGhpcyBhY2NvdW50IG9mIGV2b2x1dGlvbiBhbmQgdGhlIG9yaWdpbiBvZiBsaWZlIG9uIEVhcnRoIGlzIHByb2ZvdW5kbHkgZGlmZmVyZW50IGZyb20gdGhlIHByZXZhaWxpbmcgc2NpZW50aWZpYyBwYXJhZGlnbS4gSXQgY2hhbGxlbmdlcyBub3QgbWVyZWx5IHRoZSBhbnN3ZXJzIGJ1dCB0aGUgcXVlc3Rpb25zIHRoYXQgYXJlIHBvcHVsYXIgdG9kYXkuIENvc21pYyBBbmNlc3RyeSByZXF1aXJlcyB0aGF0IGxpZmUgY2FuIG9ubHkgZGVzY2VuZCBmcm9tIGFuY2VzdG9ycyBhdCBsZWFzdCBhcyBoaWdobHkgZXZvbHZlZCBhcyBpdHNlbGYsIGFuZCB0aGF0IHRoZXJlIGNhbiBiZSBubyBvcmlnaW4gb2YgbGlmZSBmcm9tIG5vbmJpb2xvZ2ljYWwgbWF0dGVyLiBXaXRob3V0IHN1cGVybmF0dXJhbCBpbnRlcnZlbnRpb24sIHRoZXJlZm9yZSwgd2UgY29uY2x1ZGUgdGhhdCBsaWZlIG11c3QgaGF2ZSBhbHdheXMgZXhpc3RlZC4gQWx0aG91Z2ggdGhlc2UgY29uY2x1c2lvbnMgY3V0IGFjcm9zcyB0aGUgYm91bmRhcmllcyBiZXR3ZWVuIHNjaWVuY2UsIHBoaWxvc29waHksIGFuZCByZWxpZ2lvbiwgd2UgYmVsaWV2ZSB0aGV5IGFyZSBncm91bmRlZCBpbiBnb29kIGV2aWRlbmNlLiBBbmQgbmV3IGRhdGEgdGhhdCBzdXBwb3J0IG1hbnkgYXNwZWN0cyBvZiBDb3NtaWMgQW5jZXN0cnkgYXJlIGNvbWluZyBpbiByYXBpZGx5LiBJbiB0aGUgZm9sbG93aW5nIHBhZ2VzIHdlIHdpbGwgZXhwbGFpbiBob3cgdGhlc2UgYW5kIG90aGVyIHJlY2VudCBkZXZlbG9wbWVudHMgc3VwcG9ydCBDb3NtaWMgQW5jZXN0cnk6DQoNCjE5OTU6IEFOU0VUIHNvbGQgdG8gQU9MLCB3aG8gIG5vdyBydW5zIGl0Lg0KMTk5NSAoTWFyKTogRGVwdC4gb2YgSW5kaWFuIE1lZGljaW5lIGFuZCBIb21lb3BhdGh5IGZvdW5kZWQuDQoxOTk1IChNYXIgMjQpOltSZXNlYXJjaF0gUmVtb3RlbHkgT3BlcmF0ZWQgVmVoaWNsZSBLQUlLTyByZWFjaGVkIHRoZSBkZWVwZXN0IGFyZWEgb2YgdGhlIE1hcmlhbmEgVHJlbmNoIGFuZCBtYWRlIHRoZSBkZWVwZXN0IGRpdmluZyByZWNvcmQgb2YgMTAsOTExIG0gKDM1LDc5NyBmdDsgNSw5NjYgZmF0aG9tcykgDQoxOTk1OiBwaG9uZSBjYWxsIGNvc3RpbmcgUnMuIDE2IHBlciBtaW4uDQoxOTk1OltHYW1pbmddIFZpcnR1YSBDb3AgMiBpcyBhIGxpZ2h0IGd1biBzaG9vdGVyIGFyY2FkZSBnYW1lLCByZWxlYXNlZCBpbiAxOTk1IGFuZCBkZXZlbG9wZWQgaW50ZXJuYWxseSBhdCBTZWdhIGJ5IHRoZWlyIEFNMiBzdHVkaW8gKFl1IFN1enVraSkuIEl0IHdhcyBwb3J0ZWQgdG8gdGhlIFNlZ2EgU2F0dXJuIGluIDE5OTYuIEl0IHdhcyByZWxlYXNlZCBvbiBQQyBpbiAxOTk3IGFuZCBTZWdhIERyZWFtY2FzdCBpbiAyMDAwLiBJdCB3YXMgbGF0ZXIgYnVuZGxlZCB3aXRoIFZpcnR1YSBDb3AgaW4gVmlydHVhIENvcDogRWxpdGUgRWRpdGlvbiBmb3IgUGxheVN0YXRpb24gMiBpbiAyMDAyLg0KMTk5NSAoQXByIDEpOltSZXNlYXJjaF0gUGlsbGFycyBvZiBDcmVhdGlvbiBpcyBhIHBob3RvZ3JhcGggdGFrZW4gYnkgdGhlIEh1YmJsZSBTcGFjZSBUZWxlc2NvcGUgb2YgZWxlcGhhbnQgdHJ1bmtzIG9mIGludGVyc3RlbGxhciBnYXMgYW5kIGR1c3QgaW4gdGhlIEVhZ2xlIE5lYnVsYSwgaW4gdGhlIFNlcnBlbnMgY29uc3RlbGxhdGlvbiwgc29tZSA2LDUwMOKAkzcsMDAwIGxpZ2h0LXllYXJzICgyLDAwMOKAkzIsMTAwIHBjOyA2MeKAkzY2IEVtKSBmcm9tIEVhcnRoLg0KMTk5NSAoQXByIDEpOiBJQUFJIGFuZCBOQUEgd2VyZSBtZXJnZWQgYnkgYW4gQWN0IG9mIFBhcmxpYW1lbnQgYW5kIHdhcyBuYW1lZCBhcyBBaXJwb3J0cyBBdXRob3JpdHkgb2YgSW5kaWEgKEFBSSkuIFRoaXMgbmV3IG9yZ2FuaXNhdGlvbiB3YXMgdG8gYmUgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nLCB1cGdyYWRpbmcsIG1haW50YWluaW5nIGFuZCBtYW5hZ2luZyBjaXZpbCBhdmlhdGlvbiBpbmZyYXN0cnVjdHVyZSBib3RoIG9uIHRoZSBncm91bmQgYW5kIGFpciBzcGFjZSBpbiB0aGUgY291bnRyeS4NCjE5OTUgKEFwciAyMSk6W0NyaW1lXVtJbmRpYV0gQmFibG9vIHBpY2tlZCB1cCBieSB0aGUgU2luZ2Fwb3JlIGFpcnBvcnQgcG9saWNlIGZvciB0cmF2ZWxsaW5nIG9uIGZha2UgcGFzc3BvcnQuIEhlIHdhcyBzdGF5aW5nIGluIER1YmFpLg0KMTk5NSAoU2VwIDMwKTpbQ3JpbWVdW0luZGlhXSBTaW5nYXBvcmUgZXh0cmFkaXRlcyBJbmRpYSdzICdtb3N0LXdhbnRlZCBpbnRlci1zdGF0ZSBjcmltaW5hbCcgQmFibG9vIFNyaXZhc3RhdmEgKDMzWU8pDQoxOTk1IChOb3YgMzApOiBPcGVyYXRpb24gRGVzZXJ0IFN0b3JtIChGaXJzdCBJcmFxIFdhcilvZmZpY2lhbGx5IGVuZGVkLg0KMTk5NSAoTWF5IDMxKTpbQm9va11bTWlsaXRhcnldIEFkbWlyYWwgV2lsbGlhbSBILiBNY1JhdmVuJ3MgU3BlYyBPcHM6IENhc2UgU3R1ZGllcyBpbiBTcGVjaWFsIE9wZXJhdGlvbnMgV2FyZmFyZTogVGhlb3J5IGFuZCBQcmFjdGljZTsgU2VhIFN0b3JpZXM6IE15IExpZmUgaW4gU3BlY2lhbCBPcGVyYXRpb25zICgyMDE5LCBNYXkgMSk7IFRoZSBIZXJvIENvZGU6IExlc3NvbnMgTGVhcm5lZCBmcm9tIExpdmVzIFdlbGwgTGl2ZWQgKDIwMjEsIEFwciAxMykNCjE5OTU6IERyLiBIYW5kZSBhZnRlciBncmFkdWF0aW5nIGZyb20gSUlUIEtoYXJhZ3B1ciBjb25jZXB0dWFsaXplZCBTRUxDTyBJbmRpYSBkdXJpbmcgaGlzIFBoRCBvbiBzdXN0YWluYWJsZSBlbmVyZ3kgYXQgdGhlIFVuaXZlcnNpdHkgb2YgTWFzc2FjaHVzZXR0cy4gRHVyaW5nIGEgZmllbGQgdmlzaXQgdG8gdGhlIERvbWluaWNhbiBSZXB1YmxpYywgaGUgd2FzIHN1cnByaXNlZCB0byBzZWUgdGhlIHBvb3IgdXNpbmcgc29sYXIgbGlnaHRzLg0KMTk5NTogVGhlIEdvdmVybm1lbnQgb2YgSW5kaWEgYW5kIHRoZSBHb3Zlcm5tZW50IG9mIERlbGhpIGpvaW50bHkgc2V0IHVwIGEgY29tcGFueSBjYWxsZWQgdGhlIERlbGhpIE1ldHJvIFJhaWwgQ29ycG9yYXRpb24gKERNUkMpIG9uIDMgTWF5IDE5OTUsIHdpdGggRHIuIEUuIFNyZWVkaGFyYW4gYXMgdGhlIG1hbmFnaW5nIGRpcmVjdG9yLg0KMTk5NTogSW50J2wgR2FuZGhpIFBlYWNlIFByaXplIGxhdW5jaGVkLg0KMTk5NTogU2FjaGluIFIuIFRlbmR1a2FyIGFuZCBBbmphbGkgVGVuZHVsa2FyIHdlZGRlZCB0b2dldGhlci4NCjE5OTU6IC5tcDMgaW52ZW50ZWQuDQoxOTk1OltHYW1pbmddIFdoaWxlIEZJRkEgOTUgZGlkIG5vdCBhZGQgbXVjaCBvdGhlciB0aGFuIHRoZSBhYmlsaXR5IHRvIHBsYXkgd2l0aCBjbHViIHRlYW1zLCBGSUZBIDk2IHB1c2hlZCB0aGUgYm91bmRhcmllcy4gRm9yIHRoZSBmaXJzdCB0aW1lIHdpdGggcmVhbCBwbGF5ZXIgbmFtZXMgYnkgb2J0YWluaW5nIHRoZSBGSUZQcm8gbGljZW5zZSwgdGhlIFBsYXlTdGF0aW9uLCBQQywgMzJYIGFuZCBTZWdhIFNhdHVybiB2ZXJzaW9ucyB1c2VkIEVBJ3MgIlZpcnR1YWwgU3RhZGl1bSIgZW5naW5lLCB3aXRoIDJEIHNwcml0ZSBwbGF5ZXJzIG1vdmluZyBhcm91bmQgYSByZWFsLXRpbWUgM0Qgc3RhZGl1bS4NCjE5OTUgKEp1bCAxOCk6W0Jvb2tdIEJhcmFjayBPYmFtYSdzIERyZWFtcyBmcm9tIE15IEZhdGhlcjogQSBTdG9yeSBvZiBSYWNlIGFuZCBJbmhlcml0YW5jZTsgRHJlYW1zIGZyb20gTXkgRmF0aGVyOiBBIFN0b3J5IG9mIFJhY2UgYW5kIEluaGVyaXRhbmNlICgyMDA2LCBPY3QgMTcpOyBPZiBUaGVlIEkgU2luZzogQSBMZXR0ZXIgdG8gTXkgRGF1Z2h0ZXJzICgyMDEwLCBOb3YgMTYpOyBBIFByb21pc2VkIExhbmQgKDIwMjAsIE5vdiAxNykNCjE5OTUoSmFuIDEpOltFbnZdIFRoZSBBZ3JlZW1lbnQgb24gQWdyaWN1bHR1cmUgKEFvQSkgaXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgb2YgdGhlIFdvcmxkIFRyYWRlIE9yZ2FuaXphdGlvbi4gSXQgd2FzIG5lZ290aWF0ZWQgZHVyaW5nIHRoZSBVcnVndWF5IFJvdW5kIG9mIHRoZSBHZW5lcmFsIEFncmVlbWVudCBvbiBUYXJpZmZzIGFuZCBUcmFkZSwgYW5kIGVudGVyZWQgaW50byBmb3JjZSB3aXRoIHRoZSBlc3RhYmxpc2htZW50IG9mIHRoZSBXVE8gb24gSmFudWFyeSAxLCAxOTk1LiBCbHVlLCBSZWQsIEFtYmVyIGFuZCBHcmVlbiBCb3ggb2Ygc3Vic2lkaWVzLg0KMTk5NTpbQ2luZW1hXSBOZWxzb24gTWFuZGVsYSwgaW4gaGlzIGZpcnN0IHRlcm0gYXMgUHJlc2lkZW50IG9mIFNvdXRoIEFmcmljYSwgaW5pdGlhdGVzIGEgdW5pcXVlIHZlbnR1cmUgdG8gdW5pdGUgdGhlIEFwYXJ0aGVpZC10b3JuIGxhbmQ6IGVubGlzdCB0aGUgbmF0aW9uYWwgcnVnYnkgdGVhbSBvbiBhIG1pc3Npb24gdG8gd2luIHRoZSAxOTk1IFJ1Z2J5IFdvcmxkIEN1cC4gLSAgSW52aWN0dXMgKDIwMDkpDQoxOTk1OltDaW5lbWFdIEEgQ2xvY2t3b3JrIE9yYW5nZSgxOTcxKQ0KMTk5NTpbQ2luZW1hXSBEZWFkIEVuZCBEcml2ZS1JbigxOTg2KQ0KMTk5NTpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gU3BhY2Vnb2R6aWxsYSgxOTk0KQ0KMTk5NTpbQ2luZW1hXSBIZWFydGJlZXBzKDE5ODEpDQoxOTk1OltDaW5lbWFdIFRoZSBNdW1teSdzIEN1cnNlKDE5NDQpDQoxOTk1IChEZWMpOltTcGFjZV0gU29sYXIgYW5kIEhlbGlvc3BoZXJpYyBPYnNlcnZhdG9yeSAoU29ITykgd2FzIGxhdW5jaGVkIGluIERlY2VtYmVyIDE5OTUgYXMgYSBqb2ludCBtaXNzaW9uIGJldHdlZW4gdGhlIEV1cm9wZWFuIFNwYWNlIEFnZW5jeSAoRVNBKSBhbmQgTkFTQSwgU29ITyB3YXMgZGVzaWduZWQgdG8gb3JiaXQgdGhlIFN1biB0byBsZWFybiBhYm91dCB0aGUgc3RydWN0dXJlIG9mIHRoZSBzdGFy4oCZcyBpbnRlcmlvciBhbmQgaXRzIG91dGVyIGF0bW9zcGhlcmUsIGFzIHdlbGwgYXMgdG8gaW52ZXN0aWdhdGUgdGhlIGJlaGF2aW9yIG9mIHNvbGFyIHdpbmRzLiBJdCB3YXMgZXhwZWN0ZWQgdG8gY29tcGxldGUgaXRzIG1pc3Npb24gaW4gMTk5OC4gSW5zdGVhZCwgaXQgaXMgc3RpbGwgYWN0aXZlIHRvZGF5LCBhbmQgaXMgbm93IGxpa2VseSB0byBrZWVwIHdvcmtpbmcgdW50aWwgMjAyNSwgd2hlbiBpdCB3aWxsIGhhdmUgYmVlbiBpbiBzcGFjZSBmb3IgMzAgeWVhcnMuDQoxOTk1OltQaHlzaWNzXVtTcGFjZV1bUmVzZWFyY2hdIFByaW9yIHRvIDE5OTUsIHRoZW9yaXN0cyBiZWxpZXZlZCB0aGF0IHRoZXJlIHdlcmUgZml2ZSBjb25zaXN0ZW50IHZlcnNpb25zIG9mIHN1cGVyc3RyaW5nIHRoZW9yeSAodHlwZSBJLCB0eXBlIElJQSwgdHlwZSBJSUIsIGFuZCB0d28gdmVyc2lvbnMgb2YgaGV0ZXJvdGljIHN0cmluZyB0aGVvcnkpLiBUaGlzIHVuZGVyc3RhbmRpbmcgY2hhbmdlZCBpbiAxOTk1IHdoZW4gRWR3YXJkIFdpdHRlbiBzdWdnZXN0ZWQgdGhhdCB0aGUgZml2ZSB0aGVvcmllcyB3ZXJlIGp1c3Qgc3BlY2lhbCBsaW1pdGluZyBjYXNlcyBvZiBhbiBlbGV2ZW4tZGltZW5zaW9uYWwgdGhlb3J5IGNhbGxlZCBNLXRoZW9yeS4gV2l0dGVuJ3MgY29uamVjdHVyZSB3YXMgYmFzZWQgb24gdGhlIHdvcmsgb2YgYSBudW1iZXIgb2Ygb3RoZXIgcGh5c2ljaXN0cywgaW5jbHVkaW5nIEFzaG9rZSBTZW4sIENocmlzIEh1bGwsIFBhdWwgVG93bnNlbmQsIGFuZCBNaWNoYWVsIER1ZmYuIEhpcyBhbm5vdW5jZW1lbnQgbGVkIHRvIGEgZmx1cnJ5IG9mIHJlc2VhcmNoIGFjdGl2aXR5IG5vdyBrbm93biBhcyB0aGUgc2Vjb25kIHN1cGVyc3RyaW5nIHJldm9sdXRpb24uDQoxOTk1OltDcmltZV1bSW5kaWFdIE11cmRlciBvZiBNdW1iYWktYmFzZWQgYnVpbGRlciBQcmFkZWVwIEphaW4gYnkgQWJ1IFNhbGVtDQoxOTk1OiBGb3J0dW5lIEhvdGVscyBpbiBJbmRpYSBpcyBvd25lZCBieSBpdHMgcGFyZW50IGNvbXBhbnksIElUQyBMdGQuLCB3aGljaCBlc3RhYmxpc2hlZCBGb3J0dW5lIEhvdGVscyBpbiAxOTk1IGFzIGEgc3Vic2lkaWFyeSB0byBwcm92aWRlIG1pZC1tYXJrZXQgdG8gdXBzY2FsZSBob3NwaXRhbGl0eSBzZXJ2aWNlcy4gSG93ZXZlciwgYSBzZXBhcmF0ZSBncm91cCwgRm9ydHVuZSBHcm91cCBvZiBIb3RlbHMsIGJhc2VkIGluIHRoZSBVbml0ZWQgQXJhYiBFbWlyYXRlcyAoVUFFKSBhbmQgZm91bmRlZCBieSBQcmF2ZWVuIFNoZXR0eSwgYWxzbyBvcGVyYXRlcyBhIGRpZmZlcmVudCBzZXQgb2YgaG90ZWxzIGluIHRoYXQgcmVnaW9uLg0KMTk5NTpbVUtdIENhbWlsbGEgaXMgUXVlZW4gb2YgdGhlIFVuaXRlZCBLaW5nZG9tIGFuZCAxNCBvdGhlciBDb21tb253ZWFsdGggcmVhbG1zIGFzIHRoZSB3aWZlIG9mIEtpbmcgQ2hhcmxlcyBJSUkuIENhbWlsbGEgd2FzIHJhaXNlZCBpbiBFYXN0IFN1c3NleCBhbmQgU291dGggS2Vuc2luZ3RvbiBpbiBFbmdsYW5kIGFuZCBlZHVjYXRlZCBpbiBFbmdsYW5kLCBTd2l0emVybGFuZCBhbmQgRnJhbmNlLiBJbiAxOTczLCBzaGUgbWFycmllZCBCcml0aXNoIEFybXkgb2ZmaWNlciBBbmRyZXcgUGFya2VyIEJvd2xlczsgdGhleSBkaXZvcmNlZCBpbiAxOTk1Lg0KDQoxOTk2OltHZW9Qb2xpdGljc11bQnVzaW5lc3NdIE1vbmdvbGlhIHdhcyBncmFudGVkIG9ic2VydmVyIHN0YXR1cyB0byBUUkFDRUNBLg0KMTk5NiAoNyBBdWd1c3QpOltSZXNlYXJjaF1bU3BhY2VdIE5BU0EgYW5ub3VuY2VkIGZvc3NpbGl6ZWQgZXZpZGVuY2Ugb2YgYW5jaWVudCBsaWZlIGluIG1ldGVvcml0ZSBBTEggODQwMDEgZnJvbSBNYXJzLg0KMTk5NiAoT2N0IDI3KTpbUmVzZWFyY2hdW1NwYWNlXSBnZW5ldGljaXN0cyBzaG93ZWQgZXZpZGVuY2UgdGhhdCBtYW55IGdlbmVzIGFyZSBtdWNoIG9sZGVyIHRoYW4gdGhlIGZvc3NpbCByZWNvcmQgd291bGQgaW5kaWNhdGUuIFN1YnNlcXVlbnQgc3R1ZGllcyBoYXZlIHN0cmVuZ3RoZW5lZCB0aGlzIGZpbmRpbmcuDQoxOTk2OltCdXNpbmVzc11bR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2hlbiB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4gc2lnbmVkIHRoZSBUcmVhdHkgb24gRGVlcGVuaW5nIE1pbGl0YXJ5IFRydXN0IGluIEJvcmRlciBSZWdpb25zIGluIFNoYW5naGFpLiBPbiAyNCBBcHJpbCAxOTk3IHRoZSBzYW1lIGNvdW50cmllcyBzaWduZWQgdGhlIFRyZWF0eSBvbiBSZWR1Y3Rpb24gb2YgTWlsaXRhcnkgRm9yY2VzIGluIEJvcmRlciBSZWdpb25zIGluIGEgbWVldGluZyBpbiBNb3Njb3csIFJ1c3NpYS4gT24gMjAgTWF5IDE5OTcgUnVzc2lhbiBQcmVzaWRlbnQgQm9yaXMgWWVsdHNpbiBhbmQgQ2hpbmVzZSBQcmVzaWRlbnQgSmlhbmcgWmVtaW4gc2lnbmVkIGEgZGVjbGFyYXRpb24gb24gYSAibXVsdGlwb2xhciB3b3JsZCIuDQoxOTk2OiAxOTk2IE1vdW50IEV2ZXJlc3QgRGlzYXN0ZXIsIGluIHdoaWNoIGVpZ2h0IHBlb3BsZSBkaWVkIHdoaWxlIG9uIGFuIGV4cGVkaXRpb24gdG8gc2NhbGUgdGhlIGluZmFtb3VzIHN1bW1pdC4gT25lIG9mIHRoZSBjbGltYmVycyB3aG8gbG9zdCBoaXMgbGlmZSB3YXMgQW5keSBIYXJyaXMsIHBsYXllZCBpbiBFdmVyZXN0IGJ5IE1hcnRpbiBIZW5kZXJzb24uIEhhcnJpcyB3YXMgb25lIG9mIHRoZSBndWlkZXMgZm9yIHRoZSBBZHZlbnR1cmUgQ29uc3VsdGFudHMsIGFsb25nIHdpdGggUm9iIEhhbGwgYW5kIE1pa2UgR3Jvb20uIEluIHRoZSBmaWxtLCBoZSBhcHBlYXJzIHRvIGRpZSB3aGlsZSB3aXRoIEhhbGwsIGZhbGxpbmcgb2ZmIGEgY2xpZmYgYWZ0ZXIgYSBoYWxsdWNpbmF0aW9uLiBCdXQgUm9iIEhhbGwgbmV2ZXIgcmVwb3J0ZWQgdGhpcywgYW5kIHNpbmNlIGhlIGRpZWQgc2hvcnRseSB0aGVyZWFmdGVyLCB0aGVyZSBpcyBubyB3YXkgdG8gY29uZmlybSB0aGUgY2lyY3Vtc3RhbmNlcyBzdXJyb3VuZGluZyBIYXJyaXMnIGRlYXRoLg0KMTk5NjpbQ29tcHV0aW5nXVtRdWFudHVtXSAgTG92IEdyb3ZlciBkZXZpc2VkIGFuIGFsZ29yaXRobSAoR3JvdmVyJ3MgYWxnb3JpdGhtKSB0aGF0IGNvdWxkIHNlYXJjaCBhbiB1bnNvcnRlZCBkYXRhYmFzZSBpbiBzcXVhcmUgcm9vdCB0aW1lIG9uIGEgcXVhbnR1bSBjb21wdXRlciwgd2hpY2ggd291bGQgb3V0cGVyZm9ybSBhbnkgY2xhc3NpY2FsIGFsZ29yaXRobS4NCjE5OTY6W1VTXSBCYXJhY2sgT2JhbWEgd2FzIGVsZWN0ZWQgdG8gdGhlIElsbGlub2lzIFNlbmF0ZSwgc3VjY2VlZGluZyBEZW1vY3JhdGljIFN0YXRlIFNlbmF0b3IgQWxpY2UgUGFsbWVyIGZyb20gSWxsaW5vaXMncyAxM3RoIERpc3RyaWN0LCB3aGljaCwgYXQgdGhhdCB0aW1lLCBzcGFubmVkIENoaWNhZ28gU291dGggU2lkZSBuZWlnaGJvcmhvb2RzIGZyb20gSHlkZSBQYXJr4oCTS2Vud29vZCBzb3V0aCB0byBTb3V0aCBTaG9yZSBhbmQgd2VzdCB0byBDaGljYWdvIExhd24uDQoxOTk2OltVS10gQ2hhcmxlcyBJSUkgYW5kIERpYW5hIGdldHMgZGl2b3JjZWQuDQoxOTk2IChKYW4gMjUpOltCb29rXSBQZXRlciBMeW5jaCAmIEpvaG4gUm90aGNoaWxkJ3MgTGVhcm4gdG8gRWFybjogQSBCZWdpbm5lcidzIEd1aWRlIHRvIHRoZSBCYXNpY3Mgb2YgSW52ZXN0aW5nIGFuZCBCdXNpbmVzcy4NCjE5OTYgKEphbik6W0NyaW1lXVtJbmRpYV0gQW5lZXMgSWJyYWhpbSBhcnJlc3RlZCBpbiBCYWhyYWluLCBzaGlmdGVkIHRvIER1YmFpIGFsbGVnZWRseSBvbiB0aGUgaW50ZXJ2ZW50aW9uIG9mIHNvbWUgb2YgRHViYWkncyBydWxpbmcgbm90YWJsZXMsIGFuZCB3YXMgdGhlbiBhbGxvd2VkIHRvIHNsaXAgYXdheSB0byBLYXJhY2hpLCBQYWtpc3Rhbi4NCjE5OTY6IE5hdGlvbmFsIEFlcm9zcGFjZSBMYWJvcmF0b3JpZXMsIEluZGlhIGluZGlnZW5vdXNseSBidWlsdCBGTE9TT0xWRVIsIEluZGlhJ3MgZmlyc3Qgc3VwZXJjb21wdXRlci4gSXQgd2FzIHJlcGxpY2F0ZWQgYW5kIGluc3RhbGxlZCBhdCBJQ0FEIE1vc2NvdyBpbiAxOTkxIHVuZGVyIFJ1c3NpYW4gY29sbGFib3JhdGlvbi4NCjE5OTY6IEluZGlhL1Bha2lzdGFuL1NyaSBMYW5rYSAxOTk2Lg0KMTk5NjpbQ29tcHV0aW5nXVt3d3ddIE1hcmlvIDY0IGdhbWUgcmFuIDEwMCBtaWxsaW9uIGNhbGN1bGF0aW9ucyBwZXIgc2Vjb25kLCA1NDAgbWlsbGlvbiAoSGFsZi1MaWZlKSBpbiAxOTk4LCBNaW5lY3JhZnQgKDIwMTEpIHJ1bm5pbmcgMTAwIGJpbGxpb24gY2FsY3VsYXRpb25zLCBDeWJlcnB1bmsgMjA3NyAobW9zdCByZWFsaXN0aWMgdmlkZW8gZ2FtZSAyMDI0KSwgeW91IG5lZWQgYSBncmFwaGljcyBjYXJkIHRoYXQgY2FuIHBlcmZvcm0gYXJvdW5kIDM2IHRyaWxsaW9uIGNhbGMgcGVyIHNlY29uZC4NCjE5OTY6IFByb2YgTWFsY29sbSBIZWF0aC4gUHJvZmVzc29yIG9mIEdyZWVrIExhbmd1YWdlIGFuZCBMaXRlcmF0dXJlIEBsZWVkcy5hYy51aywgdHJhbnNsYXRlZCBBcmlzdG90bGUncyBQb2V0aWNzLg0KMTk5NjogVGhlIDU2SyBtb2RlbSB3YXMgaW52ZW50ZWQgYnkgRHIuIEJyZW50IFRvd25zaGVuZA0KMTk5NiAoRmViIDEzKTogTmVwYWxlc2UgQ2l2aWwgV2FyIHN0YXJ0ZWQuIFRoZSBNYW9pc3QgUmViZWxsaW9uIChsYWJlbGxlZCB0aGUgUGVvcGxlJ3MgV2FyIGJ5IHRoZW4gQ1BOKE1hb2lzdCkpIHdhcyBhbiBhcm1lZCBjb25mbGljdCBhZ2FpbnN0IEdvdmVybm1lbnQgb2YgTmVwYWwgKHRoZW4gSE1HIG9mIE5lcGFsKSBmb3VnaHQgZnJvbSAxOTk2IHRvIDIwMDYuIFRoZSByZWJlbGxpb24gd2FzIGxhdW5jaGVkIGJ5IHRoZSBDb21tdW5pc3QgUGFydHkgb2YgTmVwYWwgKE1hb2lzdCkgb24gMTMgRmVicnVhcnkgMTk5NiB3aXRoIHRoZSBtYWluIGFpbSBvZiBvdmVydGhyb3dpbmcgdGhlIE5lcGFsZXNlIG1vbmFyY2h5IGFuZCBlc3RhYmxpc2hpbmcgYSAnUGVvcGxlJ3MgUmVwdWJsaWMnLiBJdCBlbmRlZCB3aXRoIHRoZSBDb21wcmVoZW5zaXZlIFBlYWNlIEFjY29yZCBzaWduZWQgb24gMjEgTm92ZW1iZXIgMjAwNi4NCjE5OTYgKE1hciAxKTogW0dlb1BvbGl0aWNzXSBUaGUgQXNpYeKAk0V1cm9wZSBNZWV0aW5nIChBU0VNKSBpcyBhbiBBc2lhbuKAk0V1cm9wZWFuIHBvbGl0aWNhbCBkaWFsb2d1ZSBmb3J1bSB0byBlbmhhbmNlIHJlbGF0aW9ucyBhbmQgdmFyaW91cyBmb3JtcyBvZiBjb29wZXJhdGlvbiBiZXR3ZWVuIGl0cyBwYXJ0bmVycy4gSXQgd2FzIG9mZmljaWFsbHkgZXN0YWJsaXNoZWQgYXQgdGhlIDFzdCBBU0VNIFN1bW1pdCAoQVNFTTEpIGluIEJhbmdrb2ssIFRoYWlsYW5kLCBieSB0aGUgdGhlbiAxNSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aGUgRXVyb3BlYW4gQ29tbWlzc2lvbiwgdGhlIHRoZW4gNyBNZW1iZXIgU3RhdGVzIG9mIHRoZSBBc3NvY2lhdGlvbiBvZiBTb3V0aGVhc3QgQXNpYW4gTmF0aW9ucyAoQVNFQU4pLCBhbmQgdGhlIGluZGl2aWR1YWwgY291bnRyaWVzIG9mIENoaW5hLCBKYXBhbiwgYW5kIFNvdXRoIEtvcmVhLiBBIHNlcmllcyBvZiBlbmxhcmdlbWVudHMgc2F3IGFkZGl0aW9uYWwgRVUgTWVtYmVyIFN0YXRlcyBqb2luIGFzIHdlbGwgYXMgSW5kaWEsIE1vbmdvbGlhLCBQYWtpc3RhbiBhbmQgdGhlIEFTRUFOIFNlY3JldGFyaWF0IGluIDIwMDgsIEF1c3RyYWxpYSwgTmV3IFplYWxhbmQgYW5kIFJ1c3NpYSBpbiAyMDEwLCBCYW5nbGFkZXNoLCBOb3J3YXksIGFuZCBTd2l0emVybGFuZCBpbiAyMDEyLCBhcyB3ZWxsIGFzIENyb2F0aWEsIGFuZCBLYXpha2hzdGFuIGluIDIwMTQuDQoxOTk2IChBcHIgMjYpOiBbR2VvUG9saXRpY3NdIFRoZSBTaGFuZ2hhaSBGaXZlIGdyb3VwIHdhcyBjcmVhdGVkIG9uIDI2IEFwcmlsIDE5OTYgd2l0aCB0aGUgc2lnbmluZyBvZiB0aGUgVHJlYXR5IG9uIERlZXBlbmluZyBNaWxpdGFyeSBUcnVzdCBpbiBCb3JkZXIgUmVnaW9ucyBpbiBTaGFuZ2hhaSBieSB0aGUgaGVhZHMgb2Ygc3RhdGVzIG9mIENoaW5hLCBLYXpha2hzdGFuLCBLeXJneXpzdGFuLCBSdXNzaWEgYW5kIFRhamlraXN0YW4uIExhdGVyIG9uIEp1biAxNSwgMjAwMSBpdCBnb3QgcmVuYW1lZCBhcyBTaGFuZ2hhaSBDb29wZXJhdGlvbiBPcmdhbmlzYXRpb24gKFNDTykgb3IgU2hhbmdoYWkgUGFjdCANCjE5OTYgKE1heSAxNik6IEF0YWwgQmloYXJpIFZhanBheWVlIGJlY29tZXMgUE0gb2YgSW5kaWEgZm9yIHRoZSB2ZXJ5IGZpcnN0IHRpbWUgZm9yIDE2IGRheXMuDQoxOTk2IChKdW4gMSk6IEF0YWwgQmloYXJpIFZhanBheWVlIHJlc2lnbnMuIEhEIERldmUgR293ZGEgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NiAoQXVnIDE0KTpbcmVzZWFyY2hdW2V4dHJlbWVdIEthcmVuIEVsaXphYmV0aCBXZXR0ZXJoYWhuIChPY3RvYmVyIDE2LCAxOTQ4IOKAkyBKdW5lIDgsIDE5OTcpLCBhbHNvIGtub3duIGFzIEthcmVuIFdldHRlcmhhaG4gSmVubmV0dGUsIHdhcyBhbiBBbWVyaWNhbiBwcm9mZXNzb3Igb2YgY2hlbWlzdHJ5IGF0IERhcnRtb3V0aCBDb2xsZWdlLCBOZXcgSGFtcHNoaXJlLCB3aG8gc3BlY2lhbGl6ZWQgaW4gdG94aWMgbWV0YWwgZXhwb3N1cmUuIFNoZSBkaWVkIG9mIG1lcmN1cnkgcG9pc29uaW5nIGF0IHRoZSBhZ2Ugb2YgNDggZHVlIHRvIGFjY2lkZW50YWwgZXhwb3N1cmUgdG8gdGhlIGV4dHJlbWVseSB0b3hpYyBvcmdhbmljIG1lcmN1cnkgY29tcG91bmQgZGltZXRoeWxtZXJjdXJ5IChIZyhDSDMpMikuIFByb3RlY3RpdmUgZ2xvdmVzIGluIHVzZSBhdCB0aGUgdGltZSBvZiB0aGUgaW5jaWRlbnQgcHJvdmlkZWQgaW5zdWZmaWNpZW50IHByb3RlY3Rpb24sIGFuZCBleHBvc3VyZSB0byBvbmx5IGEgc2luZ2xlIGRyb3Agb3IgdHdvIG9mIHRoZSBkaW1ldGh5bG1lcmN1cnkgYWJzb3JiZWQgdGhyb3VnaCB0aGUgZ2xvdmVzIHByb3ZlZCB0byBiZSBmYXRhbCBhZnRlciBsZXNzIHRoYW4gYSB5ZWFyLiBUZXN0cyBsYXRlciByZXZlYWxlZCB0aGF0IGRpbWV0aHlsbWVyY3VyeSBjYW4sIGluIGZhY3QsIHJhcGlkbHkgcGVybWVhdGUgc2V2ZXJhbCBraW5kcyBvZiBsYXRleCBnbG92ZXMgYW5kIGVudGVyIHRoZSBza2luIHdpdGhpbiBhYm91dCAxNSBzZWNvbmRzLiBIZXIgZXhwb3N1cmUgd2FzIGxhdGVyIGNvbmZpcm1lZCBieSBoYWlyIGFuYWx5c2lzLCB3aGljaCBzaG93ZWQgYSBkcmFtYXRpYyBqdW1wIGluIG1lcmN1cnkgbGV2ZWxzIDE3IGRheXMgYWZ0ZXIgdGhlIGluaXRpYWwgYWNjaWRlbnQsIHBlYWtpbmcgYXQgMzkgZGF5cywgZm9sbG93ZWQgYnkgYSBncmFkdWFsIGRlY2xpbmUuIEFwcHJveGltYXRlbHkgdGhyZWUgbW9udGhzIGFmdGVyIHRoZSBpbml0aWFsIGFjY2lkZW50IFdldHRlcmhhaG4gYmVnYW4gZXhwZXJpZW5jaW5nIGJyaWVmIGVwaXNvZGVzIG9mIGFiZG9taW5hbCBkaXNjb21mb3J0IGFuZCBub3RpY2VkIHNpZ25pZmljYW50IHdlaWdodCBsb3NzLiBUaGUgbW9yZSBkaXN0aW5jdGl2ZSBuZXVyb2xvZ2ljYWwgc3ltcHRvbXMgb2YgbWVyY3VyeSBwb2lzb25pbmcsIGluY2x1ZGluZyBsb3NzIG9mIGJhbGFuY2UgYW5kIHNsdXJyZWQgc3BlZWNoLCBhcHBlYXJlZCBpbiBKYW51YXJ5IDE5OTcsIGZpdmUgbW9udGhzIGFmdGVyIHRoZSBhY2NpZGVudC4gSGVyIGJsb29kIGFuZCB1cmluYXJ5IG1lcmN1cnkgY29udGVudCB3ZXJlIG1lYXN1cmVkIGF0IDQsMDAwIM68Zy9MIGFuZCAyMzQgzrxnL0wsIHJlc3BlY3RpdmVseeKAlGJvdGggbWFueSB0aW1lcyB0aGVpciByZXNwZWN0aXZlIHRveGljIHRocmVzaG9sZHMgb2YgMjAwIM68Zy9MIGFuZCA1MCDOvGcvTCAoYmxvb2QgYW5kIHVyaW5lIHJlZmVyZW5jZSByYW5nZXMgYXJlIDEgdG8gOCDOvGcvTCBhbmQgMSB0byA1IM68Zy9MKS4NCjE5OTYgKERlYyA0IDA2OjU4OjA3IFVUQyk6W1NwYWNlXVtNYXJzXVtFYXJ0aF0gTGF1bmNoIG9mIE1hcnMgUGF0aGZpbmRlciBvbiBEZWx0YSBJSSA3OTI1ICgjRDI0MCkNCnJvY2tldCBmcm9tIENhcGUgQ2FuYXZlcmFsIFNMQy0xNy4gVG8gcHJvdmUgdGhhdCB0aGUgZGV2ZWxvcG1lbnQgb2YgImZhc3RlciwgYmV0dGVyIGFuZCBjaGVhcGVyIiBzcGFjZWNyYWZ0IHdhcyBwb3NzaWJsZSAod2l0aCB0aHJlZSB5ZWFycyBmb3IgZGV2ZWxvcG1lbnQgYW5kIGEgY29zdCB1bmRlciAkMTUwIG1pbGxpb24gZm9yIHRoZSBsYW5kZXIsIGFuZCAkMjUgbWlsbGlvbiBmb3IgdGhlIHJvdmVyKS4gVG8gc2hvdyB0aGF0IGl0IHdhcyBwb3NzaWJsZSB0byBzZW5kIGEgbG9hZCBvZiBzY2llbnRpZmljIGluc3RydW1lbnRzIHRvIGFub3RoZXIgcGxhbmV0IHdpdGggYSBzaW1wbGUgc3lzdGVtIGFuZCBhdCBvbmUtZmlmdGVlbnRoIHRoZSBjb3N0IG9mIGEgVmlraW5nIG1pc3Npb24uIChGb3IgY29tcGFyaXNvbiwgdGhlIFZpa2luZyBtaXNzaW9ucyBjb3N0ICQ5MzUgbWlsbGlvbiBpbiAxOTc0IG9yICQzLjUgYmlsbGlvbiBpbiAxOTk3IGRvbGxhcnMuKS4gVG8gZGVtb25zdHJhdGUgTkFTQSdzIGNvbW1pdG1lbnQgdG8gbG93LWNvc3QgcGxhbmV0YXJ5IGV4cGxvcmF0aW9uIGJ5IGZpbmlzaGluZyB0aGUgbWlzc2lvbiB3aXRoIGEgdG90YWwgZXhwZW5kaXR1cmUgb2YgJDI4MCBtaWxsaW9uLCBpbmNsdWRpbmcgdGhlIGxhdW5jaCB2ZWhpY2xlIGFuZCBtaXNzaW9uIG9wZXJhdGlvbnMuDQoxOTk2OiBhIHJhaWQgb24gdGhlIEFuaW1hbCBIdXNiYW5kcnkgZGVwYXJ0bWVudOKAmXMgb2ZmaWNlcyBpbiBDaGFpYmFzYSwgQmloYXIgdW5mb2xkZWQgdGhlIFJzLjk1MCBjcm9yZSBmb2RkZXIgc2NhbSwgaW4gd2hpY2ggdGhlIEJpaGFyIGNoaWVmIG1pbmlzdGVyIExhbHUgUHJhc2FkIFlhZGF2IGNhdGNoIHVwIGluIGEgbGlmZWxvbmcgdHVzc2xlIHdpdGggdGhlIENCSS4NCjE5OTY6W0Jvb2tdW0FkdmVudHVyZV0gSm9uIEtyYWthdWVyJ3MgSW50byB0aGUgV2lsZC4NCjE5OTY6W0NvbXB1dGluZ10gVGhlIFZpZGVvTEFOIHNvZnR3YXJlIG9yaWdpbmF0ZWQgYXMgYSBGcmVuY2ggYWNhZGVtaWMgcHJvamVjdC4gVkxDIHVzZWQgdG8gc3RhbmQgZm9yICJWaWRlb0xBTiBDbGllbnQiIHdoZW4gVkxDIHdhcyBhIGNsaWVudCBvZiB0aGUgVmlkZW9MQU4gcHJvamVjdCwgb2ZmaWNpYWxseSByZWxlYXNlZCB1bmRlciBHTlUgR1BMIG9uIDIwMDEgKEZlYiAxKS4NCjE5OTY6W01lbWVdIERhbmNpbmcgQmFieSBTY3JlZW5zYXZlcg0KMTk5NjpbU3BhY2VYXSBUaGUgZW50aXJlIHByb2Nlc3MgZm9yIHRoZSBKYW1lcyBXZWJiIFNwYWNlIFRlbGVzY29wZSAoSldTVCkgZnJvbSBpbml0aWFsIGNvbmNlcHQgdG8gbGF1bmNoIHNwYW5uZWQgYXBwcm94aW1hdGVseSAyNSB5ZWFycywgd2l0aCBpbml0aWFsIGRlc2lnbnMgYmVnaW5uaW5nIGluIDE5OTYgYW5kIHRoZSB0ZWxlc2NvcGUgbGF1bmNoaW5nIGluIDIwMjEsIGJ1dCBhIHNpZ25pZmljYW50IHBvcnRpb24gb2YgdGhpcyB3YXMgc3BlbnQgaW4gZGVzaWduLCB0ZXN0aW5nLCBhbmQgb3ZlcmNvbWluZyBtYWpvciByZWRlc2lnbnMgYW5kIGRlbGF5cywgbm90IGp1c3QgYXNzZW1ibHkuIA0KMTk5NiAoRmViIDI4KTpbRGVsaGldIEluZGlyYXB1cmFtLCBHaGF6aWFiYWQgd2FzIGVzdGQgd2hlbiBpdHMgZm91bmRhdGlvbiBzdG9uZSAoS2FsYSBQYXRoYXIpIHdhcyBpbmF1Z3VyYXRlZCBieSBTaCBNb3RpbGFsIFZvcmEsIHRoZW4gR292ZXJub3Igb2YgVVAuICgyMDIxKSBJJ3B1cmFtIEV4dG4gdG8gYmUgYnVpbHQgb24gMTIgYWNyZXMgb25seSwgY29uY2VpdmVkIGluIDIwMDQuDQoxOTk2OltCb29rXVtNaWxpdGFyeV1bQ3VsdHVyZV1bRVVdW1VTQV0gR2VvcmdlIFIuUi4gTWFydGluIGlzIHRoZSBBbWVyaWNhbiBhdXRob3Igb2YgdGhlIGVwaWMgZmFudGFzeSBib29rIHNlcmllcyBBIFNvbmcgb2YgSWNlIGFuZCBGaXJlLCB3aGljaCBiZWdhbiB3aXRoIEEgR2FtZSBvZiBUaHJvbmVzICgxOTk2KSBhbmQgc2VydmVkIGFzIHRoZSBiYXNpcyBmb3IgSEJPJ3MgbWFzc2l2ZWx5IHBvcHVsYXIgR2FtZSBvZiBUaHJvbmVzIFRWIHNlcmllcy4gQSBTb25nIG9mIEljZSBhbmQgRmlyZSBpcyBhIHNlcmllcyBvZiBoaWdoIGZhbnRhc3kgbm92ZWxzIGJ5IHRoZSBBbWVyaWNhbiBhdXRob3IgR2VvcmdlIFIuIFIuIE1hcnRpbi4gTWFydGluIGJlZ2FuIHdyaXRpbmcgdGhlIGZpcnN0IHZvbHVtZSwgQSBHYW1lIG9mIFRocm9uZXMsIGluIDE5OTEsIGFuZCBwdWJsaXNoZWQgaXQgaW4gMTk5Ni4gTWFydGluLCB3aG8gb3JpZ2luYWxseSBlbnZpc2lvbmVkIHRoZSBzZXJpZXMgYXMgYSB0cmlsb2d5LCBoYXMgcmVsZWFzZWQgZml2ZSBvdXQgb2Ygc2V2ZW4gcGxhbm5lZCB2b2x1bWVzLiANCg0KW0dlbmVyYXRpb25dIE1pbGxlbm5pYWwgZ2VuZXJhdGlvbiAoMTk4MeKAkzE5OTYpIGVuZHM7IGxhc3RlZCBmb3IgMTUgeWVhcnMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICA1MCB5ZWFycyBvZiBJbmRlcGVuZGVudCBJbmRpYSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSANCg0KW0dlbmVyYXRpb25dIEdlbiBaICgxOTk34oCTMjAxMikgc3RhcnRzOyBhbmQgZXhpc3RzIGZvciBuZXh0IDE1IHllYXJzLg0KDQoxOTk3OltXaG9dW1Jlc2VhcmNoXVtDb21wdXRpbmddW1RlY2hdW0N1bHR1cmVdIFZMQyBNZWRpYSBQbGF5ZXIgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBzdHVkZW50cyBhdCB0aGUgRnJlbmNoIGVuZ2luZWVyaW5nIHNjaG9vbCDDiWNvbGUgQ2VudHJhbGUgUGFyaXMgaW4gMTk5Ni4gV2hpbGUgaXQgc3RhcnRlZCBhcyBhbiBhY2FkZW1pYyBwcm9qZWN0IChWaWRlb0xBTikgdG8gc3RyZWFtIHZpZGVvIG92ZXIgYSBjYW1wdXMgbmV0d29yaywgaXRzIGRldmVsb3BtZW50IGFuZCBtb2Rlcm5pemF0aW9uIHdlcmUgbGF0ZXIgbGVkIGJ5IEplYW4tQmFwdGlzdGUgS2VtcGYuIA0KMTk5NzpbUmVzZWFyY2hdW1NwYWNlXSAyOSBKdWx5IDE5OTc6IGEgTkFTQSBzY2llbnRpc3QgYW5ub3VuY2VkIGV2aWRlbmNlIG9mIGZvc3NpbGl6ZWQgbWljcm9zY29waWMgbGlmZSBmb3JtcyBpbiBhIG1ldGVvcml0ZSBub3QgZnJvbSBhbnkga25vd24gcGxhbmV0Lg0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgR3JvdXAgb2YgRWlnaHQgKEc4KSB3YXMgYW4gaW50ZXJnb3Zlcm5tZW50YWwgcG9saXRpY2FsIGZvcnVtIGZyb20gMTk5NyB0byAyMDE0LCBmb3JtZWQgYnkgaW5jb3Jwb3JhdGluZyBSdXNzaWEgaW50byB0aGUgRzcuIFRoZSBHOCBiZWNhbWUgdGhlIEc3IGFnYWluIGFmdGVyIFJ1c3NpYSB3YXMgZXhwZWxsZWQgaW4gMjAxNCBhZnRlciB0aGUgUnVzc2lhbiBhbm5leGF0aW9uIG9mIENyaW1lYS4gRm91bmRlZDogMTk5NywgRGVudmVyLCBDb2xvcmFkbywgVW5pdGVkIFN0YXRlcw0KMTk5NzpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBGb3VuZGVkOiA2IEp1bmUgMTk5NywgVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiAoQklNU1RFQykgaXMgYW4gaW50ZXJuYXRpb25hbCBvcmdhbml6YXRpb24gb2Ygc2V2ZW4gU291dGggQXNpYW4gYW5kIFNvdXRoZWFzdCBBc2lhbiBuYXRpb25zLCBob3VzaW5nIDEuNzMgYmlsbGlvbiBwZW9wbGUgYW5kIGhhdmluZyBhIGNvbWJpbmVkIGdyb3NzIGRvbWVzdGljIHByb2R1Y3Qgb2YgVVMkNS4yIHRyaWxsaW9uLg0KMTk5NzpbQ29tcHV0aW5nXVtRdWFudHVtXSBJQk0gYnVpbHQgdGhlIGZpcnN0IGV4cGVyaW1lbnRhbCBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCBjb3VsZCBtYW5pcHVsYXRlIDcgcXViaXRzIHVzaW5nIG51Y2xlYXIgbWFnbmV0aWMgcmVzb25hbmNlIChOTVIpIHRlY2huaXF1ZXMuDQoxOTk3IChKdWwgNCk6W1NwYWNlXVtNYXJzXSBUaGUgTWFycyBQYXRoZmluZGVyIGVuZHVyZWQgYSAzMC1zZWNvbmQgY29tbXVuaWNhdGlvbnMgYmxhY2tvdXQgYXMgaXQgZW50ZXJlZCBNYXJzJyBhdG1vc3BoZXJlLiBJdCBsYW5kZWQgYXQgQXJlcyBWYWxsaXMsIENocnlzZSBQbGFuaXRpYSwgTWFycyAxOcKwN+KAsjQ44oCzTiAzM8KwMTPigLIxMuKAs1cuIE1hcnMgUGF0aGZpbmRlciAoTUVTVVIgUGF0aGZpbmRlcikgaXMgYW4gQW1lcmljYW4gcm9ib3RpYyBzcGFjZWNyYWZ0IHRoYXQgbGFuZGVkIGEgYmFzZSBzdGF0aW9uIHdpdGggYSByb3ZpbmcgcHJvYmUgb24gTWFycyBpbiAxOTk3LiBJdCBjb25zaXN0ZWQgb2YgYSBsYW5kZXIsIHJlbmFtZWQgdGhlIENhcmwgU2FnYW4gTWVtb3JpYWwgU3RhdGlvbiwgYW5kIGEgbGlnaHR3ZWlnaHQsIDEwLjYga2cgKDIzIGxiKSB3aGVlbGVkIHJvYm90aWMgTWFycyByb3ZlciBuYW1lZCBTb2pvdXJuZXIsIHRoZSBmaXJzdCByb3ZlciB0byBvcGVyYXRlIG91dHNpZGUgdGhlIEVhcnRo4oCTTW9vbiBzeXN0ZW0uDQoxOTk3OltCb29rXSBNaXRjaCBBbGJvbSdzIFR1ZXNkYXlzIHdpdGggTW9ycmllLg0KMTk5NzpbR2FtaW5nXSBHcmFuZCBUaGVmdCBBdXRvIChHVEEpIHJlbGVhc2VkIGJ5IERNQSBEZXNpZ24gKGxhdGVyIFJvY2tzdGFyIE5vcnRoKSBmb3IgUFMxLCBXaW5kb3dzIGFuZCBNUy1ET1M7IEdyYW5kIFRoZWZ0IEF1dG86IFZpY2UgQ2l0eSAoMjAwMik7IEdyYW5kIFRoZWZ0IEF1dG86IFNhbiBBbmRyZWFzICgyMDA0KTsgR3JhbmQgVGhlZnQgQXV0byBJViAoMjAwOCk7IEdyYW5kIFRoZWZ0IEF1dG8gViAoMjAxMyk7IEdyYW5kIFRoZWZ0IEF1dG86IFRoZSBUcmlsb2d5IOKAkyBUaGUgRGVmaW5pdGl2ZSBFZGl0aW9uICgyMDIxKQ0KMTk5NzogVGVra2VuIDMgd2FzIGRlc2lnbmVkIGJ5IEthdHN1aGlybyBIYXJhZGEgKE9zYWthLCBPc2FrYSBQcmVmZWN0dXJlLCBKYXBhbikgb2YgQmFuZGFpIE5hbWNvIEVudGVydGFpbm1lbnQgaGVhZHF1YXJ0ZXJlZCBhdCDFjHRhLCBUb2t5by4NCjE5OTcgKE1hciA2KTogW0dlb1BvbGl0aWNzXSBUaGUgSW5kaWFuIE9jZWFuIFJpbSBBc3NvY2lhdGlvbiwgZm9ybWVybHkga25vd24gYXMgdGhlIEluZGlhbiBPY2VhbiBSaW0gSW5pdGlhdGl2ZSBhbmQgdGhlIEluZGlhbiBPY2VhbiBSaW0gQXNzb2NpYXRpb24gZm9yIFJlZ2lvbmFsIENvb3BlcmF0aW9uLCBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBjb25zaXN0aW5nIG9mIDIzIHN0YXRlcyBib3JkZXJpbmcgdGhlIEluZGlhbiBPY2Vhbi4gVGhlIElPUkEgaXMgYSByZWdpb25hbCBmb3J1bSwgdHJpcGFydGl0ZSBpbiBuYXR1cmUsIGJyaW5naW5nIHRvZ2V0aGVyIHJlcHJlc2VudGF0aXZlcyBvZiBHb3Zlcm5tZW50LCBCdXNpbmVzcyBhbmQgQWNhZGVtaWEsIGZvciBwcm9tb3RpbmcgY28tb3BlcmF0aW9uIGFuZCBjbG9zZXIgaW50ZXJhY3Rpb24gYW1vbmcgdGhlbS4gSXQgaXMgYmFzZWQgb24gdGhlIHByaW5jaXBsZXMgb2YgT3BlbiBSZWdpb25hbGlzbSBmb3Igc3RyZW5ndGhlbmluZyBFY29ub21pYyBDb29wZXJhdGlvbiBwYXJ0aWN1bGFybHkgb24gVHJhZGUgRmFjaWxpdGF0aW9uIGFuZCBJbnZlc3RtZW50LCBQcm9tb3Rpb24gYXMgd2VsbCBhcyBTb2NpYWwgRGV2ZWxvcG1lbnQgb2YgdGhlIHJlZ2lvbi4gVGhlIENvb3JkaW5hdGluZyBTZWNyZXRhcmlhdCBvZiBJT1JBIGlzIGxvY2F0ZWQgYXQgRWJlbmUsIE1hdXJpdGl1cy4NCjE5OTcgKEFwciAyMSk6IEguRC4gRGV2ZSBHb3dkYSByZXNpZ25zLiBJbmRlciBLdW1hciBHdWpyYWwgYmVjb21lcyBQTSBvZiBJbmRpYSBmb3IgMSB5ZWFyLg0KMTk5NyAoSnVuIDYpOiBbR2VvUG9saXRpY3NdIEJJTVNURUMgZm91bmRlZC4gVGhlIEJheSBvZiBCZW5nYWwgSW5pdGlhdGl2ZSBmb3IgTXVsdGktU2VjdG9yYWwgVGVjaG5pY2FsIGFuZCBFY29ub21pYyBDb29wZXJhdGlvbiBpcyBhbiBpbnRlcm5hdGlvbmFsIG9yZ2FuaXNhdGlvbiBvZiBzZXZlbiBTb3V0aCBBc2lhbiBhbmQgU291dGhlYXN0IEFzaWFuIG5hdGlvbnMsIGhvdXNpbmcgMS43MyBiaWxsaW9uIHBlb3BsZSBhbmQgaGF2aW5nIGEgY29tYmluZWQgZ3Jvc3MgZG9tZXN0aWMgcHJvZHVjdCBvZiAkMy44IHRyaWxsaW9uLiBUaGUgQklNU1RFQyBtZW1iZXIgc3RhdGVzIOKAkyBCYW5nbGFkZXNoLCBCaHV0YW4sIEluZGlhLCBNeWFubWFyLCBOZXBhbCwgU3JpIExhbmthLCBhbmQgVGhhaWxhbmQg4oCTIGFyZSBhbW9uZyB0aGUgY291bnRyaWVzIGRlcGVuZGVudCBvbiB0aGUgQmF5IG9mIEJlbmdhbC4NCjE5OTcgKEp1biA4KTogRGVzcGl0ZSBhZ2dyZXNzaXZlIGNoZWxhdGlvbiB0aGVyYXB5LCBoZXIgY29uZGl0aW9uIHJhcGlkbHkgZGV0ZXJpb3JhdGVkLiBUaHJlZSB3ZWVrcyBhZnRlciB0aGUgZmlyc3QgbmV1cm9sb2dpY2FsIHN5bXB0b21zIGFwcGVhcmVkLCBXZXR0ZXJoYWhuIGxhcHNlZCBpbnRvIHdoYXQgYXBwZWFyZWQgdG8gYmUgYSB2ZWdldGF0aXZlIHN0YXRlIHB1bmN0dWF0ZWQgYnkgcGVyaW9kcyBvZiBleHRyZW1lIGFnaXRhdGlvbi4gT25lIG9mIGhlciBmb3JtZXIgc3R1ZGVudHMgc2FpZCB0aGF0ICJIZXIgaHVzYmFuZCBzYXcgdGVhcnMgcm9sbGluZyBkb3duIGhlciBmYWNlLiBJIGFza2VkIGlmIHNoZSB3YXMgaW4gcGFpbi4gVGhlIGRvY3RvcnMgc2FpZCBpdCBkaWRuJ3QgYXBwZWFyIHRoYXQgaGVyIGJyYWluIGNvdWxkIGV2ZW4gcmVnaXN0ZXIgcGFpbi4iIFdldHRlcmhhaG4gd2FzIHJlbW92ZWQgZnJvbSBsaWZlIHN1cHBvcnQgYW5kIHByb25vdW5jZWQgZGVhZCBvbiBKdW5lIDgsIDE5OTcsIHRlbiBtb250aHMgYWZ0ZXIgaGVyIGluaXRpYWwgZXhwb3N1cmUuIEluIHJlc3BvbnNlLCB0aGUgT2NjdXBhdGlvbmFsIFNhZmV0eSBhbmQgSGVhbHRoIEFkbWluaXN0cmF0aW9uIHJlY29tbWVuZGVkIHRoYXQgdGhlIHVzZSBvZiBkaW1ldGh5bG1lcmN1cnkgYmUgYXZvaWRlZCB1bmxlc3MgYWJzb2x1dGVseSBuZWNlc3NhcnkgYW5kIG1hbmRhdGVkIHRoZSB1c2Ugb2YgcGxhc3RpYy1sYW1pbmF0ZSBnbG92ZXMgKFNpbHZlclNoaWVsZCkgd2hlbiBoYW5kbGluZyB0aGlzIGNvbXBvdW5kLg0KMTk5NyAoSnVuIDEzKTpbSmFja10gQm9yZGVyDQoxOTk3IChKdW4gMjYpOltCb29rXSAzMllPIEouIEsuIFJvd2xpbmcgcHVibGlzaGVzIGhlciBmaXJzdCBIYXJyeSBQb3R0ZXIgYm9vaywgVGhlIFBoaWxvc29waGVyJ3MgU3RvbmU7IA0KVGhlIENoYW1iZXIgb2YgU2VjcmV0cyAoMiBKdWx5IDE5OTgpLA0KVGhlIFByaXNvbmVyIG9mIEF6a2FiYW4gKDggSnVseSAxOTk5KSwNClRoZSBHb2JsZXQgb2YgRmlyZSAoOCBKdWx5IDIwMDApLA0KVGhlIE9yZGVyIG9mIHRoZSBQaG9lbml4ICgsIDI3IEp1bmUgMjAwMyksDQpUaGUgSGFsZi1CbG9vZCBQcmluY2UgKDE2IEp1bHkgMjAwNSksDQpUaGUgRGVhdGhseSBIYWxsb3dzICgyMSBKdWx5IDIwMDcpDQoxOTk3IChBdWcgMjUpOltTcGFjZV0gQWR2YW5jZWQgQ29tcG9zaXRpb24gRXhwbG9yZXIgaXMgYSBOQVNBIEV4cGxvcmVyIHByb2dyYW0gc2F0ZWxsaXRlIGFuZCBzcGFjZSBleHBsb3JhdGlvbiBtaXNzaW9uIHRvIHN0dWR5IG1hdHRlciBjb21wcmlzaW5nIGVuZXJnZXRpYyBwYXJ0aWNsZXMgZnJvbSB0aGUgc29sYXIgd2luZCwgdGhlIGludGVycGxhbmV0YXJ5IG1lZGl1bSwgYW5kIG90aGVyIHNvdXJjZXMuDQoxOTk3IChTZXAgMTMpOiB0aGUgaW50cm9kdWN0b3J5IGVwaXNvZGUgb2YgU2hha3RpbWFuIHdhcyBhaXJlZCBvbiBEb29yZGFyc2hhbiAoSW5kaWEncyBuYXRpb25hbCB0ZWxldmlzaW9uIG5ldHdvcmspIGZyb20gMjcgU2VwdGVtYmVyIDE5OTcgdG8gMjcgTWFyY2ggMjAwNSwgb24gU3VuZGF5cyBhdCAxMiBub29uIElTVC4gVGhlIHRlbGVjYXN0IHNsb3QsIGhvd2V2ZXIgd2FzIHNoaWZ0ZWQgdG8gOTozMCBhLm0uIGZvciB0aGUgbGFzdCBlcGlzb2Rlcy4gDQoxOTk3IChTZXAgMjcgMTA6MjMgVVRDKTpbU3BhY2VdW01hcnNdIExhc3QgY29udGFjdCB3aXRoIE1hcnMgUGF0aGZpbmRlci4gTWlzc2lvbiBkdXJhdGlvbiAoTGF1bmNoIHRvIGxhc3QgY29udGFjdCk6IDkgbW9udGhzLCAyMyBkYXlzLg0KMTk5NyAoT2N0IDMxKTpbQm9va10gRG9uYWxkIFRydW1wJ3MgVHJ1bXA6IFRoZSBBcnQgb2YgdGhlIENvbWViYWNrOyBUaGUgQW1lcmljYSBXZSBEZXNlcnZlICgyMDAwKTsgVHJ1bXA6IFRoaW5rIExpa2UgYSBCaWxsaW9uYWlyZTogRXZlcnl0aGluZyBZb3UgTmVlZCB0byBLbm93IEFib3V0IFN1Y2Nlc3MsIFJlYWwgRXN0YXRlLCBhbmQgTGlmZSAoMjAwNCk7IFdoeSBXZSBXYW50IFlvdSB0byBCZSBSaWNoICgyMDA2KTsgVHJ1bXA6IFRoZSBCZXN0IFJlYWwgRXN0YXRlIEFkdmljZSBJIEV2ZXIgUmVjZWl2ZWQ6IDEwMCBUb3AgRXhwZXJ0cyBTaGFyZSBUaGVpciBTdHJhdGVnaWVzICgyMDA2LCBOb3YgMSk7IFRoaW5rIEJJRyBhbmQgS2ljayBBc3MgaW4gQnVzaW5lc3MgYW5kIExpZmUgKDIwMDcpOyBUcnVtcCBOZXZlciBHaXZlIFVwOiBIb3cgSSBUdXJuZWQgTXkgQmlnZ2VzdCBDaGFsbGVuZ2VzIGludG8gU3VjY2VzcyAoMjAwOCk7IFRpbWUgdG8gR2V0IFRvdWdoOiBNYWtpbmcgQW1lcmljYSAjMSBBZ2FpbiAoMjAxMSk7IENyaXBwbGVkIEFtZXJpY2E6IEhvdyB0byBNYWtlIEFtZXJpY2EgR3JlYXQgQWdhaW4gKDIwMTUpDQoxOTk3OiBBcnVuZGhhdGkgUm95IGJlY2FtZSB0aGUgZmlyc3QgSW5kaWFuIHRvIHdpbiBNYW4gQm9va2VyIFByaXplIGZvciBoZXIgbm92ZWwgJ1RoZSBHb2Qgb2YgU21hbGwgVGhpbmdzJy4NCjE5OTc6IElJVC1KRUUgd2FzIGNvbmR1Y3RlZCB0d2ljZSBhZnRlciB0aGUgUS1QYXBlciB3YXMgbGVha2VkLg0KMTk5NzogTkFTQSBlc3RpbWF0ZWQgdGhlcmUgd2VyZSBhcHByb3guIDIsNjQ1IGFydGlmaWNpYWwgc2F0ZWxsaXRlIHBheWxvYWRzIG9yYml0dGluZyB0aGUgZWFydGggYW5kIDYsMjE2IHBpZWNlcyBvZiBzcGFjZSBkZWJyaXMgYXMgdHJhY2tlZCBieSB0aGUgR1NGQy4gT3ZlciAxNiwyOTEgcHJldmlvdXNseSBsYXVuY2hlZCBvYmplY3RzIGhhdmUgZGVjYXllZCBpbnRvIHRoZSBFYXJ0aCdzIGF0bW9zcGhlcmUuDQoxOTk3OiBCSEMgRmluYW5jaWFsLCBJbmMuIG9mIFBlbm5zeWx2YW5pYSBtZXJnZWQgaW50byBGSVNWIHRvIGZvcm0gU2VjdXJlZCBUcmFuc2FjdGlvbiBQcm9jZXNzaW5nIFNlcnZpY2VzLg0KMTk5NzpbQm9va10gVGhlIEZvdXIgQWdyZWVtZW50czogQSBQcmFjdGljYWwgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSBpcyBhIHNlbGYtaGVscCBib29rIGJ5IGJlc3RzZWxsaW5nIGF1dGhvciBEb24gTWlndWVsIFJ1aXogd2l0aCBKYW5ldCBNaWxsczsgVGhlIE1hc3Rlcnkgb2YgTG92ZTogQSBQcmFjdGljYWwgR3VpZGUgdG8gdGhlIEFydCBvZiBSZWxhdGlvbnNoaXAgLS1Ub2x0ZWMgV2lzZG9tIEJvb2sgKDE5OTksIE1hciAzMCk7IFRoZSBWb2ljZSBvZiBLbm93bGVkZ2U6IEEgUHJhY3RpY2FsIEd1aWRlIHRvIElubmVyIFBlYWNlICgyMDA0LCBNYXIgMTApOyBUaGUgRmlmdGggQWdyZWVtZW50OiBBIFByYWN0aWNhbCBHdWlkZSB0byBTZWxmLU1hc3RlcnkgKDIwMDkpOyBUaGUgQ2lyY2xlIG9mIEZpcmU6IEluc3BpcmF0aW9uIGFuZCBHdWlkZWQgTWVkaXRhdGlvbnMgZm9yIExpdmluZyBpbiBMb3ZlIGFuZCBIYXBwaW5lc3MgKDIwMTMsIEF1ZyAxKTsgVGhlIE1hc3Rlcnkgb2YgU2VsZjogQSBUb2x0ZWMgR3VpZGUgdG8gUGVyc29uYWwgRnJlZWRvbSAoMjAxNiwgTWF5IDYpDQoxOTk3OltCb29rXSBKb24gS3Jha2F1ZXIncyBJbnRvIFRoaW4gQWlyOiBBIFBlcnNvbmFsIEFjY291bnQgb2YgdGhlIE10LiBFdmVyZXN0IERpc2FzdGVyOyBVbmRlciB0aGUgQmFubmVyIG9mIEhlYXZlbiAoMjAwMyBKdWwpDQoxOTk3IChEZWMgMTEpOltFbnZdIFRoZSBLeW90byBQcm90b2NvbCB3YXMgYW4gaW50ZXJuYXRpb25hbCB0cmVhdHkgd2hpY2ggZXh0ZW5kZWQgdGhlIDE5OTIgVW5pdGVkIE5hdGlvbnMgRnJhbWV3b3JrIENvbnZlbnRpb24gb24gQ2xpbWF0ZSBDaGFuZ2UgKFVORkNDQykgdGhhdCBjb21taXRzIHN0YXRlIHBhcnRpZXMgdG8gcmVkdWNlIGdyZWVuaG91c2UgZ2FzIGVtaXNzaW9ucywgYmFzZWQgb24gdGhlIHNjaWVudGlmaWMgY29uc2Vuc3VzIHRoYXQgKHBhcnQgb25lKSBnbG9iYWwgd2FybWluZyBpcyBvY2N1cnJpbmcgYW5kIChwYXJ0IHR3bykgdGhhdCBodW1hbi1tYWRlIENPMiBlbWlzc2lvbnMgYXJlIGRyaXZpbmcgaXQuDQoxOTk3OltJbmRpYV1bRWR1Y2F0aW9uXVtDdWx0dXJlXSBFa2xhdnlhIE1vZGVsIFJlc2lkZW50aWFsIFNjaG9vbCBpcyBhIEdvdmVybm1lbnQgb2YgSW5kaWEgc2NoZW1lIGZvciBtb2RlbCByZXNpZGVudGlhbCBzY2hvb2wgZm9yIEluZGlhbiB0cmliYWxzIGFjcm9zcyBJbmRpYS4gSXQgaXMgb25lIG9mIHRoZSBmbGFnc2hpcCBpbnRlcnZlbnRpb25zIG9mIHRoZSBNaW5pc3RyeSBvZiBUcmliYWwgQWZmYWlycywgR292ZXJubWVudCBvZiBJbmRpYSBhbmQgd2FzIGludHJvZHVjZWQgaW4gdGhlIHllYXIgMTk5Ny05OCB0byBlbnN1cmUgdHJpYmFsIHN0dWRlbnRzIGdldCBhY2Nlc3MgdG8gcXVhbGl0eSBlZHVjYXRpb24gaW4gdGhlIHJlbW90ZSB0cmliYWwgYXJlYXMuIEVNUlNzIGFyZSBzZXQgdXAgaW4gU3RhdGVzL1VUcyB3aXRoIGdyYW50cyB1bmRlciBBcnRpY2xlIDI3NSgxKSBvZiB0aGUgQ29uc3RpdHV0aW9uIG9mIEluZGlhLiBBcyBwZXIgdGhlIGJ1ZGdldCAyMDE4LTE5LCBldmVyeSBibG9jayB3aXRoIG1vcmUgdGhhbiA1MCUgU1QgcG9wdWxhdGlvbiBhbmQgYXQgbGVhc3QgMjAsMDAwIHRyaWJhbCBwZXJzb25zLCB3aWxsIGhhdmUgYW4gRWtsYXZ5YSBNb2RlbCBSZXNpZGVudGlhbCBTY2hvb2wgYnkgdGhlIHllYXIgMjAyMi4NCjE5OTc6W1NwYWNlXSBIaXBwYXJjb3MgKDE5ODkgLTE5OTMpLiBJdCB0b29rIDQtOCB5ZWFycyB0byBvcmdhbml6ZSBhbmQgcHVibGlzaCB0aGUgNCB5ZWFycyBzdHVkeSBieSB0aGlzIGV4cGVyaW1lbnQsIHdoaWNoIHBlcm1pdHRlZCB0aGUgZmlyc3QgaGlnaC1wcmVjaXNpb24gbWVhc3VyZW1lbnRzIG9mIHRoZSBpbnRyaW5zaWMgYnJpZ2h0bmVzc2VzIChjb21wYXJlZCB0byB0aGUgbGVzcyBwcmVjaXNlIGFwcGFyZW50IGJyaWdodG5lc3MpLCBwcm9wZXIgbW90aW9ucywgYW5kIHBhcmFsbGF4ZXMgb2Ygc3RhcnMsIGVuYWJsaW5nIGJldHRlciBjYWxjdWxhdGlvbnMgb2YgdGhlaXIgZGlzdGFuY2UgYW5kIHRhbmdlbnRpYWwgdmVsb2NpdHkuIFdoZW4gY29tYmluZWQgd2l0aCByYWRpYWwgdmVsb2NpdHkgbWVhc3VyZW1lbnRzIGZyb20gc3BlY3Ryb3Njb3B5LCBhc3Ryb3BoeXNpY2lzdHMgd2VyZSBhYmxlIHRvIGZpbmFsbHkgbWVhc3VyZSBhbGwgc2l4IHF1YW50aXRpZXMgbmVlZGVkIHRvIGRldGVybWluZSB0aGUgbW90aW9uIG9mIHN0YXJzLiBUaGUgcmVzdWx0aW5nIEhpcHBhcmNvcyBDYXRhbG9ndWUsIGEgaGlnaC1wcmVjaXNpb24gY2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiAxMTgsMjAwIHN0YXJzLCB3YXMgcHVibGlzaGVkIGluIDE5OTcuIFRoZSBsb3dlci1wcmVjaXNpb24gVHljaG8gQ2F0YWxvZ3VlIG9mIG1vcmUgdGhhbiBhIG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBhdCB0aGUgc2FtZSB0aW1lLCB3aGlsZSB0aGUgZW5oYW5jZWQgVHljaG8tMiBDYXRhbG9ndWUgb2YgMi41IG1pbGxpb24gc3RhcnMgd2FzIHB1Ymxpc2hlZCBpbiAyMDAwLiBIaXBwYXJjb3MnIGZvbGxvdy11cCBtaXNzaW9uLCBHYWlhLCB3YXMgbGF1bmNoZWQgaW4gMjAxMy4NCjE5OTc6W1NwYWNlXVtSZXNlYXJjaF0gU2luY2UgdGhlIDE5OTcgcHJvcG9zYWwgb2YgdGhlIEFkUy9DRlQgKEFudGktZGUgU2l0dGVyL0NvbmZvcm1hbCBGaWVsZCBUaGVvcnkpIGNvcnJlc3BvbmRlbmNlLCB0aGUgcHJlZG9taW5hbnQgYmVsaWVmIGFtb25nIHBoeXNpY2lzdHMgaXMgdGhhdCBpbmZvcm1hdGlvbiBpcyBpbmRlZWQgcHJlc2VydmVkIGluIGJsYWNrIGhvbGUgZXZhcG9yYXRpb24uIA0KMTk5NzpbU3BhY2VdW1Jlc2VhcmNoXSBBIHdpZGVseSBwdWJsaWNpemVkIGJldCBtYWRlIGluIDE5OTcgYmV0d2VlbiBKb2huIFByZXNraWxsIG9uIHRoZSBvbmUgaGFuZCB3aXRoIEhhd2tpbmcgYW5kIEtpcCBUaG9ybmUgb24gdGhlIG90aGVyIHRoYXQgaW5mb3JtYXRpb24gd2FzIG5vdCBsb3N0IGluIGJsYWNrIGhvbGVzLiBUaGUgc2NpZW50aWZpYyBkZWJhdGUgb24gdGhlIHBhcmFkb3ggd2FzIGRlc2NyaWJlZCBpbiBhIHBvcHVsYXIgYm9vayBwdWJsaXNoZWQgaW4gMjAwOCBieSBMZW9uYXJkIFN1c3NraW5kIGNhbGxlZCBUaGUgQmxhY2sgSG9sZSBXYXIuIChUaGUgYm9vayBjYXJlZnVsbHkgbm90ZXMgdGhhdCB0aGUgJ3dhcicgd2FzIHB1cmVseSBhIHNjaWVudGlmaWMgb25lLCBhbmQgdGhhdCBhdCBhIHBlcnNvbmFsIGxldmVsLCB0aGUgcGFydGljaXBhbnRzIHJlbWFpbmVkIGZyaWVuZHMuKSBUaGUgYm9vayBzdGF0ZXMgdGhhdCBIYXdraW5nIHdhcyBldmVudHVhbGx5IHBlcnN1YWRlZCB0aGF0IGJsYWNrLWhvbGUgZXZhcG9yYXRpb24gd2FzIHVuaXRhcnkgYnkgdGhlIGhvbG9ncmFwaGljIHByaW5jaXBsZSwgd2hpY2ggd2FzIGZpcnN0IHByb3Bvc2VkIGJ5ICd0IEhvb2Z0LCBmdXJ0aGVyIGRldmVsb3BlZCBieSBTdXNza2luZCBhbmQgbGF0ZXIgZ2l2ZW4gYSBwcmVjaXNlIHN0cmluZyB0aGVvcnkgaW50ZXJwcmV0YXRpb24gYnkgdGhlIEFkUy9DRlQgY29ycmVzcG9uZGVuY2UuIEluIDIwMDQsIEhhd2tpbmcgYWxzbyBjb25jZWRlZCB0aGUgMTk5NyBiZXQsIHBheWluZyBQcmVza2lsbCB3aXRoIGEgYmFzZWJhbGwgZW5jeWNsb3BlZGlhICJmcm9tIHdoaWNoIGluZm9ybWF0aW9uIGNhbiBiZSByZXRyaWV2ZWQgYXQgd2lsbCIgYWx0aG91Z2ggVGhvcm5lIHJlZnVzZWQgdG8gY29uY2VkZS4NCjE5OTc6W0VhcnRoXVtQaHlzaWNzXVtSZXNlYXJjaF0gdGhlcmUgd2VyZSB0d28gbGFyZ2UgZWFydGhxdWFrZXMgb2ZmIHRoZSBjb2FzdCBvZiBDaGlsZS4gVGhlIG1hZ25pdHVkZSBvZiB0aGUgZmlyc3QsIGluIEp1bHksIHdhcyBlc3RpbWF0ZWQgYXQgTXfigK82LjksIGJ1dCB3YXMgYmFyZWx5IGZlbHQsIGFuZCBvbmx5IGluIHRocmVlIHBsYWNlcy4gSW4gT2N0b2JlciBhIE134oCvNy4xIHF1YWtlIGluIG5lYXJseSB0aGUgc2FtZSBsb2NhdGlvbiwgYnV0IHR3aWNlIGFzIGRlZXAgYW5kIG9uIGEgZGlmZmVyZW50IGtpbmQgb2YgZmF1bHQsIHdhcyBmZWx0IG92ZXIgYSBicm9hZCBhcmVhLCBpbmp1cmVkIG92ZXIgMzAwIHBlb3BsZSwgYW5kIGRlc3Ryb3llZCBvciBzZXJpb3VzbHkgZGFtYWdlZCBvdmVyIDEwLDAwMCBob3VzZXMuIEFzIGNhbiBiZSBzZWVuIGluIHRoZSB0YWJsZSBiZWxvdywgdGhpcyBkaXNwYXJpdHkgb2YgZGFtYWdlIGRvbmUgaXMgbm90IHJlZmxlY3RlZCBpbiBlaXRoZXIgdGhlIG1vbWVudCBtYWduaXR1ZGUgKE134oCvKSBub3IgdGhlIHN1cmZhY2Utd2F2ZSBtYWduaXR1ZGUgKE1z4oCvKS4gT25seSB3aGVuIHRoZSBtYWduaXR1ZGUgaXMgbWVhc3VyZWQgb24gdGhlIGJhc2lzIG9mIHRoZSBib2R5LXdhdmUgKG1i4oCvKSBvciB0aGUgc2Vpc21pYyBlbmVyZ3kgKE1l4oCvKSBpcyB0aGVyZSBhIGRpZmZlcmVuY2UgY29tcGFyYWJsZSB0byB0aGUgZGlmZmVyZW5jZSBpbiBkYW1hZ2UuIChhcyByZXNlYXJjaGVkIGJ5IENob3ksIEJvYXR3cmlnaHQgJiBLaXJieSAyMDAxLCBwLiAxMy4pLiBNdyA2Ljkgd2FzIGFjdHVhbGx5IE1lIDYuMSwgYW4gaW50ZXJwbGF0ZS10aHJ1c3QgdHlwZSBvZiBmYXVsdCwgd2hpbGUgTXcgNy4xIHdhcyBhY3R1YWxseSBhIDcuNSBNZSBpbnRyYXNsYWItbm9ybWFsIHR5cGUgb2YgZmF1bHQuDQoxOTk3OltSZXNlYXJjaF0gRHVyaW5nIHN1cnZleXMgY2FycmllZCBvdXQgYmV0d2VlbiAxOTk3IGFuZCAyMDAxLCBhIHNwb3Qgd2FzIGZvdW5kIGFsb25nIHRoZSBNYXJpYW5hIFRyZW5jaCB0aGF0IGhhZCBhIGRlcHRoIHNpbWlsYXIgdG8gdGhlIENoYWxsZW5nZXIgRGVlcCwgcG9zc2libHkgZXZlbiBkZWVwZX
+KAkzIwMDEuDQoxOTkzOiBBc2hvayBIYWxsIEdpcmwncyBSZXNpZGVudGlhbCBTY2hvb2wsIE1hamtoYWxpLg0KMTk5MzogQnkgdGhpcyB5ZWFyIHRoZXJlIHdlcmUgYXJvdW5kIDEwMCB3ZWItc2VydmVycyBhY3Jvc3MgdGhlIHdvcmxkLiAoQSByZXBvcnQgcHVibGlzaGVkIGluIGZpcnN0IGlzc3VlIG9mIFRoZSBXb3JsZCBXaWRlIFdlYiBOZXdzbGV0dGVyLCAxOTkzKQ0KMTk5MzogQUMgMy10aWVyIGNvYWNoZXMgJiBTbGVlcGVyIGNsYXNzIGFyZSBpbnRyb2R1Y2VkIGFwYXJ0IGZyb20gc2Vjb25kIGNsYXNzLg0KMTk5MzogR29JJ3MgRGlzdHJpY3QgUHJpbWFyeSBFZHVjYXRpb24gUHJvZ3JhbW1lIChEUEVQKSB3YXMgbGF1bmNoZWQsIHdpdGggYW4gYWltIG9mIGFjaGlldmluZyB0aGUgb2JqZWN0aXZlIG9mIHVuaXZlcnNhbCBwcmltYXJ5IGVkdWNhdGlvbi4gVGhpcyBwcm9ncmFtbWVkIGxhaWQgdGhlIGZvdW5kYXRpb25zIGZvciDgpLjgpLDgpY3gpLUg4KS24KS/4KSV4KWN4KS34KS+IOCkheCkreCkv+Ckr+CkvuCkqChFZHVjYXRpb24gZm9yIEFsbCBNb3ZlbWVudCkgYWltZWQgYXQgdGhlIHVuaXZlcnNhbGlzYXRpb24gb2YgZWxlbWVudGFyeSBlZHVjYXRpb24gbWFraW5nIGZyZWUgYW5kIGNvbXB1bHNvcnkgZWR1Y2F0aW9uIHRvIGNoaWxkcmVuIGJldHdlZW4gdGhlIGFnZXMgb2YgNiB0byAxNC4NCjE5OTM6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIHNwbGl0IHdpdGggRGF3b29kIGFuZCBmb3JtZWQgYW4gaW5kZXBlbmRlbnQgZ2FuZyB0aGF0IGZyZXF1ZW50bHkgY2xhc2hlZCB3aXRoIERhd29vZCdzIEQtQ29tcGFueS4NCjE5OTMgKEphbiA3KTpbQ3JpbWVdIFJpb3RzIHJlLXN0YXJ0ZWQgaW4gTXVtYmFpIGFuZCBsYXN0ZWQgZm9yIDIwIGRheXMuIFRoZSBJU0ksIHdoaWNoIGNvbnRyb2xsZWQgc2hpcHBpbmcgcm91dGVzIGZyb20gdGhlIEd1bGYgdG8gSW5kaWEncyB3ZXN0IGNvYXN0LCBkZW1hbmRlZCB0aGF0IHRoZSBtYWZpYSB0cmFuc3BvcnQgd2VhcG9ucyBhbmQgZXhwbG9zaXZlcyBpbnRvIEluZGlhIGluIHJldHVybiBmb3IgdGhlIHVzZSBvZiBQYWtpc3RhbidzIHdhdGVycy4gRGF3b29kIG1ldCB0aGVpciBJU0kgaGFuZGxlcnMgaW4gYSA1IHN0YXIgaG90ZWwgb2YgRHViYWkgaW4gSmFuIG9yIEZlYiBvZiAxOTkzLCB0aGVuIGNhbWUgdGhlIFJEWCB0aHJvdWdoIHRoZSBzYW1lIHBvcm91cyBhbmQgdW5jaGVja2VkIHNlYSByb3V0ZSB0aGF0IDI2LzExIGF0dGFja2VycyBzbGlwcGVkIGFjcm9zcyBhbmQgd3JlY2tlZCBtYXloZW0gaW4gTXVtYmFpLiBUaGUg4oCZOTMgYXR0YWNrcyB3ZXJlIGZpbmFsbHkgZXhlY3V0ZWQgaW4gbWFyY2ggdGhhdCBjbGFpbWVkIHNvbWUgMzAwIGlubm9jZW50IGxpdmVzLg0KMTk5MyAoTWFyIDYpOltQb2xpdHldW0luZGlhXSBTaGFyYWQgUGF3YXIgcmUtZWxlY2V0ZCBhcyBDTSBvZiBNSCBmb3IgMiB5ZWFycy4NCjE5OTMgKE1hciAxMik6W0NyaW1lXSBUaGUgMTk5MyBCb21iYXkgYm9tYmluZ3Mgd2VyZSBhIHNlcmllcyBvZiAxMiB0ZXJyb3Jpc3QgYm9tYmluZ3MgdGhhdCB0b29rIHBsYWNlIGluIEJvbWJheS4gVGhlIHNpbmdsZS1kYXkgYXR0YWNrcyByZXN1bHRlZCBpbiAyNTcgZmF0YWxpdGllcyBhbmQgMSw0MDAgaW5qdXJpZXMuIFRoZXJlIHdhcyBhbm90aGVyIHJhaWQgbmVhciBNYW5pc2ggbWFya2V0IHdoZXJlIGhhbmQgZ3JlbmFkZXMgd2VyZSByZWNvdmVyZWQuIEFmdGVyIGFub3RoZXIgdGlwIG9mZiBsZWQgdG8gZGlzY292ZXJ5IG9mIGEgaHVnZSBxdWFudGl0eSBvZiBSRFggZnJvbSBOYWdsYSBCdW5kZXIgb2ZmIEdob2RidW5kZXIgUm9hZCBpbiBUaGFuZS4g4oCcSW4gYWxsLCA1LDAwMCBraWxvZ3JhbXMgb2YgUkRYIHdhcyBicm91Z2h0IGludG8gTXVtYmFpIGFuZCB3ZSByZWNvdmVyZWQgMywzMDAga2lsb2dyYW1zIG9mIGl0IGluIGFsbCB0aGUgcmFpZHMs4oCdIHNheXMgQ2hhdWd1bGUuIFJlZHVjZWQgU2hvY2sgU2Vuc2l0aXZpdHkgKFJTUykgZXhwbG9zaXZlcywgc3VjaCBhcyBSU1MtUkRYLCB3aGljaCBjb3N0cyBhYm91dCBScy4gMSw1MDAtMiwwMDAgcGVyIGtnLiBBbmVlcyBjb250aW51ZWQgb3BlcmF0aW9uIG9mIEQtQ29tcGFueSB3aGljaCBpbmNsdWRlIGNvbnRyYWN0IGtpbGxpbmcsIGV4dG9ydGlvbiwgdGhlIGNpcmN1bGF0aW9uIG9mIGNvdW50ZXJmZWl0IGN1cnJlbmN5LCBhbmQgdGhlIHByb3Zpc2lvbiBvZiBhIHJhbmdlIG9mIGZyZWUtbGFuY2Ugc2VydmljZXMgdG8gdGVycm9yaXN0IGdyb3VwcyBhdCB0aGUgaW5zdGFuY2Ugb2YgUGFraXN0YW4ncyBJbnRlciBTZXJ2aWNlcyBJbnRlbGxpZ2VuY2UgKElTSSkuIEludGVycG9sIFJlZCBDb3JuZXIgbm90aWNlIGZvciBELUNvbXBhbnkuDQoxOTkzIChOb3YgMSk6IFRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGZvdW5kZWQuIEl0IGlzIGFuIGVjb25vbWljIGFuZCBwb2xpdGljYWwgcGFydG5lcnNoaXAgaW52b2x2aW5nIDI4IEV1cm9wZWFuIGNvdW50cmllcy4gSXQgYmVnYW4gYWZ0ZXIgV1cyIHRvIGZvc3RlciBlY29ub21pYyBjby1vcGVyYXRpb24sIHdpdGggdGhlIGlkZWEgdGhhdCBjb3VudHJpZXMgd2hpY2ggdHJhZGUgdG9nZXRoZXIgYXJlIG1vcmUgbGlrZWx5IHRvIGF2b2lkIGdvaW5nIHRvIHdhciB3aXRoIGVhY2ggb3RoZXIuDQoxOTkzIChOb3YgMyk6IFtHZW9Qb2xpdGljc10gVGhlIENvbW1vbiBNYXJrZXQgZm9yIEVhc3Rlcm4gYW5kIFNvdXRoZXJuIEFmcmljYSAoQ09NRVNBKSBpcyBhIHJlZ2lvbmFsIGVjb25vbWljIGNvbW11bml0eSBpbiBBZnJpY2Egd2l0aCB0d2VudHktb25lIG1lbWJlciBzdGF0ZXMgc3RyZXRjaGluZyBmcm9tIFR1bmlzaWEgdG8gRXN3YXRpbmkuIENPTUVTQSB3YXMgZm9ybWVkIGluIERlY2VtYmVyIDE5OTQsIHJlcGxhY2luZyBhIFByZWZlcmVudGlhbCBUcmFkZSBBcmVhIHdoaWNoIGhhZCBleGlzdGVkIHNpbmNlIDE5ODEuIE5pbmUgb2YgdGhlIG1lbWJlciBzdGF0ZXMgZm9ybWVkIGEgZnJlZSB0cmFkZSBhcmVhIGluIDIwMDAgKERqaWJvdXRpLCBFZ3lwdCwgS2VueWEsIE1hZGFnYXNjYXIsIE1hbGF3aSwgTWF1cml0aXVzLCBTdWRhbiwgWmFtYmlhIGFuZCBaaW1iYWJ3ZSksIHdpdGggUndhbmRhIGFuZCBCdXJ1bmRpIGpvaW5pbmcgdGhlIEZUQSBpbiAyMDA0LCB0aGUgQ29tb3JvcyBhbmQgTGlieWEgaW4gMjAwNiwgU2V5Y2hlbGxlcyBpbiAyMDA5IGFuZCBUdW5pc2lhIGFuZCBTb21hbGlhIGluIDIwMTguDQoxOTkzIChEZWMgMjApOiBPSENIUiBmb3JtZWQuIFRoZSBPZmZpY2Ugb2YgdGhlIFVuaXRlZCBOYXRpb25zIEhpZ2ggQ29tbWlzc2lvbmVyIGZvciBIdW1hbiBSaWdodHMgKE9IQ0hSKSwgYSBVbml0ZWQgTmF0aW9ucyBhZ2VuY3kgdGhhdCB3b3JrcyB0byBwcm9tb3RlIGFuZCBwcm90ZWN0IHRoZSBodW1hbiByaWdodHMgdGhhdCBhcmUgZ3VhcmFudGVlZCB1bmRlciBpbnRlcm5hdGlvbmFsIGxhdyBhbmQgc3RpcHVsYXRlZCBpbiB0aGUgVW5pdmVyc2FsIERlY2xhcmF0aW9uIG9mIEh1bWFuIFJpZ2h0cyBvZiAxOTQ4Lg0KMTk5Mzp0aGUgMjR0aCBhbmQgbGFzdCBHTE9OQVNTIHNhdGVsbGl0ZSB3YXMgbGF1bmNoZWQgZm9ybWluZyB0aGUgd2hvbGUgbmF2aWdhdGlvbiBjb25zdGVsbGF0aW9uIHNpbWlsYXIgdG8gdGhhdCBvZiBVUydzIEdQUy4NCjE5OTM6IFNIQS0wIChhIGhhc2ggZnVuY3Rpb24pIHdhcyBwcm9wb3NlZCBieSBOSVNULCBNYXJ5bGFuZCwgVVNBIChGb3VuZGVkOiAxOTAxKS4gSXQgcHJvZHVjZXMgYSAxNjAtYml0IGhhc2ggdmFsdWUsIHRodXMgdGhlIGJydXRlLWZvcmNlIGNvbGxpc2lvbiBvciAgbmVhci1jb2xsaXNpb24gYXR0YWNrIHJlcXVpcmVzIE8oMl44MCkgY29tcHV0YXRpb24uIFdpdGhpbiA1IHllYXJzLCBpdCB3YXMgbWFkZSBjb2xsaXNpb24gYXR0YWNrZWQgYnkgQ2hhYmF1ZCBhbmQgSm91eCB3aXRoIHRoZSBhdHRhY2sgY29tcGxleGl0eSBvZiAyXjYxLg0KMTk5MzogW0NvYWxnYXRlIHNjYW1dIE9uIDIzcmQgQXByaWwgMjAxMywgdGhlIFN0YW5kaW5nIENvbW1pdHRlZSBvbiBDb2FsIGFuZCBTdGVlbCB0YWJsZWQgaW4gUGFybGlhbWVudCB0aGF0IGFsbCAxOTQgY29hbCBibG9ja3MgZGlzdHJpYnV0ZWQgYmV0d2VlbiAxOTkzIGFuZCAyMDA4IHdlcmUgYXVjdGlvbmVkIGluIGFuIHVuYXV0aG9yaXplZCBtYW5uZXIgYW5kIHRoZSBjb3VudHJ5IGxvc3QgUnMuMS44NiBsYWtoIGNyb3JlLi4gRm9ybWVyIFByaW1lIE1pbmlzdGVyIE1hbm1vaGFuIFNpbmdoLCBhbG9uZyB3aXRoIEt1bWFyIE1hbmdhbGFtIEJpcmxhIGFuZCBQLkMuIFBhcmFraCwgd2VyZSBhY2N1c2VkIGFuZCBzdW1tb25lZCBieSBhIHNwZWNpYWwgY291cnQuIFsyTCBDcm9yZV0uIENvbXB0cm9sbGVyIGFuZCBBdWRpdG9yIEdlbmVyYWwgb2YgSW5kaWEgdG9vayAyMCB5ZWFycyB0byBJRCBvbmUgb2YgdGhlIGJpZ2dlc3Qgc2NhbXMgaW4gSW5kaWFuIGhpc3RvcnkuDQoxOTkzOiBBZnRlciBQcmVzaWRlbnQgQmlsbCBDbGludG9uIHRvb2sgb2ZmaWNlIGluIDE5OTMsIGhvd2V2ZXIsIHRoZSBVLlMuIGVjb25vbXkgZW1iYXJrZWQgb24gYSBsb25nIGFuZCBzdHJvbmcgZXhwYW5zaW9uLCBtYWtpbmcgdGhlIDE5OTBzIGEgZ3JlYXQgZGVjYWRlIGZvciBBbWVyaWNhJ3MgbW9uZXksIG92ZXJhbGwuIA0KMTk5MzpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTW90aHJhKDE5OTIpDQoxOTkzOltTcGFjZV0gSGlwcGFyY29zLCBhIHNjaWVudGlmaWMgc2F0ZWxsaXRlIG9mIHRoZSBFdXJvcGVhbiBTcGFjZSBBZ2VuY3kgKEVTQSkgbGFzdGVkIGZvciA0IHllYXJzIGJlZm9yZSBnb2luZyBvdXQtb2Ytc2VydmljZS4NCjE5OTM6W1NwYWNlXVtSZXNlYXJjaF0gSW4gMTk5MywgRG9uIFBhZ2UgYXJndWVkIHRoYXQgaWYgYSBibGFjayBob2xlIHN0YXJ0cyBpbiBhIHB1cmUgcXVhbnR1bSBzdGF0ZSBhbmQgZXZhcG9yYXRlcyBjb21wbGV0ZWx5IGJ5IGEgdW5pdGFyeSBwcm9jZXNzLCB0aGUgdm9uIE5ldW1hbm4gZW50cm9weSBvZiB0aGUgSGF3a2luZyByYWRpYXRpb24gaW5pdGlhbGx5IGluY3JlYXNlcyBhbmQgdGhlbiBkZWNyZWFzZXMgYmFjayB0byB6ZXJvIHdoZW4gdGhlIGJsYWNrIGhvbGUgaGFzIGRpc2FwcGVhcmVkLiBUaGlzIGlzIGNhbGxlZCB0aGUgUGFnZSBjdXJ2ZS4NCjE5OTM6W0Jvb2tzXVtIaXN0b3J5XSBHcmVlbuKAmXMgRGljdGlvbmFyeSBvZiBTbGFuZyBpcyB0aGUgbGFyZ2VzdCBoaXN0b3JpY2FsIGRpY3Rpb25hcnkgb2YgRW5nbGlzaCBzbGFuZy4gV3JpdHRlbiBieSBKb25hdGhvbiBHcmVlbiBvdmVyIDE3IHllYXJzIGZyb20gMTk5MywgaXQgcmVhY2hlZCB0aGUgcHJpbnRlZCBwYWdlIGluIDIwMTAgaW4gYSB0aHJlZS12b2x1bWUgc2V0IGNvbnRhaW5pbmcgbmVhcmx5IDEwMCwwMDAgZW50cmllcyBzdXBwb3J0ZWQgYnkgb3ZlciA0MDAsMDAwIGNpdGF0aW9ucyBmcm9tIGMuIGFkIDEwMDAgdG8gdGhlIHByZXNlbnQgZGF5LiBUaGUgbWFpbiBmb2N1cyBvZiB0aGUgZGljdGlvbmFyeSBpcyB0aGUgY292ZXJhZ2Ugb2Ygb3ZlciA1MDAgeWVhcnMgb2Ygc2xhbmcgZnJvbSBjLiAxNTAwIG9ud2FyZHMuDQoxOTkzOltFbnZdW0Rpc2FzdGVyXSBTb3V0aCBBc2lhbiBtb25zb29uIGZsb29kcywgM2sgZGVhdGhzDQoxOTkzOltHZW9ncmFwaHldIFRoZSBsYXN0IG1ham9yIHNoaWZ0cyBpbiBFYXJ0aCdzIGF4aXMgd2VyZSBpbmZsdWVuY2VkIGJ5IGNsaW1hdGUgY2hhbmdlOiBhIDMxLjUtaW5jaCBzaGlmdCBiZXR3ZWVuIDE5OTMgYW5kIDIwMTAgd2FzIHByaW1hcmlseSBjYXVzZWQgYnkgZ3JvdW5kd2F0ZXIgcHVtcGluZywgYW5kIGEgY2hhbmdlIGluIHBvbGFyIGRyaWZ0IGRpcmVjdGlvbiBhcm91bmQgdGhlIDE5OTBzIHdhcyBsaW5rZWQgdG8gbWVsdGluZyBnbGFjaWVycyBhbmQgaWNlIHNoZWV0cyBkdWUgdG8gZ2xvYmFsIHdhcm1pbmcuIEVhcnRoJ3MgYXhpcyBhbHNvIHNoaWZ0ZWQgYnkgYWJvdXQgNi41IGluY2hlcyBpbiBNYXJjaCAyMDExIGFmdGVyIHRoZSBKYXBhbmVzZSBlYXJ0aHF1YWtlLCBjYXVzaW5nIHRoZSBwbGFuZXQgdG8gc3BpbiBzbGlnaHRseSBmYXN0ZXIuDQoxOTkzOltXaG9dIEluIDE5OTMsIEluZGlhIGNhbWUgaGVhcnRicmVha2luZ2x5IGNsb3NlIHRvIHdpbm5pbmcgaXRzIGZpcnN0IE1pc3MgVW5pdmVyc2UgY3Jvd24gd2l0aCB0aGUgc3R1bm5pbmcgYW5kIGdyYWNlZnVsIE5hbXJhdGEgU2hpcm9ka2FyLCB3aG8gaGFkIGVhcmxpZXIgd29uIHRoZSBGZW1pbmEgTWlzcyBJbmRpYSB0aXRsZS4gUmVwcmVzZW50aW5nIEluZGlhIGF0IHRoZSBNaXNzIFVuaXZlcnNlIHBhZ2VhbnQgaGVsZCBpbiBNZXhpY28gQ2l0eSwgTmFtcmF0YSB3YXMgYSBzdHJvbmcgY29udGVuZGVy4oCUZWxlZ2FudCBpbiBoZXIgZ293biwgcG9pc2VkIGluIGludGVydmlld3MsIGFuZCBhIGZhbiBmYXZvcml0ZS4gU2hlIGVhc2lseSBtYWRlIGl0IHRvIHRoZSBUb3AgNiwgYW5kIGhlciBjaGFuY2VzIG9mIHdpbm5pbmcgbG9va2VkIGluY3JlZGlibHkgaGlnaC4gQnV0IHRoZW4gY2FtZSB0aGUgZmluYWwgcXVlc3Rpb246IOKAnElmIHlvdSBjb3VsZCBiZSBib3JuIGFzIGFueSBoaXN0b3JpY2FsIGZpZ3VyZSwgd2hvIHdvdWxkIGl0IGJlIGFuZCB3aHk/4oCdIFdoaWxlIG90aGVyIGNvbnRlc3RhbnRzIG5hbWVkIGdsb2JhbCBpY29ucyBsaWtlIE1vdGhlciBUZXJlc2EgYW5kIFByaW5jZXNzIERpYW5hLCBOYW1yYXRhIGdhdmUgYW4gaG9uZXN0LCBwZXJzb25hbCBhbnN3ZXLigJRzaGUgc2FpZCBzaGUgd291bGQgYmUgYm9ybiBhcyBoZXJzZWxmIG9yIHNvbWVvbmUgY2xvc2UgdG8gaGVyLCBiZWNhdXNlIHNoZSBiZWxpZXZlZCBpbiBsaXZpbmcgbGlmZSB3aXRoIHRydXRoIGFuZCBpbmRpdmlkdWFsaXR5LiBJdCB3YXMgYSBiZWF1dGlmdWwsIGdyb3VuZGVkIGFuc3dlcuKAlGJ1dCBub3QgdGhlIGtpbmQgb2YgZ3JhbmQsIGlkZWFsaXN0aWMgcmVzcG9uc2UgdGhlIGp1ZGdlcyB3ZXJlIGV4cGVjdGluZy4gVGhhdCBvbmUgbW9tZW50IG9mIHRydXRoLCBtYW55IGJlbGlldmUsIGNvc3QgaGVyIHRoZSBjcm93biwgYW5kIEluZGlhIGhhZCB0byB3YWl0IGFub3RoZXIgeWVhciBiZWZvcmUgU3VzaG1pdGEgU2VuIGJyb3VnaHQgdGhlIE1pc3MgVW5pdmVyc2UgdGl0bGUgaG9tZSBpbiAxOTk0LiBTdGlsbCwgTmFtcmF0YeKAmXMgYW5zd2VyIGJlY2FtZSBpY29uaWPigJRub3QgYmVjYXVzZSBpdCB3b24sIGJ1dCBiZWNhdXNlIGl0IHdhcyByZWFsLCBtYXJraW5nIGEgcmFyZSBpbnN0YW5jZSB3aGVyZSBob25lc3R5IHN0b29kIHRhbGxlciB0aGFuIGRpcGxvbWFjeS4NCjE5OTM6W0F2aWF0aW9uXVtFeHRyZW1lXVtXaG9dIFRoZSBIZXJic3QgbWFuZXV2ZXIgd2FzIGZpcnN0IHN1Y2Nlc3NmdWxseSBwZXJmb3JtZWQgb24gQXByaWwgMjksIDE5OTMsIGJ5IGFuIFgtMzEgYWlyY3JhZnQuIE5hbWVkIGFmdGVyIFdvbGZnYW5nIEhlcmJzdCwgYSBkZXZlbG9wZXIgb2YgcG9zdC1zdGFsbCB0ZWNobm9sb2d5IGZvciBNZXNzZXJzY2htaXR0LULDtmxrb3ctQmxvaG0gKE1CQiksIHRoaXMsIHBvc3Qtc3RhbGwgbWFuZXV2ZXIgZW5hYmxlcyBhIGZpZ2h0ZXIgdG8gbWFrZSBhIHJhcGlkIDE4MMKwIHR1cm4gd2l0aGluIGEgbWluaW1hbCByYWRpdXMuIA0KDQoxOTk04oCTMTk5NTpbVVNdW0dlb1BvbGl0aWNzXSBvY2N1cGF0aW9uIG9mIEhhaXRpLiAoVVMncyBpbnZvbHZlbWVudCBpbiByZWdpbWUgY2hhbmdlKQ0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBUaGUgRXVyb3BlYW4gRWNvbm9taWMgQXJlYSwgYWJicmV2aWF0ZWQgYXMgRUVBLCBjb25zaXN0cyBvZiB0aGUgTWVtYmVyIFN0YXRlcyBvZiB0aGUgRXVyb3BlYW4gVW5pb24gKEVVKSBhbmQgdGhyZWUgY291bnRyaWVzIG9mIHRoZSBFdXJvcGVhbiBGcmVlIFRyYWRlIEFzc29jaWF0aW9uIChFRlRBKSAoSWNlbGFuZCwgTGllY2h0ZW5zdGVpbiBhbmQgTm9yd2F5OyBleGNsdWRpbmcgU3dpdHplcmxhbmQpLiBUaGUgQWdyZWVtZW50IG9uIHRoZSBFRUEgZW50ZXJlZCBpbnRvIGZvcmNlIG9uIDEgSmFudWFyeSAxOTk0LiANCjE5OTQ6W0J1c2luZXNzXVtHZW9Qb2xpdGljc10gVGhlIEV1cm9wZWFuIEVjb25vbWljIEFyZWEgKEVFQSkgd2FzIGVzdGFibGlzaGVkIG9uIDEgSmFudWFyeSAxOTk0LiBUaGUgYWdyZWVtZW50IGxpbmtzIHRoZSBNZW1iZXIgU3RhdGVzIG9mIHRoZSBFdXJvcGVhbiBVbmlvbiAoRVUpIGFuZCB0aHJlZSBFRlRBIHN0YXRlc+KAlEljZWxhbmQsIExpZWNodGVuc3RlaW4sIGFuZCBOb3J3YXnigJRpbnRvIGEgc2luZ2xlIGludGVybmFsIG1hcmtldCwgYWxsb3dpbmcgZm9yIHRoZSBmcmVlIG1vdmVtZW50IG9mIGdvb2RzLCBwZXJzb25zLCBzZXJ2aWNlcywgYW5kIGNhcGl0YWwuIA0KMTk5NDpbQnVzaW5lc3NdW0dlb1BvbGl0aWNzXSBOQUZUQSwgdGhlIE5vcnRoIEFtZXJpY2FuIEZyZWUgVHJhZGUgQWdyZWVtZW50LCB3YXMgYSAxOTk0IGFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzLCBDYW5hZGEsIGFuZCBNZXhpY28gdG8gZWxpbWluYXRlIHRyYWRlIGJhcnJpZXJzIGFuZCBwcm9tb3RlIGZyZWUgdHJhZGUgaW4gTm9ydGggQW1lcmljYS4gSXQgZmFjaWxpdGF0ZWQgdGhlIG1vdmVtZW50IG9mIGdvb2RzIGFuZCBzZXJ2aWNlcyBhbmQgZXN0YWJsaXNoZWQgYSBsYXJnZSB0cmFkZSBibG9jLiBJbiBKdWx5IDIwMjAsIE5BRlRBIHdhcyByZXBsYWNlZCBieSB0aGUgVW5pdGVkIFN0YXRlcy1NZXhpY28tQ2FuYWRhIEFncmVlbWVudCAoVVNNQ0EpLCB3aGljaCBtb2Rlcm5pemVkIGFuZCBlbmhhbmNlZCB0aGUgdHJlYXR5IGZvciBhIGNvbnRlbXBvcmFyeSBlY29ub215Lg0KMTk5NDpbUy5BZnJpY2FdW1NvY2lhbGlzbV0gRmlyc3QgZnJlZSBlbGVjdGlvbnMgaW4gU291dGggQWZyaWNhOyBOZWxzb24gTWFuZGVsYQ0KMTk5NDpbUmVzZWFyY2hdW3NwYWNlXSBDYXJsIFNhZ2FuIGNvbmNlZGVkIHRoYXQgdGhpcyBhcHByb2FjaCB3b3VsZCBub3Qgd29yayBiZWNhdXNlIHRoZSBhdG1vc3BoZXJlIG9mIFZlbnVzIGlzIGZhciBkZW5zZXIgKDkwIGJhcnMpIHRoYW4gd2hhdCB3YXMgdW5kZXJzdG9vZCBpbiAxOTYxIChhIGZldyBiYXJzKSwgbWVhbmluZyB0aGUgY2FyYm9uIHdvdWxkIGp1c3QgYmUgb3hpZGl6ZWQgYmFjayBpbnRvIENPMi4NCjE5OTQ6W0NvbXB1dGluZ11bUXVhbnR1bV0gUGV0ZXIgU2hvciBkaXNjb3ZlcmVkIGFuIGFsZ29yaXRobSAoU2hvcidzIGFsZ29yaXRobSkgdGhhdCBjb3VsZCBmYWN0b3IgbGFyZ2UgbnVtYmVycyBpbiBwb2x5bm9taWFsIHRpbWUgb24gYSBxdWFudHVtIGNvbXB1dGVyLCB3aGljaCB3b3VsZCBicmVhayB0aGUgc2VjdXJpdHkgb2YgbWFueSBjcnlwdG9ncmFwaGljIHNjaGVtZXMuIA0KMTk5NDpbQ29tcHV0aW5nXVtRdWFudHVtXSBQZXRlciBTaG9yIGFuZCBEb24gQ29wcGVyc21pdGggZmlndXJlZCBvdXQgaG93IHRvIHRha2UgYSBRdWFudHVtIEZvdXJpZXIgVHJhbnNmb3JtLg0KMTk5NDpUaGUgcHJvYmxlbSB3aXRoIHRoZSBwYXBlciBwdWJsaXNoZWQgZWFybGllciB0aGlzIG1vbnRoIHdhcyBpdHMgcmVsaWFuY2Ugb24gU2Nobm9ycidzIGFsZ29yaXRobSAobm90IHRvIGJlIGNvbmZ1c2VkIHdpdGggU2hvcuKAmXMgYWxnb3JpdGhtKSwgd2hpY2ggd2FzIGRldmVsb3BlZCBpbiAxOTk0LiBTY2hub3Jy4oCZcyBhbGdvcml0aG0gaXMgYSBjbGFzc2ljYWwgY29tcHV0YXRpb24gYmFzZWQgb24gbGF0dGljZXMsIHdoaWNoIGFyZSBtYXRoZW1hdGljYWwgc3RydWN0dXJlcyB0aGF0IGhhdmUgbWFueSBhcHBsaWNhdGlvbnMgaW4gY29uc3RydWN0aXZlIGNyeXB0b2dyYXBoeSBhbmQgY3J5cHRhbmFseXNpcy4gVGhlIGF1dGhvcnMgd2hvIGRldmlzZWQgU2Nobm9ycuKAmXMgYWxnb3JpdGhtIHNhaWQgaXQgY291bGQgZW5oYW5jZSB0aGUgdXNlIG9mIHRoZSBoZXVyaXN0aWMgcXVhbnR1bSBvcHRpbWl6YXRpb24gbWV0aG9kIGNhbGxlZCBRQU9BLg0KMTk5NCAoSmFuIDEpOiBbR2VvUG9saXRpY3NdIFRoZSBOb3J0aCBBbWVyaWNhbiBGcmVlIFRyYWRlIEFncmVlbWVudCAoTkFGVEEpIHdhcyBhbiBhZ3JlZW1lbnQgc2lnbmVkIGJ5IENhbmFkYSwgTWV4aWNvLCBhbmQgdGhlIFVuaXRlZCBTdGF0ZXMgdGhhdCBjcmVhdGVkIGEgdHJpbGF0ZXJhbCB0cmFkZSBibG9jIGluIE5vcnRoIEFtZXJpY2EuIFRoZSBhZ3JlZW1lbnQgY2FtZSBpbnRvIGZvcmNlIG9uIEphbnVhcnkgMSwgMTk5NCwgYW5kIHN1cGVyc2VkZWQgdGhlIDE5ODggQ2FuYWRh4oCTVW5pdGVkIFN0YXRlcyBGcmVlIFRyYWRlIEFncmVlbWVudCBiZXR3ZWVuIHRoZSBVbml0ZWQgU3RhdGVzIGFuZCBDYW5hZGEuIFRoZSBOQUZUQSB0cmFkZSBibG9jIGZvcm1lZCBvbmUgb2YgdGhlIGxhcmdlc3QgdHJhZGUgYmxvY3MgaW4gdGhlIHdvcmxkIGJ5IGdyb3NzIGRvbWVzdGljIHByb2R1Y3QuDQoxOTk0OltUZWNobm9sb2d5XVtCdXNpbmVzc11bVVNdW0NvbXB1dGluZ10gVGhlIERlbGwgTGF0aXR1ZGUgc2VyaWVzIGlzIGEgbGluZSBvZiBsYXB0b3AgY29tcHV0ZXJzIG1hbnVmYWN0dXJlZCBhbmQgc29sZCBieSBBbWVyaWNhbiBjb21wYW55IERlbGwuIEl0IGlzIGEgYnVzaW5lc3Mtb3JpZW50ZWQgbGluZSwgYWltZWQgYXQgY29ycG9yYXRlIGVudGVycHJpc2VzLCBoZWFsdGhjYXJlLCBnb3Zlcm5tZW50LCBhbmQgZWR1Y2F0aW9uIG1hcmtldHM7IHVubGlrZSB0aGUgSW5zcGlyb24gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBpbmRpdmlkdWFsIGN1c3RvbWVycywgYW5kIHRoZSBWb3N0cm8gc2VyaWVzLCB3aGljaCBpcyBhaW1lZCBhdCBzbWFsbGVyIGJ1c2luZXNzZXMuIFRoZSBMYXRpdHVkZSBkaXJlY3RseSBjb21wZXRlcyB3aXRoIHRoZSBMZW5vdm8gVGhpbmtQYWQgYW5kIHRoZSBFbGl0ZUJvb2sgc2VyaWVzIGJ5IEhQLiBBZGRpdGlvbmFsbHksIHRoZSAiUnVnZ2VkIChFeHRyZW1lKSIsICJYRlIiIGFuZCAiQVRHIiBtb2RlbHMgY29tcGV0ZSBwcmltYXJpbHkgd2l0aCBQYW5hc29uaWMncyBUb3VnaGJvb2sgbGluZSBvZiAicnVnZ2VkIiBsYXB0b3BzLg0KMTk5NDogU3VzaG1pdGEgU2VuIGJlY2FtZSBNaXNzIFVuaXZlcnNlLg0KMTk5NDogVGhlIEFubmFscyBvZiBJbXByb2JhYmxlIFJlc2VhcmNoIGlzIGEgYmktbW9udGhseSBtYWdhemluZSBkZXZvdGVkIHRvIHNjaWVudGlmaWMgaHVtb3IsIGluIHRoZSBmb3JtIG9mIGEgc2F0aXJpY2FsIHRha2Ugb24gdGhlIHN0YW5kYXJkIGFjYWRlbWljIGpvdXJuYWwuDQoxOTk0OiBMaW5kb24gTGVhZGVyIG9mIExhbmRvciBBc3NvY2lhdGVzLCBvZiBTYW4gRnJhbmNpc2NvIGRlc2lnbmVkIHdvcmRtYXJrcyBmb3IgRmVkRXgncyB2YXJpb3VzIE9wLXVuaXQuIEZlZEV44oCZcyBwdWJsaWMtcmVsYXRpb25zIGZpcm0gd2FudGVkIHRvIGhpZ2hsaWdodCB0aGUgYXJyb3cgc28gaXQgd291bGQgYmUgb2J2aW91cy4gQnV0IGhlIGZvdWdodCB0aGVtIG9uIHRoYXQg4oCUIGhlIHRob3VnaHQgaXQgd291bGQgYmUgb3ZlcmtpbGwuIFRoZXJl4oCZcyBzb21ldGhpbmcgYWJvdXQgbWFraW5nIHBlb3BsZSBkaXNjb3ZlciBzb21ldGhpbmcgb24gdGhlaXIgb3duIHRoYXTigJlzIGEgbG90IG1vcmUgcG93ZXJmdWwgdGhhbiBpdGFsaWNpemluZyBpdCB0byBtYWtlIHlvdXIgcG9pbnQuDQoxOTk0OiBTY2lsYWIgMS4xLCB0aGUgZmlyc3QgcmVsZWFzZWQgdmVyc2lvbiBvZiBTY2lsYWIsIHdhcyBwdXQgb24gYW5vbnltb3VzIGZ0cCBzaXRlLg0KMTk5NDogVGhlIGNvbmNlcHQgb2YgYSBjYWbDqSB3aXRoIGZ1bGwgSW50ZXJuZXQgYWNjZXNzIChhbmQgdGhlIG5hbWUgQ3liZXJjYWbDqSkgd2FzIGludmVudGVkIGluIGVhcmx5IGJ5ICBhIEJyaXRpc2ggdGVjaG5vbG9neSBhcnRpc3QsIEl2YW4gUG9wZS4NCjE5OTQ6W0NyaW1lXVtJbmRpYV0gQ2hob3RhIFJhamFuIGx1cmVkIG9uZSBvZiBEYXdvb2QncyBmYXZvcml0ZSAibmFyY28tdGVycm9yaXN0IiBQaGlsbHUgS2hhbiBhbGlhcyBCYWtodGl5YXIgQWhtZWQgS2hhbiB0byBhIGhvdGVsIHJvb20gaW4gQmFuZ2tvaywgd2hlcmUgaGUgd2FzIHRvcnR1cmVkIHRvIGRlYXRoLCBoYXZpbmcgYmVlbiBiZXRyYXllZCBieSBoaXMgY2xvc2VzdCBhaWRlIGFuZCBzaWRla2ljayBNYW5nZXNoICJNYW5neWEiIFBhd2FyLiBELUNvbXBhbnkncyBTaGFyYWQsIHVzZWQgaGlzIGxpbmtzIHdpdGggTXVtYmFpLWJhc2VkIGhvdGVsaWVyIFZpbm9kIGFuZCBBLiBNaXNocmEgdG8gdHJhY2sgZG93biBSYWphbiBpbiBCYW5na29rLiBSYWphbidzIGhpdG1hbiBSb2hpdCBWYXJtYSBhbmQgaGlzIHdpZmUgc2hvdCBieSBELUNvbXBhbnkuDQoxOTk0KEp1bCAxNik6W1NwYWNlXSBGcm9tIEp1bHkgMTYgdG8gMjIsIDE5OTQsIGVub3Jtb3VzIHBpZWNlcyBvZiB0aGUgY29tZXQgU2hvZW1ha2VyLUxldnkgOSAoU0w5KSwgZGlzY292ZXJlZCBqdXN0IGEgeWVhciBwcmlvciwgY3Jhc2hlZCBpbnRvIEp1cGl0ZXIgb3ZlciBzZXZlcmFsIGRheXMsIGNyZWF0aW5nIGh1Z2UsIGRhcmsgc2NhcnMgaW4gdGhlIHBsYW5ldCdzIGF0bW9zcGhlcmUgYW5kIGxvZnRpbmcgc3VwZXJoZWF0ZWQgcGx1bWVzIGludG8gaXRzIHN0cmF0b3NwaGVyZS4NCjE5OTQgKE9jdCk6IElUUE8gYW5kIEdvSSdzIE5JQyBqb2ludGx5IHNldC11cCB0aGUgTmF0aW9uYWwgQ2VudHJlIGZvciBUcmFkZSBJbmZvcm1hdGlvbiAoTkNUSSkgYXQgUHJhZ2F0aSBNYWlkYW4uDQoxOTk0IChOb3YgMSwgMTU6MDEgSVNUKTpbU3BhY2VdW1N1bl0gVGhlIEdsb2JhbCBHZW9zcGFjZSBTY2llbmNlICdXaW5kJyBzYXRlbGxpdGUgaXMgYSBOQVNBIHNjaWVuY2Ugc3BhY2VjcmFmdCBkZXNpZ25lZCB0byBzdHVkeSByYWRpbyB3YXZlcyBhbmQgcGxhc21hIHRoYXQgb2NjdXIgaW4gdGhlIHNvbGFyIHdpbmQgYW5kIGluIHRoZSBFYXJ0aCdzIG1hZ25ldG9zcGhlcmUuIA0KMTk5NCAoRGVjIDMpOiBTb255J3MgUGxheVN0YXRpb24gKGEgdmlkZW8gZ2FtZSBjb25zb2xlKSB3YXMgaW50cm9kdWNlZCB0byB0aGUgd29ybGQgZnJvbSBNaW5hdG8sIFRva3lvIChKYXBhbikuDQoxOTk0OiBXWFlDLSBmaXJzdCBpbnRlcm5ldCByYWRpbyBzdGF0aW9uIGJyb2FkY2FzdC4NCjE5OTQ6IE1lbW9yeSBjYXJkcyB3ZXJlIGludHJvZHVjZWQgaW4gdGhlIGNvbnN1bWVyIGVsZWN0cm9uaWNzIG1hcmtldC4NCjE5OTQgKEF1Zyk6IElUUE8ncyAxc3QgRGVsaGkgQm9vayBGYWlyIGF0ICBIYWxsIDggdG8gMTIgb2YgUHJhZ2F0aSBNYWlkYW4sIE5ldyBEZWxoaS4gVGhlIHRpbWluZ3Mgb2YgZmFpciBhcmUgZnJvbSAxMC4wMCBhbSB0byA4LjAwIHBtIChlbnRyeSB0byBmYWlyIHdpbGwgY2xvc2UgYXQgNy4zMCBwbSkuDQoxOTk0IChTZXApOiBUaGUgQ09OQ0VSVCBzb2Z0d2FyZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgaW1wbGVtZW50ZWQgYXQgYWxsIG9mIHRoZSBmaXZlIFBSUycgc2l0ZXMgU2VjdW5kZXJhYmFkIGluIFNlcHQuIDE5OTQsIE5ldyBEZWxoaSBvbiBTZXB0LiAxOTk2LCBDYWxjdXR0YSBvbiAxNHRoIEp1bmUgMTk5OCwgTXVtYmFpIG9uIDExdGggSmFuIDE5OTkgYW5kIENoZW5uYWkgb24gMTJ0aCBBcHJpbCAxOTk5Lg0KMTk5NDogdGhlIDI0dGggYW5kIHRoZSBsYXN0IEdQUyBzYXRlbGxpdGUgd2FzIGxhdW5jaGVkIGluIFVTLg0KMTk5NDogVGhlIHdvcmQgVGFsaWJhbiBpcyBQYXNodG8sINi32KfZhNio2KfZhiDhua3EgWxpYsSBbiwgbWVhbmluZyAic3R1ZGVudHMiLCB0aGUgcGx1cmFsIG9mIOG5rcSBbGliLiBBZnRlciB0aGUgU292aWV0IFVuaW9uIGludGVydmVuZWQgYW5kIG9jY3VwaWVkIEFmZ2hhbmlzdGFuIGluIDE5NzksIElzbGFtaWMgbXVqYWhpZGVlbiBmaWdodGVycyBlbmdhZ2VkIGluIHdhciB3aXRoIHRob3NlIFNvdmlldCBmb3JjZXMsIHdoaWNoIGxhaWQgdGhlIGZvdW5kYXRpb24gb2YgcG9saXRpY2FsIG1vdmVtZW50IGFuZCBtaWxpdGFyeSBvcmdhbml6YXRpb24gbmFtZWQgVGFsaWJhbi4NCjE5OTQ6IEFiZHVsIEthcmVlbSBUZWxnaSBhY3F1aXJlZCB0aGUgbGljZW5zZSBmb3Igc2VsbGluZyBzdGFtcCBwYXBlciBhbmQgb3BlbmVkIGFuIG9mZmljZSBpbiBNdW1iYWkuIEFmdGVyIHRoYXQsIGhlIHN0YXJ0ZWQgcHJpbnRpbmcgc3RhbXAgcGFwZXIgaW4gTmFzaGlrLiBXaXRoIHNvbWUgYWdlbnRz4oCZIGhlbHAsIGhlIHN0YXJ0cyBzZWxsaW5nIGZha2Ugc3RhbXAgcGFwZXIgaW4gYnVsayB0byBiYW5rcywgaW5zdXJhbmNlIGNvbXBhbmllcywgc3RvY2sgYnJva2VyYWdlIGZpcm1zLCBhbmQgY29ycG9yYXRlcy4gSW4gMjAwMyB0aGUgVGVsZ2kgc2NhbSB3YXMgdW5mb2xkZWQ7IHRoZSBmaWd1cmUgaW4gdGhlIG1pbmQgb2Ygc2VjdXJpdHkgYW5kIGludGVsbGlnZW5jZSBhZ2VuY2llcyB3YXMgdXAgdG8gUnMuMjBrIENyb3JlDQoxOTk0OiBbR2VvUG9saXRpY3NdIEludGVybmF0aW9uYWwgQXNzb2NpYXRpb24gb2YgR2VuZGFybWVyaWVzIGFuZCBQb2xpY2UgRm9yY2VzIHdpdGggTWlsaXRhcnkgU3RhdHVzIChjb21tb25seSBrbm93biBhcyBGSUVQIGZvciBGcmFuY2UtSXRhbGlhLUVzcGHDsWEtUG9ydHVnYWwsIHRoZSBmaXJzdCBmb3VyIG1lbWJlcnMpIGlzIGFuIGFzc29jaWF0aW9uIG9mIG5hdGlvbmFsIGdlbmRhcm1lcmllcyBvciBtaWxpdGFyeSBwb2xpY2UgZm9yY2VzLg0KMTk5NDpbQm9va10gUGFsZSBCbHVlIERvdDogQSBWaXNpb24gb2YgdGhlIEh1bWFuIEZ1dHVyZSBpbiBTcGFjZSBpcyBhIDE5OTQgYm9vayBieSB0aGUgYXN0cm9ub21lciBDYXJsIFNhZ2FuLiBJdCBpcyB0aGUgc2VxdWVsIHRvIFNhZ2FuJ3MgMTk4MCBib29rIENvc21vcyBhbmQgd2FzIGluc3BpcmVkIGJ5IHRoZSBmYW1vdXMgMTk5MCBQYWxlIEJsdWUgRG90IHBob3RvZ3JhcGgsIGZvciB3aGljaCBTYWdhbiBwcm92aWRlcyBhIHBvaWduYW50IGRlc2NyaXB0aW9uLiBJbiB0aGUgYm9vaywgU2FnYW4gbWl4ZXMgcGhpbG9zb3BoeSBhYm91dCB0aGUgaHVtYW4gcGxhY2UgaW4gdGhlIHVuaXZlcnNlIHdpdGggYSBkZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCBrbm93bGVkZ2UgYWJvdXQgdGhlIFNvbGFyIFN5c3RlbS4gSGUgYWxzbyBkZXRhaWxzIGEgaHVtYW4gdmlzaW9uIGZvciB0aGUgZnV0dXJlLg0KMTk5NDpbQ2luZW1hXSBHb2R6aWxsYSB2cy4gTWVjaGFnb2R6aWxsYSBJSSgxOTkzKQ0KMTk5NDpbQ2luZW1hXSBUaGUgQXBwbGUoMTk4MCkNCjE5OTQ6W0NpbmVtYV0gVGhlIEF0bGFudGlzIEludGVyY2VwdG9ycygxOTgzKQ0KMTk5NDpbTW50bmdnXSBJbiAxOTk0LCBNYXJrIFdoZXR1IHN1bW1pdHRlZCBNdCBFdmVyZXN0IHdpdGggTWlrZSBSZWluYmVyZ2VyLiBCdXQgYWZ0ZXIgYSBmcmVlemluZyBuaWdodCwgV2hldHUgZmFjZWQgYSBoYXJyb3dpbmcgY2hvaWNlOiBsZWF2ZSBoaXMgZnJpZW5kIG9yIHJlbWFpbiBmb3JldmVyLiBUaGUgRmF0YWwgR2FtZSAoMTk5NykNCjE5OTQ6W1RvdXJpc21dIFRoZSBBZHZlbnR1cmUgVG91ciBPcGVyYXRvcnMgQXNzb2NpYXRpb24gb2YgSW5kaWEgKEFUT0FJKSB3YXMgZm91bmRlZCBpbiAxOTk0LiBJdCB3YXMgZXN0YWJsaXNoZWQgYnkgYSBncm91cCBvZiB0cmF2ZWwgdHJhZGUgYWR2ZW50dXJlcnMgd2hvIGFpbWVkIHRvIGNyZWF0ZSBhIHN0cm9uZyBzdXBwb3J0IG5ldHdvcmsgZm9yIEluZGlhbiBhZHZlbnR1cmUgdG91ciBvcGVyYXRvcnMuIA0KDQoxOTk1IChNYXkgMTkpOiBbUmVzZWFyY2hdW1NwYWNlXSB0d28gc2NpZW50aXN0cyBhdCBDYWwgUG9seSBzaG93ZWQgdGhhdCBiYWN0ZXJpYSBjYW4gc3Vydml2ZSB3aXRob3V0IGFueSBtZXRhYm9saXNtIGZvciBhdCBsZWFzdCAyNSBtaWxsaW9uIHllYXJzOyBwcm9iYWJseSB0aGV5IGFyZSBpbW1vcnRhbC4NCjI0IE5vdmVtYmVyIDE5OTU6IFRoZSBOZXcgWW9yayBUaW1lcyBkZXNjcmliZWQgYmFjdGVyaWEgdGhhdCBjYW4gc3Vydml2ZSByYWRpYXRpb24gbXVjaCBzdHJvbmdlciB0aGFuIGFueSB0aGF0IEVhcnRoIGhhcyBldmVyIGV4cGVyaWVuY2VkLg0KV2UgYXJlIGNhbGxpbmcgdGhlIHVuaW9uIG9mIExvdmVsb2NrJ3MgR2FpYSB3aXRoIEhveWxlIGFuZCBXaWNrcmFtYXNpbmdoZSdzIGV4cGFuZGVkIHRoZW9yeSBvZiBwYW5zcGVybWlhIENvc21pYyBBbmNlc3RyeS4gVGhpcyBhY2NvdW50IG9mIGV2b2x1dGlvbiBhbmQgdGhlIG9yaWdpbiBvZiBsaWZlIG9uIEVhcnRoIGlzIHByb2ZvdW5kbHkgZGlmZmVyZW50IGZyb20gdGhlIHByZXZhaWxpbmcgc2NpZW50aWZpYyBwYXJhZGlnbS4gSXQgY2hhbGxlbmdlcyBub3QgbWVyZWx5IHRoZSBhbnN3ZXJzIGJ1dCB0aGUgcXVlc3Rpb25zIHRoYXQgYXJlIHBvcHVsYXIgdG9kYXkuIENvc21pYyBBbmNlc3RyeSByZXF1aXJlcyB0aGF0IGxpZmUgY2FuIG9ubHkgZGVzY2VuZCBmcm9tIGFuY2VzdG9ycyBhdCBsZWFzdCBhcyBoaWdobHkgZXZvbHZlZCBhcyBpdHNlbGYsIGFuZCB0aGF0IHRoZXJlIGNhbiBiZSBubyBvcmlnaW4gb2YgbGlmZSBmcm9tIG5vbmJpb2xvZ2ljYWwgbWF0dGVyLiBXaXRob3V0IHN1cGVybmF0dXJhbCBpbnRlcnZlbnRpb24sIHRoZXJlZm9yZSwgd2UgY29uY2x1ZGUgdGhhdCBsaWZlIG11c3QgaGF2ZSBhbHdheXMgZXhpc3RlZC4gQWx0aG91Z2ggdGhlc2UgY29uY2x1c2lvbnMgY3V0IGFjcm9zcyB0aGUgYm91bmRhcmllcyBiZXR3ZWVuIHNjaWVuY2UsIHBoaWxvc29waHksIGFuZCByZWxpZ2lvbiwgd2UgYmVsaWV2ZSB0aGV5IGFyZSBncm91bmRlZCBpbiBnb29kIGV2aWRlbmNlLiBBbmQgbmV3IGRhdGEgdGhhdCBzdXBwb3J0IG1hbnkgYXNwZWN0cyBvZiBDb3NtaWMgQW5jZXN0cnkgYXJlIGNvbWluZyBpbiByYXBpZGx5LiBJbiB0aGUgZm9sbG93aW5nIHBhZ2VzIHdlIHdpbGwgZXhwbGFpbiBob3cgdGhlc2UgYW5kIG90aGVyIHJlY2VudCBkZXZlbG9wbWVudHMgc3VwcG9ydCBDb3NtaWMgQW5jZXN0cnk6DQoNCjE5OTU6IEFOU0VUIHNvbGQgdG8gQU9MLCB3aG8gIG5vdyBydW5zIGl0Lg0KMTk5NSAoTWFyKTogRGVwdC4gb2YgSW5kaWFuIE1lZGljaW5lIGFuZCBIb21lb3BhdGh5IGZvdW5kZWQuDQoxOTk1IChNYXIgMjQpOltSZXNlYXJjaF0gUmVtb3RlbHkgT3BlcmF0ZWQgVmVoaWNsZSBLQUlLTyByZWFjaGVkIHRoZSBkZWVwZXN0IGFyZWEgb2YgdGhlIE1hcmlhbmEgVHJlbmNoIGFuZCBtYWRlIHRoZSBkZWVwZXN0IGRpdmluZyByZWNvcmQgb2YgMTAsOTExIG0gKDM1LDc5NyBmdDsgNSw5NjYgZmF0aG9tcykgDQoxOTk1OiBwaG9uZSBjYWxsIGNvc3RpbmcgUnMuIDE2IHBlciBtaW4uDQoxOTk1OltHYW1pbmddIFZpcnR1YSBDb3AgMiBpcyBhIGxpZ2h0IGd1biBzaG9vdGVyIGFyY2FkZSBnYW1lLCByZWxlYXNlZCBpbiAxOTk1IGFuZCBkZXZlbG9wZWQgaW50ZXJuYWxseSBhdCBTZWdhIGJ5IHRoZWlyIEFNMiBzdHVkaW8gKFl1IFN1enVraSkuIEl0IHdhcyBwb3J0ZWQgdG8gdGhlIFNlZ2EgU2F0dXJuIGluIDE5OTYuIEl0IHdhcyByZWxlYXNlZCBvbiBQQyBpbiAxOTk3IGFuZCBTZWdhIERyZWFtY2FzdCBpbiAyMDAwLiBJdCB3YXMgbGF0ZXIgYnVuZGxlZCB3aXRoIFZpcnR1YSBDb3AgaW4gVmlydHVhIENvcDogRWxpdGUgRWRpdGlvbiBmb3IgUGxheVN0YXRpb24gMiBpbiAyMDAyLg0lklklklklklklklklkABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZsdsdsdsdsghjghghghgjhghjgjhgi8L2mJb4A9rK6wV5pT1zY8xQ3cR7vN2mB6nC9xZ1qP4lO9kM3jU7hY2gB8vF6dD3sA1qW2eR4tY6uI9oO8pP7lL0kJmH9nB6vC5xZ4qA3sW2eR1tY6uI9oO8pP7lL0kJmH9nB6vC5xZ4qA3sW2eR1tY6uI9oO8pP7lL0kJmH9nB6vC5xZ4qA3sW2eR1tY6uI9oO8pP7lL0kJmH9nB6vC5xZ4qA3sW2eR1tY6uI9oO8pP7lL0kJmH9nB6vC5xZ4qA3sW2eR1tY6uI9oO8pP7lL0kJmH9nB6vC5xZ4qA3sW2eR1tY6uI9oO8pP7lL0kJmH9nB6vC5xZ4qA3sW2eR1tY6uI9oO8pP7lL0kJmH9nB6vC5xZ4qA3sW2eR1tY6uI9oO8pP7lL0kJmH9nB6vC5xZ4qA3sW2eR1tY6uI9oO8pP7lL0kJmH9nB6vC5xZ4qA3sW2eR1tY6uI9oO8pP7lL0kJmH9nB6vC5xZ4qA3sW2eR1tY6uI9oO8pP7lL0kJmH9nB6vC5xZ4qA3sW2eR1tY6uI9oO8pP7lL0kJmH9nB6vC5xZ4qA3sW2eR1tY6uI9oO8pP7lL0kJmH9nB6vC5xZ4qA3sW2eR1tY6uI9oO8pP7lL0kJmH9nB6vC5xZ4qA3sW2eR1tY6uI9oO8pP7lL0kJmH9nB6vC5xZ4qA3sW2eR1tY6uI9oO8pP7lL0kJmH9nB6vC5xZ4qA3sW2eR1tY6uI9oO8pP7lL0kJmH9nB6vC5xZ4qA3sW2eR1tY6uI9oO8pP7lL0kJmH9nB6vC5xZ4qA3sW2plc1234567890123456789012345678901123456789012345678901123456789012345678901123456789012345678901123456789012345678901123456789012345678901123456789012345678901123456789012345678901abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh
Comments
Post a Comment