IwojICBUaGlzIGlzIHRoZSBtYWluIGkxOG4gcmVzb3VyY2UgZmlsZSBmb3IgSlNQV2lraSBpbnRlcm5hbAojICBjb2RlLCB0aGUgc28tY2FsbGVkIGNvcmUgY29kZS4KIwojIEFucmVkZSBEdSBvZGVyIFNpZT8gaHR0cDovL2xpc3RzLndpa2ltZWRpYS5vcmcvcGlwZXJtYWlsL3dpa2lkZS1sLzIwMDctSnVseS8wMTk1OTUuaHRtbAojCiMgUGxlYXNlLCBkbyBub3QgZm9yZ2V0IHRvIHVzZSBwcm9wZXIgSFRNTCBlbnRpdGllcywgc28KIyAgICIgPSAmcXVvdDsKIyAgICcgPSAmIzM5OyAgTm90ZSB0aGF0ICZhcG9zOyBpcyBOT1QgSFRNTCwgYW5kIGRvZXMgbm90IG5lY2Vzc2FyaWx5IHdvcmsgaW4gYWxsIGJyb3dzZXJzLgoKCiMgRGVjaXNpb25zOiB7MH09dGFzayBvd25lcjsgezF9PXJlcXVlc3RlcjsgezItOX09YWRkaXRpb25hbCBtZXNzYWdlIGFyZ3VtZW50cyBmb3Igd29ya2Zsb3cKZGVjaXNpb24uZWRpdFdpa2lBcHByb3ZhbD1CZXdlcmsgcGFnaW5hIHsyfQoKIyBTZWN1cml0eQoKc2VjdXJpdHkuZXJyb3Iubm9hY2Nlc3MubG9nZ2VkPVUgaGVlZnQgZ2VlbiB0b2VnYW5nIG5hYXIgJiMzOTt7MH0mIzM5Oy4gV2lsdCBVIGFhbmxvZ2dlbiBhbHMgZWVuIGFuZGVyZSB1c2VyPwpzZWN1cml0eS5lcnJvci5ub2FjY2Vzcz1VIGhlZWZ0IGdlZW4gdG9lZ2FuZyBuYWFyICYjMzk7ezB9JiMzOTsuIEdlbGlldmUgZWVyc3QgaW4gdGUgbG9nZ2VuLgpzZWN1cml0eS5lcnJvci53cm9uZ2lwPUZvdXQ6IElQIGFkcmVzIGlzIG9uZ2VsZGlnCiNBdHRlbXB0IHRvIHBvc3QgZnJvbSBhIGRpZmZlcmVudCBJUCBhZGRyZXNzIHRoYW4gd2hlcmUgdGhlIHBhZ2Ugd2FzIG9yaWdpbmFsbHkgZmV0Y2hlZC4KCnNlY3VyaXR5LmVycm9yLmNyZWF0ZXByb2ZpbGViZWZvcmVsb2dpbj1VIGRpZW50IGVlcnN0IGluIHRlIGxvZ2dlbiBhbHZvcmVucyBlZW4gZ2VicnVpa2Vyc3Byb2ZpZWwgYWFuIHRlIG1ha2VuCnNlY3VyaXR5LmVycm9yLmJsYW5rcGFzc3dvcmQ9V2FjaHR3b29yZCB2ZWxkIGlzIGxlZWcKc2VjdXJpdHkuZXJyb3IucGFzc3dvcmRub21hdGNoPVdhY2h0d29vcmQgaXMgb25qdWlzdC4KCnNlY3VyaXR5LmVycm9yLmlsbGVnYWxmdWxsbmFtZT1PbmdlbGRpZ2Ugdm9sbGVkaWdlIG5hYW0gJnF1b3Q7ezB9JnF1b3Q7CnNlY3VyaXR5LmVycm9yLmlsbGVnYWxsb2dpbm5hbWU9T25nZWxkaWdlIExvZ2luIG5hYW0gJnF1b3Q7ezB9JnF1b3Q7IAoKIyBUaGVzZSBzaG91bGQgcm91Z2hseSBtYXRjaCB3aGF0ZXZlciBpcyB1c2VkIGluIGRlZmF1bHQucHJvcGVydGllcyBmb3IgVXNlclByb2ZpbGUuanNwCnNlY3VyaXR5LnVzZXIubG9naW5uYW1lPUxvZ2luIG5hYW0Kc2VjdXJpdHkudXNlci5mdWxsbmFtZT1Wb2xsZWRpZ2UgbmFhbQpzZWN1cml0eS51c2VyLmVtYWlsPUVtYWlsIGFkcmVzCgojIFJlbmFtaW5nCgpyZW5hbWUuZW1wdHk9RGUgbmlldXdlIG5hYW0gdmFuIGRlIHBhZ2luYSBpcyBsZWVnLjxici8+XG5LbGlrIDxiPmJhY2s8L2I+IGluIGRlIGJyb3dzZXIgZW4ga2llcyBlZW4gbmlldXdlIG5hYW0KcmVuYW1lLmVycm9yLnRpdGxlPUZvdXQ6IGRlIHBhZ2luYSBrb24gbmlldCB3b3JkZW4gaGVybm9lbWQKcmVuYW1lLmVycm9yLnJlYXNvbj1SZWRlbjoKcmVuYW1lLmlkZW50aWNhbD1EZSBwYWdpbmEgbmFtZW4gemlqbiBpZGVudGllay48YnIvPlxuS2xpayA8Yj5iYWNrPC9iPiBpbiBkZSBicm93c2VyIGVuIGtpZXMgZWVuIGFuZGVyZSBuYWFtLgpyZW5hbWUuZXhpc3RzPVBhZ2UgInswfSIgYmVzdGFhdCByZWVkcy48YnIvPlxuS2xpayA8Yj5iYWNrPC9iPiBpbiBkZSBicm93c2VyIGVuIGtpZXMgZWVuIGFuZGVyZSBuYWFtIG9mIHZlcndpamRlciBkZSBwYWdpbmEgInswfSIuCnJlbmFtZS51bmtub3duZXJyb3I9RXIgaXMgZWVuIG9uYmVrZW5kZSBmb3V0IG9wZ2V0cmVkZW4gKHswfSkKCiMgTG9naW4uanNwICAKbG9naW4uZXJyb3IucGFzc3dvcmQ9Rm91dDogZ2VlbiBnZWxkaWdlIGxvZ2luLgpsb2dpbi5lcnJvci5ub2FjY2Vzcz1VIGhlZWZ0IGdlZW4gdG9lZ2FuZyB0b3QgZGV6ZSBpbmZvcm1hdGllLlNvcnJ5LgoKIyBMb3N0cGFzc3dvcmQuanNwCgojIDAgPSBsb2dpbiBuYW1lLCAxID0gcGFzc3dvcmQsIDIgPSBVUkwsIDMgPSBBcHBsaWNhdGlvbiBuYW1lIChhcyBzaWduYXR1cmUpCiMgVGhpcyBpcyB0ZXh0LCBub3QgSFRNTC4KbG9zdHB3ZC5uZXdwYXNzd29yZC5lbWFpbD1ab2FscyBhYW5nZXZyYWFnZCwgdXcgbmlldXdlIHdhY2h0d29vcmQgdm9vciBkZSBsb2dpbiAiezB9IiBpcyAiezF9IiBcCiAgICAgICAgICAgICAgICAgICAgXG5cblUga2FuIGlubG9nZ2VuIG9wIHsyfS5cblxuLS0gezN9Cmxvc3Rwd2QubmV3cGFzc3dvcmQuc3ViamVjdD1OaWV1dyB3YWNodHdvb3JkIHZvb3IgezB9Cmxvc3Rwd2Qubm91c2VyPUZvdXQ6IGVyIGlzIGdlZW4gZ2VicnVpa2VyIG9mIGVtYWlsICYjMzk7ezB9JiMzOTsgZ2V2b25kZW4uCmxvc3Rwd2Qubm9tYWlsPUludGVybmUgZm91dDogZGUgZW1haWwga29uIG5pZXQgd29yZGVuIHZlcnpvbmRlbi4gR2VsaWV2ZSBkZSBzaXRlIGFkbWluaXN0cmF0b3IgdGUgY29udGFjdGVyZW4uCmxvc3Rwd2QuZW1haWxlZD1FZW4gbmlldXcgd2FjaHR3b29yZCBpcyBnZS1lbWFpbGVkIG5hYXIgZGUgZ2VicnVpa2VyCgpsb3N0cHdkLnJlc2V0LnRpdGxlPUhlc3RlbCB3YWNodHdvb3JkCmxvc3Rwd2QucmVzZXQudW5hYmxlPUVyIHdhcyBlZW4gcHJvYmxlZW0gbWV0IGRlemUgYWN0aWUuIFByb2JlZXIgb3BuaWV1dy4KCmxvc3Rwd2QucmVzZXQuYmx1cmI9VSBiZW50IGhldCB3YWNodHdvb3JkIHZlcmdldGVuIG9mIHZlcmxvcmVuPyAgVnVsIGhpZXIgaGV0IGVtYWlsIGFkcmVzIGRhdCBVIGJpaiByZWdyaXN0cmF0aWUgaGVidCBpbmdldnVsZC4KbG9zdHB3ZC5yZXNldC5zdWJtaXQ9SGVyc3RlbCB3YWNodHdvb3JkIQoKIyBUcmFkaXRpb25hbERpZmZQcm92aWRlcgoKZGlmZi50cmFkaXRpb25hbC5hZGRlZD1PcCBsaWpuIHswfSB3ZXJkZW4gezF9IGxpam5lbiB0b2VnZXZvZWdkCmRpZmYudHJhZGl0aW9uYWwuY2hhbmdlZD1PcCBsaWpuIHswfSB3ZXJkZW4gezF9IGxpam5lbiBnZXdpanppZ2QKZGlmZi50cmFkaXRpb25hbC5yZW1vdmVkPU9wIGxpam4gezB9IHdlcmRlbiB7MX0gbGlqbmVuIHZlcndpamRlcmQKZGlmZi50cmFkaXRpb25hbC5vbmVsaW5lPY6ObiBsaWpuCmRpZmYudHJhZGl0aW9uYWwubGluZXM9ezJ9IGxpam5lbgoKIyBJbnB1dFZhbGlkYXRvcgoKdmFsaWRhdGUudW5zYWZlY2hhcnM9ezB9IG1hZyBkZXplIHRla2VucyBuaWV0IGJldmF0dGVuIHsxfQp2YWxpZGF0ZS5pbnZhbGlkZW1haWw9ezB9IGlzIG9uZ2VsZGlnCnZhbGlkYXRlLmNhbnRiZW51bGw9ezB9IG1hZyBuaWV0IGxlZWcgemlqbgoKIyBVc2VyUHJvZmlsZVRhZwoKdXNlcnByb2ZpbGUubm9ncm91cHM9KGdlZW4pCnVzZXJwcm9maWxlLm5vcm9sZXM9KGdlZW4pCgojIE5ld0dyb3VwLmpzcApuZXdncm91cC5leGlzdHM9R3JvZXAgezB9IGJlc3RhYXQgcmVlZHMuIFByb2JlZXIgZWVuIGFuZGVyZSBuYWFtLgoKIyBKU1BXaWtpTWFya3VwUGFyc2VyIAoKbWFya3VwcGFyc2VyLmVycm9yLmludmFsaWRzZXQgPSBGb3V0aWVmIFNFVCBjb21tYW5kbyBnZXZvbmRlbjogezB9Cm1hcmt1cHBhcnNlci5lcnJvci5ub2ludGVyd2lraXJlZiA9IEVyIGlzIGdlZW4gSW50ZXJXaWtpIGRlZmluaXRpZSBpbiBqc3B3aWtpLnByb3BlcnRpZXMgdm9vciAiezB9IiEKbWFya3VwcGFyc2VyLmVycm9yLnBhcnNlcmZhaWx1cmUgPSBGb3V0IGluIGRlIFBhcnNlcjogezB9Cm1hcmt1cHBhcnNlci5lcnJvci5qYXZhc2NyaXB0YXR0ZW1wdCA9IEZvdXQgaW4gamF2YXNjcmlwdCBnZW5lcmF0aWUhIAptYXJrdXBwYXJzZXIubGluay5jcmVhdGUgPSBDcmVhdGUgInswfSIKCiMgQ2FwdGNoYS5qc3AKY2FwdGNoYS5qcy5odW1hbmNoZWNrY29tcGxldGUuYWxlcnQ9S2llcyBkZSBrYXR0ZW4uCmNhcHRjaGEuZGVzY3JpcHRpb249V2UgZGVua2VuIGRhdCBqZSBlZW4gcm9ib3Qgb2YgZWVuIHNwYW1tZXIgYmVudC4gIEt1biBqZSBoaWVyb25kZXIgZGUga2F0dGVuIHNlbGVjdGVyZW5cCiAgICAgICAgICAgICAgICAgICAgLCB6b2RhdCB3ZSB6ZWtlciB3ZXRlbiBkYXQgamUgZWVuIG1lbnMgYmVudCA/CmNhcHRjaGEuYXNpcnJhLnBsZWFzZS5zZWxlY3Q9U2VsZWN0ZWVyIGFsbGUga2F0IGZvdG8nczoKY2FwdGNoYS5hc2lycmEuYWRvcHQubWU9QWRvcHRlZXIgbWUKY2FwdGNoYS5zdWJtaXQ9U3VibWl0CgojIEluc3RhbGwuanNwCmluc3RhbGwuanNwLnRpdGxlPUpTUFdpa2kgSW5zdGFsbGVyCmluc3RhbGwuanNwLmludHJvLnRpdGxlPUpTUFdpa2kgSW5zdGFsbGVyCmluc3RhbGwuanNwLmludHJvLnAxPVdlbGtvbSEgIERlemUga2xlaW5lIEpTUCBoZWxwdCBqZSBkb29yIGRlIGVlcnN0ZSBtb2VpbGlqa2UgZmFzZSB2YW4gSlNQV2lraSBcCiAgICAgICAgICAgICAgICAgICAgIGluc3RhbGxhdGllLiAgQWxzIGplIGRlemUgcGFnaW5hIHppZXQsIGRhbiBoZWIgamUgSlNQV2lraSBhbCBjb3JyZWN0IGdlaW5zdGFsbGVlcmQgXAogICAgICAgICAgICAgICAgICAgICBpbiBqZSAod2ViKWNvbnRhaW5lci4KaW5zdGFsbC5qc3AuaW50cm8ucDI9RXIgemlqbiBlZW4gYWFudGFsIGRpbmdlbiBkaWUgamUgbW9ldCBjb25maWd1cmVyZW4uICBBbHMgamUgc3VibWl0IGtsaWt0ICwgemFsIGRlIHN0YW5kYWFyZCBcCiAgICAgICAgICAgICAgICAgICAgIDxjb2RlPmpzcHdpa2kucHJvcGVydGllczwvY29kZT4gZmlsZSB3b3JkZW4gZ2V3aWp6aWdkLCBvZiBhbHMgaWUgXAogICAgICAgICAgICAgICAgICAgICBuaWV0IGdldm9uZGVuIGthbiB3b3JkZW4sIHphbCBlciBlZW4gaGFnZWxuaWV1d2Ugd29yZGVuIGdlbWFha3QuCmluc3RhbGwuanNwLmludHJvLnAzPURpdCBzZXR1cCBzeXN0ZWVtIGlzIGVjaHQgYmVkb2VsZCB2b29yIG1lbnNlbiBkaWUgbWV0ZWVuIGFhbiBkZSBzbGFnIHdpbGxlbi4gXAogICAgICAgICAgICAgICAgICAgICBBbHMgamUgSlNQV2lraSB3aWx0IGludGVncmVyZW4gaW4gZWVuIGJlc3RhYW5kZSBvbWdldmluZywgZGFuIHJhYWQgaWsgdG9jaCBhYW4gb20gZGUgZmlsZSBcCiAgICAgICAgICAgICAgICAgICAgICA8Y29kZT5qc3B3aWtpLnByb3BlcnRpZXM8L2NvZGU+IHplbGYgbWV0IGhldCBoYW5kamUgdGUgd2lqemlnZW4uICBKZSB2aW5kdCBlZW4gdm9vcmJlZWxkIGluIFwKICAgICAgICAgICAgICAgICAgICAgPGNvZGU+eW91cndpa2kvV0VCLUlORi88L2NvZGU+LgppbnN0YWxsLmpzcC5pbnN0YWxsLmluZm89R29lZCBuaWV1d3M6IAppbnN0YWxsLmpzcC5pbnN0YWxsLndhcm5pbmc9V2FhcnNjaHV3aW5nOiAKaW5zdGFsbC5qc3AuaW5zdGFsbC5lcnJvcj1Lb24gZGUgY29uZmlndXJhdGllIG5pZXQgb3BzbGFhbjogCmluc3RhbGwuanNwLmluc3RhbGwubXNnLnJuZC5wd2Q9T21kYXQgZXIgbm9nIGdlZW4gYWRtaW5pc3RyYXRvciBhY2NvdW50IGJlc3RhYXQsIGhlZWZ0IEpTUFdpa2kgZXIgZWVuIHZvb3IgamUgZ2VtYWFrdCwgbWV0IGVlbiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFuZG9tIHdhY2h0d29vcmQuIEplIGthbiBkaXQgbmF0dXVybGlqayBsYXRlciB6ZWxmIHdpanppZ2VuLiBIZXQgYWNjb3VudCBpcyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgezB9IGVuIGhldCAgd2FjaHR3b29yZCBpcyB7MX0uIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTY2hyaWpmIGRpdCBldmVuIG9wIGVlbiBrbGFkamUgZW4gYmV3YWFyIGhldC4uIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKU1BXaWtpIGhlZWZ0IG9vayBlZW4gZ3JvZXAgYWFuZ2VtYWFrdCBtZXQgZGUgbmFhbSB7Mn0gd2FhciBkZXplIHVzZXIgbGlkIHZhbiBpcy4KaW5zdGFsbC5qc3AuaW5zdGFsbC5tc2cuYWRtaW4ubm90ZXhpc3RzPUlzIGRpdCBkZSBlZXJzdGUga2VlciBkYXQgamUgZGUgSW5zdGFsbGVyIGRyYWFpdCA/IFpvamEsIGRhbiBtb2V0IGplIHdldGVuIGRhdCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYWRhdCBKU1BXaWtpIGplIGNvbmZpZ3VyYXRpZSB2b29yIGRlIGVlcnN0ZSBrZWVyIGhlZWZ0IGdldmFsaWRlZXJkIGVuIG9wZ2VzbGFnZW4sIGplIGFkbWluaXN0cmF0aWV2ZSByZWNodGVuIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGlnIGhlYnQgb20gZGV6ZSBwYWdpbmEgdGUgYmVuYWRlcmVuLiBEaXQgZG9lbiB3ZSBvbSB0ZSB2b29ya29tZW4gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0IHdpbGxla2V1cmlnZSBvbnZlcmxhdGVuIGlldHMgZW5ncyBtZXQgamUgd2lraSBkb2VuLiAgIAoKaW5zdGFsbC5qc3AuYmFzaWNzLnRpdGxlPUJhc2ljcwppbnN0YWxsLmpzcC5iYXNpY3MuYXBwbmFtZS5sYWJlbD1BcHBsaWNhdGllIG5hYW0KaW5zdGFsbC5qc3AuYmFzaWNzLmFwcG5hbWUuZGVzYz1Ib2UgbW9ldCBqZSB3aWtpIGhldGVuID8gIFByb2JlZXIgZGV6ZSBuYWFtIHppbnZvbCBlbiBrb3J0IHRlIGhvdWRlbi4uCmluc3RhbGwuanNwLmJhc2ljcy5iYXNldXJsLmxhYmVsPUJhc2UgVVJMCmluc3RhbGwuanNwLmJhc2ljcy5iYXNldXJsLmRlc2M9VmVydGVsIEpTUFdpa2kgd2FhciBqZSB3aWtpIHppY2ggYmV2aW5kdC4KaW5zdGFsbC5qc3AuYmFzaWNzLnBhZ2Uuc3RvcmFnZS5sYWJlbD1QYWdpbmEgb3BzbGFnCmluc3RhbGwuanNwLmJhc2ljcy5wYWdlLnN0b3JhZ2UuZGVzYz1TdGFuZGFhcmQgZ2VicnVpa3QgSlNQV2lraSBkZSBWZXJzaW9uaW5nRmlsZVByb3ZpZGVyIGRpZSBmaWxlcyBvcHNsYWF0IGluIGVlbiBkaXJlY3Rvcnkgb3Agc2NoaWpmIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFscyBqZSBlZW4gZGlyZWN0b3J5IG9wZ2VlZnQgZGllIG5pZXQgYmVzdGFhdCwgemFsIEpTUFdpa2kgZXIgZWVuIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvb3IgamUgYWFubWFrZW4uIEFsbGUgYXR0YWNobWVudHMgd29yZGVuIG9vayBpbiBkZXplIGRpcmVjdG9yeSBvcGdlc2xhZ2VuLgoKaW5zdGFsbC5qc3Auc2VjdXJpdHkudGl0bGU9U2VjdXJpdHkKaW5zdGFsbC5qc3Auc2VjdXJpdHkuc2VjLmNvbmYubGFiZWw9U2VjdXJpdHkgY29uZmlndXJhdGllCmluc3RhbGwuanNwLnNlY3VyaXR5LnNlYy5jb25mLm9wdDE9SkFBUyBlbiBjb250YWluZXIgc2VjdXJpdHkgKHN0YW5kYWFyZCkKaW5zdGFsbC5qc3Auc2VjdXJpdHkuc2VjLmNvbmYub3B0Mj1BbGxlZW4gQ29udGFpbmVyIHNlY3VyaXR5Cmluc3RhbGwuanNwLnNlY3VyaXR5LnNlYy5jb25mLmRlc2M9U3RhbmRhYXJkIHphbCBKU1BXaWtpIGRlIHRvZWdhbmcgYmVoZXJlbiB2aWEgZWVuIEpBQVMtYmFzZWQgc2VjdXJpdHkgc3lzdGVlbS4gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhldCBob3VkdCBvb2sgcmVrZW5pbmcgbWV0IGNvbnRhaW5lciBzZWN1cml0eSBiZXBlcmtpbmdlbiwgbW9jaHQgamUgZGllIGhlYmJlbiwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFscyBqZSB6ZSBiLnYuIGVuYWJsZWQgaGVidCBpbiBkZSA8Y29kZT53ZWIueG1sPC9jb2RlPi4gQWxzIGplICBKQUFTIHNlY3VyaXR5IHVpdHpldCwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGthbiBoZXQgemlqbiBkYXQgSlNQV2lraSBuaWV0IGhlbGVtYWFsIHdlcmt0IHpvYWxzIHZlcndhY2h0LiBKZSBrYW4gZGl0IGFmIGVuIHRvZSBkb2VuIG9tIHRlIHRyb3VibGVzaG9vdGVuLgppbnN0YWxsLmpzcC5zZWN1cml0eS5hZG1hY2NvdW50LmxhYmVsPUFkbWluaXN0cmF0b3IgYWNjb3VudAppbnN0YWxsLmpzcC5zZWN1cml0eS5hZG1hY2NvdW50LmVuYWJsZWQ9RW5hYmxlZAppbnN0YWxsLmpzcC5zZWN1cml0eS5hZG1hY2NvdW50Lm5vdGVuYWJsZWQ9TmlldCBFbmFibGVkCmluc3RhbGwuanNwLnNlY3VyaXR5LmFkbWFjY291bnQuZW5hYmxlZC5kZXNjPURlemUgd2lraSBoZWVmdCBlZW4gYWRtaW5pc3RyYXRvciBhY2NvdW50IGdlbmFhbWQgPHN0cm9uZz5hZG1pbjwvc3Ryb25nPiBkaWUgbGlkIGlzIHZhbiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlIHdpa2kgZ3JvZXAgPHN0cm9uZz5BZG1pbjwvc3Ryb25nPi4gU3RhbmRhYXJkIHphbCBKU1BXaWtpJ3Mgc2VjdXJpdHkgcG9saWN5IGFsbGUgbGVkZW4gdmFuIGRlIEFkbWluIGdyb2VwIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGUga3JhY2h0aWdlIDxjb2RlPkFsbFBlcm1pc3Npb248L2NvZGU+IHRvZWtlbm5lbi4KaW5zdGFsbC5qc3Auc2VjdXJpdHkuYWRtYWNjb3VudC5ub3RlbmFibGVkLmRlc2M9SGV0IGxpamt0IGVyIG9wIGRhdCBkZXplIHdpa2kgZ2VlbiBhZG1pbmlzdHJhdG9yIGFjY291bnQgaGVlZnQuIEFscyBqZSA8ZW0+Q29uZmlndXJlITwvZW0+LFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2xpa3QsIHphbCBKU1BXaWtpIGVyIGVlbiB2b29yIGplIG1ha2VuLgoKaW5zdGFsbC5qc3AuYWR2LnNldHRpbmdzLnRpdGxlPUFkdmFuY2VkIFNldHRpbmdzCmluc3RhbGwuanNwLmFkdi5zZXR0aW5ncy5sb2dmaWxlLmxhYmVsPUxvZyBmaWxlcwppbnN0YWxsLmpzcC5hZHYuc2V0dGluZ3MubG9nZmlsZS5kZXNjPUpTUFdpa2kgZ2VicnVpa3QgSmFrYXJ0YSBMb2c0aiB2b29yIGxvZ2dpbmcuICBWZXJ0ZWwgSlNQV2lraSB3YWFyIGRlIGxvZyBmaWxlcyB0ZXJlY2h0IG1vZXRlbiBrb21lbi4KaW5zdGFsbC5qc3AuYWR2LnNldHRpbmdzLndvcmtkaXIubGFiZWw9V29yayBkaXJlY3RvcnkKaW5zdGFsbC5qc3AuYWR2LnNldHRpbmdzLndvcmtkaXIuZGVzYz1EaXQgaXMgZGUgcGxlayB3YWFyIGFsbGUgY2FjaGVzIGVuIGFuZGVyZSBydW50aW1lIHNwdWxsZW4gd29yZGVuIG9wZ2VzbGFnZW4uCmluc3RhbGwuanNwLmluc3RyLmRlc2M9QWxzIGplIG9wIDxlbT5Db25maWd1cmUhPC9lbT4ga2xpa3QsIHphbCBkZSBJbnN0YWxsZXIgamUgaW5zdGVsbGluZyBvcHNsYWFuIGluIDxjb2RlPnswfTwvY29kZT4uIFwKICAgICAgICAgICAgICAgICAgICAgICBIaWogemFsIG9vayBlZW4gQWRtaW5pc3RyYXRvciBhY2NvdW50IG1ldCBlZW4gcmFuZG9tIHdhY2h0d29vcmQgZW4gZWVuIEFkbWluIGdyb3VwIGFhbm1ha2VuLiAKaW5zdGFsbC5qc3AuaW5zdHIuc3VibWl0PUNvbmZpZ3VyZWVyIQppbnN0YWxsLmpzcC52YWxpZGF0ZWQubmV3LnByb3BzPUhpZXIgaXMgamUgaGFnZWxuaWV1d2UganNwd2lraS5wcm9wZXJ0aWVzCgojIEluc3RhbGxlci5qYXZhCmluc3RhbGwuaW5zdGFsbGVyLnVuYWJsZS5yZWFkLnByb3BzPUthbiBkZSBwcm9wZXJ0aWVzIG5pZXQgbGV6ZW46IHswfQppbnN0YWxsLmluc3RhbGxlci5kZWZhdWx0LmFwcG5hbWU9TWlqbldpa2kKaW5zdGFsbC5pbnN0YWxsZXIuZGVmYXVsdC5wYWdlZGlyPUNvbmZpZ3VyZWVyIG1paiEKaW5zdGFsbC5pbnN0YWxsZXIucHJvcHMuc2F2ZWQ9SmUgbmlldXdlIHByb3BlcnRpZXMgemlqbiBvcGdlc2xhZ2VuLiAgSGVyc3RhcnQgamUgY29udGFpbmVyIChiZWhhbHZlIHdhbm5lZXIgZGl0IGplIGVlcnN0ZSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc3RhbGxhdGllIHdhcykuICBTY3JvbGwgbmFhciBiZW5lZGVuIG9tIGplIG5pZXV3ZSBqc3B3aWtpLnByb3BlcnRpZXMgdGUgemllbi4KaW5zdGFsbC5pbnN0YWxsZXIucHJvcHMubm90c2F2ZWQ9S2FuIGRlIHByb3BlcnRpZXMgbmlldCB3ZWdzY2hyaWp2ZW46IHswfS4gU2xhIG9uZGVyc3RhYW5kZSBmaWxlIG9wIGFscyBqc3B3aWtpLnByb3BlcnRpZXM6XG57MX0KaW5zdGFsbC5pbnN0YWxsZXIudmFsaWRhdGUuYmFzZXVybD1KZSBtb2V0IGRlIGJhc2UgVVJMIHZvb3IgZGV6ZSB3aWtpIGRlZmluaWVyZW4uCmluc3RhbGwuaW5zdGFsbGVyLnZhbGlkYXRlLnBhZ2VkaXI9SmUgbW9ldCBkZSBwbGVrIGNvbmZpZ3VyZXJlbiB3YWFyIGRlIHBhZ2luYSdzIG1vZXRlbiB3b3JkZW4gb3BnZXNsYWdlbi4KaW5zdGFsbC5pbnN0YWxsZXIudmFsaWRhdGUuYXBwbmFtZT1KZSBtb2V0IGRlIGFwcGxpY2F0aWUgbmFhbSBvcGdldmVuCmluc3RhbGwuaW5zdGFsbGVyLnZhbGlkYXRlLndvcmtkaXI9SmUgbW9ldCBkZSB3b3JrIGRpcmVjdG9yeSBvcGdldmVuLgppbnN0YWxsLmluc3RhbGxlci52YWxpZGF0ZS5sb2dkaXI9SmUgbW9ldCBkZSBsb2cgZGlyZWN0b3J5IG9wZ2V2ZW4u