PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo9ICAgIEJlbnZlbnV0byAgYWxsYSAgIEcgdSBpIGQgYSAgICBhbGwnRWRpdG9yICAgViBJIE0gICAtICAgIFZlcnNpb25lIDEuNyAgICA9Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCiAgICAgVmltIOggdW4gRWRpdG9yIG1vbHRvIHBvdGVudGUgZWQgaGEgcGFyZWNjaGkgY29tYW5kaSwgdHJvcHBpIHBlcgogICAgIHNwaWVnYXJsaSB0dXR0aSBpbiB1bmEgZ3VpZGEgY29tZSBxdWVzdGEuICBRdWVzdGEgZ3VpZGEgc2VydmUgYQogICAgIGRlc2NyaXZlcmUgcXVlaSBjb21hbmRpIGNoZSB0aSBwZXJtZXR0b25vIGRpIHVzYXJlIGZhY2lsbWVudGUKICAgICBWaW0gY29tZSBFZGl0b3IgZGkgdXNvIGdlbmVyYWxlLgoKICAgICBJbCB0ZW1wbyBuZWNlc3NhcmlvIHBlciBjb21wbGV0YXJlIGxhIGd1aWRhIOggY2lyY2EgMjUtMzAgbWludXRpLAogICAgIGEgc2Vjb25kYSBkaSBxdWFudG8gdGVtcG8gZGVkaWNoaSBhbGxhIHNwZXJpbWVudGF6aW9uZS4KCiAgICAgQVRURU5aSU9ORSEKICAgICBJIGNvbWFuZGkgbmVsbGUgbGV6aW9uaSBtb2RpZmljYW5vIHF1ZXN0byB0ZXN0by4gRmFpIHVuYSBjb3BpYSBkaSBxdWVzdG8KICAgICBmaWxlIHBlciBlc2VyY2l0YXJ0aSAoc2UgaGFpIHVzYXRvICJ2aW10dXRvciIsIHN0YWkgZ2ngIHVzYW5kbyB1bmEgY29waWEpLgoKICAgICBFJyBpbXBvcnRhbnRlIG5vbiBzY29yZGFyZSBjaGUgcXVlc3RhIGd1aWRhIHZ1b2xlIGluc2VnbmFyZSB0cmFtaXRlCiAgICAgbCd1c28uIFF1ZXN0byB2dW9sIGRpcmUgY2hlIGRldmkgZXNlZ3VpcmUgaSBjb21hbmRpIHBlciBpbXBhcmFybGkKICAgICBkYXZ2ZXJvLiBTZSBsZWdnaSBpbCB0ZXN0byBlIGJhc3RhLCBkaW1lbnRpY2hlcmFpIHByZXN0byBpIGNvbWFuZGkhCgogICAgIEFkZXNzbywgYXNzaWN1cmF0aSBjaGUgaWwgdGFzdG8gQkxPQ0NBLU1BSVVTQ09MTyBub24gc2lhIHNjaGlhY2NpYXRvCiAgICAgZSBwcmVtaSBpbCB0YXN0byAgICBqICAgIHRhbnRvIGRhIG11b3ZlcmUgaWwgY3Vyc29yZSBmaW5vIGEgY2hlIGxhCiAgICAgTGV6aW9uZSAxLjEgcmllbXBpYSBjb21wbGV0YW1lbnRlIGxvIHNjaGVybW8uCn5+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+fgoJCQlMZXppb25lIDEuMTogIE1PVklNRU5USSBERUwgQ1VSU09SRQoKCiAgICoqIFBlciBtdW92ZXJlIGlsIGN1cnNvcmUsIHByZW1pIGkgdGFzdGkgaCxqLGssbCBjb21lIGluZGljYXRvLiAqKgoJICAgICBeCgkgICAgIGsJCSAgICBOT1RBOiAgSWwgdGFzdG8gaCDoIGEgc2luaXN0cmEgZSBtdW92ZSBhIHNpbmlzdHJhLgogICAgICAgPCBoCSBsID4JCSAgIElsIHRhc3RvIGwg6CBhIGRlc3RyYSBlIG11b3ZlIGEgZGVzdHJhLgoJICAgICBqCQkJICAgSWwgdGFzdG8gaiByaWNvcmRhIHVuYSBmcmVjY2lhIGluIGdp+S4KCSAgICAgdgogIDEuIE11b3ZpIGlsIGN1cnNvcmUgc3VsbG8gc2NoZXJtbyBmaW5jaOkgbm9uIHRpIHNlbnRpIGEgdHVvIGFnaW8uCgogIDIuIFRpZW5pIHNjaGlhY2NpYXRvIGlsIHRhc3RvICJnafkiIChqKSBmaW5jaOkgbm9uIHNpIHJpcGV0ZSBpbCBtb3ZpbWVudG8uCiAgICAgQWRlc3NvIHNhaSBjb21lIGFycml2YXJlIGZpbm8gYWxsYSBsZXppb25lIHNlZ3VlbnRlLgoKICAzLiBVc2FuZG8gaWwgdGFzdG8gImdp+SIgc3Bvc3RhdGkgYWxsYSBMZXppb25lIDEuMi4KCk5PVEE6IFF1YW5kbyBub24gc2VpIHNpY3VybyBkZWwgdGFzdG8gY2hlIGhhaSBwcmVtdXRvLCBwcmVtaSA8RVNDPiBwZXIgYW5kYXJlCiAgICAgIGluIE1vZGFsaXTgIE5vcm1hbGUgW05vcm1hbCBNb2RlXS4gUG9pIHJpLWltbWV0dGkgaWwgY29tYW5kbyBjaGUgdm9sZXZpLgoKTk9UQTogSSB0YXN0aSBjb24gbGUgZnJlY2NlIGZhbm5vIGxvIHN0ZXNzbyBzZXJ2aXppby4gTWEgdXNhbmRvIGhqa2wgcmllc2NpCiAgICAgIGEgbXVvdmVydGkgbW9sdG8gcGn5IHJhcGlkYW1lbnRlLCBkb3BvIGNoZSBjaSBzaSBhYml0dWEuICBEYXZ2ZXJvIQoKfn5+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+CgkJCUxlemlvbmUgMS4yOiBVU0NJUkUgREEgVklNCgoKICAhISBOT1RBOiBQcmltYSBkaSBlc2VndWlyZSBxdWFudG8gcmljaGllc3RvLCBsZWdnaSBsYSBMZXppb25lIHBlciBpbnRlcm8hIQoKICAxLiBQcmVtaSBpbCB0YXN0byA8RVNDPiAocGVyIGFzc2ljdXJhcnRpIGRpIGVzc2VyZSBpbiBNb2RhbGl04CBOb3JtYWxlKS4KCiAgMi4gQmF0dGk6ICAgICA6cSEgPElOVklPPi4KICAgICBDb3PsIGVzY2kgZGFsbCdFZGl0b3IgU0NBUlRBTkRPIHF1YWxzaWFzaSBtb2RpZmljYSBmYXR0YS4KCiAgMy4gUXVhbmRvIHZlZGkgaWwgUFJPTVBUIGRlbGxhIFNoZWxsLCBiYXR0aSBpbCBjb21hbmRvIGNvbiBjdWkgc2VpIGFycml2YXRvCiAgICAgcXVpLiAgU2FyZWJiZToJdmltdHV0b3IgPElOVklPPgoKICA0LiBTZSBoYWkgbWVtb3JpenphdG8gcXVlc3RpIGNvbWFuZGkgZSB0aSBzZW50aSBwcm9udG8sIGVzZWd1aSBpIHBhc3NpCiAgICAgZGEgMSBhIDMgcGVyIHVzY2lyZSBlIHJpZW50cmFyZSBuZWxsJ0VkaXRvci4KCk5PVEE6ICA6cSEgPElOVklPPiBTQ0FSVEEgcXVhbHNpYXNpIG1vZGlmaWNhIGZhdHRhLiAgSW4gdW5hIGRlbGxlIHByb3NzaW1lCiAgICAgICBsZXppb25pIGltcGFyZXJhaSBjb21lIHNhbHZhcmUgdW4gZmlsZSBjaGUgaGFpIG1vZGlmaWNhdG8uCgogIDUuIE11b3ZpIGluIGdp+SBpbCBjdXJzb3JlIHBlciBwYXNzYXJlIGFsbGEgbGV6aW9uZSAxLjMuCgoKfn5+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+CgkJTGV6aW9uZSAxLjM6IE1PRElGSUNBIERJIFRFU1RJIC0gQ0FOQ0VMTEFaSU9ORQoKCgkqKiBQcmVtZXJlICB4ICBwZXIgY2FuY2VsbGFyZSBpbCBjYXJhdHRlcmUgc290dG8gYWwgY3Vyc29yZSAqKgoKICAxLiBNdW92aSBpbCBjdXJzb3JlIGFsbGEgbGluZWEgcGn5IHNvdHRvLCBpbmRpY2F0YSBkYSAtLS0+LgoKICAyLiBQZXIgY29ycmVnZ2VyZSBlcnJvcmksIG11b3ZpIGlsIGN1cnNvcmUgZmlubyBhIHBvc2l6aW9uYXJsbyBzb3ByYSBpbAogICAgIGNhcmF0dGVyZSBkYSBjYW5jZWxsYXJlLgoKICAzLiBQcmVtaSBpbCB0YXN0bwl4ICAgICBwZXIgY2FuY2VsbGFyZSBpbCBjYXJhdHRlcmUgc2JhZ2xpYXRvLgoKICA0LiBSaXBldGkgaSBwYXNzaSBkYSAyIGEgNCBmaW5jaOkgbGEgZnJhc2Ug6CBjb3JyZXR0YS4KCi0tLT4gTGEgbW11Y2NhIHNhbHTy8iBmaW5ub28gYWxsYWEgbHVubm5hLgoKICA1LiBPcmEgY2hlIGxhIGxpbmVhIOggY29ycmV0dGEsIHZhaSBhbGxhIExlemlvbmUgMS40CgpOT1RBOiBNZW50cmUgc2VndWkgcXVlc3RhIGd1aWRhLCBub24gY2VyY2FyZSBkaSBpbXBhcmFyZSBhIG1lbW9yaWEsCiAgICAgIG1hIGltcGFyYSBmYWNlbmRvIHByYXRpY2EuCgoKfn5+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+CgkJTGV6aW9uZSAxLjQ6IE1PRElGSUNBIERJIFRFU1RJIC0gSU5TRVJJTUVOVE8KCgogICAgICAgICAgICAgICAgICAgKiogUHJlbWVyZSAgaSAgcGVyIGluc2VyaXJlIHRlc3RvLiAqKgoKICAxLiBNdW92aSBpbCBjdXJzb3JlIGFsbGEgcHJpbWEgbGluZWEgcXVpIHNvdHRvLCBpbmRpY2F0YSBkYSAtLS0+LgoKICAyLiBQZXIgcmVuZGVyZSBsYSBwcmltYSBsaW5lYSB1Z3VhbGUgYWxsYSBzZWNvbmRhLCBtdW92aSBpbCBjdXJzb3JlIHNvcHJhCiAgICAgaWwgcHJpbW8gY2FyYXR0ZXJlIERPUE8gbGEgcG9zaXppb25lIGluIGN1aSBpbCB0ZXN0byB2YSBpbnNlcml0by4KCiAgMy4gUHJlbWkgIGkgIGUgYmF0dGkgbGUgYWdnaXVudGUgb3Bwb3J0dW5lLgoKICA0LiBRdWFuZG8gdW4gZXJyb3JlIOggY29ycmV0dG8sIHByZW1pIDxFU0M+IHBlciB0b3JuYXJlIGluIE1vZGFsaXTgIE5vcm1hbGUuCiAgICAgUmlwZXRpIGkgcGFzc2kgZGEgMiBhIDQgZmlubyBhIGNvbXBsZXRhcmUgbGEgY29ycmV6aW9uZSBkZWxsYSBmcmFzZS4KCi0tLT4gQydlcmEgZGVsIHRzdG8gbW5jbnQgcXVlc3RhIC4KLS0tPiBDJ2VyYSBkZWwgdGVzdG8gbWFuY2FudGUgZGEgcXVlc3RhIGxpbmVhLgoKICA1LiBRdWFuZG8gc2VpIGEgdHVvIGFnaW8gbmVsbCdpbnNlcmltZW50byBkaSB0ZXN0byB2YWkgYWxsYSBsZXppb25lIDEuNS4KCgoKfn5+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+CgkJIExlemlvbmUgMS41OiBNT0RJRklDQSBESSBURVNUSSAtIEFHR0lVTlRBCgoKCSAgICoqIFByZW1lcmUgIEEgIHBlciBhZ2dpdW5nZXJlIHRlc3RvIGEgZmluZSBsaW5lYS4gKioKCiAgMS4gTXVvdmkgaWwgY3Vyc29yZSBhbGxhIHByaW1hIGxpbmVhIHF1aSBzb3R0bywgaW5kaWNhdGEgZGEgLS0tPi4KICAgICBOb24gaW1wb3J0YSBkb3ZlIOggcG9zaXppb25hdG8gaWwgY3Vyc29yZSBzdWxsYSBsaW5lYSBzdGVzc2EuCgogIDIuIEJhdHRpICBBICBlIGluc2VyaXNjaSBsZSBuZWNlc3NhcmllIGFnZ2l1bnRlLgoKICAzLiBBbGxhIGZpbmUgZGVsbGEgYWdnaXVudGEgcHJlbWkgPEVTQz4gcGVyIHRvcm5hcmUgaW4gbW9kYWxpdOAgTm9ybWFsZS4KCiAgNC4gTXVvdmkgaWwgY3Vyc29yZSBhbGxhIHNlY29uZGEgbGluZWEgaW5kaWNhdGEgLS0tPiBlIHJpcGV0aQogICAgIGkgcGFzc2kgMiBlIDMgcGVyIGNvcnJlZ2dlcmUgcXVlc3RhIGZyYXNlLgoKLS0tPiBDJ+ggZGVsIHRlc3RvIGNoZSBtYW5jYSBkYSBxdQogICAgIEMn6CBkZWwgdGVzdG8gY2hlIG1hbmNhIGRhIHF1ZXN0YSBsaW5lYS4KLS0tPiBDJ+ggYW5jaGUgZGVsIHRlc3RvIGNoZSBtYQogICAgIEMn6CBhbmNoZSBkZWwgdGVzdG8gY2hlIG1hbmNhIHF1aS4KCiAgNS4gUXVhbmRvIHNlaSBhIHR1byBhZ2lvIG5lbGwnYWdnaXVudGEgZGkgdGVzdG8gdmFpIGFsbGEgbGV6aW9uZSAxLjYuCgp+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+fn4KCQkgICAgIExlemlvbmUgMS42OiBNT0RJRklDQVJFIFVOIEZJTEUKCgoJICAgICAgKiogVXNhcmUgIDp3cSAgcGVyIHNhbHZhcmUgdW4gZmlsZSBlIHVzY2lyZS4gKioKCiAgISEgTk9UQTogUHJpbWEgZGkgZXNlZ3VpcmUgcXVhbnRvIHJpY2hpZXN0bywgbGVnZ2kgbGEgTGV6aW9uZSBwZXIgaW50ZXJvISEKCiAgMS4gRXNjaSBkYSBWaW0gY29tZSBoYWkgZmF0dG8gbmVsbGEgbGV6aW9uZSAxLjI6ICA6cSEKCiAgMi4gUXVhbmRvIHZlZGkgaWwgUFJPTVBUIGRlbGxhIFNoZWxsLCBiYXR0aSBpbCBjb21hbmRvOiAgdmltIHR1dG9yIDxJTlZJTz4KICAgICAndmltJyDoIGlsIGNvbWFuZG8gcGVyIHJpY2hpYW1hcmUgVmltLCAndHV0b3InIOggaWwgbm9tZSBkZWwgZmlsZSBjaGUKICAgICBkZXNpZGVyaSBtb2RpZmljYXJlLiAgVXNhIHVuIGZpbGUgY2hlIHBvc3NhIGVzc2VyZSBtb2RpZmljYXRvLgoKICAzLiBJbnNlcmlzY2kgZSBjYW5jZWxsYSB0ZXN0byBjb21lIGhhaSBpbXBhcmF0byBuZWxsZSBsZXppb25pIHByZWNlZGVudGkuCgogIDQuIFNhbHZhIGlsIGZpbGUgZWQgZXNjaSBkYSBWaW0gY29uOiAgOndxICA8SU5WSU8+CgogIDUuIFJpZW50cmEgaW4gdmltdHV0b3IgZSBzY2VuZGkgYWwgc29tbWFyaW8gY2hlIHNlZ3VlLgoKICA2LiBEb3BvIGF2ZXIgbGV0dG8gaSBwYXNzaSBxdWkgc29wcmEgZWQgYXZlcmxpIGNvbXByZXNpOiBlc2VndWlsaS4KCiAgCn5+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+fgoJCQkgICAgICAgTGV6aW9uZSAxIFNPTU1BUklPCgoKICAxLiBJbCBjdXJzb3JlIHNpIG11b3ZlIHVzYW5kbyBpIHRhc3RpIGNvbiBsZSBmcmVjY2UgbyBpIHRhc3RpIGhqa2wuCgkgaCAoc2luaXN0cmEpCWogKGdp+SkgICAgICAgayAoc3UpCSAgICBsIChkZXN0cmEpCgogIDIuIFBlciBlc2VndWlyZSBWaW0gZGFsIFBST01QVCBkZWxsYSBTaGVsbCBiYXR0aTogIHZpbSBOT01FRklMRSA8SU5WSU8+CgogIDMuIFBlciB1c2NpcmUgZGEgVmltIGJhdHRpOiA8RVNDPiA6cSEgPElOVklPPiBwZXIgdXNjaXJlIHNlbnphIHNhbHZhcmUuCgkJb3BwdXJlIGJhdHRpOiA8RVNDPiA6d3EgPElOVklPPiBwZXIgdXNjaXJlIHNhbHZhbmRvIG1vZGlmaWNoZS4KCiAgNC4gUGVyIGNhbmNlbGxhcmUgaWwgY2FyYXR0ZXJlIHNvdHRvIGFsIGN1cnNvcmUgYmF0dGk6IHgKCiAgNS4gUGVyIGluc2VyaXJlIHRlc3RvIHN1Yml0byBwcmltYSBkZWwgY3Vyc29yZSBiYXR0aToKCSBpICAgICBiYXR0aSB0ZXN0byBpbnNlcml0bwk8RVNDPglpbnNlcmlzY2kgcHJpbWEgZGVsIGN1cnNvcmUKCSBBICAgICBiYXR0aSB0ZXN0byBhZ2dpdW50bwk8RVNDPglhZ2dpdW5naSBhIGZpbmUgbGluZWEKCk5PVEE6IHByZW1lbmRvIDxFU0M+IHJpdG9ybmVyYWkgaW4gTW9kYWxpdOAgTm9ybWFsZSBvIGFubnVsbGVyYWkKICAgICAgdW4gY29tYW5kbyBlcnJhdG8gY2hlIHB1b2kgYXZlciBpbnNlcml0byBpbiBwYXJ0ZS4KCk9yYSBjb250aW51YSBjb24gbGEgTGV6aW9uZSAyLgoKfn5+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+CgkJICAgTGV6aW9uZSAyLjE6IENPTUFOREkgREkgQ0FOQ0VMTEFaSU9ORQoKCgkJKiogQmF0dGkgIGR3ICBwZXIgY2FuY2VsbGFyZSB1bmEgcGFyb2xhLiAqKgoKICAxLiBQcmVtaSAgPEVTQz4gIHBlciBhY2NlcnRhcnRpIGRpIGVzc2VyZSBpbiBNb2RhbGl04CBOb3JtYWxlLgoKICAyLiBNdW92aSBpbCBjdXJzb3JlIGZpbm8gYWxsYSBsaW5lYSBxdWkgc290dG8sIGluZGljYXRhIGRhIC0tLT4uCgogIDMuIE11b3ZpIGlsIGN1cnNvcmUgYWxsJ2luaXppbyBkaSB1bmEgcGFyb2xhIGNoZSB2dW9pIGNhbmNlbGxhcmUuCgogIDQuIEJhdHRpICAgZHcgICBwZXIgY2FuY2VsbGFyZSBsYSBwYXJvbGEuCgpOT1RBOiBMYSBsZXR0ZXJhICBkICBzYXLgIHZpc2liaWxlIHN1bGwndWx0aW1hIGxpbmVhIGRlbGxvIHNjaGVybW8gbWVudHJlIGxhCiAgICAgIGJhdHRpLiBWaW0gYXR0ZW5kZSBjaGUgdHUgYmF0dGEgIHcgLiBTZSB2ZWRpIHVuYSBsZXR0ZXJhIGRpdmVyc2EKICAgICAgZGEgIGQgIGhhaSBiYXR0dXRvIHF1YWxjb3NhIGRpIHNiYWdsaWF0bzsgcHJlbWkgIDxFU0M+ICBlIHJpY29taW5jaWEuCgotLS0+IENpIHNvbm8gbGUgYWxjdW5lIHBhcm9sZSBnaW9pYSBjaGUgbm9uIGMnZW50cmFubyBjYXJ0YSBpbiBxdWVzdGEgZnJhc2UuCgogIDUuIFJpcGV0aSBpIHBhc3NpIDMgZSA0IGZpbmNo6SBsYSBmcmFzZSDoIGNvcnJldHRhLCBwb2kgdmFpIGFsbGEgTGV6aW9uZSAyLjIuCgoKfn5+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+CgkJTGV6aW9uZSAyLjI6IEFMVFJJIENPTUFOREkgREkgQ0FOQ0VMTEFaSU9ORQoKCgkgICAqKiBCYXR0aSAgZCQJcGVyIGNhbmNlbGxhcmUgZmlubyBhIGZpbmUgbGluZWEuICoqCgogIDEuIFByZW1pICA8RVNDPiAgcGVyIGFjY2VydGFydGkgZGkgZXNzZXJlIGluIE1vZGFsaXTgIE5vcm1hbGUuCgogIDIuIE11b3ZpIGlsIGN1cnNvcmUgZmlubyBhbGxhIGxpbmVhIHF1aSBzb3R0bywgaW5kaWNhdGEgZGEgLS0tPi4KCiAgMy4gTXVvdmkgaWwgY3Vyc29yZSBhbGxhIGZpbmUgZGVsbGEgbGluZWEgY29ycmV0dGEgKERPUE8gaWwgcHJpbW8gLiApLgoKICA0LiBCYXR0aSAgICBkJCAgICBwZXIgY2FuY2VsbGFyZSBmaW5vIGEgZmluZSBsaW5lYS4KCi0tLT4gUXVhbGN1bm8gaGEgYmF0dHV0byBsYSBmaW5lIGRpIHF1ZXN0YSBsaW5lYSBkdWUgdm9sdGUuIGxpbmVhIGR1ZSB2b2x0ZS4KCgogIDUuIFZhaSBhbGxhIExlemlvbmUgMi4zIHBlciBjYXBpcmUgaWwgZnVuemlvbmFtZW50byBkaSBxdWVzdG8gY29tYW5kby4KCgoKCgp+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+fn4KCQkgICAgIExlemlvbmUgMi4zOiBPUEVSQVRPUkkgRSBNT1ZJTUVOVEkKCgogIE1vbHRpIGNvbWFuZGkgZGkgbW9kaWZpY2EgdGVzdGkgY29uc2lzdG9ubyBpbiB1biBvcGVyYXRvcmUgZSB1biBtb3ZpbWVudG8uCiAgSWwgZm9ybWF0byBkZWwgY29tYW5kbyBkaSBjYW5jZWxsYXppb25lIGNvbiBsJ29wZXJhdG9yZSAgZCAg6CBpbCBzZWd1ZW50ZToKCgkgZAltb3ZpbWVudG8KCiAgRG92ZToKICAgIGQJICAgICAgLSDoIGwnb3BlcmF0b3JlIGRpIGNhbmNlbGxhemlvbmUKICAgIG1vdmltZW50byAtIGluZGljYSBkb3ZlIGwnb3BlcmF0b3JlIHZhIGFwcGxpY2F0byAobGlzdGEgcXVpIHNvdHRvKS4KCiAgQnJldmUgbGlzdGEgZGkgbW92aW1lbnRpOgogICAgdyAtIGZpbm8gYSBpbml6aW8gZGVsbGEgcGFyb2xhIHNlZ3VlbnRlLCBFU0NMVVNPIGlsIHN1byBwcmltbyBjYXJhdHRlcmUuCiAgICBlIC0gYWxsYSBmaW5lIGRlbGxhIHBhcm9sYSBjb3JyZW50ZSwgQ09NUFJFU08gaWwgc3VvIHVsdGltbyBjYXJhdHRlcmUuCiAgICAkIC0gZGFsIGN1cnNvcmUgZmlubyBhIGZpbmUgbGluZWEsIENPTVBSRVNPIGwndWx0aW1vIGNhcmF0dGVyZSBkZWxsYSBsaW5lYS4KCiAgUXVpbmRpIHNlIGJhdHRpICBkZSAgY2FuY2VsbGkgZGFsIGN1cnNvcmUgZmlubyBhIGZpbmUgcGFyb2xhLgoKTk9UQTogIFNlIGJhdHRpIHNvbG8gaWwgbW92aW1lbnRvIG1lbnRyZSBzZWkgaW4gTW9kYWxpdOAgTm9ybWFsZSwgc2VuemEKICAgICAgIG5lc3N1biBvcGVyYXRvcmUsIGlsIGN1cnNvcmUgc2kgbXVvdmVy4CBjb21lIHNwZWNpZmljYXRvLgoKfn5+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+CgkgTGV6aW9uZSAyLjQ6IFVTTyBESSBVTiBDT05UQVRPUkUgUEVSIFVOIE1PVklNRU5UTwoKCiAgKiogU2UgYmF0dGkgdW4gbnVtZXJvIHByaW1hIGRpIHVuIG1vdmltZW50bywgbG8gcmlwZXRpIGFsdHJldHRhbnRlIHZvbHRlLiAqKgoKICAxLiBNdW92aSBpbCBjdXJzb3JlIGZpbm8gYWxsJ2luaXppbyBkZWxsYSBsaW5lYSBxdWkgc290dG8sIGluZGljYXRhIGRhIC0tLT4uCgogIDIuIEJhdHRpICAydyAgcGVyIHNwb3N0YXJlIGlsIGN1cnNvcmUgZHVlIHBhcm9sZSBwafkgYXZhbnRpLgoKICAzLiBCYXR0aSAgM2UgIHBlciBzcG9zdGFyZSBpbCBjdXJzb3JlIGFsbGEgZmluZSBkZWxsYSB0ZXJ6YSBwYXJvbGEgc2VndWVudGUuCgogIDQuIEJhdHRpICAwICAoemVybykgcGVyIHBvc2l6aW9uYXJ0aSBhbGwnaW5pemlvIGRlbGxhIGxpbmVhLgoKICA1LiBSaXBldGkgaSBwYXNzaSAyIGUgMyB1c2FuZG8gbnVtZXJpIGRpZmZlcmVudGkuCgotLS0+IFF1ZXN0YSDoIHNvbG8gdW5hIGxpbmVhIGNvbiBwYXJvbGUgYWxsJ2ludGVybm8gZGVsbGEgcXVhbGUgcHVvaSBtdW92ZXJ0aS4KCiAgNi4gVmFpIGFsbGEgTGV6aW9uZSAyLjUuCgoKCgp+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+fn4KCUxlemlvbmUgMi41OiBVU08gREkgVU4gQ09OVEFUT1JFIFBFUiBDQU5DRUxMQVJFIERJIFBJVScKCgogICoqIFNlIGJhdHRpIHVuIG51bWVybyBwcmltYSBkaSB1biBtb3ZpbWVudG8sIGxvIHJpcGV0aSBhbHRyZXR0YW50ZSB2b2x0ZS4gKioKCiAgTmVsbGEgY29tYmluYXppb25lIGRlbGwnb3BlcmF0b3JlIGNhbmNlbGxhIGUgZGkgdW4gbW92aW1lbnRvLCBkZXNjcml0dG8gcHJpbWEsCiAgaW5zZXJpdGUgdW4gY29udGF0b3JlIHByaW1hIGRlbCBtb3ZpbWVudG8gcGVyIGNhbmNlbGxhcmUgZGkgcGn5OgoJIGQgICBudW1lcm8gICBtb3ZpbWVudG8KCiAgMS4gTXVvdmkgaWwgY3Vyc29yZSBhbGxhIHByaW1hIHBhcm9sYSBNQUlVU0NPTEEgbmVsbGEgcmlnYSBpbmRpY2F0YSBkYSAtLS0+LgoKICAyLiBCYXR0aSAgZDJ3ICBwZXIgY2FuY2VsbGFyZSBsZSBkdWUgcGFyb2xlIE1BSVVTQ09MRQoKICAzLiBSaXBldGkgaSBwYXNzaSAxIGUgMiBjb24gdW4gY29udGF0b3JlIGRpdmVyc28gcGVyIGNhbmNlbGxhcmUgbGUgcGFyb2xlCiAgICAgTUFJVVNDT0xFIGNvbnNlY3V0aXZlIGNvbiB1biBzb2xvIGNvbWFuZG8KCi0tLT4gIHF1ZXN0YSBBQkMgREUgbGluZWEgRkdISSBKSyBMTU4gT1AgZGkgcGFyb2xlIOggUSBSUyBUVVYgb3JhIHJpcHVsaXRhLgoKCgoKCn5+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+fgoJCUxlemlvbmUgMi42OiBMQVZPUkFSRSBTVSBMSU5FRSBJTlRFUkUKCgkgICAgKiogQmF0dGkgIGRkICBwZXIgY2FuY2VsbGFyZSB1bidpbnRlcmEgbGluZWEuICoqCgogIFBlciBsYSBmcmVxdWVuemEgY29uIGN1aSBjYXBpdGEgZGkgY2FuY2VsbGFyZSBsaW5lZSBpbnRlcmUsIGNoaSBoYQogIGRpc2VnbmF0byBWaSBoYSBkZWNpc28gY2hlIHNhcmViYmUgc3RhdG8gcGn5IHNlbXBsaWNlIGJhdHRlcmUKICBkdWUgZCBjb25zZWN1dGl2ZSBwZXIgY2FuY2VsbGFyZSB1bmEgbGluZWEuCgogIDEuIE11b3ZpIGlsIGN1cnNvcmUgYWxsYSBsaW5lYSAyKSBuZWxsYSBmcmFzZSBxdWkgc290dG8uCiAgMi4gQmF0dGkgIGRkICBwZXIgY2FuY2VsbGFyZSBsYSBsaW5lYS4KICAzLiBPcmEgc3Bvc3RhdGkgYWxsYSBsaW5lYSA0KS4KICA0LiBCYXR0aSAgIDJkZCAgIHBlciBjYW5jZWxsYXJlIGR1ZSBsaW5lZS4KCi0tLT4gIDEpICBMZSByb3NlIHNvbm8gcm9zc2UsCi0tLT4gIDIpICBJbCBmYW5nbyDoIGRpdmVydGVudGUsCi0tLT4gIDMpICBMZSB2aW9sZSBzb25vIGJsdSwKLS0tPiAgNCkgIElvIGhvIHVuJ2F1dG9tb2JpbGUsCi0tLT4gIDUpICBHbGkgb3JvbG9naSBzZWduYW5vIGlsIHRlbXBvLAotLS0+ICA2KSAgTG8genVjY2hlcm8g6CBkb2xjZSwKLS0tPiAgNykgIEUgY29z7CBzZWkgYW5jaGUgdHUuCgoKfn5+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+CgkgICAgICBMZXppb25lIDIuNzogSUwgQ09NQU5ETyBVTkRPIFtBTk5VTExBXQoKICAgICoqICBQcmVtaSAgdSAgcGVyIGFubnVsbGFyZSBnbGkgdWx0aW1pIGNvbWFuZGkgZXNlZ3VpdGkuICAqKgogICAgKiogUHJlbWkgIFUgIHBlciBhbm51bGxhcmUgbGUgbW9kaWZpY2hlIGFsbCd1bHRpbWEgbGluZWEuICoqCgogIDEuIE11b3ZpIGlsIGN1cnNvcmUgZmlubyBhbGxhIGxpbmVhIHF1aSBzb3R0bywgaW5kaWNhdGEgZGEgLS0tPi4KICAgICBlIHBvc2l6aW9uYXRpIHN1bCBwcmltbyBlcnJvcmUuCiAgMi4gQmF0dGkgIHggIHBlciBjYW5jZWxsYXJlIGlsIHByaW1vIGNhcmF0dGVyZSBzYmFnbGlhdG8uCiAgMy4gQWRlc3NvIGJhdHRpICB1ICBwZXIgYW5udWxsYXJlIGwndWx0aW1vIGNvbWFuZG8gZXNlZ3VpdG8uCiAgNC4gT3JhIGludmVjZSwgY29ycmVnZ2kgdHV0dGkgZ2xpIGVycm9yaSBzdWxsYSBsaW5lYSB1c2FuZG8gaWwgY29tYW5kbyAgeCAuCiAgNS4gQWRlc3NvIGJhdHRpIHVuYSBVIE1haXVzY29sYSBwZXIgcmlwb3J0YXJlIGxhIGxpbmVhIGFsIHN1byBzdGF0byBvcmlnaW5hbGUuCiAgNi4gQWRlc3NvIGJhdHRpICB1ICBwafkgdm9sdGUgcGVyIGFubnVsbGFyZSBsYSAgVSAgZSBpIGNvbWFuZGkgcHJlY2VkZW50aS4KICA3LiBBZGVzc28gYmF0dGkgcGn5IHZvbHRlIENUUkwtciAodGllbmkgaWwgdGFzdG8gQ1RSTCBzY2hpYWNjaWF0bwogICAgIG1lbnRyZSBiYXR0aSByKSBwZXIgcmllc2VndWlyZSBpIGNvbWFuZGkgKGFubnVsbGFyZSBsJ2FubnVsbGFtZW50bykuCgotLS0+IENvcnJlZWdnaSBnbGkgZXJyb3JpIHNzdSBxdXVlc3RhIGxpbmVhIGUgcmlpbXBpYXp6YWxpIGNvb24gInVuZG8iLgoKICA4LiBRdWVzdGkgY29tYW5kaSBzb25vIG1vbHRvIHV0aWxpLiBPcmEgc3Bvc3RhdGkgYWwgU29tbWFyaW8gZGVsbGEgTGV6aW9uZSAyLgoKCgoKfn5+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+CgkJCSAgICAgICBMZXppb25lIDIgU09NTUFSSU8KCgogIDEuIFBlciBjYW5jZWxsYXJlIGRhbCBjdXJzb3JlIGZpbm8gYWxsYSBwYXJvbGEgc2VndWVudGUgYmF0dGk6ICAgICAgZHcKICAyLiBQZXIgY2FuY2VsbGFyZSBkYWwgY3Vyc29yZSBmaW5vIGFsbGEgZmluZSBkZWxsYSBsaW5lYSBiYXR0aTogICAgIGQkCiAgMy4gUGVyIGNhbmNlbGxhcmUgdW4naW50ZXJhIGxpbmVhIGJhdHRpOiAgICBkZAogIDQuIFBlciBlc2VndWlyZSBwafkgdm9sdGUgdW4gbW92aW1lbnRvLCBtZXR0aWNpIGRhdmFudGkgdW4gbnVtZXJvOiAgMncKICA1LiBJbCBmb3JtYXRvIHBlciB1biBjb21hbmRvIGRpIG1vZGlmaWNhIOg6CgogICAgICAgb3BlcmF0b3JlICAgW251bWVyb10gICBtb3ZpbWVudG8KICAgICBkb3ZlOgogICAgICAgb3BlcmF0b3JlIC0gaW5kaWNhIGlsIGRhIGZhcnNpLCBhZCBlcy4gIGQgIHBlciBbZGVsZXRlXSBjYW5jZWxsYXJlCiAgICAgICBbbnVtZXJvXSAgLSBjb250YXRvcmUgZmFjb2x0YXRpdm8gZGkgcmlwZXRpemlvbmUgZGVsIG1vdmltZW50bwogICAgICAgbW92aW1lbnRvIC0gc3Bvc3RhbWVudG8gbmVsIHRlc3RvIHN1IGN1aSBvcGVyYXJlLCBhZCBlcy4KICAgICAgIAkJICAgdyBbd29yZF0gcGFyb2xhLCAkIChmaW5vIGEgZmluZSBsaW5lYSksIGV0Yy4KCiAgNi4gUGVyIGFuZGFyZSBhIGluaXppbyBsaW5lYSB1c2F0ZSB1bm8gemVybzoJMAogIDcuIFBlciBhbm51bGxhcmUgaSBjb21hbmRpIHByZWNlZGVudGksIGJhdHRpOgkgCSAgICB1ICh1IG1pbnVzY29sYSkKICAgICBQZXIgYW5udWxsYXJlIHR1dHRlIGxlIG1vZGlmaWNoZSBhIHVuYSBsaW5lYSBiYXR0aTogICAgVSAoVSBtYWl1c2NvbGEpCiAgICAgUGVyIGFubnVsbGFyZSBsJ2FubnVsbGFtZW50byBbInJlZG8iXSAgCSAgYmF0dGk6ICAgIENUUkwtcgoKCn5+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+fgoJCSBMZXppb25lIDMuMTogSUwgQ09NQU5ETyBQVVQgW01FVFRJLCBQT05JXQoKCiAgICoqIEJhdHRpICBwICBwZXIgcG9ycmUgW3B1dF0gdGVzdG8gKGNhbmNlbGxhdG8gcHJpbWEpIGRvcG8gaWwgY3Vyc29yZS4gKioKCiAgMS4gTXVvdmkgaWwgY3Vyc29yZSBhbGxhIHByaW1hIGxpbmVhIGluZGljYXRhIGNvbiAtLS0+IHF1aSBpbiBiYXNzby4KCiAgMi4gQmF0dGkgIGRkICBwZXIgY2FuY2VsbGFyZSBsYSBsaW5lYSBlIGRlcG9zaXRhcmxhIGluIHVuIHJlZ2lzdHJvIGRpIFZpbS4KCiAgMy4gTXVvdmkgaWwgY3Vyc29yZSBmaW5vIGFsbGEgbGluZWEgYykgU09QUkEgcXVlbGxhIGRvdmUgYW5kcmViYmUgbWVzc2EKICAgICBsYSBsaW5lYSBhcHBlbmEgY2FuY2VsbGF0YS4KCiAgNC4gQmF0dGkgIHAgIHBlciBtZXR0ZXJlIGxhIGxpbmVhIHNvdHRvIGlsIGN1cnNvcmUuCgogIDUuIFJpcGV0aSBpIHBhc3NpIGRhIDIgYSA0IHBlciBtZXR0ZXJlIHR1dHRlIGxlIGxpbmVlIG5lbCBnaXVzdG8gb3JkaW5lLgoKLS0tPiBkKSAgUHVvaSBpbXBhcmFybGEgdHU/Ci0tLT4gYikgIExlIHZpb2xlIHNvbm8gYmx1LAotLS0+IGMpICBMYSBzYWdnZXp6YSBzaSBpbXBhcmEsCi0tLT4gYSkgIExlIHJvc2Ugc29ubyByb3NzZSwKCgp+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+fn4KCSAgICAgIExlemlvbmUgMy4yOiBJTCBDT01BTkRPIFJFUExBQ0UgW1JJTVBJQVpaQVJFXQoKCiAgKiogQmF0dGkgIHJ4ICBwZXIgcmltcGlhenphcmUgaWwgY2FyYXR0ZXJlIHNvdHRvIGFsIGN1cnNvcmUgY29uIHggLiAqKgoKICAxLiBNdW92aSBpbCBjdXJzb3JlIGFsbGEgcHJpbWEgbGluZWEgcXVpIHNvdHRvLCBpbmRpY2F0YSBkYSAtLS0+LgoKICAyLiBNdW92aSBpbCBjdXJzb3JlIGZpbm8gYSBwb3NpemlvbmFybG8gc29wcmEgaWwgcHJpbW8gZXJyb3JlLgoKICAzLiBCYXR0aSAgIHIJZSBwb2kgaWwgY2FyYXR0ZXJlIGNoZSBkb3ZyZWJiZSBzdGFyZSBxdWkuCgogIDQuIFJpcGV0aSBpIHBhc3NpIDIgZSAzIGZpbmNo6SBsYSBwcmltYSBsaW5lYSDoIHVndWFsZSBhbGxhIHNlY29uZGEuCgotLS0+ICBBbW1hdHRlbmRvIHF1ZXR0YSBsaW5jZSwgcXVhbGN1bm8gaG8gcHJlZGF0byBhbGN1bmkgdG9zdGkgc2JhbGxpYXRpIQotLS0+ICBJbW1ldHRlbmRvIHF1ZXN0YSBsaW5lYSwgcXVhbGN1bm8gaGEgcHJlbXV0byBhbGN1bmkgdGFzdGkgc2JhZ2xpYXRpIQoKICA1LiBPcmEgcGFzc2EgYWxsYSBMZXppb25lIDMuMi4KCk5PVEE6IFJpY29yZGF0aSBjaGUgZG92cmVzdGkgaW1wYXJhcmUgY29uIGxhIHByYXRpY2EsIG5vbiBzb2xvIGxlZ2dlbmRvLgoKCgp+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+fn4KCSAgICAgTGV6aW9uZSAzLjM6IEwnT1BFUkFUT1JFIENIQU5HRSBbQ0FNQklBXQoKCiAgICAgKiogUGVyIGNhbWJpYXJlIGZpbm8gYWxsYSBmaW5lIGRpIHVuYSBwYXJvbGEsIGJhdHRpICBjZSAuICoqCgogIDEuIE11b3ZpIGlsIGN1cnNvcmUgYWxsYSBwcmltYSBsaW5lYSBxdWkgc290dG8sIGluZGljYXRhIGRhIC0tLT4uCgogIDIuIFBvc2l6aW9uYSBpbCBjdXJzb3JlIGFsbGEgIHUgIGluIGx1YncuCgogIDMuIEJhdHRpICBjZSAgZSBsYSBwYXJvbGEgY29ycmV0dGEgKGluIHF1ZXN0byBjYXNvLCBiYXR0aSAgaW5lYSAgICApLgoKICA0LiBQcmVtaSA8RVNDPiBlIHZhaSBzdWwgcHJvc3NpbW8gY2FyYXR0ZXJlIGRhIG1vZGlmaWNhcmUuCgogIDUuIFJpcGV0aSBpIHBhc3NpIDMgZSA0IGZpbmNo6SBsYSBwcmltYSBmcmFzZSDoIHVndWFsZSBhbGxhIHNlY29uZGEuCgotLS0+IFF1ZXN0YSBsdWJ3IGhhIGFsY3VuZSBwcHRmZCBkYSBhc2RlcnQgdXNnZmsgbCdvcGVyYXRvcmUgQ0hBTkdFLgotLS0+IFF1ZXN0YSBsaW5lYSBoYSBhbGN1bmUgcGFyb2xlIGRhIGNhbWJpYXJlIHVzYW5kbyBsJ29wZXJhdG9yZSBDSEFOR0UuCgpOb3RhIGNoZSAgY2UgIGNhbmNlbGxhIGxhIHBhcm9sYSwgZSB0aSBtZXR0ZSBhbmNoZSBpbiBNb2RhbGl04CBJbnNlcmltZW50bwogICAgW0luc2VydCBNb2RlXQoKCn5+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+fgoJCSAgTGV6aW9uZSAzLjQ6IEFMVFJJIENBTUJJQU1FTlRJIFVTQU5ETyBjCgoqKiBMJ29wZXJhdG9yZSBjIFtDSEFOR0VdIGFnaXNjZSBzdWdsaSBzdGVzc2kgbW92aW1lbnRpIGRpICBkICBbREVMRVRFXSAqKgoKICAxLiBMJ29wZXJhdG9yZSBDSEFOR0Ugc2kgY29tcG9ydGEgY29tZSBERUxFVEUuICBJbCBmb3JtYXRvIOg6CgogICAgICAgYyAgIFtudW1lcm9dICAgbW92aW1lbnRvCgogIDIuIEkgbW92aW1lbnRpIHNvbm8gZ2xpIHN0ZXNzaSwKICAgICBhZCBlcy4gdyAod29yZCwgcGFyb2xhKSwgJCAoZmluZSBsaW5lYSksIGV0Yy4KCiAgMy4gTXVvdmkgaWwgY3Vyc29yZSBhbGxhIHByaW1hIGxpbmVhIHF1aSBzb3R0bywgaW5kaWNhdGEgZGEgLS0tPi4KCiAgNC4gUG9zaXppb25hIGlsIGN1cnNvcmUgYWwgcHJpbW8gZXJyb3JlLgoKICA1LiBCYXR0aSAgYyQgIGUgaW5zZXJpc2NpIHJlc3RvIGRlbGxhIGxpbmVhIHV0aWxpenphbmRvIGNvbWUgbW9kZWxsbyBsYQogICAgIGxpbmVhIHNlZ3VlbnRlLCBlIHF1YW5kbyBoYWkgZmluaXRvIHByZW1pIDxFU0M+CgotLS0+IExhIGZpbmUgZGkgcXVlc3RhIGxpbmVhIGRldmUgZXNzZXJlIGFpdXRhdGEgYSBkaXZlbmlyZSBjb21lIGxhIHNlZ3VlbnRlLgotLS0+IExhIGZpbmUgZGkgcXVlc3RhIGxpbmVhIGRldmUgZXNzZXJlIGNvcnJldHRhIHVzYW5kbyBpbCBjb21hbmRvICBjJCAgLgoKTk9UQTogIFB1b2kgdXNhcmUgaWwgdGFzdG8gQmFja3NwYWNlIHNlIGRldmkgY29ycmVnZ2VyZSBlcnJvcmkgZGkgYmF0dGl0dXJhLgp+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+fn4KCQkJICAgICAgIExlemlvbmUgMyBTT01NQVJJTwoKCiAgMS4gUGVyIHJlaW5zZXJpcmUgZGVsIHRlc3RvIGFwcGVuYSBjYW5jZWxsYXRvLCBiYXR0aSAgIHAgICAuICBRdWVzdG8KICAgICBpbnNlcmlzY2UgW3BvbmVdIGlsIHRlc3RvIGNhbmNlbGxhdG8gRE9QTyBpbCBjdXJzb3JlIChzZSBlcmEgc3RhdGEgdG9sdGEKICAgICB1bmEgbGluZWEgaW50ZXJhLCBxdWVzdGEgdmVycuAgbWVzc2EgbmVsbGEgbGluZWEgU09UVE8gaWwgY3Vyc29yZSkuCgogIDIuIFBlciByaW1waWF6emFyZSBpbCBjYXJhdHRlcmUgc290dG8gaWwgY3Vyc29yZSwgYmF0dGkgICByICAgZSBwb2kgaWwKICAgICBjYXJhdHRlcmUgY2hlIHZ1b2kgc29zdGl0dWlyZS4KCiAgMy4gTCdvcGVyYXRvcmUgY2hhbmdlIHRpIHBlcm1ldHRlIGRpIGNhbWJpYXJlIGRhbCBjdXJzb3JlIGZpbm8gYSBkb3ZlCiAgICAgYXJyaXZhIGlsIG1vdmltZW50by4gIEFkIGVzLiBCYXR0aSAgY2UgIHBlciBjYW1iaWFyZSBkYWwgY3Vyc29yZQogICAgIGZpbm8gYWxsYSBmaW5lIGRlbGxhIHBhcm9sYSwgIGMkICBwZXIgY2FtYmlhcmUgZmlubyBhIGZpbmUgbGluZWEuCgogIDQuIElsIGZvcm1hdG8gZGkgIGNoYW5nZSAg6DoKCiAgICAgICBjICAgW251bWVyb10gICBtb3ZpbWVudG8KCk9yYSB2YWkgYWxsYSBwcm9zc2ltYSBMZXppb25lLgoKCgp+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+fn4KCQkgICAgIExlemlvbmUgNC4xOiBQT1NJWklPTkFNRU5UTyBFIFNJVFVBWklPTkUgRklMRQoKICAqKiBCYXR0aSBDVFJMLUcgcGVyIHZlZGVyZSBhIGNoZSBwdW50byBzZWkgbmVsIGZpbGUgZSBsYSBzaXR1YXppb25lICoqCiAgKiogICAgIGRlbCBmaWxlLiAgQmF0dGkgRyAgcGVyIHJhZ2dpdW5nZXJlIHVuYSBsaW5lYSBuZWwgZmlsZS4gICAgICAqKgoKICBOT1RBOiBMZWdnaSBsJ2ludGVyYSBMZXppb25lIHByaW1hIGRpIGVzZWd1aXJlIHVuIHF1YWxzaWFzaSBwYXNzbyEhCgogIDEuIFRpZW5pIHByZW11dG8gaWwgdGFzdG8gQ1RSTCBlIGJhdHRpICBnICAuICBPc3NpYSBiYXR0aSBDVFJMLUcuCiAgICAgVW4gbWVzc2FnZ2lvIGFwcGFyaXLgIGluIGZvbmRvIGFsbGEgcGFnaW5hIGNvbiBpbCBOT01FIEZJTEUgZSBsYQogICAgIHBvc2l6aW9uZSBuZWwgZmlsZS4gIFJpY29yZGF0aSBpbCBudW1lcm8gZGVsbGEgbGluZWEgcGVyIGlsIFBhc3NvIDMuCgpOT1RBOiBMYSBwb3NpemlvbmUgZGVsIGN1cnNvcmUgc2kgdmVkZSBuZWxsJ2FuZ29sbyBpbiBiYXNzbyBhIGRlc3RyYSBkZWxsbwogICAgICBzY2hlcm1vLCBzZSDoIGltcG9zdGF0YSBsJ29wemlvbmUgJ3J1bGVyJyAocmlnaGVsbG8sIHZlZGkgOmhlbHAgcnVsZXIpLgoKICAyLiBQcmVtaSAgRyAgW0cgTWFpdXNjb2xvXSBwZXIgcG9zaXppb25hcnRpIGluIGZvbmRvIGFsIGZpbGUuCiAgICAgQmF0dGkgZ2cgIHBlciBwb3NpemlvbmFydGkgaW4gY2ltYSBhbCBmaWxlLgoKICAzLiBCYXR0aSBpbCBudW1lcm8gZGVsbGEgbGluZWEgaW4gY3VpIHRpIHRyb3ZhdmkgZSBwb2kgIEcgIC4gIFF1ZXN0byB0aQogICAgIHJpcG9ydGVy4CBmaW5vIGFsbGEgbGluZWEgaW4gY3VpIHRpIHRyb3ZhdmkgcXVhbmRvIGF2ZXZpIGJhdHR1dG8gQ1RSTC1nLgoKICA0LiBTZSB0aSBzZW50aSBzaWN1cm8gbmVsIGZhcmxvLCBlc2VndWkgaSBwYXNzaSBkYSAxIGEgMy4KCn5+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+fgoJCUxlemlvbmUgNC4yOiBJTCBDT01BTkRPIFNFQVJDSCBbUklDRVJDQV0KCiAgICAgKiogQmF0dGkgIC8gIHNlZ3VpdG8gZGEgdW5hIGZyYXNlIHBlciByaWNlcmNhcmUgcXVlbGxhIGZyYXNlLiAqKgoKICAxLiBpbiBNb2RhbGl04CBOb3JtYWxlIGJhdHRpIGlsIGNhcmF0dGVyZSAgLyAgLiBOb3RhIGNoZSBsYSAiLyIgZSBpbCBjdXJzb3JlCiAgICAgc29ubyB2aXNpYmlsaSBpbiBmb25kbyBkZWxsbyBzY2hlcm1vIGNvbWUgcXVhbmRvIHNpIHVzYSBpbCBjb21hbmRvICA6IC4KCiAgMi4gQWRlc3NvIGJhdHRpICdlcnJyb29yZScgPElOVklPPi4gUXVlc3RhIOggbGEgcGFyb2xhIGNoZSB2dW9pIHJpY2VyY2FyZS4KCiAgMy4gUGVyIHJpY2VyY2FyZSBhbmNvcmEgbGEgc3Rlc3NhIGZyYXNlLCBiYXR0aSBzb2x0YW50byAgICAgICBuICAuCiAgICAgUGVyIHJpY2VyY2FyZSBsYSBzdGVzc2EgZnJhc2UgaW4gZGlyZXppb25lIG9wcG9zdGEsIGJhdHRpICBOICAuCgogIDQuIFBlciByaWNlcmNhcmUgdW5hIGZyYXNlIG5lbGxhIGRpcmV6aW9uZSBvcHBvc3RhLCB1c2EgID8gIGFsIHBvc3RvIGRpICAvICAuCgogIDUuIFBlciB0b3JuYXJlIGRvdmUgZXJpIHByaW1hIG5lbCBmaWxlIHByZW1pICBDVFJMLU8gICh0aWVuaSBpbCB0YXN0byBDVFJMCiAgICAgc2NoaWFjY2lhdG8gbWVudHJlIHByZW1pIGxhIGxldHRlcmEgbykuICBSaXBldGkgIENUUkwtTyAgcGVyIGFuZGFyZSBhbmNvcmEKICAgICBpbmRpZXRyby4gUHVvaSB1c2FyZSAgQ1RSTC1JICBwZXIgdG9ybmFyZSBpbiBhdmFudGkuCgpOT1RBOiAiZXJycm9vcmUiIG5vbiDoIGlsIG1vZG8gZ2l1c3RvIGRpIGRpZ2l0YXJlIGVycm9yZTsgZXJycm9vcmUg6CB1biBlcnJvcmUuCk5PVEE6IFF1YW5kbyBsYSByaWNlcmNhIGFycml2YSBhIGZpbmUgZmlsZSwgcmljb21pbmNpYSBkYWxsJ2luaXppbyBkZWwgZmlsZSwKICAgICAgYSBtZW5vIGNoZSBsJ29wemlvbmUgJ3dyYXBzY2FuJyBzaWEgc3RhdGEgZGlzYXR0aXZhdGEuCgp+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+fn4KCSAgICAgIExlemlvbmUgNC4zOiBSSUNFUkNBIERJIFBBUkVOVEVTSSBDT1JSSVNQT05ERU5USQoKCgkgKiogQmF0dGkgICUgIHBlciB0cm92YXJlIHVuYSAgKSxdLCBvIH0gIGNvcnJpc3BvbmRlbnRlLiAqKgoKICAxLiBQb3NpemlvbmEgaWwgY3Vyc29yZSBzdSB1bmEgKCwgWywgbyB7IG5lbGxhIGxpbmVhIHNvdHRvLCBpbmRpY2F0YSBkYSAtLS0+LgoKICAyLiBBZGVzc28gYmF0dGkgaWwgY2FyYXR0ZXJlICAgJSAgLgoKICAzLiBJbCBjdXJzb3JlIHNpIHNwb3N0ZXLgIHN1bGxhIHBhcmVudGVzaSBjb3JyaXNwb25kZW50ZS4KCiAgNC4gQmF0dGkgICUgIHBlciBtdW92ZXJlIGlsIGN1cnNvcmUgYWxsJ2FsdHJhIHBhcmVudGVzaSBjb3JyaXNwb25kZW50ZS4KCi0tLT4gUXVlc3RhICgg6CB1bmEgbGluZWEgZGkgdGVzdCBjb24gKCwgWyBdIGUgeyB9IGFsIHN1byBpbnRlcm5vLiApKQoKCk5PVEE6IFF1ZXN0byDoIG1vbHRvIHV0aWxlIG5lbCAiZGVidWciIGRpIHVuIHByb2dyYW1tYSBjb24gcGFyZW50ZXNpIGVycmF0ZSEKCgoKCgp+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+fn4KCSAgICBMZXppb25lIDQuNDogTCdPUEVSQVRPUkUgU09TVElUVVpJT05FIChTVUJTVElUVVRFKQoKICAqKiBCYXR0aSAgOnMvdmVjY2hpby9udW92by9nICBwZXIgc29zdGl0dWlyZSAnbnVvdm8nIGEgJ3ZlY2NoaW8nLiAqKgoKICAxLiBNdW92aSBpbCBjdXJzb3JlIGZpbm8gYWxsYSBsaW5lYSBxdWkgc290dG8sIGluZGljYXRhIGRhIC0tLT4uCgogIDIuIEJhdHRpICA6cy9sbGEvbGEgPElOVklPPiAuICBOb3RhIGNoZSBxdWVzdG8gY29tYW5kbyBjYW1iaWEgc29sbwogICAgIExBIFBSSU1BIG9jY29ycmVuemEgZGkgImxsYSIgc3VsbGEgbGluZWEuCgogIDMuIEFkZXNzbyBiYXR0aSAgOnMvbGxhL2xhL2cgLiBBZ2dpdW5nZW5kbyBsYSBmbGFnICBnICBzaSBjaGllZGUgZGkKICAgICBzb3N0aXR1aXJlICJnbG9iYWxtZW50ZSIgc3VsbGEgbGluZWEsIG9zc2lhIHR1dHRlIGxlIG9jY29ycmVuemUKICAgICBkaSAibGxhIiBzdWxsYSBsaW5lYS4KCi0tLT4gbGxhIHN0YWdpb25lIG1pZ2xpb3JlIHBlciBsbGEgZmlvcml0dXJhIOggbGxhIHByaW1hdmVyYS4KCiAgNC4gUGVyIGNhbWJpYXJlIG9nbmkgcmljb3JyZW56YSBkaSB1bmEgc3RyaW5nYSBkaSBjYXJhdHRlcmkgdHJhIGR1ZSBsaW5lZSwKICAgICBiYXR0aSA6Iywjcy92ZWNjaGlvL251b3ZvL2cgIGRvdmUgIywjIHNvbm8gaSBudW1lcmkgY2hlIGRlbGltaXRhbm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlsIGdydXBwbyBkaSBsaW5lZSBpbiBjdWkgc2kgdnVvbGUgc29zdGl0dWlyZS4KICAgICBCYXR0aSA6JXMvdmVjY2hpby9udW92by9nICAgIHBlciBjYW1iaWFyZSBvZ25pIG9jY29ycmVuemEgbmVsbCdpbnRlcm8gZmlsZS4KICAgICBCYXR0aSA6JXMvdmVjY2hpby9udW92by9nYyAgIHBlciB0cm92YXJlIG9nbmkgb2Njb3JyZW56YSBuZWxsJ2ludGVybyBmaWxlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWNldmVuZG8gcGVyIG9nbnVuYSB1bmEgcmljaGllc3RhIHNlCgkJCQkgIGVmZmV0dHVhcmUgbyBtZW5vIGxhIHNvc3RpdHV6aW9uZS4Kfn5+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+CgkJCSAgICAgICBMZXppb25lIDQgU09NTUFSSU8KCgoxLiBDVFJMLUcgIHZpc3VhbGl6emEgYSBjaGUgcHVudG8gc2VpIG5lbCBmaWxlIGUgbGEgc2l0dWF6aW9uZSBkZWwgZmlsZS4KICAgICAgICAgIEcgIFtHIE1haXVzY29sb10gdGkgcG9ydGEgYWxsJ3VsdGltYSBsaW5lYSBkZWwgZmlsZS4KICAgbnVtZXJvIEcgIHRpIHBvcnRhIGFsbGEgbGluZWEgY29uIHF1ZWwgbnVtZXJvLgogICAgICAgICBnZyAgdGkgcG9ydGEgYWxsYSBwcmltYSBsaW5lYSBkZWwgZmlsZS4KCjIuIEJhdHRlbmRvICAvICBzZWd1aXRvIGRhIHVuYSBmcmFzZSByaWNlcmNhIElOIEFWQU5USSBxdWVsbGEgZnJhc2UuCiAgIEJhdHRlbmRvICA/ICBzZWd1aXRvIGRhIHVuYSBmcmFzZSByaWNlcmNhIEFMTCdJTkRJRVRSTyBxdWVsbGEgZnJhc2UuCiAgIERPUE8gdW5hIHJpY2VyY2EgYmF0dGkgICAgbiAgIHBlciB0cm92YXJlIGxhIHByb3NzaW1hIG9jY29ycmVuemEgbmVsbGEKICAgc3Rlc3NhIGRpcmV6aW9uZSwgb3BwdXJlICBOICAgcGVyIGNlcmNhcmUgaW4gZGlyZXppb25lIG9wcG9zdGEuCiAgIENUUkwtTyB0aSBwb3J0YSBhbGxhIHBvc2l6aW9uZSBwcmVjZWRlbnRlLCBDVFJMLUkgYSBxdWVsbGEgcGn5IG51b3ZhLgoKMy4gQmF0dGVuZG8gICUgIG1lbnRyZSBpbCBjdXJzb3JlIHNpIHRyb3ZhIHN1ICAoLCksWyxdLHssIG9wcHVyZSB9CiAgIHRpIHBvc2l6aW9uaSBzdWxsYSBjb3JyaXNwb25kZW50ZSBwYXJlbnRlc2kuCgo0LiBQZXIgc29zdGl0dWlyZSAibnVvdm8iIGFsIHByaW1vICJ2ZWNjaGlvIiBpbiAxIGxpbmVhIGJhdHRpIDpzL3ZlY2NoaW8vbnVvdm8KICAgUGVyIHNvc3RpdHVpcmUgIm51b3ZvIiBhZCBvZ25pICAidmVjY2hpbyIgaW4gMSBsaW5lYSBiYXR0aSA6cy92ZWNjaGlvL251b3ZvL2cKICAgUGVyIHNvc3RpdHVpcmUgZnJhc2kgdHJhIDIgbnVtZXJpIGRpIGxpbmVhIFsjXSAgYmF0dGkgICA6Iywjcy92ZWNjaGlvL251b3ZvL2cKICAgUGVyIHNvc3RpdHVpcmUgdHV0dGUgbGUgb2Njb3JyZW56ZSBuZWwgZmlsZSBiYXR0aQkgICAgIDolcy92ZWNjaGlvL251b3ZvL2cKICAgUGVyIGNoaWVkZXJlIGNvbmZlcm1hIG9nbmkgdm9sdGEgYWdnaXVuZ2kgJ2MnCSAgICA6JXMvdmVjY2hpby9udW92by9nYwp+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+fn4KCSAgICAgIExlemlvbmUgNS4xOiBDT01FIEVTRUdVSVJFIFVOIENPTUFORE8gRVNURVJOTwoKCiAgKiogQmF0dGkgIDohICBzZWd1aXRvIGRhIHVuIGNvbWFuZG8gZXN0ZXJubyBwZXIgZXNlZ3VpcmUgcXVlbCBjb21hbmRvLiAqKgoKICAxLiBCYXR0aSBpbCBjb21hbmRvICAgOiAgIHBlciBwb3NpemlvbmFyZSBpbCBjdXJzb3JlIGluIGZvbmRvIGFsbG8gc2NoZXJtby4KICAgICBDafIgdGkgcGVybWV0dGUgZGkgaW1tZXR0ZXJlIHVuIGNvbWFuZG8gZGFsbGEgbGluZWEgY29tYW5kaS4KCiAgMi4gQWRlc3NvIGJhdHRpIGlsIGNhcmF0dGVyZSAgISAgKHB1bnRvIGVzY2xhbWF0aXZvKS4gIENp8iB0aSBwZXJtZXR0ZSBkaQogICAgIGVzZWd1aXJlIHF1YWxzaWFzaSBjb21hbmRvIGVzdGVybm8gc2kgcG9zc2EgZXNlZ3VpcmUgbmVsbGEgInNoZWxsIi4KCiAgMy4gQWQgZXNlbXBpbyBiYXR0aSAgIGxzICAgZG9wbyBpbCAhIGUgcG9pIHByZW1pIDxJTlZJTz4uICBRdWVzdG8KICAgICB2aXN1YWxpenphIHVuYSBsaXN0YSBkZWxsYSB0dWEgZGlyZWN0b3J5LCBwcm9wcmlvIGNvbWUgc2UgZm9zc2kgaW4gdW5hCiAgICAgInNoZWxsIi4gVXNhICAgOiFkaXIgIHNlICBscyAgbm9uIGZ1bnppb25hLiAgIFtVbml4OiBscyAgTVMtRE9TOiBkaXJdCgpOT1RBOiAgRScgcG9zc2liaWxlIGluIHF1ZXN0byBtb2RvIGVzZWd1aXJlIHVuIGNvbWFuZG8gYSBwaWFjZXJlLCBzcGVjaWZpY2FuZG8KICAgICAgIGFuY2hlIGRlaSBwYXJhbWV0cmkgcGVyIGkgY29tYW5kaSBzdGVzc2kuCgpOT1RBOiAgVHV0dGkgaSBjb21hbmRpICA6ICBkZXZvbm8gZXNzZXJlIHRlcm1pbmF0aSBwcmVtZW5kbyA8SU5WSU8+CiAgICAgICBEYSBxdWkgaW4gYXZhbnRpIG5vbiBsbyByaXBldGVyZW1vIG9nbmkgdm9sdGEuCgoKfn5+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+CgkgICAgICBMZXppb25lIDUuMjogQU5DT1JBIFNVTExBIFNDUklUVFVSQSBERUkgRklMRQoKCiAgICoqIFBlciBzYWx2YXJlIGxlIG1vZGlmaWNoZSBhcHBvcnRhdGUgYSB1biB0ZXN0byBiYXR0aSA6dyBOT01FRklMRS4gKioKCiAgMS4gQmF0dGkgIDohZGlyICBvciAgOiFscyAgcGVyIHByb2N1cmFydGkgdW5hIGxpc3RhIGRlbGxhIHR1YSBkaXJlY3RvcnkuCiAgICAgR2ngIHNhaSBjaGUgZGV2aSBwcmVtZXJlIDxJTlZJTz4gZG9wbyBhdmVyIHNjcml0dG8gaWwgY29tYW5kby4KCiAgMi4gU2NlZ2xpIHVuIE5PTUVGSUxFIGNoZSBhbmNvcmEgbm9uIGVzaXN0YSwgYWQgZXMuIFRFU1QgICAuCgogIDMuIEFkZXNzbyBiYXR0aToJIDp3IFRFU1QgICAoZG92ZSBURVNUIOggaWwgTk9NRUZJTEUgY2hlIGhhaSBzY2VsdG8pLgoKICA0LiBRdWVzdG8gc2FsdmEgbCdpbnRlcm8gZmlsZSAoInR1dG9yLml0IikgIGNvbiBpbCBub21lIGRpIFRFU1QuCiAgICAgUGVyIHZlcmlmaWNhIGJhdHRpIGFuY29yYSAgOiFkaXIgIG8gIDohbHMgIHBlciBsaXN0YXJlIGxhIHR1YSBkaXJlY3RvcnkuCgpOT1RBOiBTZSBlc2NpIGRhIFZpbSBlIHJpZXNlZ3VpIFZpbSBiYXR0ZW5kbyAgdmltIFRFU1QgLCBpbCBmaWxlIGFwZXJ0bwogICAgICBzYXLgIHVuYSBjb3BpYSBlc2F0dGEgZGkgInR1dG9yLml0IiBhbCBtb21lbnRvIGRlbCBzYWx2YXRhZ2dpby4KCiAgNS4gT3JhIGNhbmNlbGxhIGlsIGZpbGUgYmF0dGVuZG8gKE1TLURPUyk6ICAgOiFkZWwgVEVTVAoJCQkJIG8gKFVuaXgpOiAgICAgOiFybSBURVNUCgoKfn5+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+CgkJTGV6aW9uZSA1LjM6IFNFTEVaSU9OQVJFIElMIFRFU1RPIERBIFNDUklWRVJFCgogICAqKiBQZXIgc2FsdmFyZSB1bmEgcG9yemlvbmUgZGkgZmlsZSwgYmF0dGkgIHYgbW92aW1lbnRvIDp3IE5PTUVGSUxFICoqCgogIDEuIE11b3ZpIGlsIGN1cnNvcmUgc3UgcXVlc3RhIGxpbmVhLgoKICAyLiBQcmVtaSAgdiAgZSBtdW92aSBpbCBjdXJzb3JlIGZpbm8gYWxsYSBsaW5lYSBudW1lcmF0YSA1LiwgcXVpIHNvdHRvLgogICAgIE5vdGEgY2hlIGlsIHRlc3RvIHZpZW5lIGV2aWRlbnppYXRvLgoKICAzLiBCYXR0aSBpbCBjYXJhdHRlcmUgIDogIC4gIEluIGZvbmRvIGFsbG8gc2NoZXJtbyBhcHBhcmly4CA6JzwsJz4gIC4KCiAgNC4gQmF0dGkgIHcgVEVTVCAgLCBkb3ZlIFRFU1Qg6CBpbCBub21lIGRpIHVuIGZpbGUgbm9uIGFuY29yYSBlc2lzdGVudGUuCiAgICAgVmVyaWZpY2EgY2hlIHNpIHZlZGEgIDonPCwnPncgVEVTVCAgIHByaW1hIGRpIGRhcmUgPElOVklPPi4KCiAgNS4gVmltIHNjcml2ZXLgIG5lbCBmaWxlIFRFU1QgbGUgbGluZWUgY2hlIGhhaSBzZWxlemlvbmF0by4gIFVzYSAgOiFkaXIKICAgICBvICA6IWxzICBwZXIgY29udHJvbGxhcmUgY2hlIGVzaXN0ZS4gIE5vbiBjYW5jZWxsYXJsbyBvcmEhICBUaSBzZXJ2aXLgCiAgICAgbmVsbGEgcHJvc3NpbWEgbGV6aW9uZS4KCk5PVEE6ICBCYXR0ZXJlICB2ICBpbml6aWEgdW5hIHNlbGV6aW9uZSB2aXN1YWxlLiAgUHVvaSBtdW92ZXJlIGlsIGN1cnNvcmUKICAgICAgIGNvbWUgdnVvaSwgZSByZW5kZXJlIGxhIHNlbGV6aW9uZSBwafkgcGljY29sYSBvIHBp+SBncmFuZGUuICBQb2kKICAgICAgIHB1b2kgdXNhcmUgdW4gb3BlcmF0b3JlIHBlciBhZ2lyZSBzdWwgdGVzdG8gc2VsZXppb25hdG8uCiAgICAgICBBZCBlcy4sICBkICBjYW5jZWxsYSBpbCB0ZXN0by4Kfn5+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+CgkJICBMZXppb25lIDUuNDogSU5TRVJJUkUgRSBSSVVOSVJFIEZJTEUKCgogICAqKiBQZXIgaW5zZXJpcmUgaWwgY29udGVudXRvIGRpIHVuIGZpbGUsIGJhdHRpICA6ciBOT01FRklMRSAgKioKCiAgMS4gUG9zaXppb25hIGlsIGN1cnNvcmUgYXBwZW5hIHNvcHJhIHF1ZXN0YSByaWdhLgoKTk9UQTogRG9wbyBhdmVyIGVzZWd1aXRvIGlsIFBhc3NvIDIgdmVkcmFpIGlsIHRlc3RvIGRlbGxhIExlemlvbmUgNS4zLgogICAgICBRdWluZGkgc3Bvc3RhdGkgSU4gR0lVJyBwZXIgdG9ybmFyZSBhbmNvcmEgYSBxdWVzdGEgTGV6aW9uZS4KCiAgMi4gT3JhIGluc2VyaXNjaSBpbCB0dW8gZmlsZSBURVNUIGNvbiBpbCBjb21hbmRvICAgOnIgVEVTVCAgIGRvdmUgVEVTVCDoCiAgICAgaWwgbm9tZSBjaGUgaGFpIHVzYXRvIHBlciBjcmVhcmUgaWwgZmlsZS4KICAgICBJbCBmaWxlIHJpY2hpZXN0byDoIGluc2VyaXRvIHNvdHRvIGxhIGxpbmVhIGluIGN1aSBzaSB0cm92YSBpbCBjdXJzb3JlLgoKICAzLiBQZXIgdmVyaWZpY2FyZSBjaGUgdW4gZmlsZSDoIHN0YXRvIGluc2VyaXRvLCB0b3JuYSBpbmRpZXRybyBjb2wgY3Vyc29yZQogICAgIGUgbm90YSBjaGUgY2kgc29ubyBvcmEgMiBjb3BpZSBkZWxsYSBMZXppb25lIDUuMywgcXVlbGxhIG9yaWdpbmFsZSBlCiAgICAgcXVlbGxhIGNoZSB2aWVuZSBkYWwgZmlsZS4KCk5PVEE6ICBQdW9pIGFuY2hlIGxlZ2dlcmUgbCdvdXRwdXQgcHJvZG90dG8gZGEgdW4gY29tYW5kbyBlc3Rlcm5vLiBBZCBlcy4KICAgICAgIDpyICFscyAgbGVnZ2UgbCdvdXRwdXQgZGVsIGNvbWFuZG8gIGxzIGUgbG8gaW5zZXJpc2NlIHNvdHRvIGxhIGxpbmVhCiAgICAgICBpbiBjdWkgc2kgdHJvdmEgaWwgY3Vyc29yZS4KCn5+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+fgoJCQkgICAgICAgTGV6aW9uZSA1IFNPTU1BUklPCgoKICAxLiAgOiFjb21hbmRvICBlc2VndWUgdW4gY29tYW5kbyBlc3Rlcm5vLgoKICAgICAgQWxjdW5pIGVzZW1waSB1dGlsaSBzb25vIFtpbiBNU0RPU106CgkgIDohZGlyCQkgICAgIC0JdmlzdWFsaXp6YSBsaXN0YSBkaXJlY3RvcnkKCSAgOiFkZWwgTk9NRUZJTEUgICAgIC0JY2FuY2VsbGEgZmlsZSBOT01FRklMRS4KCiAgMi4gIDp3IE5PTUVGSUxFICBzY3JpdmUgc3UgZGlzY28gaWwgZmlsZSBjaGUgc3RhaSBlZGl0YW5kbyBjb24gbm9tZSBOT01FRklMRS4KCiAgMy4gIHYgbW92aW1lbnRvIDp3IE5PTUVGSUxFICBzYWx2YSBsZSBsaW5lZSBzZWxlemlvbmF0ZSBpbiBtYW5pZXJhCiAgICAgIHZpc3VhbGUgbmVsIGZpbGUgTk9NRUZJTEUuCgogIDQuICA6ciBOT01FRklMRSAgbGVnZ2UgaWwgZmlsZSBOT01FRklMRSBkYSBkaXNjbyBlIGxvIGluc2VyaXNjZSBuZWwgZmlsZQogICAgICBjaGUgc3RhaSBtb2RpZmljYW5kbywgZG9wbyBsYSBsaW5lYSBpbiBjdWkg6CBwb3NpemlvbmF0byBpbCBjdXJzb3JlLgoKICA1LiAgOnIgIWRpciAgbGVnZ2UgbCdvdXRwdXQgZGVsIGNvbWFuZG8gIGRpciAgZSBsbyBpbnNlcmlzY2UgZG9wbyBsYQogICAgICBsaW5lYSBpbiBjdWkg6CBwb3NpemlvbmF0byBpbCBjdXJzb3JlLgoKCgp+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+fn4KCQkgTGV6aW9uZSA2LjE6IElMIENPTUFORE8gT1BFTiBbQVBSSVJFXQoKCiAgICAgICAgKiogQmF0dGkgICBvICAgcGVyIGFwcmlyZSB1bmEgbGluZWEgc290dG8gaWwgY3Vyc29yZSAqKgogICAgICAgICoqICAgICAgICAgZSBwYXNzYXJlIGluIE1vZGFsaXTgIEluc2VyaW1lbnRvLiAgICAgICAgKioKCiAgMS4gTXVvdmkgaWwgY3Vyc29yZSBmaW5vIGFsbGEgbGluZWEgcXVpIHNvdHRvLCBpbmRpY2F0YSBkYSAtLS0+LgoKICAyLiBCYXR0aSBsYSBsZXR0ZXJhIG1pbnVzY29sYSAgbyAgcGVyIGFwcmlyZSB1bmEgbGluZWEgc290dG8gaWwgY3Vyc29yZSBlCiAgICAgcGFzc2FyZSBpbiBNb2RhbGl04CBJbnNlcmltZW50by4KCiAgMy4gUG9pIGluc2VyaXNjaSBkZWwgdGVzdG8gZSBwcmVtaSA8RVNDPiBwZXIgdXNjaXJlIGRhbGxhCiAgICAgTW9kYWxpdOAgSW5zZXJpbWVudG8uCgotLS0+IERvcG8gYmF0dHV0byAgbyAgaWwgY3Vyc29yZSDoIHN1bGxhIGxpbmVhIGFwZXJ0YSAoaW4gTW9kYWxpdOAgSW5zZXJpbWVudG8pLgoKICA0LiBQZXIgYXByaXJlIHVuYSBsaW5lYSBTT1BSQSBpbCBjdXJzb3JlLCBiYXR0aSB1bmEgICBPICBtYWl1c2NvbGEsIGludmVjZQogICAgIGNoZSB1bmEgICBvICAgbWludXNjb2xhLiBQcm92YSBzdWxsYSBsaW5lYSBxdWkgc290dG8uCkFwcmkgdW5hIGxpbmVhIFNPUFJBIHF1ZXN0YSBiYXR0ZW5kbyAgTyAgbWVudHJlIGlsIGN1cnNvcmUg6CBzdSBxdWVzdGEgbGluZWEuCgoKCn5+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+fgoJCUxlemlvbmUgNi4yOiBJTCBDT01BTkRPIEFQUEVORCBbQUdHSVVOR0VSRV0KCgkgICAgICoqIEJhdHRpICAgYSAgIHBlciBpbnNlcmlyZSB0ZXN0byBET1BPIGlsIGN1cnNvcmUuICoqCgogIDEuIE11b3ZpIGlsIGN1cnNvcmUgYWxsJ2luaXppbyBkZWxsYSBsaW5lYSBxdWkgc290dG8sIGluZGljYXRhIGRhIC0tLT4uCgogIDIuIEJhdHRpICBlICBmaW5jaOkgaWwgY3Vyc29yZSBhcnJpdmEgYWxsYSBmaW5lIGRpICBsaSAuCgogIDMuIEJhdHRpIHVuYSAgYSAgKG1pbnVzY29sYSkgcGVyIGFnZ2l1bmdlcmUgdGVzdG8gRE9QTyBpbCBjdXJzb3JlLgoKICA0LiBDb21wbGV0YSBsYSBwYXJvbGEgY29tZSBtb3N0cmF0byBuZWxsYSBsaW5lYSBzdWNjZXNzaXZhLiAgUHJlbWkgPEVTQz4KICAgICBwZXIgdXNjaXJlIGRhbGxhIE1vZGFsaXTgIEluc2VyaW1lbnRvLgoKICA1LiBVc2EgIGUgIHBlciBwYXNzYXJlIGFsbGEgc3VjY2Vzc2l2YSBwYXJvbGEgaW5jb21wbGV0YSBlIHJpcGV0aSBpIHBhc3NpCiAgICAgMyBlIDQuCgotLS0+IFF1ZXN0YSBsaSB0aSBwZXJtZXR0ZXLgIGRpIGVzZXJjaXQgYWQgYWdnaXVuZ2VyZSB0ZXN0byBhIHVuYSBsaW5lYS4KLS0tPiBRdWVzdGEgbGluZWEgdGkgcGVybWV0dGVy4CBkaSBlc2VyY2l0YXJ0aSBhZCBhZ2dpdW5nZXJlIHRlc3RvIGEgdW5hIGxpbmVhLgoKTk9UQTogYSwgaSBlZCBBIGVudHJhbm8gc2VtcHJlIGluIE1vZGFsaXTgIEluc2VyaW1lbnRvLCBsYSBzb2xhIGRpZmZlcmVuemEKICAgICAg6CBkb3ZlIHZlcnJhbm5vIGluc2VyaXRpIGkgY2FyYXR0ZXJpLgoKfn5+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+CgkgICBMZXppb25lIDYuMzogVU4gQUxUUk8gTU9ETyBESSBSSU1QSUFaWkFSRSBbUkVQTEFDRV0KCgogICAgICoqIEJhdHRpIHVuYSAgUiAgbWFpdXNjb2xhIHBlciByaW1waWF6emFyZSBwafkgZGkgdW4gY2FyYXR0ZXJlLiAqKgoKICAxLiBNdW92aSBpbCBjdXJzb3JlIGFsbGEgcHJpbWEgbGluZWEgcXVpIHNvdHRvLCBpbmRpY2F0YSBkYSAtLS0+LiAgTXVvdmkgaWwKICAgICBjdXJzb3JlIGFsbCdpbml6aW8gZGVsIHByaW1vICB4eHggLgoKICAyLiBPcmEgYmF0dGkgIFIgIGUgYmF0dGkgaWwgbnVtZXJvIGNoZSB2ZWRpIG5lbGxhIGxpbmVhIHNlZ3VlbnRlLCBpbiBtb2RvCiAgICAgY2hlIHJpbXBpYXp6aSBsJyAgeHh4IC4KCiAgMy4gUHJlbWkgPEVTQz4gcGVyIHVzY2lyZSBkYWxsYSBNb2RhbGl04CBSZXBsYWNlLiAgTm90YSBjaGUgaWwgcmVzdG8gZGVsbGEKICAgICBsaW5lYSByZXN0YSBpbnZhcmlhdG8uCgogIDQuIFJpcGV0aSBpIHBhc3NpIGluIG1vZG8gZGEgcmltcGlhenphcmUgbCdhbHRybyB4eHggLgoKLS0tPiBBZ2dpdW5nZW5kbyAxMjMgYSB4eHggc2kgb3R0aWVuZSB4eHguCi0tLT4gQWdnaXVuZ2VuZG8gMTIzIGEgNDU2IHNpIG90dGllbmUgNTc5LgoKTk9UQTogIExhIE1vZGFsaXTgIFJlcGxhY2Ug6CBjb21lIGxhIE1vZGFsaXTgIEluc2VyaW1lbnRvLCBtYSBvZ25pIGNhcmF0dGVyZQogICAgICAgY2hlIHZpZW5lIGJhdHR1dG8gcmljb3ByZSB1biBjYXJhdHRlcmUgZXNpc3RlbnRlLgoKfn5+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+CgkJIExlemlvbmUgNi40OiBDT1BJQSBFIElOQ09MTEEgREVMIFRFU1RPCgoKICAgICAqKiB1c2EgbCdvcGVyYXRvcmUgIHkgIHBlciBjb3BpYXJlIGRlbCB0ZXN0byBlICBwICBwZXIgaW5jb2xsYXJsbyAqKgoKICAxLiBWYWkgYWxsYSBsaW5lYSBpbmRpY2F0YSBkYSAtLS0+IHF1aSBzb3R0bywgZSBtZXR0aSBpbCBjdXJzb3JlIGRvcG8gImEpIi4KICAKICAyLiBFbnRyYSBpbiBNb2RhbGl04CBWaXN1YWxlIGNvbiAgdiAgZSBtZXR0aSBpbCBjdXJzb3JlIGRhdmFudGkgYSAicHJpbW8iLgogIAogIDMuIEJhdHRpICB5ICBwZXIgY29waWFyZSBbeWFua10gaWwgdGVzdG8gZXZpZGVuemlhdG8uCgogIDQuIE11b3ZpIGlsIGN1cnNvcmUgYWxsYSBmaW5lIGRlbGxhIGxpbmVhIHN1Y2Nlc3NpdmE6ICBqJAoKICA1LiBCYXR0aSAgcCAgcGVyIGluY29sbGFyZSBbcGFzdGVdIGlsIHRlc3RvLiAgUG9pIGJhdHRpOiAgYSBzZWNvbmRvIDxFU0M+IC4KCiAgNi4gVXNhIGxhIE1vZGFsaXTgIFZpc3VhbGUgcGVyIHNlbGV6aW9uYXJlICIgZWxlbWVudG8uIiwgY29waWFsbyBjb24gIHkgLAogICAgIFZhaSBhbGxhIGZpbmUgZGVsbGEgbGluZWEgc3VjY2Vzc2l2YSBjb24gIGokICBlIGluY29sbGEgaWwgdGVzdG8gY29uICBwIC4KCi0tLT4gIGEpIHF1ZXN0byDoIGlsIHByaW1vIGVsZW1lbnRvLgogICAgICBiKQoKTk9UQTogUHVvaSB1c2FyZSAgeSAgY29tZSBvcGVyYXRvcmU7ICB5dyAgY29waWEgdW5hIHBhcm9sYSBbd29yZF0uCn5+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+fgoJICAgICAgICAgTGV6aW9uZSA2LjU6IFNFVCBbSU1QT1NUQV0gVU4nT1BaSU9ORQoKICAgICAgICoqIEltcG9zdGEgdW4nb3B6aW9uZSBwZXIgaWdub3JhcmUgbWFpdXNjb2xlL21pbnVzY29sZSAqKgogICAgICAgKiogICAgICAgICAgICAgZHVyYW50ZSBsYSByaWNlcmNhL3Nvc3RpdHV6aW9uZSAgICAgICAgICoqCgogMS4gUmljZXJjYSAnbm90YScgYmF0dGVuZG86ICAgL25vdGEgPEVOVEVSPgogICAgUmlwZXRpIGxhIHJpY2VyY2EgcGn5IHZvbHRlIHVzYW5kbyBpbCB0YXN0byAgIG4KCiAyLiBJbXBvc3RhIGwnb3B6aW9uZSAnaWMnIChJZ25vcmUgQ2FzZSwgW0lnbm9yYSBtYWl1c2NvbG8vbWludXNjb2xvXSkKICAgIGJhdHRlbmRvOiAgOnNldCBpYwoKIDMuIE9yYSByaWNlcmNhIGFuY29yYSAnbm90YScgcHJlbWVuZG8gaWwgdGFzdG8gICAgbgogICAgVHJvdmVyYWkgYWRlc3NvIGFuY2hlICBOb3RhICBlICBOT1RBIC4KCiA0LiBJbXBvc3RhIGxlIG9wemlvbmkgJ2hsc2VhcmNoJyBlICdpbmNzZWFyY2gnICAgIDpzZXQgaGxzIGlzCgogNS4gT3JhIGJhdHRpIGFuY29yYSBpbCBjb21hbmRvIGRpIHJpY2VyY2EsIGUgZ3VhcmRhIGNvc2Egc3VjY2VkZTogICAgL25vdGEKIAogNi4gUGVyIGRpc2FiaWxpdGFyZSBpbCByaWNvbm9zY2ltZW50byBkaSBtYWl1c2NvbGUvbWludXNjb2xlIGJhdHRpOiAgOnNldCBub2ljCk5PVEE6IFBlciBub24gZXZpZGVuemlhcmUgbGUgb2Njb3JyZW56ZSB0cm92YXRlIGJhdHRpOiAgIDpub2hsc2VhcmNoCk5PVEE6IFBlciBpZ25vcmFyZSBtYWl1c2NvbGUvbWludXNjb2xlIHNvbG8gcGVyIHVuYSByaWNlcmNhLCB1c2EgXGMKICAgICAgbmVsIGNvbWFuZG8gZGkgcmljZXJjYTogICAgL25vdGFcYyA8SU5WSU8+Cn5+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+fgoJCSAgICAgICBMZXppb25lIDYgU09NTUFSSU8KCiAgMS4gQmF0dGkgIG8gIHBlciBhZ2dpdW5nZXJlIHVuYSBsaW5lYSBTT1RUTyBpbCBjdXJzb3JlIGVkIGVudHJhcmUgaW4KICAgICAgICAgICAgICAgTW9kYWxpdOAgSW5zZXJpbWVudG8uCiAgICAgQmF0dGkgIE8gIHBlciBhZ2dpdW5nZXJlIHVuYSBsaW5lYSBTT1BSQSBpbCBjdXJzb3JlLgoKICAyLiBCYXR0aSAgYSAgcGVyIGluc2VyaXJlIHRlc3RvIERPUE8gaWwgY3Vyc29yZS4KICAgICBCYXR0aSAgQSAgcGVyIGluc2VyaXJlIHRlc3RvIGFsbGEgZmluZSBkZWxsYSBsaW5lYS4KCiAgMy4gSWwgY29tYW5kbyAgIGUgIHNwb3N0YSBpbCBjdXJzb3JlIGFsbGEgZmluZSBkaSB1bmEgcGFyb2xhLgoKICA0LiBMJ29wZXJhdG9yZSAgeSAgY29waWEgZGVsIHRlc3RvLCAgcCAgaW5jb2xsYSBkZWwgdGVzdG8uCgogIDUuIEJhdHRpICBSICBwZXIgZW50cmFyZSBpbiBNb2RhbGl04CBSZXBsYWNlLCBlIG5lIGVzY2kgcHJlbWVuZG8gPEVTQz4uCgogIDYuIEJhdHRpICI6c2V0IHh4eCIgcGVyIGltcG9zdGFyZSBsJ29wemlvbmUgInh4eCIuIEFsY3VuIG9wemlvbmkgc29ubzoKICAgICAgJ2ljJyAnaWdub3JlY2FzZScJaWdub3JhcmUgbWFpdXNjb2xlL21pbnVzY29sZSBuZWxsYSByaWNlcmNhCiAgICAgICdpcycgJ2luY3NlYXJjaCcJbW9zdHJhIG9jY29ycmVuemUgcGFyemlhbGkgZHVyYW50ZSB1bmEgcmljZXJjYQogICAgICAnaGxzJyAnaGxzZWFyY2gnCWV2aWRlbnppYSB0dXR0ZSBsZSBvY2NvcnJlbnplIGRpIHVuYSByaWNlcmNhCiAgICAgUHVvaSB1c2FyZSBzaWEgaWwgbm9tZSBjb21wbGV0byBkaSB1bidvcHppb25lIGNoZSBxdWVsbG8gYWJicmV2aWF0by4KCiAgNy4gVXNhIGlsIHByZWZpc3NvICJubyIgcGVyIGFubnVsbGFyZSB1bmEgb3B6aW9uZTogICA6c2V0IG5vaWMKfn5+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+CgkJICAgICAgTGV6aW9uZSA3LjE6IE9UVEVORVJFIEFJVVRPCgoJCSAqKiBVc2EgaWwgc2lzdGVtYSBkaSBhaXV0byBvbi1saW5lICoqCgogIFZpbSBoYSB1biBlc2F1cmllbnRlIHNpc3RlbWEgZGkgYWl1dG8gb24tbGluZS4gIFBlciBjb21pbmNpYXJlLCBwcm92YSB1bmEgZGkKICBxdWVzdGUgYWx0ZXJuYXRpdmU6CgktIHByZW1pIGlsIHRhc3RvIDxBSVVUTz4gKHNlIGNlIG4n6CB1bm8pCgktIHByZW1pIGlsIHRhc3RvIDxGMT4gICAgKHNlIGNlIG4n6CB1bm8pCgktIGJhdHRpICAgOmhlbHAgIDxJTlZJTz4gIE9QUFVSRSAgIDpoIDxJTlZJTz4KCiAgTGVnZ2kgaWwgdGVzdG8gbmVsbGEgZmluZXN0cmEgZGkgYWl1dG8gcGVyIHZlZGVyZSBjb21lIGZ1bnppb25hIGwnYWl1dG8uCiAgQmF0dGkgIENUUkwtVyBDVFJMLVcJcGVyIHBhc3NhcmUgZGEgdW5hIGZpbmVzdHJhIGFsbCdhbHRyYS4KICBCYXR0aSAgOnEgPElOVklPPiAgIHBlciBjaGl1ZGVyZSBsYSBmaW5lc3RyYSBkaSBhaXV0by4KCiAgUHVvaSB0cm92YXJlIGFpdXRvIHN1IHF1YXNpIHR1dHRvLCBkYW5kbyB1biBhcmdvbWVudG8gYWwgY29tYW5kbyAiOmhlbHAiCiAgUHJvdmEgcXVlc3RpIChub24gZGltZW50aWNhcmUgZGkgcHJlbWVyZSA8SU5WSU8+KToKCgk6aGVscCB3Cgk6aGVscCBjX0NUUkwtRAoJOmhlbHAgaW5zZXJ0LWluZGV4Cgk6aGVscCB1c2VyLW1hbnVhbAoKfn5+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+CgkJIExlemlvbmUgNy4yOiBQUkVQQVJBUkUgVU5PIFNDUklQVCBJTklaSUFMRQoKCQkgICAgICAgICoqIEF0dGl2YSBsZSBvcHppb25pIFZpbSAqKgoKICBWaW0gaGEgbW9sdGUgcGn5IG9wemlvbmkgZGkgVmksIG1hIG1vbHRlIGRpIGVzc2Ugc29ubyBwcmVkZWZpbml0ZSBpbmF0dGl2ZS4KICBQZXIgY29taW5jaWFyZSBhIHVzYXJlIHBp+SBvcHppb25pLCBkZXZpIGNyZWFyZSB1biBmaWxlICJ2aW1yYyIuCgogIDEuIENvbWluY2lhIGEgZWRpdGFyZSBpbCBmaWxlICJ2aW1yYyIuICBRdWVzdG8gZGlwZW5kZSBkYWwgdHVvIHNpc3RlbWE6Cgk6ZSB+Ly52aW1yYwkJcGVyIFVuaXgKCTplICRWSU0vX3ZpbXJjCQlwZXIgTVMtV2luZG93cwoKICAyLiBPcmEgbGVnZ2kgaSBjb250ZW51dGkgZGVsIGZpbGUgInZpbXJjIiBkaXN0cmlidWl0byBjb21lIGVzZW1waW86CgoJOnIgJFZJTVJVTlRJTUUvdmltcmNfZXhhbXBsZS52aW0KCiAgMy4gU2NyaXZpIGlsIGZpbGUgY29uOgoJOncKCiAgTGEgcHJvc3NpbWEgdm9sdGEgY2hlIGFwcmkgVmltLCBzYXLgIGFiaWxpdGF0YSBsYSBjb2xvcmF6aW9uZSBzaW50YXR0aWNhLgogIFB1b2kgYWdnaXVuZ2VyZSBhIHF1ZXN0byBmaWxlICJ2aW1yYyIgdHV0dGUgbGUgdHVlIGltcG9zdGF6aW9uaSBwcmVmZXJpdGUuCiAgUGVyIG1hZ2dpb3JpIGluZm9ybWF6aW9uaSBiYXR0aTogIDpoZWxwIHZpbXJjLWludHJvCgp+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+fn4KCQkJTGV6aW9uZSA3LjM6IENPTVBMRVRBTUVOVE8KCgoJICAgICAgKiogQ29tcGxldGFtZW50byBsaW5lYSBjb21hbmRpIGNvbiBDVFJMLUQgZSA8VEFCPiAqKgoKICAxLiBJbXBvc3RhIFZpbSBpbiBtb2RhbGl04CBjb21wYXRpYmlsZTogIDpzZXQgbm9jcAoKICAyLiBHdWFyZGEgaSBmaWxlIGVzaXN0ZW50aSBuZWxsYSBkaXJlY3Rvcnk6ICA6IWxzICAgbyAgOiFkaXIKCiAgMy4gQmF0dGkgbCdpbml6aW8gZGkgdW4gY29tYW5kbzogIDplCgogIDQuIFByZW1pICBDVFJMLUQgIGUgVmltIHRpIG1vc3RyYSB1bmEgbGlzdGEgZGkgY29tYW5kaSBjaGUgaW5pemlhbm8gcGVyICJlIi4KCiAgNS4gUHJlbWkgIDxUQUI+ICBlIFZpbSBjb21wbGV0YSBwZXIgdGUgaWwgbm9tZSBjb21hbmRvIGNvbWUgIjplZGl0Ii4KCiAgNi4gT3JhIGJhdHRpIHVubyBzcGF6aW8gZSBsJ2luaXppbyBkZWwgbm9tZSBkaSB1biBmaWxlIGVzaXN0ZW50ZTogIDplZGl0IEZJTAoKICA3LiBQcmVtaSA8VEFCPi4gIFZpbSBjb21wbGV0ZXLgIGlsIG5vbWUgZGVsIGZpbGUgKHNlIOggaWwgc29sbyBwb3NzaWJpbGUpLgoKTk9UQTogIElsIGNvbXBsZXRhbWVudG8g6CBkaXNwb25pYmlsZSBwZXIgbW9sdGkgY29tYW5kaS4gIFByb3ZhIGEgYmF0dGVyZQogICAgICAgQ1RSTC1EIGUgPFRBQj4uICBQYXJ0aWNvbGFybWVudGUgdXRpbGUgcGVyICA6aGVscCAuCgp+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+fn4KCQkJICAgTGV6aW9uZSA3IFNvbW1hcmlvCgoKICAxLiBCYXR0aSAgOmhlbHAgIG8gcHJlbWkgPEYxPiBvIDxIZWxwPiAgcGVyIGFwcmlyZSB1bmEgZmluZXN0cmEgZGkgYWl1dG8uCgogIDIuIEJhdHRpICA6aGVscCBjb21hbmRvICBwZXIgYXZlcmUgYWl1dG8gc3UgIGNvbWFuZG8gLgoKICAzLiBCYXR0aSAgQ1RSTC1XIENUUkwtVyAgcGVyIHNhbHRhcmUgYWxsYSBwcm9zc2ltYSBmaW5lc3RyYS4KCiAgNC4gQmF0dGkgIDpxICBwZXIgY2hpdWRlcmUgbGEgZmluZXN0cmEgZGkgYWl1dG8uCgogIDUuIENyZWEgdW5vIHNjcmlwdCBpbml6aWFsZSB2aW1yYyBjb250ZW5lbnRlIGxlIHR1ZSBpbXBvc3RhemlvbmkgcHJlZmVyaXRlLgoKICA2LiBNZW50cmUgYmF0dGkgdW4gY29tYW5kbyAgOiAsIHByZW1pIENUUkwtRCBwZXIgdmVkZXJlIGkgcG9zc2liaWxpCiAgICAgY29tcGxldGFtZW50aS4gIFByZW1pIDxUQUI+IHBlciB1c2FyZSBpbCBjb21wbGV0YW1lbnRvIGRlc2lkZXJhdG8uCgoKCgoKCgp+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+fn4KICBRdWkgZmluaXNjZSBsYSBHdWlkYSBhIFZpbS4gIElsIHN1byBpbnRlbnRvIOggZGkgZm9ybmlyZSB1bmEgYnJldmUgcGFub3JhbWljYQogIGRlbGwnRWRpdG9yIFZpbSwgY2hlIHRpIGNvbnNlbnRhIGRpIHVzYXJlIGwnRWRpdG9yIGFiYmFzdGFuemEgZmFjaWxtZW50ZS4KICBRdWVzdGEgZ3VpZGEg6CBsYXJnYW1lbnRlIGluY29tcGxldGEgcG9pY2jpIFZpbSBoYSBtb2x0aXNzaW1pIGFsdHJpIGNvbWFuZGkuCiAgUHVvaSBhbmNoZSBsZWdnZXJlIGlsIG1hbnVhbGUgdXRlbnRlIChhbmNoZSBpbiBpdGFsaWFubyk6ICI6aGVscCB1c2VyLW1hbnVhbCIuCgogIFBlciB1bHRlcmlvcmUgbGV0dHVyYSBlIHN0dWRpbywgcmFjY29tYW5kaWFtbzoKCVZpbSAtIFZpIEltcHJvdmVkIC0gZGkgU3RldmUgT3VhbGxpbmUgICAgIEVkaXRvcmU6IE5ldyBSaWRlcnMKICBJbCBwcmltbyBsaWJybyBjb21wbGV0YW1lbnRlIGRlZGljYXRvIGEgVmltLiBVdGlsZSBzcGVjaWUgcGVyIHByaW5jaXBpYW50aS4KICBDb250aWVuZSBtb2x0aSBlc2VtcGkgZSBmaWd1cmUuCiAgVmVkaSBodHRwOi8vaWNjZi1ob2xsYW5kLm9yZy9jbGljazUuaHRtbAoKICBRdWVzdCdhbHRybyBsaWJybyDoIHBp+SBzdSBWaSBjaGUgc3UgVmltLCBtYSDoIHB1cmUgY29uc2lnbGlhdG86CglMZWFybmluZyB0aGUgVmkgRWRpdG9yIC0gZGkgTGluZGEgTGFtYiBlIEFybm9sZCBSb2JiaW5zCglFZGl0b3JlOiBPJ1JlaWxseSAmIEFzc29jaWF0ZXMgSW5jLgogIEUnIHVuIGJ1b24gbGlicm8gcGVyIGltcGFyYXJlIHF1YXNpIHR1dHRvIGNp8iBjaGUgcHVvaSB2b2xlciBmYXJlIGNvbiBWaS4KICBOZSBlc2lzdGUgdW5hIHRyYWR1emlvbmUgaXRhbGlhbmEsIGJhc2F0YSBzdSB1bmEgdmVjY2hpYSBlZGl6aW9uZS4KCiAgUXVlc3RhIGd1aWRhIOggc3RhdGEgc2NyaXR0YSBkYSBNaWNoYWVsIEMuIFBpZXJjZSBlIFJvYmVydCBLLiBXYXJlLAogIENvbG9yYWRvIFNjaG9vbCBvZiBNaW5lcywgdXNhbmRvIGlkZWUgZm9ybml0ZSBkYSBDaGFybGVzIFNtaXRoLAogIENvbG9yYWRvIFN0YXRlIFVuaXZlcnNpdHkgLSBFLW1haWw6IGJ3YXJlQG1pbmVzLmNvbG9yYWRvLmVkdQogIE1vZGlmaWNhdG8gcGVyIFZpbSBkYSBCcmFtIE1vb2xlbmFhci4KICBTZWduYWxhcmUgcmVmdXNpIGFkIEFudG9uaW8gQ29sb21ibyAtIEUtbWFpbDogYXpjMTAwQGdtYWlsLmNvbQp+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+fn4K