CQkJCQkJCS0qLSB0ZXh0IC0qLQpHTlUgU2VydmljZSBEaXJlY3RvcnkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpUaGlzIGlzIGEgbGlzdCBvZiBwZW9wbGUgd2hvIGhhdmUgYXNrZWQgdG8gYmUgbGlzdGVkIGFzIG9mZmVyaW5nCnN1cHBvcnQgc2VydmljZXMgZm9yIEdOVSBzb2Z0d2FyZSwgaW5jbHVkaW5nIEdOVSBFbWFjcywgZm9yIGEgZmVlCm9yIGluIHNvbWUgY2FzZXMgYXQgbm8gY2hhcmdlLgoKVGhlIGluZm9ybWF0aW9uIGNvbWVzIGZyb20gdGhlIHBlb3BsZSB3aG8gYXNrZWQgdG8gYmUgbGlzdGVkOwp3ZSBkbyBub3QgaW5jbHVkZSBhbnkgaW5mb3JtYXRpb24gd2Uga25vdyB0byBiZSBmYWxzZSwgYnV0IHdlCmNhbm5vdCBjaGVjayBvdXQgYW55IG9mIHRoZSBpbmZvcm1hdGlvbjsgd2UgYXJlIHRyYW5zbWl0dGluZyBpdCB0bwp5b3UgYXMgaXQgd2FzIGdpdmVuIHRvIHVzIGFuZCBkbyBub3QgcHJvbWlzZSBpdCBpcyBjb3JyZWN0LgpBbHNvLCB0aGlzIGlzIG5vdCBhbiBlbmRvcnNlbWVudCBvZiB0aGUgcGVvcGxlIGxpc3RlZCBoZXJlLgpXZSBoYXZlIG5vIG9waW5pb25zIGFuZCB1c3VhbGx5IG5vIGluZm9ybWF0aW9uIGFib3V0IHRoZSBhYmlsaXRpZXMgb2YKYW55IHNwZWNpZmljIHBlcnNvbi4gIFdlIHByb3ZpZGUgdGhpcyBsaXN0IHRvIGVuYWJsZSB5b3UgdG8gY29udGFjdApzZXJ2aWNlIHByb3ZpZGVycyBhbmQgZGVjaWRlIGZvciB5b3Vyc2VsZiB3aGV0aGVyIHRvIGhpcmUgb25lLgoKQmVmb3JlIEZTRiB3aWxsIGxpc3QgeW91ciBuYW1lIGluIHRoZSBHTlUgU2VydmljZSBEaXJlY3RvcnksIHdlIGFzawp0aGF0IHlvdSBhZ3JlZSBpbmZvcm1hbGx5IHRvIHRoZSBmb2xsb3dpbmcgdGVybXM6CgoxLiBZb3Ugd2lsbCBub3QgcmVzdHJpY3QgKGV4Y2VwdCBieSBjb3B5bGVmdCkgdGhlIHVzZSBvciBkaXN0cmlidXRpb24Kb2YgYW55IHNvZnR3YXJlLCBkb2N1bWVudGF0aW9uLCBvciBvdGhlciBpbmZvcm1hdGlvbiB5b3Ugc3VwcGx5IGFueW9uZQppbiB0aGUgY291cnNlIG9mIG1vZGlmeWluZywgZXh0ZW5kaW5nLCBvciBzdXBwb3J0aW5nIEdOVSBzb2Z0d2FyZS4KVGhpcyBpbmNsdWRlcyBhbnkgaW5mb3JtYXRpb24gc3BlY2lmaWNhbGx5IGRlc2lnbmVkIHRvIGFtZWxpb3JhdGUgdGhlCnVzZSBvZiBHTlUgc29mdHdhcmUuCgoyLiBZb3Ugd2lsbCBub3QgdGFrZSBhZHZhbnRhZ2Ugb2YgY29udGFjdCBtYWRlIHRocm91Z2ggdGhlIFNlcnZpY2UKRGlyZWN0b3J5IHRvIGFkdmVydGlzZSBhbiB1bnJlbGF0ZWQgYnVzaW5lc3MgKGUuZy4sIHNhbGVzIG9mCm5vbi1HTlUtcmVsYXRlZCBwcm9wcmlldGFyeSBpbmZvcm1hdGlvbikuICBZb3UgbWF5IHNwb250YW5lb3VzbHkKbWVudGlvbiB5b3VyIGF2YWlsYWJpbGl0eSBmb3IgZ2VuZXJhbCBjb25zdWx0aW5nLCBidXQgeW91IHNob3VsZCBub3QKcHJvbW90ZSBhIHNwZWNpZmljIHVucmVsYXRlZCBidXNpbmVzcyB1bmxlc3MgdGhlIGNsaWVudCBhc2tzLgoKUGxlYXNlIGluY2x1ZGUgc29tZSBpbmRpY2F0aW9uIG9mIHlvdXIgcmF0ZXMsIGJlY2F1c2Ugb3RoZXJ3aXNlIHVzZXJzCmhhdmUgbm90aGluZyB0byBnbyBieS4JUGxlYXNlIHB1dCBlYWNoIGUtbWFpbCBhZGRyZXNzIGluc2lkZSAiPD4iLgpQbGVhc2UgcHV0IG5vdGhpbmcgZWxzZSBpbnNpZGUgIjw+Ii4gIFRoYW5rcyEKCkZvciBhIGN1cnJlbnQgY29weSBvZiB0aGlzIGRpcmVjdG9yeSwgb3IgdG8gaGF2ZSB5b3Vyc2VsZiBsaXN0ZWQsIGFzazoKCWdudUBwcmVwLmFpLm1pdC5lZHUKCioqIFBsZWFzZSBrZWVwIHRoZSBlbnRyaWVzIGluIHRoaXMgZmlsZSBhbHBoYWJldGljYWwgKioKHwpBbHRyYXNvZnQJPGluZm9AYWx0cmFzb2Z0LmNvbT4KNDg4MCBTdGV2ZW5zIENyZWVrIEJsdmQuLCBTdWl0ZSAyMDUKU2FuIEpvc2UsIENBICA5NTEyOS0xMDM0CisxIDQwOCAyNDMgMzMwMApodHRwOi8vd3d3LmFsdHJhc29mdC5jb20KCkFsdHJhc29mdCBwcm92aWRlcyBjb3Jwb3JhdGUtcXVhbGl0eSBzdXBwb3J0LCBkZXZlbG9wbWVudCBhbmQgdXNlcgpkb2N1bWVudGF0aW9uIGZvciBHTlUgRW1hY3MsIFhFbWFjcyBhbmQgSW5mb0RvY2suICAoSW5mb0RvY2sgaXMgYSB0dXJua2V5CmluZm9ybWF0aW9uIG1hbmFnZW1lbnQgYW5kIHNvZnR3YXJlIGRldmVsb3BtZW50IHRvb2xzZXQgYnVpbHQgYXRvcCBlbWFjcywKd3JpdHRlbiBieSBvbmUgb2Ygb3VyIGFzc29jaWF0ZXMuKSAgRW1hY3MgZGlzdHJpYnV0aW9ucyBmb3IgYSB2YXJpZXR5IG9mCnBsYXRmb3JtcyBhcmUgYWxzbyBhdmFpbGFibGUsIGFzIGlzIHN1cHBvcnQgZm9yIG90aGVyIGVtYWNzIHZhcmlhbnRzLCBzdWNoIGFzCnRob3NlIG9mdGVuIGZvdW5kIG9uIFBDcy4KCk91ciB1bmlxdWUgZm9jdXMgb24gZW1hY3MtcmVsYXRlZCB3b3JrIGFsbG93cyB1cyB0byBhdHRyYWN0IGV4cGVydCB0YWxlbnQgaW4KdGhpcyBhcmVhIHRvIGtlZXAgeW91IG9uIHRoZSBsZWFkaW5nIGVkZ2Ugb2YgcHJvZHVjdGl2aXR5LCBlc3BlY2lhbGx5IGlmIHlvdQpkbyBzb2Z0d2FyZSBkZXZlbG9wbWVudCB3b3JrLiAgV2UgZG8gdGhlIHBvcnRpbmcsIHBhdGNoaW5nLCBjb2RpbmcsCmludGVncmF0aW5nLCBkZWJ1Z2dpbmcsIGRvY3VtZW50aW5nIGFuZCB0ZXN0aW5nIHNvIHRoYXQgeW91ciBwZW9wbGUgc3BlbmQKbXVjaCBtb3JlIHByb2R1Y3RpdmUgdGltZSBvbiB0aGVpciBtYWlubGluZSB0YXNrcy4KClN0YW5kYXJkIHN1cHBvcnQgcGFja2FnZXMgaW5jbHVkZSBoZWxwIG9uIGFsbCBhc3BlY3RzIG9mIHRoZSBwYWNrYWdlcwpzdXBwb3J0ZWQsIGluY2x1ZGluZyBhbGwgdG9vbHMgc2hpcHBlZCBhcyBhIHN0YW5kYXJkIHBhcnQgb2YgdGhlIG9yaWdpbmFsCnBhY2thZ2UgZGlzdHJpYnV0aW9uLiAgSW4gZ2VuZXJhbCwgd2Ugd2FudCB0byBnaXZlIHlvdSBhbiB1bmJlbGlldmFibHkgc3Ryb25nCmxldmVsIG9mIHN1cHBvcnQsIHNvIHdoZXJlIHdlIGNhbiwgd2Ugd2lsbCBhbHNvIGFuc3dlciBxdWVzdGlvbnMgY29uY2VybmluZwphbnkgYWRkLW9uIExpc3AgY29kZSB0aGF0IGlzIHVzZWQgYXQgeW91ciBzaXRlLiAgU2V0dXAgYW5kIGN1c3RvbWl6YXRpb24KaGVscCwgYnVnIGZpeGVzLCBhbmQgYW5ub3VuY2VtZW50cyBvZiBuZXcgcmVsZWFzZXMgYXJlLCBvZiBjb3Vyc2UsIGluY2x1ZGVkLgoKU3VwcG9ydCByYXRlcyBzdGFydCBhdCAkMSw1MDAgVVNELCBmb3Igc2luZ2xlIHVzZXIgc3VwcG9ydCBmb3Igb25lIHllYXIuCkRpc2NvdW50cyBhcmUgYXZhaWxhYmxlIGZvciBncm91cCBjb250cmFjdHMuICBXZSBhbHNvIG9mZmVyIEdvbGRlbiBTdXBwb3J0CmNvbnRyYWN0cyBmb3IgdGhvc2Ugd2hvIG5lZWQgdGhlIGFic29sdXRlIGJlc3QgaW4gbWlzc2lvbi1jcml0aWNhbCBzdXBwb3J0Owpjb250YWN0IHVzIGZvciBkZXRhaWxzLiAgSG91cmx5IGRldmVsb3BtZW50IHJhdGVzIGFuZCBmaXhlZCBiaWQgd29yayBhcmUKYXZhaWxhYmxlLgoKVXBkYXRlZDogMTk5Ny0wNS0xMgofCk1hZ251cyBBbHZlc3RhZCA8bWFnbnVzQGl0YW5hbHlzZS5ubz4KCkdOVSBFbWFjcywgR0NDLCB0aGUgVW5peCB0b29scywgTGludXgsIEpvbHQuCgpSYXRlczogRnJlZSwgb3IgZnJvbSAkNTAvaG91ci4KClVwZGF0ZWQ6ICAxOTk3LTA1LTA5Ch8KQU8gVXJiYW5Tb2Z0IDxpbmZvQHVzb2Z0LnNwYi5zdT4KU3QuIFBldGVyc2J1cmcgU3RhdGUgVW5pdmVyc2l0eSBTY2llbmNlIENhbXB1cwpTdC4gUGV0ZXJzYnVyZywgUnVzc2lhCnd3dy51c29mdC5zcGIucnUKCkFPIFVyYmFuU29mdCBwYWNrYWdlcywgbWFya2V0cyBhbmQgc3VwcG9ydHMKaW5kdXN0cnkgc3RhbmRhcmQgZnJlZSBzb2Z0d2FyZSBwcm9kdWN0cywKaW5jbHVkaW5nIHRoZSBMaW51eCBvcGVyYXRpbmcgc3lzdGVtIGFuZApUZVggZG9jdW1lbnQgY29tcGlsZXIuClRoZSBjb21wYW55IGFsc28gcHJvdmlkZXMgcHJvZ3JhbW1pbmcgc2VydmljZXMgCmJhc2VkIG9uIFRlWCwgVGssIFB5dGhvbiwgSFRNTCwgSmF2YSwgUGVybCBhbmQKSW50cmFuZXQuIAoKUmF0ZXMgYXBwcm94aW1hdGVseSAxNSBVU0QgcGVyIGhvdXIuCgpVcGRhdGVkOiAxOTk3LTA1LTI1Ch8KSm9zZXBoIEFyY2VuZWF1eCAgICAgICAgCTxqbGFAYWkubWl0LmVkdT4KUE8gQm94IDQ2MDYzMwkJCWh0dHA6Ly93d3cuc2Ftc2FyYS5jb20vfmpsYQpTYW4gRnJhbmNpc2NvLCBDQSAgOTQxNDYtMDYzMworMSA0MTUgNjQ4IDk5ODgKKzEgNDE1IDI4NSA5MDg4CgpSZWNlbnRseSBsZWQgdGhlIHByb2plY3QgbWFraW5nIFdlbGxzIEZhcmdvIEJhbmsgdGhlIGZpcnN0IHRvIHByb3ZpZGUKc2VjdXJlIGN1c3RvbWVyIGFjY291bnQgYWNjZXNzIG92ZXIgdGhlIEludGVybmV0LgoKRm9ybWVyIEZTRiBzdGFmZm1lbWJlci4gIFBlcmZvcm1lZCBYMTEgaW1wbGVtZW50YXRpb24gb2YgRW1hY3MgdmVyc2lvbgoxOSwgZGVzaWduZWQgYW5kIGltcGxlbWVudGVkIFdZU0lXWUcgRW1hY3MuICBJbnN0YWxsZWQgYW5kCmFkbWluaXN0ZXJlZCBGU0YgbmV0d29yay4gIE1haW50YWluZXIgb2YgR05VIGluZGVudC4gIE92ZXIgMTUgeWVhcnMKZXhwZXJpZW5jZSB3aXRoIFVuaXggYW5kIG90aGVyIHN5c3RlbXMsIGZyb20gd3JpdGluZyBST00gbW9uaXRvcnMgdG8KVUkgZGVzaWduIGFuZCBzeXN0ZW0gYWRtaW5pc3RyYXRpb24uCgpJIHByb3ZpZGUgaW5zdGFsbGF0aW9uLCBwb3J0aW5nLCBkZWJ1Z2dpbmcgYW5kIGN1c3RvbWl6YXRpb24gb3IKZGV2ZWxvcG1lbnQgb2YgR05VIGFuZCBvdGhlciBVbml4IHNvZnR3YXJlLiAgSSBhbHNvIGRlc2lnbiBhbmQKaW1wbGVtZW50IGZyZWUgc29mdHdhcmUgcHJvamVjdHMgYW5kIGNvbnN1bHQgb24gc29mdHdhcmUgZW5naW5lZXJpbmcKYW5kIHN5c3RlbXMgZGVzaWduLiAgSGFuZGhvbGRpbmcgYW5kICB0ZWFjaGluZyBzZXJ2aWNlcyBhcmUgYWxzbwphdmFpbGFibGUgYXMgd2VsbCBhcyB0aGluZ3MgbGlrZSBMQU4gYW5kIGNvbXB1dGUtLWluZnJhc3RydWN0dXJlIGRlc2lnbi4KClRpbWUgYW5kIG1hdGVyaWFsIHJhdGVzIGFyb3VuZCAkMTUwIFVTRCBwZXIgaG91ciwgZGVwZW5kaW5nIHVwb24gdGhlCnBhcnRpY3VsYXIgam9iLiAgSSBhbSBhbHNvIHZlcnkgaW50ZXJlc3RlZCBpbiBmaXhlZC1iaWQgam9icy4gIEZvcgpzZWxlY3RlZCBub24tcHJvZml0IG9yZ2FuaXphdGlvbnMgd2l0aCB3b3J0aHkgZ29hbHMsIEkgd29yayBmb3IgZnJlZS4KClVwZGF0ZWQ6IDE5OTUtMTAtMTcKHwpHZXJkIEFzY2hlbWFubgkJPEFzY2hlbWFubkBJbmZvcm1hdGlrLlRILURhcm1zdGFkdC5kZT4KT3Nhbm5zdHIuIDQ5CkQtNjQyODUgRGFybXN0YWR0ClRlbC46ICs0OSA2MTUxIDE2IDIyNTkKaHR0cDovL3d3dy5pbmZvcm1hdGlrLnRoLWRhcm1zdGFkdC5kZS9+YXNjaGVtYW4vCgotIFN5c3RlbSBBZG1pbmlzdHJhdG9yIChVTklYKSBhdCBDUyBEZXBhcnRtZW50LCBUVSBEYXJtc3RhZHQsIEdlcm1hbnkKLSAxNyB5ZWFycyBleHBlcmllbmNlIHdpdGggQ1MsIFN5c3RlbSBhZG1pbmlzdHJhdGlvbiBvbiBkaWZmZXJlbnQgcGxhdGZvcm1zCi0gMTAgeWVhcnMgd2l0aCBVTklYL05ldHdvcmtpbmcvRnJlZVdhcmUvR05VL1gxMQotICA4IHllYXJzIG9yZ2FuaXplciBvZiBPcGVyYXRpbmcgU3lzdGVtcyBhbmQgRGlzdHJpYnV0ZWQgU3lzdGVtcyBjb3Vyc2VzCi0gTGVjdHVyZXMgb24gU3lzdGVtIGFuZCBOZXR3b3JrIEFkbWluaXN0cmF0aW9uCi0gUGxhdGZvcm1zOiBTb2xhcmlzLCBTdW5PUywgVWx0cml4LCBPU0YxLCBIUC1VWCwgTGludXgsIEZyZWVCU0QsIEFJWCwgU0NPCi0gRGlzdHJpYnV0ZWQgUGxhdGZvcm1zIGFuZCBJbmZvcm1hdGlvbiBTeXN0ZW1zIChDT1JCQSwgV1dXLCBKYXZhLCBGVFApCi0gRXhwZXJpZW5jZSB3aXRoIHBhcmFsbGVsIGVudmlyb25tZW50cyAoQ29ubmVjdGlvbiBNYWNoaW5lLCBNZWlrbywgUGFyc3l0ZWMpCi0gQ29uc3VsdGFudAoKUmF0ZXMgYXJlIGF0IDEzMCwtLSBETSAofjgwIFVTJCkgcGVyIGhvdXIgbWluaW11bSwgZGVwZW5kaW5nIG9uIHRoZSBqb2IuCkkgYW0gd2lsbGluZyB0byB0cmF2ZWwgZm9yIHN1ZmZpY2llbnRseSBsYXJnZSBqb2JzLgoKVXBkYXRlZDogMTk5Ny0wNS0wNwofCgoJCQlCYXNpcyBUZWNobm9sb2d5IENvcnAuCgkJICAgICBPbmUgS2VuZGFsbCBTcXVhcmUsIEJsZGcgMjAwCgkJCSBDYW1icmlkZ2UsIE1BIDAyMTM5CgkJCQlVLlMuQS4KCgkJCSBUZWw6ICsxLTYxNy0yNTItNTYzNgoJCQkgRmF4OiArMS02MTctMjUyLTkxNTAKCQkgICAgICBFLW1haWw6IDxpbmZvQGJhc2lzdGVjaC5jb20+CgkJICAgIFdlYjogaHR0cDovL3d3dy5iYXNpc3RlY2guY29tCgpUZWNobmljYWwgRXhwZXJ0aXNlOgogIE11bHRpbGluZ3VhbCBzb2Z0d2FyZSBkZXZlbG9wbWVudAogIEludGVybmF0aW9uYWxpemF0aW9uIGFuZCBsb2NhbGl6YXRpb24gb2Ygc29mdHdhcmUgcHJvZHVjdHMKICBJbnRlcm5hdGlvbmFsIGNoYXJhY3RlciBlbmNvZGluZ3MsIGluY2x1ZGluZyBVbmljb2RlLCBJU08tMTA2NDYsCiAgICBJU08tMjAyMiwgSVNPLTg4NTktbiwgSklTLCBLU0M1NjAxLCBCSUc1LCBHQjIzMTIKICBUcmFuc2xhdGlvbiBvZiB0ZWNobmljYWwgbWF0ZXJpYWxzIGludG8gSmFwYW5lc2UsIEtvcmVhbiwgYW5kIENoaW5lc2UKICAgIGluY2x1ZGluZyBIVE1MLCBTR01MLCBSVEYsIE1JRiwgZXRjLgoKR05VLXJlbGF0ZWQgU2VydmljZXM6CiAgQ3VzdG9tIGludGVybmF0aW9uYWxpemF0aW9uIGFuZCBsb2NhbGl6YXRpb24gb2YgR05VIHNvZnR3YXJlLCBvcgogICAgYXBwbGljYXRpb25zIGRldmVsb3BlZCB1c2luZyBHTlUgdG9vbHMgKEdDQywgRysrLCBFbWFjcyBMaXNwLCBldGMuKQogIEN1c3RvbSBtdWx0aWxpbmd1YWwgYXBwbGljYXRpb24gZGV2ZWxvcG1lbnQgYmFzZWQgb24gTVVMRS4KCkdOVSBDb250cmlidXRpb25zOgogIE9yZ2FuaXplZCAxOTkyLCAxOTkzLCBhbmQgMTk5NCBmdW5kLXJhaXNpbmcgc2VtaW5hcnMgYW5kIGxlY3R1cmUKICAgIHRvdXJzIGZvciBGU0YgaW4gSmFwYW4uCiAgTmVnb3RpYXRlZCBib29rIHJveWFsdHkgYWdyZWVtZW50cyB3aXRoIEphcGFuZXNlIHB1Ymxpc2hlcnMgb24KICAgIGJlaGFsZiBvZiB0aGUgRlNGLgogIE5lZ290aWF0ZWQgaGFyZHdhcmUgY29udHJpYnV0aW9ucyBmcm9tIEphcGFuZXNlIFBDIHZlbmRvcnMgdG8KICAgIHRoZSBGU0YuCgpDb250YWN0czoKICBDYXJsIEhvZmZtYW4sIFN0ZXZlIENvaGVuLCBvciBLYXJlbiBXYXR0cwoKVXBkYXRlZDogIDE5OTctMDUtMDcKHwpMYXVyZW50IEJlcm5hcmRpbgoxNiwgcnVlIERpY2tzCkwtNjk0NCBOaWVkZXJhbnZlbgpMdXhlbWJ1cmcKPGJlcm5hcmRpbkBpbmYuZXRoei5jaD4KKzQxIDEgNjMyIDc0NjkKClN1cHBvcnQgYW5kIGluc3RhbGxhdGlvbiBvZiBhbGwgR05VIHNvZnR3YXJlLgoKRXhwZXJ0aXNlOiBDLCBDKyssIEphdmEsIE1vdGlmLCBYLCBVbml4IGFkbWluaXN0cmF0aW9uLCBuZXR3b3JrIHNlY3VyaXR5CgpSYXRlczogfjYwIFVTJCAvIGhvdXIgKEZsdXggMjAwMC4tKQoKVXBkYXRlZDogIDE5OTctMDUtMDcKHwpQaGlsaXAgQnJvd24KPHBoaWxAbWl0cmUub3JnPgooNzAzKSA4OTMtODk2NyAocHJlZmVyIGVtYWlsKQpOb3J0aGVybi1WQSwgRC5DLiBBcmVhClJhdGVzOiAkNDAvSHI7IGxlc3MgZm9yIGVkdWNhdGlvbmFsIG9yIGNoYXJpdGFibGUgb3JnYW5pemF0aW9ucwoKU3lzdGVtcyBTdXBwb3J0ZWQ6CgkgSFA5MDAwLzd4eCBydW5uaW5nIEhQL1VYIDguMDcgLSAxMC5YCgkgSUJNIFJTNjAwMCBydW5uaW5nIEFJWCAzLjIuWAoJIEFsc28gU0dJL0luZHkgYW5kIFN1bi9TcGFyY3MKClNvZnR3YXJlIFN1cHBvcnRlZDoKCSBNb3N0IGFsbCBGU0YgKEdudSkgc29mdHdhcmUKCSBlc3AuIEdDQywgRW1hY3MsIEJpbnV0aWxzLCBHUywgZXRjLi4uCgpTdGF0ZW1lbnQ6CiAgICAgICAgSSdkIGJlIG1vcmUgdGhhbiBoYXBweSB0byBhc3Npc3QgYW55b25lIGluIG15IGFyZWEgd2l0aCBhY3F1aXJpbmcsCiAgICAgICAgaW5zdGFsbGluZywgYW5kIGNvbmZpZ3VyaW5nIGFueSBGU0YgdG9vbHMvdXRpbGl0aWVzIG9uIGFueSBvZiB0aGUKICAgICAgICBhYm92ZSBzeXN0ZW1zLiAgSSdtIGFsc28gd2lsbGluZyB0byB3b3JrIHdpdGggb3RoZXIgVU5JWCBzeXN0ZW1zIG5vdAogICAgICAgIGxpc3RlZCBhYm92ZS4gSW4gYWRkaXRpb24sIEknZCBiZSBoYXBweSB0byBzaGFyZSBteSBtYW55IHllYXJzIG9mCiAgICAgICAgZXhwZXJpZW5jZSB3aXRoIGFueW9uZSBoYXZpbmcgZGlmZmljdWx0eSB1c2luZyBvciBjb25maWd1cmluZyB0aGVzZQogICAgICAgIHRvb2xzLiAgSSd2ZSBiZWVuIGluc3RhbGxpbmcgYW5kIHVzaW5nIHRoZW0gZm9yIGFib3V0IDUgeWVhcnMgbm93CiAgICAgICAgYW5kIEknbGwgc3dlYXIgYnkgdGhlaXIgcXVhbGl0eSBhbmQgdGhlIHBlb3BsZS9wcmluY2lwbGVzIHRoYXQgbWFkZQogICAgICAgIHRoZW0gYXZhaWxhYmxlLgoKCgkJCVBoaWwgQnJvd24KClVwZGF0ZWQ6ICAxOTk3LTA1LTA3Ch8KSmFtZXMgQ3JhaWcgQnVybGV5Cjk3IEFycm93aGVhZCBDaXJjbGUKQXNobGFuZCwgTUEgMDE3MjEtMTk4Nwo1MDggODgxLTYwODcsIC00NzQ1CihQbGVhc2UgY2FsbCBvbmx5IGJldHdlZW4gMDkwMC0xNzAwIEVhc3Rlcm4gdGltZSwgYW5kIG9ubHkgaWYgeW91CmFyZSBwcmVwYXJlZCB0byBoaXJlIG1lIC0tIGFzayBtZSB0byBoZWxwIHlvdSBmb3IgZnJlZSBvbmx5CnZpYSBlbWFpbCwgdG8gd2hpY2ggSSBtaWdodCBvciBtaWdodCBub3QgcmVzcG9uZC4pCkVtYWlsOiA8YnVybGV5QGdudS5vcmc+IC0tcHJlZmVycmVkLS0KICAgICAgIDxidXJsZXlAY3lnbnVzLmNvbT4KICAgICAgIDxidXJsZXlAd29ybGQuc3RkLmNvbT4KCkV4cGVydGlzZToKICAgIENvbXBpbGVyIEludGVybmFscyAoYXV0aG9yIG9mIEdOVSBGb3J0cmFuLCBmb3IgZXhhbXBsZSkKICAgIE9wZXJhdGluZyBTeXN0ZW1zIEludGVybmFscwogICAgVG9vbHMvVXRpbGl0aWVzIERldmVsb3BtZW50IGFuZCBNYWludGVuYW5jZQogICAgTWljcm9jb2RlIERldmVsb3BtZW50IGFuZCBNYWludGVuYW5jZSAocHJpbWFyaWx5IFZMSVcgbWFjaGluZXMpCiAgICBTeXN0ZW0gRGVzaWduIChjb21wdXRlcnMsIG9wZXJhdGluZyBzeXN0ZW1zLCB0b29sc2V0cywgJmMpCiAgICBEZWJ1Z2dpbmcgKG9mdGVuIGFza2VkIHRvIGhlbHAgZGVidWcgT3RoZXIgUGVvcGxlJ3MgQ29kZSkKICAgIERvY3VtZW50YXRpb24gKGF1dGhvcmVkIG1hbnkgYm9va3MgYW5kIHJhbiBhIGZldyBkb2MgcHJvamVjdHMpCiAgICBFeHRlbnNpdmUgZXhwZXJpZW5jZSB3aXRoIGEgdmFyaWV0eSBvZiBvcGVyYXRpbmcgc3lzdGVtcywgaGFyZHdhcmUsCglsYW5ndWFnZXMsIGFuZCBzbyBvbgoKUmF0ZTogJDEwMC9ob3VyIC0tIHdpbGxpbmcgdG8gY29uc2lkZXIgZmxhdC1mZWUgYXJyYW5nZW1lbnRzCgpVcGRhdGVkOiAxOTk3LTA1LTA3Ch8KVGhvbWFzIEJ1c2huZWxsLCBuL0JTRwk8dGhvbWFzQGdudS5vcmc+CkJlY2tldCBIb3VzZQo2NiBIaWdobGFuZCBBdmUuIE5vLiA4ClNvbWVydmlsbGUsIE1BICAwMjE0MwooNjE3KSA2MjMtMDY1NAoKCkFsbCBHTlUgc29mdHdhcmU6IEluc3RhbGxhdGlvbiwgY3VzdG9taXphdGlvbiwgYW5zd2VyaW5nIHNpbXBsZSBvcgoJCSAgY29tcGxleCBxdWVzdGlvbnMsIGJ1ZyBmaXhpbmcsIGV4dGVuc2lvbi4KCkV4cGVyaWVuY2U6ICBJIGhhdmUgZG9uZSBVbml4IGFuZCBHTlUgcHJvZ3JhbW1pbmcgZm9yIHNldmVyYWwgeWVhcnMsCgkgICAgIEkgYW0gdGhlIHByaW1hcnkgYXV0aG9yIG9mIHRoZSBIdXJkICh3aGljaCBwcm92aWRlcyBtb3N0CgkgICAgIGtlcm5lbCByZWxhdGVkIGZhY2lsaXRpZXMgZm9yIHRoZSBHTlUgT1MpLgoKSSBhbSBlYXNpbHkgYXZhaWxhYmxlIGluIHRoZSBDYW1icmlkZ2UvQm9zdG9uIGFyZWE7IHdvcmsgdmlhIGVtYWlsLgpJIGFtIHdpbGxpbmcgdG8gdHJhdmVsIGZvciBzdWZmaWNpZW50bHkgbGFyZ2Ugam9icy4KClJhdGVzOiAkMTAwL2hyLCBuZWdvdGlhYmxlLCBsZXNzIGZvciBub24tcHJvZml0IG9yZ2FuaXphdGlvbnMuCgpVcGRhdGVkOiAxOTk3LTA1LTA3Ch8KICAgQzJWCQkJCU1pY2hlbCBEZWx2YWwgPG1mZEBjY3YuZnI+CiAgIDgyIGJkIEhhdXNzbWFubgkJSmVhbi1BbGFpbiBMZSBCb3JnbmUgPGphbGJAY2N2LmZyPgogICA3NTAwOCBQYXJpcwogICBGcmFuY2UKICAgVGVsICgzMyAxKSA0MC4wOC4wNy4wNwogICBGYXggKDMzIDEpIDQzLjg3LjM1Ljk5CiAgIENvbXB1c2VydmUgMTAwNDEzLDEwMTIKICAgaHR0cDovL2Mydi5jb20KCiAgIFdlIG9mZmVyIHNvdXJjZSBvciBzb3VyY2UrYmluYXJ5IGRpc3RyaWJ1dGlvbiwgaW5zdGFsbGF0aW9uLCB0cmFpbmluZywKICAgbWFpbnRlbmFuY2UsIHRlY2huaWNhbCBzdXBwb3J0LCBjb25zdWx0aW5nLCBzcGVjaWZpYyBkZXZlbG9wbWVudCBhbmQKICAgZm9sbG93dXAgb24gdGhlIEdOVSBzb2Z0d2FyZSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudDogRW1hY3MsIGdjYy9nKyssCiAgIGJpbnV0aWxzLCBnYXMsIGdkYi4KCiAgIEV4cGVyaWVuY2U6IGFkYXB0ZWQgZ2NjLCBnYXMgYW5kIGJpbnV0aWxzIHRvIHdvcmsgYXMgY3Jvc3MtZGV2ZWxvcG1lbnQKICAgdG9vbHMgZm9yIHRoZSBUaG9tc29uIEQ5NTAgRFNQIGNoaXA6IEdDQyBwYXJzZXIgYW5kIHR5cGluZyBzeXN0ZW0KICAgaGF2ZSBiZWVuIGF1Z21lbnRlZCB0byBhbGxvdyB0aGUgbWFuaXB1bGF0aW9uIG9mIHZhcmlhYmxlcyBsb2NhdGVkIGluCiAgIHNlcGFyYXRlZCBtZW1vcnkgc3BhY2VzLiBQb3J0aW5nIG9uIG5ldyBwbGF0Zm9ybXMsIGFuZCBwcm9mZXNzaW9uYWxseQogICBkZXZlbG9waW5nIHNvZnR3YXJlIHdpdGggdGhlIEdOVSB0b29scyBpbiB0aGUgVW5peC9YMTEgZW52aXJvbm1lbnQKICAgc2luY2UgdGhleSB3ZXJlIGZpcnN0IGF2YWlsYWJsZS4KCiAgIFJhdGVzOiBmcm9tIDIwMDAgRkYvZGF5IHRvIDE1MCAwMDAgRkYveWVhciwgNDAlIGRpc2NvdW50IGZvcgogICBlZHVjYXRpb25hbCBpbnN0aXR1dGlvbnMsIGFkZCB0YXhlcyBhbmQgZXhwZW5zZXMuICBBc2sgZm9yIGxpc3QuCgpVcGRhdGVkOiAxOTk3LTA1LTA5Ch8KQnJ1Y2UgRGF3c29uICAgIC0gICAgPGpiZEBjb2RlbWV0YS5jb20+CkNvZGVNZXRhLCBJbmMuCkVwcGluZywgTkggIFVTQQo4MDAtNDY4LTg3NTAKClNwZWNpYWxpemluZyBpbiBHTlUgdG9vbHMgc3VjaCBhcyBndWlsZSwgQ1ZTLCBnbmF0cywgYmFzaCwgZ2F3aywgZmlsZXV0aWxzLi4uCgpTZXJ2aWNlczoKIAogbyA4MDAgcGhvbmUgc3VwcG9ydC4KCiBvIE1vZGlmaWNhdGlvbiBhbmQgZGV2ZWxvcG1lbnQuCgogbyBUcmFpbmluZy4KClJhdGU6ICQ3NS9ob3VyIG9yIHBlciBxdW90ZS4KCmh0dHA6Ly93d3cuY29kZW1ldGEuY29tCgpVcGRhdGVkOiAxOTk3LTA1LTA5Ch8KS2V2aW4gQ29zZ3JvdmUgIAk8a2V2aW5jQGRPaW5rLkNPTT4KCgoJSSBjYW4gaGVscCBmb2xrcyB3aXRoIHBvcnRpbmcgJiBpbnN0YWxsYXRpb24gb2YgbWFueSBHTlUKCWFuZCBYIHBhY2thZ2VzIG9uIGEgdmFyaWV0eSBvZiBVbml4IHBsYXRmb3Jtcy4KCgoJTXkgcmF0ZXMgZGVwZW5kIG9uIHRoZSBzY29wZSBvZiBlYWNoIHByb2plY3QgYnV0IHJhbmdlCglmcm9tICQzNSB0byAkOTAgcGVyIGhvdXIuCgpVcGRhdGVkOiAgMTk5Ny0wNS0wNwofCkNvdXZhcmVzIENvbnN1bHRpbmcKMjExIFcuIEdpbG1hbiBTdC4sIFN1aXRlIDNXCk1hZGlzb24sIFdJIDUzNzAzIFVTQQpQaG9uZTogKDYwOCkgMjU2LTYyMDEKRU1haWw6IDxjb3V2YXJlc0BmYW1pbHkuaGFtcHNoaXJlLmVkdT4KQ29udGFjdDogUGV0ZXIgRi4gQ291dmFyZXMKClR5cGUgb2Ygc3VwcG9ydDogV2Ugb2ZmZXIgcGhvbmUvZW1haWwgc3VwcG9ydCwgaW5zdGFsbGF0aW9uLCBvbmdvaW5nCiAgICAgYWRtaW5pc3RyYXRpb24sIHRyYWluaW5nLCBwcm9ncmFtbWluZywgYW5kIHNwZWNpYWxpemVkIGNvbnN1bHRpbmcgZm9yCiAgICAgZnJlZSBzb2Z0d2FyZSBhbmQgb3RoZXIgVU5JWCBzeXN0ZW1zLgoKU2FtcGxlIHByaWNlczogVVNENzUvaG91ciBjb21tZXJjaWFsLCA0MC9ob3VyIG5vbnByb2ZpdCwgc2xpZGluZyBzY2FsZQpmb3IgaW5kaXZpZHVhbHMuCgpVcGRhdGVkOiAgMTk5Ni0xMi0wNAofClN0dWFydCBDcmFjcmFmdAkJPGNyYWNyYWZ0QGFpLm1pdC5lZHU+CjI1NjgyIENyZXN0YSBMb21hCkxhZ3VuYSBOaWd1ZWwsIENBLCA5MjY3NywgVVNBCkdOVWxpbmU6IDcxNC0zMDgtNzkwMApXZWJzaXRlOiBodHRwOi8vd3d3LmVhcnRobGluay5uZXQvfmNyYWNyYWZ0L2luZGV4Lmh0bWwKUmF0ZTogJDkwL2hvdXIKQ29uc3VsdGF0aW9uIHRvcGljczoKRW50aXJlIEdOVSBzdWl0ZSAtIHBvcnRpbmcsIGNvbXBpbGF0aW9uLCBpbnN0YWxsYXRpb24sCnVzZXItdHJhaW5pbmcsIGFkbWluaXN0cmF0b3ItdHJhaW5pbmcKTWV0aG9kOiB0ZWxlcGhvbmUgbGluZSBzdXBwb3J0LCBjYWxsLWluIHZpYSBtb2RlbSB0byB5b3VyIHNpdGUsCndvcmsgb3ZlciB0aGUgSW50ZXJuZXQsIG9yIGluLXBlcnNvbiB2aXNpdC4KIApFeHBlcmllbmNlOiBzdXBwb3J0aW5nIEdOVSBzaW5jZSB0aGUgbWlkLTE5ODAncywgY29vcmRpbmF0b3IKb2YgR05VIENoZXNzIChvcmlnaW5hbCBhdXRob3IpLCBHTlUgU2hvZ2ksIEdOVSBHby4gUG9ydGVkIEdOVSBFbWFjcwp0byBTb2xhcmlzIChTeXN0ZW0gViBSZWxlYXNlIDQpLiBFeHBlcnRpc2UgaW4gQywgRW1hY3MgTGlzcCwgUGVybCwKRXhwZWN0LCBPcmFjbGUsIEluZm9ybWl4LCBTdW5PUywgU29sYXJpcywgTklTLCBORlMuCgpDdXN0b21pemVkIHByb2dyYW1taW5nIGFsc28gYXZhaWxhYmxlLgoKVXBkYXRlZDogMTk5Ny0wNS0wNwofCk5vZWwgQ3JhZ2cgICAgICAgICAgICAgICAgICAgICAgPG5vZWxAY3ljbGljLmNvbT4KNjI0NCBBYmVyZGVlbiBBdgpHb2xldGEgQ0EgOTMxMTcKODA1LTg5OS00Njk1CgpJJ2xsIGRvIGluc3RhbGxhdGlvbiwgZGVidWdnaW5nLCBhbmQgZXh0ZW5zaW9uIG9mIEdOVSB0b29scyBvbiBhCmNvbnRyYWN0IGJhc2lzLiAgQ1ZTIGFuZCBjb25maWd1cmF0aW9uIG1hbmFnZW1lbnQgYXJlIG15IGN1cnJlbnQKc3BlY2lhbHRpZXMuICBSYXRlOiAkNzUvaG91ciBvciBwZXItcHJvamVjdCBuZWdvdGlhdGVkIGZlZS4KClVwZGF0ZWQ6IDE5OTctMDUtMDcKHwpDeWdudXMgU29sdXRpb25zCjxpbmZvQGN5Z251cy5jb20+CjEzMjUgQ2hlc2FwZWFrZSBUZXJyYWNlClN1bm55dmFsZSwgQ0EgOTQwODkgVVNBCisxIDQwOCA1NDIgOTYwMCB2b2ljZQorMSA0MDggNTQyIDk2OTkgZmF4CgpDeWdudXMgU29sdXRpb25zIHByb3ZpZGVzIHN1cHBvcnRlZCBhbmQgbWFpbnRhaW5lZCB2ZXJzaW9ucyBvZiBnY2MsIGcrKywgZ2RiCndpdGggR1VJLCBHTlUgbGlua2VyIGFuZCBHTlUgbWFjcm8gYXNzZW1ibGVyLiAgSW4gYWRkaXRpb24sIEN5Z251cyBwcm92aWRlcwp0aGVzZSBHTlUgc29mdHdhcmUgZGV2ZWxvcG1lbnQgdG9vbHMgZm9yIHdlbGwgb3ZlciAxMDAgaG9zdC10YXJnZXQKY29uZmlndXJhdGlvbnMuICBTdXBwb3J0IGluY2x1ZGVzIGJ1ZyBmaXhlcyBhbmQgc2VtaS1hbm51YWwgcmVsZWFzZXMgb2YgdGhlCnRvb2xzZXQuICBFYWNoIHJlbGVhc2UgaXMgcmVncmVzc2lvbiB0ZXN0ZWQgYW5kIGluY2x1ZGVzIHN1YnN0YW50aWFsCmltcHJvdmVtZW50cyBhbmQgYWRkaXRpb25zIHRvIHRoZSBjdXJyZW50IHJlbGVhc2UuICBTdXBwb3J0IGlzIGF2YWlsYWJsZSBmb3IKZ3JvdXBzIG9mIDUgb3IgMjUgb24gYSB3aWRlIHJhbmdlIG9mIHN0YW5kYXJkLCBzcGVjaWFsIGFuZCB2aW50YWdlCnRvb2xjaGFpbnMgZm9yIG5hdGl2ZSBhbmQgZW1iZWRkZWQgYXBwbGljYXRpb25zLiAgTmV3IHRhcmdldCBwcm9jZXNzb3JzIGFyZQpiZWluZyBhZGRlZCByZWd1bGFybHkuICBSYXRlcyBmb3Igc3VwcG9ydCBmb3Igc3RhbmRhcmQgcHJvZHVjdHMgc3RhcnQgYXQgJDc0OTUuCgpDeWdudXMgU29sdXRpb25zIGNvbnRhY3RzOgoKCUthdGh5IFBvd2VycwoJcGg6ICsxLTIwNi04ODgtNjAwMgoJZng6ICsxLTIwNi04ODgtNjE0NQoJZW1haWw6IDxrcG93ZXJzQGN5Z251cy5jb20+CgoKICAgCUVyaWsgV2VzdGNvdHQKICAgCXBoOiArMSA0MDggNTQyIDk2MzcKICAgCWZ4OiArMSA0MDggNTQyIDk2OTkKICAgCWVtYWlsOiAgPHdlc3Rjb3R0QGN5Z251cy5jb20+ClVwZGF0ZWQ6IDE5OTctMDktMDIgYnkgcm1zCh8KTWFyY3VzIEcuIERhbmllbHMgICAgICAgICAgICAgIDxtYXJjdXNkQGdudS5vcmc+CjMxMDYwIFMuIEthdWZtYW4gUmQuICAgICAgICAgICA8bWFyY3VzQHRkYi5jb20+CkNhbmJ5LCBPUiAgOTcwMTMtOTUyMCAgICAgICAgICA8bWFyY3VzQHN5c2MucGR4LmVkdT4KKDUwMykgNjUxLTI2OTQgICAgICAgICAgICAgICAgIAoKSSBjYW4gY3VzdG9taXplLCBleHRlbmQsIHBvcnQsIGFuZCByZXBhaXIgbWFueSB0eXBlcyBvZiBmcmVlIHNvZnR3YXJlLgpJIG1haW50YWluIHRoZSBDTElTUCBDb21tb24gTGlzcCBpbXBsZW1lbnRhdGlvbiBhbmQgY29udHJpYnV0ZSB0bwpzZXZlcmFsIEdOVSBwYWNrYWdlcyAoZS5nLiBFbWFjcykuICBUZW4geWVhcnMgb2YgQyBhbmQgVW5peApleHBlcmllbmNlLiAgQ29uc3VsdGluZyByYXRlcyBzdGFydCBhdCAkNDAgVVMvaHIuCgpVcGRhdGVkOiAxOTk3LTA1LTA3Ch8KRWRnYXIgRGVyLURhbmllbGlhbnR6IChEYW5pZWx5YW4pIDxlZGRAYWNtLm9yZz4KUC5PLiBCb3ggMTAgICAgICAgICAgICAgRkFYICszNzQgMiAyOCA1MCA4MgpZZXJldmFuIDM3NTAwOQpBUk1FTklBCgogU3VwcG9ydCBmb3IgR0NDLCBYIFdpbmRvdyBTeXN0ZW0sIFdXVywgVGNsL1RrLCBsb2dpYyBwcm9ncmFtbWluZywKIEludGVybmV0IHNlY3VyaXR5LCBUQ1AvSVAuCgogRXhwZXJpZW5jZToKICAgIE9TJ3M6IDQuNEJTRCwgU1ZSNC4yLCBGcmVlQlNELCBTQ08sIFNvbGFyaXMsIFVuaXhXYXJlLgogICAgTGFuZ3VhZ2VzOiBDLCBDKyssIE9iamVjdGl2ZSBDLCBQYXNjYWwsIFRjbC9UaywgUGVybCwgUHJvbG9nCiAgICBQbGF0Zm9ybXM6IEludGVsLCBTUEFSQywgTWFjLCBWQVgsIE5lWFQuCgogUmF0ZXM6IERlcGVuZGluZyBvbiB0eXBlIG9mIHdvcmssIGFwcHJveC4gJDIwL2hvdXIuIENvbnRhY3QgZm9yIG1vcmUKICAgICAgICBpbmZvcm1hdGlvbi4KICAgIE5lZ290aWFibGUgZm9yIGluZGl2aWR1YWxzIGFuZCBub24tcHJvZml0IG9yZ2FuaXphdGlvbnMuCiAgICBGUkVFIGZvciBpbmRpdmlkdWFscyB3aG8gY2FuJ3QgcGF5LiBZb3VyICdUaGFua3MhJyBqdXN0IGVub3VnaCEgOi0pCiAgICBQYXltZW50IGJ5IGludGVybmF0aW9uYWwgd2lyZSB0cmFuc2ZlciBvciBjaGVjay4KClVwZGF0ZWQ6ICAxOTk3LTA1LTA3Ch8KRWNobyBMYWJzICAgICAgICAgICAgICAgICAgPGVjaG9AaWluZXQubmV0LmF1PgoyOSBXZWxkIFN0LCAgICAgICAgICAgICAgICBodHRwOi8vd3d3LmlpbmV0Lm5ldC5hdS9+ZWNoby8KTmVkbGFuZHMsIFdBIDYwMDkKUGVydGgsIEF1c3RyYWxpYQorNjEgKDApIDQxIDk4NSA5NjAzCgpFY2hvIExhYnMgaXMgYSBzb2Z0d2FyZSBjb25zdWx0YW5jeSB0aGF0IGFsc28gcHJvdmlkZXMgc3VwcG9ydCBhbmQKZGV2ZWxvcG1lbnQgc2tpbGxzLiAgU3BlY2lhbGlzaW5nIGluIEdOVSBzb2Z0d2FyZSwgcGFydGljdWxhcmx5IFRjbC9UawphbmQgTGludXguIFdlIGNhbiBkZWxpdmVyIHN5c3RlbXMgYXQgYSBmcmFjdGlvbiBvZiB0aGUgY29zdCBvZiB0aG9zZQpiYXNlZCBvbiBtb3JlIHRyYWRpdGlvbmFsIHRlY2hub2xvZ2llcy4gIEludGVybmV0L2ludHJhbmV0IGFuZCBkYXRhCmNvbW11bmljYXRpb25zIHNvbHV0aW9ucywgZm9yIGFsbCBwbGF0Zm9ybXMgYXJlIHVuZGVydGFrZW4uICBHVUkKZnJvbnQtZW5kcyBkb25lIHF1aWNrbHkuCgpXaGlsZSB0eXBpY2FsbHkgaW52b2x2ZWQgaW4gZW5naW5lZXJpbmcgYW5kIHRlY2huaWNhbCBhcmVhLCBhbnkKR05VL2ZyZWV3YXJlIHNvZnR3YXJlIHdpbGwgYmUgc3VwcG9ydGVkLgoKRm9yIGZ1cnRoZXIgZGV0YWlscyBzZWU6IGh0dHA6Ly93d3cuaWluZXQubmV0LmF1L35lY2hvLwoKRXhwZXJpZW5jZTogMTIrIHllYXJzIEMvVW5peCwgU3VuLCBTQ08sIExpbnV4LCBXaW4vTlQuCiAgICAgICAgICAgIFN5c3RlbXMgcHJvZ3JhbW1pbmcsIGRldmljZSBkcml2ZXJzLCBoYXJkd2FyZSBpbnRlcmZhY2luZy4KICAgICAgICAgICAgR05VIHRvb2xzL3V0aWxpdGllcywKICAgICAgICAgICAgRW1iZWRkZWQgJiByZWFsdGltZSBzeXN0ZW1zLCBzb2Z0d2FyZSwgZmlybXdhcmUsIGhhcmR3YXJlLgogICAgICAgICAgICBDb21tdW5pY2F0aW9ucyBwcm90b2NvbHMgYW5kIGltcGxlbWVudGF0aW9uLgoKRGVncmVlczogICAgQkFwcFNjIChDUyksIEN1cnRpbiBVbml2ZXJzaXR5LCBQZXJ0aAoKUmF0ZXM6ICAgICAgQVVTICQ1MC03NS9ociBuZWcuCgpVcGRhdGVkOiAgICAxOTk3LTA1LTA5Ch8KRnJlZSBTb2Z0d2FyZSBBc3NvY2lhdGlvbiBvZiBHZXJtYW55Ck1pY2hhZWxhIE1lcnoKSGVpbWF0cmluZyAxOQo2MDAwIEZyYW5rZnVydC9NYWluIDcwCnBob25lOgkgICgrNDkgNjkpIDYzMTIwODMpCmVydCAgOgkgICgrNDktMTcyLTY5ODcyNDYpCmVtYWlsOgkgIChpbmZvQGVsYXJhLmZzYWcuZGUpCgpTdXBwb3J0aW5nIGFsbCBraW5kcyBvZiBmcmVld2FyZSAoaS5lLiBHTlUpLCBmcmVld2FyZSBkZXZlbG9wbWVudCwgY29uc3VsdGluZywKdHJhaW5pbmcsIGluc3RhbGxhdGlvbi4JIFNwZWNpYWwgTElOVVggc3VwcG9ydCBncm91cC4KClJBVEVTOgoKQ29tcGFuaWVzIGFuZCBmb3IgcHJvZml0Cm9yZ2FuaXphdGlvbnMJCSAgIDogIDEwMCBVUyQgLyBob3VyClByaXZhdGUgYW5kIG5vdC1mb3ItcHJvZml0Cm9yZ2FuaXphdGlvbnMJCSAgIDogICA0MCBVUyQgLyBob3VyCmVydCAoMjRoIEVtZXJnZW5jeQpyZXNwb25zZSB0ZWFtKQkJICAgOiAgMzAwIFVTJCAvIGhvdXIKCkVudGVyZWQ6IDE5OTQtMDQtMTQKHwpOb2FoIEZyaWVkbWFuICAgICAgICAgICAgIAk8ZnJpZWRtYW5AcHJlcC5haS5taXQuZWR1PgoxMTExIFcuIEVsIENhbWlubyBSZWFsICMxMDktMzMxClN1bm55dmFsZSwgQ0EgOTQwODcKKHBlcm1hbmVudCkKCkF1dGhvciBvZiBzZXZlcmFsIEVtYWNzIExpc3AgcGFja2FnZXMgYW5kIHBhcnRzIG9mIEVtYWNzLCBhcyB3ZWxsIGFzCm51bWVyb3VzIG5ldHdvcmsgYW5kIHVuaXggc3lzdGVtIHV0aWxpdGllcy4gIENvLW1haW50YWluZWQgR05VIFRleGluZm8gYW5kCkF1dG9jb25mIGZvciBhIGNvdXBsZSBvZiB5ZWFycy4gIEV4cGVyaWVuY2VkIHVuaXggc3lzdGVtcyBhZG1pbmlzdHJhdG9yLgpGU0YgZW1wbG95ZWUgRmViIDE5OTEtLVNlcCAxOTk0LgoKSSBjYW4gcGVyZm9ybSBpbnN0YWxsYXRpb24sIHBvcnRpbmcsIGFuZCBlbmhhbmNlbWVudCBvZiBhbGwgR05VIHNvZnR3YXJlCmFuZCBhbnkgb3RoZXIgZnJlZSBzb2Z0d2FyZSwgaW5jbHVkaW5nIHRoZSBMaW51eCBrZXJuZWw7IHN5c3RlbSBkZXNpZ24gYW5kCmFkbWluaXN0cmF0aW9uIGZvciB1bml4LXR5cGUgc3lzdGVtcyBhbmQgSVAgbmV0d29ya3M7IGFuZCBJIGFtIHdpbGxpbmcgdG8KcHJvdmlkZSBoYW5kaG9sZGluZyBmb3Igc2hlbGwgcHJvZ3JhbW1pbmcsIEVtYWNzIExpc3AgZGV2ZWxvcG1lbnQsIGFuZAp2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtcyBzdWNoIGFzIFJDUyBhbmQgQ1ZTLgoKRmVlcyBuZWdvdGlhYmxlLCBhdmVyYWdpbmcgJDc1LSQxMDAvaG91ci4gIEkgY2FuIHdvcmsgaW4gdGhlIENhbGlmb3JuaWEgYmF5CmFyZWEgb3IgYW55d2hlcmUgYWNjZXNzaWJsZSBvbiB0aGUgSW50ZXJuZXQuICBGb3IgbGFyZ2VyIGpvYnMgSSBtYXkgYmUKd2lsbGluZyB0byB0cmF2ZWwuCgpVcGRhdGVkOiAxOTk3LTA1LTA4Ch8KUm9uYWxkIEYuIEd1aWxtZXR0ZQk8cmZnQG1vbmtleXMuY29tPgpSRyBDb25zdWx0aW5nCjE3NTEgRWFzdCBSb3NldmlsbGUgUGt3eS4gIzE4MjgKUm9zZXZpbGxlLCBDQSA5NTY2MQpUZWw6ICsxIDkxNiA3ODYgNzk0NQpGQVg6ICsxIDkxNiA3ODYgNTMxMQoKU2VydmljZXM6CURldmVsb3BtZW50ICYgcG9ydGluZyBvZiBHTlUgc29mdHdhcmUgZGV2ZWxvcG1lbnQgdG9vbHMuCgpHTlUgQ29udHJpYnV0aW9uczoKCQlJbnZlbnRlZCwgZGVzaWduZWQsIGFuZCBpbXBsZW1lbnRlZCB0aGUgcHJvdG9pemUgYW5kCgkJdW5wcm90b2l6ZSB0b29scyBzdXBwbGllZCB3aXRoIEdDQzIuCgoJCURlc2lnbmVkIGFuZCBkZXZlbG9wZWQgYWxsIGNvZGUgdG8gc3VwcG9ydCB0aGUgZ2VuZXJhdGlvbgoJCW9mIER3YXJmIHN5bWJvbGljIGRlYnVnZ2luZyBpbmZvcm1hdGlvbiBmb3IgU3lzdGVtIFYgUmVsZWFzZQoJCTQgaW4gR0NDMi4KCgkJUGVyZm9ybWVkIG9yaWdpbmFsIHBvcnQgb2YgR05VIGNvbXBpbGVycyB0byBTVnI0IHN5c3RlbS4KCgkJRmluaXNoZWQgcG9ydCBvZiBHTlUgY29tcGlsZXJzIHRvIEludGVsIGk4NjAgUklTQwoJCXByb2Nlc3Nvci4KCkV4cGVyaWVuY2U6CTEzKyB5ZWFycyBVTklYIHN5c3RlbXMgZXhwZXJpZW5jZSwgYWxsIHdvcmtpbmcgb24gY29tcGlsZXJzCgkJYW5kIHJlbGF0ZWQgdG9vbHMuCgoJCTcrIHllYXJzIHdvcmtpbmcgcHJvZmVzc2lvbmFsbHkgb24gR0NDLCBHKyssIGFuZCBHREIgdW5kZXIKCQljb250cmFjdCB0byB2YXJpb3VzIGZpcm1zIGluY2x1ZGluZyB0aGUgTWljcm9lbGVjdHJvbmljcwoJCWFuZCBDb21wdXRlciBUZWNobm9sb2d5IENvcnBvcmF0aW9uIChNQ0MpLCBEYXRhIEdlbmVyYWwgKERHKSwKCQlOZXR3b3JrIENvbXB1dGluZyBEZXZpY2VzIChOQ0QpLCBhbmQgSW50ZWwgQ29ycC4KCk90aGVyIHF1YWxpZmljYXRpb25zOgoJCURldmVsb3BlciBvZiB0aGUgUm9hZFRlc3QgKHRtKSBDIGFuZCBDKysgY29tbWVyY2lhbAoJCWNvbXBpbGVyIHRlc3Qgc3VpdGVzLgoKCQlGb3JtZXIgdmljZS1jaGFpcm1hbiBvZiBVTklYIEludGVybmF0aW9uYWwgUHJvZ3JhbW1pbmcKCQlMYW5ndWFnZXMgU3BlY2lhbCBJbnRlcmVzdCBHcm91cCAoVUkvUExTSUcpLgoKCQlCYWNoZWxvcidzIGFuZCBhIE1hc3RlcidzIGRlZ3JlZXMsIGJvdGggaW4gQ29tcHV0ZXIgU2NpZW5jZS4KClJhdGVzOgkJVmFyaWFibGUgZGVwZW5kaW5nIHVwb24gY29udHJhY3QgZHVyYXRpb24uICBDYWxsIGZvciBxdW90ZS4KClVwZGF0ZWQ6IDE5OTctMDUtMDcKHwpNaWNoYWVsIFAuIERlaWduYW4KSWRlYW1hdGlvbiwgSW5jLgoxMzYgTmVsc29uIFN0cmVldApQcm92aWRlbmNlLCBSSSAwMjkwOAooNDAxKSAzMzEtMzcwOAooNDAxKSAyNzItNjQ0OSBmYXguCgpSYXRlOglWYXJpZXMgZGVwZW5kaW5nIG9uIGNvbXBsZXhpdHkgb2YgdGFzay4KCUhvdXJseSBhbmQgZml4ZWQtcmF0ZSBjb250cmFjdHMgYXJlIGF2YWlsYWJsZS4KUHJvZ3JhbXMgU3VwcG9ydGVkOglBbGwKClVwZGF0ZWQ6IDE5OTctMDUtMDcKHwpJbnRlcmFjdGl2ZSBJbmZvcm1hdGlvbiBMaW1pdGVkCgpJbnRlcmFjdGl2ZSBJbmZvcm1hdGlvbiBMaW1pdGVkIGlzIGFuIEVkaW5idXJnaC1iYXNlZCBjb21wYW55IHRoYXQKc3BlY2lhbGlzZXMgaW4gV1dXIHNlcnZpY2VzIGFuZCBzdXBwb3J0IGZvciB1c2luZyB0aGUgSW50ZXJuZXQgZm9yCm1hcmtldGluZy4KCk91ciBzdGFmZiBoYXZlIG1hbnkgeWVhcnMgZXhwZXJpZW5jZSBpbiB1c2luZywgYW5kIGRldmVsb3BpbmcgbGlzcCBwYWNrYWdlcwp3aXRoaW4sIEVtYWNzLCBhbmQgaW4gdXNpbmcgb3RoZXIgR05VL1VuaXggdG9vbHMsIHBhcnRpY3VsYXJseSB1bmRlciBwdWJsaWMKZG9tYWluIFVOSVhlcy4KCldlIGNhbiBwcm92aWRlIHNlcnZpY2VzIHRocm91Z2hvdXQgdGhlIFVLLCBhdCBhbnkgbGV2ZWwgZnJvbSBnZW5lcmFsCmNvbnN1bHRhbmN5IHRocm91Z2ggZmV0Y2hpbmcsIGluc3RhbGxpbmcgYW5kIGN1c3RvbWlzaW5nIHNvZnR3YXJlIHRvCmJlc3Bva2UgcHJvZ3JhbW1pbmcuICBGZWVzIHdvdWxkIGJlIGluIHRoZSByYW5nZSAjMzAwIC0gIzYwMCBwZXIgZGF5LApkZXBlbmRpbmcgcHJpbWFyaWx5IG9uIHRoZSBzaXplIG9mIHRoZSBqb2IuCgpZb3UgY2FuIGNvbnRhY3QgdXMKCWJ5IGVtYWlsOiA8ZW5xdWlyZUBpbnRlcmFjdGl2ZS5jby51az4KCWJ5IHBob25lOiAwMzcwIDMwIDQwIDUyIChVSykKCQkgICgrNDQpIDM3MCAzMCA0MCA1MiAoSW50ZXJuYXRpb25hbCkKCWJ5IHBvc3Q6IDMsIExhdXJpc3RvbiBHYXJkZW5zLAoJCSBFZGluYnVyZ2ggRUgzIDlISAoJCSBTY290bGFuZAoKRW50ZXJlZDogMTk5Ny0wNS0wOQofClNjb3R0IEQuIEthbHRlcgkJCTxzZGtAdHdpbnN1bi5jb20+CjIwMzIgQ29ycmFsIENhbnlvbgpNYWxpYnUsIENBIDkwMjY1LTk1MDMKSG9tZTogKDMxMCkgNDU2LTAyNTQKClZlcnkgZmFtaWxpYXIgd2l0aCBhbGwgbGV2ZWxzIG9mIEVsaXNwIHByb2dyYW1taW5nLiAgVGF1Z2h0IEVtYWNzIHVzZQphbmQgY3VzdG9taXphdGlvbiBpbiB1bml2ZXJzaXRpZXMgYW5kIGluZHVzdHJ5LiAgRXh0ZW5zaXZlCnRyb3VibGVzaG9vdGluZyBhbmQgdXNlciBzdXBwb3J0IGV4cGVyaWVuY2UuICBDby1kZXZlbG9wZWQgYW4Kb2JqZWN0LW9yaWVudGVkIGV4dGVuc2lvbiB0byBFbGlzcCAoRW9vcHMpIHRoYXQgY2FuIGJlIHVzZWQgZm9yCnByb2plY3RzLiAgRXh0ZW5zaXZlIEVsaXNwIGxldmVsIG1vZGlmaWNhdGlvbiBmb3IgcmFwaWQgcHJvdG90eXBpbmcgb2YKZGVzaWducyB1c2VkIGluIGdyb3Vwd2FyZSByZXNlYXJjaC4gIFRoaXMgaW5jbHVkZXMgdGhlIGRldmVsb3BtZW50IG9mCmFuIGluZnJhc3RydWN0dXJlIHRvIHN1cHBvcnQgbXVsdGlwbGUsIGNvbW11bmljYXRpbmcgRW1hY3MgcHJvY2Vzc2VzLgoKUHJlZmVyIGUtbWFpbCBjb21tdW5pY2F0aW9uIHRvIHRlbGVwaG9uZSBjYWxscy4KClVwZGF0ZWQ6ICAxOTk3LTA1LTA3Ch8KS2FtYW4gU2NpZW5jZXMgQ29ycG9yYXRpb24KR3JpZmZpc3MgQnVzaW5lc3MgJiBUZWNobm9sb2d5IFBhcmsKNzc1IERhZWRhbGlhbiBEcml2ZQpSb21lLCBOWSAxMzQ0MS00OTA5CigzMTUpIDMzNC00OTAwCiAKQ09OVEFDVFM6IAogICAgICAgRGVubmlzIEZpdHpnZXJhbGQJPGRmaXR6Z2VyYWxkQHJvbWUua2FtYW4uY29tPiAKICAgICAgIFRvbSBSb2JiaW5zCQk8dHJvYmJpbnNAcm9tZS5rYW1hbi5jb20+CiAKS2FtYW4gU2NpZW5jZXMgaGFzIHBlcmZvcm1lZCBhIEdOVSBwb3J0IGZvciBhIGN1c3RvbSBSSVNDIHByb2Nlc3Nvci4KV2UgaGF2ZSBleHBlcmllbmNlIGluIHRoZSBkZWZpbml0aW9uIGFuZCBkZXNjcmlwdGlvbiBvZiB0aGUgbWFjaGluZQpyZWdpc3RlciB0cmFuc2ZlciBsYW5ndWFnZSB0byB0aGUgR05VIHRvb2wtc2V0LiAgVGhpcyBpbmNsdWRlcyByZXdyaXRpbmcKYW5kIG1vZGlmaWNhdGlvbiBvZiB0aGUgbmVjZXNzYXJ5IGRlc2NyaXB0aW9uIGFuZCBzb3VyY2UgZmlsZXMgb2YgZ2NjLCBnYXMsCmFuZCBnbGQgYW5kIG90aGVyIGJpbnV0aWxzLiAgS2FtYW4gYWxzbyBoYXMgc2VydmljZXMgZm9yIGluc3RhbGxhdGlvbiBhbmQKc2V0dXAgb2YgR05VIHRvb2xzLCAoR0FXSywgR0NDLCBFTUFDUywgZXRjLikgb24gU3VuIHdvcmtzdGF0aW9ucy4KICAKV29yayBpcyBvbiBhICJzZXJ2aWNlIGNvbnRyYWN0IiBiYXNpcyBhbmQgZGV2ZWxvcG1lbnQgaXMgY2hhcmdlZCBlaXRoZXIKaG91cmx5IG9yIGFzIGEgZml4ZWQgcHJpY2UgY29udHJhY3QuCiAKQ29uc3VsdGluZyByYXRlczogJDcwIHRvICQxNzUgcGVyIGhvdXIuCiAKVXBkYXRlZDogIDE5OTctMDUtMDcKHwpKb3NlcGggUi4gS2luaXJ5CQk8a2luaXJ5QGNzLmNhbHRlY2guZWR1PgpDYWx0ZWNoIE1haWxzdG9wIDI1Ni04MAkJaHR0cDovL3d3dy5jcy5jYWx0ZWNoLmVkdS9+a2luaXJ5LwpQYXNhZGVuYSwgQ0EgOTExMjUgICAgICAgICAgICAgIDxqcmtAbWV0YWdlbmVzaXMuY29tPgpQaG9uZTogODE4LTM5NS00ODQwCkZheDogODE4LTc5Mi00MjU3CgpMb25nLXRlcm0gaGlnaC1sZXZlbCBjb25zdWx0YW50IGluIGEgdmFyaWV0eSBvZiBkb21haW5zLiAgU2VlCmh0dHA6Ly93d3cuY3MuY2FsdGVjaC5lZHUvfmtpbmlyeS9yZXN1bWUuaHRtbCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbgpwcm9mZXNzaW9uYWwgYW5kIGFjYWRlbWljIGJhY2tncm91bmQuCgpJIHByb3ZpZGUgaW5zdGFsbGF0aW9uLCBwb3J0aW5nLCBkZWJ1Z2dpbmcsIGN1c3RvbWl6YXRpb24sIGRlc2lnbiwgYW5kCmRldmVsb3BtZW50IG9mIEdOVSBhbmQgb3RoZXIgVU5JWCBhbmQgbm9uLVVOSVggc29mdHdhcmUuICBJIGFtIG9yIGhhdmUKYmVlbiBhIGNlcnRpZmllZCBkZXZlbG9wZXIgd2l0aCBNaWNyb3NvZnQsIFN1blNvZnQsIE5lWFQsIGFuZCBBbWlnYS4KSSBoYXZlIGEgZ3JlYXQgZGVhbCBvZiBkZXZlbG9wbWVudCBhbmQgbWFuYWdlbWVudCBleHBlcmllbmNlIGFuZCBhbgpleHRyZW1lbHkgYnJvYWQgYmFja2dyb3VuZCB3aGljaCBjb250cmlidXRlcyB0byBteSBleGNlbGxlbnQgc3lzdGVtCmludGVncmF0aW9uIGNhcGFiaWxpdGllcy4gIEkgaGF2ZSBhIHNwZWNpYWwgZXhwZXJ0aXNlIGFuZCBjb25kdWN0CnJlc2VhcmNoIGluIGRpc3RyaWJ1dGVkIG9iamVjdCB0ZWNobm9sb2dpZXMuCgpUaW1lIGFuZCBtYXRlcmlhbCByYXRlcyBmb3IgbG9jYWwgd29yayB2YXJ5IHJlZ2lvbmFsbHksIGJ1dCBhcmUKY3VycmVudGx5ICQyNTAgcGVyIGhvdXIgb24gdGhlIHdlc3QgY29hc3QuICBPdGhlciByYXRlcyBhcHBseSBmb3IKbG9uZy10ZXJtIGpvYnMgKGRheSByYXRlcywgdHJhdmVsLCBldGMuKSBhbmQgcmVtb3RlIHdvcmsgKHVzdWFsbHkgMS8yCmZlZSkuICBJIGFtIGludGVyZXN0ZWQgaW4gZml4ZWQtYmlkIGpvYnMgYW5kIHdpbGwgd29yayBmb3IgbG93ZXIgcmF0ZXMKZm9yIG5vbi1wcm9maXQgb3JnYW5pemF0aW9ucyBhbmQgZWR1Y2F0aW9uYWwgaW5zdGl0dXRpb25zLgoKVXBkYXRlZDogMTk5Ny0wNS0wNwofCkJyYWRsZXkgTS4gS3Vobgo8Ymt1aG5AYWNtLm9yZz4KaHR0cDovL3d3dy5lYmIub3JnL2JrdWhuCgpJIGFtIGF2YWlsYWJsZSBmb3IgVW5peCBzeXN0ZW0gYWRtaW5pc3RyYXRpb24gY29uc3VsdGluZywgaW5jbHVkaW5nIGJ1dCBub3QKbGltaXRlZCB0byBpbnN0YWxsYXRpb24sIGNvbmZpZ3VyYXRpb24gYW5kIGludGVncmF0aW9uIG9mIEdOVSB0b29scyBhbmQgb3RoZXIKY29weS1sZWZ0ZWQgc29mdHdhcmUgc3VjaCBhcyBHTlUvTGludXggYW5kIHRoZSB2YXJpb3VzIGRpc3RyaWJ1dGlvbnMgb2YKR05VL0xpbnV4LgoKSSBhbSBwYXJ0aWN1bGFybHkgc2tpbGxlZCBhdCBpbnRlZ3JhdGlvbiBvZiBHTlUgYW5kIG90aGVyIGNvcHktbGVmdGVkIHNvZnR3YXJlCmludG8gbmV3IGVudmlyb25tZW50cyB0aGF0IGhhdmUgbm90IHVzZWQgc3VjaCB0b29scyBpbiB0aGUgcGFzdCwgYW5kIHBvcnRpbmcKdGhlIEdOVSBzb2Z0d2FyZSB0byBuZXcgVW5peC1iYXNlZCBwbGF0Zm9ybXMuCgpQbGVhc2UgdmlzaXQgbXkgaG9tZXBhZ2UgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gbXkgYmFja2dyb3VuZCBhbmQgc2tpbGxzLiAgTXkKcmVzdW1lIGlzIGFsc28gYXZhaWxhYmxlIHRoZXJlLgoKSSBhbSBhdmFpbGFibGUgZm9yIGJvdGggMTA5OSAocHJlZmVycmVkKSBhbmQgVzIgb24tc2l0ZSBjb250cmFjdGluZyBpbiB0aGUKQ2luY2lubmF0aSwgT0gsIFVTQSBtZXRyb3BvbGl0YW4gYXJlYSwgYXMgd2VsbCBhcyByZW1vdGUgY29uc3VsdGluZyB2aWEgZGlhbHVwCm9yIEludGVybmV0IGNvbm5lY3Rpb24gYW55d2hlcmUgaW4gdGhlIFVTQS4gIEkgaGF2ZSBubyBpbnRlcmVzdCBpbiBwZXJtYW5lbnQKcmVsb2NhdGlvbiBhdCB0aGlzIHRpbWUuCiAKTXkgcmF0ZSB2YXJpZXMgZ3JlYXRseSBiZXR3ZWVuICQyNS0kNDAvaG91ciwgZGVwZW5kaW5nIG9uIHRoZSBjaXJjdW1zdGFuY2VzLgpSYXRlcyBmb3Igbm9uLXByb2ZpdCBvcmdhbml6YXRpb25zIGFyZSBzdWJzdGFudGlhbGx5IGxvd2VyLCBhbmQgcG9zc2libHkgZnJlZS4KClBsZWFzZSBub3RlIHRoYXQgSSBoYXZlIG5vIGludGVyZXN0IGluIHdvcmtpbmcgd2l0aCBhbnkgTWljcm8kb2Z0IHJlbGF0ZWQKcHJvZHVjdHMhICBJIHdhbnQgdGhlIHByaW1hcnkgZm9jdXMgb2YgbXkgd29yayB0byBiZSBjb250cmlidXRpbmcKdG8gdGhlIGZyZWUgc29mdHdhcmUgY29tbXVuaXR5LgoKVXBkYXRlZDogMTk5Ny0xMi0wNAofCkZlbiBMYWJhbG1lICAgICAgICAgICAgICAgICAgICAgICA8ZmVuQGNvbWVkaWEuY29tPgpDb01lZGlhIENvbnN1bHRpbmcgICAgICAgICAgIGh0dHAvL3d3dy5jb21lZGlhLmNvbS9jb21lZGlhLwo0MCBDYXJsIFN0cmVldCAjNCAgICAgICAgICAgICAgICAgV0UgQVJFIEVWRVJZV0hFUkUKU2FuIEZyYW5jaXNjbyBDQSA5NDExNyAgICAgICAgICAgICBKVVNUIFNBWSAiS05PVyIKCkNvbnN1bHRpbmcsIGluc3RhbGxhdGlvbiwgY3VzdG9taXphdGlvbiBhbmQgdHJhaW5pbmcgZm9yIEdOVSBFbWFjcywKYW5kIHNlbGVjdGVkIG90aGVyIEdOVSAmIG5ldHdvcmsgc29mdHdhcmUuICBEZXNpZ24gJiBpbXBsZW1lbnRhdGlvbgpvZiBmcmVlIHNvZnR3YXJlIHByb2plY3RzLCBhcyB3ZWxsIGFzIHNvZnR3YXJlIGVuZ2luZWVyaW5nICYgc3lzdGVtCmRlc2lnbi4gIEkgaGF2ZSBiZWVuIGhhY2tpbmcgRW1hY3Mgc2luY2UgJzc2IHdoZW4gaXQgd2FzIFRFQ08gYW5kIF5SCm1hY3JvcyAoZG9uJ3QgYXNrKSwgYW5kIGFtIGludGVyL2ludHJhLW5ldHdvcmssIFVOSVggJiBXZWIgZnJpZW5kbHkuCgpSYXRlczoJJDc1IGhvdXIgJiB1cCwgZGVwZW5kaW5nOyAgZmxhdCByYXRlIGpvYnMgY29uc2lkZXJlZC4KCUxvd2VyIHJhdGVzLCBiYXJ0ZXIgb3IgZnJlZSBmb3Igc2VsZWN0ZWQgbm9uLXByb2ZpdHMuCgpVcGRhdGVkOiAxOTk3LTA1LTA3Ch8KR3JlZyBMZWhleQpMRU1JUwpQTyBCb3ggNDYwCkVjaHVuZ2EgU0EgNTE1MwpBdXN0cmFsaWEKClBob25lOgkrNjEtOC04Mzg4LTgyNTAKRmF4OgkrNjEtOC04Mzg4LTgyNTAKTW9iaWxlOgkrNjEtNDEtNzM5LTcwNjIKTWFpbAk8Z3JvZ0BsZW1pcy5jb20+CgpTZXJ2aWNlczogU3VwcGx5LCBwb3J0aW5nLCBpbnN0YWxsYXRpb24sIGNvbnN1bHRhdGlvbiBvbiBhbGwgR05VCnByb2R1Y3RzLgoKRXhwZXJpZW5jZTogMjAgeWVhcnMgT1MgYW5kIGNvbXBpbGVyIGV4cGVyaWVuY2UsIHBvcnRzIG9mIG1vc3QgR05VCnByb2R1Y3RzLiAgQXV0aG9yIG9mIHBvcnRlZCBzb2Z0d2FyZSBDRC1ST00gZm9yIFVOSVggU3lzdGVtIFYuNC4yLAoiUG9ydGluZyBVTklYIFNvZnR3YXJlIiAoTydSZWlsbHkpLCAiSW5zdGFsbGluZyBhbmQgUnVubmluZyBGcmVlQlNEIgphbmQgIlRoZSBDb21wbGV0ZSBGcmVlQlNEIiAoYm90aCBXYWxudXQgQ3JlZWspLgoKUmF0ZXM6IENob2ljZSBvZiBBVUQgMTIwIHBlciBob3VyIG9yIGhvdGxpbmUgcmF0ZXMgQVVEIDIuNTAgRE0gcGVyCm1pbnV0ZS4gIE91dHNpZGUgQXVzdHJhbGlhLCAkVVMgMTAwIHBlciBob3VyIG9yICRVUyAyIHBlciBtaW51dGUuClF1aWNrIHF1ZXN0aW9ucyBtYXkgYmUgZnJlZS4gIExpbWl0ZWQgZnJlZSBzdXBwb3J0IGF2YWlsYWJsZSBmb3IKcHVyY2hhc2VycyBvZiBMRU1JUyBDRC1ST01zLgoKVXBkYXRlZDogMTk5Ny0wNS0wOQofClJvaGFuIExlbmFyZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmpsQHdyLmNvbS5hdT4KMzIgSG9sdGVybWFubiBTdC4KQ3Jvd3MgTmVzdCwgTlNXIDIwNjUKQVVTVFJBTElBCis2MSA0MTEyNTAwMjQKCiogVGhlIGh1bWFuIGZhY2UgYmVoaW5kIHRoZSBidWctZysrQHByZXAuYWkubWl0LmVkdSBtYWlsaW5nIGxpc3QgLSBrbm93bgogIGluIHRoZSBwYXN0IGFzIDxyamxAaWFzc2YuZWFzYW1zLmNvbS5hdT4gYW5kIDxyamxAb3QuY29tLmF1PiAtIG5vdwogIGtub3duIGFzIDxyamxAd3IuY29tLmF1Pi4KCiogSW50ZXJlc3RlZCBpbiBwcm92aWRpbmcgZmlyc3QgbGluZSBzdXBwb3J0IGFuZCBkZXZlbG9wbWVudC4KCkV4cGVyaWVuY2U6IDEwKyB5ZWFycyBDL1VuaXgsIDYrIHllYXJzIEMrKwogICAgICAgICAgICBFeHRlbnNpdmUgZXhwZXJpZW5jZSB3aXRoIEdOVSB0b29scywgY3Jvc3MtY29tcGlsZXJzLAogICAgICAgICAgICBlbWJlZGRlZC9ob3N0ZWQgc3lzdGVtcywgcmVhbHRpbWUsIHNpbXVsYXRpb25zLAogICAgICAgICAgICBhbmQgbWlsaXRhcnkgc29mdHdhcmUuCgpEZWdyZWVzOiAgICBCU2MgKENTKSwgQkUgKENvbW1zKSwgVW5pdmVyc2l0eSBvZiBNZWxib3VybmUKClJhdGVzOiAgICAgIEFVUyAkNzUrL2hyIG5lZy4KClVwZGF0ZWQ6ICAxOTk3LTA1LTE3Ch8KUmV1dmVuIE0uIExlcm5lcgkJPHJldXZlbkBuZXR2aXNpb24ubmV0LmlsPgoxNyBEaXNyYWVsaSBTdHJlZXQKSGFpZmEgMzQzMzMKSXNyYWVsCgpQaG9uZTogICAgIDA0LTgyNC0yMjY1ICh3aXRoaW4gSXNyYWVsKQogICAgICAgKzk3Mi00LTgyNC0yMjY1IChvdXRzaWRlIG9mIElzcmFlbCkKCkZheDogICAgICAgMDQtODI2LTEyMTkgKHdpdGhpbiBJc3JhZWwpCiAgICAgICArOTcyLTQtODI2LTEyMTkgKG91dHNpZGUgb2YgSXNyYWVsKSAgICAKCldXVzogaHR0cDovL3d3dy5uZXR2aXNpb24ubmV0LmlsL3BocC9yZXV2ZW4KCi0gU3lzdGVtIGFuZCBuZXR3b3JrIGFkbWluaXN0cmF0aW9uLCBlc3BlY2lhbGx5IExpbnV4LWJhc2VkIHN5c3RlbXMKICBhbmQgbmV0d29ya3MKLSBBZG1pbmlzdHJhdGlvbiwgdHJhaW5pbmcsIGFuZCBwcm9ncmFtbWluZyBmb3IgSW50ZXJuZXQgbm9kZXMgYW5kCiAgV29ybGQtV2lkZSBXZWIgc2l0ZXMKLSBJbnN0YWxsYXRpb24sIHN1cHBvcnQgYW5kIHRyYWluaW5nIGluIHRoZSB1c2Ugb2YgTGludXgsIEVtYWNzLCBQZXJsLAogIGFuZCBvdGhlciBmcmVlIHNvZnR3YXJlCi0gRXhwZXJ0aXNlIGluIEMsIEVtYWNzIExpc3AsIGFuZCBQZXJsCgpDb25zdWx0aW5nIHJhdGVzOiAkNzUvaG91ciwgbGVzcyBmb3IgZWR1Y2F0aW9uYWwgaW5zdGl0dXRpb25zLgoKVXBkYXRlZDogMTk5Ny0wNS0wNwofClJpY2hhcmQgTGV2aXR0ZSAgICAgICAgICAgICAoaW4gVGVYOiBSaWNoYXJkIExldml0dGUKTGV2aXR0ZSBQcm9ncmFtbWluZyAgICAgICAgICAgICAgICAgIExldml0dGUgUHJvZ3JhbW1pbmcKU3Bhbm52YWdlbiAzOCwgSSAgICAgICAgICAgICAgICAgICAgIFNwYW5udlwiYWdlbiAyOCwgSQpTLTE2OCAzNSAgQnJvbW1hICAgICAgICAgICAgICAgICAgICAgUy0xNjggMzUgIEJyb21tYQpTd2VkZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3dlZGVuKQpUZWwubnIuOiAgKzQ2ICg4KSAyNiA1MiA0NyAgICAgICh0aGVyZSBpcyBhbiBhbnN3ZXJpbmcgbWFjaGluZSkKQ2VsbHVsYXI6ICs0NiAoMTApIDIyMiA2NCAwNQplLW1haWw6ICAgPGxldml0dGVAbHAuc2U+CgpXaGF0IEkgZG86CglQcmltYXJpbHkgSSB3b3JrIG9uIEdOVSBzb2Z0d2FyZSBmb3IgVk1TLCBib3RoIFZBWCBhbmQgQVhQLiAgSSd2ZQoJYmVlbiBwb3J0aW5nIEdOVSBFbWFjcyB0byBWTVMgc2luY2Ugc3ByaW5nIDE5OTEuICBJJ3ZlIAlwb3J0ZWQgYQoJYnVuY2ggb2Ygb3RoZXIgR05VIHByb2dyYW1zIGFzIHdlbGwuICBJIG1haW50YWluIEdOVSB2bXNsaWIuCglGb3IgZnVydGhlciBpbmZvLCBzZWUgaHR0cDovL3d3dy5scC5zZS9+bGV2aXR0ZS9wcm9mL3Jlc3VtZS5odG1sCgpQcm9ncmFtcyBzdXBwb3J0ZWQ6CglUbyBhIHZhcnlpbmcgZGVncmVlIChyYW5naW5nIGZyb20gZXh0ZW5zaW9uIGFuZCBwb3J0aW5nIHRvCglpbnN0YWxsYXRpb24gYW5kIHNpbXBsZSBxdWVzdGlvbnMpIGF0IHRoZSB0aW1lIG9mIHVwZGF0aW5nIHRoaXMKCWVudHJ5OgoJLSBHTlUgdm1zbGliLCBlbWFjcywgYXV0b2NvbmYsIHppcCwgZGlmZnV0aWxzLCBtNCwgcGF0Y2gsIHRleGluZm8sCgkgIEMvQysrOyBvbiBib3RoIFZNUyBhbmQgVW5peC4KCS0gT3RoZXIgR05VIHByb2dyYW1zIHRvIGEgc21hbGwgZGVncmVlOyBvbiBVbml4LgoJRm9yIGZ1cnRoZXIgaW5mbywgbG9vayBhdCBodHRwOi8vd3d3LmxwLnNlL3Byb2R1Y3RzL2dudS5odG1sCgpFeHBlcmllbmNlOgoJRmx1ZW50IGluIFRlWC9MYVRlWCBhbmQgbWFueSBwcm9ncmFtbWluZyBsYW5ndWFnZXMuCglNb2RpZmllZCBrZXkgZWxlbWVudHMgaW4gRW1hY3MgKGUuZy4sIG1lbW9yeSBhbmQgcHJvY2VzcyBtYW5hZ2VtZW50KQoJdG8gd29yayB0cmFuc3BhcmVudGx5IG9uIFZNUy4gIEkgaGF2ZSB2ZXJ5IGdvb2Qga25vd2xlZGdlIGluIHRoZSBWTVMKCW9wZXJhdGluZyBzeXN0ZW0uICBJJ20gYWxzbyBrbm93bGVkZ2VkIGluIHRoZSBhIGZldyBVbml4IGZsYXZvcnMuCglGb3IgZnVydGhlciBpbmZvLCBzZWUgaHR0cDovL3d3dy5scC5zZS9+bGV2aXR0ZS9wcm9mL3Jlc3VtZS5odG1sCgpZb3VyIFJhdGU6CgkkNzAtJDEwMC9ob3VyICg1MDAtODAwIFNFSyBpbiBzd2VkZW4pLCBwbHVzIGV4cGVuc2VzLiAgTXkgcmF0ZXMKCWFyZSBuZWdvdGlhYmxlLCBkZXBlbmRpbmcgb24gaG93IGludGVyZXN0aW5nIHRoZSBwcm9qZWN0IGlzIHRvIG1lLgoKVXBkYXRlZDogMTk5Ny0wNS0wOAofCkxleGEgU29mdHdhcmUgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmZvQGxleGEuY29tCjE1OTAgVGhlIEFsYW1lZGEsIFN1aXRlIDEwMgpTYW4gSm9zZSwgQ0EgIDk1MTI2CgorMSA4MDAgMjc4LTIwNDAKKzEgNDA4IDI3OC0yMDQzICB2b2ljZQorMSA0MDggMjc4LTIwNDUgIGZheAoKaHR0cDovL3d3dy5sZXhhLmNvbQoKTGV4YSBTb2Z0d2FyZSBwcm92aWRlcyBzdXBwb3J0IGZvciBHTlUgQy9DKysgaW5jbHVkaW5nIHRoZSBHTlUgZGVidWdnZXIKYW5kIGxpbmtlci4gIExleGEgaGFzIGV4dGVuc2l2ZSBleHBlcmllbmNlIHN1cHBvcnRpbmcgR0NDL0crKyBvbiBTTkkKYW5kIFB5cmFtaWQgYXMgd2VsbCBhcyBhbGwgb3RoZXIgTUlQUyBBQkkgcGxhdGZvcm1zLiAgV2Ugb2ZmZXIgc3VwcG9ydAp0byAyLCA1LCAyNSBhbmQgbGFyZ2VyIG51bWJlciBvZiB1c2VycyB2aWEgcGhvbmUsIGVtYWlsLCBmdHAuCgpVcGRhdGVkOiAgMTk5Ny0wNS0wMQofCkdvcmQgTWF0emlna2VpdCAgICAgICAgICAgICAgICAgICAgICA8Z29yZEBnbnUub3JnPgoyMjIwIENhcGl0b2wgSGlsbCBDcmVzY2VudCAgICAgICAgICAgaHR0cDovL3d3dy5tLXRlY2guYWIuY2EvfmdvcmQvCkNhbGdhcnksIEFsYmVydGEgICBUMk0gNEI5ICAgICAgICAgICBWb2ljZTogKDQwMykgMjgyLTEzODcKQ0FOQURBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBWDogICAoNDAzKSAyODQtMDEzNwoKSSB3aWxsIGhlbHAgaW5zdGFsbCBiYWRseS1iZWhhdmVkIHNvdXJjZSBjb2RlIHBhY2thZ2VzLCBhbmQgaGF2ZSBleHBlcmllbmNlCmZpeGluZyB0aGVtIHRvIGNvbmZvcm0gdG8gR05VIHN0YW5kYXJkcy4gIEkgd2lsbCBnbGFkbHkgaGVscCBub3ZpY2VzIGFuZAppbnRlcm1lZGlhdGUgY29tcHV0ZXIgdXNlcnMgdG8gdW5kZXJzdGFuZCwgaW5zdGFsbCwgYW5kIHVzZSBmcmVlIHNvZnR3YXJlLAp3aGV0aGVyIG9yIG5vdCBJIGhhdmUgcHJpb3IgZXhwZXJpZW5jZSB3aXRoIHRoYXQgc29mdHdhcmUuICBJIGtub3cgbXkKbGltaXRhdGlvbnMgd2VsbCwgYW5kIHdpbGwgZnJlZWx5IGdpdmUgb3RoZXIgY29udGFjdHMgaWYgSSBkbyBub3Qgd2FudCB0bwpzb2x2ZSB5b3VyIHByb2JsZW0gbXlzZWxmLgoKSSBoYXZlIGluc3RhbGxlZCBhbmQgYWRtaW5pc3RlcmVkIGZyZWUgYW5kIHByb3ByaWV0YXJ5IHN5c3RlbXMgaW4gaG9tZSwKYWNhZGVtaWMsIGFuZCBidXNpbmVzcyBlbnZpcm9ubWVudHMuICBJIGhhdmUgcHJhY3RpY2FsIGV4cGVyaWVuY2UgaW4gbW9zdAphc3BlY3RzIG9mIFVuaXggYW5kIG5ldHdvcmsgc2VjdXJpdHkuICBJIGtub3cgaG93IHRvIGRpYWdub3NlIGEgY29tcGxleApleGlzdGluZyBjb21wdXRlciBzeXN0ZW0gYW5kIGluY3JlbWVudGFsbHkgcmVwbGFjZSBpdCB3aXRoIGEgc3VwZXJpb3IgZnJlZQpzeXN0ZW0gd2l0aG91dCBkaXNydXB0aW5nIHNlcnZpY2UuCgpJIGhhdmUgb3ZlciAyIHllYXJzIG9mIGV4cGVyaWVuY2Ugd2l0aCBzZXZlcmFsIG9mIHRoZSBtYWpvciBmcmVlIE9TZXM6CkxpbnV4L0dOVSAoUmVkIEhhdCwgRGViaWFuLCBTbGFja3dhcmUpLCBOZXRCU0QsIEZyZWVCU0QsIGFuZCBHTlUvSHVyZC4gIEkgYW0KdGhlIG1haW50YWluZXIgb2YgR05VIExpYnRvb2wgYW5kIEdOVSBETEQuICBTb21lIG9mIG15IHNwZWNpYWx0aWVzIGFyZToKRW1hY3MsIEF1dG9tYWtlLCBBdXRvY29uZiwgU0FORSwgQywgUGVybCwgYW5kIHNoZWxsIHNjcmlwdCBwcm9ncmFtbWluZy4KCk15IHJhdGVzIHN0YXJ0IGF0ICQxMCAoQ2FuYWRpYW4gZG9sbGFycykgcGVyIGhvdXIuICBXaGVuIEkgYW0gbm90IHN0YXJ2aW5nLCBJCmRvIG5vdCBjaGFyZ2Ugd29ydGh5IG5vbi1wcm9maXQgb3JnYW5pemF0aW9ucy4KClVwZGF0ZWQ6ICAxOTk3LTA1LTA4Ch8KQW5kcmV3IE1jQ2FsbHVtCjY2MjMgRGFsemVsbCBQbGFjZQpQaXR0c2J1cmdoLCBQQSAgMTUyMTcKSG9tZTogKDQxMikgNDIyLTA2ODgKPG1jY2FsbHVtQGNzLmNtdS5lZHU+Cmh0dHA6Ly93d3cuY3Mucm9jaGVzdGVyLmVkdS91L21jY2FsbHVtCgpTZXJ2aWNlczogICAgIFN1cHBvcnQsIGVuaGFuY2VtZW50cywgbmV3IGRldmVsb3BtZW50IGluOgoJCUdOVSBPYmplY3RpdmUgQwoJCUdOVXN0ZXAsIGJvdGggZ3JhcGhpY2FsIGFuZCBub24tZ3JhcGhpY2FsLgoJCUdOVXN0ZXAgQmFzZSBMaWJyYXJ5OiBsaWJnbnVzdGVwLWJhc2UKCQkoZXNwZWNpYWxseSBEaXN0cmlidXRlZCBPYmplY3RzKQoJCUludGVyZmFjZSBiZXR3ZWVuIE9iamVjdGl2ZS1DIGFuZCBHdWlsZSBvciBUQ0w6IGxpYmd1aWxlb2JqYy4KCkV4cGVyaWVuY2U6CTEwKyB5ZWFycyBvZiBVTklYIGV4cGVyaWVuY2UuCgkJUHJvZ3JhbW1pbmcgZm9yIE5lWFRTVEVQIHNpbmNlIHZlcnNpb24gMC44LCAxOTg4LgoJCU1BIGFuZCBQaEQgaW4gQ29tcHV0ZXIgU2NpZW5jZS4KCQlFeHRlbnNpdmUgd29yayBvbiBHTlUgT2JqZWN0aXZlIEMgUnVudGltZS4KCQlBdXRob3Igb2YgR05Vc3RlcCBCYXNlIExpYnJhcnksIGluY2x1ZGluZyBEaXN0cmlidXRlZCBPYmplY3RzCgkJRlNGIENoaWVmIE1haW50YWluZXIgb2YgdGhlIEdOVXN0ZXAgUHJvamVjdC4KCQlDb250cmlidXRvciB0byBHQ0MsIEVtYWNzLCBHdWlsZS4KCQlDLCBPYmplY3RpdmUtQywgUG9zdHNjcmlwdCwgU2NoZW1lLCBMaXNwLCBFTGlzcCwgTGludXguCgkJRW5nbGlzaCBhbmQgRnJhbmNhaXMuCgpSYXRlczoJCSQ5MC0kMTUwIC8gaG91ciwgbmVnb3RpYWJsZSwgZGVwZW5kaW5nIG9uIG1hbnkgdmFyaWFibGVzLgoKVXBkYXRlZDogMTk5Ny0wNS0wNwofCkVyaWsgTmFnZ3VtCQk8ZXJpa0BuYWdndW0ubm8+ClAuTy4gQm94IDE1NzAgVmlrYQlodHRwOi8vd3d3Lm5hZ2d1bS5ubwowMTE4IE9TTE8JCXBob25lOiArNDcgODgwMCA4ODc5Ck5PUldBWQkJCU5JQyBoYW5kbGU6IEVOOQoKQmFja2dyb3VuZDogSSBoYXZlIGV4dGVuc2l2ZSBleHBlcmllbmNlIHdpdGggcHJvZ3JhbW1pbmcgdW5kZXIgVW5peCwgaW4gQwppbiBwYXJ0aWN1bGFyIChzaW5jZSAxOTgzKSwgd2l0aCBzdGFuZGFyZHMgYW5kIHNwZWNpZmljYXRpb25zIGZvciBJbnRlcm5ldApwcm90b2NvbHMgKHNpbmNlIDE5ODcpLCBJbnRlcm5hdGlvbmFsIFN0YW5kYXJkcyBmb3IgY2hhcmFjdGVyIHNldHMgYW5kCmVuY29kaW5nIHNjaGVtZXMgKHNpbmNlIDE5ODgpLCBJU0+gODg3OSBTR01MIChzaW5jZSAxOTkwLCBuYXRpb25hbCBoZWFkIG9mCmRlbGVnYXRpb24gdG8gSVNPL0lFQyBKVEMgMS9TQyAxOC9XRyA4IHNpbmNlIDE5OTEpLCBhbmQgQU5TSSBYMy4yMjYgQ29tbW9uCkxpc3AgKHNpbmNlIGVhcmx5IDE5OTQpLiAgSSBoYXZlIGJlZW4gYW4gRW1hY3MgdXNlciBhbmQgcHJvZ3JhbW1lciBmcm9tCjE5ODQgdG8gMTk4NyAoVE9QUy0yMCkgYW5kIGZyb20gMTk5MSB0byBwcmVzZW50IChVbml4KS4gIHNpbmNlIGVhcmx5IDE5OTQsCkkgaGF2ZSB3b3JrZWQgb24gR05VIEVtYWNzIGRldmVsb3BtZW50LCBpbiBib3RoIExpc3AgYW5kIEMsIGFuZCBzaW5jZSBtaWQKMTk5NSwgSSBoYXZlIGJlZW4gdHJhY2tpbmcgdGhlIGRldmVsb3BtZW50IGNvZGUuCgpTZXJ2aWNlcyBJIG9mZmVyIHRoZSBmcmVlIHNvZnR3YXJlIGNvbW11bml0eSBpbmNsdWRlIHN1cHBvcnRpbmcgRW1hY3MgdXNlcnMKYW5kIHByb2dyYW1tZXJzIHdpdGggZXhwZXJ0IGFkdmljZSAoZ3JhdGlzIG9uIFVTRU5FVCBvciBtYWlsaW5nIGxpc3RzIHdoZXJlCm90aGVycyBtYXkgYmVuZWZpdCksIGN1c3RvbWl6aW5nIGFuZCB3cml0aW5nIEVtYWNzIGZ1bmN0aW9ucyBhbmQgcGFja2FnZXMsCmRlbGl2ZXJpbmcgY291cnNlcyBhbmQgc2VtaW5hcnMgZnJvbSB0dXRvcmlhbHMgdG8gd3JpdGluZyBFbWFjcyBMaXNwIGFuZCBDCmV4dGVuc2lvbnMsIGFuZCBwcm92aWRpbmcgZ2VuZXJhbCBhaWQgd2l0aCBhbGwgR05VIHNvZnR3YXJlLgoKTXkgc3RhbmRhcmQgcmF0ZSBpcyBhIGZsYXQgVVNEIDgwIHBlciBob3VyIG9yIFVTRCAyIHBlciBtaW51dGUgKHlvdSBkZWNpZGUKd2hpY2ggdGltZSB1bml0IHRvIGFwcGx5KSwgYnV0IHRvIG9mZnNldCB0aGUgY29zdCBvZiBwcm9jZXNzaW5nIG1vbmV5LCB0aGUKbWluaW11bSBjcmVkaXQgY2FyZCBjaGFyZ2UgaXMgVVNEoDEwMCBhbmQgdGhlIG1pbmltdW0gaW52b2ljZWQgYW1vdW50IGlzClVTRCAyNTAuICBEaXNjb3VudHMgYXJlIGF2YWlsYWJsZSB0byB3b3J0aHkgY2F1c2VzIC0tIHByZXNlbnQgeW91ciBjYXNlLgpUaW1lIGF3YXkgZnJvbSBob21lIGlzIGJpbGxlZCBhdCBVU0QgNDAgcGVyIGhvdXIgYXJvdW5kIHRoZSBjbG9jayB0bwplbmNvdXJhZ2UgcmVtb3RlIHdvcmsuICAoQ291cnNlcyBhbmQgc2VtaW5hcnMgYXJlIG5lZ290aWF0ZWQgaW5kaXZpZHVhbGx5LikKClBsZWFzZSBjYWxsIG9ubHkgYWJvdXQgYWN0dWFsIHdvcmssIEkgcHJlZmVyIG1haWwgZm9yIGFsbCBvdGhlciBxdWVzdGlvbnMuCgpVcGRhdGVkOiAxOTk3LTA3LTE4Ch8KTkVULUNvbW11bml0eSAgICAgICAgICAgICAgICAgICA8c2FsZXNAbmV0LWNvbW11bml0eS5jb20+CjUyMiBTVyA1dGggQXZlbnVlICAgICAgICAgICAgICAgaHR0cDovL3d3dy5uZXQtY29tbXVuaXR5LmNvbQpTdWl0ZSAxMTA1ClBvcnRsYW5kLCBPUiA5NzIwNCBVU0EKMS04MDAtOTE5LTAwNjAgdm9pY2UgIAoxLTUwMy0yNzQtNDQyMyB2b2ljZSAgCjEtNTAzLTI3NC01NDA2IGZheCAgICAKCk5FVC1Db21tdW5pdHkgcHJvdmlkZXMgc3VwcG9ydCBmb3IgdGhlIGNvbXBsZXRlIEdOVXN0ZXAgdG9vbHNldAppbmNsdWRpbmcgdGhlIE9iamVjdGl2ZS1DIHJ1bnRpbWUgd2l0aGluIEdDQywgdGhlIEdOVXN0ZXAgQmFzZSBMaWJyYXJ5LAp0aGUgRGlzcGxheSBHaG9zdHNjcmlwdCBzeXN0ZW0sIHRoZSBHTlVzdGVwIEdVSSBMaWJyYXJ5LCB0aGUgR05Vc3RlcApYL0RQUyBHVUkgQmFja2VuZCwgYW5kIHRoZSBHTlVzdGVwIERhdGFiYXNlIExpYnJhcnkuIE5FVC1Db21tdW5pdHkgYWxzbwpwcm92aWRlcyBzdXBwb3J0IGZvciBpdHMgb3duIE1lZGlhQm9vayBzb2Z0d2FyZSBpbmNsdWRpbmcgdGhlIE1lZGlhQm9vawpSYW5kb20gTGlicmFyeSBhbmQgdGhlIE1lZGlhQm9vayBTcGVlY2ggU3ludGhlc2lzIExpYnJhcnkuIApORVQtQ29tbXVuaXR5IGFjdGl2ZWx5IHN1cHBvcnRzIGFuZCBkZXZlbG9wcyBmcmVlIHNvZnR3YXJlIG9uIGFsbApHTlVzdGVwIHBsYXRmb3JtczsgYSBwb3J0aW9uIG9mIHRoZSBwcm9jZWVkcywgdXN1YWxseSAyMCUsIGdlbmVyYXRlZApmcm9tIENELVJPTSBzYWxlcyBnbyB0b3dhcmRzIGFkZGl0aW9uYWwgZGV2ZWxvcG1lbnQgYW5kIGVuaGFuY2VtZW50IG9mCkdOVXN0ZXAuCgpVcGRhdGVkOiAxOTk3LTA1LTEyCh8KICBPcGVuIFN5c3RlbXMgQ29uc3VsdGFudHMgYS5zCiAgU3QuIE9sYXZzZ3QuIDI0CiAgTi0wMTY2IE9TTE8KICBOT1JXQVkKClBob25lOiAgICAgICAgICAgICAgIEZheDoKICArNDcgMjIgMjAgNDAgNTAgICAgKzQ3IDIyIDIwIDAyIDg1CgpXZWI6ICAgICAgICAgICAgICAgICBFLW1haWw6CiAgaHR0cDovL3d3dy5vc2Mubm8gIDxnbnUtc3VwcG9ydEBvc2Mubm8+CgpPcGVuIFN5c3RlbXMgQ29uc3VsdGFudHMgYS5zIGNhbiBwcm92aWRlIHByb2dyYW1taW5nIHN1cHBvcnQgZm9yIGFsbApHTlUgc29mdHdhcmUgLS0gZXh0ZW5kaW5nIG9yIGFkb3B0aW5nIGl0IHRvIG1lZXQgY3VzdG9tZXIgbmVlZHMuClByaWNlcyB2YXJ5IHdpdGggc29mdHdhcmUgYW5kIHByb2plY3QuICBIb3VybHkgZmVlcyBhcmUgaW4gdGhlICQ4MC0xMjAKcmFuZ2UuICBGaXhlZC1wcmljZWQgcHJvamVjdHMgYXJlIGFsc28gYXZhaWxhYmxlLiAgTm8gcGhvbmUgc3VwcG9ydC4KClVwZGF0ZWQ6ICAxOTk3LTA1LTA4Ch8KRnJhbmNlc2NvIFBvdG9ydGlgIDxGLlBvdG9ydGlAY251Y2UuY25yLml0PgpWaWEgUy5TdGVmYW5vLCA4CjU2MTIzIFBpc2EsIEl0YWx5ClRlbC4gKDA1MCk1NjA2NzEKCkVtYWNzOglpbnN0YWxsYXRpb24gYW5kIG1haW50ZW5hbmNlLCB0cmFpbmluZyBhbmQgdHV0b3JpYWxzLAoJY3VzdG9taXNhdGlvbiwgZXh0ZW5zaW9ucywgdHJvdWJsZXNob290aW5nLiAgQXV0aG9yIG9mIHNvbWUgb2YKCXRoZSBwYWNrYWdlcyBpbiB0aGUgZW1hY3MgZGlzdHJpYnV0aW9uLCBoYXMgbWFkZSB0aGUgcG9ydGluZwoJb2YgZW1hY3MgdG8gdGhlIE1vdG9yb2xhIERlbHRhIGFyY2hpdGVjdHVyZS4KCk90aGVyOglpbnN0YWxsYXRpb24gYW5kIG1haW50ZW5hbmNlIG9mIEdOVSBzb2Z0d2FyZS4gIEV4cGVyaWVuY2Ugd2l0aAoJaHlsYWZheCwgUkNTLCBncGVyZiwgZXRhZ3MsIHNtYWlsLCBpbmRlbnQsIGRpZmYsIGdhd2ssIGdjYywKCXNjcmVlbi4gIElzIHRoZSBjdXJyZW50IG1haW50YWluZXIgb2YgZXRhZ3MuCgpSYXRlczoJMzAtODAgS0wvaHIsIGRlcGVuZGluZyBvbiBleHBlcmllbmNlIG9uIHRoZSBwYXJ0aWN1bGFyIHRhc2suCglBdmVyYWdlIGlzIDUwIEtML2hyICQ1MC9oci4KCVByZWZlciBlLW1haWwgY29tbXVuaWNhdGlvbiB0byB0ZWxlcGhvbmUuCgpRdWFsaWZpY2F0aW9uczogRWxlY3Ryb25pYyBFbmdpbmVlcmluZyBkZWdyZWUsIFBpc2EuICBGdWxsIHRpbWUKCXJlc2VhcmNoZXIgaW4gQ05VQ0UtQ05SLgoJRmFtaWxpYXIgd2l0aCBlbGlzcCBwcm9ncmFtbWluZyBhbmQgcG9ydGluZyBvZiBDIHByb2dyYW1zLgoKVXBkYXRlZDogIDE5OTctMDUtMDgKHwpEaXBsLi1JbmZvcm0uIEtsYXVzIEthZW1wZgkJPGtrYWVtcGZAcHJvZ2lzLmRlPgpwcm9HSVMgU29mdHdhcmUKSmFrb2JzdHIuIDExNwpELTUyMDY0IEFhY2hlbgpHZXJtYW55Cmh0dHA6Ly93d3cucHJvZ2lzLmRlClRlbCArNDkgMjQxIDQ3MDY3MApGYXggKzQ5IDI0MSA0NzA2NzI5CgotIDE1IHllYXJzIEMvVW5peCBleHBlcmllbmNlCi0gNiB5ZWFycyBWTVMgZXhwZXJpZW5jZQotIFBvcnRlZCBCRkQgbGlicmFyeSwgQmludXRpbHMsIEdOVSBBc3NlbWJsZXIsIEdOVSBDLCBHTlUgQysrLAogIEdOVSBDKysgbGlicmFyaWVzLCBhbmQgR05VIE1ha2UgdG8gb3BlblZNUy9BbHBoYS4KCldlIGRvIGEgbG90IG9mIGNyb3NzLXBsYXRmb3JtIChVbml4LVZNUy1XaW5kb3dzTlQpIGRldmVsb3BtZW50Cm1vc3RseSB3aXRoIHRoZSBHTlUgY29tcGlsZXIgZW52aXJvbm1lbnQuIFdlIGFyZSBhY3RpdmVseQpzdXBwb3J0aW5nIEdOVSBzb2Z0d2FyZSBvbiBvcGVuVk1TL0FscGhhLgoKUmF0ZXMgc3RhcnQgYXQgMTYwLi0gRE0gLyBob3VyIGZvciBzdXBwb3J0IGFuZAppbnN0YWxsYXRpb24uIExhcmdlciBwcm9qZWN0cyBhcmUgbmVnb3RpYWJsZS4KClVwZGF0ZWQ6IDE5OTctMDUtMDgKHwpRdWlvdGl4IENvcnBvcmF0aW9uCk1lbmxvIFBhcmssIENBCgpDb250YWN0OiBKZWZmcmV5IFNpZWdhbAogICAgICAgICBqYnNAcXVpb3RpeC5jb20KICAgICAgICAgNDE1IDMyNC0wNTM1CgpBcmVhIG9mIGZvY3VzOiBFbWJlZGRlZCBzeXN0ZW1zLS11c2luZyBHTlUgc29mdHdhcmUgdG8gZGV2ZWxvcCBmb3IKZW1iZWRkZWQgc3lzdGVtcywgcG9ydGluZyBHTlUgc29mdHdhcmUgdG8gZW1iZWRkZWQgc3lzdGVtcywgZXh0ZW5kaW5nIEdOVQpzb2Z0d2FyZSB0byBiZXR0ZXIgc3VwcG9ydCBlbWJlZGRlZCBlbnZpcm9ubWVudHMsIGRldmVsb3BpbmcgbmV3IHRvb2xzIGFuZAp1dGlsaXRpZXMgZm9yIGVtYmVkZGVkIGRldmVsb3BtZW50IHVzaW5nIEdOVSBzb2Z0d2FyZS4KClNlcnZpY2VzOiBwb3J0aW5nLCBkZXZlbG9wbWVudCwgc3VwcG9ydCwgcHJvamVjdCBtYW5hZ2VtZW50LCBhZHZpc29yeQpjb25zdWx0aW5nLgoKUmF0ZXM6ICQxMjUtJDI1MC9ob3VyIG9yIGZpeGVkIGZlZXMgZGVwZW5kaW5nIG9uIHNlcnZpY2VzIHByb3ZpZGVkLgoKVXBkYXRlZDogIDE5OTctMDUtMTYKHwpXb2xmZ2FuZyBTLiBSdXBwcmVjaHQJCTx3b2xmZ2FuZ0B3c3JjYy5jb20+CjQ3IEVzcGFyaXRvIEF2ZS4KRnJlbW9udCwgQ0EgOTQ1MzktMzgyNwooNTEwKSA2NTktOTc1NwoKQW55dGhpbmcsIChsaXNwLCBDLCBjdXN0b21pemF0aW9uLCBwb3J0aW5nLCBpbnN0YWxsaW5nKSBJIGhhdmUKd3JpdHRlbiB0aG91c2FuZHMgb2YgbGluZXMgb2YgR05VIEVtYWNzIEMgYW5kIExpc3AgY29kZS4gIE9yaWdpbmFsCmF1dGhvciBvZiB0aGUgZmxvYXRpbmcgcG9pbnQgYWRkaXRpb25zIGluIEVtYWNzIDE5LgoKUmF0ZXM6CSQ5NS9oci4KClVwZGF0ZWQ6IDE5OTctMDUtMDgKHwpTdGFuaXNsYXYgU2hhbHVub3YKCkVtYWlsOiBzaGFsdW5vdkBtY2NtZS5ydQpQaG9uZXM6IG9uIHJlcXVlc3QKCkluc3RhbGxpbmcsIGNvbmZpZ3VyaW5nLCBoZWxwaW5nIGxlYXJuIGFueSBmcmVlIHNvZnR3YXJlLiAgCkhhbmRob2xkaW5nLCB0cm91YmxlIHNob290aW5nLiAgTWFraW5nIGN1c3RvbSBjaGFuZ2VzIHRvIGZyZWUgCnNvZnR3YXJlIHdyaXR0ZW4gaW4gQy4gIFRlYWNoaW5nLCBsZWN0dXJpbmcsIGNvbnN1bHRpbmcuCgpXYW50IHRvIGhhdmUgYSBmcmVlIE9TIHdpdGggZnJlZSBzb2Z0d2FyZSBzZXJ2aW5nIHlvdXIgbmVlZHMgYnV0IGRvIApub3Qgd2FudCB0byBzcGVuZCB0aW1lIHlvdXJzZWxmIG9yIG5vdCB2ZXJ5IHNraWxsZWQgd2l0aCB0aGUgCmNvbXB1dGVycz8gIENhbm5vdCBkZWNpZGUgd2hpY2ggZnJlZSBzb2Z0d2FyZSBzdWl0cyB5b3VyIG5lZWRzIApiZXR0ZXI/ICBEcm9wIG1lIGEgbGluZS4KCldlbGwsIGVzc2VudGlhbGx5LCBhbnl0aGluZyBlbHNlIG9uIHNwZWNpYWwgcmVxdWVzdC4gIDotKQoKUmF0ZTogJDMwL2hvdXIgaWYgeW91IGFyZSBpbiBNb3Njb3cgYW5kIEkgYW0gdGhlcmUgd2hlbiB5b3UgcmVxdWVzdCAKam9iIGRvbmUsICQ1MCBpZiB0aGUgam9iIG1heSBiZSBkb25lIHJlbW90ZWx5IChsaWtlIGNvbmZpZ3VyaW5nIHVzZXIgCmxldmVsIHByb2dyYW0pLCAkNjAvaG91ciArIHRyYXZlbCBleHBlbnNlcyBvdGhlcndpc2UuICAoTmVnb3RpYWJsZSwgCnNpZ25pZmljYW50IGRpc2NvdW50cyBtYXkgYXBwbHkuKQoKRW50ZXJlZCAxOTk3LTA3LTE3CgwKVmluIFNoZWx0b24KRXRoZXJTb2Z0LCBJbmMKNjE3LjkyNC42NDM3CjxhY3NAYWNtLm9yZz4KCkkgaGF2ZSBiZWVuIGEgcHJvZmVzc2lvbmFsIHByb2dyYW1tZXIgZm9yIDIwIHllYXJzLCB3aXRoIG1vc3Qgb2YgdGhhdCB0aW1lCnNwZW50IGRvaW5nIFVOSVgvQy9DKysgaGFja2luZy4gIE15IHNwZWNpYWx0aWVzIGFyZSAoaW4gbm8gcGFydGljdWxhcgpvcmRlcik6IHN5c3RlbS9rZXJuZWwgaGFja2luZywgc3BlZWNoIHJlY29nbml0aW9uLCBwZXJsLCBvYmplY3Qtb3JpZW50ZWQKZGVzaWduIGFuZCBhbmFseXNpcywgRlNGIHNvZnR3YXJlIChJIGhhdmUgYnVpbHQgbmVhcmx5IGV2ZXJ5IEZTRiBwYWNrYWdlIG9uCnNldmVyYWwgZGlmZmVyZW50IHBsYXRmb3JtcyksIHNtYWxsIGxhbmd1YWdlIGRlc2lnbiBhbmQgaW1wbGVtZW50YXRpb24sIGFuZApIVE1ML3dlYiBwcm9ncmFtbWluZy4gIEN1cnJlbnRseSBJJ20gYSBtZW1iZXIgb2YgdGhlIFhFbWFjcyBiZXRhIHRlc3RpbmcKdGVhbSAtIEknbSByZXNwb25zaWJsZSBmb3IgbWFpbnRhaW5pbmcgdGhlIHZlcnNpb24gMTkuMTUgcGF0Y2hlcyBhbmQgaGF2ZQp3cml0dGVuIGEgZmV3IHNtYWxsIHBhY2thZ2VzL2xpc3AgaGFja3MuICBNeSByYXRlcyB2YXJ5IGZyb20gJDYwIC0gJDEwMCBwZXIKaG91ciwgZGVwZW5kaW5nIG9uIHRoZSBzaXplIG9mIHRoZSBwcm9qZWN0LgoKVXBkYXRlZDogMTk5Ny0wNS0wOQofClNpZ251bSBTdXBwb3J0IEFCCQk8aW5mb0BzaWdudW0uc2U+ClRla25pa3JpbmdlbiA4ClMtNTgzIDMwIExpbmtvcGluZywgU3dlZGVuCis0NiAxMyAyMSA0NiAwMCB2b2ljZQorNDYgMTMgMjEgNDcgMDAgZmF4Cmh0dHA6Ly93d3cuc2lnbnVtLnNlLwoKU2lnbnVtIFN1cHBvcnQgQUIgaXMgYSBjb21wYW55IGRlZGljYXRlZCB0byBzdXBwb3J0aW5nLCBkZXZlbG9waW5nIGFuZApkaXN0cmlidXRpbmcgZnJlZSBzb2Z0d2FyZSBmb3IgbWFpbmx5IFVOSVggc3lzdGVtcy4gVGhlIHBlb3BsZSBiZWhpbmQKU2lnbnVtIFN1cHBvcnQgQUIgaGF2ZSBtYW55IHllYXJzIG9mIGdlbmVyYWwgVU5JWCBhbmQgSW50ZXJuZXQKZXhwZXJpZW5jZSwgYm90aCBhcyBzeXN0ZW0gYWRtaW5pc3RyYXRvcnMgYW5kIGFzIHByb2dyYW1tZXJzLCBhbmQgYWxzbwpleHRlbnNpdmUgZXhwZXJpZW5jZSBpbiBtYWludGFpbmluZyBhbmQgYWRtaW5pc3RlcmluZyB0aGUgR05VIHByb2dyYW1zCmFuZCBMaW51eC4KClNpZ251bSBTdXBwb3J0IGRldmVsb3BzIGFuZCBtYXJrZXRzIHRoZSBmcmVlIEdVSSBlcXVpcHBlZCBSZWFkeW5ldApJbnRlcm5ldCBzZXJ2ZXIsIHRoZSBmcmVlIFBIVFRQRCBodHRwIHNlcnZlciBhbmQgdGhlIGVhc3kgdG8gdXNlIExpbnV4CmJhc2VkIEZ1ZWdvIGZpcmV3YWxsLgoKU2VydmljZXMgb2ZmZXJlZDoKCiAtIFN1cHBvcnQgb24gSW50ZXJuZXQgc2VydmljZSBzb2Z0d2FyZSwgZXNwZWNpYWxseSB0aGUgZnJlZQogICBSZWFkeW5ldCBJbnRlcm5ldCBzZXJ2ZXIgd2UgaGF2ZSBkZXZlbG9wZWQgZm9yIExpbnV4LgogLSBTdXBwb3J0IG9uIExpbnV4LgogLSBDdXN0b21pemF0aW9uIG9mIExpbnV4LgogLSBJbnN0YWxsYXRpb24gYW5kIGN1c3RvbWl6aW5nIEdOVSBhbmQgb3RoZXIgZnJlZSBzb2Z0d2FyZS4gIFdlIGFyZQogICBtYWtpbmcgZnJlZSBzb2Z0d2FyZSBhcyBlYXN5IHRvIGluc3RhbGwgYW5kIHVzZSBhcyBzaHJpbmsgd3JhcHBlZAogICBwcm9ncmFtcy4KIC0gV2FycmFudHkgcHJvdGVjdGlvbi4KIC0gRmluZGluZywgUmVjb21tZW5kaW5nIGFuZCBJbnZlc3RpZ2F0aW9uIG9mIGZyZWUgc29mdHdhcmUgaW4gYW55CiAgIGFyZWEgb2YgdGhlIGN1c3RvbWVyJ3MgY2hvaWNlLgogLSBSZWd1bGFyIGNvbnN1bHRpbmcuCgpSYXRlczogRm9yIHNvZnR3YXJlIGl0ZW1zLCByZXF1ZXN0IG91ciBwcmljZSBsaXN0LgogICAgICAgRm9yIGNvbnN1bHRpbmcsIDcwMC05MDAgU0VLL2hvdXIuCgpVcGRhdGVkOiAxOTk3LTA1LTEyCh8KICAgSm9uIFNvbG9tb24gICAgICAgICAgICAgICAgICAgICA8anNvbEBnbnUub3JnPgogICAyMzUgTWFpbiBTdC4sIEFwdCAzQy0xCiAgIEVhc3QgSGFydGZvcmQsIENvbm4uIDA2MTE4CiAgICsxIDg2MCA4OTUtODI4OQoKICAgTWFpbnRhaW5zIGFsbCBHTlUgc29mdHdhcmUuLi4gQXZhaWxhYmxlIGZvciBHZW5lcmFsIENvbnN1bHRpbmcKICAgKGNvbnRhY3QgbWUgaWYgeW91IGFyZSBpbnRlcmVzdGVkKS4uLgogICBTZW5kbWFpbCBhIHNwZWNpYWx0eS4uLiBDYW4gYW5zd2VyIHF1ZXN0aW9ucyBwZXJ0YWluaW5nIHRvIHRoZQogICBpbnN0YWxsYXRpb24sIG1haW50ZW5hbmNlLCBidWcgcmVwb3J0aW5nIGFuZCBmaXhpbmcgZm9yCiAgIG1vc3QgR05VIHByb2R1Y3RzLi4uIEFkaGVyaW5nIHRvIHRoZSBGU0YvR05VIGNvcHlsZWZ0IGZvciBhbGwKICAgd29yay4uLiAoSSBvbmx5IGNoYXJnZSBmb3IgdGhlIHRpbWUgaXQgdGFrZXMgdG8gZG8gdGhlIGFib3ZlLAogICB0aGUgc29mdHdhcmUgKGFuZCBtb3N0IEdOVSBjb3B5bGVmdCdkIHNvZnR3YXJlKSBpcyBmcmVlLgogICBJIGNhbiBtYWtlIHRhcGVzIGZvciB5b3UgaWYgeW91IG5lZWQgdGhhdC4uLgoKVXBkYXRlZDogMTk5Ny0wNS0wOQofCk5hbWU6ICAgICAgICAgICBKdWxpYW4gU3RhY2V5IDxqaHNAZnJlZWJzZC5vcmc+CkxvY2F0aW9uOglNdW5pY2ggR2VybWFueSwgJiBvbiB0aGUgSW50ZXJuZXQuClF1YWxpZmljYXRpb25zOiBVbml2ZXJzaXR5IERlZ3JlZSwgQlNjIEhvbnMgQ29tcHV0ZXIgJiBDeWJlcm5ldGljcywgMTk4MC4KUGhvbmU6ICAgICAgICAgICs0OS44OS4yNjg2MTYgICBGYXg6ICs0OS44OS4yNjA4MTIgICBEYXRhOiArNDkuODkuMjYwMjMyNzYKUmVzdW1lOgkJaHR0cDovL3d3dy5mcmVlYnNkLm9yZy9+amhzLwpUaW1lIFpvbmU6ICAgICAgKzAxOjAwClJhdGU6ICAgICAgICAgICAxMzAtMTcwIERNL0hvdXIuICAyLjc4NDYgRE0gPSAxIFBvdW5kID0gVVMgJDEuNjMzMgpDb21tZXJjaWFsIEluZGVwZW5kZW50IEZyZWVsYW5jZSBDb25zdWx0YW5jeToKICAgICAgICAgICAgICAgIEFueSBVbml4IChpbmMgRnJlZUJTRCwgTGludXggZXRjKSwgQywgWC1XaW5kb3dzLCBGU0YgVG9vbHMsCiAgICAgICAgICAgICAgICBJbnRlcm5ldCwgU3lzdGVtcyBlbmdpbmVlcmluZywgaGFyZHdhcmUgaW50ZXJmYWNpbmcsIAogICAgICAgICAgICAgICAgcmVhbCB0aW1lLCBjb21tcyAmIHNjaWVudGlmaWMgaW5kdXN0cmlhbCwgZXZlbiBDeXJpbGxpYyAmCiAgICAgICAgICAgICAgICBDaGluZXNlIGludGVyZmFjZXMgZXRjLiAgTm8gRW1hY3MuIE5vIENvYm9sLgpGcmVlIFNvdXJjZXM6ICAgRlNGLCBGcmVlQlNEICYgTmV0QlNEIENWUyAmIGN1cnJlbnQgKGRhaWx5ISkgJiByZWxlYXNlcywKCQlYLVdpbmRvd3MsIFhGcmVlODYsIEZyZWUgZGlhbCBpbiBzb29uIChkZXRhaWxzIG9uIHdlYikuCgkJTWVkaWEgQ29weSBDaGFyZ2UgfkRNIDEwMCBRSUMgMS80IiA1MjVNLCAxNTBNLCAmIDYwTTsgJiBDQVMtNjBNLgpGcmVlIEdDQy0xLjQwCUZvciBTeW1tZXRyaWMgQ29tcHV0ZXIgU3lzdGVtcyBNb2RlbCAzNzUgKG5hdGl2ZSBjYyBpcyBicm9rZW4pLgpMYW5ndWFnZXM6ICAgICAgRGV1dHNjaCAmIEZyYW5jYWlzCiAgICAgICAgICAgICAgICBNYW4ga2FubiBtaXIgaW4gRGV1dHNjaCBzY2hyZWliZW4sIChvZGVyIG1pY2ggYW5ydWZlbikuCiAgICAgICAgICAgICAgICBKZSBjb21wcmVuZCBGcmFuY2FpcywgbWFpcyBqZSBuJ2VjcmlzIHBhcyBkZXMgcmVzcG9uc2VzIGVuIEZyLgohIE5PIEZSRUUgSEVMUCAhCgktIFRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gZG8gbm90IHBheSBtZS4KCS0gSSBlYXJuIG15IGxpdmluZyBmcm9tIHByb2Zlc3Npb25hbCBjb25zdWx0YW5jeSBmZWVzLgoJLSBUaG91Z2ggSSB3cml0ZSBjb2RlIGZvciBwdWJsaWMgZG9tYWluIC4uLgoJLSBJIHdpbGwgTm90IHNvbHZlIHN0cmFuZ2VyJ3MgY29tcGxleCBwcm9ibGVtcyBmb3IgZnJlZSAhCldIRU4gQ09OVEFDVElORyBNRSwgIERPIFRISVMgOi0KCSAgMSkgVGVsbCBtZSBJbW1lZGlhdGVseSwgIEFyZSBZb3U6CgkJQSkgIEV4cGVjdGluZyB0byBwYXkgbXkgYmlsbCBmb3IgcHJvZmVzc2lvbmFsIGNvbnN1bHRhbmN5LgoJCUIpICBTZWVraW5nIGEgZmV3IG1pbnV0ZXMgYWR2aWNlIGZyZWUgb2YgY2hhcmdlLgoJICAyKSBHaXZlIG1lIHlvdXIgZW1haWwgYWRkcmVzcywgb3IgdGhhdCBvZiBhIGZyaWVuZC4KCSAgICAgb3IgVm9sdW50ZWVyIHRvIHBob25lIGJhY2sgfiA1IGRheXMgbGF0ZXIgdG8gY29sbGVjdCBmb2xsb3ctdXAKCSAgICAgaW5mby4gIGZyb20gdGhlIG5ldC4gIChObyBJIHdpbGwgbm90IGluY3VyIGJpbGxzIHBob25pbmcgeW91IGJhY2spLgoJICAzKSBTcGVhayBFbmdsaXNoIGlmIHlvdSB3YW50IGZyZWUgYWR2aWNlICEgIEkgc3BlYWsgR2VybWFuLCAmCgkgICAgIGxpc3RlbiBpbiBGcmVuY2gsIGJ1dCBpZiB5b3UncmUgbm90IHBheWluZywgbWFrZSBzb21lIGVmZm9ydCB0b28gIQoKVXBkYXRlZDogMTk5Ny0wNS0xNQofClJpY2hhcmQgTS4gU3RhbGxtYW4JPHJtc0BnbnUub3JnPgo1NDUgVGVjaCBTcSwgUm0gNDMwCkNhbWJyaWRnZSwgTUEgMDIxMzkKCkVtYWNzOiBhbnl0aGluZyB3aGF0ZXZlcgpJcyBhbnlvbmUgaW50ZXJlc3RlZCBpbiBjb3Vyc2VzIGluIHVzaW5nIG9yIGV4dGVuZGluZyBHTlUgRW1hY3M/CgpPcmlnaW5hbCBpbnZlbnRvciBvZiBFbWFjcyBhbmQgbWFpbiBhdXRob3Igb2YgR05VIEVtYWNzIGFuZCBHQ0MuCgpSYXRlczogJDYvbWluIG9yICQyNTAvaHIuCgpVcGRhdGVkOiAxOTk3LTA1LTA5Ch8KS2F5dmFuIFN5bHZhbiA8a2F5dmFuQHN5bHZhbi5jb20+ClN5bHZhbiBBc3NvY2lhdGVzCjg3OSBMZXdpc3RvbiBEcml2ZQpTYW4gSm9zZSwgQ0EgOTUxMzYtMTUxNwpQaG9uZTogKDQwOCkgOTc4LTE0MDcKRmF4OiAgICg0MDgpIDk3OC0xNDE3CgpJIHdpbGwgaGVscCB5b3UgcG9ydCwgaW5zdGFsbCBhbmQgY3VzdG9taXplIEdOVSBFbWFjcywgR0NDLCBHKyssCmJpc29uLCBhbmQgb3RoZXIgR05VIHRvb2xzIG9uIGFsbW9zdCBhbnkgYXJjaGl0ZWN0dXJlIGFuZCBvcGVyYXRpbmcKc3lzdGVtLiBRdWVzdGlvbnMgYW5zd2VyZWQuIEdOVSBDIGFuZCBsaXNwIGhhY2tpbmcgYXZhaWxhYmxlLiBJIHdpbGwKYWxzbyBkbyBvbmdvaW5nIHN1cHBvcnQgYW5kIHBlcmlvZGljIHVwZ3JhZGVzIGlmIHlvdSBnZXQgb24gbXkgR05VCnNvZnR3YXJlIHN1YnNjcmlwdGlvbiBsaXN0LgoKUmF0ZXM6ICQ3MC0kMTAwL2hvdXIsIGRlcGVuZGluZyBvbiB0eXBlIG9mIHdvcmsuIFN1YnN0YW50aWFsIGRpc2NvdW50cwpmb3IgbG9uZy10ZXJtIGNvbnRyYWN0cyBhbmQgYWxzbyBmb3IgZWR1Y2F0aW9uYWwgb3Igbm9uLXByb2ZpdAppbnN0aXR1dGlvbnMuCgpFeHBlcmllbmNlOiBNYW55IGRpZmZlcmVudCBVbml4IHN5c3RlbXMgKDIuOUJTRCB0byA0LjRCU0QsIFhlbml4LCBTVlIzIGFuZApTVlI0LCBMaW51eCwgRnJlZUJTRCkuIFN5c3RlbXMgcHJvZ3JhbW1pbmcgYW5kIHN5c3RlbSBhZG1pbmlzdHJhdGlvbiBvbiBhbGwKYnJhbmRzIG9mIFVuaXguIEtlcm5lbCBoYWNraW5nIGV4cGVyaWVuY2UuIExvdHMgb2YgcG9ydGluZyBleHBlcmllbmNlLgoKVXBkYXRlZDogMTk5Ny0wNS0wOQofClRlcnJhVGVsIEFCIDxpbmZvQG5ldGcuc2U+ClRhbmtlZz1FNW5nZW4gNApTLTQxNyA1NiBHPUY2dGVib3JnLCBTd2VkZW4KKzQ2IDMxIDUwIDc5IDQwIHZvaWNlCis0NiAzMSA1MCA3OSAzOSBmYXgKaHR0cDovL3d3dy5uZXRnLnNlCgpUZXJyYVRlbCBBQiBpcyBhIGNvbXBhbnkgdGhhdCBkb2VzIGNvbnN1bHRhbnQgam9icyBhbmQgaG9sZHMgY291cnNlcwppbiB0aGUgZmllbGRzIG9mIFVuaXggc29mdHdhcmUsIFRDUC9JUCBuZXR3b3JraW5nIGFuZCBJbnRlcm5ldAphcHBsaWNhdGlvbnMuIFRoZSBwZW9wbGUgYmVoaW5kIFRlcnJhVGVsIEFCIGhhdmUgbWFueSB5ZWFycwpvZiBnZW5lcmFsIFVOSVggZXhwZXJpZW5jZSwgYm90aCBhcyBzeXN0ZW0gYWRtaW5pc3RyYXRvcnMgYW5kIGFzCnByb2dyYW1tZXJzLCBhbmQgYWxzbyBleHRlbnNpdmUgZXhwZXJpZW5jZSBpbiBtYWludGFpbmluZyB0aGUgR05VCnByb2dyYW1zOyBpbiBhZG1pbmlzdHJhdGlvbiBhcyB3ZWxsIGFzIGZpbmRpbmcgYW5kIGZpeGluZyBidWdzLgoKU2VydmljZXMgb2ZmZXJlZDoKCi0gSW5zdGFsbGF0aW9uIGFuZCBjdXN0b21pemluZyBHTlUgYW5kIG90aGVyIGZyZWUgc29mdHdhcmUuICBXZSB3aWxsCiAgbWFrZSBmcmVlIHNvZnR3YXJlIGFzIGVhc3kgdG8gaW5zdGFsbCBhbmQgdXNlIGFzIHNocmluayB3cmFwcGVkCiAgcHJvZ3JhbXMuCi0gU2VydmljZSBhbmQgc3VwcG9ydCBzdWJzY3JpcHRpb25zLgotIFdhcnJhbnR5IHByb3RlY3Rpb24uCi0gQ3VzdG9taXphdGlvbiBhbmQgcG9ydGluZy4KLSBTdWJzY3JpcHRpb25zIHRvIG5ldyB2ZXJzaW9ucyB3aGljaCB3ZSB3aWxsIHNlbmQgbW9udGhseSBvciB3aXRoCiAgYW55IG90aGVyIGludGVydmFsLgotIEZpbmRpbmcsIHJlY29tbWVuZGluZyBhbmQgaW52ZXN0aWdhdGluZyBmcmVlIHNvZnR3YXJlIGluIGFueQogIGFyZWEgb2YgdGhlIGN1c3RvbWVycyBjaG9pY2UuCi0gUmVndWxhciBjb25zdWx0aW5nLgotIFN1cHBvcnQgb24gSW50ZXJuZXQgc2VydmljZSBzb2Z0d2FyZSwgZXNwZWNpYWxseSB0aGUgZnJlZQotIFN1cHBvcnQgb24gTGludXguCi0gRnJlZXdhcmUgYmFzZWQgY291cnNlcyBpbiBVbml4IHVzYWdlLCBDLCBDKyssIG9yIGFueSBHTlUgdG9vbHMKClJhdGVzOiBGb3IgY291cnNlcywgY29udGFjdCB1cyBmb3IgYSBxdW90ZSwKRm9yIGNvbnN1bHRpbmcsICQ2MC0xMjAvaG91ciwgZGVwZW5kaW5nIG9uIGNvbnRyYWN0IGxlbmd0aC4KCkVudGVyZWQ6ICAxOTk3LTA1LTEyCh8KSm9uYXRoYW4gVGhvcm5idXJnIC8gQktJUyBDb25zdWx0aW5nCkUtbWFpbDogPGJraXNAaXNsYW5kLm5ldD4gICAgICAgKHByZWZlcnJlZCB3YXkgdG8gY29udGFjdCBtZSkKUG9zdGFsOiBCb3ggOC03LCBUaGV0aXMgSXNsYW5kICBCQyAgVjBSIDJZMCwgQ2FuYWRhClBob25lOiAgKDI1MCkgMjQ2LTM2NDAgICAgICAgICAgKHNvbWV3aGF0IHVucmVsaWFibGUpCgoqIEIuU2MgKEhvbm9ycyAxc3QgQ2xhc3MpIGluIE1hdGgrUGh5c2ljcytDUywgTS5TYyBhbmQgUGguRCBpbiBBc3Ryb25vbXkKKiAyMCsgeWVhcnMgY29tcHV0aW5nIGV4cGVyaWVuY2UgdXNpbmcgYSB3aWRlIHJhbmdlIG9mIHNvZnR3YXJlIGFuZAogIGhhcmR3YXJlIGVudmlyb25tZW50cwoKKiBWZXJ5IGZsdWVudCBpbiBDICgxNSsgeWVhcnMgZXhwZXJpZW5jZSkKKiBGbHVlbnQgaW4gQysrLCBQZXJsLCBzaCwgY3NoLCBBd2ssIEZvcnRyYW4sIFBML0ksIFBhc2NhbCwgQVBMLCBMaXNwLAogICAgICAgICAgICBCYXNpYywgTWFwbGUsIFJlZHVjZSwgdmFyaW91cyBtYWNoaW5lIGxhbmd1YWdlcwoqIFZlcnkgZmx1ZW50ICgxMCsgeWVhcnMgZXhwZXJpZW5jZSkgaW4gZ2VuZXJhbCBVbml4IHRvb2xzZXQgYW5kIHByb2dyYW1taW5nCiogR29vZCBrbm93bGVkZ2UgKDQrIHllYXJzIGV4cGVyaWVuY2UpIG9mIFVuaXggc3lzdGVtIGFkbWluaXN0cmF0aW9uCiAgKFN1bk9TLCBMaW51eCwgU0dJKQoqIFN0cm9uZyBiYWNrZ3JvdW5kIChib3RoIHRoZW9yeSBhbmQgcHJhY3RpY2FsIGV4cGVyaWVuY2UpIGluIFVuaXgvbmV0d29yawogIHNlY3VyaXR5LCBjb21wdXRlciBncmFwaGljcywgWCBhbmQgTW90aWYgR1VJIHByb2dyYW1taW5nCiogR29vZCBnZW5lcmFsIGtub3dsZWRnZSBvZiBVbml4IChrZXJuZWwpIGludGVybmFscyBhbmQgZGV2aWNlIGRyaXZlcnMKKiBWZXJ5IGZsdWVudCBpbiBMYVRlWCwgVGVYLCBhbHNvIEhUTUwsIEhUVFAsIGFuZCBDR0kgcHJvZ3JhbW1pbmcKKiBNZW1iZXIgb2YgVXNlbml4IChwcm9mZXNzaW9uYWwgYW5kIHRlY2huaWNhbCBVbml4IGFzc29jaWF0aW9uKSBhbmQKICBTQUdFIChzeXN0ZW0gYWRtaW5pc3RyYXRvcidzIGd1aWxkKQoKKiBWZXJ5IHN0cm9uZyBiYWNrZ3JvdW5kIChleHRlbnNpdmUgZXhwZXJpZW5jZSkgaW4gbnVtZXJpY2FsIGFuYWx5c2lzCiogU3Ryb25nIGJhY2tncm91bmRzIGluIGhhcmR3YXJlIGFyY2hpdGVjdHVyZSwgbWljcm9wcm9ncmFtbWluZywKICBwcm9ncmFtbWluZyBsYW5ndWFnZSBpbXBsZW1lbnRhdGlvbiwgY29tcGlsZXIgdGhlb3J5LCBkYXRhIHN0cnVjdHVyZXMsCiAgT1MgZGVzaWduIGFuZCBpbnRlcm5hbHMsIG5ldHdvcmtpbmcsIHN5bWJvbGljIG1hbmlwdWxhdGlvbiwgQUkKCkknbSBhdmFpbGFibGUgZm9yIFVuaXgtYmFzZWQgY29udHJhY3QgcHJvZ3JhbW1pbmcsIHNvZnR3YXJlIGluc3RhbGxhdGlvbiwKYW5kL29yIGdlbmVyYWwgc3lzdGVtIGFkbWluaXN0cmF0aW9uLiAgTXkgcmVjZW50IHByb2plY3RzIGluY2x1ZGUgc2V2ZXJhbAoyMEstNTBLIDUwSyBsaW5lIEMvTWFwbGUvQXdrIHNjaWVudGlmaWMgYXBwbGljYXRpb25zLCBzZXZlcmFsIHNtYWxsICgxSyBsaW5lKQpQZXJsL0F3ayB0ZXh0IHByb2Nlc3NvcnMgYW5kICJzeXN0ZW0gZ2x1ZSIgQ0dJIHByb2dyYW1zLCBmaW5kaW5nIGFuZCBmaXhpbmcKYnVncyBpbiBhIChmcmVlKSA1MEsgbGluZSBncmFwaGljcyBwYWNrYWdlLCBhbmQgYSBwYXJ0aWFsbHkgY29tcGxldGVkIHByb2plY3QKdG8gcG9ydCAocmVhbGx5IHJld3JpdGUpIHRoZSBHVUkgb2YgYSA1MEsgbGluZSBDKysgTmV0c2NhcGUgcGx1Z2luIGZyb20KV2luMzIgdG8gVW5peC9YL01vdGlmLgoKVW5sZXNzIG90aGVyd2lzZSByZXF1aXJlZCBieSBhIGNsaWVudCwgYWxsIHRoZSBzb2Z0d2FyZSBJIHdyaXRlIGlzIGNvdmVyZWQKYnkgdGhlIEdOVSBQdWJsaWMgTGljZW5zZS4gIE15IGJhc2ljIHJhdGUgaXMgQ2FuJDUwL2hvdXIgZm9yIHdvcmsgSSBjYW4gZG8KcmVtb3RlbHkgb3ZlciB0aGUgSW50ZXJuZXQsIG1vcmUgZm9yIG9uLXNpdGUgd29yaywgbGVzcyBmb3Igc2VsZWN0ZWQKbm9uLXByb2ZpdCBvcmdhbml6YXRpb25zLgoKVXBkYXRlZDogIDE5OTctMDUtMTkKHwpMZW9uYXJkIEguIFRvd2VyIEpyLgk8dG93ZXJAcHJlcC5haS5taXQuZWR1PgozNiBQb3J0ZXIgU3RyZWV0ClNvbWVydmlsbGUsIE1BCTAyMTQzClVTQQorMS02MTctNjIzLTc3MzkKCldpbGwgd29yayBvbiBtb3N0IEdOVSBzb2Z0d2FyZS4KSW5zdGFsbGF0aW9uLCBoYW5kaG9sZGluZywgdHJvdWJsZSBzaG9vdGluZywgZXh0ZW5zaW9ucywgdGVhY2hpbmcuCgpSYXRlczogJCAxNTAuMDAvaG91ciArIHRyYXZlbCBleHBlbnNlcy4gIE5lZ290aWFibGUgZm9yIG5vbi1wcm9maXRzLgoKRXhwZXJpZW5jZTogSGF2ZSBoYWNrZWQgb24gb3ZlciBhIGRvemVuIGFyY2hpdGVjdHVyZXMgaW4gbWFueSBsYW5ndWFnZXMuICBIYXZlCnN5c3RlbSBtb3RoZXJlZCB0b28gbWFueSB2YXJpZXRpZXMgb2YgVW5peGVzLiAgQXNzaXN0ZWQgcm1zIHdpdGggdGhlIGZyb250IGVuZApvZiBnY2MgYW5kIGl0cyBiYWNrLWVuZCBzdXBwb3J0LiAgUmVzdW1lIGF2YWlsYWJsZSBvbiByZXF1ZXN0LgoKVXBkYXRlZDogIDE5OTctMDUtMjQKHwpub3JpcyBuZXR3b3JrIEdtYkgKTWF0dGhpYXMgVXJsaWNocwpTY2hsZWllcm1hY2hlcnN0cmFzc2UgMTIKOTA0OTEgTnVlcm5iZXJnCkdlcm1hbnkKUGhvbmU6ICs0OSA5MTEgNTk4MTgtMApGYXg6ICs0OSA5MTEgNTk4MTgtMTEKPGluZm9Abm9yaXMuZGU+Cmh0dHA6Ly9pbmZvLm5vcmlzLmRlLyAoR2VybWFuKQoKRXhwZXJ0aXNlOgogIE9TIGludGVybmFscywgZXNwLiBMaW51eCBhbmQgQlNELCBlc3AuIGRldmljZSBkcml2ZXJzCiAgTmV0d29yayBwcm90b2NvbCAvIHByb2dyYW0gZGVzaWduIGFuZCBjb2RpbmcKICBVdGlsaXRpZXMgY29kaW5nIGFuZCBtYWludGVuYW5jZQogIFByb2dyYW0gZGVidWdnaW5nLCB0ZXN0aW5nCiAgVXNlciBpbnRlcmZhY2UgZGVzaWduIGFuZCB0ZXN0aW5nCiAgU2V2ZXJhbCBwcm9ncmFtbWluZyBhbmQgdG9vbCBsYW5ndWFnZXMKClNlcnZpY2VzOgogIEluc3RhbGxhdGlvbiwgZGVidWdnaW5nLCBlbmhhbmNlbWVudCwgZGlzdHJpYnV0aW9uLAogICAgZm9yIGFsbCBraW5kcyBvZiBmcmVlIHNvZnR3YXJlLgogIFN5c3RlbSBhZG1pbmlzdHJhdGlvbiBmb3IgbW9zdCBVbml4LWxpa2Ugc3lzdGVtcy4KICBFbWFpbCwgRmF4LCBwaG9uZSwgYW5kIGluLXBlcnNvbiBjb25zdWx0aW5nIChhbmQvb3IgInF1ZXN0aW9uIGFuc3dlcmluZyIpLgogIFJlbW90ZSBzdXBwb3J0IGFuZCBzeXN0ZW0gbW9uaXRvcmluZyAob3ZlciB0aGUgSW50ZXJuZXQpLAogIFVwZGF0ZSBzZXJ2aWNlIChuZXcgdG9vbHMgdGVzdGVkIGFuZCBpbnN0YWxsZWQgYXV0b21hZ2ljYWxseSkKICBJbnRlcm5ldCBhY2Nlc3MKClJhdGVzOgogIERNIDE1MCAofiQ4NSkgcGVyIGhvdXIKICBTdXBwb3J0IGNvbnRyYWN0cyBzdGFydCBhdCBETSAyMjAvbW9udGggKyBETSAzMC9zdXBwb3J0ZWQgc3lzdGVtLgogIFdpbGxpbmcgdG8gdHJhdmVsIGZvciBzdWZmaWNpZW50bHkgbGFyZ2Ugam9icy4KICBSYXRlcyBkb24ndCBpbmNsdWRlIHRheGVzLgoKVXBkYXRlZDogMTk5Ny0wOC0wNAofClBhdWwgQy5BLiB2YW4gR29vbAogICAgICA8UC52YW5Hb29sQExSLlRVRGVsZnQuTkw+CgpBZGRyZXNzOiBGYWN1bHR5IG9mIEFlcm9zcGFjZSBFbmdpbmVlcmluZwogICAgICAgICBEZWxmdCBVbml2ZXJzaXR5IG9mIFRlY2hub2xvZ3kKICAgICAgICAgS2x1eXZlcndlZyAxLCAgMjYyOSBIUyBEZWxmdAogICAgICAgICBUaGUgTmV0aGVybGFuZHMKClBob25lOiArMzEtMTUtMjc4NTM3MApGYXggIDogKzMxLTE1LTI3ODY0ODAKCkkgd291bGQgbGlrZSB0byBwcm92aWRlIHVucGFpZCBzdXBwb3J0IGZvciB0aGUgZm9sbG93aW5nIHRoaW5nczoKCi0gQwotIEMrKwotIGYyYwotIGNvbXBpbGF0aW9uIGFuZCBpbnN0YWxsYXRpb24gb2YgbW9zdCBHTlUgcGFja2FnZXMKClVwZGF0ZWQ6ICAxOTk3LTA1LTEyCh8KQXJuZSBXaWNobWFubgoKRU1haWw6IDxhd0BtYXRoLnVuaS1zYi5kZT4KVGVsZXBob25lIG9uIHJlcXVlc3QuCgpJIHN1cHBvcnQgR05VIHNvZnR3YXJlIG9uIHRoZSBmb2xsb3dpbmcgcGxhdGZvcm1zOgoKTGludXgKU3VuT1MgNC5YIDUuWApIUFVYIDkuWApvdGhlciBwbGF0Zm9ybXMgb24gcmVxdWVzdC4KClVzdWFsIHJhdGVzOiAyMERNIHBlciBob3VyLiBGcmVlIHN1cHBvcnQgZm9yIHByaXZhdGUgcGVvcGxlIGFzIHRpbWUKcGVybWl0cy4KClVwZGF0ZWQ6IDE5OTctMDUtMTYKHwpKb2R5IFdpbnN0b24KeHBydCBDb21wdXRlciBDb25zdWx0aW5nLCBJbmMuCjczMSBWb3lhZ2VyCkhvdXN0b24sIFRYLCA3NzA1OAooMjgxKSA0ODAtVU5JWCwgPGpvZHlAc2Njc2kuY29tPgoKV2UgaGF2ZSBzdXBwb3J0ZWQsIGluc3RhbGxlZCwgYW5kIHVzZWQgdGhlIGVudGlyZSBHTlUgc29mdHdhcmUgc3VpdGUKZm9yIG92ZXIgOCB5ZWFycyBvbiBtYW55IGRpZmZlcmVudCBVbml4IHBsYXRmb3Jtcy4gIFdlIGhhdmUgd3JpdHRlbgpjaGFyYWN0ZXIgZGV2aWNlIGRyaXZlcnMgYW5kIHByb2MgZmlsZSBzeXN0ZW1zIGZvciBjdXN0b20gaGFyZHdhcmUKcnVubmluZyBvbiBMaW51eC4gIEluIGFkZGl0aW9uLCB3ZSBoYXZlIGRldmVsb3BlZCBhIGN1c3RvbSBYMTEgc2VydmVyCmFuZCBYIGlucHV0IGV4dGVuc2lvbnMuIE91ciBjb25zdWx0aW5nIHJhdGUgaXMgJDE1MC4wMCBVUyBkb2xsYXJzIHBlcgpob3VyLCBuZWdvdGlhYmxlLCBwbHVzIGEgcGVyIGRpZW0gZm9yIG91dCBvZiB0b3duIHdvcmsuCgpVcGRhdGVkOiAgMTk5Ny0wNS0xMgofCkxpZ2UgWmhvdQpDb25zdWx0YW50Ck9wZW4gVGVjaG5vbG9naWVzIENvcnBvcmF0aW9uClN1biBMb3R1cyBCbGRnLiAybmQgRmxvb3IKMi05LTEgQ2h1b3UsIE5ha2Fuby1rdSwgVG9reW8gMTY0IEphcGFuClRlbDogKzgxLTMtMzM2NS0yOTExIEZheDogKzgxLTMtMzM2NS0yOTIwCkUtbWFpbDogPHpob3VAb3BlbnRlY2guY28uanA+CgpNeSBwcm9maWxlIGlzIGxpc3RlZCBhdDogIGh0dHA6Ly93d3cub3BlbnRlY2guY28uanAvfnpob3UvCgpJIGhhdmUgdHdvIHllYXJzIG9mIGV4cGVyaWVuY2UgcG9ydGluZyBhbmQgc3VwcG9ydGluZyBHTlUgQyBDb21waWxlciBhbmQKR05VIEFzc2VtYmxlciBhdCB0aGUgV2luZ251dCBwcm9qZWN0IG9mIFNSQSwgSW5jLiwgVG9reW8uCgpJIGNhbiBwcm92aWRlIGZyZWUgY29uc3VsdGF0aW9uIG9uIHRoZXNlIHByb2R1Y3RzIGlmIHRoZSBwcm9ibGVtIGlzIG5vdAp0aW1lLWNvbnN1bWluZy4KClVwZGF0ZWQ6ICAxOTk2LTEyLTA0Ch8KCkZvciBhIGN1cnJlbnQgY29weSBvZiB0aGlzIGRpcmVjdG9yeSwgb3IgdG8gaGF2ZSB5b3Vyc2VsZiBsaXN0ZWQsIGFzazoKCWdudUBwcmVwLmFpLm1pdC5lZHUKCioqIFBsZWFzZSBrZWVwIHRoZSBlbnRyaWVzIGluIHRoaXMgZmlsZSBhbHBoYWJldGljYWwgKioK