PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPjxodG1sPjxoZWFkPjx0aXRsZT5BcGFjaGUgU2FuZGVzaGEyL0MgLSBSRUFETUU8L3RpdGxlPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCI+CiAgICAgICAgICBAaW1wb3J0IHVybCgiLi4vc3R5bGUvbWF2ZW4tYmFzZS5jc3MiKTsKICAgICAgICAgIAoJCQkgICAgQGltcG9ydCB1cmwoIi4uL3N0eWxlL21hdmVuLWNsYXNzaWMuY3NzIik7PC9zdHlsZT48bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL3N0eWxlL3ByaW50LmNzcyIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJwcmludCI+PC9saW5rPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPjwvbWV0YT48L2hlYWQ+PGJvZHkgY2xhc3M9ImNvbXBvc2l0ZSI+PGRpdiBpZD0iYmFubmVyIj48YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvIiBpZD0ib3JnYW5pemF0aW9uTG9nbyI+PGltZyBhbHQ9IkFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIiBzcmM9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9pbWFnZXMvYXNmLWxvZ28uZ2lmIj48L2ltZz48L2E+PGEgaHJlZj0iaHR0cDovL3dzLmFwYWNoZS5vcmcvc2FuZGVzaGEyL2MiIGlkPSJwcm9qZWN0TG9nbyI+PGltZyBhbHQ9IkFwYWNoZSBTYW5kZXNoYTIvQyIgc3JjPSJodHRwOi8vd3MuYXBhY2hlLm9yZy9zYW5kZXNoYTIvYy9pbWFnZXMvc2FuZGVzaGEyY19sb2dvLmpwZyI+PC9pbWc+PC9hPjxkaXYgY2xhc3M9ImNsZWFyIj48aHI+PC9ocj48L2Rpdj48L2Rpdj48ZGl2IGlkPSJicmVhZGNydW1icyI+PGRpdiBjbGFzcz0ieGxlZnQiPgogICAgICAgICAgICAgICAgCUxhc3QgcHVibGlzaGVkOiAwNSBPY3RvYmVyIDIwMDcKICAgICAgICAgICAgICAgICAgfCBEb2MgZm9yIDAuOTE8L2Rpdj48ZGl2IGNsYXNzPSJ4cmlnaHQiPjwvZGl2PjxkaXYgY2xhc3M9ImNsZWFyIj48aHI+PC9ocj48L2Rpdj48L2Rpdj48ZGl2IGlkPSJsZWZ0Q29sdW1uIj48ZGl2IGlkPSJuYXZjb2x1bW4iPjxkaXYgaWQ9Im1lbnVBcGFjaGVfU2FuZGVzaGEyX0MiPjxoNT5BcGFjaGUgU2FuZGVzaGEyL0M8L2g1Pjx1bD48bGkgY2xhc3M9Im5vbmUiPjxhIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPkFwYWNoZSBTYW5kZXNoYTIvQyBIb21lPC9hPjwvbGk+PGxpIGNsYXNzPSJleHBhbmRlZCI+PGEgaHJlZj0iLi4vZG93bmxvYWQuY2dpIj5Eb3dubG9hZCBTYW5kZXNoYTIvQzwvYT48dWw+PGxpIGNsYXNzPSJub25lIj48YSBocmVmPSIuLi9kb3dubG9hZC5jZ2kiPlJlbGVhc2VzPC9hPjwvbGk+PC91bD48L2xpPjxsaSBjbGFzcz0iZXhwYW5kZWQiPjxhIGhyZWY9Ii4uL2RvY3MvaW5kZXguaHRtbCI+RG9jdW1lbnRhdGlvbjwvYT48dWw+PGxpIGNsYXNzPSJub25lIj48YSBocmVmPSIuLi9kb2NzL2luc3RhbGxhdGlvbmd1aWRlLmh0bWwiPkluc3RhbGxhdGlvbiBHdWlkZTwvYT48L2xpPjxsaSBjbGFzcz0ibm9uZSI+PGEgaHJlZj0iLi4vZG9jcy9zYW5kZXNoYTJjX21hbnVhbC5odG1sIj5TYW5kZXNoYTIvQyBtYW51YWw8L2E+PC9saT48L3VsPjwvbGk+PGxpIGNsYXNzPSJleHBhbmRlZCI+PGEgaHJlZj0iLi4vbGlzdHNfaXNzdWVzLmh0bWwiPkdldCBJbnZvbHZlZDwvYT48dWw+PGxpIGNsYXNzPSJub25lIj48YSBocmVmPSIuLi9saXN0c19pc3N1ZXMuaHRtbCI+TWFpbGluZyBMaXN0cyAmYW1wOyBJc3N1ZSBUcmFja2luZzwvYT48L2xpPjxsaSBjbGFzcz0ibm9uZSI+PGEgaHJlZj0iLi4vc3ZuLmh0bWwiPkNoZWNrb3V0IFNvdXJjZSBDb2RlPC9hPjwvbGk+PC91bD48L2xpPjxsaSBjbGFzcz0iZXhwYW5kZWQiPjxhIGhyZWY9Ii4uL2NvZGluZ19jb252ZW50aW9ucy5odG1sIj5EZXZlbG9wZXIgR3VpZGVsaW5lczwvYT48dWw+PGxpIGNsYXNzPSJub25lIj48YSBocmVmPSIuLi9jb2RpbmdfY29udmVudGlvbnMuaHRtbCI+Q29kaW5nIENvbnZlbnRpb248L2E+PC9saT48bGkgY2xhc3M9Im5vbmUiPjxhIGhyZWY9Ii4uL3ZlcnNpb25pbmcuaHRtbCI+VmVyc2lvbm5pbmc8L2E+PC9saT48L3VsPjwvbGk+PGxpIGNsYXNzPSJleHBhbmRlZCI+PGEgaHJlZj0iLi4vdGVhbS1saXN0Lmh0bWwiPlByb2plY3QgSW5mb3JtYXRpb248L2E+PHVsPjxsaSBjbGFzcz0ibm9uZSI+PGEgaHJlZj0iLi4vdGVhbS1saXN0Lmh0bWwiPlByb2plY3QgVGVhbTwvYT48L2xpPjxsaSBjbGFzcz0ibm9uZSI+PGEgaHJlZj0iaHR0cDovL3N2bi5hcGFjaGUub3JnL3ZpZXd2Yy93ZWJzZXJ2aWNlcy9zYW5kZXNoYS90cnVuay9jLyIgY2xhc3M9ImV4dGVybmFsTGluayIgdGl0bGU9IkV4dGVybmFsIExpbmsiPlNvdXJjZSBDb2RlPC9hPjwvbGk+PC91bD48L2xpPjwvdWw+PC9kaXY+PGEgaHJlZj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvIiB0aXRsZT0iQnVpbHQgYnkgTWF2ZW4iIGlkPSJwb3dlcmVkQnkiPjxpbWcgYWx0PSJCdWlsdCBieSBNYXZlbiIgc3JjPSIuLi9pbWFnZXMvbG9nb3MvbWF2ZW4tYnV0dG9uLTEucG5nIj48L2ltZz48L2E+PC9kaXY+PC9kaXY+PGRpdiBpZD0iYm9keUNvbHVtbiI+PGRpdiBjbGFzcz0iY29udGVudEJveCI+PGRpdiBjbGFzcz0ic2VjdGlvbiI+PGEgbmFtZT0iRW5nYWdpbmdfU2FuZGVzaGEyX0NfTW9kdWxlIj48L2E+PGgyPkVuZ2FnaW5nIFNhbmRlc2hhMi9DIE1vZHVsZTwvaDI+PHA+CiAgSW5zdGFsbCBzYW5kZXNoYTIgbW9kdWxlIGludG8gJmx0O2F4aXMyIGRlcGxveSBmb2xkZXImZ3Q7L21vZHVsZXMgZm9sZGVyLiBBZGQgdGhlIFJNUGhhc2UKICBpbmZvcm1hdGlvbiBpbnRvIGF4aXMyLnhtbCBhcyBmb2xsb3dpbmcuIFNlYXJjaCBmb3IgJ1JNUGhhc2UnIGluIHRoZQogIGZvbGxvd2luZyB4bWwgYmxvY2sgdG8gaWRlbnRpZnkgdGhlIFJNIHNwZWNpZmljIGVudHJpZXMuCjwvcD4KICAgIDxkaXYgY2xhc3M9InNvdXJjZSI+PHByZT4KICAgICZsdDshLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLSZndDsKICAgICZsdDshLS0gUGhhc2VzICAtLSZndDsKICAgICZsdDshLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLSZndDsKICAgICZsdDtwaGFzZU9yZGVyIHR5cGU9ImluZmxvdyImZ3Q7CiAgICAgICAgJmx0OyEtLSAgU3lzdGVtIHByZSBkZWZpbmVkIHBoYXNlcyAgICAgICAtLSZndDsKICAgICAgICAmbHQ7cGhhc2UgbmFtZT0iVHJhbnNwb3J0SW4iLyZndDsKICAgICAgICAmbHQ7cGhhc2UgbmFtZT0iUHJlRGlzcGF0Y2giLyZndDsKICAgICAgICAmbHQ7cGhhc2UgbmFtZT0iRGlzcGF0Y2giJmd0OwogICAgICAgICAgICAmbHQ7aGFuZGxlciBuYW1lPSJBZGRyZXNzaW5nQmFzZWREaXNwYXRjaGVyIgogICAgICAgICAgICAgICAgICAgICBjbGFzcz0iYXhpczJfZW5naW5lIiZndDsKICAgICAgICAgICAgICAgICZsdDtvcmRlciBwaGFzZT0iRGlzcGF0Y2giLyZndDsKICAgICAgICAgICAgJmx0Oy9oYW5kbGVyJmd0OwogICAgICAgICAgICAgJmx0O2hhbmRsZXIgbmFtZT0iUmVxdWVzdFVSSUJhc2VkRGlzcGF0Y2hlciIKICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImF4aXMyX2VuZ2luZSImZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7b3JkZXIgcGhhc2U9IkRpc3BhdGNoIi8mZ3Q7CiAgICAgICAgICAgICZsdDsvaGFuZGxlciZndDsKICAgICAgICAgICAgICZsdDtoYW5kbGVyIG5hbWU9IlNPQVBBY3Rpb25CYXNlZERpc3BhdGNoZXIiCiAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJheGlzMl9lbmdpbmUiJmd0OwogICAgICAgICAgICAgICAgJmx0O29yZGVyIHBoYXNlPSJEaXNwYXRjaCIvJmd0OwogICAgICAgICAgICAmbHQ7L2hhbmRsZXImZ3Q7CiAgICAgICAgICAgICAmbHQ7aGFuZGxlciBuYW1lPSJTT0FQTWVzc2FnZUJvZHlCYXNlZERpc3BhdGNoZXIiCiAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJheGlzMl9lbmdpbmUiJmd0OwogICAgICAgICAgICAgICAgJmx0O29yZGVyIHBoYXNlPSJEaXNwYXRjaCIvJmd0OwogICAgICAgICAgICAmbHQ7L2hhbmRsZXImZ3Q7CiAgICAgICAgJmx0Oy9waGFzZSZndDsKICAgICAgICAmbHQ7cGhhc2UgbmFtZT0iUG9zdERpc3BhdGNoIiZndDsKICAgICAgICAgICAgICZsdDtoYW5kbGVyIG5hbWU9IkRpc3BhdGNoUG9zdENvbmRpdGlvbnNFdmFsdWF0b3IiCiAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJheGlzMl9lbmdpbmUiJmd0OwogICAgICAgICAgICAgICAgJmx0O29yZGVyIHBoYXNlPSJQb3N0RGlzcGF0Y2giLyZndDsKICAgICAgICAgICAgJmx0Oy9oYW5kbGVyJmd0OwogICAgICAgICAgICAmbHQ7aGFuZGxlciBuYW1lPSJJbnN0YW5jZURpc3BhdGNoZXIiCiAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJheGlzMl9lbmdpbmUiJmd0OwogICAgICAgICAgICAgICAgJmx0O29yZGVyIHBoYXNlPSJQb3N0RGlzcGF0Y2giLyZndDsKICAgICAgICAgICAgJmx0Oy9oYW5kbGVyJmd0OwogICAgICAgICAgICAmbHQ7aGFuZGxlciBuYW1lPSJTT0FQUHJvY2Vzc2luZ01vZGVsQ2hlY2tlciIKICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImF4aXMyX2VuZ2luZSImZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7b3JkZXIgcGhhc2U9IlBvc3REaXNwYXRjaCIvJmd0OwogICAgICAgICAgICAmbHQ7L2hhbmRsZXImZ3Q7CiAgICAgICAgJmx0Oy9waGFzZSZndDsKICAgICAgICAmbHQ7IS0tICBTeXN0ZW0gcHJlIGRlZmluZWQgcGhhc2VzICAgICAgIC0tJmd0OwogICAgICAgICZsdDshLS0gICBBZnRlciBQb3N0ZGlzcGF0Y2ggcGhhc2UgbW9kdWxlIGF1dGhvciBvciBvciBzZXJ2aWNlIGF1dGhvciBjYW4gYWRkIGFueSBwaGFzZSBoZSB3YW50ICAgICAgLS0mZ3Q7CiAgICAgICAgJmx0OyEtLXBoYXNlIG5hbWU9InVzZXJwaGFzZTEiLy0tJmd0OwogICAgICAgICZsdDtwaGFzZSBuYW1lPSJSTVBoYXNlIi8mZ3Q7CiAgICAmbHQ7L3BoYXNlT3JkZXImZ3Q7CiAgICAmbHQ7cGhhc2VPcmRlciB0eXBlPSJvdXRmbG93IiZndDsKICAgICAgICAmbHQ7IS0tICAgICAgdXNlciBjYW4gYWRkIGhpcyBvd24gcGhhc2VzIHRvIHRoaXMgYXJlYSAgLS0mZ3Q7CiAgICAmbHQ7cGhhc2UgbmFtZT0iUk1QaGFzZSIvJmd0OwogICAgICAgICZsdDshLS1waGFzZSBuYW1lPSJ1c2VycGhhc2UxIi8tLSZndDsKICAgICAgICAmbHQ7IS0tc3lzdGVtIHByZWRlZmluZWQgcGhhc2UtLSZndDsKICAgICAgICAmbHQ7IS0tdGhlc2UgcGhhc2Ugd2lsbCBydW4gaXJyZXNwZWN0aXZlIG9mIHRoZSBzZXJ2aWNlLS0mZ3Q7CiAgICAgICAgJmx0OyEtLXBoYXNlIG5hbWU9IlBvbGljeURldGVybWluYXRpb24iLy0tJmd0OwogICAgICAgICZsdDshLS1waGFzZSBuYW1lPSJNZXNzYWdlT3V0Ii8tLSZndDsKICAgICZsdDsvcGhhc2VPcmRlciZndDsKICAgICZsdDtwaGFzZU9yZGVyIHR5cGU9IklOZmF1bHRmbG93IiZndDsKICAgICAgICAmbHQ7IS0tICAgICAgdXNlciBjYW4gYWRkIGhpcyBvd24gcGhhc2VzIHRvIHRoaXMgYXJlYSAgLS0mZ3Q7CiAgICAgICAgJmx0OyEtLXBoYXNlIG5hbWU9InVzZXJwaGFzZTEiLy0tJmd0OwoJICAgICZsdDtwaGFzZSBuYW1lPSJSTVBoYXNlIi8mZ3Q7CiAgICAmbHQ7L3BoYXNlT3JkZXImZ3Q7CiAgICAmbHQ7cGhhc2VPcmRlciB0eXBlPSJPdXRmYXVsdGZsb3ciJmd0OwogICAgICAgICZsdDshLS0gICAgICB1c2VyIGNhbiBhZGQgaGlzIG93biBwaGFzZXMgdG8gdGhpcyBhcmVhICAtLSZndDsKICAgICAgICAmbHQ7cGhhc2UgbmFtZT0iUk1QaGFzZSIvJmd0OwogICAgICAgICZsdDtwaGFzZSBuYW1lPSJNZXNzYWdlT3V0Ii8mZ3Q7CiAgICAgICAgJmx0OyEtLXBoYXNlIG5hbWU9InVzZXJwaGFzZTEiLy0tJmd0OwogICAgICAgICZsdDshLS1waGFzZSBuYW1lPSJQb2xpY3lEZXRlcm1pbmF0aW9uIi8tLSZndDsKICAgICZsdDsvcGhhc2VPcmRlciZndDsKCjwvcHJlPjwvZGl2PgogIDxwPgpJbiB0aGUgc2VydmljZXMgeG1sIGZpbGUgZm9yIHRoZSBzZXJ2aWNlIHdoaWNoIHJlcXVpcmUgUk0gZW5hYmxlZAphZGQgdGhlIGVudHJ5CiAmbHQ7bW9kdWxlIHJlZj0ic2FuZGVzaGEyIi8mZ3Q7CklmIHlvdSBuZWVkIGFsbCBzZXJ2aWNlcyBpbiB0aGUgZW5naW5lIFJNIGVuYWJsZWQgYWRkIHRoZSBhYm92ZSBlbnRyeSBpbnRvCmF4aXMyLnhtbC4KPC9wPjxwPgpZb3UgY2FuIHVzZSBzYW1wbGVzIGluIHRoZSBzYW1wbGVzIGZvbGRlciBmb3IgdGVzdGluZy4KPC9wPjxkaXYgY2xhc3M9InN1YnNlY3Rpb24iPjxhIG5hbWU9Iktub3duX0lzc3VlcyI+PC9hPjxoMz5Lbm93biBJc3N1ZXM8L2gzPjxwPgoKUGxlYXNlIGtlZXAgaW4gbWluZCB0aGUgZm9sbG93aW5nIHdoZW4gdXNpbmcgU2FuZGVzaGEyL0Mgd2l0aCBBeGlzMi9DLgo8b2w+CjxsaT5Db21tZW50IHRoZSBsaW5lIG5vOjI5NSBpbiBzcmMvY29yZS90cmFuc3BvcnQvaHR0cC9yZWNlaXZlci9odHRwX3N2cl90aHJlYWQuYwogICA8cHJlPmF4dXRpbF9mcmVlX3RocmVhZF9lbnYodGhyZWFkX2Vudik7PC9wcmU+CjwvbGk+Cgo8bGk+Q29tbWVudCB0aGUgbGluZSBubzoyOTkgaW4gc3JjL2NvcmUvdHJhbnNwb3J0L2h0dHAvcmVjZWl2ZXIvaHR0cF9zdnJfdGhyZWFkLmMKICAgIDxwcmU+YXh1dGlsX3RocmVhZF9wb29sX2V4aXRfdGhyZWFkKGVudi0mZ3Q7dGhyZWFkX3Bvb2wsIHRoZCk7PC9wcmU+CjwvbGk+CjxsaT5Db21tZW50IHRoZSBmb2xsb3dpbmcgYmxvY2sgc3RhcnRpbmcgZm9ybSBsaW5lIG5vOjI1OSBzcmMvY29yZS90cmFuc3BvcnQvaHR0cC9zZW5kZXIvaHR0cF9zZW5kZXIuYwo8cHJlPgogICAgcHJvcGVydHkgPSBheHV0aWxfcHJvcGVydHlfY3JlYXRlKGVudik7CiAgICBheHV0aWxfcHJvcGVydHlfc2V0X3Njb3BlKHByb3BlcnR5LCBlbnYsIEFYSVMyX1NDT1BFX1JFUVVFU1QpOwogICAgYXh1dGlsX3Byb3BlcnR5X3NldF9mcmVlX2Z1bmMocHJvcGVydHksIGVudiwgYXhpczJfaHR0cF9jbGllbnRfZnJlZV92b2lkX2FyZyk7CiAgICBheHV0aWxfcHJvcGVydHlfc2V0X3ZhbHVlKHByb3BlcnR5LCBlbnYsIHNlbmRlci0mZ3Q7Y2xpZW50KTsKICAgIGF4aXMyX21zZ19jdHhfc2V0X3Byb3BlcnR5KG1zZ19jdHgsIGVudiwgQVhJUzJfSFRUUF9DTElFTlQsIHByb3BlcnR5KTsKPC9wcmU+CjwvbGk+CjxsaT5JZiBmb3Igc29tZSByZWFzb24gUk0gc2VxdWVuY2VzIHNlZW1zIG5vdCBleGVjdXRpbmcgcHJvcGVybHkgdGhlIHJlYXNvbiBjb3VsZAogICBiZSB0aGUgZGF0YWJhc2UgaXMgY29ycnVwdGVkIGZvciBzb21lIHJlYXNvbi4gVHJ5IHJlcnVubmluZyB0aGUgIHRoZSBkYXRhYmFzZQogICBzY3JpcHRzIHRvIGNsZWFuIHRoZSBkYXRhYmFzZS4KPC9saT4KPC9vbD4KU29tZSBvZiB0aGUgYWJvdmUgY2hhbmdlcyBtYXkgbGVhZCB0byBtZW1vcnkgbGVha3MgaW4gQXhpczIvQy4gPC9wPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImNsZWFyIj48aHI+PC9ocj48L2Rpdj48ZGl2IGlkPSJmb290ZXIiPjxkaXYgY2xhc3M9InhyaWdodCI+qSAyMDA1LTIwMDcsIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uPC9kaXY+PGRpdiBjbGFzcz0iY2xlYXIiPjxocj48L2hyPjwvZGl2PjwvZGl2PjwvYm9keT48L2h0bWw+