ICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogID0gICAgVyBlIGwgayBvIG0gICBiIGkgaiAgIGQgZSAgIFYgSSBNICAgbCBlIHMgcyBlIG4gICAtICAgVmVyc2llIDEuNyAgICA9CiAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCiAgVmltIGlzIGVlbiBrcmFjaHRpZ2UgZWRpdG9yIG1ldCB2ZWVsIGNvbW1hbmRvJ3MsIHRlIHZlZWwgb20gdWl0IHRlIGxlZ2dlbgogIGluIGxlc3NlbiB6b2FscyBkZXplLiBEZXplIGxlc3NlbiB6aWpuIGJlZG9lbGQgb20gdm9sZG9lbmRlIGNvbW1hbmRvJ3MgdGUKICBiZWhhbmRlbGVuIG9tIGplIGluIHN0YWF0IHRlIHN0ZWxsZW4gbWV0IFZpbSB0ZSB3ZXJrZW4gYWxzIGVlbiBlZGl0b3Igdm9vcgogIGFsZ2VtZWVuIGdlYnJ1aWsuCgogIERlemUgbGVzc2VuIHp1bGxlbiAyNSB0b3QgMzAgbWludXRlbiBpbiBiZXNsYWcgbmVtZW4sIGFmaGFua2VsaWprIHZhbiBkZQogIHRpamQgZGllIHdvcmR0IGJlc3RlZWQgYWFuIGhldCB1aXRwcm9iZXJlbiB2YW4gZGUgY29tbWFuZG8ncy4KCiAgTEVUIE9QOgogIERvb3IgZGUgY29tbWFuZG8ncyBpbiBkZXplIGxlc3NlbiB2ZXJhbmRlcnQgZGUgdGVrc3QuIE1hYWsgZWVuIGtvcGllIHZhbgogIGRpdCBiZXN0YW5kIG9tIG1lZSB0ZSBvZWZlbmVuIChhbHMgamUgInZpbXR1dG9yIiB1aXR2b2VyZGUsIGlzIGRpdCBhbCBlZW4KICBrb3BpZSkuCgogIERlemUgbGVzc2VuIHppam4gYmVkb2VsZCBvbSBhbCBkb2VuZGUgdGUgbGVyZW4uIERhdCBiZXRla2VudCBkYXQgamUgZGUKICBjb21tYW5kbydzIG1vZXQgdWl0dm9lcmVuIG9tIHplIGdvZWQgdGUgbGVyZW4ga2VubmVuLiBBbHMgamUgZGUgdGVrc3QKICBhbGxlZW4gbWFhciBkb29ybGVlc3QsIHphbCBqZSBkZSBjb21tYW5kbydzIG5pZXQgbGVyZW4hCgogIFpvcmcgZXJ2b29yIGRhdCBkZSA8Q2FwcyBMb2NrPiB0b2V0cyBOSUVUIGlzIGluZ2VkcnVrdCBlbiBkcnVrIHZhYWsgZ2Vub2VnCiAgb3AgZGUgai10b2V0cyBvbSBkZSBjdXJzb3Igem8gdGUgYmV3ZWdlbiBkYXQgbGVzIDEuMSB2b2xsZWRpZyBvcCBoZXQKICBzY2hlcm0gc3RhYXQuCgogIExFVCBPUDogSW4gZGV6ZSBsZXNzZW4gd29yZGVuIG9td2lsbGUgdmFuIGRlIGR1aWRlbGlqa2hlaWQgdmFhayBzcGF0aWVzCiAgZ2VicnVpa3QgYmlubmVuIGVlbiBjb21tYW5kbyAoYnYuICI0MCBHIiBvZiAib3BlcmF0b3IgW2dldGFsXSBiZXdlZ2luZyIpLgogIFRpayBkZXplIHNwYXRpZXMgZWNodGVyIE5JRVQuIFplIHZlcnN0b3JlbiBkZSB3ZXJraW5nLgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KICAgICAgICAgICAgICAgICAgIExlcyAxLjE6ICBWRVJQTEFBVFMgREUgQ1VSU09SCgogICoqIERlIGN1cnNvciB3b3JkdCB2ZXJwbGFhdHN0IG1ldCBkZSB0b2V0c2VuIGgsIGosIGssIGwgem9hbHMgYWFuZ2VnZXZlbi4gKioKICAgICAgICAgIF4KICAgICAgICAgIGsgICAgICAgSGludDogIERlIGggaXMgZGUgbWVlc3QgbGlua3NlIGVuIGJld2VlZ3QgbmFhciBsaW5rcy4KICAgICAgPCBoICAgbCA+ICAgICAgICAgIERlIGwgaXMgZGUgbWVlc3QgcmVjaHRzZSBlbiBiZXdlZWd0IG5hYXIgcmVjaHRzLgogICAgICAgICAgaiAgICAgICAgICAgICAgRGUgaiBsaWprdCBvcCBlZW4gcGlqbCBuYWFyIGJlbmVkZW4uCiAgICAgICAgICB2CgogIDEuIEJld2VlZyBkZSBjdXJzb3Igb3ZlciBoZXQgc2NoZXJtIG9tIGVyIHZlcnRyb3V3ZCBtZWUgdGUgcmFrZW4uCgogIDIuIERydWsgZGUgb21sYWFnLXRvZXRzIChqKSB0b3QgaGlqIHJlcGV0ZWVydC4KICAgICBOdSB3ZWV0IGplIGhvZSBqZSBkZSB2b2xnZW5kZSBsZXMgYmVyZWlrdC4KCiAgMy4gR2VicnVpayBkZSBvbWxhYWctdG9ldHMgb20gbmFhciBsZXMgMS4yIHRlIGdhYW4uCgogIE9QTUVSS0lORzogQWxzIGplIHR3aWpmZWx0IGFhbiB3YXQgamUgdGlrdGUsIGRydWsgPEVTQz4gb20gaW4gZGUgb3BkcmFjaHQtCiAgICAgICAgICAgICBtb2R1cyB0ZSBrb21lbi4gVGlrIGRhYXJuYSBoZXQgY29tbWFuZG8gZGF0IGJlZG9lbGQgd29yZHQuCgogIE9QTUVSS0lORzogUGlqbHRqZXMtdG9ldHNlbiB3ZXJrZW4gb29rLiBNZXQgZGUgaGprbC10b2V0c2VuIGthbiBqZSBzbmVsbGVyCiAgICAgICAgICAgICByb25kYmV3ZWdlbiwgYWxzIGplIGVyIGVlbm1hYWwgYWFuIGdld2VuZCBiZW50LiBFY2h0IHdhYXIhCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogICAgICAgICAgICAgICAgICAgTGVzIDEuMjogVklNIEFGU0xVSVRFTgoKICAgICAgISEgTEVUIE9QOiBMZWVzIGRlemUgbGVzIGdvZWQgZG9vciB2b29yZGF0IGplIGlldHMgdWl0dm9lcnQhIQoKICAxLiBEcnVrIGRlIDxFU0M+IHRvZXRzIChvbSB6ZWtlciBpbiBkZSBvcGRyYWNodG1vZHVzIHRlIHppdHRlbikuCgogIDIuIFRpayAgIDpxISA8RU5URVI+CiAgICAgSGllcm1lZSB3b3JkdCBkZSBlZGl0b3IgYWZnZXNsb3Rlbi4gQWxsZSB2ZXJhbmRlcmluZ2VuIGdhYW4gVkVSTE9SRU4uCgogIDMuIE51IHppZSBqZSBkZSBzaGVsbC1wcm9tcHQuIFRpayBoZXQgY29tbWFuZG8gd2Fhcm1lZSBqZSBkZXplIGxlc3NlbgogICAgIGhlYnQgb3BnZXJvZXBlbi4gRGF0IGlzIG5vcm1hYWwgZ2VzcHJva2VuOiAgdmltdHV0b3IgPEVOVEVSPgoKICA0LiBBbHMgamUgZGV6ZSBzdGFwcGVuIGdvZWQgaGVidCBkb29yZ2VsZXplbiwgdm9lciBkYW4gZGUgc3RhcHBlbiAxIHRvdCAzCiAgICAgdWl0IG9tIGRlIGVkaXRvciB0ZSB2ZXJsYXRlbiBlbiB3ZWVyIG9wIHRlIHN0YXJ0ZW4uCgogIExFVCBPUDogOnEhIDxFTlRFUj4gdmVyd2VycHQgYWxsZSB2ZXJhbmRlcmluZ2VuIGRpZSBqZSBhYW5icmFjaHQuIEVlbiBwYWFyCiAgICAgICAgICBsZXNzZW4gdmVyZGVyIHphbCBqZSBsZXJlbiBob2UgdmVyYW5kZXJpbmdlbiB3b3JkZW4gb3BnZXNsYWdlbiBpbgogICAgICAgICAgZWVuIGJlc3RhbmQuCgogIDUuIEJld2VlZyBkZSBjdXJzb3Igb21sYWFnIG5hYXIgbGVzIDEuMy4KCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgICAgICAgICAgICAgICAgICBMZXMgMS4zOiBURUtTVCBCRVdFUktFTiAtIFdJU1NFTgoKICAgICAgICAgICoqIFRpayAgeCAgb20gaGV0IHRla2VuIG9uZGVyIGRlIGN1cnNvciB0ZSB3aXNzZW4uICoqCgogIDEuIEdhIG1ldCBkZSBjdXJzb3IgbmFhciBkZSByZWdlbCB2ZXJkZXJvcCBtZXQgLS0tPi4KCiAgMi4gWmV0IGRlIGN1cnNvciBvcCBlZW4gdGVrZW4gZGF0IG1vZXQgd29yZGVuIGdld2lzdCBvbSBlZW4gZm91dCB0ZQogICAgIGhlcnN0ZWxsZW4uCgogIDMuIFRpayAgeCAgb20gaGV0IG9uZ2V3ZW5zdGUgdGVrZW4gdGUgd2lzc2VuLgoKICA0LiBIZXJoYWFsIGRlemUgc3RhcHBlbiB0b3QgZGUgcmVnZWwgZ29lZCBpcy4KCiAgLS0tPiBWaSBra2VudCBlZW5uIG9wZHJhY2NjY2h0bW9kdXMgZW4gZWVuIGludm9vZWdtbW1tb2R1cy4KCiAgNS4gTnUgZGUgcmVnZWwgZ2Vjb3JyaWdlZXJkIGlzIGthbiBqZSBuYWFyIGxlcyAxLjQgZ2Fhbi4KCiAgTEVUIE9QOiBQcm9iZWVyIGRlIGxlc3NlbiBuaWV0IHVpdCBqZSBob29mZCB0ZSBsZXJlbi4gTGVlciBhbCBkb2VuZGUuCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogICAgICAgICAgICAgICAgICAgTGVzIDEuNDogVEVLU1QgQkVXRVJLRU4gLSBJTlZPRUdFTgoKICAgICAgICAgICAgICAqKiBUaWsgIGkgICgnaW5zZXJ0Jykgb20gdGVrc3QgaW4gdGUgdm9lZ2VuLiAqKgoKICAxLiBHYSBtZXQgZGUgY3Vyc29yIG5hYXIgZGUgZWVyc3RlIHJlZ2VsIHZlcmRlcm9wIG1ldCAtLS0+LgoKICAyLiBNYWFrIGRlIGVlcnN0ZSByZWdlbCBnZWxpamsgYWFuIGRlIHR3ZWVkZS4gWmV0IGRhYXJ2b29yIGRlIGN1cnNvciBvcAogICAgIGRlIHBsYWF0cyB3YWFyIHRla3N0IG1vZXQgd29yZGVuIGluZ2V2b2VnZC4KCiAgMy4gVGlrICBpICBlbiBkYWFybmEgZGUgbm9kaWdlIGFhbnZ1bGxpbmdlbi4KCiAgNC4gVGlrIDxFU0M+IG5hIGVsa2UgaGVyc3RlbGRlIGZvdXQgb20gdGVydWcgdGUga2VyZW4gaW4gZGUgb3BkcmFjaHRtb2R1cy4KICAgICBIZXJoYWFsIGRlIHN0YXBwZW4gMiB0b3QgNCBvbSBkZSB6aW4gdGUgdmVyYmV0ZXJlbi4KCiAgLS0tPiBBYW4gcmVnZWwgb250ZWt0IHdhdCAuCiAgLS0tPiBBYW4gZGV6ZSByZWdlbCBvbnRicmVla3Qgd2F0IHRla3N0LgoKICA1LiBHYSBuYWFyIGxlcyAxLjUgYWxzIGplIGdld2VuZCBiZW50IGFhbiBoZXQgaW52b2VnZW4gdmFuIHRla3N0LgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KICAgICAgICAgICAgICAgICAgIExlcyAxLjU6IFRFS1NUIEJFV0VSS0VOIC0gVE9FVk9FR0VOCgogICAgICAgICAgICAgKiogVGlrICBBICAoJ2FwcGVuZCcpIG9tIHRla3N0IHRvZSB0ZSB2b2VnZW4uICoqCgogIDEuIEdhIG1ldCBkZSBjdXJzb3IgbmFhciBkZSBlZXJzdGUgcmVnZWwgdmVyZGVyb3AgbWV0IC0tLT4uCiAgICAgSGV0IG1hYWt0IG5pZXQgdWl0IHdhYXIgZGUgY3Vyc29yIGluIGRlemUgcmVnZWwgc3RhYXQuCgogIDIuIFRpayBob29mZGxldHRlciAgQSAgZW4gdGlrIGRlIG5vZGlnZSBhYW52dWxsaW5nZW4uCgogIDMuIFRpayA8RVNDPiBuYWRhdCBkZSB0ZWtzdCBpcyBhYW5nZXZ1bGQuIFpvIGtlZXIgamUgdGVydWcgaW4gZGUKICAgICBvcGRyYWNodG1vZHVzLgoKICA0LiBHYSBuYWFyIGRlIHR3ZWVkZSByZWdlbCB2ZXJkZXJvcCBtZXQgLS0tPiBlbiBoZXJoYWFsIHN0YXAgMiBlbiAzCiAgICAgb20gZGV6ZSB6aW4gdGUgY29ycmlnZXJlbi4KCiAgLS0tPiBFciBvbnRicmVla3Qgd2F0IHRla3N0IGFhbiBkZQogICAgICAgRXIgb250YnJlZWt0IHdhdCB0ZWtzdCBhYW4gZGV6ZSByZWdlbC4KICAtLS0+IEhpZXIgb250YnJlZWt0IG9vayB3CiAgICAgICBIaWVyIG9udGJyZWVrdCBvb2sgd2F0IHRla3N0LgoKICA1LiBHYSBuYWFyIGxlcyAxLjYgYWxzIGplIHZlcnRyb3V3ZCBiZW50IGdlcmFha3QgYWFuIGhldCB0b2V2b2VnZW4KICAgICB2YW4gdGVrc3QuCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogICAgICAgICAgICAgICAgICAgTGVzIDEuNjogRUVOIEJFU1RBTkQgRURJVFRFTgoKICAgICoqIEdlYnJ1aWsgIDp3cSAgb20gZWVuIGJlc3RhbmQgb3AgdGUgc2xhYW4gZW4gZGUgZWRpdG9yIHRlIHZlcmxhdGVuLiAqKgoKICAhISBMRVQgT1A6IExlZXMgZGV6ZSBsZXMgaGVsZW1hYWwgZG9vciB2b29yZGF0IGplIGVlbiB2YW4gZGUgdm9sZ2VuZGUKICAgICAgICAgICAgIHN0YXBwZW4gdWl0dm9lcnQhIQoKICAxLiBWZXJsYWF0IGRlemUgbGVzIHpvYWxzIGplIGluIGxlcyAxLjIgZGVlZDogIDpxIQogICAgIE9mIGdlYnJ1aWsgZWVuIGFuZGVyZSB0ZXJtaW5hbCBhbHMgamUgZGFhciBkZSBiZXNjaGlra2luZyBvdmVyIGhlYnQuIERvZQogICAgIGRhYXIgaGV0IHZvbGdlbmRlLgoKICAyLiBUaWsgaGV0IHZvbGdlbmRlIGNvbW1hbmRvIG5hIGRlIHNoZWxsLXByb21wdDogIHZpbSBsZXMgPEVOVEVSPgogICAgICd2aW0nICh2YWFrIG9vayAndmknKSBpcyBoZXQgY29tbWFuZG8gb20gZGUgVmltLWVkaXRvciB0ZSBzdGFydGVuLAogICAgICdsZXMnIGlzIGRlIG5hYW0gdmFuIGhldCBiZXN0YW5kLCBkYXQgamUgZ2FhdCBiZXdlcmtlbi4gS2llcyBlZW4gYW5kZXJlCiAgICAgbmFhbSBhbHMgZXIgYWwgZWVuIGJlc3RhbmQgJ2xlcycgYmVzdGFhdCwgZGF0IG5pZXQgdmVyYW5kZXJkIG1hZyB3b3JkZW4uCgogIDMuIFZvZWcgbmFhciBlaWdlbiBrZXVzIHRla3N0IHRvZSwgem9hbHMgamUgZ2VsZWVyZCBoZWJ0IGluIGVlcmRlcmUgbGVzc2VuLgoKICA0LiBTbGEgaGV0IGJlc3RhbmQgbWV0IGRlIHdpanppZ2luZ2VuIG9wIGVuIHZlcmxhYXQgVmltIG1ldCAgOndxIDxFTlRFUj4KCiAgNS4gSGVyc3RhcnQgdmltdHV0b3IgYWxzIGplIGRlemUgYmlqIHN0YXAgMSBoZWJ0IHZlcmxhdGVuIGVuIGdhIHZlcmRlciBtZXQKICAgICBkZSB2b2xnZW5kZSBzYW1lbnZhdHRpbmcuCgogIDYuIFZvZXIgZGV6ZSBzdGFwcGVuIHVpdCBuYWRhdCBqZSB6ZSBoZWJ0IGdlbGV6ZW4gZW4gYmVncmVwZW4uCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogICAgICAgICAgICAgICAgICAgU0FNRU5WQVRUSU5HIExlcyAxCgogIDEuIERlIGN1cnNvciB3b3JkdCBiZXdvZ2VuIG1ldCBkZSBwaWpsdGplc3RvZXRzZW4gb2YgZGUgaGprbC10b2V0c2VuLgogICAgICAgaCAobGlua3MpICAgaiAob21sYWFnKSAgayAob21ob29nKSAgbCAocmVjaHRzKQoKICAyLiBTdGFydCBWaW0gdmFuIGRlIHNoZWxsLXByb21wdC4gVGlrOiAgdmltIEJFU1RBTkRTTkFBTSA8RU5URVI+CgogIDMuIFNsdWl0IFZpbSBhZiBtZXQgIDxFU0M+IDpxISA8RU5URVI+ICBvbSBkZSB2ZXJhbmRlcmluZ2VuIHdlZyB0ZSBnb29pZW4uCiAgICAgICAgICAgICAgIE9GIHRpayAgPEVTQz4gOndxIDxFTlRFUj4gIG9tIGRlIHZlcmFuZGVyaW5nZW4gdGUgYmV3YXJlbi4KCiAgNC4gV2lzIGhldCB0ZWtlbiBvbmRlciBkZSBjdXJzb3IgbWV0OiAgeAoKICA1LiBJbnZvZWdlbiBvZiB0b2V2b2VnZW4gdmFuIHRla3N0LCB0aWs6CiAgICAgaSAgZW4gZGFhcm5hIGRlIGluIHRlIHZvZWdlbiB0ZWtzdCAgPEVTQz4gICB2b2VnIGluIHZhbmFmIGRlIGN1cnNvcgogICAgIEEgIGVuIGRhYXJuYSBkZSB0b2UgdGUgdm9lZ2VuIHRla3N0ICA8RVNDPiAgdm9lZyB0b2UgYWNodGVyIGRlIHJlZ2VsCgogIE9QTUVSS0lORzogTWV0IDxFU0M+IGtvbSBqZSB0ZXJ1ZyBpbiBvcGRyYWNodG1vZHVzIGVuIHdvcmR0IGVlbiBvbmdld2Vuc3QKICAgICAgICAgICAgIG9mIGdlZGVlbHRlbGlqayB1aXRnZXZvZXJkIGNvbW1hbmRvIGFmZ2Vicm9rZW4uCgogIEdhIG51IHZlcmRlciBtZXQgbGVzIDIuMS4KCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgICAgICAgICAgICAgICAgICBMZXMgMi4xOiBXSVMtQ09NTUFORE8nUwoKICAgICAgICoqIFRpayAgZHcgICgnZGVsZXRlIHdvcmQnKSBvbSBlZW4gd29vcmQgdGUgd2lzc2VuLiAqKgoKICAxLiBEcnVrIG9wIDxFU0M+IG9tIHpla2VyIGluIGRlIG9wZHJhY2h0bW9kdXMgdGUgemlqbi4KCiAgMi4gR2EgbmFhciBkZSByZWdlbCBoaWVyb25kZXIsIGRpZSBtZXQgLS0tPiBiZWdpbnQuCgogIDMuIEdhIG1ldCBkZSBjdXJzb3IgbmFhciBoZXQgYmVnaW4gdmFuIGVlbiB3b29yZCBkYXQgbW9ldCB3b3JkZW4gZ2V3aXN0LgoKICA0LiBNZXQgaGV0IHRpa2tlbiB2YW4gIGR3ICB2ZXJkd2lqbnQgaGV0IHdvb3JkLgoKICBPUE1FUktJTkc6IERlIGxldHRlciAgZCAgdmVyc2NoaWpudCBvcCBkZSBsYWF0c3RlIHJlZ2VsIHZhbiBoZXQgc2NoZXJtCiAgICAgICAgICAgICB6b2RyYSBqZSBoZW0gdGlrdC4gVmltIGlzIGFhbiBoZXQgd2FjaHRlbiB0b3QgamUgZGUgIHcgIHRpa3QuCiAgICAgICAgICAgICBBbHMgamUgZWVuIGFuZGVyIHRla2VuIGRhbiAgZCAgemlldCwgaGViIGplIGlldHMgdmVya2VlcmRzCiAgICAgICAgICAgICBnZXRpa3QuIERydWsgb3AgPEVTQz4gZW4gYmVnaW4gb3BuaWV1dy4KCiAgTk9HIEVFTiBPUE1FUktJTkc6IERpdCB3ZXJrdCBhbGxlZW4gYWxzIGRlIG9wdGllICdzaG93Y21kJyBpcyBpbmdlc2NoYWtlbGQuCiAgICAgICAgICAgICAgICAgICAgIERhdCBnZWJldXJ0IG1ldCAgOnNldCBzaG93Y21kIDxFTlRFUj4KCiAgLS0tPiBFciB6aWpuIGVlbiBoZXQgcGFhciBnZ2cgd29vcmRlbiwgZGllIG5pZXQgaW4gZGV6ZSBsZW4gemluIHRodWlzaG9yZW4uCgogIDUuIEhlcmhhYWwgZGUgc3RhcHBlbiAzIGVuIDQgdG90IGRlIHppbiBnb2VkIGlzIGVuIGdhIG5hYXIgbGVzIDIuMi4KCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgICAgICAgICAgICAgICAgICBMZXMgMi4yOiBNRUVSIFdJUy1DT01NQU5ETydTCgogICAgICAgICoqIFRpayAgZCQgIG9tIHRlIHdpc3NlbiB0b3QgaGV0IGVpbmRlIHZhbiBkZSByZWdlbC4gKioKCiAgMS4gRHJ1ayBvcCA8RVNDPiBvbSB6ZWtlciBpbiBkZSBvcGRyYWNodG1vZHVzIHRlIHppam4uCgogIDIuIEdhIG5hYXIgZGUgcmVnZWwgaGllcm9uZGVyLCBkaWUgbWV0IC0tLT4gYmVnaW50LgoKICAzLiBHYSBtZXQgZGUgY3Vyc29yIG5hYXIgaGV0IGVpbmRlIHZhbiBkZSBjb3JyZWN0ZSByZWdlbCAoTkEgZGUgZWVyc3RlICAuICkuCgogIDQuIFRpayAgZCQgIG9tIHRlIHdpc3NlbiB0b3QgaGV0IGVpbmRlIHZhbiBkZSByZWdlbC4KCiAgLS0tPiBJZW1hbmQgaGVlZnQgaGV0IGVpbmRlIHZhbiBkZXplIHJlZ2VsIGR1YmJlbCBnZXRpa3QuIGR1YmJlbCBnZXRpa3QuCgogIDUuIEdhIG5hYXIgbGVzIDIuMyB2b29yIHVpdGxlZy4KCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgICAgICAgICAgICAgICAgICBMZXMgMi4zOiBPVkVSIE9QRVJBVE9SRU4gRU4gQkVXRUdJTkdFTgoKICBWZWVsIGNvbW1hbmRvJ3MgZGllIGRlIHRla3N0IHZlcmFuZGVyZW4sIGJlc3RhYW4gdWl0IGVlbiBvcGVyYXRvciBlbiBlZW4KICBiZXdlZ2luZy4gRGUgc2FtZW5zdGVsbGluZyB2YW4gZWVuIHdpcy1jb21tYW5kbyBtZXQgZGUgb3BlcmF0b3IgIGQgIGlzOgogICAgZCAgYmV3ZWdpbmcKCiAgRGFhcmJpaiBpczoKICAgIGQgICAgICAgIC0gZGUgd2lzLW9wZXJhdG9yCiAgICBiZXdlZ2luZyAtIGhldCBiZXJlaWsgd2Fhcm9wIGRlIG9wZXJhdG9yIHdlcmt0ICh6aWUgaGV0IGxpanN0amUgaGllcm9uZGVyKQoKICBFZW4ga29ydGUgbGlqc3QgdmFuIGJld2VnaW5nZW4gdmFuYWYgZGUgY3Vyc29yOgogICAgdyAtIHRvdCBoZXQgYmVnaW4gdmFuIGhldCB2b2xnZW5kZSB3b29yZCwgWk9OREVSIGhldCBlZXJzdGUgdGVrZW4gZGFhcnZhbi4KICAgIGUgLSB0b3QgaGV0IGVpbmRlIHZhbiBoZXQgaHVpZGlnZSB3b29yZCwgSU5DTFVTSUVGIGhldCBsYWF0c3RlIHRla2VuLgogICAgJCAtIHRvdCBoZXQgZWluZGUgdmFuIGRlIHJlZ2VsLCBJTkNMVVNJRUYgaGV0IGxhYXRzdGUgdGVrZW4uCgogIEhldCB0aWtrZW4gdmFuICBkZSAgd2lzdCB0ZWtzdCB2YW5hZiBkZSBjdXJzb3IgdG90IGhldCBlaW5kIHZhbiBoZXQgd29vcmQuCgogIE9QTUVSS0lORzogSGV0IGludGlra2VuIHZhbiBhbGxlZW4gbWFhciBkZSBiZXdlZ2luZywgem9uZGVyIGVlbiBvcGVyYXRvciwKICAgICAgICAgICAgIGluIGRlIG9wZHJhY2h0bW9kdXMgYmV3ZWVndCBkZSBjdXJzb3IgKHJlc3BlY3RpZXZlbGlqayBuYWFyIGhldAogICAgICAgICAgICAgdm9sZ2VuZGUgd29vcmQsIG5hYXIgaGV0IGVpbmQgdmFuIGhldCBodWlkaWdlIHdvb3JkIGVuIG5hYXIgaGV0CiAgICAgICAgICAgICBlaW5kIHZhbiBkZSByZWdlbCkuCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogICAgICAgICAgICAgICAgICAgTGVzIDIuNDogR0VCUlVJSyBWQU4gRUVOIFRFTExFUiBCSUogRUVOIEJFV0VHSU5HCgogICAqKiBFZW4gZ2V0YWwgdm9vciBlZW4gYmV3ZWdpbmcgaGVyaGFhbHQgaGV0IHpvdmVlbCBrZWVyLiAqKgoKICAxLiBHYSBuYWFyIGRlIHJlZ2VsIGhpZXJvbmRlciwgZGllIG1ldCAtLS0+IGJlZ2ludC4KCiAgMi4gVGlrICAydyAgem9kYXQgZGUgY3Vyc29yIHR3ZWUgd29vcmRlbiB2b29ydWl0IGdhYXQuCgogIDMuIFRpayAgM2UgIHpvZGF0IGRlIGN1cnNvciBuYWFyIGhldCBlaW5kZSB2YW4gaGV0IGRlcmRlIHdvb3JkIGdhYXQuCgogIDQuIFRpayAgMCAgKG51bCkgb20gbmFhciBoZXQgYmVnaW4gdmFuIGRlIHJlZ2VsIHRlIGdhYW4uCgogIDUuIEhlcmhhYWwgZGUgc3RhcHBlbiAyIGVuIDMgbWV0IGFuZGVyZSBnZXRhbGxlbi4KCiAgLS0tPiBEaXQgaXMgZWVuIHJlZ2VsIG1ldCB3b29yZGVuIHdhYXJpbiBqZSBoZWVuIGVuIHdlZXIga2FuIGJld2VnZW4uCgogIDYuIEdhIHZlcmRlciBtZXQgbGVzIDIuNS4KCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgICAgICAgICAgICAgICAgICBMZXMgMi41OiBHRUJSVUlLIEVFTiBURUxMRVIgT00gTUVFUiBURSBXSVNTRU4KCiAgKiogRWVuIGdldGFsIG1ldCBlZW4gb3BlcmF0b3Igem9yZ3QgZGF0IGRlemUgem92ZWVsIGtlZXIgd29yZHQgaGVyaGFhbGQuICoqCgogIEJpaiBkZSBjb21iaW5hdGllIHZhbiB3aXMtb3BlcmF0b3IgZW4gYmV3ZWdpbmcga2FuIGplIHZvb3IgZGUgYmV3ZWdpbmcgZWVuCiAgdGVsbGVyIHpldHRlbiBvbSBtZWVyIHRlIHdpc3NlbjoKICAgICAgICAgZCAgW3RlbGxlcl0gIGJld2VnaW5nCgogIDEuIEdhIG5hYXIgaGV0IGVlcnN0ZSB3b29yZCBpbiBIT09GRExFVFRFUlMgaW4gZGUgcmVnZWwgbmEgLS0tPi4KCiAgMi4gTWV0ICBkMncgIHdvcmRlbiB0d2VlIHdvb3JkZW4gKGluIGRpdCB2b29yYmVlbGQgaW4gaG9vZmRsZXR0ZXJzKSBnZXdpc3QuCgogIDMuIEhlcmhhYWwgZGUgc3RhcHBlbiAxIGVuIDIgbWV0IHZlcnNjaGlsbGVuZGUgdGVsbGVycyBvbSBkZSB2ZXJzY2hpbGxlbmRlCiAgICAgd29vcmRlbiBpbiBob29mZGxldHRlcnMgbWV0IOnpbiBjb21tYW5kbyB0ZSB3aXNzZW4uCgogIC0tLT4gZGV6ZSBBQkMgREUgcmVnZWwgRkdISSBKSyBMTU4gT1AgaXMgUVogUlMgb250ZGFhbiB2YW4gcm9tbWVsLgoKICBPUE1FUktJTkc6IERlIHRlbGxlciBrYW4gb29rIGFhbiBoZXQgYmVnaW4gc3RhYW46IGQydyBlbiAyZHcgd2Vya2VuIGFsbGViZWkuCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogICAgICAgICAgICAgICAgICAgTGVzIDIuNjogQkVXRVJLSU5HIFZBTiBIRUxFIFJFR0VMUwoKICAgICAgICAgICAgICAgKiogVGlrICBkZCAgb20gZWVuIGhlbGUgcmVnZWwgdGUgd2lzc2VuLiAqKgoKICBPbWRhdCBoZXQgd2lzc2VuIHZhbiBlZW4gaGVsZSByZWdlbCB2YWFrIHZvb3Jrb210LCBiZXNsb3RlbiBkZSBvbnR3ZXJwZXJzCiAgdmFuIFZpIGRhdCBtZXQgaGV0IHRpa2tlbiB2YW4gIGRkICBzaW1wZWx3ZWcgZWVuIGhlbGUgcmVnZWwgZ2V3aXN0IHdvcmR0LgoKICAxLiBHYSBtZXQgZGUgY3Vyc29yIG5hYXIgZGUgdHdlZWRlIHJlZ2VsIHZhbiBkZSB6aW5uZXRqZXMgaGllcm9uZGVyLgoKICAyLiBUaWsgIGRkICBvbSBkZSByZWdlbCB0ZSB3aXNzZW4uCgogIDMuIEdhIG51IG5hYXIgZGUgdmllcmRlIHJlZ2VsLgoKICA0LiBUaWsgIDJkZCAgb20gdHdlZSByZWdlbHMgdGUgd2lzc2VuLgoKICAtLS0+ICAxKSAgUm96ZW4gemlqbiByb29kLgogIC0tLT4gIDIpICBNb2RkZXIgaXMgbGV1ay4KICAtLS0+ICAzKSAgVmlvb2x0amVzIHppam4gYmxhdXcuCiAgLS0tPiAgNCkgIElrIGhlYiBlZW4gYXV0by4KICAtLS0+ICA1KSAgRGUga2xvayBzbGFhdCBkZSB0aWpkLgogIC0tLT4gIDYpICBTdWlrZXIgaXMgem9ldC4KICAtLS0+ICA3KSAgRW4gZGF0IGJlbiBqaWogb29rLgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KICAgICAgICAgICAgICAgICAgIExlcyAyLjc6IEhFVCBDT01NQU5ETyBIRVJTVEVMCgogICoqIHUgIG1hYWt0IGhldCBsYWF0c3RlIGNvbW1hbmRvIG9uZ2VkYWFuLCAgVSAgaGVyc3RlbHQgZWVuIGhlbGUgcmVnZWwuICoqCgogIDEuIEdhIG1ldCBkZSBjdXJzb3IgbmFhciBkZSByZWdlbCBoaWVyb25kZXIgbWV0IC0tLT4gZW4gemV0IGhlbQogICAgIG9wIGRlIGVlcnN0ZSBmb3V0LgoKICAyLiBUaWsgIHggIG9tIGhldCBlZXJzdGUgb25nZXdlbnN0ZSB0ZWtlbiB0ZSB3aXNzZW4uCgogIDMuIFRpayBudSAgdSAgZW4gbWFhayBkYWFybWVlIGhldCB2b3JpZ2UgY29tbWFuZG8gb25nZWRhYW4uCgogIDQuIEhlcnN0ZWwgbnUgYWxsZSBmb3V0ZW4gaW4gZGUgcmVnZWwgbWV0IGhldCAgeCAgY29tbWFuZG8uCgogIDUuIFRpayBlZW4gaG9vZmRsZXR0ZXIgIFUgIG9tIGRlIHJlZ2VsIGluIHonbiBvb3JzcHJvbmtlbGlqa2Ugc3RhYXQgdGVydWcKICAgICB0ZSBicmVuZ2VuLgoKICA2LiBUaWsgbnUgZWVuIHBhYXIga2VlciAgdSAgZW4gaGVyc3RlbCBkYWFybWVlIGRlICBVICBlbiBlZXJkZXJlIGNvbW1hbmRvJ3MuCgogIDcuIFRpayBudSBlZW4gcGFhciBrZWVyIENUUkwtUiAoQ3RybC10b2V0cyBpbmdlZHJ1a3QgaG91ZGVuIGVuIFIgdGlra2VuKSBlbgogICAgIHZvZXIgZGFhcm1lZSBkZSBjb21tYW5kbydzIG9wbmlldXcgdWl0OiAncmVkbycgb2Z0ZXdlbCAndW5kbyBkZSB1bmRvJ3MnLiAKCiAgLS0tPiBIZWVyc3RlbCBkZSBmb3V0ZW4gaW5uIGRlZXplIHJlZ2VsIGVuIGJyZW5uZyB6ZSB3ZWVyIHRlcnVnZyBtZXQgdW5kby4KCiAgOC4gRGl0IHppam4gaGVlbCBudXR0aWdlIGNvbW1hbmRvJ3MuIEdhIHZlcmRlciBtZXQgc2FtZW52YXR0aW5nIHZhbiBsZXMgMi4KCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgICAgICAgICAgICAgICAgICBTQU1FTlZBVFRJTkcgTGVzIDIKCiAgMS4gV2lzIHZhbiBkZSBjdXJzb3IgdG90IGhldCB2b2xnZW5kZSB3b29yZCBtZXQgICAgZHcKCiAgMi4gV2lzIHZhbiBkZSBjdXJzb3IgdG90IGhldCBlaW5kIHZhbiBkZSByZWdlbCBtZXQgZCQKCiAgMy4gV2lzIGRlIGhlbGUgcmVnZWwgbWV0ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGQKCiAgNC4gSGVyaGFhbCBlZW4gYmV3ZWdpbmcgZG9vciBlciBlZW4gZ2V0YWwgdm9vciB0ZSB6ZXR0ZW46ICAydwoKICA1LiBEZSBvcGJvdXcgdmFuIGVlbiB3aWp6aWdpbmdzY29tbWFuZG8gaXM6CiAgICAgICBvcGVyYXRvciAgW2dldGFsXSAgYmV3ZWdpbmcKICAgICBkYWFyYmlqIGlzOgogICAgICAgb3BlcmF0b3IgLSB3YXQgZXIgbW9ldCBnZWJldXJlbiwgYmlqdm9vcmJlZWxkICBkICBvbSB0ZSB3aXNzZW4KICAgICAgIFtnZXRhbF0gIC0gZWVuIChuaWV0LXZlcnBsaWNodGUpIHRlbGxlciBvbSAnYmV3ZWdpbmcnIHRlIGhlcmhhbGVuCiAgICAgICBiZXdlZ2luZyAtIGVlbiBiZXdlZ2luZyBkb29yIGRlIHRlIHdpanppZ2VuIHRla3N0IHpvYWxzIHcgKHdvb3JkKQogICAgICAgICAgICAgICAgICBvZiAkICh0b3QgaGV0IGVpbmRlIHZhbiBkZSByZWdlbCkgZW56LgoKICA2LiBHYSBuYWFyIGhldCBiZWdpbiB2YW4gZGUgcmVnZWwgbWV0IG51bDogIDAKCiAgNy4gVW5kbyBkZSB2b29yZ2FhbmRlIGFjdGllIG1ldCAgICAgICAgICAgICAgdSAoa2xlaW5lIGxldHRlcikKICAgICBVbmRvIGFsbGUgdmVyYW5kZXJpbmdlbiBpbiBlZW4gcmVnZWwgbWV0ICBVIChob29mZGxldHRlcikKICAgICBVbmRvIGRlIHVuZG8ncyBtZXQgICAgICAgICAgICAgICAgICAgICAgICBDVFJMLVIKCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgICAgICAgICAgICAgICAgICBMZXMgMy4xOiBIRVQgQ09NTUFORE8gUExBSwoKICAqKiBUaWsgIHAgICgncHV0JykgZW4gcGxhayBkYWFybWVlIHpvanVpc3QgZ2V3aXN0ZSB0ZWtzdCBuYSB0ZSBjdXJzb3IuICoqCgogIDEuIEdhIG1ldCBkZSBjdXJzb3IgbmFhciBkZSBlZXJzdGUgcmVnZWwgbWV0IC0tLT4gaGllcm5hLgoKICAyLiBXaXMgZGUgcmVnZWwgbWV0ICBkZCAgZW4gYmV3YWFyIGhlbSB6b2RvZW5kZSBpbiBlZW4gVmltLXJlZ2lzdGVyLgoKICAzLiBHYSBuYWFyIGRlIGMtcmVnZWwsIHdhYXIgZGUgZ2V3aXN0ZSByZWdlbCBPTkRFUiBtb2V0IGtvbWVuLgoKICA0LiBUaWsgIHAgIG9tIGRlIHJlZ2VsIHRlcnVnIHRlIHpldHRlbiBvbmRlciBkZSByZWdlbCBtZXQgZGUgY3Vyc29yLgoKICA1LiBIZXJoYWFsIGRlIHN0YXBwZW4gMiB0b3QgNCBvbSBkZSByZWdlbHMgaW4gZGUgZ29lZGUgdm9sZ29yZGUgdGUgemV0dGVuLgoKLS0tPiBkKSBLcmlqZyBqZSBoZXQgb29rIG9uZGVyIGRlIGtuaWU/Ci0tLT4gYikgVmlvb2x0amVzIHppam4gYmxhdXcsCi0tLT4gYykgQmVncmlwIGlzIHRlIGxlcmVuLAotLS0+IGEpIFJvemVuIHppam4gcm9vZCwKCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgICAgICAgICAgICAgICAgICBMZXMgMy4yOiBIRVQgQ09NTUFORE8gVkVSVkFORwoKICAqKiBUaWsgcnggKCdyZXBsYWNlJykgb20gaGV0IHRla2VuIG9uZGVyIGRlIGN1cnNvciB0ZSB2ZXJ2YW5nZW4gZG9vciB4LiAqKgoKICAxLiBHYSBuYWFyIGRlIGVlcnN0ZSByZWdlbCBoaWVyb25kZXIgbWV0IC0tLT4uCgogIDIuIFpldCBkZSBjdXJzb3Igb3AgZGUgZWVyc3RlIGZvdXQuCgogIDMuIFRpayAgciAgZW4gZGFuIGhldCB0ZWtlbiBkYXQgZXIgaG9vcnQgdGUgc3RhYW4uCgogIDQuIEhlcmhhYWwgZGUgc3RhcHBlbiAyIGVuIDMgdG90IGRlIGVlcnN0ZSByZWdlbCBnZWxpamsgaXMgYWFuIGRlIHR3ZWVkZS4KCiAgLS0tPiAgQmlqIGhldCB0b2trZW4gdmFuIGRlemYgaGVnZWwgaGVlZnQgaWVtYW1kIHZlcmtsZXJkZSBsZXR0ZXJzIGdldGlrdC4KICAtLS0+ICBCaWogaGV0IHRpa2tlbiB2YW4gZGV6ZSByZWdlbCBoZWVmdCBpZW1hbmQgdmVya2VlcmRlIGxldHRlcnMgZ2V0aWt0LgoKICA1LiBHYSBudSBuYWFyIGxlcyAzLjMuCgogIExFVCBPUDogRG9vciBoZXQgdGUgZG9lbiwgbGVlciBqZSBiZXRlciBkYW4gZG9vciBoZXQgdWl0IGplIGhvb2ZkIHRlIGxlcmVuLgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KICAgICAgICAgICAgICAgICAgIExlcyAzLjM6IEhFVCBDT01NQU5ETyBWRVJBTkRFUgoKICAgICAqKiBUaWsgIGNlICBvbSB0ZSB2ZXJhbmRlcmVuIHRvdCBoZXQgZWluZGUgdmFuIGVlbiB3b29yZC4gKioKCiAgMS4gR2EgbWV0IGRlIGN1cnNvciBuYWFyIGRlIGVlcnN0ZSByZWdlbCBoaWVyb25kZXIgbWV0IC0tLT4uCgogIDIuIFpldCBkZSBjdXJzb3Igb3AgZGUgIHUgIHZhbiBydWNoLgoKICAzLiBUaWsgIGNlICBlbiBkZSBqdWlzdGUgbGV0dGVycyAoaW4gZGl0IGdldmFsICJlZ2VsIikuCgogIDQuIERydWsgPEVTQz4gZW4gZ2EgbmFhciBoZXQgdm9sZ2VuZGUgdGVrZW4gZGF0IG1vZXQgd29yZGVuIHZlcmFuZGVyZC4KCiAgNS4gSGVyaGFhbCBkZSBzdGFwcGVuIDMgZW4gNCB0b3QgZGUgZWVyc3RlIHJlZ2VsIGdlbGlqayBpcyBhYW4gZGUgdHdlZWRlLgoKICAtLS0+IEluIGRlemUgcnVjaCBzdGFhbiBlZW4gcGFhciB3ZWVkcmltIGRpZSB2ZXJhbmRlcmQgbW91ZCB3b3JkZW4uCiAgLS0tPiBJbiBkZXplIHJlZ2VsIHN0YWFuIGVlbiBwYWFyIHdvb3JkZW4gZGllIHZlcmFuZGVyZCBtb2V0ZW4gd29yZGVuLgoKICBMRVQgT1A6IE1ldCAgY2UgIHdvcmR0IChoZXQgbGFhdHN0ZSBkZWVsIHZhbikgZWVuIHdvb3JkIGdld2lzdCBlbiBrb20gamUKICAgICAgICAgIGluIGRlIGludm9lZ21vZHVzLgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KICAgICAgICAgICAgICAgICAgIExlcyAzLjQ6IE1FRVIgVkVSQU5ERVJJTkdFTiBNRVQgYwoKICAxLiBIZXQgY29tbWFuZG8gdmVyYW5kZXIgKCdjaGFuZ2UnKSB3ZXJrdCBvcCBkZXplbGZkZSBtYW5pZXIgYWxzIHdpcy4gRGUKICAgICBvcGJvdXcgaXM6CiAgICAgICAgIGMgIFt0ZWxsZXJdICBiZXdlZ2luZwoKICAyLiBEZSBiZXdlZ2luZ2VuIHppam4gaGV0emVsZmRlLCB6b2FscyAgdyAgKHdvb3JkKSBlbiAgJCAgKGVpbmRlIHJlZ2VsKS4KCiAgMy4gR2EgbmFhciBkZSBlZXJzdGUgcmVnZWwgaGllcm9uZGVyIG1ldCAtLS0+LgoKICA0LiBaZXQgZGUgY3Vyc29yIG9wIGRlIGVlcnN0ZSBmb3V0LgoKICA1LiBUaWsgIGMkICBlbiB0aWsgZGUgcmVzdCB2YW4gZGUgcmVnZWwgem9kYXQgaGlqIGdlbGlqayB3b3JkdCBhYW4gZGUKICAgICB0d2VlZGUgZW4gc2x1aXQgYWYgbWV0IDxFU0M+LgoKICAtLS0+IEhldCBlaW5kZSB2YW4gZGV6ZSByZWdlbCBtb2V0IHByZWNpZXMgem8gd29yZGVuIGFscyBkZSB0d2VlZGUgcmVnZWwuCiAgLS0tPiBIZXQgZWluZGUgdmFuIGRlemUgcmVnZWwgbW9ldCBnZWNvcnJpZ2VlcmQgd29yZGVuIG1ldCBoZXQgY29tbWFuZG8gYyQuCgogIE9QTUVSS0lORzogSmUga2FuIGRlIHRvZXRzIDxCQUNLU1BBQ0U+IGdlYnJ1aWtlbiBvbSB0aWtmb3V0ZW4gdGUgaGVyc3RlbGxlbi4KCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgICAgICAgICAgICAgICAgICBTQU1FTlZBVFRJTkcgTGVzIDMgCgogIDEuIFRpayAgcCAgb20gdGVrc3QgdGVydWcgdGUgcGxha2tlbiwgZGllIHpvanVpc3QgaXMgZ2V3aXN0LiBEaXQgemV0IGRlCiAgICAgZ2V3aXN0ZSB0ZWtzdCBBQ0hURVIgZGUgY3Vyc29yIChhbHMgZWVuIGhlbGUgcmVnZWwgaXMgZ2V3aXN0IGtvbXQgZGV6ZQogICAgIG9wIGRlIHJlZ2VsIE9OREVSIGRlIGN1cnNvci4KCiAgMi4gSGV0IHRla2VuIHdhYXJvcCBkZSBjdXJzb3Igc3RhYXQgd29yZHQgdmVydmFuZ2VuIG1ldCAgciAgZ2V2b2xnZCBkb29yCiAgICAgaGV0IHRla2VuIGRhdCBqZSBkYWFyIHdpbHQgaGViYmVuLgoKICAzLiBIZXQgY29tbWFuZG8gJ3ZlcmFuZGVyJyBzdGVsdCBqZSBpbiBzdGFhdCBvbSB0ZWtzdCB0ZSB2ZXJhbmRlcmVuIHZhbmFmCiAgICAgZGUgY3Vyc29yIHRvdCB3YWFyIGRlICdiZXdlZ2luZycgamUgYnJlbmd0LiBEYXQgd2lsIHplZ2dlbjogdGlrICBjZSAgb20KICAgICB0ZSB2ZXJhbmRlcmVuIHZhbmFmIGRlIGN1cnNvciB0b3QgaGV0IGVpbmRlIHZhbiBoZXQgd29vcmQsICBjJCAgb20gdGUKICAgICB2ZXJhbmRlcmVuIHRvdCBoZXQgZWluZGUgdmFuIGRlIHJlZ2VsLgoKICA0LiBEZSBvcGJvdXcgdmFuIGhldCBjb21tYW5kbyB2ZXJhbmRlciBpczoKICAgICAgICAgYyAgW3RlbGxlcl0gIGJld2VnaW5nCgogIEdhIG51IG5hYXIgZGUgdm9sZ2VuZGUgbGVzLgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KICAgICAgICAgICAgICAgICAgIExlcyA0LjE6IFBMQUFUUyBWQU4gREUgQ1VSU09SIEVOIFNUQVRVUyBWQU4gSEVUIEJFU1RBTkQKCiAgKiogQ1RSTC1HIGxhYXQgemllbiB3YWFyIChyZWdlbG51bW1lcikgamUgamUgYmV2aW5kdCBlbiB3YXQgZGUgc3RhdHVzIHZhbgogICAgIGhldCBiZXN0YW5kIGlzLiBNZXQgW251bW1lcl0gRyAgZ2EgamUgbmFhciBlZW4gYmVwYWFsZGUgcmVnZWwuICoqCgogIExFVCBPUDogTGVlcyBkZSBoZWxlIGxlcyB2b29yZGF0IGplIGVlbiBzdGFwIHVpdHZvZXJ0ISEKCiAgMS4gSG91IGRlIEN0cmwtdG9ldHMgaW5nZWRydWt0IGVuIHRpayAgZyAuIERpdCBub2VtZW4gd2UgQ1RSTC1HLgogICAgIE9uZGVyYWFuIGRlIHBhZ2luYSB2ZXJzY2hpam50IGVlbiBib29kc2NoYXAgbWV0IGRlIGJlc3RhbmRzbmFhbSBlbiBkZQogICAgIHBvc2l0aWUgaW4gaGV0IGJlc3RhbmQuIE9udGhvdSBoZXQgcmVnZWxudW1tZXIgdm9vciBzdGFwIDMuCgogIE9QTUVSS0lORzogQWxzIGRlIG9wdGllICdydWxlcicgYWFuIHN0YWF0LCB3b3JkdCBkZSBwb3NpdGllIHZhbiBkZSBjdXJzb3IKICAgICAgICAgICAgIChyZWdlbG51bW1lciwga29sb20pIHN0ZWVkcyBpbiBkZSByZWNodGVyLW9uZGVyaG9layB2YW4gaGV0CiAgICAgICAgICAgICBzY2hlcm0gdmVybWVsZC4gSW4gZGl0IGdldmFsIHZlcm1lbGR0IENUUkwtRyBnZWVuIHJlZ2VsbnVtbWVyLgogICAgICAgICAgICAgQ1RSTC1HIGdlZWZ0IG9vayBkZSBzdGF0dXMgYWFuLCBuYW1lbGlqayBvZiBkZSB0ZWtzdCB2ZXJhbmRlcmQKICAgICAgICAgICAgIGlzICgnbW9kaWZpZWQnKSBzaW5kcyBoZXQgZGUgbGFhdHN0ZSBrZWVyIGlzIG9wZ2VzbGFnZW4uICAKCiAgMi4gVGlrIGhvb2ZkbGV0dGVyICBHICBvbSBuYWFyIGhldCBlaW5kZSB2YW4gaGV0IGJlc3RhbmQgdGUgZ2Fhbi4KICAgICBUaWsgIGdnICBvbSBuYWFyIGhldCBiZWdpbiB2YW4gaGV0IGJlc3RhbmQgdGUgZ2Fhbi4KCiAgMy4gVGlrIGhldCByZWdlbG51bW1lciB3YWFyIGplIGJpaiBzdGFwIDEgd2FzIGVuIGRhYXJuYSAgRyAuIERpdCBicmVuZ3QgamUKICAgICB0ZXJ1ZyBuYWFyIGRlIHJlZ2VsIHdhYXIgamUgd2FzIHRvZW4gamUgZGUgZWVyc3RlIGtlZXIgQ1RSTC1HIHRpa3RlLgoKICA0LiBWb2VyIGRlIHN0YXBwZW4gMSB0b3QgMyB1aXQgYWxzIGplIGRpdCBnb2VkIGhlYnQgZ2VsZXplbi4KCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgICAgICAgICAgICAgICAgICBMZXMgNC4yOiBIRVQgQ09NTUFORE8gWk9FS0VOCgogICoqIE1ldCAgL1pPRUsgIHdvcmR0IG5hYXIgZGUgem9la3Rlcm0gKOnpbiBvZiBtZWVyIHdvb3JkZW4pIGdlem9jaHQuICoqCgogIDEuIFRpayBpbiBkZSBvcGRyYWNodG1vZHVzIGhldCB0ZWtlbiAgLyAuIEplIHppZXQgZGF0IGhldCBtZXQgZGUgY3Vyc29yCiAgICAgYWFuIGRlIG9uZGVya2FudCB2YW4gaGV0IHNjaGVybSB2ZXJzY2hpam50LCB6b2FscyBiaWogaGV0IDotY29tbWFuZG8uCgogIDIuIFRpayBudSAnZmZvdXV0JyA8RU5URVI+LiBEaXQgaXMgaGV0IHdvb3JkIHdhYXJuYWFyIGdlem9jaHQgd29yZHQuCgogIDMuIFRpayAgbiAgb20gdmVyZGVyIHRlIHpvZWtlbiBtZXQgZGV6ZWxmZGUgem9la3Rlcm0uCiAgICAgWm9layBtZXQgIE4gIG1ldCBkZXplbGZkZSB6b2VrdGVybSBpbiBkZSB0ZWdlbm92ZXJnZXN0ZWxkZSByaWNodGluZy4KCiAgNC4gWm9layBpbiBhY2h0ZXJ3YWFydHNlIHJpY2h0aW5nIG1ldCA/em9la3Rlcm0gaW4gcGxhYXRzIHZhbiAgLyAuCgogIDUuIEtlZXIgdGVydWcgbmFhciBkZSB2b3JpZ2UgaGl0IG1ldCBDVFJMLU8gKGhvdSBDdHJsLXRvZXRzIGluZ2VkcnVrdCBlbgogICAgIHRpayBsZXR0ZXIgbykuIEhlcmhhYWwgb20gdmVyZGVyIHRlcnVnIHRlIGdhYW4uIENUUkwtSSBnYWF0IHZvb3J1aXQuCgogIC0tLT4gImZmb3V1dCIgaXMgbmlldCBkZSBqdWlzdGUgc3BlbGxpbmcgdmFuIGZvdXQsIGZmb3V1dCBpcyBlZW4gZm91dC4KCiAgT1BNRVJLSU5HOiBBbHMgem9la2VuIGhldCBlaW5kZSB2YW4gaGV0IGJlc3RhbmQgYmVyZWlrdCwgd29yZHQgdmFuYWYgaGV0CiAgICAgICAgICAgICBiZWdpbiBkb29yZ2V6b2NodCwgdGVuemlqIGRlIG9wdGllICd3cmFwc2NhbicgaXMgdWl0Z2VzY2hha2VsZC4KCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgICAgICAgICAgICAgICAgICBMZXMgNC4zOiBHQSBOQUFSIENPUlJFU1BPTkRFUkVOREUgSEFBS0pFUwoKICAgICAgICAgICAgKiogVGlrICAlICBvbSBuYWFyIGNvcnJlc3BvbmRlcmVuZGUgKSwgXSBvZiB9IHRlIGdhYW4uICoqCgogIDEuIFpldCBkZSBjdXJzb3Igb3AgZWVuICgsIFsgb2YgeyBpbiBkZSByZWdlbCBoaWVyb25kZXIgbWV0IC0tLT4uCgogIDIuIFRpayBkYW4gaGV0IHRla2VuICAlIC4KCiAgMy4gRGUgY3Vyc29yIGdhYW4gbmFhciBoZXQgb3ZlcmVlbmtvbXN0aWdlIGhhYWtqZS4KCiAgNC4gTWV0IG9wbmlldXcgICUgIGdhYXQgZGUgY3Vyc29yIHRlcnVnIG5hYXIgaGV0IGVlcnN0ZSBoYWFramUuCgogIDUuIFBsYWF0cyBkZSBjdXJzb3Igb3AgZWVuIGFuZGVyIGhhYWtqZSBlbiBiZWtpamsgd2F0ICAlICBkb2V0LgoKICAtLS0+IERpdCAoIGlzIGVlbiB0ZXN0cmVnZWwgbWV0ICAoJ3MsIFsncyBdIGVuIHsncyB9IGVyaW4uICkpCgogIE9QTUVSS0lORzogRGl0IGlzIG51dHRpZyBiaWogaGV0IGRlYnVnZ2VuIHZhbiBlZW4gcHJvZ3JhbW1hIHdhYXJpbiBoYWFramVzCiAgICAgICAgICAgICBuaWV0IGNvcnJlc3BvbmRlcmVuLiBNZXQgZGUgb3B0aWUgJ3Nob3dtYXRjaCcgd29yZHQgb29rCiAgICAgICAgICAgICBhYW5nZWdldmVuIG9mIGhhYWtqZXMgY29ycmVzcG9uZGVyZW4sIG1hYXIgZGUgY3Vyc29yIHdvcmR0IG5pZXQKICAgICAgICAgICAgIChibGlqdmVuZCkgdmVycGxhYXRzdC4KCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgICAgICAgICAgICAgICAgICBMZXMgNC40OiBIRVQgVkVSVkFORyBDT01NQU5ETwoKICAgICAgKiogVGlrICA6cy9vdWQvbmlldXcvZyAgb20gJ291ZCcgZG9vciAnbmlldXcnIHRlIHZlcnZhbmdlbi4gKioKCiAgMS4gR2EgbWV0IGRlIGN1cnNvciBuYWFyIGRlIHJlZ2VsIGhpZXJvbmRlciBtZXQgLS0tPi4KCiAgMi4gVGlrICA6cy9kZWUvZGUgPEVOVEVSPi4gWm9hbHMgamUgemlldCwgdmVydmFuZ3QgKCdzdWJzdGl0dXRlJykgZGl0CiAgICAgY29tbWFuZG8gYWxsZWVuIGRlIGVlcnN0ZSAiZGVlIiBpbiBkZSByZWdlbC4KCiAgMy4gVGlrIG51ICA6cy9kZWUvZGUvZyAuIE1ldCBkZSBnLXZsYWcgKCdnbG9iYWwnKSB3b3JkdCBlbGtlICJkZWUiIGluIGRlCiAgICAgcmVnZWwgdmVydmFuZ2VuLgoKICAtLS0+IGRlZSBiZXN0ZSB0aWpkIG9tIGRlZSBibG9lbWVuIHRlIHppZW4gaXMgaW4gZGVlIGxlbnRlLgoKICA0LiBPbSBpbiAoZWVuIGRlZWwgdmFuKSBlZW4gdGVrc3QgZWxrICdvdWQnIHRlIHZlcnZhbmdlbiBkb29yICduaWV1dyc6CiAgICAgdGlrICAgOiMsI3Mvb3VkL25pZXV3L2cgICB3YWFyICMsIyBkZSByZWdlbG51bW1lcnMgemlqbiBkaWUgaGV0IGdlYmllZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVncmVuemVuIHdhYXJpbiB3b3JkdCB2ZXJ2YW5nZW4uCiAgICAgdGlrICAgOiVzL291ZC9uaWV1dy9nICAgICBvbSBhbGxlcyB0ZSB2ZXJ2YW5nZW4gaW4gaGV0IGhlbGUgYmVzdGFuZC4KICAgICB0aWsgICA6JXMvb3VkL25pZXV3L2djICAgIG9tIGVsa2UgJ291ZCcgaW4gaGV0IGhlbGUgYmVzdGFuZCB0ZSB2aW5kZW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuIHRlIHZyYWdlbiBvZiBlciB2ZXJ2YW5nZW4gbW9ldCB3b3JkZW4uCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogICAgICAgICAgICAgICAgICAgU0FNRU5WQVRUSU5HIExlcyA0CgogIDEuIENUUkwtRyAgIGxhYXQgcG9zaXRpZSBpbiBoZXQgYmVzdGFuZCB6aWVuIGVuIGRlIHN0YXR1cyB2YW4gaGV0IGJlc3RhbmQuCiAgICAgRyAgICAgICAgdmVycGxhYXRzdCBqZSBuYWFyIGhldCBlaW5kZSB2YW4gaGV0IGJlc3RhbmQuCiAgICAgbnVtbWVyIEcgdmVycGxhYXRzdCBqZSBuYWFyIHJlZ2VsbnVtbWVyLgogICAgIGdnICAgICAgIHZlcnBsYWF0c3QgamUgbmFhciBkZSBlZXJzdGUgcmVnZWwuCgogIDIuIE1ldCAgLyAgZW4gZWVuIHpvZWt0ZXJtIHdvcmR0IFZPT1JXQUFSVFMgZ2V6b2NodCBuYWFyIGRlIHRlcm0uCiAgICAgTWV0ICA/ICBlbiBlZW4gem9la3Rlcm0gd29yZHQgQUNIVEVSV0FBUlRTIGdlem9jaHQgbmFhciBkZSB0ZXJtLgogICAgIFRpayAgbiAgbmEgZWVuIHpvZWtvcGRyYWNodCBvbSBkZSB2b2xnZW5kZSBoaXQgdGUgdmluZGVuLAogICAgIG9mIHRpayAgTiAgb20gaW4gZGUgYW5kZXJlIHJpY2h0aW5nIHRlIHpvZWtlbi4KICAgICBDVFJMLU8gIGJyZW5ndCBqZSBuYWFyIGVlcmRlcmUgaGl0LCAgQ1RSTC1JIG5hYXIgbmlldXdlcmUuCgogIDMuIFRpayAgJSAgdGVyd2lqbCBkZSBjdXJzb3Igb3AgZWVuIGhhYWtqZSAoW3t9XSkgc3RhYXQsIG9tIG5hYXIgaGV0CiAgICAgY29ycmVzcG9uZGVyZW5kZSBoYWFramUgdGUgZ2Fhbi4KCiAgNC4gOnMvb3VkL25pZXV3ICAgICAgdmVydmFuZ3QgaGV0IGVlcnN0ZSAnb3VkJyBpbiBlZW4gcmVnZWwgZG9vciAnbmlldXcnLgogICAgIDpzL291ZC9uaWV1dy9nICAgIHZlcnZhbmd0IGVsayAnb3VkJyBpbiBlZW4gcmVnZWwgZG9vciAnbmlldXcnLgogICAgIDojLCNzL291ZC9uaWV1dy9nIHZlcnZhbmd0IGVsayAnb3VkJyBkb29yICduaWV1dycgdHVzc2VuIGRlIHJlZ2VsbnVtbWVycy4KICAgICA6JXMvb3VkL25pZXV3L2cgICAgdmVydmFuZ3QgZWxrICdvdWQnIGRvb3IgJ25pZXV3JyBpbiBoZXQgaGVsZSBiZXN0YW5kLgogICAgIFZvZWcgIGMgIHRvZSAoOiVzL291ZC9uaWV1dy9nYykgb20gZWxrZSBrZWVyIG9tIGJldmVzdGlnaW5nCiAgICAgKCdjb25maXJtYXRpb24nKSB0ZSB2cmFnZW4uCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogICAgICAgICAgICAgICAgICAgTGVzIDUuMTogSE9FIEVFTiBFWFRFUk4gQ09NTUFORE8gV09SRFQgVUlUR0VWT0VSRAoKICAgICAqKiBUaWsgIDohICBnZXZvbGdkIGRvb3IgZWVuIGV4dGVybiBjb21tYW5kbyBvbSBkYXQgdWl0IHRlIHZvZXJlbi4gKioKCiAgMS4gVGlrIGhldCBjb21tYW5kbyAgOiAgd2Fhcm1lZSBkZSBjdXJzb3Igb3AgZGUgb25kZXJzdGUgcmVnZWwgdmFuIGhldAogICAgIHNjaGVybSBrb210IHRlIHN0YWFuLiBOdSBrYW4gamUgZWVuIG9wZHJhY2h0IGdldmVuIHZpYSBkZSBjb21tYW5kby1yZWdlbC4KCiAgMi4gVGlrIGVlbiAgISAgKHVpdHJvZXB0ZWtlbikuIERpdCBzdGVsdCBqZSBpbiBzdGFhdCBvbSBlbGsgc2hlbGwtY29tbWFuZG8KICAgICB1aXQgdGUgdm9lcmVuLgoKICAzLiBUaWsgYmlqdm9vcmJlZWxkICBscyAgbmEgaGV0IHVpdHJvZXB0ZWtlbiBlbiBkYWFybmEgPEVOVEVSPi4gSGllcm1lZQogICAgIGtyaWpnIGplIGRlIGluaG91ZCB2YW4gamUgbWFwIHRlIHppZW4sIG5ldCBhbHNvZiBqZSBkZSBvcGRyYWNodCBnYWYKICAgICB2YW5hZiBkZSBzaGVsbC1wcm9tcHQuIFByb2JlZXIgIDohZGlyICBhbHMgaGV0IG5pZXQgd2Vya3QuCgogIE9QTUVSS0lORzogRWxrIGV4dGVybiBjb21tYW5kbyBrYW4gb3AgZGV6ZSBtYW5pZXIgdWl0Z2V2b2VyZCB3b3JkZW4sIG9vawogICAgICAgICAgICAgbWV0IGFyZ3VtZW50ZW4uCgogIE9QTUVSS0lORzogQWxsZSBjb21tYW5kbydzIG5hICA6ICBtb2V0ZW4gd29yZGVuIGFmZ2VzbG90ZW4gbWV0IDxFTlRFUj4uCiAgICAgICAgICAgICBWYW5hZiBudSB6dWxsZW4gd2UgZGF0IG5pZXQgbWVlciBhbHRpamQgdmVybWVsZGVuLgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KICAgICAgICAgICAgICAgICAgIExlcyA1LjI6IE1FRVIgT1ZFUiBIRVQgT1BTTEFBTiBWQU4gQkVTVEFOREVOCgogICAgICoqIFRpayA6dyBCRVNUQU5EU05BQU0gb20gZGUgdGVrc3Qgbeh0IHZlcmFuZGVyaW5nZW4gb3AgdGUgc2xhYW4uICoqCgogIDEuIFRpayAgOiFkaXIgIG9mICA6IWxzICBvbSBkZSBpbmhvdWQgdmFuIGplIG1hcCB0ZSB0b25lbi4gSmUgd2VldAogICAgIGlubWlkZGVscyBkYXQgamUgZGFhcm5hIGVlbiA8RU5URVI+IG1vZXQgdGlra2VuLgoKICAyLiBLaWVzIGVlbiBiZXN0YW5kc25hYW0gZGllIG5vZyBuaWV0IGJlc3RhYXQsIGJpanZvb3JiZWVsZCBURVNULgoKICAzLiBUaWsgbnU6ICA6dyBURVNUICAoYWxzIGplIGRlIG5hYW0gVEVTVCBoZWJ0IGdla296ZW4pLgoKICA0LiBIaWVyZG9vciB3b3JkdCBoZXQgaGVsZSBiZXN0YW5kIChkZSBWSU0gbGVzc2VuKSBvcGdlc2xhZ2VuIG9uZGVyIGRlCiAgICAgbmFhbSBURVNULiBUaWsgd2VlciAgOiFkaXIgIG9mICA6IWxzICBvbSBkaXQgdGUgY29udHJvbGVyZW4uCgogIE9QTUVSS0lORzogQWxzIGplIFZpbSB6b3UgdmVybGF0ZW4gZW4gb3BuaWV1dyB6b3Ugc3RhcnRlbiBtZXQgIHZpbSBURVNUICBpcwogICAgICAgICAgICAgaGV0IGJlc3RhbmQgZWVuIGV4YWN0ZSBrb3BpZSB2YW4gZGUgbGVzc2VuLCB6b2FscyBqZSB6ZSBvcHNsb2VnLgoKICA1LiBXaXMgaGV0IGJlc3RhbmQgbnUgbWV0IGRlIG9wZHJhY2h0IChNUy1ET1MpICA6IWRlbCBURVNUCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mIChVbml4KSAgOiFybSBURVNUCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogICAgICAgICAgICAgICAgICAgTGVzIDUuMzogRUVOIERFRUwgVkFOIERFIFRFS1NUIE9QU0xBQU4KCiAgICAgKiogU2xhIGVlbiBkZWVsIHZhbiBoZXQgYmVzdGFuZCBvcCBtZXQgIHYgYmV3ZWdpbmcgOncgQkVTVEFORFNOQUFNICoqCgogIDEuIEdhIG5hYXIgZGV6ZSByZWdlbC4KCiAgMi4gVGlrICB2ICBlbiBnYSBtZXQgZGUgY3Vyc29yIG5hYXIgc3RhcCA1IGhpZXJvbmRlci4gSmUgemlldCBkYXQgZGUKICAgICB0ZWtzdCBvcGxpY2h0LgoKICAzLiBUaWsgIDogLiBPbmRlcmFhbiBoZXQgc2NoZXJtIHphbCAgOic8LCc+ICB2ZXJzY2hpam5lbi4KCiAgNC4gVGlrICB3IFRFU1QgICwgd2FhciBURVNUIGVlbiBiZXN0YW5kc25hYW0gaXMsIGRpZSBub2cgbmlldCBiZXN0YWF0LgogICAgIENvbnRyb2xlZXIgZGF0IGplICA6JzwsJz53IFRFU1QgIHppZXQgc3RhYW4gdm9vcmRhdCBqZSA8RU5URVI+IHRpa3QuCgogIDUuIFZpbSBzbGFhdCBudSBkZSBnZXNlbGVjdGVlcmRlIHJlZ2VscyBvcCBpbiBoZXQgYmVzdGFuZCBURVNULiBNZXQKICAgICA6IWRpciAgb2YgICFscyAga2FuIGplIGRhdCB6aWVuLiBXaXMgaGV0IG5vZyBuaWV0ISBXZSB6dWxsZW4gaGV0IGluCiAgICAgZGUgdm9sZ2VuZGUgbGVzIGdlYnJ1aWtlbi4KCiAgT1BNRVJLSU5HOiBIZXQgdGlra2VuIHZhbiAgdiAgemV0IHppY2h0YmFyZSBtb2R1cyAoJ3Zpc3VhbCBzZWxlY3Rpb24nKSBhYW4uCiAgICAgICAgICAgICBKZSBrYW4gZGUgY3Vyc29yIHJvbmRiZXdlZ2VuIG9tIGRlIHNlbGVjdGllIGdyb3RlciBvZiBrbGVpbmVyCiAgICAgICAgICAgICB0ZSBtYWtlbi4gVmVydm9sZ2VucyBrYW4gamUgZWVuIGNvbW1hbmRvIGdlYnJ1aWtlbiBvbSBpZXRzIG1ldAogICAgICAgICAgICAgZGUgdGVrc3QgdGUgZG9lbi4gTWV0ICBkICBiaWp2b29yYmVlbGQgd2lzIGplIGRlIHRla3N0LgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KICAgICAgICAgICAgICAgICAgIExlcyA1LjQ6IE9QSEFMRU4gRU4gU0FNRU5WT0VHRU4gVkFOIEJFU1RBTkRFTgoKICAgICAqKiBUaWsgIDpyIEJFU1RBTkRTTkFBTSBvbSBkZSBpbmhvdWQgdmFuIGVlbiBiZXN0YW5kIGluIHRlIHZvZWdlbi4gKioKCiAgMS4gWmV0IGRlIGN1cnNvciBwcmVjaWVzIGJvdmVuIGRlemUgcmVnZWwuCgogIE9QTUVSS0lORzogTmEgaGV0IHVpdHZvZXJlbiB2YW4gc3RhcCAyIHppZSBqZSB0ZWtzdCB2YW4gbGVzIDUuMy4gU2Nyb2wKICAgICAgICAgICAgIGRhYXJuYSBuYWFyIGJlbmVkZW4gb20gZGV6ZSBsZXMgd2VlciB0ZSB6aWVuLgoKICAyLiBIYWFsIG51IGhldCBiZXN0YW5kIFRFU1Qgb3AgbWV0IGhldCBjb21tYW5kbyAgOnIgVEVTVCAuCiAgICAgSGV0IGJlc3RhbmQgZGF0IGplIG9waGFhbHQga29tdCBvbmRlciBkZSByZWdlbCB3YWFyaW4gZGUgY3Vyc29yIHN0YWF0LgoKICAzLiBDb250cm9sZWVyIGRhdCBlciBlZW4gYmVzdGFuZCBpcyBvcGdlaGFhbGQuIEdhIG1ldCBkZSBjdXJzb3Igb21ob29nLgogICAgIERhbiB6aWUgamUgZGUgdGVrc3QgdmFuIGxlcyA1LjMgZHViYmVsLCBoZXQgb3JpZ2luZWVsIGVuIGRlIHZlcnNpZSB1aXQKICAgICBoZXQgYmVzdGFuZC4KCiAgT1BNRVJLSU5HOiBKZSBrYW4gb29rIGRlIHVpdHZvZXIgdmFuIGVlbiBleHRlcm4gY29tbWFuZG8gaW5sZXplbi4gT20gZWVuCiAgICAgICAgICAgICB2b29yYmVlbGQgdGUgZ2V2ZW46ICA6ciAhbHMgIGxlZXN0IGRlIHVpdHZvZXIgdmFuIGhldCBjb21tYW5kbwogICAgICAgICAgICAgbHMgZW4gemV0IGRhdCBvbmRlciBkZSByZWdlbCB3YWFyaW4gZGUgY3Vyc29yIHN0YWF0LgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KICAgICAgICAgICAgICAgICAgIFNBTUVOVkFUVElORyBMZXMgNQoKICAxLiA6IUNPTU1BTkRPICB2b2VydCBlZW4gZXh0ZXJuIGNvbW1hbmRvIHVpdC4KICAgICBFbmtlbGUgYnJ1aWtiYXJlIHZvb3JiZWVsZGVuIHppam46CiAgICAgICAgKE1TLURPUykgICAgICAgICAoVW5peCkKICAgICAgICAgOiFkaXIgICAgICAgICAgICA6IWxzICAgICAgICAgIC0gbGFhdCBkZSBpbmhvdWQgdmFuIGVlbiBtYXAgemllbgogICAgICAgICA6IWRlbCBCRVNUQU5EICAgIDohcm0gQkVTVEFORCAgLSB3aXN0IGJlc3RhbmQgQkVTVEFORAoKICAyLiA6dyBCRVNUQU5EU05BQU0gIHNjaHJpamZ0IGhldCBodWlkaWdlIFZpbS1iZXN0YW5kIG5hYXIgZGlzayBtZXQgZGUKICAgICBuYWFtIEJFU1RBTkRTTkFBTS4KCiAgMy4gdiBiZXdlZ2luZyA6dyBCRVNUQU5EU05BQU0gIGxhYXQgamUgaW4gemljaHRiYXJlIG1vZHVzIGVlbiBmcmFnbWVudAogICAgIHNlbGVjdGVyZW4sIGRhdCB3b3JkdCBvcGdlc2xhZ2VuIGluIGhldCBiZXN0YW5kIEJFU1RBTkRTTkFBTS4KCiAgNC4gOnIgQkVTVEFORFNOQUFNICBoYWFsdCBoZXQgYmVzdGFuZCBCRVNUQU5EU05BQU0gb3AgZW4gdm9lZ3QgaGV0IG9uZGVyCiAgICAgZGUgY3Vyc29yLXBvc2l0aWUgaW4gZGUgdGVrc3QgaW4uCgogIDUuIDpyICFkaXIgIGxlZXN0IGRlIHVpdHZvZXIgdmFuIGhldCBleHRlcm5lIGNvbW1hbmRvIGRpciBlbiB6ZXQgaGV0IG9uZGVyCiAgICAgZGUgY3Vyc29yLXBvc2l0aWUuCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogICAgICAgICAgICAgICAgICAgTGVzIDYuMTogSEVUIENPTU1BTkRPIE9QRU4KCiAgICAgKiogVGlrICBvICBvbSBlZW4gcmVnZWwgb25kZXIgZGUgY3Vyc29yIHRlIG9wZW5lbiBpbiBpbnZvZWdtb2R1cy4gKioKCiAgMS4gR2EgbmFhciBkZSBlZXJzdGUgcmVnZWwgYmVuZWRlbiBtZXQgLS0tPi4KCiAgMi4gVGlrIGRlIGtsZWluZSBsZXR0ZXIgIG8gIGVuIG9wZW4gZGFhcm1lZSBlZW4gcmVnZWwgT05ERVIgZGUgY3Vyc29yIGVuCiAgICAgZ2EgbmFhciBkZSBpbnZvZWdtb2R1cy4KCiAgMy4gVGlrIHdhdCB0ZWtzdCBpbiBlbiBzbHVpdCBhZiBtZXQgPEVTQz4gb20gZGUgaW52b2VnbW9kdXMgdGUgdmVybGF0ZW4uCgogIC0tLT4gQWxzIGplICBvICB0aWt0LCBrb210IGRlIGN1cnNvciBpbiBlZW4gbmlldXdlIHJlZ2VsIGluIGludm9lZ21vZHVzLgoKICA0LiBPbSBlZW4gcmVnZWwgQk9WRU4gZGUgY3Vyc29yIHRlIG9wZW5lbiwgbW9ldCBqZSBnZXdvb24gZWVuIGhvb2ZkbGV0dGVyCiAgICAgTyAgdGlra2VuIGluIHBsYWF0cyB2YW4gZWVuIGtsZWluZSBsZXR0ZXIuIFByb2JlZXIgZGF0IHZhbmFmIGRlIHZvbGdlbmRlCiAgICAgcmVnZWwuCgogIC0tLT4gT3BlbiBlZW4gcmVnZWwgaGllcmJvdmVuLiBUaWsgZWVuIE8gdGVyd2lqbCBkZSBjdXJzb3IgaGllciBzdGFhdC4KCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgICAgICAgICAgICAgICAgICBMZXMgNi4yOiBIRVQgQ09NTUFORE8gVE9FVk9FR0VOCgogICAgICAgICoqIFRpayAgYSAgb20gdGVrc3QgdG9lIHRlIHZvZWdlbiBBQ0hURVIgZGUgY3Vyc29yLiAqKgoKICAxLiBHYSBuYWFyIGhldCBiZWdpbiB2YW4gZGUgcmVnZWwgYmVuZWRlbiBtZXQgLS0tPi4KIAogIDIuIFRpayAgZSAgdG90IGRlIGN1cnNvciBvcCBoZXQgZWluZGUgdmFuICAic3RlIiAgc3RhYXQuCgogIDMuIFRpayBlZW4gKGtsZWluZSBsZXR0ZXIpICBhICAoJ2FwcGVuZCcpIG9tIHRvZSB0ZSB2b2VnZW4gQUNIVEVSIGRlIGN1cnNvci4KCiAgNC4gVnVsIGhldCB3b29yZCBhYW4gem9hbHMgaW4gZGUgdm9sZ2VuZGUgcmVnZWwuIERydWsgPEVTQz4gb20gZGUKICAgICBpbnZvZWdtb2R1cyB0ZSB2ZXJsYXRlbi4KCiAgNS4gR2EgbWV0ICBlICBuYWFyIGhldCBlaW5kZSB2YW4gaGV0IHZvbGdlbmRlIG9udm9sbGVkaWdlIHdvb3JkIGVuIGhlcmhhYWwKICAgICBkZSBzdGFwcGVuIDMgZW4gNC4KCiAgLS0tPiBEZXplIHJlZ2VsIHN0ZSBqZSBpbiBzdGFhdCBvbSB0ZSBvZWYgaW4gaGV0IHRvZXZvIHZhbiB0ZWtzdC4gCiAgICAgICBEZXplIHJlZ2VsIHN0ZWx0IGplIGluIHN0YWF0IG9tIHRlIG9lZmVuZW4gaW4gaGV0IHRvZXZvZWdlbiB2YW4gdGVrc3QuIAoKICBPUE1FUktJTkc6IGEsIGkgZW4gQSBvcGVuZW4gYWxsZW1hYWwgZGV6ZWxmZGUgaW52b2VnbW9kdXMsIGhldCBlbmlnZQogICAgICAgICAgICAgdmVyc2NoaWwgaXMgd2FhciB0ZWtlbnMgd29yZGVuIGluZ2V2b2VnZC4KCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgICAgICAgICAgICAgICAgICBMZXMgNi4zOiBWRVJWQU5HRU4gT1AgRUVOIEFOREVSRSBNQU5JRVIKCiAgICAgICoqIFRpayBlZW4gaG9vZmRsZXR0ZXIgIFIgIG9tIG1lZXIgZGFuIOnpbiB0ZWtlbiB0ZSB2ZXJ2YW5nZW4uICoqCgogIDEuIEdhIG5hYXIgZGUgZWVyc3RlIHJlZ2VsIGJlbmVkZW4gbWV0IC0tLT4uIEdhIG1ldCBkZSBjdXJzb3IgbmFhciBoZXQKICAgICBiZWdpbiB2YW4gZGUgZWVyc3RlICAieHh4IiAuCgogIDIuIFRpayBudSAgUiAgZW4gZGFhcm5hIGhldCBnZXRhbCBlcm9uZGVyIGluIGRlIHR3ZWVkZSByZWdlbCwgem9kYXQgIHh4eAogICAgIHdvcmR0IHZlcnZhbmdlbi4KCiAgMy4gRHJ1ayA8RVNDPiBvbSBkZSB2ZXJ2YW5nbW9kdXMgdGUgdmVybGF0ZW4uIEplIHppZXQgZGF0IGRlIHJlc3QgdmFuIGRlCiAgICAgcmVnZWwgb25nZXdpanppZ2QgYmxpamZ0LgoKICA0LiBIZXJoYWFsIGRlIHN0YXBwZW4gb20gZGUgb3ZlcmdlYmxldmVuICB4eHggIHRlIHZlcnZhbmdlbi4KCiAgLS0tPiBPcHRlbGxlbiB2YW4gMTIzIGVuIHh4eCBnZWVmdCBqZSB4eHguCiAgLS0tPiBPcHRlbGxlbiB2YW4gMTIzIGVuIDQ1NiBnZWVmdCBqZSA1NzkuCgogIE9QTUVSS0lORzogVmVydmFuZ21vZHVzIGxpamt0IG9wIGludm9lZ21vZHVzLCBtYWFyIGVsayB0ZWtlbiBkYXQgamUgdGlrdCwKICAgICAgICAgICAgIHZlcnZhbmd0IGVlbiBiZXN0YWFuZCB0ZWtlbi4KCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgICAgICAgICAgICAgICAgICBMZXMgNi40OiBURUtTVCBLT1BJy1JFTiBFTiBQTEFLS0VOCgogICAgICAgICoqIEdlYnJ1aWsgIHkgIG9tIHRla3N0IHRlIGtvcGnrcmVuIGVuICBwICBvbSB0ZSBwbGFra2VuLiAqKgoKICAxLiBHYSBuYWFyIGRlIHJlZ2VsIGJlbmVkZW4gbWV0IC0tLT4gZW4gemV0IGRlIGN1cnNvciBhY2h0ZXIgImEpIi4KCiAgMi4gWmV0IHppY2h0YmFyZSBtb2R1cyBhYW4gbWV0ICB2ICBlbiB6ZXQgZGUgY3Vyc29yIGp1aXN0IHZvb3IgImVlcnN0ZSIuCgogIDMuIFRpayAgeSAgKCd5YW5rJykgb20gZGUgb3BnZWxpY2h0ZSB0ZWtzdCAoImRpdCBpcyBoZXQiKSB0ZSBrb3Bp63Jlbi4KCiAgNC4gR2EgbWV0ICBqJCAgbWV0IGRlIGN1cnNvciBuYWFyIGhldCBlaW5kZSB2YW4gZGUgdm9sZ2VuZGUgcmVnZWwuCgogIDUuIFBsYWsgZGUgZ2Vrb3BpZWVyZGUgdGVrc3QgbWV0ICBwICBlbiB0aWsgIGEgdHdlZWRlIDxFU0M+LgoKICA2LiBTZWxlY3RlZXIgaW4gemljaHRiYXJlIG1vZHVzICJvbmRlcmRlZWwiLCBrb3BpZWVyIGhldCBtZXQgIHkgIGVuCiAgICAgZ2EgbWV0ICBqJCAgbmFhciBoZXQgZWluZGUgdmFuIGRlIHR3ZWVkZSByZWdlbC4gUGxhayBkZSB0ZWtzdCBkYWFyCiAgICAgbWV0ICBwIC4KCiAgLS0tPiAgYSkgZGl0IGlzIGhldCBlZXJzdGUgb25kZXJkZWVsCiAgICAgICAgYikKCiAgT1BNRVJLSU5HOiBKZSBrYW4gIHkgIG9vayBhbHMgb3BlcmF0b3IgZ2VicnVpa2VuOyAgeXcgIGtvcGllZXJ0IGVlbiB3b29yZCwKICAgICAgICAgICAgIHl5ICBlZW4gaGVsZSByZWdlbC4KCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgICAgICAgICAgICAgICAgICBMZXMgNi41OiBPUFRJRVMgR0VCUlVJS0VOCgogICAgICoqIEdlYnJ1aWsgZWVuIG9wdGllIHZvb3IgYWwgZGFuIG5pZXQgaG9vZmRsZXR0ZXJnZXZvZWxpZyB6b2VrZW4uICoqCgogIDEuIFpvZWsgbmFhciAnaG9vZmRsZXR0ZXJnZXZvZWxpZycgbWV0ICAvaG9vZmRsZXR0ZXJnZXZvZWxpZyA8RU5URVI+CiAgICAgSGVyaGFhbCBoZXQgem9la2VuIGVua2VsZSBrZXJlbiBkb29yICBuICB0ZSB0aWtrZW4uCiAKICAyLiBTY2hha2VsIGRlIG9wdGllICdpYycgKCdpZ25vcmUgY2FzZScsIG5pZXQtaG9vZmRsZXR0ZXJnZXZvZWxpZykgaW4KICAgICBtZXQgIDpzZXQgaWMKCiAgMy4gWm9layBtZXQgIG4gIG9wbmlldXcgbmFhciAnaG9vZmRsZXR0ZXJnZXZvZWxpZycuIEplIHppZXQgZGF0CiAgICAgSG9vZmRsZXR0ZXJnZXZvZWxpZyBlbiBIT09GRExFVFRFUkdFVk9FTElHIG51IG9vayBnZXZvbmRlbiB3b3JkZW4uCgogIDQuIFNjaGFrZWwgZGUgb3B0aWVzICdobHNlYXJjaCcgKHRyZWZmZXJzIG9wbGljaHRlbikgZW4gJ2luY3NlYXJjaCcgKHRvb24KICAgICBnZWRlZWx0ZWxpamtlIHRyZWZmZXJzIGJpaiBpbnRpa2tlbikgaW4gbWV0ICA6c2V0IGhscyBpcwoKICA1LiBUaWsgd2VlciAvaG9vZmRsZXR0ZXJnZXZvZWxpZyA8RU5URVI+IGVuIGtpamsgd2F0IGVyIGdlYmV1cnQuCgogIDYuIFNjaGFrZWwgJ2hvb2ZkbGV0dGVyZ2V2b2VsaWcnIHdlZXIgaW4gbWV0ICA6c2V0IG5vaWMKCiAgT1BNRVJLSU5HOiBTY2hha2VsIGhldCBvcGxpY2h0ZW4gdmFuIHRyZWZmZXJzIHVpdCBtZXQgIDpub2hsc2VhcmNoCgogIE9QTUVSS0lORzogT20gYmlqIGVlbiBlbmtlbCB6b2VrLWNvbW1hbmRvIGRlIGhvb2ZkbGV0dGVyZ2V2b2VsaWdoZWlkIG9tCiAgICAgICAgICAgICB0ZSBkcmFhaWVuIGthbiAgXGMgIHdvcmRlbiBnZWJydWlrdCBuYSBkZSB6b2VrdGVybToKICAgICAgICAgICAgIC9ob29mZGxldHRlcmdldm9lbGlnXGMgPEVOVEVSPi4KCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgICAgICAgICAgICAgICAgICBTQU1FTlZBVFRJTkcgTGVzIDYKCiAgMS4gVGlrICBvICBvbSBlZW4gcmVnZWwgdGUgb3BlbmVuIE9OREVSIGRlIGN1cnNvciBlbiBpbnZvZWdtb2R1cyB0ZSBzdGFydGVuLgogICAgIFRpayAgTyAgb20gZWVuIHJlZ2VsIHRlIG9wZW5lbiBCT1ZFTiBkZSBjdXJzb3IuCgogIDIuIFRpayAgYSAgb20gdGVrc3QgdG9lIHRlIHZvZWdlbiBOQSBkZSBjdXJzb3IuCiAgICAgVGlrICBBICBvbSB0ZWtzdCB0b2UgdGUgdm9lZ2VuIGFhbiBoZXQgZWluZGUgdmFuIGRlIHJlZ2VsLgoKICAzLiBIZXQgY29tbWFuZG8gIGUgIGJld2VlZ3QgZGUgY3Vyc29yIG5hYXIgaGV0IGVpbmRlIHZhbiBlZW4gd29vcmQuCgogIDQuIERlIG9wZXJhdG9yICB5ICB5YW5rdCAoa29waWVlcnQpIHRla3N0LCAgcCAgemV0IGhldCB0ZXJ1ZyAocGxha3QpLgoKICA1LiBNZXQgaG9vZmRsZXR0ZXIgIFIgIHdvcmR0IGRlIHZlcnZhbmdtb2R1cyBnZW9wZW5kLCBtZXQgPEVTQz4gYWZnZXNsb3Rlbi4KCiAgNi4gTWV0ICA6c2V0IHh4eCAgd29yZHQgb3B0aWUgJ3h4eCcgaW5nZXNjaGFrZWxkLiBPcHRpZXMgemlqbiBiaWp2b29yYmVlbGQ6CiAgICAgICBpYyAgIGlnbm9yZWNhc2UgIGdlZW4gdmVyc2NoaWwgaG9vZmRsZXR0ZXJzL2tsZWluZSBsZXR0ZXJzIGJpaiB6b2VrZW4KICAgICAgIGlzICAgaW5jc2VhcmNoICAgdG9vbiBnZWRlZWx0ZWxpamtlIHRyZWZmZXJzIHRpamRlbnMgaW50aWtrZW4gem9la3Rlcm0gCiAgICAgICBobHMgIGhsc2VhcmNoICAgIGxhYXQgYWxsZSB0cmVmZmVycyBvcGxpY2h0ZW4KICAgICBKZSBrYW4gem93ZWwgZGUgbGFuZ2UgYWxzIGRlIGtvcnRlIG5hYW0gdmFuIGVlbiBvcHRpZSBnZWJydWlrZW4uCiAgCiAgNy4gWmV0ICdubycgdm9vciBkZSBuYWFtIG9tIGVlbiBvcHRpZSB1aXQgdGUgc2NoYWtlbGVuOiAgOnNldCBub2ljCiAgICAgc2NoYWtlbHQgJ2ljJyB1aXQuCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogICAgICAgICAgICAgICAgICAgTGVzIDcuMTogSFVMUCBJTlJPRVBFTgoKICAgICAgICAgICAqKiBIZXQgZ2VicnVpayB2YW4gaW5nZWJvdXdkZSBodWxwLiAqKgoKICBWaW0gaGVlZnQgZWVuIHVpdGdlYnJlaWQgaW5nZWJvdXdkIGh1bHBzeXN0ZWVtLiBQcm9iZWVyLCBvbSB0ZSBiZWdpbm5lbiwKICDp6W4gdmFuIGRlemUgZHJpZToKICAgIC0gZHJ1ayBkZSA8SEVMUD4gdG9ldHMgKGFscyBqZSBkaWUgaGVidCkKICAgIC0gZHJ1ayBkZSA8RjE+IHRvZXRzIChhbHMgamUgZGllIGhlYnQpCiAgICAtIHRpayAgOmhlbHAgPEVOVEVSPgoKICBMZWVzIGRlIHRla3N0IGluIGhldCBoZWxwLXZlbnN0ZXIgb20gdGUgbGVyZW4gaG9lICdoZWxwJyB3ZXJrdC4KICBUaWsgIENUUkwtVyBDVFJMLVcgIG9tIHZhbiBoZXQgZW5lIHZlbnN0ZXIgbmFhciBoZXQgYW5kZXJlIHRlIGdhYW4uCiAgTWV0ICA6cSA8RU5URVI+ICB3b3JkdCBoZXQgaGVscC12ZW5zdGVyIGdlc2xvdGVuLgoKICBKZSBrYW4gaHVscCB2aW5kZW4gb3ZlciBuYWdlbm9lZyBlbGsgb25kZXJ3ZXJwIGRvb3IgZWVuIGFyZ3VtZW50IGFhbiBoZXQKICBjb21tYW5kbyAgOmhlbHAgIHRvZSB0ZSB2b2VnZW4uIFByb2JlZXIgZGV6ZSAoZW4gdmVyZ2VldCA8RU5URVI+IG5pZXQpOgogICAgOmhlbHAgdwogICAgOmhlbHAgY19DVFJMLUQKICAgIDpoZWxwIGluc2VydC1pbmRleAogICAgOmhlbHAgdXNlci1tYW51YWwKCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgICAgICAgICAgICAgICAgICBMZXMgNy4yOiBTQ0hSSUpGIEVFTiBDT05GSUdVUkFUSUVCRVNUQU5ECgogICAgICAgICAgICAgICAgICAgICoqIE1vZ2VsaWpraGVkZW4gdmFuIFZpbSB1aXRicmVpZGVuLiAqKgoKICBWaW0ga2VudCB2ZWVsIG1lZXIgbW9nZWxpamtoZWRlbiBkYW4gVmksIG1hYXIgZGUgbWVlc3RlIHppam4gc3RhbmRhYXJkCiAgdWl0Z2VzY2hha2VsZC4gT20gbWVlciBmdW5jdGllcyB0ZSBnZWJydWlrZW4gbW9ldCBqZSBlZW4gJ3ZpbXJjJy1iZXN0YW5kCiAgc2NocmlqdmVuLgoKICAxLiBCZXdlcmsgaGV0IGJlc3RhbmQgJ3ZpbXJjJy4gSG9lIGRhdCBtb2V0IGhhbmd0IGFmIHZhbiBqZSBzeXN0ZWVtOgogICAgICA6ZSB+Ly52aW1yYwkJdm9vciBVbml4CiAgICAgIDplICRWSU0vX3ZpbXJjCQl2b29yIE1TLVdpbmRvd3MKCiAgMi4gTGVlcyBkZSBpbmhvdWQgdmFuIGhldCB2b29yYmVlbGQtYmVzdGFuZDoKICAgICAgOnIgJFZJTVJVTlRJTUUvdmltcmNfZXhhbXBsZS52aW0KCiAgMy4gU2xhIGhldCBiZXN0YW5kIG9wIG1ldCAgOncKCiAgRGUgdm9sZ2VuZGUga2VlciBkYXQgamUgVmltIHN0YXJ0IHdvcmR0ICdzeW50YXhpc2tsZXVyaW5nJyBnZWJydWlrZW4uCiAgSmUga2FuIGFsIGplIHZvb3JrZXVyc2luc3RlbGxpbmdlbiB0b2V2b2VnZW4gYWFuIGRpdCAndmltcmMnLWJlc3RhbmQuCiAgVGlrICA6aGVscCB2aW1yYy1pbnRybyAgdm9vciBtZWVyIGluZm9ybWF0aWUuCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogICAgICAgICAgICAgICAgICAgTGVzIDcuMzogQUFOVlVMTEVOCgogICAgICAqKiBBYW52dWxsZW4gdmFuIGRlICdjb21tYW5kIGxpbmUnIG1ldCBDVFJMLUQgZW4gPFRBQj4uICoqCgogIDEuIFpvcmcgZGF0IFZpbSBuaWV0IGluICdjb21wYXRpYmxlIG1vZGUnIGlzIG1ldCAgOnNldCBub2NwCgogIDIuIEtpamsgd2Vsa2UgYmVzdGFuZGVuIHppY2ggaW4gZGUgbWFwIGJldmluZGVuIG1ldCAgOiFscyAgb2YgIDohZGlyCgogIDMuIFRpayBoZXQgYmVnaW4gdmFuIGVlbiBjb21tYW5kbzogIDplCgogIDQuIE1ldCAgQ1RSTC1EICB0b29udCBWaW0gZWVuIGxpanN0IGNvbW1hbmRvJ3MsIGRpZSBtZXQgImUiIGJlZ2lubmVuLgoKICA1LiBEcnVrIGVua2VsZSBrZXJlbiA8VEFCPi4gVmltIGxhYXQgYWFudnVsbGluZ2VuIHppZW4sIHpvYWxzICI6ZWRpdCIsCiAgICAgZGF0IHdlIGhpZXIgZ2VicnVpa2VuLgoKICA2LiBWb2VnIGVlbiBzcGF0aWUgdG9lIGVuIGRlIGVlcnN0ZSBsZXR0ZXIocykgdmFuIGVlbiBiZXN0YWFuZGUKICAgICBiZXN0YW5kc25hYW06ICA6ZWRpdCBCRVNUQU5ECgogIDcuIERydWsgPFRBQj4uIFZpbSB2dWx0IGRlIG5hYW0gYWFuIChhbHMgaGlqIHVuaWVrIGlzKS4KCiAgT1BNRVJLSU5HOiBBYW52dWxsZW4gd2Vya3QgYmlqIHRhbCB2YW4gY29tbWFuZG8ncy4gUHJvYmVlciBnZXdvb24gQ1RSTC1ECiAgICAgICAgICAgICBlbiA8VEFCPi4gSGV0IGlzIGJpanpvbmRlciBudXR0aWcgYmlqICA6aGVscCAuCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogICAgICAgICAgICAgICAgICAgU0FNRU5WQVRUSU5HIExlcyA3CgogIDEuIFRpayAgOmhlbHAgIG9mIGRydWsgPEYxPiBvZiA8SGVscD4gIG9tIGVlbiBoZWxwLXZlbnN0ZXIgdGUgb3BlbmVuLgoKICAyLiBUaWsgIDpoZWxwIENNRCAgdm9vciBodWxwIG92ZXIgIENNRCAuCgogIDMuIFRpayAgQ1RSTC1XIENUUkwtVyAgb20gbmFhciBlZW4gYW5kZXIgdmVuc3RlciB0ZSBnYWFuLgoKICA0LiBUaWsgIDpxICBvbSBoZXQgaGVscC12ZW5zdGVyIHRlIHNsdWl0ZW4uCgogIDUuIE1hYWsgZWVuIGJlc3RhbmQgbWV0IGRlIG5hYW0gJ3ZpbXJjJyB2b29yIGplIHZvb3JrZXVyc2luc3RlbGxpbmdlbi4KCiAgNi4gRHJ1ayBDVFJMLUQgdGlqZGVucyBoZXQgaW50aWtrZW4gdmFuIGVlbiA6LWNvbW1hbmRvIG9tIG1vZ2VsaWprZQogICAgIGFhbnZ1bGxpbmdlbiB0ZSB6aWVuLiBEcnVrIDxUQUI+IG9tIGFhbnZ1bGxlbiB0ZSBnZWJydWlrZW4uCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogIEhpZXJtZWUga29tZW4gZGUgVmltLWxlc3NlbiB0b3QgZWVuIGVpbmRlLiBaZSB3YXJlbiBiZWRvZWxkIG9tIGVlbiBrb3J0CiAgb3ZlcnppY2h0IHRlIGdldmVuIHZhbiBkZSBWaW0tZWRpdG9yLCBqdWlzdCB2b2xkb2VuZGUgb20gZGUgZWRpdG9yCiAgcmVkZWxpamsgbWFra2VsaWprIHRlIGdlYnJ1aWtlbi4gRGV6ZSBsZXNzZW4gemlqbiB2ZXJyZSB2YW4gdm9sbGVkaWcuIFZpbQogIGtlbnQgdmVlbCBtZWVyIGNvbW1hbmRvJ3MuIExlZXMgaGllcm5hIGRlIGhhbmRsZWlkaW5nIHZvb3IgZ2VicnVpa2VyczoKICAiOmhlbHAgdXNlci1tYW51YWwiLgoKICBWb29yIHZlcmRlcmUgc3R1ZGllIHdvcmR0IGFhbmJldm9sZW46CiAgICAgIFZpbSAtIFZpIEltcHJvdmVkIC0gZG9vciBTdGV2ZSBPdWFsbGluZQogICAgICBVaXRnZXZlcjogTmV3IFJpZGVycwogIERpdCBpcyBoZXQgZWVyc3RlIGJvZWsgZGF0IGdlaGVlbCBhYW4gVmltIGlzIGdld2lqZC4gU3BlY2lhYWwgZ2VzY2hpa3QKICB2b29yIGJlZ2lubmVycy4gTWV0IHZlZWwgdm9vcmJlZWxkZW4gZW4gYWZiZWVsZGluZ2VuLgogIFppZSBodHRwOi8vaWNjZi1ob2xsYW5kLm9yZy9jbGljazUuaHRtbAoKICBIZXQgdm9sZ2VuZGUgYm9layBpcyBvdWRlciBlbiBnYWF0IG1lZXIgb3ZlciBWaSBkYW4gVmltLCBtYWFyIGhldCB3b3JkdAogIHRvY2ggYWFuYmV2b2xlbjoKICAgICAgTGVhcm5pbmcgdGhlIFZpIEVkaXRvciAtIGRvb3IgTGluZGEgTGFtYgogICAgICBVaXRnZXZlcjogTydSZWlsbHkgJiBBc3NvY2lhdGVzIEluYy4KICBIZXQgaXMgZWVuIGdvZWQgYm9layBvbSBuYWdlbm9lZyBhbGxlcyB0ZSB3ZXRlbiB0ZSBrb21lbiBkYXQgamUgbWV0IFZpCiAgem91IHdpbGxlbiBkb2VuLiBEZSB6ZXNkZSBlbiB2b29yYWwgZGUgbmlldXdlIHpldmVuZGUgZHJ1ayAob25kZXIgZGUKICB0aXRlbCBMZWFybmluZyB0aGUgVmkgYW5kIFZpbSBFZGl0b3JzIGRvb3IgQXJub2xkIFJvYmJpbnMsIEVsYmVydCBIYW5uYWgKICAmIExpbmRhIExhbWIpIGJldmF0IG9vayBpbmZvcm1hdGllIG92ZXIgVmltLgoKICBEZXplIGxlc3NlbiB6aWpuIGdlc2NocmV2ZW4gZG9vciBNaWNoYWVsIEMuIFBpZXJjZSBlbiBSb2JlcnQgSy4gV2FyZSwKICBDb2xvcmFkbyBTY2hvb2wgb2YgTWluZXMgbWV0IGdlYnJ1aWttYWtpbmcgdmFuIGlkZWXrbiB2YW4gQ2hhcmxlcyBTbWl0aAogIHZhbiBkZSBDb2xvcmFkbyBTdGF0ZSBVbml2ZXJzaXR5LiBFLW1haWw6IGJ3YXJlQG1pbmVzLmNvbG9yYWRvLmVkdS4KCiAgQWFuZ2VwYXN0IHZvb3IgVmltIGRvb3IgQnJhbSBNb29sZW5hYXIuCgogIE5lZGVybGFuZHNlIHZlcnRhbGluZyBkb29yIFJvYiBCaXNob2ZmLCBhcHJpbCAyMDEyCiAgZS1tYWlsOiByb2IuYmlzaG9mZkBoY2NuZXQubmwpCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgo=