PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo9IFYgZSBsIGsgbyBtIG0gZSBuICAgdCBpIGwgICBpIG4gbiBmIPggciBpIG4gZyBlIG4gICBpICAgViBpIG0gIC0tICBWZXIuIDEuNSA9Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCiAgICAgVmltIGVyIGVuIG1lZ2V0IGtyYWZ0aWcgZWRpdG9yIG1lZCBtYW5nZSBrb21tYW5kb2VyLCBhbHQgZm9yIG1hbmdlCiAgICAgdGlsIOUga3VubmUgZ+UgZ2plbm5vbSBhbGxlIGkgZW4gaW5uZvhyaW5nIHNvbSBkZW5uZS4gRGVuIGVyIGJlcmVnbmV0CiAgICAgcOUg5SBzZXR0ZSBkZWcgaW5uIGkgYnJ1a2VuIGF2IG5vayBrb21tYW5kb2VyIHPlIGR1IHZpbCB25nJlIGkgc3RhbmQKICAgICB0aWwgbGV0dCDlIGt1bm5lIGJydWtlIFZpbSBzb20gZW4gZWRpdG9yIHRpbCBhbGxlIGZvcm3lbC4KCiAgICAgVGlkZW4gc29tIGtyZXZlcyBmb3Ig5SBn5SBnamVubm9tIGRlbm5lIGlubmb4cmluZ2VuIHRhciBjYS4gMjUtMzAKICAgICBtaW51dHRlciwgYXZoZW5naWcgYXYgaHZvciBteWUgdGlkIGR1IGJydWtlciB0aWwgZWtzcGVyaW1lbnRlcmluZy4KCiAgICAgS29tbWFuZG9lbmUgaSBsZWtzam9uZW5lIHZpbCBtb2RpZmlzZXJlIHRla3N0ZW4uIExhZyBlbiBrb3BpIGF2IGRlbm5lCiAgICAgZmlsZW4gc29tIGR1IGthbiD4dmUgZGVnIHDlIChodmlzIGR1IGtq+HJ0ZSCrdmltdHV0b3K7LWtvbW1hbmRvZW4sIGVyCiAgICAgZGV0dGUgYWxsZXJlZGUgZW4ga29waSkuCgogICAgIERldCBlciB2aWt0aWcg5SBodXNrZSBhdCBkZW5uZSBpbm5m+HJpbmdlbiBlciBiZXJlZ25ldCBw5SBs5nJpbmcKICAgICBnamVubm9tIGJydWsuIERldCBiZXR5ciBhdCBkdSBt5SB1dGb4cmUga29tbWFuZG9lbmUgZm9yIOUgbOZyZSBkZW0KICAgICBza2lra2VsaWcuIEh2aXMgZHUgYmFyZSBsZXNlciB0ZWtzdGVuLCB2aWwgZHUgZ2xlbW1lIGtvbW1hbmRvZW5lIQoKICAgICBG+HJzdCBhdiBhbHQsIHNqZWtrIGF0IKtDYXBzIExvY2u7IElLS0UgZXIgYWt0aXYgb2cgdHJ5a2sgq2q7LXRhc3RlbgogICAgIGhlbHQgdGlsIGxla3Nqb24gMS4xIGZ5bGxlciBza2plcm1lbi4Kfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJICAgICAgTGVrc2pvbiAxLjE6ICBGTFlUVElORyBBViBNQVJL2FJFTgoKCiAgICAgICAqKiBGb3Ig5SBmbHl0dGUgbWFya/hyZW4sIHRyeWtrIHRhc3RlbmUgaCwgaiwgaywgbCBzb20gdmlzdC4gKioKCSAgICAgXgoJICAgICBrCQlUaXBzOiBoLXRhc3RlbiBlciB0aWwgdmVuc3RyZSBvZyBmbHl0dGVyIHRpbCB2ZW5zdHJlLgogICAgICAgPCBoCSBsID4JICAgICAgbC10YXN0ZW4gZXIgdGlsIGj4eXJlIG9nIGZseXR0ZXIgdGlsIGj4eXJlLgoJICAgICBqCQkgICAgICBqLXRhc3RlbiBzZXIgdXQgc29tIGVuIHBpbCBzb20gcGVrZXIgbmVkb3Zlci4KCSAgICAgdgogIDEuIEZseXR0IG1hcmv4cmVuIHJ1bmR0IHDlIHNramVybWVuIHRpbCBkdSBoYXIgZuV0dCBkZXQgaW5uIGkgZmluZ3JlbmUuCgogIDIuIEhvbGQgaW5uZSBuZWRvdmVydGFzdGVuIChqKSB0aWwgZGVuIHJlcGV0ZXJlci4KLS0tPiBO5SB2ZXQgZHUgaHZvcmRhbiBkdSBiZXZlZ2VyIGRlZyB0aWwgbmVzdGUgbGVrc2pvbi4KCiAgMy4gR+UgdGlsIGxla3Nqb24gMS4yIHZlZCBoamVscCBhdiBuZWRvdmVydGFzdGVuLgoKTUVSSzogSHZpcyBkdSBibGlyIHVzaWtrZXIgcOUgbm9lIGR1IGhhciBza3JldmV0LCB0cnlrayA8RVNDPiBmb3Ig5SBn5SB0aWwKICAgICAgbm9ybWFsbW9kdXMuIFNrcml2IGRlcmV0dGVyIGtvbW1hbmRvZW4gZHUg+G5za2V0LgoKTUVSSzogUGlsdGFzdGVuZSBza2FsIG9nc+Ugdmlya2UuIE1lbiB2ZWQg5SBicnVrZSBoamtsIHZpbCBkdSB25nJlIGkgc3RhbmQgdGlsCiAgICAgIOUgYmV2ZWdlIG1hcmv4cmVuIG15ZSByYXNrZXJlIG7lciBkdSBlciBibGl0dCB2YW50IHRpbCBkZXQuCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkgIExla3Nqb24gMS4yOiBPUFBTVEFSVCBPRyBBVlNMVVROSU5HIEFWIFZJTQoKCiAgISEgTUVSSzogRvhyIGR1IHV0ZvhyZXIgbm9lbiBhdiBwdW5rdGVuZSBuZWRlbmZvciwgbGVzIGhlbGUgbGVrc2pvbmVuIQoKICAxLiBUcnlrayA8RVNDPi10YXN0ZW4gKGZvciDlIGZvcnNpa3JlIGRlZyBvbSBhdCBkdSBlciBpIG5vcm1hbG1vZHVzKS4KCiAgMi4gU2tyaXY6ICA6cSEgPEVOVEVSPgoKLS0tPiBEZXR0ZSBhdnNsdXR0ZXIgZWRpdG9yZW4gVVRFTiBhdCBlbmRyaW5nZXIgYmxpciBsYWdyZXQuCiAgICAgSHZpcyBkdSB2aWwgbGFncmUgZW5kcmluZ2VuZSBvZyBhdnNsdXR0ZSwgc2tyaXZlciBkdToKCSAgICAgOndxIDxFTlRFUj4KCiAgMy4gTuVyIGR1IHNlciBrb21tYW5kb2xpbmplbiBpIHNrYWxsZXQsIHNrcml2IGtvbW1hbmRvZW4gc29tIHN0YXJ0ZXQgZGVubmUKICAgICBpbm5m+HJpbmdlbi4gRGV0IGthbiB25nJlOiAgdmltdHV0b3IgPEVOVEVSPgogICAgIE5vcm1hbHQgdmlsIGR1IGJydWtlOgkgdmltIHR1dG9yIDxFTlRFUj4KCi0tLT4gTWVkIKt2aW27IG1lbmVzIFZpbS1lZGl0b3Jlbiwgq3R1dG9yuyBlciBmaWxlbiBzb20gZHUgdmlsIHJlZGlnZXJlLgoKICA0LiBIdmlzIGR1IGVyIHNpa2tlciBw5SBhdCBkdSBodXNrZXIgZGV0dGUsIHV0ZvhyIHB1bmt0ZW5lIDEgdGlsIDMgZm9yIOUKICAgICBhdnNsdXR0ZSBvZyBzdGFydGUgZWRpdG9yZW4gcOUgbnl0dC4gRGVyZXR0ZXIgZmx5dHRlciBkdSBtYXJr+HJlbiBuZWQgdGlsCiAgICAgbGVrc2pvbiAxLjMuCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoJCSBMZWtzam9uIDEuMzogUkVESUdFUklORyBBViBURUtTVCAtLSBTTEVUVElORwoKCgkgICoqIFRyeWtrIHRhc3RlbiAgeCAgZm9yIOUgc2xldHRlIHRlZ25ldCB1bmRlciBtYXJr+HJlbi4gKioKCiAgMS4gRmx5dHQgbWFya/hyZW4gdGlsIGRlbiBm+HJzdGUgbGluamVuIG1lcmtldCBtZWQgIC0tLT4gIC4KCiAgMi4gRm9yIOUgb3JkbmUgZmVpbGVuZSBw5SBsaW5qZW4sIGZseXR0IG1hcmv4cmVuIHRpbCBkZW4gZXIgb3Bw5SB0ZWduZXQgc29tCiAgICAgc2thbCBzbGV0dGVzLgoKICAzLiBUcnlrayB0YXN0ZW4gIHggIGZvciDlIHNsZXR0ZSBkZXQgdfhuc2tlZGUgdGVnbmV0LgoKICA0LiBSZXBldGVyIHB1bmt0IDIgdGlsIDQgdGlsIHNldG5pbmdlbiBlciBsaWsgZGVuIHNvbSBlciB1bmRlci4KCi0tLT4gS2t1YSBob3BwZXR0IG92dmVyciBt5eXl5W5lbm4uCi0tLT4gS3VhIGhvcHBldCBvdmVyIG3lbmVuLgoKICA1LiBO5SBzb20gbGluamVuIGVyIGtvcnJla3QsIGflIHRpbCBsZWtzam9uIDEuNC4KCkhVU0s6IE7lciBkdSBn5XIgZ2plbm5vbSBpbm5m+HJpbmdlbiwgaWtrZSBiYXJlIHBy+HYg5SBodXNrZSBrb21tYW5kb2VuZSwgbWVuCiAgICAgIGJydWsgZGVtIGhlbHQgdGlsIGRlIHNpdHRlci4KCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoJCUxla3Nqb24gMS40OiBSRURJR0VSSU5HIEFWIFRFS1NUIC0tIElOTlNFVFRJTkcKCgogICAgICAgKiogTuVyIGR1IGVyIGkgbm9ybWFsbW9kdXMsIHRyeWtrICBpICBmb3Ig5SBzZXR0ZSBpbm4gdGVrc3QuICoqCgogIDEuIEZseXR0IG1hcmv4cmVuIHRpbCBkZW4gZvhyc3RlIGxpbmplbiBzb20gZXIgbWVya2V0IG1lZCAgLS0tPiAgLgoKICAyLiBGb3Ig5SBnavhyZSBkZW4gZvhyc3RlIGxpbmplbiBsaWsgZGVuIGFuZHJlLCBmbHl0dCBtYXJr+HJlbiB0aWwgZGVuIHN05XIKICAgICBw5SB0ZWduZXQgRVRURVIgcG9zaXNqb25lbiBkZXIgdGVrc3RlbiBza2FsIHNldHRlcyBpbm4uCgogIDMuIFRyeWtrICBpICBvZyBza3JpdiBpbm4gdGVrc3RlbiBzb20gbWFuZ2xlci4KCiAgNC4gRXR0ZXJodmVydCBzb20gaHZlciBmZWlsIGVyIGZpa3NldCwgdHJ5a2sgPEVTQz4gZm9yIOUgcmV0dXJuZXJlIHRpbAogICAgIG5vcm1hbG1vZHVzLiBSZXBldGVyIHB1bmt0IDIgdGlsIDQgdGlsIHNldG5pbmdlbiBlciBrb3JyZWt0LgoKLS0tPiBEZXQgZXIgdGtzdCBzb20gbW5nbHIgLgotLS0+IERldCBlciBnYW5za2UgbXllIHRla3N0IHNvbSBtYW5nbGVyIGhlci4KCiAgNS4gTuVyIGR1IGb4bGVyIGRlZyBrb21mb3J0YWJlbCBtZWQg5SBzZXR0ZSBpbm4gdGVrc3QsIGflIHRpbCBvcHBzdW1tZXJpbmdlbgogICAgIG5lZGVuZm9yLgoKCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoJCQkgIE9QUFNVTU1FUklORyBBViBMRUtTSk9OIDEKCgogIDEuIE1hcmv4cmVuIGJldmVnZXMgdmVkIGhqZWxwIGF2IHBpbHRhc3RlbmUgZWxsZXIgaGprbC10YXN0ZW5lLgoJIGggKHZlbnN0cmUpCSBqIChuZWQpICAgICBrIChvcHApCSBsICho+HlyZSkKCiAgMi4gRm9yIOUgc3RhcnRlIFZpbSAoZnJhIHNrYWxsLWtvbW1hbmRvbGluamVuKSwgc2tyaXY6ICB2aW0gRklMTkFWTiA8RU5URVI+CgogIDMuIEZvciDlIGF2c2x1dHRlIFZpbSwgc2tyaXY6ICA8RVNDPiA6cSEgPEVOVEVSPiAgZm9yIOUgZm9ya2FzdGUgZm9yYW5kcmluZ2VyLgoJCSAgIEVMTEVSIHNrcml2OiAgPEVTQz4gOndxIDxFTlRFUj4gIGZvciDlIGxhZ3JlIGZvcmFuZHJpbmdlbmUuCgogIDQuIEZvciDlIHNsZXR0ZSBldCB0ZWduIHVuZGVyIG1hcmv4cmVuIG7lciBkdSBlciBpIG5vcm1hbG1vZHVzLCB0cnlrayAgeAoKICA1LiBGb3Ig5SBzZXR0ZSBpbm4gdGVrc3QgdmVkIG1hcmv4cmVuIG7lciBkdSBlciBpIG5vcm1hbG1vZHVzLCB0cnlrazoKCSBpICAgIFtza3JpdiBpbm4gdGVrc3Rlbl0gICAgPEVTQz4KCk1FUks6IE7lciBkdSB0cnlra2VyIDxFU0M+IGflciBkdSB0aWwgbm9ybWFsbW9kdXMgZWxsZXIgZHUgYXZicnl0ZXIgZW4gdfhuc2tldAogICAgICBvZyBkZWx2aXMgZnVsbGb4cnQga29tbWFuZG8uCgogIE7lIGthbiBkdSBn5SB2aWRlcmUgdGlsIGxla3Nqb24gMi4KCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkJTGVrc2pvbiAyLjE6IFNMRVRURUtPTU1BTkRPRVIKCgoJICAgICAqKiBUcnlrayAgZHcgIGZvciDlIHNsZXR0ZSB0aWwgc2x1dHRlbiBhdiBldCBvcmQuICoqCgogIDEuIFRyeWtrIDxFU0M+IGZvciDlIHbmcmUgc2lra2VyIHDlIGF0IGR1IGVyIGkgbm9ybWFsbW9kdXMuCgogIDIuIEZseXR0IG1hcmv4cmVuIHRpbCBkZW4gZvhyc3RlIGxpbmplbiBuZWRlbmZvciBtZXJrZXQgIC0tLT4gIC4KCiAgMy4gRmx5dHQgbWFya/hyZW4gdGlsIGJlZ3lubmVsc2VuIGF2IG9yZGV0IHNvbSBza2FsIHNsZXR0ZXMuCgogIDQuIFRyeWtrICBkdwlvZyBvcmRldCB2aWwgZm9yc3Zpbm5lLgoKTUVSSzogQm9rc3RhdmVuZSB2aWwga29tbWUgdGlsIHN5bmUgcOUgZGVuIG5lZGVyc3RlIGxpbmplbiBw5SBza2plcm1lbgogICAgICBldHRlcmh2ZXJ0IHNvbSBkdSBza3JpdmVyIGRlbS4gSHZpcyBkdSBza3JpdmVyIGZlaWwsIHRyeWtrIDxFU0M+IG9nCiAgICAgIHN0YXJ0IHDlIG55dHQuCgotLS0+IERldCBlciBhZ3VyayB0cmUgb3JkIGVwbGUgc29tIGlra2UgaPhyZXIgcOZyZSBoamVtbWUgaSBkZW5uZSBzZXRuaW5nZW4uCi0tLT4gRGV0IGVyIHRyZSBvcmQgc29tIGlra2UgaPhyZXIgaGplbW1lIGkgZGVubmUgc2V0bmluZ2VuLgoKICA1LiBSZXBldGVyIHB1bmt0IDMgb2cgNCB0aWwgZGVuIGb4cnN0ZSBzZXRuaW5nZW4gZXIgbGlrIGRlbiBhbmRyZS4gR+UKICAgICBkZXJldHRlciB0aWwgbGVrc2pvbiAyLjIuCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoJCSAgICAgTGVrc2pvbiAyLjI6IEZMRVJFIFNMRVRURUtPTU1BTkRPRVIKCgoJICAgICAqKiBUcnlrayAgZCQgIGZvciDlIHNsZXR0ZSB0aWwgc2x1dHRlbiBhdiBsaW5qZW4uICoqCgogIDEuIFRyeWtrIDxFU0M+IGZvciDlIHbmcmUgc2lra2VyIHDlIGF0IGR1IGVyIGkgbm9ybWFsbW9kdXMuCgogIDIuIEZseXR0IG1hcmv4cmVuIHRpbCBsaW5qZW4gbmVkZW5mb3IgbWVya2V0CS0tLT4gIC4KCiAgMy4gRmx5dHQgbWFya/hyZW4gdGlsIHB1bmt0ZXQgZGVyIGxpbmplbiBza2FsIGt1dHRlcyAoRVRURVIgZvhyc3RlIHB1bmt0dW0pLgoKICA0LiBUcnlrayAgZCQJZm9yIOUgc2xldHRlIGFsdCB0aWwgc2x1dHRlbiBhdiBsaW5qZW4uCgotLS0+IE5vZW4gc2tyZXYgc2x1dHRlbiBw5SBsaW5qZW4gZW4gZ2FuZyBmb3IgbXllLiBw5SBsaW5qZW4gZW4gZ2FuZyBmb3IgbXllLgoKICA1LiBH5SB0aWwgbGVrc2pvbiAyLjMgZm9yIOUgZm9yc3TlIGh2YSBzb20gc2tqZXIuCgoKCgoKCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoJCSAgICBMZWtzam9uIDIuMzogT00gS09NTUFORE9FUiBPRyBPQkpFS1RFUgoKCiAgRm9ybWF0ZXQgZm9yIHNsZXR0ZWtvbW1hbmRvZW4gIGQgIGVyIHNvbSBm+GxnZXI6CgoJW251bW1lcl0gIGQgIG9iamVrdAlFTExFUgkgIGQgIFtudW1tZXJdICBvYmpla3QKCiAgRGVyOgogICAgbnVtbWVyIC0tIGh2b3IgbWFuZ2UgZ2FuZ2VyIGtvbW1hbmRvZW4gdXRm+HJlcyAodmFsZ2ZyaSwgc3RhbmRhcmQ9MSkuCiAgICBkCSAgIC0tIHNlbHZlIHNsZXR0ZWtvbW1hbmRvZW4uCiAgICBvYmpla3QgLS0gaHZhIGtvbW1hbmRvZW4gdmlsIG9wZXJlcmUgcOUgKGxpc3RldCB1dCBuZWRlbmZvcikuCgogIEVuIGtvcnQgbGlzdGUgbWVkIG9iamVrdGVyOgogICAgdyAtLSBmcmEgbWFya/hyZW4gdGlsIHNsdXR0ZW4gYXYgb3JkZXQsIGlua2x1ZGVydCBtZWxsb21yb20uCiAgICBlIC0tIGZyYSBtYXJr+HJlbiB0aWwgc2x1dHRlbiBhdiBvcmRldCwgSUtLRSBpbmtsdWRlcnQgbWVsbG9tcm9tLgogICAgJCAtLSBmcmEgbWFya/hyZW4gdGlsIHNsdXR0ZW4gYXYgbGluamVuLgoKTUVSSzogRm9yIGRlbiBldmVudHlybHlzdG5lOiBTa3JpdmluZyBhdiBrdW4gb2JqZWt0ZXQgaSBub3JtYWxtb2R1cyB1dGVuIGVuCiAgICAgIGtvbW1hbmRvIHZpbCBmbHl0dGUgbWFya/hyZW4gdGlsIG9iamVrdGV0IGkgbGlzdGVuLgoKCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCSAgICAgTGVrc2pvbiAyLjQ6IEVUIFVOTlRBSyBGUkEgq0tPTU1BTkRPLU9CSkVLVLstUkVHRUxFTgoKCgkJICoqIFRyeWtrICBkZCAgZm9yIOUgc2xldHRlIGVuIGhlbCBsaW5qZS4gKioKCiAgUOUgZ3J1bm4gYXYgYXQgc2xldHRpbmcgYXYgbGluamVyIGVyIG15ZSBicnVrdCwgZmFudCB1dHZpa2xlcm5lIGF2IFZpIHV0IGF0CiAgZGV0IHZpbCB25nJlIGxldHRlcmUg5SByZXR0IG9nIHNsZXR0IHRyeWtrZSB0byCrZLstZXIgZXR0ZXIgaHZlcmFuZHJlIGZvciDlCiAgc2xldHRlIGVuIGxpbmplLgoKICAxLiBGbHl0dCBtYXJr+HJlbiB0aWwgZGVuIGFuZHJlIGxpbmplbiBpIHZlcnNldCBuZWRlbmZvci4KICAyLiBUcnlrayAgZGQJZm9yIOUgc2xldHRlIGxpbmplbi4KICAzLiBGbHl0dCBkZXJldHRlciB0aWwgZGVuIGZqZXJkZSBsaW5qZW4uCiAgNC4gVHJ5a2sgIDJkZCAgKGh1c2sgq251bW1lci1rb21tYW5kby1vYmpla3S7KSBmb3Ig5SBzbGV0dGUgZGlzc2UgdG8KICAgICBsaW5qZW5lLgoKICAgICAgIDEpIFJvc2VyIGVyIHL4ZGUKICAgICAgIDIpIEdq+HJtZSBlciBn+HksCiAgICAgICAzKSBGaW9sZXIgZXIgYmzlLAogICAgICAgNCkgSmVnIGhhciBlbiBiaWwsCiAgICAgICA1KSBLbG9ra2VyIHZpc2VyIHRpZGVuLAogICAgICAgNikgRHJ1ZXIgZXIgc/h0ZQogICAgICAgNykgT2cgZHUgZXIgbGlrZXPlLgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkJTGVrc2pvbiAyLjU6IEFOR1JFLUtPTU1BTkRPRU4KCgogICoqIFRyeWtrICB1ICBmb3Ig5SBhbmdyZSBzaXN0ZSBrb21tYW5kbywgIFUgIGZvciDlIGZpa3NlIGVuIGhlbCBsaW5qZS4gKioKCiAgMS4gRmx5dHQgbWFya/hyZW4gdGlsIGxpbmplbiBuZWRlbmZvciBtZXJrZXQJLS0tPiAgb2cgcGxhc3NlciBkZW4gcOUgZGVuCiAgICAgZvhyc3RlIGZlaWxlbi4KICAyLiBUcnlrayAgeCAgZm9yIOUgc2xldHRlIGRldCBm+HJzdGUgdfhuc2tlZGUgdGVnbmV0LgogIDMuIFRyeWtrIHPlICB1ICBmb3Ig5SBhbmdyZSBkZW4gc2lzdGUgdXRm+HJ0ZSBrb21tYW5kb2VuLgogIDQuIERlcmV0dGVyIG9yZG5lciBkdSBhbGxlIGZlaWxlbmUgcOUgbGluamVuZSB2ZWQg5SBicnVrZSAgeAlrb21tYW5kb2VuLgogIDUuIFRyeWtrIG7lIGVuIHN0b3IgIFUgIGZvciDlIHNldHRlIGxpbmplbiB0aWxiYWtlIHRpbCBkZXQgZGVuIHZhci4KICA2LiBUcnlrayAgdSAgbm9lbiBnYW5nZXIgZm9yIOUgYW5ncmUJVSAgb2cgZm9yZWflZW5kZSBrb21tYW5kb2VyLgogIDcuIERlcmV0dGVyIHRyeWtrZXIgZHUgIEN0cmwtciAgKGhvbGQgQ3RybCBuZWRlIG1lbnMgZHUgdHJ5a2tlciCrcrspIG5vZW4KICAgICBnYW5nZXIgZm9yIOUgZ2plbm9wcHJldHRlIGtvbW1hbmRvZW5lIChvbWdq+HJlIGFuZ3Jla29tbWFuZG9lbmUpLgoKLS0tPiBSUmVwYXJlciBmZWlpbGVuZSBw5eUgZGVubmUgbGlubm5qZW4gb29nIGVyc3NzdGF0dCBkZW0gbWVlZCBhbmdyZS4KCiAgOC4gRGV0dGUgZXIgbWVnZXQgbnl0dGlnZSBrb21tYW5kb2VyLiBO5SBrYW4gZHUgZ+UgdGlsIG9wcHN1bW1lcmluZ2VuIGF2CiAgICAgbGVrc2pvbiAyLgoKCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkJICBPUFBTVU1NRVJJTkcgQVYgTEVLU0pPTiAyCgoKICAxLiBGb3Ig5SBzbGV0dGUgZnJhIG1hcmv4cmVuIHRpbCBzbHV0dGVuIGF2IGV0IG9yZCwgdHJ5a2s6ICBkdwoKICAyLiBGb3Ig5SBzbGV0dGUgZnJhIG1hcmv4cmVuIHRpbCBzbHV0dGVuIGF2IGVuIGxpbmplLCB0cnlrazoJZCQKCiAgMy4gRm9yIOUgc2xldHRlIGVuIGhlbCBsaW5qZSwgdHJ5a2s6CWRkCgogIDQuIEZvcm1hdGV0IGZvciBlbiBrb21tYW5kbyBpIG5vcm1hbG1vZHVzIGVyOgoKICAgICAgIFtudW1tZXJdICBrb21tYW5kbyAgb2JqZWt0ICAgIEVMTEVSICAgIGtvbW1hbmRvCVtudW1tZXJdICBvYmpla3QKICAgICBkZXI6CiAgICAgICBudW1tZXIJLS0gaHZvciBtYW5nZSBnYW5nZXIga29tbWFuZG9lbiBza2FsIHJlcGV0ZXJlcwogICAgICAga29tbWFuZG8gLS0gaHZhIHNvbSBza2FsIGdq+HJlcywgZi5la3MuCWQgIGZvciDlIHNsZXR0ZQogICAgICAgb2JqZWt0CS0tIGh2YSBrb21tYW5kb2VuIHNrYWwgb3BlcmVyZSBw5SwgZWtzZW1wZWx2aXMJdyAgKG9yZCksCgkJICAgJCAgKHRpbCBzbHV0dGVuIGF2IGxpbmplbikgb2cgc+UgdmlkZXJlLgoKICA1LiBGb3Ig5SBhbmdyZSB0aWRsaWdlcmUga29tbWFuZG9lciwgc2tyaXYgIHUgIChsaXRlbiB1KQogICAgIEZvciDlIGFuZ3JlIGFsbGUgZm9yYW5kcmluZ2VyIHDlIGVuIGxpbmplLCBza3JpdiAgVSAgKHN0b3IgVSkKICAgICBGb3Ig5SBvbWdq+HJlIGFuZ3JpbmdlbiwgdHJ5a2sgIEN0cmwtcgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJICAgICAgTGVrc2pvbiAzLjE6IKtMSU0gSU5Ouy1LT01NQU5ET0VOCgoKICAgKiogVHJ5a2sgIHAJZm9yIOUgbGltZSBpbm4gZGVuIHNpc3RlIHNsZXR0ZWRlIHRla3N0ZW4gZXR0ZXIgbWFya/hyZW4gKioKCiAgMS4gRmx5dHQgbWFya/hyZW4gdGlsIGRlbiBm+HJzdGUgbGluamVuIGkgbGlzdGVuIG5lZGVuZm9yLgoKICAyLiBUcnlrayAgZGQJZm9yIOUgc2xldHRlIGxpbmplbiBvZyBsYWdyZSBkZW4gaSB1dGtsaXBwc3RhdmxlbiB0aWwgVmltLgoKICAzLiBGbHl0dCBtYXJr+HJlbiB0aWwgbGluamVuIE9WRVIgcG9zaXNqb25lbiBsaW5qZW4gc2thbCBzZXR0ZXMgaW5uLgoKICA0LiBNZW5zIGR1IGVyIGkgbm9ybWFsbW9kdXMsIHRyeWtrICBwICBmb3Ig5SBlcnN0YXR0ZSBsaW5qZW4uCgogIDUuIFJlcGV0ZXIgcHVua3QgMiB0aWwgNCBoZWx0IHRpbCBsaW5qZW5lIGVyIGkgcmlrdGlnIHJla2tlZvhsZ2UuCgogICAgICAgZCkgS2FuIGR1IG9nc+UgbOZyZT8KICAgICAgIGIpIEZpb2xlciBlciBibOUsCiAgICAgICBjKSBJbnRlbGxpZ2VucyBt5SBs5nJlcywKICAgICAgIGEpIFJvc2VyIGVyIHL4ZGUsCgoKCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoJCSAgICAgIExla3Nqb24gMy4yOiCrRVJTVEFUVLstS09NTUFORE9FTgoKCiAgICAgICAqKiBUcnlrayAgciAgb2cgZXQgdGVnbiBmb3Ig5SBlcnN0YXR0ZSB0ZWduZXQgdW5kZXIgbWFya/hyZW4uICoqCgogIDEuIEZseXR0IG1hcmv4cmVuIHRpbCBkZW4gZvhyc3RlIGxpbmplbiBuZWRlbmZvciBtZXJrZXQgIC0tLT4gIC4KCiAgMi4gRmx5dHQgbWFya/hyZW4gc+UgZGVuIHN05XIgb3Bw5SBkZW4gZvhyc3RlIGZlaWxlbi4KCiAgMy4gVHJ5a2sgIHIgIG9nIGRlcmV0dGVyIHRlZ25ldCBzb20gc2thbCBlcnN0YXR0ZSBkZXQgc29tIGVyIGZlaWwuCgogIDQuIFJlcGV0ZXIgcHVua3QgMiBvZyAzIHRpbCBkZW4gZvhyc3RlIGxpbmplbiBlciBrb3JyZWt0LgoKLS0tPiBEYSBkZm5uZSBseW5qeG4gYmxlIHprcmV2ZXQsIHZhciBkZXQgbvhlbiBzb20gdHJ5a2tldCBmZWl0ZSB0YXN0ZXIhCi0tLT4gRGEgZGVubmUgbGluamVuIGJsZSBza3JldmV0LCB2YXIgZGV0IG5vZW4gc29tIHRyeWtrZXQgZmVpbGUgdGFzdGVyIQoKICA1LiBH5SB2aWRlcmUgdGlsIGxla3Nqb24gMy4yLgoKTUVSSzogSHVzayBhdCBkdSBi+HIgbOZyZSB2ZWQg5SBCUlVLRSwgaWtrZSBwdWdnZS4KCgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJICAgICAgTGVrc2pvbiAzLjM6IKtGT1JBTkRSRbstS09NTUFORE9FTgoKCgkqKiBGb3Ig5SBmb3JhbmRyZSBlbiBkZWwgYXYgZWxsZXIgZXQgaGVsdCBvcmQsIHRyeWtrICBjdyAgLiAqKgoKICAxLiBGbHl0dCBtYXJr+HJlbiB0aWwgZGVuIGb4cnN0ZSBsaW5qZW4gbmVkZW5mb3Igc29tIGVyIG1lcmtldCAgLS0tPgkuCgogIDIuIFBsYXNzZXIgbWFya/hyZW4gcOUgq3W7LWVuIGkgq2x1Ymp3crsuCgogIDMuIFRyeWtrICBjdwlvZyBkZXQga29ycmVrdGUgb3JkZXQgKGkgZGV0dGUgdGlsZmVsbGV0LCBza3JpdiCraW5qZW67LikKCiAgNC4gVHJ5a2sgPEVTQz4gb2cgZ+UgdGlsIGRlbiBuZXN0ZSBmZWlsZW4gKGRldCBm+HJzdGUgdGVnbmV0IHNvbSBza2FsCiAgICAgZm9yYW5kcmVzKS4KCiAgNS4gUmVwZXRlciBwdW5rdCAzIG9nIDQgaGVsdCB0aWwgZGVuIGb4cnN0ZSBzZXRuaW5nZW4gZXIgbGlrIGRlbiBhbmRyZS4KCi0tLT4gRGVubmUgbHViandyIGhhciBub2VuIHdnaCBzb20gbeUgZm9ya3flcCBtZWQgq2ZvcuZrenJ5YXO7LWtvbW1hbmRvZW4uCi0tLT4gRGVubmUgbGluamVuIGhhciBub2VuIG9yZCBzb20gbeUgZm9yYW5kcmVzIG1lZCCrZm9yYW5kcmW7LWtvbW1hbmRvZW4uCgogIFbmciBvcHBtZXJrc29tIHDlIGF0CWN3ICBpa2tlIGJhcmUgZm9yYW5kcmVyIG9yZGV0LCBtZW4gb2dz5SBn5XIgaW5uIGkKICBpbm5zZXR0aW5nc21vZHVzLgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJTGVrc2pvbiAzLjQ6IEZMRVJFIEZPUkFORFJJTkdFUiBWRUQgQlJVSyBBViBjCgoKICAqKiCrRm9yYW5kcmW7LWtvbW1hbmRvZW4gYmxpciBicnVrdCBtZWQgZGUgc2FtbWUgb2JqZWt0ZW5lIHNvbSCrc2xldHS7LiAqKgoKICAxLiCrRm9yYW5kcmW7LWtvbW1hbmRvZW4gZnVuZ2VyZXIgcOUgc2FtbWUgbeV0ZSBzb20gq3NsZXR0uy4gRm9ybWF0ZXQgZXI6CgogICAgICAgW251bW1lcl0gIGMgIG9iamVrdCAgICBFTExFUiAgICBjICBbbnVtbWVyXSAgb2JqZWt0CgogIDIuIE9iamVrdGVuZSBlciBvZ3PlIGRlIHNhbW1lLCBzb20gZm9yIGVrc2VtcGVsICB3ICAob3JkKSwgICQgIChzbHV0dGVuIGF2CiAgICAgZW4gbGluamUpIG9nIHPlIHZpZGVyZS4KCiAgMy4gR+UgdGlsIGRlbiBm+HJzdGUgbGluamVuIG5lZGVuZm9yIHNvbSBlciBtZXJrZXQgIC0tLT4gIC4KCiAgNC4gRmx5dHQgbWFya/hyZW4gdGlsIGRlbiBm+HJzdGUgZmVpbGVuLgoKICA1LiBTa3JpdiAgYyQJZm9yIOUgZm9yYW5kcmUgcmVzdGVuIGF2IGxpbmplbiBsaWsgZGVuIGFuZHJlIG9nIHRyeWtrIDxFU0M+LgoKLS0tPiBTbHV0dGVuIHDlIGRlbm5lIGxpbmplbiB0cmVuZ2VyIGxpdHQgaGplbHAgZm9yIOUgZ2r4cmUgZGVuIGxpayBkZW4gbmVzdGUuCi0tLT4gU2x1dHRlbiBw5SBkZW5uZSBsaW5qZW4gdHJlbmdlciDlIGJsaSByZXR0ZXQgdmVkIGJydWsgYXYgq2Mkuy1rb21tYW5kb2VuLgoKCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoJCQkgIE9QUFNVTU1FUklORyBBViBMRUtTSk9OIDMKCgogIDEuIEZvciDlIGVyc3RhdHRlIHRla3N0IHNvbSBhbGxlcmVkZSBlciBibGl0dCBzbGV0dGV0LCB0cnlrawlwICAuIERldHRlCiAgICAgbGltZXIgaW5uIGRlbiBzbGV0dGVkZSB0ZWtzdGVuIEVUVEVSIG1hcmv4cmVuIChodmlzIGVuIGxpbmplIGJsZSBzbGV0dGV0CiAgICAgdmlsIGRlbiBibGkgbGltdCBpbm4gcOUgbGluamVuIHVuZGVyIG1hcmv4cmVuKS4KCiAgMi4gRm9yIOUgZXJzdGF0dGUgZXQgdGVnbiB1bmRlciBtYXJr+HJlbiwgdHJ5a2sgIHIgIG9nIGRlcmV0dGVyIHRlZ25ldCBzb20KICAgICBza2FsIGVyc3RhdHRlIGRldCBvcmlnaW5hbGUgdGVnbmV0LgoKICAzLiCrRm9yYW5kcmW7LWtvbW1hbmRvZW4gbGFyIGRlZyBmb3JhbmRyZSBkZXQgc3Blc2lmaXNlcnRlIG9iamVrdGV0IGZyYQogICAgIG1hcmv4cmVuIHRpbCBzbHV0dGVuIGF2IG9iamVrdGV0LCBmLmVrcy46IFRyeWtrICBjdyAgZm9yIOUgZm9yYW5kcmUgZnJhCiAgICAgbWFya/hyZW4gdGlsIHNsdXR0ZW4gYXYgb3JkZXQsICBjJCAgZm9yIOUgZm9yYW5kcmUgdGlsIHNsdXR0ZW4gYXYgbGluamVuLgoKICA0LiBGb3JtYXRldCBmb3Igq2ZvcmFuZHJluyBlcjoKCgkgW251bW1lcl0gIGMgIG9iamVrdAlFTExFUgkgYyAgW251bW1lcl0gIG9iamVrdAoKICBO5SBrYW4gZHUgZ+UgdGlsIG5lc3RlIGxla3Nqb24uCgoKCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoJCSAgICAgIExla3Nqb24gNC4xOiBQT1NJU0pPTiBPRyBGSUxTVEFUVVMKCgogKiogVHJ5a2sgQ3RybC1nIGZvciDlIHZpc2UgcG9zaXNqb25lbiBpIGZpbGVuIG9nIGZpbHN0YXR1c2VuLgogICAgVHJ5a2sgU2hpZnQtRyBmb3Ig5SBn5SB0aWwgZW4gc3Blc2lmaWtrIGxpbmplIGkgZmlsZW4uICoqCgpNRVJLOiBMZXMgaGVsZSBsZWtzam9uZW4gZvhyIGR1IHV0ZvhyZXIgbm9lbiBhdiBwdW5rdGVuZSEKCiAgMS4gSG9sZCBuZWRlIEN0cmwtdGFzdGVuIG9nIHRyeWtrICBnCS4gRW4gc3RhdHVzbGluamUgdmlsIGtvbW1lIHRpbCBzeW5lIHDlCiAgICAgYnVubmVuIGF2IHNramVybWVuIG1lZCBmaWxuYXZuZXQgb2cgaHZpbGtlbiBsaW5qZSBtYXJr+HJlbiBlciBw5S4gSHVzawogICAgIGxpbmplbnVtbWVyZXQgZm9yIGJydWsgaSBzdGVnIDMuCgogIDIuIFRyeWtrIFNoaWZ0LUcgZm9yIOUgZ+UgdGlsIGJ1bm5lbiBhdiBmaWxlbi4KCiAgMy4gU2tyaXYgaW5uIGxpbmplbnVtbWVyZXQgZHUgdmFyIHDlIG9nIGRlcmV0dGVyIFNoaWZ0LUcuIERldHRlIHZpbCBm+HJlIGRlZwogICAgIHRpbGJha2UgdGlsIGxpbmplbiBkdSB2YXIgcOUgZGEgZHUgdHJ5a2tldCBDdHJsLWcuIChO5XIgZHUgc2tyaXZlciBpbm4KICAgICBudW1tZXJldCwgdmlsIGRldCBJS0tFIGJsaSB2aXN0IHDlIHNramVybWVuLikKCiAgNC4gVXRm+HIgc3RlZyAxIHRpbCAzIGh2aXMgZHUgZvhsZXIgZGVnIHNpa2tlciBw5SBwcm9zZWR5cmVuLgoKCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkJIExla3Nqb24gNC4yOiBT2EtFS09NTUFORE9FTgoKCiAgICAgICoqIFNrcml2CS8gIGV0dGVyZnVsZ3QgYXYgZW4gc/hrZXN0cmVuZyBzb20gZHUgdmlsIGxldGUgZXR0ZXIuICoqCgogIDEuIFRyeWtrICAvICBu5XIgZHUgZXIgaSBub3JtYWxtb2R1c2VuLiBMZWdnIG1lcmtlIHRpbCBhdCBza3Llc3RyZWtlbiBvZwogICAgIG1hcmv4cmVuIGtvbW1lciB0aWwgc3luZSBw5SBidW5uZW4gYXYgc2tqZXJtZW4gaSBsaWtoZXQgbWVkCiAgICAgqzq7LWtvbW1hbmRvZW5lLgoKICAyLiBTa3JpdiAgZmVlZWlpbCAgb2cgdHJ5a2sgRU5URVIuIERldHRlIGVyIHRla3N0ZW4gZHUgdmlsIGxldGUgZXR0ZXIuCgogIDMuIEZvciDlIGZpbm5lIG5lc3RlIGZvcmVrb21zdCBhdiBz+Gtlc3RyZW5nZW4sIHRyeWtrICBuICAuIEZvciDlIGxldGUgZXR0ZXIKICAgICBzYW1tZSBz+GtldGVrc3RlbiBpIG1vdHNhdHQgcmV0bmluZywgdHJ5a2sgIFNoaWZ0LU4gIC4KCiAgNC4gSHZpcyBkdSB2aWwgbGV0ZSBldHRlciBlbiB0ZWtzdCBiYWtvdmVyIGkgZmlsZW4sIGJydWsga29tbWFuZG9lbiAgPwogICAgIGlzdGVkZW5mb3IgIC8gIC4KCk1FUks6IE7lciBz+GtldCB0cmVmZmVyIHNsdXR0ZW4gYXYgZmlsZW4gdmlsIGRldCBmb3J0c2V0dGUgZnJhIGRlbiBhbmRyZSBlbmRlbgogICAgICBhdiBmaWxlbi4KCi0tLT4gq2ZlZWVpaWy7IGVyIGlra2UgbeV0ZW4g5SBza3JpdmUgq2ZlaWy7IHDlLCBmZWVlaWlsIGVyIGhlbHQgZmVpbC4KCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoJCSAgIExla3Nqb24gNC4zOiBGSU5OIFNBTVNWQVJFTkRFIFBBUkVOVEVTRVIKCgoJICAqKiBUcnlrayAgJSAgZm9yIOUgZmlubmUgZW4gc2Ftc3ZhcmVuZGUgKSwgXSBlbGxlciB9IC4gKioKCiAgMS4gUGxhc3NlciBtYXJr+HJlbiBw5SBlbiAoLCBbIGVsbGVyIHsgcOUgbGluamVuIG5lZGVuZm9yIG1lcmtldCAgLS0tPiAgLgoKICAyLiBUcnlrayAgJSAgLgoKICAzLiBNYXJr+HJlbiBmbHl0dGVyIHNlZyBu5SB0aWwgcGFyZW50ZXNlbiBzb20gc2Ftc3ZhcmVyIG1lZCBkZW4gZHUgc3RvZCBw5S4KCiAgNC4gVHJ5a2sgICUgIGZvciDlIGZseXR0ZSBtYXJr+HJlbiB0aWxiYWtlIHRpbCBkZW4gZvhyc3RlIHBhcmVudGVzZW4uCgotLS0+IERldHRlICggZXIgZW4gdGVzdGxpbmplIG1lZCAoLCBbIF0gb2cgeyB9IGkgZGVuICkpCgpNRVJLOiBEZXR0ZSBlciBtZWdldCBnb2QgaGplbHAgdGlsIGZlaWxz+GtpbmcgaSBwcm9ncmFtbWVyIHNvbSBoYXIgdWJhbGFuc2VydAogICAgICBhbnRhbGwgcGFyZW50ZXNlciEKCgoKCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkgIExla3Nqb24gNC40OiBFTiBNxVRFIMUgUkVUVEUgU0tSSVZFRkVJTCBQxQoKCgkqKiBTa3JpdiAgOnMvZ2FtbWVsL255L2cgIGZvciDlIGVyc3RhdHRlIKtnYW1tZWy7IG1lZCCrbnm7LiAqKgoKICAxLiBGbHl0dCBtYXJr+HJlbiB0aWwgbGluamVuIG5lZGVuZm9yIHNvbSBiZWd5bm5lciBtZWQgIC0tLT4JLgoKICAyLiBTa3JpdiAgOnMvZGVlbi9kZW4vIDxFTlRFUj4gIC4gTGVnZyBtZXJrZSB0aWwgYXQgZGVubmUga29tbWFuZG9lbiBiYXJlCiAgICAgZm9yYW5kcmVyIGRlbiBm+HJzdGUgZm9yZWtvbXN0ZW4gYXYgb3JkZXQgcOUgbGluamVuLgoKICAzLiBTa3JpdiAgOnMvZGVlbi9kZW4vZyAgc29tIGJldHlyIGdsb2JhbCBlcnN0YXRuaW5nIHDlIGxpbmplbi4gRGV0dGUgdmlsCiAgICAgZXJzdGF0dGUgYWxsZSBmb3Jla29tc3RlciBhdiBz+GtldGVrc3RlbiBw5SBsaW5qZW4gZHUgc3TlciBw5S4KCi0tLT4gZGVlbiBiZXN0ZSBlciBkZWVuIHNvbSBrYW4ga2FzdGUgZGVlbiB0eW5nc3RlIHN0ZWluZW4gbGVuZ3N0CgogIDQuIFNrcml2ICA6Iywjcy9nYW1tZWwvbnkvZyAgZm9yIOUgZXJzdGF0dGUgdGVrc3QgbWVsbG9tIHRvIGxpbmplciwgZGVyICMsIwoJCQkgICAgICAgZXIgbGluamVudW1yZW5lIHDlIGRlIHRvIGxpbmplbmUuCiAgICAgU2tyaXYgIDolcy9nYW1tZWwvbnkvZyAgICBmb3Ig5SBlcnN0YXR0ZSB0ZWtzdCBpIGhlbGUgZmlsZW4uCgoKCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkJICBPUFBTVU1NRVJJTkcgQVYgTEVLU0pPTiA0CgoKICAxLiBDdHJsLWcgdmlzZXIgbuV25nJlbmRlIHBvc2lzam9uIGkgZmlsZW4gb2cgZmlsc3RhdHVzZW4uIFNoaWZ0LUcgZ+VyIHRpbAogICAgIHNsdXR0ZW4gYXYgZmlsZW4uIEV0IGxpbmplbnVtbWVyIGV0dGVyZnVsZ3QgYXYgU2hpZnQtRyBn5XIgdGlsIGRlbm5lCiAgICAgbGluamVuLgoKICAyLiBTa3JpdiAgLyAgZXR0ZXJmdWxndCBhdiBlbiBz+GtldGVrc3QgZm9yIOUgbGV0ZSBGUkFNT1ZFUiBldHRlciB0ZWtzdGVuLgogICAgIFNrcml2ICA/ICBldHRlcmZ1bGd0IGF2IGVuIHP4a2V0ZWtzdCBmb3Ig5SBsZXRlIEJBS09WRVIgZXR0ZXIgdGVrc3Rlbi4KICAgICBFdHRlciBldCBz+Gsga2FuIGR1IHRyeWtrZSAgbiAgZm9yIOUgZmlubmUgbmVzdGUgZm9yZWtvbXN0IGkgZGVuIHNhbW1lCiAgICAgcmV0bmluZ2VuIGVsbGVyIFNoaWZ0LU4gZm9yIOUgbGV0ZSBpIG1vdHNhdHQgcmV0bmluZy4KCiAgMy4gU2tyaXYgICUgIG7lciBtYXJr+HJlbiBzdOVyIHDlIGVuICgsICksIFssIF0sIHsgZWxsZXIgfSBmb3Ig5SBmaW5uZQogICAgIHBhcmVudGVzdGVuIHNvbSBzYW1zdmFyZXIgbWVkIGRlbiBtYXJr+HJlbiBzdOVyIHDlLgoKICA0LiBFcnN0YXR0ZSCrZ2FtbWVsuyBtZWQgZvhyc3RlIKtuebsgcOUgZW4gbGluamU6ICA6cy9nYW1tZWwvbnkKICAgICBFcnN0YXR0ZSBhbGxlIKtnYW1tZWy7IG1lZCCrbnm7IHDlIGVuIGxpbmplOiAgICA6cy9nYW1tZWwvbnkvZwogICAgIEVyc3RhdHRlIHRla3N0IG1lbGxvbSB0byBsaW5qZW51bXJlOgkgICAgIDojLCNzL2dhbW1lbC9ueS9nCiAgICAgRXJzdGF0dGUgYWxsZSBmb3Jla29tc3RlciBpIGVuIGZpbDoJICAgICA6JXMvZ2FtbWVsL255L2cKICAgICBGb3Ig5SBnb2RramVubmUgaHZlciBlcnN0YXRuaW5nLCBsZWdnIHRpbCCrY7s6ICA6JXMvZ2FtbWVsL255L2djCgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkgICAgICAgTGVrc2pvbiA1LjE6IEhWT1JEQU4gVVRG2FJFIEVOIEVLU1RFUk4gS09NTUFORE8KCgogICAgKiogU2tyaXYgIDohICBldHRlcmZ1bGd0IGF2IGVuIGVrc3Rlcm4ga29tbWFuZG8gZm9yIOUgdXRm+HJlIGRlbm5lLiAqKgoKICAxLiBTa3JpdiBkZW4gdmVsa2plbnRlIGtvbW1hbmRvZW4gIDoJIGZvciDlIHBsYXNzZXJlIG1hcmv4cmVuIHDlIGJ1bm5lbiBhdgogICAgIHNramVybWVuLiBEZXR0ZSBsYXIgZGVnIHNrcml2ZSBlbiBrb21tYW5kby4KCiAgMi4gTuUga2FuIGR1IHNrcml2ZSB0ZWduZXQgIQkuIERldHRlIGxhciBkZWcgdXRm+HJlIGVuIGh2aWxrZW4gc29tIGhlbHN0CiAgICAgZWtzdGVybiBrb21tYW5kby4KCiAgMy4gU29tIGV0IGVrc2VtcGVsLCBza3JpdiAgbHMgIGV0dGVyIHV0cm9wc3RlZ25ldCBvZyB0cnlrayA8RU5URVI+LiBEdSB2aWwKICAgICBu5SBm5SBlbiBsaXN0ZSBvdmVyIGZpbGVuZSBpIGthdGFsb2dlbiwgYWtrdXJhdCBzb20gb20gZHUgaGFkZGUga2r4cnQKICAgICBrb21tYW5kb2VuIGRpcmVrdGUgZnJhIHNrYWxsZXQuIEVsbGVyIGJydWsgIDohZGlyCWh2aXMgq2xzuyBpa2tlIHZpcmtlci4KCi0tLT4gTUVSSzogRGV0IGVyIG11bGlnIOUga2r4cmUgYWxsZSBtdWxpZ2UgZWtzdGVybmUga29tbWFuZG9lciBw5SBkZW5uZQogICAgIG3ldGVuLgoKLS0tPiBNRVJLOiBBbGxlIKs6uy1rb21tYW5kb2VyIG3lIGF2c2x1dHRlcyBtZWQgPEVOVEVSPi4KCgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJICAgICBMZWtzam9uIDUuMjogTUVSIE9NIExBR1JJTkcgQVYgRklMRVIKCgogICAgICoqIEZvciDlIGxhZ3JlIGVuZHJpbmdlbmUgZ2pvcnQgaSBlbiBmaWwsIHNrcml2ICA6dyBGSUxOQVZOICAuICoqCgogIDEuIFNrcml2ICA6IWRpciAgZWxsZXIgIDohbHMJZm9yIOUgZuUgZW4gbGlzdGUgb3ZlciBmaWxlbmUgaSBrYXRhbG9nZW4uIER1CiAgICAgdmV0IGFsbGVyZWRlIGF0IGR1IG3lIHRyeWtrZSA8RU5URVI+IGV0dGVyIGRldHRlLgoKICAyLiBWZWxnIGV0IGZpbG5hdm4gcOUgZW4gZmlsIHNvbSBpa2tlIGZpbm5lcywgc29tIGZvciBla3NlbXBlbCAgVEVTVAkuCgogIDMuIFNrcml2ICA6dyBURVNUICAoZGVyIFRFU1QgZXIgZmlsbmF2bmV0IGR1IHZlbGdlcikuCgogIDQuIERldHRlIGxhZ3JlciBoZWxlIGZpbGVuIChkZW5uZSBpbm5m+HJpbmdlbikgdW5kZXIgbmF2bmV0IFRFU1QgLiBGb3Ig5QogICAgIHNqZWtrZSBkZXR0ZSwgc2tyaXYgIDohZGlyICBpZ2plbiBmb3Ig5SBzZSBpbm5ob2xkZXQgYXYga2F0YWxvZ2VuLgoKLS0tPiBIdmlzIGR1IG7lIGhhZGRlIGF2c2x1dHRldCBWaW0gb2cgc3RhcnRldCBw5SBueXR0IGlnamVuIG1lZCBmaWxuYXZuZXQKICAgICBURVNULCB2aWxsZSBmaWxlbiB25nJ0IGVuIGVrc2FrdCBrb3BpIGF2IGlubmb4cmluZ2VuIGRhIGR1IGxhZ3JldCBkZW4uCgogIDUuIEZqZXJuIGZpbGVuIHZlZCDlIHNrcml2ZSAgOiFybSBURVNUICBodmlzIGR1IGVyIHDlIGV0IFVOSVgtbGlnbmVuZGUKICAgICBvcGVyYXRpdnN5c3RlbSwgZWxsZXIgIDohZGVsIFRFU1QJaHZpcyBkdSBicnVrZXIgTVMtRE9TLgoKCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoJCSAgICBMZWtzam9uIDUuMzogREVMVklTIExBR1JJTkcgQVYgRU4gRklMCgoKCSAgKiogRm9yIOUgbGFncmUgZW4gZGVsIGF2IGVuIGZpbCwgc2tyaXYgIDojLCMgdyBGSUxOQVZOICAqKgoKICAxLiBFbiBnYW5nIHRpbDogU2tyaXYgIDohZGlyCWVsbGVyICA6IWxzICBmb3Ig5SBm5SBlbiBsaXN0ZSBvdmVyIGZpbGVuZSBpCiAgICAga2F0YWxvZ2VuLiBWZWxnIGV0IHBhc3NlbmRlIGZpbG5hdm4sIHNvbSAgVEVTVCAgLgoKICAyLiBGbHl0dCBtYXJr+HJlbiB0aWwgdG9wcGVuIGF2IGRlbm5lIHNpZGVuIG9nIHRyeWtrIEN0cmwtZyBmb3Ig5SBmaW5uZQogICAgIG51bW1lcmV0IHDlIGRlbm5lIGxpbmplbi4gSFVTSyBERVRURSBOVU1NRVJFVCEKCiAgMy4gR+UgdGlsIG5lZGVyc3RlIGxpbmplIHDlIHNramVybWVuIG9nIHRyeWtrIEN0cmwtZyBpZ2plbi4gSFVTSyBERVRURQogICAgIExJTkpFTlVNTUVSRVQgT0dTxSEKCiAgNC4gRm9yIOUgbGFncmUgQkFSRSBlbiBkZWwgYXYgZmlsZW4sIHNrcml2ICA6IywjIHcgVEVTVCAgaHZvciAjLCMgZXIgZGUgdG8KICAgICBudW1yZW5lIGR1IHNrdWxsZSBodXNrZSAodG9wcCBvZyBidW5uKSBvZwlURVNUICBlciBmaWxuYXZuZXQuCgogIDUuIFNqZWtrIG1lZAk6IWRpciAgb20gZmlsZW4gZXIgZGVyLCBtZW4gSUtLRSBzbGV0dCBkZW4uCgoKCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQlMZWtzam9uIDUuNDogSEVOVElORyBPRyBTQU1NRU5TTMVJTkcgQVYgRklMRVIKCgoqKiBGb3Ig5SBsZXNlIGlubiBlbiBhbm5lbiBmaWwgaW5uIGkgbuV25nJlbmRlIGJ1ZmZlciwgc2tyaXYgIDpyIEZJTE5BVk4gIC4gKioKCiAgMS4gU2tyaXYgIDohZGlyICBmb3Ig5SBmb3JzaWtyZSBkZWcgb20gYXQgZmlsZW4gIFRFU1QgIGZpbm5lcy4KCiAgMi4gUGxhc3NlciBtYXJr+HJlbiBw5SB0b3BwZW4gYXYgZGVubmUgc2lkZW4uCgpNRVJLOiAgRXR0ZXIgYXQgZHUgaGFyIHV0ZvhydCBzdGVnIDMgdmlsIGR1IHNlIGxla3Nqb24gNS4zLiBH5SBuZWRvdmVyIGZvcmJpCiAgICAgICBkZW4gb2cgdGlsIGRlbm5lIHBvc2lzam9uZW4gaWdqZW4uCgogIDMuIEhlbnQgq1RFU1S7LWZpbGVuIGRpbiBtZWQga29tbWFuZG9lbiAgOnIgVEVTVCAgZGVyIFRFU1QgZXIgbmF2bmV0IHDlCiAgICAgZmlsZW4uCgpNRVJLOiBGaWxlbiBkdSBoZW50ZXIgdmlsIGJsaSBwbGFzc2VydCBkZXIgbWFya/hyZW4gc3Tlci4KCiAgNC4gRm9yIOUgc2pla2tlIGF0IGZpbGVuIGJsZSBoZW50ZXQsIGflIHRpbGJha2Ugb2cgc2UgYXQgZGV0IGVyIHRvIGtvcGllciBhdgogICAgIGxla3Nqb24gNS4zLCBvcmlnaW5hbGVuIG9nIGRlbm5lIHZlcnNqb25lbi4KCgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJCSAgT1BQU1VNTUVSSU5HIEFWIExFS1NKT04gNQoKCiAgMS4gIDohS09NTUFORE8gIHV0ZvhyZXIgZW4gZWtzdGVybiBrb21tYW5kaW8uCgoJTm9lbiBueXR0aWdlIGVrc2VtcGxlciBlcjoKCSAgICAoTVMtRE9TKQkoVW5peCkKCSAgICAgOiFkaXIJIDohbHMJICAgIC0tIExpc3QgZmlsZW5lIGkga2F0YWxvZ2VuCgkgICAgIDohZGVsIEZJTAkgOiFybSBGSUwgICAtLSBTbGV0dCBmaWxlbiAgRklMCgogIDIuICA6dyBGSUxOQVZOICBza3JpdmVyIGRlbiBmaWxlbiBkdSBzdOVyIGkgdGlsIGRpc2tlbiBtZWQgbmF2bmV0IEZJTE5BVk4gLgoKICAzLiAgOiMsI3cgRklMTkFWTiAgbGFncmVyIGxpbmplbmUgIyB0aWwgIyB0aWwgZmlsZW4gRklMTkFWTiAuCgogIDQuICA6ciBGSUxOQVZOICBoZW50ZXIgaW5uIGVuIGFubmVuIGZpbCBvZyBsZWdnZXIgZGVuIGlubiBsaWtlIGV0dGVyCiAgICAgIG1hcmv4cmVuLgoKCgoKCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkJTGVrc2pvbiA2LjE6IKvFUE5FIExJTkpFuy1LT01NQU5ET0VOCgoKICAgICAqKiBTa3JpdiAgbyAgZm9yIOUgq+VwbmUgb3BwuyBmb3IgZW4gbnkgbGluamUgZXR0ZXIgbWFya/hyZW4gb2cgZ+UgaQoJaW5uc2V0dGluZ3Ntb2R1cyAqKgoKICAxLiBGbHl0dCBtYXJr+HJlbiB0aWwgbGluamVuIG5lZGVuZm9yIG1lcmtldAktLS0+ICAuCgogIDIuIFNrcml2ICBvICAobGl0ZW4gbykgZm9yIOUgc3RhcnRlIHDlIGVuIG55IGxpbmplIG5lZGVuZm9yIG1hcmv4cmVuIG9nIGflCiAgICAgb3ZlciB0aWwgaW5uc2V0dGluZ3Ntb2R1cy4KCiAgMy4gS29waWVyIGxpbmplbiBzb20gZXIgbWVya2V0ICAtLS0+CW9nIHRyeWtrIDxFU0M+IGZvciDlIGF2c2x1dHRlCiAgICAgaW5uc2V0dGluZ3Ntb2R1c2VuLgoKLS0tPiBFdHRlciBhdCAgbyAgZXIgc2tyZXZldCBibGlyIG1hcmv4cmVuIHBsYXNzZXJ0IHDlIGRlbiB0b21tZSBsaW5qZW4uCgogIDQuIEZvciDlIGxhZ2UgZW4gbnkgbGluamUgT1ZFUiBtYXJr+HJlbiwgdHJ5a2sgcmV0dCBvZyBzbGV0dCBlbiBzdG9yIE8KICAgICBpc3RlZGVuZm9yIGVuIGxpdGVuIG8gLiBQcvh2IGRldHRlIHDlIGxpbmplbiBuZWRlbmZvci4KLS0tPiBMYWcgZW4gbnksIHRvbSBsaW5qZSBvdmVyIGRlbm5lIG1lZCBTaGlmdC1PIG1lbnMgbWFya/hyZW4gc3TlciBw5SBkZW4uCgoKCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoJCSAgICAgIExla3Nqb24gNi4yOiCrTEVHRyBUSUy7LUtPTU1BTkRPRU4KCgoJICAgICoqIFNrcml2ICBhICBmb3Ig5SBsZWdnZSB0aWwgdGVrc3QgRVRURVIgbWFya/hyZW4uICoqCgogIDEuIEZseXR0IG1hcmv4cmVuIHRpbCBzbHV0dGVuIGF2IGRlbiBm+HJzdGUgbGluamVuIG1lcmtldCAgLS0tPiAgdmVkIOUKICAgICB0cnlra2UgICQJaSBub3JtYWxtb2R1c2VuLgoKICAyLiBUcnlrayAgYSAgKGxpdGVuIGEpIGZvciDlIGxlZ2dlIHRpbCB0ZWtzdCBFVFRFUiB0ZWduZXQgdW5kZXIgbWFya/hyZW4uCiAgICAgKFN0b3IgQSBsZWdnZXIgdGlsIHDlIHNsdXR0ZW4gYXYgbGluamVuLikKCk1FUks6IERldHRlIGdq+HIgYXQgZHUgc2xpcHBlciDlIHRyeWtrZSAgaSAgLCBkZXQgc2lzdGUgdGVnbmV0LCB0ZWtzdGVuIHNvbQogICAgICBza2FsIHNldHRlcyBpbm4sIDxFU0M+LCBo+HlyZXBpbCBvZyB0aWwgc2lzdCwgIHgJYmFyZSBmb3Ig5SBsZWdnZSB0aWwKICAgICAgcOUgc2x1dHRlbiBhdiBlbiBsaW5qZSEKCiAgMy4gR2r4ciBmZXJkaWcgZGVuIPh2ZXJzdGUgbGluamVuLiBMZWdnIG1lcmtlIHRpbCBhdCCrbGVnZyB0aWy7IGVyIGRldCBzYW1tZQogICAgIHNvbSBpbm5zZXR0aW5nc21vZHVzZW4sIG1lZCBkZW4gZm9yc2tqZWxsZW4gaHZvciB0ZWtzdGVuIHNldHRlcyBpbm4uCgotLS0+IFDlIGRlbm5lIGxpbmplbiBt5SBkZXQgbGVnZ2VzCi0tLT4gUOUgZGVubmUgbGluamVuIG3lIGRldCBsZWdnZXMgdGlsIHRla3N0IHDlIHNsdXR0ZW4uCgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJICBMZWtzam9uIDYuMzogRU4gQU5ORU4gVkVSU0pPTiBBViCrRVJTVEFUVLsKCgoJICAgKiogU2tyaXYgIFIJZm9yIOUgZXJzdGF0dGUgbWVyIGVubiBldHQgdGVnbi4gKioKCiAgMS4gRmx5dHQgbWFya/hyZW4gdGlsIGRlbiBm+HJzdGUgbGluamVuIG5lZGVuZm9yIG1lcmtldCAgLS0tPiAgLgoKICAyLiBQbGFzc2VyIG1hcmv4cmVuIHDlIGJlZ3lubmVsc2VuIGF2IGRldCBm+HJzdGUgb3JkZXQgc29tIGVyIGZvcnNramVsbGlnCiAgICAgZnJhIGRlbiBhbmRyZSBsaW5qZW4gbWVya2V0ICAtLS0+CShvcmRldCCrc2lzdGW7KS4KCiAgMy4gVHJ5a2sgIFIgIG9nIGVyc3RhdHQgcmVzdGVuIGF2IGxpbmplbiBtZWQgZGVuIHNhbW1lIHRla3N0ZW4gc29tIHN05XIgcOUKICAgICBkZW4gYW5kcmUgbGluamVuLgoKLS0tPiBGb3Ig5SBnavhyZSBkZW4gZvhyc3RlIGxpbmplbiBsaWsgZGVuIGFuZHJlLCBt5SBib2tzdGF2ZW4gc3RvciBSIGJydWtlcy4KLS0tPiBGb3Ig5SBnavhyZSBkZW4gZvhyc3RlIGxpbmplbiBsaWsgZGVuIGFuZHJlLCB0cnlrayBSIG9nIGRlbiBueWUgdGVrc3Rlbi4KCiAgNC4gTGVnZyBtZXJrZSB0aWwgYXQgbuVyIGR1IHRyeWtrZXIgPEVTQz4gZm9yIOUgYXZzbHV0dGUsIGJldmFyZXMgdGVrc3RlbgogICAgIHNvbSBpa2tlIGVyIHJlZGlnZXJ0LgoKCgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJCSAgICBMZWtzam9uIDYuNDogU0VUVCBWQUxHCgoKICoqIFNldHQgZXQgdmFsZyBz5SBldCBz+GsgZWxsZXIgZXJzdGF0bmluZyBpZ25vcmVyZXIgc3RvcmUvc23lIGJva3N0YXZlci4gKioKCiAgMS4gTGV0IGV0dGVyIKtpZ25vcmW7IHZlZCDlIHNrcml2ZToKICAgICAvaWdub3JlIDxFTlRFUj4KICAgICBSZXBldGVyIGZsZXJlIGdhbmdlciB2ZWQg5SB0cnlra2UJbiAgLgoKICAyLiBTZXR0IKtpY7stdmFsZ2V0IChJZ25vcmUgQ2FzZSkgdmVkIOUgc2tyaXZlOgogICAgIDpzZXQgaWMKCiAgMy4gTGV0IGV0dGVyIKtpZ25vcmW7IGlnamVuIHZlZCDlIHNrcml2ZTogIG4KICAgICBSZXBldGVyIHP4a2V0IGZsZXJlIGdhbmdlciB2ZWQg5SB0cnlra2UgIG4gIC4KCiAgNC4gU2V0dCCraGxzZWFyY2i7LSBvZyCraW5jc2VhcmNouy12YWxnZW5lOgogICAgIDpzZXQgaGxzIGlzCgogIDUuIFNrcml2IHP4a2Vrb21tYW5kb2VuIGlnamVuLCBvZyBzZSBodmEgc29tIHNramVyOgogICAgIC9pZ25vcmUgPEVOVEVSPgoKICA2LiBIdmlzIGR1IHZpbCBzbOUgYXYgdXRoZXZpbmdlbiBw5SBz+GtldGVrc3Rlbiwgc2tyaXYgIDpub2hsc2VhcmNoCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoJCQkgIE9QUFNVTU1FUklORyBBViBMRUtTSk9OIDYKCgogIDEuIFRyeWtrICBvICBmb3Ig5SBsZWdnZSB0aWwgZW4gbGluamUgTkVERU5GT1IgbWFya/hyZW4gb2cgcGxhc3NlcmUgbWFya/hyZW4KICAgICBw5SBkZW4gbnllIGxpbmplbiBpIGlubnNldHRpbmdzbW9kdXMuCiAgICAgSHZpcyBkdSB0cnlra2VyIGVuIHN0b3IgTyDlcG5lcyBsaW5qZW4gT1ZFUiBsaW5qZW4gbWFya/hyZW4gc3TlciBw5S4KCiAgMi4gU2tyaXYgZW4gIGEgIGZvciDlIHNldHRlIGlubiB0ZWtzdCBFVFRFUiB0ZWduZXQgbWFya/hyZW4gZXIgcOUuCiAgICAgRW4gc3RvciBBIHZpbCBsZWdnZSB0aWwgdGVrc3QgcOUgc2x1dHRlbiBhdiBsaW5qZW4uCgogIDMuIFZlZCDlIHRyeWtrZSAgUiAgZm9yIGflciBpbm4gaSBlcnN0YXRuaW5nc21vZHVzIGhlbHQgdGlsIDxFU0M+IHRyeWtrZXMKICAgICBmb3Ig5SBhdnNsdXR0ZSBtb2R1c2VuLgoKICA0LiBTa3JpdiAgOnNldCB4eHggIGZvciDlIHNldHRlIHZhbGdldCCreHh4uy4KCgoKCgoKCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkgIExFS1NKT04gNzogVElMR0pFTkdFTElHRSBISkVMUEVLT01NQU5ET0VSCgoKCQkgICoqIEJydWsgZGV0IGlubmVieWdnZWRlIGhqZWxwZXN5c3RlbWV0LiAqKgoKICBWaW0gaGFyIGV0IG9tZmF0dGVuZGUgaW5uZWJ5Z2dldCBoamVscGVzeXN0ZW0uIEZvciDlIHN0YXJ0ZSBkZXQsIHBy+HYgZW4gYXYKICBkaXNzZSBt5XRlbmU6CiAgICAtIFRyeWtrIEhqZWxwLXRhc3RlbiAoaHZpcyBkdSBoYXIgbm9lbikKICAgIC0gVHJ5a2sgRjEtdGFzdGVuIChodmlzIGR1IGhhciBub2VuKQogICAgLSBTa3JpdiAgOmhlbHAgPEVOVEVSPgoKICBTa3JpdiAgOnEgPEVOVEVSPiAgZm9yIOUgbHVra2UgaGplbHBldmluZHVldC4KCiAgRHUga2FuIGblIGhqZWxwIHDlIG9tdHJlbnQgYWxsZSB0ZW1hZXIgb20gVmltIHZlZCDlIHNrcml2ZSBldCBwYXJhbWV0ZXIgdGlsCiAgqzpoZWxwuy1rb21tYW5kb2VuLiBQcvh2IGRpc3NlIChpa2tlIGdsZW0gRW50ZXIgZXR0ZXIgaHZlcik6CgogICAgOmhlbHAgdwogICAgOmhlbHAgYzxUCiAgICA6aGVscCBpbnNlcnQtaW5kZXgKICAgIDpoZWxwIHVzZXItbWFudWFsCgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJICAgICAgTEVLU0pPTiA4OiBMQUcgRVQgT1BQU1RBUlRTU0tSSVBUCgoKCQkJKiogU2zlIHDlIGZ1bmtzam9uZXIgaSBWaW0uICoqCgogIFZpbSBoYXIgbWFuZ2UgZmxlcmUgZnVua3Nqb25lciBlbm4gVmksIG1lbiBmbGVzdGVwYXJ0ZW4gYXYgZGVtIGVyIHNs5XR0IGF2CiAgc29tIHN0YW5kYXJkLiBGb3Ig5SBiZWd5bm5lIOUgYnJ1a2UgZGVtIGthbiBkdSBsYWdlIGVuIKt2aW1yY7stZmlsLgoKICAxLiBTdGFydCByZWRpZ2VyaW5nZW4gYXYgq3ZpbXJjuy1maWxlbiwgZGV0dGUgYXZoZW5nZXIgYXYgc3lzdGVtZXQgZGl0dDoKICAgICAgIDplZGl0IH4vLnZpbXJjCSAgZm9yIFVOSVgKICAgICAgIDplZGl0ICRWSU0vX3ZpbXJjICBmb3IgTVMgV2luZG93cwoKICAyLiBMZXMgaW5uIGVrc2VtcGVsZmlsZW4gZm9yIKt2aW1yY7s6CiAgICAgICA6cmVhZCAkVklNUlVOVElNRS92aW1yY19leGFtcGxlLnZpbQoKICAzLiBMYWdyZSBmaWxlbiBtZWQ6CiAgICAgICA6d3JpdGUKCiAgTmVzdGUgZ2FuZyBkdSBzdGFydGVyIFZpbSB2aWwgZGVuIGJydWtlIGZhcmdlciBvZyB1dGhldmluZyBpIGhlbmhvbGQgdGlsCiAgc3ludGFrc2VuIGkgZmlsZW4uIFZlZCDlIGxlZ2dlIGlubiBmb3Jza2plbGxpZ2UgdmFsZyBpIKt2aW1yY7stZmlsZW4sIGthbiBkdQogIGZvcmFuZHJlIG9wcHNldHRldCBpIFZpbSB0aWwgZGV0IGR1IGZvcmV0cmVra2VyLgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgSGVyIHNsdXR0ZXIgaW5uZvhyaW5nZW4gaSBWaW0uIERlbiB2YXIgbWVudCBzb20gZW4gcmFzayBvdmVyc2lrdCBvdmVyCiAgZWRpdG9yZW4sIGFra3VyYXQgbm9rIHRpbCDlIGxhIGRlZyBzZXR0ZSBpIGdhbmcgbWVkIGVua2VsIGJydWsuIERlbiBlciBw5QogIGxhbmd0IG7mciBrb21wbGV0dCwgZGEgVmltIGhhciBtYW5nZSBmbGVyZSBrb21tYW5kb2VyLiBMZXMgYnJ1a3NhbnZpc25pbmdlbgogIHZlZCDlIHNrcml2ZQk6aGVscCB1c2VyLW1hbnVhbCAgLgoKICBGb3IgdmlkZXJlIGxlc2luZyBvZyBzdHVkaWVyLCBrYW4gZGVubmUgYm9rZW4gYW5iZWZhbGVzOgogICAgICCrVmltIC0gVmkgSW1wcm92ZWS7IGF2IFN0ZXZlIE91YWxsaW5lCiAgICAgIFV0Z2l2ZXI6IE5ldyBSaWRlcnMKICBEZW4gZvhyc3RuZXZudGUgYm9rZW4gZXIgZnVsbHQgb2cgaGVsdCBkZWRpa2VydCB0aWwgVmltLiBTcGVzaWVsdCBueXR0aWcKICBmb3IgbnliZWd5bm5lcmUuIElubmVob2xkZXIgbWFuZ2UgZWtzZW1wbGVyIG9nIGlsbHVzdHJhc2pvbmVyLgogIFNlIGh0dHA6Ly9pY2NmLWhvbGxhbmQub3JnL2NsaWNrNS5odG1sCgogIERlbm5lIGJva2VuIGVyIGVsZHJlIG9nIGhhbmRsZXIgbWVyIG9tIFZpIGVubiBWaW0sIG1lbiBhbmJlZmFsZXMgb2dz5ToKICAgICAgq0xlYXJuaW5nIHRoZSBWaSBFZGl0b3K7IGF2IExpbmRhIExhbWIKICAgICAgVXRnaXZlcjogTydSZWlsbHkgJiBBc3NvY2lhdGVzIEluYy4KICBEZXQgZXIgZW4gZ29kIGJvayBmb3Ig5SBm5SB2aXRlIG9tdHJlbnQgaHZhIHNvbSBoZWxzdCBvbSBWaS4KICBEZW4gc2pldHRlIHV0Z2F2ZW4gaW5uZWhvbGRlciBvZ3PlIGluZm9ybWFzam9uIG9tIFZpbS4KCiAgRGVubmUgaW5uZvhyaW5nZW4gZXIgc2tyZXZldCBhdiBNaWNoYWVsIEMuIFBpZXJjZSBvZyBSb2JlcnQgSy4gV2FyZSwKICBDb2xvcmFkbyBTY2hvb2wgb2YgTWluZXMgbWVkIGlk6WVyIGF2IENoYXJsZXMgU21pdGgsIENvbG9yYWRvIFN0YXRlCiAgVW5pdmVyc2l0eS4gRW1haWw6IGJ3YXJlQG1pbmVzLmNvbG9yYWRvLmVkdSAuCgogIE1vZGlmaXNlcnQgZm9yIFZpbSBhdiBCcmFtIE1vb2xlbmFhci4KICBPdmVyc2F0dCBhdiDYeXZpbmQgQS4gSG9sbSAtLSBzdW5ueSBfQVRfIHN1bmJhc2Uub3JnCiAgdHV0b3Iubm8gMjc5IDIwMDQtMDUtMTIgMDk6MjE6NTNaIHN1bm55Cgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdmltOiBzZXQgdHM9OCA6Cg==